-
Ismét a segítségeteket kérném abban, hogy találtam egy bilincsel parancsot azonban rosszul mûködik, 1 rendõr nem tudja beírni 2. ha másik karival vagyok pl civil és beírom megcsinálja az animot és kiírja a közelemben lévõ játékosnak és nekem is hogy megbilincselve és nem tudunk mozogni. Mi lehet a gond? Tudnátok esetleg segíteni? küldöm a kódot:
CMD:bilincs(playerid, params[])
{
new
Float:x,
Float:y,
Float:z;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerTeam(playerid) != Rendor)
{
GetPlayerPos(i, x, y, z);
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
{
if(IsPlayerBilincsed == 0)
{
GameTextForPlayer(i, \"~b~Megbilincselve!\", 1500, 0);
TogglePlayerControllable(i, 0);
ApplyAnimation(playerid, \"PED\", \"cower\", 1, 1, 0, 0, 0, 0, 1);
}
}
}
}
}
return 1;
}
-
nézd meg ezt hogy megfelel e neked...itt kell adni játékos azonosítót de ha kell megtudom írni úgy hogy a legközelebbi játékosra vonatkozzon mert szerintem az volt az alapötlet itt csak a megvalósítás lett furcsa :D
CMD:bilincs(playerid, params[])
{
new giveplayerid;
if(sscanf(params,\"r\",giveplayerid)) { return SendClientMessage(playerid,0xFF6600FF,\"Parancs: /bilincs [Játékos ID / Név]\"); }
if(playerid == giveplayerid) { return SendClientMessage(playerid,0xFF6600FF,\"Nem tudod magadat megbilincselni !\"); }
if(GetPlayerTeam(playerid) != Rendor) { return SendClientMessage(playerid,0xFF6600FF,\"Nem vagy rendõr !\"); }
if(!IsPlayerInRangeOfPoint(giveplayerid, 2.0, x, y, z)) { return SendClientMessage(playerid,0xFF6600FF,\"Ez a játékos nincs a közeledben !\"); }
if(IsPlayerBilincsed == 1) { return SendClientMessage(playerid,0xFF6600FF,\"Ez a játékos már meg van bilincselve !\"); }
//
new Float:x,Float:y,Float:z; GetPlayerPos(playerid, x, y, z);
GameTextForPlayer(i, \"~b~Megbilincselve!\", 1500, 0);
TogglePlayerControllable(i,0);
ApplyAnimation(playerid, \"PED\", \"cower\", 1, 1, 0, 0, 0, 0, 1);
return 1;
}
-
if(GetPlayerTeam(playerid) != Rendor)
nél != helyett írj ==-t!
GetPlayerPos(i, x, y, z);
-nál az \'i\' helyére írd a playerid-t
itt utána nem kell {
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
-nél pedig a playerid helyére írd az \'i\' változótû
Ennyit találtam, valószínûleg így már jó lesz ;)
Csak így az összes embert megbilincseli, aki a közeledben van!
-
Na szia!
Köszi a gyors választ! Az amit írtál nekem még nem néztem meg, majd holnap tesztelem. De azokat amiket mondtál átirogattam és nem jó ha a rendõrt választom és beírom, hogy bilincs megbilincseli magát. XD nem tudom mi lehet ez.
-
Úgy értelmesebb hogy /bilincs [iD] és ha nincs a játékos a közelébe akinek az id jét írta be akkor tiltaná..
-
az én megoldásomban úgy van :)
-
Ja tényleg, nem figyeltem. :hmmm:
-
mondjuk én annak a híve vagyok ahol lehet az elején szûrök és nem szarrá TAB-olok :D
szóval lehet egyeseknek ránézésre szokatlan lesz a kódom :)
tehát:
if(!IsPlayerConnected(playerid)) { SendClientMessage(...); return 1; }
if(!IsPlayerAdmin(playerid)) { SendClientMessage(...); return 1; }
// Funkció
és nem így csinálom:
if(IsPlayerConnected(playerid))
{
if(!IsPlayerAdmin(playerid))
{
// Funkció
}
else { SendClientMessage(...); return 1; }
}
else { SendClientMessage(...); return 1; }
nyugi nekem is került vagy 1 hétbe amíg átszoktam :D
csak ha egy feltételt ki akarok szedni akkor simán // elé és kész :)
és szoktam még 1 üzenethez több feltételt szabni :)
de nem részletezém offként csak leírtam hogy mitõl lehet ránézésre furcsa a kódom :)
-
azért bilincseli meg magát, mert õ is beletartozik az i változóba, tehát hozz létre benne egy ilyet:
if(i!=playerid)
és akkor elvileg már jó, ezt kifelejtettem, sajnálom :)
-
Köszönöm a sok választ, segítséget tesztelem amint egy kicsit több idõm lesz és szólok, hogy hogyan sikerült! :D :)