• 09 Juin 2024, 12:26:22


Auteur Sujet: [Résolu]Variable et chaine  (Lu 1230 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Mac.Max

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
[Résolu]Variable et chaine
« le: 22 Février 2008, 20:09:25 »
Bonjour,

Mon soucis est que je voudrais créer un variable à partir d'une chaine (je ne sais pas si c'est dit correctement)

for(new Ma=1; Ma<40; Ma++)
{
format(string, sizeof(string), "Ma%d", Ma);
new Float:PosPX, Float:PosPY, Float:PosPZ;
PosPX = dini_Int(nomfichier, "PosPX");
PosPY = dini_Int(nomfichier, "PosPY");
PosPZ = dini_Int(nomfichier, "PosPZ");
strval(string) = CreatePickup(1273, 15, PosPX, PosPY, PosPZ);
}

Erreur : error 022: must be lvalue (non-constant) ==> strval(string) = CreatePickup(1273, 15, PosPX, PosPY, PosPZ);

Merci

Maxime
« Modifié: 22 Février 2008, 21:04:27 par Mac.Max »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Variable et chaine
« Réponse #1 le: 22 Février 2008, 20:12:59 »
salut max,

juste comme ça, qu'y a t'il autour de ce bout de code(très près) car la je n'ai aucune idée de ce qu'il est supposé faire a part un pickup à l'endroit où se trouve le joueur

bon, si ce que tu veut c'est juste créé un pickup....
premièrement, si ta boucle s'applique sur les joueurs, il est mieux de faire:
for(new Ma=1; Ma<MAX_PLAYERS; Ma++)
{
if(IsPlayerConneted(Ma)){
}
}

ensuite pour le reste, je ne voit pas a quoi il te sert d'enregistrer les données dans un fichier,
tu devrais plutôt seulement faire une variable:
format(string, sizeof(string), "Ma%d", Ma);
new Float:PosPX, Float:PosPY, Float:PosPZ;
GetPlayerPos(Ma,PosPX,PosPY,PosPZ);
CreatePickup(1273, 15, PosPX, PosPY, PosPZ);
}
si ce n'est pas ça, répond vite

++Sim++
« Modifié: 22 Février 2008, 20:30:38 par Sim »





Hors ligne Mac.Max

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : Variable et chaine
« Réponse #2 le: 22 Février 2008, 20:28:49 »
Salut,

Il n'y a pas grand chose je viens de commencer le script.
ji mis les new Ma1 jusqua Ma40.

public OnFilterScriptInit()
{
new string[256];
for(new Ma=1; Ma<40; Ma++)
{
format(string, sizeof(string), "Ma%d", Ma);
if(dini_Int(nomfichier, "Dispo") == 1)
{
new Float:PosPX, Float:PosPY, Float:PosPZ;
PosPX = dini_Int(nomfichier, "PosPX");
PosPY = dini_Int(nomfichier, "PosPY");
PosPZ = dini_Int(nomfichier, "PosPZ");
strval(string) = CreatePickup(1273, 15, PosPX, PosPY, PosPZ);
}
}
}

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Variable et chaine
« Réponse #3 le: 22 Février 2008, 20:29:52 »
salut,

mais que sont ces Ma.....

++Sim++





Hors ligne Mac.Max

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : Variable et chaine
« Réponse #4 le: 22 Février 2008, 20:31:49 »
le Ma est le raccourci de maison :D

la boucle est faite pour placer les pickups devant chaque maison

EDIT : C'est bon sa compile mais j'ai pas encore tester

SOLUTION :
#define MAX_HAUSES 40

new string[256];
for(new Ma=1; Ma<MAX_HAUSES; Ma++)
{
format(string, sizeof(string), "Ma%d", Ma);
new Float:PosPX, Float:PosPY, Float:PosPZ;
PosPX = dini_Int(nomfichier, "PosPX");
PosPY = dini_Int(nomfichier, "PosPY");
PosPZ = dini_Int(nomfichier, "PosPZ");
Maison[Ma] = CreatePickup(1273, 15, PosPX, PosPY, PosPZ);
}
« Modifié: 22 Février 2008, 21:01:29 par Mac.Max »