GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Jcvag44800 le 23 Octobre 2011, 22:06:16
-
Salut à tous ^^'
Voilà, une variable ne charge pas, enfin elle n'est pas récupéré :
ClassSel_InitTextDraws(playerid)
{
new file[256], name[256];
format(file, sizeof(file), SERVER_USER_FILE, name);
PlayerInfo[playerid][pLangue] = dini_Int(file, "Langue");
if(PlayerInfo[playerid][pLangue] == 1)
{
txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
ClassSel_InitCityNameText(txtLosSantos);
txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
ClassSel_InitCityNameText(txtSanFierro);
txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
ClassSel_InitCityNameText(txtLasVenturas);
txtClassSelHelper = TextDrawCreate(10.0, 415.0,
" Appuie sur ~b~~k~~GO_LEFT~ ~w~ou ~b~~k~~GO_RIGHT~ ~w~pour changer de ville.~n~ Appuie sur ~r~~k~~PED_FIREWEAPON~ ~w~pour la sélectionner.");
TextDrawUseBox(txtClassSelHelper, 1);
TextDrawBoxColor(txtClassSelHelper,0x222222BB);
TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
TextDrawTextSize(txtClassSelHelper,400.0,40.0);
TextDrawFont(txtClassSelHelper, 2);
TextDrawSetShadow(txtClassSelHelper,0);
TextDrawSetOutline(txtClassSelHelper,1);
TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
}
if(PlayerInfo[playerid][pLangue] == 2)
{
txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
ClassSel_InitCityNameText(txtLosSantos);
txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
ClassSel_InitCityNameText(txtSanFierro);
txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
ClassSel_InitCityNameText(txtLasVenturas);
txtClassSelHelper = TextDrawCreate(10.0, 415.0,
" Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select.");
TextDrawUseBox(txtClassSelHelper, 1);
TextDrawBoxColor(txtClassSelHelper,0x222222BB);
TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
TextDrawTextSize(txtClassSelHelper,400.0,40.0);
TextDrawFont(txtClassSelHelper, 2);
TextDrawSetShadow(txtClassSelHelper,0);
TextDrawSetOutline(txtClassSelHelper,1);
TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
}
}
Quand je vais sur le serveur, le Text n'apparait pas, c'est à dire qu'il évite les deux If ...
J'ai pourtant fait en sorte qu'elle se charge, mais non, ça ne marche pas :'(
-
Pour les condition, il est impossible qu'un même nombre soit égal à a et à b quand a est différent de b donc le mieux et de faire un block avec des else if plutôt que d'enchaîner des tests inutiles.
J'ai factorisé le code, deux codes avec beaucoup de lignes se répète, tu t'imagine si tu as 200 langues sur ton serveur, ça va te faire beaucoup de ligne pour rien.
J'ai rangé et optimisé le code ce qui donne ceci ...
Pastebin GTAOnline.fr - Outil de collaboration dans le développement (http://pastebin.gtaonline.fr/pastebin.php?show=1167)
Si le message rouge Unknown language. s'affiche, c'est que la valeur de PlayerInfo[playerid][pLangue] n'est pas bonne.
Pour cela, dans le else que je t'ai mit, tu peux utiliser le code suivant pour déterminer l'erreur.
printf("La valeur de Langue est: %i", PlayerInfo[playerid][pLangue]);
-
Merci à toi :)
Je testerais quand j'aurais fini des trucs ^^