Jump to content

Příkazy /jail a /unjail


chytrak

Recommended Posts

Hodne lidi se tady na to ptalo, tak sem to udelal, chtel bych moc podekovat hlavne Ozimu, za to ze to se mnou skousel. funguje to :d

 

je to udelany v systemu DCMD,

 

 

nahoru do modu

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
new iPlayerRole[MAX_PLAYERS];
forward GetDistanceBetweenPlayers(playerid,playerid2);

 

nekam do volneho mista

public GetDistanceBetweenPlayers(playerid,playerid2)
{
new Float:x1,Float:y1,Float:z12,Float:x2,Float:y2,Float:z21, Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z12);  GetPlayerPos(playerid2,x2,y2,z21);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z21,z12)),2));
return floatround(tmpdis);
}

stock WarpPlayer(playerid, Float:x, Float:y, Float:z, interier, Float:uhel)
{
SetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playerid, interier);
if(uhel > 359 || uhel < 0) uhel = 0;
SetPlayerFacingAngle(playerid, uhel);
SetCameraBehindPlayer(playerid);
}

stock PlayerName(playerid)
{
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}

 

Nyní samotné prikazy

 

nad OnPlayerCommandText

dcmd_unjail(playerid,params[])
{
new id = strval(params); 
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "pouziti /unjail id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Zadane id neni aktualne pripojeno na serveru"); // nnemuzeme zatykat nepripojeneho hrace
else if(iPlayerRole[playerid] != 1) return  SendClientMessage(playerid,  0xFF0000AA, "Nejsi policista"); // kdyz hrac neni policista
else if(iPlayerRole[id] != 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hrac neni ve vezeni"); // nejde propustit hrace ktery neni ve vezeni

iPlayerRole[id] = 0;  new string[256];  SetPlayerWantedLevel(id,0); SpawnPlayer(id); SetPlayerInterior(id, 0);

format(string, sizeof(string), "Hrac %s byl propusten policistou %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);

return 1;
}

dcmd_jail(playerid,params[])
{
new id = strval(params); // todle znaci ze params coz je /prikaz params  , bude id hrace ktereho vyberem
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "pouziti /jail id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Zadane id neni aktualne pripojeno na serveru"); // nnemuzeme zatykat nepripojeneho hrace
else if(iPlayerRole[playerid] != 1) return  SendClientMessage(playerid,  0xFF0000AA, "Nejsi policista"); // kdyz hrac neni policista
else if(iPlayerRole[id] == 1) return  SendClientMessage(playerid,  0xFF0000AA, "Nemuzes zatknout jineho policistu"); // nemuze zatknout jineho fizla
else if(iPlayerRole[id] == 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hrac uz je ve vezeni"); // nejde zatknout hrace znova

if(GetDistanceBetweenPlayers(playerid, id) >= 10) //kdyz je polda od hrace daleko vic nez 10 m
{
SendClientMessage(playerid, 0xFF0000AA, "Jsi příliš daleko na zatknuti .");
} else {
if(GetPlayerWantedLevel(id) > 5) // kdyz ma hrac moc maly wanted level
{
//Tady bude co se stane pri uspesnem zatknuti
WarpPlayer(id,198.8128,161.6897,1003.0300,3,177.4183); iPlayerRole[id] = 50;  new string[256];  SetPlayerWantedLevel(id,0);

format(string, sizeof(string), "Hrac %s byl zatcen policistou %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);
} else {
SendClientMessage(playerid, 0xFF0000AA, "Hrac ma prilis nizky wanted level na zatknuti.");
}
}
return 1;
}

 

do OnPlayerConnect

iPlayerRole[playerid] = 0;

 

do OnPlayerSpawn

if(iPlayerRole[playerid] == 50)
{
WarpPlayer(playerid,198.8128,161.6897,1003.0300,3,177.4183);
}

 

uplne nahoru do OnPlayerCommandText

dcmd(jail,4,cmdtext); 	dcmd(unjail,6,cmdtext);
if(iPlayerRole[playerid] == 50)
{
SendClientMessage(playerid, 0xFF0000AA, "Vezen nemuze pouzivat prikazy.");
return 0;
}

 

UPOZORNENI: V navodu je pouzita promena iPlayerRole, ktera pocita ze policista ma 0, a vezen 50, proto si to upravte podle sebe

Link to comment
Share on other sites

  • Replies 53
  • Created
  • Last Reply

Top Posters In This Topic

JJ nejlepši na tom je že to neni cmd, protože má malou funkčnost mě např "cmd" nešlo tak jsem se zeptal chytraka jesli mi nemůže ukazat "dcmd" tak tu je tut. A děkuji chytrákovi za pochvalu :):)

Link to comment
Share on other sites

Guest [*LoNg*]LiFe

mne to nešlo tak som si to prerobil :d lamaci ak vám to nejde tak

 

new jailed[MAX_PLAYERS]; 

 

on player spawn 
if (jailed[playerid]==1){
SetPlayerColor(playerid, COLOR_BLUE);
iPlayerRole[playerid] = 0;
SetPlayerSkin(playerid, 73);
ResetPlayerWeapons(playerid);
printf(string);
SetPlayerPos(playerid,suradnice);
}
return 1;
}

 

príkazy

 

dcmd_prepustit(playerid,params[])
{
new id = strval(params);
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "Použi: /prepustit id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Toto id neni pripojené");
else if(iPlayerRole[playerid] != 2) return  SendClientMessage(playerid,  0xFF0000AA, "Niesi policajt");
else if(iPlayerRole[id] != 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hráč neni vo vezení"); 

iPlayerRole[id] = 0;  new string[256];
SetPlayerPos(id,2024.7968, 1342.4877, 10.8203);
jailed[id]=0;

format(string, sizeof(string), "Hráč %s bol prepustený policajtom %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);

return 1;
}

dcmd_zatknut(playerid,params[])
{
new id = strval(params); 
new string[256];
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "Použi /zatknut id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Toto id neni pripojené");
else if(iPlayerRole[playerid] != 2) return  SendClientMessage(playerid,  0xFF0000AA, "Niesi policajt"); 
else if(iPlayerRole[id] == 2) return  SendClientMessage(playerid,  0xFF0000AA, "Nemožeš zatknúť iného policajta!"); 
else if(iPlayerRole[id] == 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hráč už sedí vo vezení");

if(GetDistanceBetweenPlayers(playerid, id) >= 10)
{
SendClientMessage(playerid, 0xFF0000AA, "Si príliš ďaleko.");
} else {
{
SetPlayerPos(id,43.944,2024.824,17.301);
jailed[id]=1;
SetPlayerColor(id, COLOR_BLUE);
iPlayerRole[id] = 0;
SetPlayerSkin(id, 73);
ResetPlayerWeapons(id);

format(string, sizeof(string), "Hráč %s bol zatknutý policajtom %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);
}
}
return 1;
}//texty si zmente atď.

 

a ešte

 

if (jailed[playerid]==1){
SendClientMessage(playerid, COLOR_YELLOW, "Nemožeš sa warpnúť!"); //text
return 1;
}

Link to comment
Share on other sites

mne to nešlo tak som si to prerobil :d lamaci ak vám to nejde tak

 

new jailed[MAX_PLAYERS]; 

 

on player spawn 
if (jailed[playerid]==1){
SetPlayerColor(playerid, COLOR_BLUE);
iPlayerRole[playerid] = 0;
SetPlayerSkin(playerid, 73);
ResetPlayerWeapons(playerid);
printf(string);
SetPlayerPos(playerid,suradnice);
}
return 1;
}

 

príkazy

 

dcmd_prepustit(playerid,params[])
{
new id = strval(params);
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "Použi: /prepustit id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Toto id neni pripojené");
else if(iPlayerRole[playerid] != 2) return  SendClientMessage(playerid,  0xFF0000AA, "Niesi policajt");
else if(iPlayerRole[id] != 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hráč neni vo vezení"); 

iPlayerRole[id] = 0;  new string[256];
SetPlayerPos(id,2024.7968, 1342.4877, 10.8203);
jailed[id]=0;

format(string, sizeof(string), "Hráč %s bol prepustený policajtom %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);

return 1;
}

dcmd_zatknut(playerid,params[])
{
new id = strval(params); 
new string[256];
if (!strlen(params)) return SendClientMessage(playerid,  0xFF0000AA, "Použi /zatknut id");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  0xFF0000AA, "Toto id neni pripojené");
else if(iPlayerRole[playerid] != 2) return  SendClientMessage(playerid,  0xFF0000AA, "Niesi policajt"); 
else if(iPlayerRole[id] == 2) return  SendClientMessage(playerid,  0xFF0000AA, "Nemožeš zatknúť iného policajta!"); 
else if(iPlayerRole[id] == 50) return  SendClientMessage(playerid,  0xFF0000AA, "Hráč už sedí vo vezení");

if(GetDistanceBetweenPlayers(playerid, id) >= 10)
{
SendClientMessage(playerid, 0xFF0000AA, "Si príliš ďaleko.");
} else {
{
SetPlayerPos(id,43.944,2024.824,17.301);
jailed[id]=1;
SetPlayerColor(id, COLOR_BLUE);
iPlayerRole[id] = 0;
SetPlayerSkin(id, 73);
ResetPlayerWeapons(id);

format(string, sizeof(string), "Hráč %s bol zatknutý policajtom %s", PlayerName(id), PlayerName(playerid));
SendClientMessageToAll(0xFF0000AA, string);
}
}
return 1;
}//texty si zmente atď.

 

a ešte

 

if (jailed[playerid]==1){
SendClientMessage(playerid, COLOR_YELLOW, "Nemožeš sa warpnúť!"); //text
return 1;
}

 

lol prerobil? ty si to akorad cele zkonil

 

iPlayerRole[playerid] = 0; proc nestavuje promenou povolani 1?

 

printf(string); co printujes?

 

jailed . proc si pridal hraci promenou?

 

if (jailed[playerid]==1){

SendClientMessage(playerid, COLOR_YELLOW, "Nemožeš sa warpnúť!"); //text

return 1; //? return 1 ? dobry ted mu to posle zpravu o tom ze se nemuze warpnout ale warpne se ..

}

 

a kdyz si nekdo da to tvoje jailed pred jiny spawny tak ho to bude spawnovat spatne..

 

if(jailed == 1

 

presun

 

iPlayerRole == 0

presun

Link to comment
Share on other sites

Guest [*LoNg*]LiFe

iPlayerRole[playerid] = 0; //premena nech nema povolanie!

if(jailed == 1 //nemam na premenu povolania 50 ale som si dal premenu jailed!

}

return 1; //bez toho ti to nebude fungovať!a warpnúť sa nevarpne mám to odskúšané :!:

Link to comment
Share on other sites

iPlayerRole[playerid] = 0; //premena nech nema povolanie!

if(jailed == 1 //nemam na premenu povolania 50 ale som si dal premenu jailed!

}

return 1; //bez toho ti to nebude fungovať!a warpnúť sa nevarpne mám to odskúšané :!:

 

 

dit rikam , misto 1 je lepsi 0

jailed akorat michas s iplayerrole

Link to comment
Share on other sites

  • 4 weeks later...

Custe .... a co když nemam povolání pře IRolePlayer nebo jak se to píše ale přes team ......

Normálně SetPlayerTeam.....

 

EDIT :

 

teda IPlayerRole :) :rap2: :rap2: :rap: :rap:

Link to comment
Share on other sites

Lol si hlupák to promena 50 nema byt v podstate povolani to mu jen nastavi nemusis mit nikde udelane je to proste ze mu to da toto aby byl jako vezen a aby 50 proto aby kdyz si delas pvoolani normal aby se ti to nemichalo ...

Link to comment
Share on other sites

  • 10 months later...

lol

C:\Documents and Settings\sovak\Desktop\NZANS\gamemodes\RS.pwn(712) : error 017: undefined symbol "dcmd_jail"

C:\Documents and Settings\sovak\Desktop\NZANS\gamemodes\RS.pwn(713) : error 017: undefined symbol "dcmd_jail"

C:\Documents and Settings\sovak\Desktop\NZANS\gamemodes\RS.pwn(716) : error 017: undefined symbol "params"

C:\Documents and Settings\sovak\Desktop\NZANS\gamemodes\RS.pwn(718) : error 017: undefined symbol "params"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

mam to nadefinovane :d

 

4 Errors.

unjail som nedaval

Link to comment
Share on other sites

nemas DCMD !

 

	#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

 

A to params neviem

Link to comment
Share on other sites

Nějak se mi to nepovedlo

 

pwn:

#include

 

// This is a comment

// uncomment the line below if you want to write a filterscript

//#define FILTERSCRIPT

 

#if defined FILTERSCRIPT

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

new iPlayerRole[MAX_PLAYERS];

forward GetDistanceBetweenPlayers(playerid,playerid2);

public OnFilterScriptInit()

{

print("\n--------------------------------------");

print(" Blank Filterscript by your name here");

print("--------------------------------------\n");

return 1;

}

 

public OnFilterScriptExit()

{

return 1;

}

 

#else

 

main()

{

print("\n----------------------------------");

print(" Blank Gamemode by your name here");

print("----------------------------------\n");

}

 

#endif

 

public OnGameModeInit()

{

// Don't use these lines if it's a filterscript

SetGameModeText("Blank Script");

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

return 1;

}

 

public OnGameModeExit()

{

return 1;

}

 

public OnPlayerRequestClass(playerid, classid)

{

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

return 1;

}

 

public OnPlayerRequestSpawn(playerid)

{

return 1;

}

 

public OnPlayerConnect(playerid)

{

iPlayerRole[playerid] = 0;

return 1;

}

 

public OnPlayerDisconnect(playerid, reason)

{

return 1;

}

 

public OnPlayerSpawn(playerid)

{

if(iPlayerRole[playerid] == 50)

{

WarpPlayer(playerid,1264.8264,-805.2999,87.8547,3,177.4183);

}

return 1;

}

 

public OnPlayerDeath(playerid, killerid, reason)

{

return 1;

}

 

public OnVehicleSpawn(vehicleid)

{

return 1;

}

 

public OnVehicleDeath(vehicleid, killerid)

{

return 1;

}

 

public OnPlayerText(playerid, text[])

{

return 1;

}

 

public OnPlayerPrivmsg(playerid, recieverid, text[])

{

return 1;

}

 

public OnPlayerCommandText(playerid, cmdtext[])

{

dcmd_unjail(playerid,params[])

{

new id = strval(params);

if (!strlen(params)) return SendClientMessage(playerid, 0xFF0000AA, "pouziti /unjail id");

else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000AA, "Zadane id neni aktualne pripojeno na serveru"); // nnemuzeme zatykat nepripojeneho hrace

else if(iPlayerRole[playerid] != 1) return SendClientMessage(playerid, 0xFF0000AA, "Nejsi policista"); // kdyz hrac neni policista

else if(iPlayerRole[id] != 50) return SendClientMessage(playerid, 0xFF0000AA, "Hrac neni ve vezeni"); // nejde propustit hrace ktery neni ve vezeni

 

iPlayerRole[id] = 0; new string[256]; SetPlayerWantedLevel(id,0); SpawnPlayer(id); SetPlayerInterior(id, 0);

 

format(string, sizeof(string), "Hrac %s byl propusten policistou %s", PlayerName(id), PlayerName(playerid));

SendClientMessageToAll(0xFF0000AA, string);

 

dcmd(jail,4,cmdtext); dcmd(unjail,6,cmdtext);

if(iPlayerRole[playerid] == 50)

{

SendClientMessage(playerid, 0xFF0000AA, "Vezen nemuze pouzivat prikazy.");

return 0;

}

return 1;

}

 

dcmd_jail(playerid,params[])

{

new id = strval(params); // todle znaci ze params coz je /prikaz params , bude id hrace ktereho vyberem

if (!strlen(params)) return SendClientMessage(playerid, 0xFF0000AA, "pouziti /jail id");

else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000AA, "Zadane id neni aktualne pripojeno na serveru"); // nnemuzeme zatykat nepripojeneho hrace

else if(iPlayerRole[playerid] != 1) return SendClientMessage(playerid, 0xFF0000AA, "Nejsi policista"); // kdyz hrac neni policista

else if(iPlayerRole[id] == 1) return SendClientMessage(playerid, 0xFF0000AA, "Nemuzes zatknout jineho policistu"); // nemuze zatknout jineho fizla

else if(iPlayerRole[id] == 50) return SendClientMessage(playerid, 0xFF0000AA, "Hrac uz je ve vezeni"); // nejde zatknout hrace znova

 

if(GetDistanceBetweenPlayers(playerid, id) >= 10) //kdyz je polda od hrace daleko vic nez 10 m

{

SendClientMessage(playerid, 0xFF0000AA, "Jsi příliš daleko na zatknuti .");

} else {

if(GetPlayerWantedLevel(id) > 5) // kdyz ma hrac moc maly wanted level

{

//Tady bude co se stane pri uspesnem zatknuti

WarpPlayer(id,198.8128,161.6897,1003.0300,3,177.4183); iPlayerRole[id] = 50; new string[256]; SetPlayerWantedLevel(id,0);

 

format(string, sizeof(string), "Hrac %s byl zatcen policistou %s", PlayerName(id), PlayerName(playerid));

SendClientMessageToAll(0xFF0000AA, string);

} else {

SendClientMessage(playerid, 0xFF0000AA, "Hrac ma prilis nizky wanted level na zatknuti.");

}

}

return 1;

}

}

return 0;

}

 

public OnPlayerInfoChange(playerid)

{

return 1;

}

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{

return 1;

}

 

public OnPlayerExitVehicle(playerid, vehicleid)

{

return 1;

}

 

public OnPlayerStateChange(playerid, newstate, oldstate)

{

return 1;

}

 

public OnPlayerEnterCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerEnterRaceCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveRaceCheckpoint(playerid)

{

return 1;

}

 

public OnRconCommand(cmd[])

{

return 1;

}

 

public OnObjectMoved(objectid)

{

return 1;

}

 

public OnPlayerObjectMoved(playerid, objectid)

{

return 1;

}

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

return 1;

}

 

public OnPlayerSelectedMenuRow(playerid, row)

{

return 1;

}

 

public OnPlayerExitedMenu(playerid)

{

return 1;

}

public GetDistanceBetweenPlayers(playerid,playerid2)

{

new Float:x1,Float:y1,Float:z12,Float:x2,Float:y2,Float:z21, Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z12); GetPlayerPos(playerid2,x2,y2,z21);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z21,z12)),2));

return floatround(tmpdis);

}

 

stock WarpPlayer(playerid, Float:x, Float:y, Float:z, interier, Float:uhel)

{

SetPlayerPos(playerid, x, y, z);

SetPlayerInterior(playerid, interier);

if(uhel > 359 || uhel < 0) uhel = 0;

SetPlayerFacingAngle(playerid, uhel);

SetCameraBehindPlayer(playerid);

}

 

stock PlayerName(playerid)

{

new name[255];

GetPlayerName(playerid, name, 255);

return name;

}

 

 

Error:

C:\Documents and Settings\Patrik\Plocha\vezeni.pwn(63) : error 017: undefined symbol "iPlayerRole"

C:\Documents and Settings\Patrik\Plocha\vezeni.pwn(63) : warning 215: expression has no effect

C:\Documents and Settings\Patrik\Plocha\vezeni.pwn(63) : error 001: expected token: ";", but found "]"

C:\Documents and Settings\Patrik\Plocha\vezeni.pwn(63) : error 029: invalid expression, assumed zero

C:\Documents and Settings\Patrik\Plocha\vezeni.pwn(63) : fatal error 107: too many error messages on one line

 

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

4 Errors.

 

 

sem Lamka s velkým L

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...