GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Eloctro le 23 Avril 2009, 13:18:51
-
Salut ,
Je veut afficher des donner mais je n'y arrive pas sa bug :
new string[256];
SendClientMessage(playerid, 0xAA3333AA,string);
format(string, sizeof(string), "Maison de %d actulement %s",Maison1P,Maison1);//Maison1P est le propiétaire avec des lettres /Maison1 est 0 ou 1 si la maisn est libre ou pas .
Mon Problème 2 je n'arrive pas a récupére les infos :
public Lmaison()
{
new File: file = fopen("maison.rpg", io_read);
if (file)
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
if( strcmp( key , "Maison1" , true ) == 0 ) { val = ini_GetValue( Data ); Maison1 = strval( val ); }
if( strcmp( key , "Maison1P" , true ) == 0 ) { val = ini_GetValue( Data ); Maison1P = strval( val ); }//Erreur ICI
fclose(file);
}
return 1;
}
Voilla l'erreur de la ligne :
K:\Sa-mp Serveur\Mode-Mixte\filterscripts\Maisontest.pwn(109) : error 033: array must be indexed (variable "Maison1P")
Et je vous donnes mais 2 variables qui sont en haut du GM :
new Maison1P[MAX_PLAYER_NAME];
new Maison1;
-
Salut,
en premier lieu, dans ton format tu place mal tes symboles (ne trouvant pas meilleur mot), tu doit placer le %s avant le %d
voici d'ailleur leurs significations:
%b Inserts a number at this position in binary radix
%c Inserts a single character.
%d Inserts an integer (whole) number
%f Inserts a floating point number.
%i Inserts an integer.
%s Inserts a string.
%x Inserts a number in hexadecimal notation.
%% Inserts the literal '%'
bref:
new string[96];//vu la longueur de ton texte, il est inutile d'utiliser un string très long
format(string, sizeof(string), "Maison de %s actuellement %d",Maison1P,Maison1);//Maison1P est le propriétaire avec des lettres /Maison1 est 0 ou 1 si la maisn est libre ou pas
SendClientMessage(playerid, 0xAA3333AA,string);//tu dois envoyer le message après l'avoir formaté, non pas avant
Par la suite, ce code m'est totalement incompréhensible, désolé, mais je crois que tu cherche à faire un fichier du genre ini
pour ce genre de données, je te recommanderais plutôt de les placer une après l'autre avec un simple espace les séparant (et peut-être un fichier te servant de modèle en inscrivant la correspondance de chaque donnée)
Sinon ton erreur est toute simple, tu cherche à stocké un nombre dans ton string, pour obtenir un résultat acceptable il te faudrait changer:
Maison1P = strval( val );pour:
format(Maison1P, sizeof(Maison1P), "%d", val);
en espérant t'avoir légèrement aidé
EDIT Syg : Je me suis permis de remplacer le %s par un %d dans ta dernière ligne de code
++Sim++