GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Ivan_Mackey le 02 Mars 2009, 20:36:32
-
Bonjour , alors voila j'ai un petit probleme quand je veut installé l'include de Mr Fredo il m'affiche ces erreur
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2687) : error 021: symbol already defined: "IsNumeric"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(60) : warning 201: redefinition of constant/macro (symbol "COLOR_GREEN")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(61) : warning 201: redefinition of constant/macro (symbol "COLOR_RED")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(62) : warning 201: redefinition of constant/macro (symbol "COLOR_LIGHTRED")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(65) : warning 201: redefinition of constant/macro (symbol "COLOR_YELLOW")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(67) : warning 201: redefinition of constant/macro (symbol "COLOR_WHITE")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(7755) : error 021: symbol already defined: "strtok"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(7770) : error 047: array sizes do not match, or destination array is too small
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(7774) : error 021: symbol already defined: "split"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(24854) : error 021: symbol already defined: "PlayerToPoint"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26213) : error 017: undefined symbol "vehicleid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26218) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26223) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26226) : warning 235: public function lacks forward declaration (symbol "OnVehiclePaintJob")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26228) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26233) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Et quand j'essaye de supprimer les 2 ligne avec IsNumeric dans l'inc "utils" sa me fais 2 fois plus d'erreur :s
Merci d'avance , Ivan
-
Heu je pense que se sont des erreurs assez simple à résoudre puis qu'elles sont assez bien expliqué dans le rapport d'erreur.
-
Excuse moi mais sa m'aide pas trop...
-
Ma 'nouvelle version' devrait corriger une partie de t'est probleme
-
Sa ma corriger 2 erreurs je crois maintenant j'ai sa....
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2628) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2644) : error 047: array sizes do not match, or destination array is too small
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2690) : error 021: symbol already defined: "IsNumeric"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26213) : error 017: undefined symbol "vehicleid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26218) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26223) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26226) : warning 235: public function lacks forward declaration (symbol "OnVehiclePaintJob")
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26228) : error 017: undefined symbol "playerid"
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26233) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664
Comment faire ? Merci d'avance , Ivan
-
Ta fait un effort a lire et comprendre les erreur au moin ...
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2690) : error 021: symbol already defined: "IsNumeric"
=> fonction deja definie esseye en placant #include <gveh> AVANT toute t'est autre include
=> si meme en placant l'include avant les autre sa ne fonctione pas ouvre mon include et suprime la fonction 'IsNumeric' et place mon include apres les autre
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26226) : warning 235: public function lacks forward declaration (symbol "OnVehiclePaintJob")
=> Ta callback OnVehiclePaintJob est diferente du prototype
=> Le prototype correct est OnVehiclePaintjob(playerid, vehicleid, paintjobid)
=> si tu avait deja la callback ecrite de cette maniere cela veux dire que tu est en samp 0.2.2 ,mon include n'est pas compatible avec 0.2.2 elle est prevu pour 0.2X) donc telecharge le dossier serveur samp 0.2X
Pour les autre erreur montre moi les ligne ...
Faudrait quand meme reflechir un peux pck j'ai franchement l'impression que parfois certaine personne poste dé qu'il on un probleme sans meme avoir lu et tenter de corriger les erreur ...
-
Déja merci de m'aidé MrFredo mais les erreurs j'arrive pas a les résoudre :dry
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26213) : error 017: undefined symbol "vehicleid"
public OnVehicleDeath()
{
Script_OnVehicleDeath(vehicleid);
}
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26218) : error 017: undefined symbol "playerid"
public OnPlayerKeyStateChange()
{
Script_OnPlayerKeyStateChange(playerid, newkeys);
}
Meme erreur...
public OnVehicleMod()
{
Script_OnVehicleMod(playerid, vehicleid, componentid);
}
Meme erreur...
public OnVehicleRespray()
{
Script_OnVehicleRespray(playerid, vehicleid, color1, color2);
}
-
Tu a pas compris ^^
Correction:
public OnVehicleDeath(vehicleid, killerid)
{
Script_OnVehicleDeath(vehicleid);
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
Script_OnVehicleMod(playerid, vehicleid, componentid);
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
Script_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
Script_OnVehicleRespray(playerid, vehicleid, color1, color2);
return 1;
}
Tu aurait du prendre la peine d'ouvrir le gamemode 'new.pwn' que je fourni avec l'include tu aurait vu t'est erreur ...
Comme tu le voit t'est erreur etait que tu ne metait pas les parametre de base dans les callback ...
-
Merci beaucoup !!
Sauf que maintenant il me reste sa...
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2628) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2644) : error 047: array sizes do not match, or destination array is too small
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26231) : warning 203: symbol is never used: "Script_OnPlayerKeyStateChange"
Désolé de te derangé...
-
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26231) : warning 203: symbol is never used: "Script_OnPlayerKeyStateChange"
Ajoute :
Script_OnPlayerKeyStateChange(playerid, newkeys);
Dans:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Pour les autre erreur ouvre l'include et donne moi les ligne 2628 et 2644
-
C:UsersIvanDesktopServe testpawnoincludegveh.inc(2628) : error 025: function heading differs from prototype
static strtok(const string[], &index,seperator=' ')
C:UsersIvanDesktopServe testpawnoincludegveh.inc(2644) : error 047: array sizes do not match, or destination array
return result;
Double post: 03 Mars 2009, 19:08:57
Tout petit up...
-
Tu aurait pas un truc du style 'forward strtok(....' dans ton script par hasard?
-
Dans le GM ?
-
Dans le GM ou dans d'autre include que t'utilise
-
Non :S
-
bizard car moi quand j'voit l'erreur j'ai l'impression que tu a une declaration de strtok quelque part et qu'elle est diferente de la fonction...
Ta bien verifié dans toute t'est include et dans ton GM ?
-
Oui oui :blink
Double post: 01 Janvier 1970, 00:59:59
Désolé du double post mais je fais comment maintenant ? :(
upp !
-
Cherche mieux ou apprend à réparer des erreurs (apprend le pwn quoi) car moi je l'ai testé et à parement je ne suis pas le seul et malgrès les quelques bug de la précédente version je n'ai pas trouvé ce style d'erreur.
-
je viens de voir que j'ai const string[] dans "utils"... C'est a cause de sa ? :-[
Double post: 04 Mars 2009, 19:44:15
Up !
-
j ai dja vu sa quelque part
-
Salut,
je t'aide un petit peu,
C:\Users\Ivan\Desktop\Serve test\pawno\include\gveh.inc(2687) : error 021: symbol already defined: "IsNumeric"
Le compileur détecte la redéfinition d'un symbole, fonction dans ce cas, bref, la fonction IsNumeric revient deux fois, tu dois en éliminer une
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(60) : warning 201: redefinition of constant/macro (symbol "COLOR_GREEN")
Tu redéfini une constante, COLOR_GREEN est déjà défini, deux possibilités, enlever ou #undef COLOR_GREEN au dessus de la ligne
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(7770) : error 047: array sizes do not match, or destination array is too small
La taille d'un array ne correspond pas (trop petit ou grand)
C:\Users\Ivan\Documents\Mes fichiers reçus\VegasVentura.pwn(26226) : warning 235: public function lacks forward declaration (symbol "OnVehiclePaintJob")
tu doit "prédéclarer" la fonction car elle est public , tu dois placer un forward
voilà, essaie de progresser avec ça....
++Sim++
-
Sim c'est erreur la etait deja corriger ^^
par contre pour OnVehiclePaintJob tu te trompe il ne faut pas de forward car il est deja present dans l'include a_samp ;) et sont probleme venait qu'il n'avait pas les bon parametre dans son public OnVehiclePaintJob
Pour ton dernier probleme Ivan j'comprend pas comment tu peux avoir une tel erreur si tu na pas d'autre fonction strtok quelque part desolé
-
Salut,
désolé j'avais pas regarder vraiment les erreurs, je me suis fié aux descriptions.....
un conseil en général pour les erreurs: utiliser GOOGLE TRADUCTION pour ceux qui NE COMPRENNENT PAS
++Sim++
-
J'utilise sa comme include...
#include <gveh>
#include <core>
#include <float>
#include <time>
#include <file>
#include <utils>
#include <morphinc>
Peut etre que je me trompe et qu'il y a un forward strok , j'ai fais rechercher dans tout les include j'ai rechercher foraward strok puis sa a rien trouvé :s
Double post: 05 Mars 2009, 06:11:14
Désolé double post sinon dans mon GM j'utilise cette fonction....
strtok(const string[], &index)
{
A cause de sa ?
-
Ba tu voit que ta la fonction strtok dans ton GM ou include j'en etait sur , Donc suprime la de ton GM ensuite va dans l'incldue recherche static strtok et suprime le mot static ;)
-
Dans mon GM je suprimme quoi plus precisement ?
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Double post: 01 Janvier 1970, 00:59:59
J'ai réussi !
Mais pourquoi quand je fais exemple : /veh 522 1 1
Il me dit que je suis pas autorisé
Et quand je me identifie en /rcon login tout va bien puis quand je fais /veh 522 1 1 il me dit Unkown command... :s
Et aussi j'ai le bug du /vehsave... :S
-
pour le /vehsave je sais qu'il bug il sera corriger dans la version 1.2
pour le /veh tu a bien mit sa dans OnPlayerCommandText:
if(Script_OnPlayerCommandText(playerid,cmdtext)) return 1;
?
-
Oui regarde j'ai sa
//---------------------------<[ OnPlayerCommandText ]>--------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
if(Script_OnPlayerCommandText(playerid,cmdtext)) return 1;
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new playername[MAX_PLAYER_NAME];
new cmd[256];
new tmp[256];
new giveplayerid, moneys, idx;
cmd = strtok(cmdtext, idx);
Et la moitié de commandes marche pas... Il dit Unkown commands
-
oui, et aucune voiture a vendre et elles sont toutes en pannes, mais elle roule quand même :lmfao
-
Salut,
j'ai remarnqué, Ivan, que tu as placé une grande quantité de variables dans ta callback OnPlayerCommandText,
tu devrais éviter ce genre de chose, au lieu de créer plein de variables ainsi que tu te servira plus tard, tu pourrais réutiliser les mêmes,
par exemple:
//---------------------------<[ OnPlayerCommandText ]>--------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
if(Script_OnPlayerCommandText(playerid,cmdtext)) return 1;
new cmd[256], idx;
cmd = strtok(cmdtext, idx);
if(!strcmp("/goto",cmd,true))
{
new Float:x, Float:y, Flaot:z, pid;
cmd = strtok(cmdtext, idx);//on réutilise la variable car les anciennes données sont rendues inutiles ("/goto")
idx = strval(cmd);//on réutilise idx car donnée désormais inutile
if(!IsPlayerConnected(idx))
{
SendClientMessage(.....);
return 1;
}
GetPlayerPos(idx, x, y, z);
SetPlayerPosFindZ(playerid, x+3, y, z+100);
.....
}
}
Par contre, tu devrais toujours suivre les conseils de Syg dans son tuto sur le scripting, déclare tes variables au début de tes commandes
++Sim++
-
Excuse mais j'ai pas trop compris :s
-
Toute ces " variables" sont dans le GM de base
-
Up !! :wall :wall :wall
-
Up de quoi ?
Ta eu tes réponses. :closedeyes
-
Up !! :wall :wall :wall
Surtout un up de 5 heures, la prochaine fois patiente au moins 48 heures...
-
Je n'ai toujours pas compris