GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Sartoflo le 03 Mai 2009, 14:55:46
-
Voila jai voulu créer un petit FS pour un serveur de team mais lorsque je met une commande /rep réservé aux admins, jai ce probleme:
#
// /rep
#
if(strcmp(cmd, "/rep", true) == 0) {
#
if IsPlayerAdmin(playerid)
#
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
#
SetVehicleHealth(vehicleid,1000.1000);
#
#
#
return 1;
#
#
}
erreures: F:\cmdsfssarto.pwn(102) : warning 217: loose indentation
F:\cmdsfssarto.pwn(109) : error 001: expected token: "*then", but found "-identifier-"
F:\cmdsfssarto.pwn(110) : warning 217: loose indentation
F:\cmdsfssarto.pwn(110) : error 017: undefined symbol "vehicleid"
F:\cmdsfssarto.pwn(113) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
Pouvez vous me dire ce qui ne marche pas?
==> pastebin: http://pastebin.gtaonline.fr/pastebin.php?show=588 (http://pastebin.gtaonline.fr/pastebin.php?show=588) (certaines fonctions ne sont pas finies mais je les ferait.) voila merci d'avance :)
(par contre ça ne fait pas longtemps que j'ai commencé le pawn)
-
Essaye sa :
if(strcmp(cmd, "/rep", true) == 0)
{
new vehiculeid;
vehiculeid = GetPlayerVehicleID(playerid);
if IsPlayerAdmin(playerid)
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(vehicleid,1000.1000);
}
return 1;
}
++
MrT®
-
J'ai essayé et ça me donne ça:
H:\cmdsfssarto.pwn(110) : error 017: undefined symbol "vehiculeid"
H:\cmdsfssarto.pwn(112) : error 001: expected token: "*then", but found "{"
H:\cmdsfssarto.pwn(60) : warning 203: symbol is never used: "dancestyle"
H:\cmdsfssarto.pwn(60 -- 126) : error 010: invalid function or declaration
H:\cmdsfssarto.pwn(60 -- 127) : error 010: invalid function or declaration
H:\cmdsfssarto.pwn(60 -- 127) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
edit petite erreur:c'est vehicleid non vehiculeid H:\cmdsfssarto.pwn(112) : error 001: expected token: "*then", but found "{"
H:\cmdsfssarto.pwn(60) : warning 203: symbol is never used: "dancestyle"
H:\cmdsfssarto.pwn(60 -- 126) : error 010: invalid function or declaration
H:\cmdsfssarto.pwn(60 -- 127) : error 010: invalid function or declaration
H:\cmdsfssarto.pwn(60 -- 127) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
au cas ou le code pawn avec vehicleid: // /rep
if(strcmp(cmd, "/rep", true) == 0)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
if IsPlayerAdmin(playerid)
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(vehicleid,1000.1000);
}
return 1;
}
-
Erreur spotted:
Regarde ta fonction IsPlayerAdmin et Met if(IsPlayerAdmin(playerid))
;)
++
nikko
-
if(strcmp(cmdtext, "/rep", true) == 0)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
if (IsPlayerAdmin(playerid)
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(vehiculeid,1000.1000);
}
return 1;
}
Si ca fonctionne pas '-_-
-
Ah effectivement, je l'avais juste "enlevé" (mit avec //)
Att j'esseye de trouver le pb...
EDIT:
Esseye ca ;) ;) :
if(strcmp(cmd, "/rep", true) == 0)
{
if(IsPlayerAdmin(playerid))
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
return 1;
}
++
nikko
-
Salut,
tu devrais mettre tes accolade car présentement, ton code envoie le SendClientMessage aux admins et répare le véhicule dans tous les cas
++Sim++
-
voila ça marche :) jai testé et pour le probleme du /rep qui répare les véhicules de tous, j'ai remis un autre if(IsPlayerAdmin(playerid))
Code final:
// /rep
if(strcmp(cmd, "/rep", true) == 0)
{
if(IsPlayerAdmin(playerid))
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
if(IsPlayerAdmin(playerid))
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
return 1;
}
et par tu devrais mettre tes accolade
qu'entend-tu? (je suis désolé le plus gros du pawn que je connait je l'ai appris aujourd'hui même.) sinon merci a tous :) c'est tres sympa de votre part :) allez encore merci ça m'aide beaucoup :)
-
Plus propre comme ça
if(strcmp(cmd, "/rep", true) == 0)
{
if(IsPlayerAdmin(playerid) && IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
}
return 1;
}
++
R@f
-
Il dit de faire ca:
if(strcmp(cmd, "/rep", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(IsInAnyVehicle(playerid)
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
}
else
{
SendClientMessage(playerid,COLOR_PINK,"Vous n'etes pas dans un vehicule");
}
}
return 1;
}
-
hum ok je comprend mieux merci une 3eme fois a vous tous
par contre Nikko tu as fait une erreur:
if(strcmp(cmd, "/rep", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(IsInAnyVehicle(playerid)) // au lieu de: if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_PINK,"Bon jvous répare votre caisse mais c'est pas pour autant que vous devez m'appeler toutes les 2 minutes!");
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
}
else
{
SendClientMessage(playerid,COLOR_PINK,"Vous n'etes pas dans un vehicule");
}
}
return 1;
}
-
Oui désolé lol
++
nikko
-
Alors voila, j'ai encore un probleme d'undefined symbole, lorsque je modifie le spawn code de ls-parachute, j'ai quelques erreures.
Code:
public OnPlayerRequestClass(playerid, classid)
{
// 60 SetupPlayerForClassSelection(playerid);
printf("Classid: %d", classid);
switch (classid) {
case 0:
{
// 65 SetPlayerPos(playerid,1128.9185,-1490.0765,22.7690,358.3558);
// 66 SetPlayerCameraPos(playerid,1129.0316,-1494.8345,22.7690,359.3307);
// 67 SetPlayerCameraLookAt(playerid,1128.9185,-1490.0765,22.7690,358.3558);
GameTextForPlayer(playerid, "Meufs", 1000, 3);
}
case 1:
{
// 72 SetPlayerPos(playerid,78,958.7613,-1361.6930,13.6563,177.4526);
// 73 SetPlayerCameraPos(playerid,78,958.7613,-1361.6930,13.6563,177.4526);
// 74 SetPlayerCameraLookAt(playerid,78,958.7613,-1361.6930,13.6563,177.4526);
GameTextForPlayer(playerid, "Chicken", 1000, 3);
}
}
return 1;
}
Erreures: C:\Users\Ana\Documents\pawno\gamemodes\spawncodetest1.pwn(60) : error 017: undefined symbol "SetupPlayerForClassSelection"
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(65) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(66) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(67) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(72) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(72) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(73) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(73) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(74) : warning 202: number of arguments does not match definition
C:\Users\Documents\pawno\gamemodes\spawncodetest1.pwn(74) : warning 202: number of arguments does not match definition
1 Error.
code original: SetupPlayerForClassSelection(playerid)
{
SetPlayerPos(playerid,1545.5275,-1370.0961,329.4535);
SetPlayerCameraPos(playerid,1545.5275,-1365.0961,329.4535);
SetPlayerCameraLookAt(playerid,1545.5275,-1370.0961,329.4535);
}
//---------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
SetupPlayerForClassSelection(playerid);
printf("Classid: %d", classid);
switch (classid) {
case 0..14:
{
GameTextForPlayer(playerid, "Building", 1000, 3);
}
case 15:
{
GameTextForPlayer(playerid, "Pond", 1000, 3);
}
}
return 1;
}
Vous remarquerez que cela impose une seule caméra pour tous les spawns :s ce qui est tres dérangeant :s
Pouvez vous m'aider? j'ai cherché une solution pendant cette nuit sans résultat(entre 2 et 4 heures de recherches...). Merci d'avance
-
Premièrement, tu n'a plus besoin d'appeler la fonction SetupPlayerForClassSelection.
Ensuite, tu utilises mal la fonction SetPlayerPos, cette fonction ne prend que 4 paramètres, pas 5 ou 6 :
SetPlayerPos (playerid, X, Y, Z);
Voici ton bout de code corrigé :
public OnPlayerRequestClass(playerid, classid)
{
printf("Classid: %d", classid);
switch (classid) {
case 0:
{
SetPlayerPos(playerid,1128.9185, -1490.0765, 22.7690);
SetPlayerCameraPos(playerid,1129.0316,-1494.8345,22.7690);
SetPlayerCameraLookAt(playerid,1128.9185,-1490.0765,22.7690);
GameTextForPlayer(playerid, "Meufs", 1000, 3);
}
case 1:
{
SetPlayerPos(playerid,958.7613,-1361.6930,13.6563);
SetPlayerCameraPos(playerid,958.7613,-1361.6930,13.6563);
SetPlayerCameraLookAt(playerid,958.7613,-1361.6930,13.6563);
GameTextForPlayer(playerid, "Chicken", 1000, 3);
}
}
return 1;
}
++
Syg
-
merci beaucoup Syg ça marche niquel pour le spawn meuf me reste a configurer celui des chickens :) encore merci.
Voila j'ai modifié ça pour la caméra Chicken.
public OnPlayerRequestClass(playerid, classid)
{
printf("Classid: %d", classid);
switch (classid) {
case 0:
{
SetPlayerPos(playerid,1128.9185, -1490.0765, 22.7690);
SetPlayerCameraPos(playerid,1129.0316,-1494.8345,22.7690);
SetPlayerCameraLookAt(playerid,1128.9185,-1490.0765,22.7690);
GameTextForPlayer(playerid, "Meufs", 1000, 3);
}
case 1:
{
SetPlayerPos(playerid,958.7613,-1361.6930,13.6563);
SetPlayerCameraPos(playerid,958.1971,-1358.1554,13.3502);
SetPlayerCameraLookAt(playerid,958.7613,-1361.6930,13.6563);
GameTextForPlayer(playerid, "Chicken", 1000, 3);
}
}
return 1;
}
Voila merci pour tout :)