GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: imerdu91 le 09 Janvier 2010, 12:47:30
-
Bonjour a tous,
Voila je me présente je m'apelle Remi, je me débrouille assez bien en script du moins je sait comment cela fonctionne.
JE travaille depuis quelque mois sur le LARP traduit, et je le connais presque par coeur et ai pus corriger presque tout les bug gênant.
Mais il y en a un qui persiste, peut être qu'il est super voyant mais je reste en colle dessus,
le système pour menotte bug je peut menotte en étant flic mais lorsque je souhaite demenotter il me dit que le joueure n'est pas menotte, j'ai fait plusieur tentative mais sans fin.
je vous envoie le bout de code.
if(strcmp(cmd, "/menotter", true) == 0 || strcmp(cmd, "/men", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2 || IsACop(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /menotter [Playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(gTeam[giveplayerid] == 2 || IsACop(giveplayerid))
{
SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas menotter un policier!");
return 1;
}
if(PlayerCuffed[giveplayerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, "Joueur déjà menotté!");
return 1;
}
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
new car = GetPlayerVehicleID(playerid);
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas vous menotte vous même!"); return 1; }
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(giveplayerid, car))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Vous avez été menotté par %s, jusqu'à ce qu'un policier vous démenotte.", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "Vous avez menotté %s, jusqu'a ce qu'un policier vous démenotte.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* %s à menotté %s, il ne poura allez nul part.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GameTextForPlayer(giveplayerid, "~r~Menotter", 2500, 3);
TogglePlayerControllable(giveplayerid, 0);
PlayerCuffed[giveplayerid] = 2;
PlayerCuffedTime[giveplayerid] = 99999999999999;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas dans votre voiture, ou vous n'êtes pas le conducteur!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas près de vous!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas connecté!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas policier!");
}
}
return 1;
}
if(strcmp(cmd, "/demenotter", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /demenotter [Playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas vous demenotter vous même!"); return 1; }
if(PlayerCuffed[giveplayerid])
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Vous avez été demenotté par %s.", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "Vous avez démenotté %s.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
GameTextForPlayer(giveplayerid, "~g~Demenotter", 2500, 3);
TogglePlayerControllable(giveplayerid, 1);
PlayerCuffed[giveplayerid] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas menotté!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas près de vous!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Ce joueur n'est pas connecté!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas policier!");
}
}//not connected
return 1;
}
Voila je pense ce qui est une difficulté pour moi doit être une simplicité pour vous.
-
Dans la commande demenotter remplace
if(PlayerCuffed[giveplayerid])
par
if(PlayerCuffed[giveplayerid] == 2)
et sa devrais marcher ;)
Puisque dans la commande menotter tu met cette variable a 2 (PlayerCuffed[giveplayerid] = 2;)
-
Salut.
Comme le dit MrT®, il faut que tu mettes if(PlayerCuffed[giveplayerid] == 2) ou if(PlayerCuffed[giveplayerid] > 0) afin que cela fonctionne ;)
-
Je vous remercie sa marche nikel, je n'y avait pas du tout penser.
Il me reste 2 ou 3 bug mais j'ai peur de devenir soulant xD,
Je ferait un grand topic avec mes bug, mais la il sontg rave dur, sait genre le /spawnchange ou le virtualworld qui deconne :X .
Merci encore