GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 05 Décembre 2010, 00:49:27
-
Bonjour à toute et à tous,
j'ai un souci avec un code
Attention code horrible, il est fait pour essayer de le faire fonctionner et l'améliorer après, mais la depuis quelque heure je rame.
new menu[1024],arme[22],text[22];
for(new slot = 0; slot < 12; slot++)
{
new Arme, balle;
GetPlayerWeaponData(giveplayerid, slot, Arme, balle);
if(Arme != 0 && balle != 0)
{
GetWeaponName(Arme,arme[slot],64);
format(text[slot],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[slot],balle);
SendClientMessage(playerid,bleuvert,text[slot]);
}
}
if(SacInfos[giveplayerid][sArme1] != 0 && SacInfos[giveplayerid][sballe1] > 0) { GetWeaponName(SacInfos[giveplayerid][sArme1],arme[12],64); format(text[12],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[12],SacInfos[giveplayerid][sballe1]); }
if(SacInfos[giveplayerid][sArme2] != 0 && SacInfos[giveplayerid][sballe2] > 0) { GetWeaponName(SacInfos[giveplayerid][sArme2],arme[13],64); format(text[13],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[13],SacInfos[giveplayerid][sballe2]); }
if(SacInfos[giveplayerid][sArme3] != 0 && SacInfos[giveplayerid][sballe3] > 0) { GetWeaponName(SacInfos[giveplayerid][sArme3],arme[14],64); format(text[14],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[14],SacInfos[giveplayerid][sballe3]); }
if(SacInfos[giveplayerid][sArme4] != 0 && SacInfos[giveplayerid][sballe4] > 0) { GetWeaponName(SacInfos[giveplayerid][sArme4],arme[15],64); format(text[15],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[15],SacInfos[giveplayerid][sballe4]); }
if(SacInfos[giveplayerid][sArme5] != 0 && SacInfos[giveplayerid][sballe5] > 0) { GetWeaponName(SacInfos[giveplayerid][sArme5],arme[16],64); format(text[16],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[16],SacInfos[giveplayerid][sballe5]); }
if(SacInfos[giveplayerid][sVIPArme1] != 0 && SacInfos[giveplayerid][sVIPBalle1] > 0) { GetWeaponName(SacInfos[giveplayerid][sVIPArme1],arme[17],64); format(text[17],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[17],SacInfos[giveplayerid][sVIPBalle1]); }
if(SacInfos[giveplayerid][sVIPArme2] != 0 && SacInfos[giveplayerid][sVIPBalle2] > 0) { GetWeaponName(SacInfos[giveplayerid][sVIPArme2],arme[18],64); format(text[18],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[18],SacInfos[giveplayerid][sVIPBalle2]); }
if(SacInfos[giveplayerid][sVIPArme3] != 0 && SacInfos[giveplayerid][sVIPBalle3] > 0) { GetWeaponName(SacInfos[giveplayerid][sVIPArme3],arme[19],64); format(text[19],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[19],SacInfos[giveplayerid][sVIPBalle3]); }
if(SacInfos[giveplayerid][sVIPArme4] != 0 && SacInfos[giveplayerid][sVIPBalle4] > 0) { GetWeaponName(SacInfos[giveplayerid][sVIPArme4],arme[20],64); format(text[20],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[20],SacInfos[giveplayerid][sVIPBalle4]); }
if(SacInfos[giveplayerid][sVIPArme5] != 0 && SacInfos[giveplayerid][sVIPBalle5] > 0) { GetWeaponName(SacInfos[giveplayerid][sVIPArme5],arme[21],64); format(text[21],64,"\n{FF595E}Arme{A9C4E4}: %s - %d balle(s)",arme[21],SacInfos[giveplayerid][sVIPBalle5]); }
format(string,sizeof(string),"Sac de {FFFF9A}%s",nom2);
format(menu,sizeof(menu),"{FF595E}Argent{A9C4E4}: %d\n{FF595E}Heroïne{A9C4E4}: %dG\n{FF595E}Weed{A9C4E4}: %dG%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",JoueurInfos[giveplayerid][jArgent],SacInfos[giveplayerid][sHero],SacInfos[giveplayerid][sWeed],text[0],text[1],text[2],text[3],text[4],text[5],text[6],text[7],text[8],text[9],text[10],text[11],text[12],text[13],text[14],text[15],text[16],text[17],text[18],text[19],text[20],text[21]);
SendClientMessage(playerid,bleuvert,menu);
ShowPlayerDialog(playerid,fouillepolice,DIALOG_STYLE_MSGBOX,string,menu,"Valider","Retour");
return 1;
Le soucis s'est que ça se formate bien dans la boucle mais au formatage général dans la variable menu, ça merde.
(http://img139.imageshack.us/img139/2425/soucis.png)
Merci d'avance
-
Sans les retours à la ligne (\n), cela donne quoi ?
-
Salut,
j'ai entendu dire que le nouveau système de couleur causait de petits problèmes avec certains textes. Essaie en modifiant un peu le texte pour voir, surtout je pense que l'utilisation de {} n'est pas recommandée, reste à voir, je n'ai pas encore touché à la 0.3c
Bonne chance
++Sim++
-
Meme chose si j'enleve les "\n" Xatrick
Sim, pour les couleur j'ai essayé sans, même résultat,
pour les {} s'est la méthode décrite sur samp
-
J'ai regardé rapidement sur le Wiki de SA:MP et j'ai trouvé que devant chaque retour à la ligne, il utilisé \r.
Je n'ai absolument aucune idée de l'action de ce dernier !
http://wiki.sa-mp.com/wiki/ShowPlayerDialog (http://wiki.sa-mp.com/wiki/ShowPlayerDialog)
-
Salut,
le caractère '\r' permet le retour à la ligne, c'est à dire qu'on retourne complètement à gauche de l'écran, en général on l'utilise dans les fichiers pour éviter des trucs de ce genre:
| nom=truc | | |
| | pass=5AB312BA | |
| | | score=23 |
c'est ce que j'en ai compris du moins, je n'ai jamais testé des fichiers sans le \r, c'est un peu idiot de ma part en fait....
par contre, dans les ShowPlayerDialog, je n'ai jamais utilisé cela sans rencontrer de problèmes...
Si tu teste exactement le même code en enlevant une partie du texte, en le faisant plus court, qu'es-ce que ça donne?
++Sim++
-
J'ai essayé
format(menu,sizeof(menu),"{FF595E}Argent{A9C4E4}: %d
{FF595E}Heroïne{A9C4E4}: %dG
{FF595E}Weed{A9C4E4}: %dG%s%s%s%s%s%s%s%s%s%s%s%s",JoueurInfos[giveplayerid][jArgent],SacInfos[giveplayerid][sHero],SacInfos[giveplayerid][sWeed],text[0],text[1],text[2],text[3],text[4],text[5],text[6],text[7],text[8],text[9],text[10],text[11]);
ça donne la même chose :s
Double post
Bonsoir,
alors j'ai tester en faisant que le formatage des arme en mains avec la boucle
for(new slot = 0; slot < 12; slot++)
{
new Arme, balle;
GetPlayerWeaponData(giveplayerid, slot, Arme, balle);
if(Arme != 0 && balle != 0)
{
GetWeaponName(Arme,arme[slot],64);
format(text[slot],64,"\nArme: %s - %d balle(s)",arme[slot],balle);
SendClientMessage(playerid,bleuvert,text[slot]);
}
else
{ format(text[slot],64,""); }
}
format(menu,sizeof(menu),"%s%s%s%s%s%s%s%s%s%s%s%s",text[0],text[1],text[2],text[3],text[4],text[5],text[6],text[7],text[8],text[9],text[10],text[11]);
SendClientMessage(playerid,bleuvert,menu);
J'ai testé avec plusieurs arme en mains
[19:33:32] Arme: Desert Eagle - 988 balle(s)
[19:33:32] Arme: Parachute - 999 balle(s)
[19:33:32] Arme: Parachute - 999 balle(s)
[19:33:32] {FF595E}Argent{A9C4E4}: 497498 {FF595E}Heroïne{A9C4E4}: 2G {FF595E}Weed{A9C4E4}: 2G Arme: Parachute - 999 balle(s)
On dirais que le dernier format écrase le précédent.
Je ne comprend pas pourquoi.
-
regarde sur le wiki c'est inscrit comme ceci
"1. Line\r\n2. Line\r\n3. Line"
je serais partant pour dire que apparement \n n'est plus sufisant apparement mais \r\n donc
format(string,sizeof(string),"Sac de {FFFF9A}%s",nom2);
format(menu,sizeof(menu),"{FF595E}Argent{A9C4E4}: %d\r\n{FF595E}Heroïne{A9C4E4}: %dG\r\n{FF595E}Weed{A9C4E4}: %dG\r\n%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",JoueurInfos[giveplayerid][jArgent],SacInfos[giveplayerid][sHero],SacInfos[giveplayerid][sWeed],text[0],text[1],text[2],text[3],text[4],text[5],text[6],text[7],text[8],text[9],text[10],text[11],text[12],text[13],text[14],text[15],text[16],text[17],text[18],text[19],text[20],text[21]);
SendClientMessage(playerid,bleuvert,menu);
ShowPlayerDialog(playerid,fouillepolice,DIALOG_STYLE_MSGBOX,string,menu,"Valider","Retour");
juste a tester je n'ai pas tester mais c'est juste une deduction
-
non car pour mes autre menu le '/n' suffit, le soucis doit venir dut text[]
comme je 'lai dit plus haut
-
et si tu retire la phrase ton dialogue se met corectement??
-
oui, il m'affiche l'argent et la drogues normalement