GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: JohnAnto le 20 Octobre 2012, 16:13:02
-
Bonjour,
J'ai un problème avec un tableau. Script du tableau dans OnPlayerCommandText :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/v", cmdtext, true) == 0)
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vehicule", "Airplane\nHelicopter\nBoat\nBikes\nIndustrial\nOffRoad\nSportcar\nUnique", "Ok", "Annuler");
return 1;
}
return 0;
}
Et dans OnDialogResponse :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(listitem == 0) // Airplanes
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Aiplane","At-400\Andromada\nShamal\nBeagle\nCropduster\nDodo\nSkimmer\Nevada\Stuntplane", "Ok", "Cancel");
if(dialogid == 2) //
{
new Float:X,Float:Y,Float:Z, vehcreated;
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
if(!response)return 1;
if(listitem == 0) // Sa correspond au Shamal.
{
vehcreated = CreateVehicle(577, X,Y,Z, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated,0); // Je met le joueur dans le véhicule
}
return 1;
}
Quand je compile, voilà ce qui s'affiche :
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(234) : error 027: invalid character constant
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(234) : error 027: invalid character constant
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(242) : warning 202: number of arguments does not match definition
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(245) : warning 217: loose indentation
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(256) : error 030: compound statement not closed at the end of file (started at line 234)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Des erreurs :(
Je ne comprend pas les erreurs, je ne les vois pas. A vrai dire je suis un peu perdu. :-\
Quelqu'un peut m'expliquer le problème s'il vous plait ?
Je tiens à préciser que c'est un tableau qui permet de spawn des véhicules. Normalement sa doit marché comme ça : je fais /v, un tableau apparait avec une liste des différentes catégorie de véhicule, si par exemple on clique sur la catégorie Airplane, on attérie sur une autre liste avec la liste des avions, et quand on clique sur un avion (exemple : le shamal) on spawn directement dans l'avion.
Je vous remercie d'avance.
Toute réponse hors-sujet seras immédiatement signalée à l'administration. Le règlement du forum est disponible sur le lien suivant : http://www.gtaonline.fr/forums/index.php/topic,2.0.html (http://www.gtaonline.fr/forums/index.php/topic,2.0.html)
-
Perso, dans mon OnPlayerCommandText , j'ai pas le Return 1 car a ma connaissance, je ne l'es pas mis la
mais a la fin , retire le et dit moi.
-
Perso, dans mon OnPlayerCommandText , j'ai pas le Return 1 car a ma connaissance, je ne l'es pas mis la
mais a la fin , retire le et dit moi.
J'ai retirer le return 1; comme ceci :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/v", cmdtext, true) == 0)
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vehicule", "Airplane\nHelicopter\nBoat\nBikes\nIndustrial\nOffRoad\nSportcar\nUnique", "Ok", "Annuler");
}
return 0;
}
Toujours les memes les erreurs
-
:facepalm:
Je t'es pas dit de mettre Return 0 mais de retiré la ligne de Return 1 !
-
:facepalm:
Je t'es pas dit de mettre Return 0 mais de retiré la ligne de Return 1 !
Voilà :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/v", cmdtext, true) == 0)
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vehicule", "Airplane\nHelicopter\nBoat\nBikes\nIndustrial\nOffRoad\nSportcar\nUnique", "Ok", "Annuler");
}
}
Sa affiche des erreurs quand même :
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(233) : error 027: invalid character constant
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(233) : error 027: invalid character constant
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(241) : warning 202: number of arguments does not match definition
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(244) : warning 217: loose indentation
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(255) : error 030: compound statement not closed at the end of file (started at line 233)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
-
Je te répond sous .... 12 minutes :)
-
Je te répond sous .... 12 minutes :)
T'étais pas obliger de poster pour dire ça tu sais, en plus, tu n'as même pas répondu sous tes "12 minutes".
Sinon je peux pas t'aider.
-
on va tenter de repondre avec de vrais reponse valable
pour commencer remet ton return 1 et return 0 a leur place sa ne vient pas de la
pour continuer montre nous les lignes qui te provoque les erreures car bon j'ai pas envie de tout eplucher
EDIT j'ai regarder de plus pres et tu t'emmêle les pinceaux regarde un peu sa
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en question
{
new Float:X,Float:Y,Float:Z,Float:A, vehcreated[MAX_PLAYERS];//Attention pour eviter pas mal de probleme cette variable declare la en haut de ton script new vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);//tu avais zapper de prendre l'angle du joueur
if(listitem == 0) // Sa correspond au Shamal.
{
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
return 1;
}
-
on va tenter de repondre avec de vrais reponse valable
pour commencer remet ton return 1 et return 0 a leur place sa ne vient pas de la
pour continuer montre nous les lignes qui te provoque les erreures car bon j'ai pas envie de tout eplucher
EDIT j'ai regarder de plus pres et tu t'emmêle les pinceaux regarde un peu sa
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en question
{
new Float:X,Float:Y,Float:Z,Float:A, vehcreated[MAX_PLAYERS];//Attention pour eviter pas mal de probleme cette variable declare la en haut de ton script new vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);//tu avais zapper de prendre l'angle du joueur
if(listitem == 0) // Sa correspond au Shamal.
{
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
return 1;
}
Alors, bonne nouvelle, quand je compile le script, aucune erreur :biggrin: et par contre une mauvaise nouvelle, quand je suis sur le serveur et que je fais /v voilà ce qui s'affiche :
http://img15.hostingpics.net/pics/416166vehiculespawn.png (http://img15.hostingpics.net/pics/416166vehiculespawn.png)
Dans la barre, que je mette le nom d'une catégorie, le nom d'un véhicule ou l'id d'un véhicule sa ne marche pas :(
Moi j'aimerais que sa fasse : je fais /v, un tableau apparait avec une liste des différentes catégorie de véhicule, si par exemple on clique sur la catégorie Airplane, on attérie sur une autre liste avec la liste des avions, et quand on clique sur un avion (exemple : le shamal) on spawn directement dans l'avion
Je vous remercie d'avance.
-
Change DIALOG_STYLE_INPUT par DIALOG_STYLE_LIST.
-
Change DIALOG_STYLE_INPUT par DIALOG_STYLE_LIST.
Merci. Malheuresement j'ai un autre problème. Regardez : http://img15.hostingpics.net/pics/946881vehiculespawnprob.png (http://img15.hostingpics.net/pics/946881vehiculespawnprob.png)
Je peut spawner 10 véhicules et ils ne disparraisent pas !
Comment faire ?
Je vous remercie d'avance.
-
Cela dépend, si ils ont bcp de vie, t dans la merde, autrement fais une Commande
/detruire
-
Fait un tableau global avec pour index l'id du joueur, donc un truc du genre
new gCreatedVehicle[MAX_PLAYERS];
Ensuite quand tu créer un véhicule tu stock son id dans ce tableau puis quand le joueur créé un autre véhicule tu détruit l'ancien s'il y en a eu un ;)
-
Fait un tableau global avec pour index l'id du joueur, donc un truc du genre
new gCreatedVehicle[MAX_PLAYERS];
Ensuite quand tu créer un véhicule tu stock son id dans ce tableau puis quand le joueur créé un autre véhicule tu détruit l'ancien s'il y en a eu un ;)
Escusez moi, mais je n'est pas trop compris ce que vous voulez dire. Voilà mon bout de script qui permet de spawn des véhicules :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en question
{
new Float:X,Float:Y,Float:Z,Float:A, vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
if(listitem == 0)
{
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
return 1;
}
Ici donc, sa vas spawné un avion : l'At-400 (id 577).
J'ai juste compris qu'il fallait je mette le new gCreatedVehicle[MAX_PLAYERS]; au début de mon script, mais c'est tous aprés je ne c'est plus comment faire.
Je vous remercie d'avance.
-
si tu regarde bien ce que j'ai mis tu as new vehcreated[MAX_PLAYERS]; donc tu l'initialise a -1 a la connection du joueur est si pas egale a -1 tu detruit avant de creer
-
si tu regarde bien ce que j'ai mis tu as new vehcreated[MAX_PLAYERS]; donc tu l'initialise a -1 a la connection du joueur est si pas egale a -1 tu detruit avant de creer
Je ne comprend pas
-
non
public OnPlayerConnect(playerid)
{
vehcreated[playerid] = -1;
return 1;
}puis
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en questtion
{
new Float:X,Float:Y,Float:Z,Float:A, vehcreated[MAX_PLAYERS];//Attention pour eviter pas mal de probleme cette variable declare la en haut de ton script new vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);//tu avais zapper de prendre l'angle du joueur
if(listitem == 0) // Sa correspond au Shamal.
{
if(vehcreated[playerid] == -1)
{
vehcreated[playerld] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
else
{
DestroyVehicle(vehcreated[playerid]);
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
}
return 1;
}
pour eviter le copier coller bete j'ai volontairement glisser une erreure =)
-
non
public OnPlayerConnect(playerid)
{
vehcreated[playerid] = -1;
return 1;
}puis
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en questtion
{
new Float:X,Float:Y,Float:Z,Float:A, vehcreated[MAX_PLAYERS];//Attention pour eviter pas mal de probleme cette variable declare la en haut de ton script new vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);//tu avais zapper de prendre l'angle du joueur
if(listitem == 0) // Sa correspond au Shamal.
{
if(vehcreated[playerid] == -1)
{
vehcreated[playerld] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
else
{
DestroyVehicle(vehcreated[playerid]);
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
}
return 1;
}
pour eviter le copier coller bete j'ai volontairement glisser une erreure =)
Dacors, je vous remercie sa marche. Néanmoins, j'ai encore un problème, sachant qu'il ne vas pas y avoir que l'at 400 que l'on pourras spawné, j'ai rajouté un autre véhicule. Voici le script :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2) //l'id du dialogie en questtion
{
new Float:X,Float:Y,Float:Z,Float:A;//Attention pour eviter pas mal de probleme cette variable declare la en haut de ton script new vehcreated[MAX_PLAYERS];
GetPlayerPos(playerid,X,Y,Z); // Je récupère les positions du joueur.
GetPlayerFacingAngle(playerid,A);//tu avais zapper de prendre l'angle du joueur
if(listitem == 0) // Sa correspond au Shamal.
{
if(vehcreated[playerid] == -1)
{
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
else
{
DestroyVehicle(vehcreated[playerid]);
vehcreated[playerid] = CreateVehicle(577, X,Y,Z,A, 0, 1, -1); // Je crée le véhicule sur la position du joueur
PutPlayerInVehicle(playerid,vehcreated[playerid],0); // Je met le joueur dans le véhicule
}
}
}
return 1;
}
if(dialogid == 2)
{
new Float:X,Float:Y,Float:Z,Float:A;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,A);
if(listitem == 1)
{
if(vehcreated[playerid] == -1)
{
vehcreated[playerid] = CreateVehicle(519, X,Y,Z,A, 0, 1, -1); //le shamal (id 519)
PutPlayerInVehicle(playerid,vehcreated[playerid],0);
}
else
{
DestroyVehicle(vehcreated[playerid]);
vehcreated[playerid] = CreateVehicle(519, X,Y,Z,A, 0, 1, -1); //le shamal (id 519)
PutPlayerInVehicle(playerid,vehcreated[playerid],0);
}
}
}
return 1;
}
Comme vous le voyez, j'ai voulu rajouté l'avion nommé : Shamal. Quand je compile voilà ce qui s'affiche :
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(235) : warning 219: local variable "X" shadows a variable at a preceding level
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(235) : warning 219: local variable "Y" shadows a variable at a preceding level
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(235) : warning 219: local variable "Z" shadows a variable at a preceding level
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(235) : warning 219: local variable "A" shadows a variable at a preceding level
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(248) : warning 217: loose indentation
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(249) : warning 217: loose indentation
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(260) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(263) : error 021: symbol already defined: "GetPlayerPos"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(265) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(267) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(272) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(280) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(294) : warning 203: symbol is never used: "A"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(294) : warning 203: symbol is never used: "X"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(294) : warning 203: symbol is never used: "Y"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\vehiculespawn.pwn(294) : warning 203: symbol is never used: "Z"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Je ne comprend pas le problème.
Je vous remercie d'avance.
Cordialement JohnAnto
PS : Une erreur pas erreure :)
-
Faudrait essayer de résoudre les erreurs tout seul.
Ta juste à faire la traduction des erreurs, c'est simple:
symbol already defined: "GetPlayerPos" -> GetPlayerPos à déjà été définis. (Tu l'a peut être mis 2x)
warning 203: symbol is never used: "A" -> Ce symbole n'a pas été utilisé dans le script.
local variable "X" shadows a variable at a preceding level -> Tu as déjà définis X,Y,Z,A plus haut dans le script (ou dans ta callback).
A toi de résoudre ces bugs maintenant.
-
Faudrait essayer de résoudre les erreurs tout seul.
Ta juste à faire la traduction des erreurs, c'est simple:
symbol already defined: "GetPlayerPos" -> GetPlayerPos à déjà été définis. (Tu l'a peut être mis 2x)
warning 203: symbol is never used: "A" -> Ce symbole n'a pas été utilisé dans le script.
local variable "X" shadows a variable at a preceding level -> Tu as déjà définis X,Y,Z,A plus haut dans le script (ou dans ta callback).
A toi de résoudre ces bugs maintenant.
Vous postez rien, c'est pareil, je les ai traduis, je les ai trouvées, mais sa marche pas.
Vas falloir, que je rajoute sa à chaque réponse aussi : Toute réponse hors-sujet ou inutile seras immédiatement signalée à l'administration. Le règlement du forum est disponible sur le lien suivant : http://www.gtaonline.fr/forums/index.php/topic,2.0.html (http://www.gtaonline.fr/forums/index.php/topic,2.0.html)
Je t'invite à en prendre connaissance.
-
Les règles du forum précisent aussi de ne pas poster pour chaque problèmes et de faire des recherches.
-
Bonhomme c'est pas en parlant comme ça qu'on va t'aidé.
-
Je ne comprends pas pourquoi vous ne voulez pas réfléchir 2 secondes a vos problèmes, surtout que Pawno vous dit les erreurs et les lignes, moi qui n'ai pas touché au Pawn depuis belle lurette je ne pense pas avoir de grandes difficultés si je décidais de m'y ré-intéresser, étant un dérivé du C/C++ il y a donc pas mal de similitude avec d'autres langages de progs, que ça soit dans les méthodes ou la "façon de faire".
Si tu veux apprendre il faut le faire par toi même et taper avec t'es doigts, les tutorielles sont fait pour apprendre les bases, tu es obligé d'apprendre par toi même pour comprendre, c'est comme à l'école les profs vont pas remplir les réponses de ton contrôle, ou même en entreprise quand tu te présentes avec un diplôme ça sert simplement à dire que tu à les connaissances mais pas l'expérience, tu dois apprendre "sur le tas" et les stages et/ou l'alternance sont fait pour ça.
Je ne cherche pas vraiment à faire la morale a tous ceux qui demandent de l'aide, mais plutôt réagir sur le fait d'avoir avertis le Staff pour un post de Mams tout à fait correcte, ça fait quelques temps que je regarde chaque post et chaque message de la section pawn, apprenez aussi un minimum l'Anglais pour comprendre vos erreurs.
De toute façon pour avoir de l'aide francophone c'est soit chez nous soit sur le forum officiel, ou pas mal de membre sont aussi inscrit ici et ou les recherches redirigent souvent ici, que ça soit en pawn (sa-mp) , lua (mta) ou squirrel (iv:mp).
Sinon pour ton post :
Vous postez rien, c'est pareil, je les ai traduis, je les ai trouvées, mais sa marche pas.
Comprendre ce que veulent dire les erreurs et les trouvées c'est une chose, mais les corrigées en est une autre, donc si la compilation ne marche pas c'est que tu a toujours un problème dans ton code.
-
on est sympas ici =)
if(dialogid == 2)
{
new Float:X,Float:Y,Float:Z,Float:A;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,A);
if(listitem == 1)
{
if(vehcreated[playerid] == -1)
{
vehcreated[playerid] = CreateVehicle(519, X,Y,Z,A, 0, 1, -1); //le shamal (id 519)
PutPlayerInVehicle(playerid,vehcreated[playerid],0);
}
else
{
DestroyVehicle(vehcreated[playerid]);
vehcreated[playerid] = CreateVehicle(519, X,Y,Z,A, 0, 1, -1); //le shamal (id 519)
PutPlayerInVehicle(playerid,vehcreated[playerid],0);
}
}
}
return 1;
} tout sa c'est faux