GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 05 Décembre 2010, 23:51:23

Titre: Tableau qui fait planter le script
Posté par: scott1 le 05 Décembre 2010, 23:51:23
J'ai un soucis de formatage alors j'essaye de trouver une alternative, au tout debut, j'avais essayé


new arme[22][64];
new text[22][64];

puis

enum InfoFouille
{
arme[64],
text[64]
}
new Fouille[22][InfoFouille];
a chaque fois que je met un tableau dans la commande, le script plante, plein d'erreur de variable deja definies.


2Jour que je bloque, j'en ai marre, venez a mon secour svp
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 05 Décembre 2010, 23:54:02
Si tu ne ferme pas ton enum, il risque d'avoir certains problèmes.
Il manque également une virgule après text[64] !


enum InfoFouille
{
arme[64],
text[64],
};
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 05 Décembre 2010, 23:54:56
même avec ça plante

Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 05 Décembre 2010, 23:56:41
Je ne comprend pas pourquoi tu créer ces variables alors quelles sont présente dans l'enum !

enum InfoFouille
{
arme[64],
text[64],
};

new Fouille[MAX_PLAYERS][InfoFouille];
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 00:01:31
Non j'ai dabors essayé avec les 2 news. ça a planté.

j'ai donc essayé avec un enum, même résultat.
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 00:05:09
Normalement le code que je viens te donner au dessus devrait marcher parfaitement.
L'utilise tu dans ton code (Fouille ou InfoFouille) ?

Normalement, pour utiliser InfoFouille comme tu le veux, il faut d'abord passer par Fouille.

Exemple:


Fouille[playerid][text] = "Je suis un test";
Titre: Re : Tableau qui fait planter le script
Posté par: steve76 le 06 Décembre 2010, 00:06:26
@Xartrick: La virgule après le dernier mot de l'enum n'est pas obligatoire.

Donc ca:
enum InfoFouille
{
arme[64],
text[64]
};
c'est correct
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 00:09:08
C'est deux même code pour la même chose, les deux méthodes sont corrects mais pour évité certains oublies, il vaut mieux la mettre (c'est facultatif).
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 00:15:06
Est ce possible que ça vienne du fait que ce soit dans une commande?
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 00:17:40
Surement ! Il me semble qu'un enum doit être définit pour tous et non pour une fonction/callback en particulier.
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 00:24:44
je comprend pas pourquoi même


new arme[22][64];
new text[22][64];

Je vais finir par m'arracher les cheveux
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 00:25:47
Se que je ne comprend pas dans tes new, c'est à sert [64] ?
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 01:11:16
pour eviter de faire

arme1[64] arme2[64] ...

jusque 22, le 64 s'est la taille de la string
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 01:14:51
Donc si je comprend bien, c'est comme si on définissait 22 fois la variable arme(x) (x correspondant à la variable suivante avec +1 que la variable précédente).
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 01:27:54
Voila
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 01:31:11
Tu devrais attendre Sim ou Syg...
Je suis totalement perdu car je ne trouve aucune solution à ton problème.
Désolé.
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 01:56:47
Je vais les attendre alors :s

Merci quand meme
Titre: Re : Tableau qui fait planter le script
Posté par: Brian Turner le 06 Décembre 2010, 18:01:35
Salut,

fait voir tout ton code sinon, sa peux venir de sa, car la... Aucun probleme, code parfait!

++ Brian
Titre: Re : Tableau qui fait planter le script
Posté par: cristab le 06 Décembre 2010, 18:37:17
le Script n'est pas parfait voila l'erreure que tu auras si tu le met sur un script vierge
Citer
C:\Documents and Settings\Lachoute\Bureau\Untitled.pwn(68) : warning 219: local variable "text" shadows a variable at a preceding level
C:\Documents and Settings\Lachoute\Bureau\Untitled.pwn(217) : warning 203: symbol is never used: "Fouille"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Warnings.

donc la var text prend une Majuscule apparement

et de la en mettant une majuscule j'ai plus que ceci
Citer
C:\Documents and Settings\Lachoute\Bureau\Untitled.pwn(217) : warning 203: symbol is never used: "Fouille"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.

bon sa corrigeras pas ton soucis mais bon fallait que je le precise
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 19:09:48
Voici le shema du bug ^^

Citer

Ma commande

different news

sous commande

Si je met mon tableau avant les news, aucun soucis, si je les met en dessous, ou dans une sous commande, bug :s
Titre: Re : Tableau qui fait planter le script
Posté par: cristab le 06 Décembre 2010, 20:20:18
quelle genre de bug ???
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 06 Décembre 2010, 22:59:29
Plein d'erreur comme quoi certaine variable sont deja definie. Ceux qui on tété definie avant le tableau.
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 06 Décembre 2010, 23:24:17
Copie nous le rapport d'erreur généré par le compilateur.
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 07 Décembre 2010, 01:46:33
je n'ai plus que 3 erreur maintenant, s'est bisard ..


Citer
C:\Documents and Settings\Propriétaire\Bureau\Server 0.3C\gamemodes\GM12.pwn(12360) : error 021: symbol already defined: "commande"
C:\Documents and Settings\Propriétaire\Bureau\Server 0.3C\gamemodes\GM12.pwn(12785) : error 021: symbol already defined: "commande"
C:\Documents and Settings\Propriétaire\Bureau\Server 0.3C\gamemodes\GM12.pwn(13729) : error 021: symbol already defined: "faction"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.
Titre: Re : Tableau qui fait planter le script
Posté par: Xartrick le 07 Décembre 2010, 01:47:47
Il t'explique que en gros tu défini une même variable plusieurs fois.
Diffère bien tes variables avec des noms bien différent.
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 07 Décembre 2010, 02:35:21
je sais ce que ça veux dire ;)

En fait si je ne le met pas, pas de soucis,

si non il me dit qu'elle est deja définie, alors qu'elle n'est definie que 5 fois dans 5 commande différente.

Citer
cmd 1
{
     new commande[128];
}
cmd2
{
     new commande[128];
}
...


S'est plus que bisard quand meme
Titre: Re : Tableau qui fait planter le script
Posté par: Brian Turner le 07 Décembre 2010, 16:55:10
au pire essaye de changer leur nom non? genre: factioncmd et commandecmd ^^
Titre: Re : Tableau qui fait planter le script
Posté par: scott1 le 07 Décembre 2010, 17:08:20
J'ai essayé, même résultat