*/
Jó estét!
Készítettem egy rendõr munka FilterScriptet így unalmamban. Remélem hasznotokra válik, kérem a nevet ne írjátok át, tehát ne mondjátok azt hogy: \" Én csináltam. \"
Elkészítési idõ: Körülbelül 1 óra.
Fontos: A filterscriptet tesztelni nem tudtam, nem volt lehetõségem!
Az ebbõl eredõ hibákat kérem jelezzétek hozzászólásban, és javítom!=======================================================
Újításokv1.1:
/107 -> Rendõr hívása.
/elfogad -> Hívás elfogadása.
/lista -> Rendõrt hívók listája.
/elenged -> Bilincsben lévõ elengedése.
A /mennyi parancsnál minuszba mutatott érték javítása. (Tehát ha lejárt a bünti nem fog minuszba számolni.)
Újítások v1.11
/sokk, /bilincs parancs javítása.
Link: v1.0(RÉGI)
http://solidfiles.com/d/8eb1b08cb4/v1.1(RÉGI)
http://solidfiles.com/d/6340aa4c6d/v1.11(ÚJ)
http://solidfiles.com/d/f64964d7ac/ // Készítõ: Horváth Flórián | 2012 01. 02. - 20:46
/*
----------
Parancsok:
----------
/rc <- Rendõr chat( Rádióként funkcionál. )
/lecsuk <- Játékos lecsukása, csak azt csukja le aki a kocsiban van.
/sokk <- A legközelebb lévõ játékos sokkolása.
/bilincs <- A legközelebb lévõ játékos megbilincselése.
/mennyi <- Hátralévõ idõ a börtönbõl.
/felvesz <- Játékos felvétele a rendõrökhöz. ( Rcon admin is használhatja! )
/rangad <- Játékos rangját átálítjuk. ( Rcon admin is használhatja! )
/kirug <- Kirúgjuk a játékost a rendõrök közül.
/elenged <- El tudjuk engedni a kívánt játékost a bilincsbõl.
/107 <- Rendõrt tudunk hívni.
/elfogad <- Hívás elfogadása.
/lista <- Kiírja azoknak a nevét akik rendõrt hívtak.
_________________________________________________________________
*****************************************************************
_________________________________________________________________
---------
Funkciók:
---------
Bemérés: Ha egy rendõr rákattint a playerlist-en egy illetõre. Két kimenetele lehet( random ),
az egyik hogy sikeresen bemérjük az illetõt, a másik az hogy sikertelen.
*/
#include <a_samp>
#include <zcmd>
#include <sscanf>
enum dolgok
{
munka,
munkarang
}
new pInfo[MAX_PLAYERS][dolgok];
new IsPlayerSokked[MAX_PLAYERS];
new IsPlayerBilincsed[MAX_PLAYERS];
new mennyi[MAX_PLAYERS];
new bortonben[MAX_PLAYERS];
new rendorthivott[MAX_PLAYERS];
public OnFilterScriptInit()
{
print(\"\\n=========================================\");
print(\"\\n Rendõr meló | Készítõ: Fl0rian \");
print(\"\\n=========================================\");
return 1;
}
public OnFilterScriptExit()
{
print(\"\\n=========================================\");
print(\"\\n Rendõr meló kiiktatva | Készítõ: Fl0rian \");
print(\"\\n=========================================\");
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
new
Float:x,
Float:y,
Float:z;
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 3)
{
switch(random(2))
{
case 0:
{
GetPlayerPos(clickedplayerid, x, y, z);
SetPlayerCheckpoint(playerid, x, y, z, 4.0);
SendClientMessage(playerid, 0x00FF00, \"Bemérés sikeres!\");
}
case 1:
{
SendClientMessage(playerid, 0x00FF00, \"Sikertelen bemérés..késõbb próbáld újra.\");
}
}
}
else SendClientMessage(playerid, 0x00FF00, \"Használatához rendõrnek kell lenned.\");
return 1;
}
/*=================================[ Sokkolás ]=================================*/
CMD:sokk(playerid,params[])
{
new
Float:x,
Float:y,
Float:z;
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerPos(i, x, y, z);
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z) && playerid != i)
{
if(IsPlayerSokked == 0)
{
TogglePlayerControllable(i, 0);
IsPlayerSokked = 1;
GameTextForPlayer(i, \"~r~Sokkolva!\", 1500, 0);
SetTimerEx(\"Sokk\", 60000, 0,\"i\",i);
}
else SendClientMessage(playerid, 0x00FF00, \"A játékos már sokkolva van.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nincs a közeledben senki.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõr!\");
}
}
return 1;
}
forward Sokk(playerid);
public Sokk(playerid)
{
GameTextForPlayer(playerid, \"~g~Ujra erzed a vegtagjaid!\", 1500, 0);
TogglePlayerControllable(playerid, 1);
IsPlayerSokked[playerid] = 0;
return 1;
}
/*=================================[ Bilincselés ]=================================*/
CMD:bilincs(playerid, params[])
{
new
Float:x,
Float:y,
Float:z;
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerPos(i, x, y, z);
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z) && playerid != i)
{
if(IsPlayerBilincsed == 0 && IsPlayerSokked == 1)
{
GameTextForPlayer(i, \"~r~Megbilincselve!\", 1500, 0);
TogglePlayerControllable(i, 0);
ApplyAnimation(playerid, \"PED\", \"cower\", 1, 1, 0, 0, 0, 0, 1);
}
}
}
}
}
return 1;
}
/*=================================[ Lecsukás ]=================================*/
CMD:lecsuk(playerid, params[])
{
new
pName[MAX_PLAYER_NAME],
iName[MAX_PLAYER_NAME],
String[128],
String2[128],
mp;
for(new i = 0; i < MAX_PLAYERS; i++)
{
new IDVeh = GetPlayerVehicleID(playerid);
new IVeh = GetPlayerVehicleID(i);
new IDVehPos = GetPlayerState(playerid);
new IVehPos = GetPlayerState(i);
/*============================*/
if(sscanf(params,\"d\", mp))return SendClientMessage(playerid,0x00FF00,\"HIBA: /lecsuk [Másodperc]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
if( ( IDVeh == IVeh ) && ( IDVehPos == PLAYER_STATE_DRIVER && IVehPos == PLAYER_STATE_PASSENGER ) )
{
SetPlayerPos(i, 1, 2, 3);
bortonben = 1;
SetTimerEx(\"Lecsuk\", mp * 1000, 0,\"i\",i);
mennyi[playerid] = mp;
SetTimerEx(\"Mennyi\", 1000, 1,\"i\",i);
format(String, sizeof(String), \"%s lecsukott %d másodpercre.\", pName, mp);
format(String2, sizeof(String2), \"Lecsuktad %s-t %d másodpercre.\", iName, mp);
SendClientMessage(i, 0x00FF00, String);
SendClientMessage(playerid, 0x00FF00, String2);
}
else SendClientMessage(playerid, 0x00FF00, \"Nincs senki a jármûvedben.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõr.\");
}
}
return 1;
}
forward Mennyi(playerid);
public Mennyi(playerid)
{
mennyi[playerid]--;
}
forward Lecsuk(playerid);
public Lecsuk(playerid)
{
SendClientMessage(playerid, 0x00FF00, \"Lejárt a büntetésed, kiengedgetek a börtönbõl\");
SetPlayerPos(playerid, 1, 2, 3);
bortonben[playerid] = 0;
return 1;
}
/*=================================[ Mennyi van hátra ]=================================*/
CMD:mennyi(playerid, params[])
{
new string[128];
if(bortonben[playerid] == 1)
{
format(string, sizeof(string), \"Hátra: %d mp\", mennyi[playerid]);
SendClientMessage(playerid, 0x00FF00, string);
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy börtönben.\");
return 1;
}
/*=================================[ Rendõr chat ]=================================*/
CMD:rc(playerid, params[])
{
new Szoveg[128];
new Elkuldes[200];
new Rang[50];
new Neve[MAX_PLAYER_NAME];
if(sscanf(params,\"s[128]\", Szoveg))return SendClientMessage(playerid,0x00FF00,\"HIBA: /rc [szöveg]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
/*==========================*/
if(pInfo[playerid][munkarang] == 1) { Rang = \"Újonc\" ; }
else if(pInfo[playerid][munkarang] == 2) { Rang = \"Tizedes\" ; }
else if(pInfo[playerid][munkarang] == 3) { Rang = \"Százados\" ; }
else if(pInfo[playerid][munkarang] == 4) { Rang = \"Ezredes\" ; }
else if(pInfo[playerid][munkarang] == 5) { Rang = \"Törzsõrmester\" ; }
/*==========================*/
GetPlayerName(playerid, Neve, sizeof(Neve));
format(Elkuldes, sizeof(Elkuldes), \"*%s %s mondja(rádió): %s\", Rang, Neve, Szoveg);
if(pInfo[munka] == 1 && pInfo[munkarang] >= 1) { SendClientMessage(i, 0x00FF00, Elkuldes); }
}
}
}
return 1;
}
/*=================================[ Felvétel ]=================================*/
CMD:felvesz(playerid, params[])
{
new
id,
String[256],
String2[256],
AdoName[MAX_PLAYER_NAME],
KapoName[MAX_PLAYER_NAME];
if(sscanf(params,\"i\", id)) return SendClientMessage(playerid, 0x00FF00, \"HIBA: /felvesz [iD]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] == 5 || IsPlayerAdmin(playerid))
{
if(pInfo[id][munka] == 0)
{
pInfo[id][munka] = 1;
pInfo[id][munkarang] = 1;
SetPlayerColor(id, 0x2600ffAA);
GetPlayerName(playerid, AdoName, sizeof(AdoName));
GetPlayerName(id, KapoName, sizeof(KapoName));
format(String, sizeof(String), \"%s felvett téged rendõrnek.\", AdoName);
format(String2, sizeof(String2), \"Felvetted %s-t rendõrnek.\", KapoName);
SendClientMessage(playerid, 0x00FF00, String2);
SendClientMessage(id, 0x00FF00, String);
}
else SendClientMessage(playerid, 0x00FF00, \"A játékosnak már van munkája.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõrfõnök.\");
}
return 1;
}
/*=================================[ Rang adás ]=================================*/
CMD:rangad(playerid, params[])
{
new
id,
rang,
String[128],
String2[128],
AdoName[MAX_PLAYER_NAME],
KapoName[MAX_PLAYER_NAME];
if(sscanf(params, \"ii\", id, rang)) return SendClientMessage(playerid, 0x00FF00, \"HIBA: /rangad [iD] [Rang]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] == 5 || IsPlayerAdmin(playerid))
{
if(pInfo[id][munkarang] != rang && pInfo[id][munka] == 1)
{
pInfo[id][munkarang] = rang;
GetPlayerName(playerid, AdoName,sizeof(AdoName));
GetPlayerName(id, KapoName,sizeof(KapoName));
format(String, sizeof(String), \"%s rangot adott neked! ( *%d )\", AdoName, rang);
format(String2, sizeof(String2), \"Rangot adtál %s-nek. ( *%d )\", KapoName, rang);
SendClientMessage(playerid, 0x00FF00, String2);
SendClientMessage(id, 0x00FF00, String);
}
else SendClientMessage(playerid, 0x00FF00, \"A játékos nem rendõr, vagy már ezen a rangon van.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõrfõnök.\");
}
return 1;
}
/*=================================[ Kirúgás ]=================================*/
CMD:kirug(playerid, params[])
{
new id;
if(sscanf(params, \"i\", id))return SendClientMessage(playerid, 0x00FF00, \"HIBA: /kirug [iD]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] == 5)
{
if(pInfo[id][munka] == 1)
{
pInfo[id][munka] = 0;
pInfo[id][munkarang] = 0;
SetPlayerColor(id, -1);
SendClientMessage(id, 0x00FF00, \"A fõnököd kirúgott a munkádból.\");
SendClientMessage(playerid, 0x00FF00, \"Kirúgtad az illetõt a rendõrségrõl.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Az illetõ nem rendõr.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõrfõnök.\");
}
return 1;
}
/*=================================[ Elengedés ]=================================*/
CMD:elenged(playerid, params[])
{
new
Float:x,
Float:y,
Float:z;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
GetPlayerPos(i, x, y, z);
if(IsPlayerInRangeOfPoint(i, 2.0, x, y, z) && playerid != i)
{
if(IsPlayerBilincsed)
{
TogglePlayerControllable(i, 1);
ClearAnimations(i);
}
else SendClientMessage(playerid, 0x00FF00, \"A játékos nincs megbilincselve.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nincs a közeledben senki.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõr.\");
}
return 1;
}
/*=================================[ 107 ]=================================*/
CMD:107(playerid, params[])
{
new String[128];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof(Name));
format(String, sizeof(String),\"%s rendõrt hívott. Hogy elfogadd: /elfogad %d\",Name,playerid);
rendorthivott[playerid] = 1;
SendClientMessage(playerid, 0x00FF00, \"Rendõrt hívtál, várj míg elfogadják a hívásodat.\");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(pInfo[munka] == 1 && pInfo[munkarang] >= 1)
{
SendClientMessage(i, 0x00FF00, String);
}
}
return 1;
}
/*=================================[ Elfogadás ]=================================*/
CMD:elfogad(playerid, params[])
{
new
id,
String[128],
String2[128],
FogadottName[MAX_PLAYER_NAME],
FogadoName[MAX_PLAYER_NAME],
Float:x,
Float:y,
Float:z;
GetPlayerName(playerid, FogadoName, sizeof(FogadoName));
if(sscanf(params, \"i\", id))return SendClientMessage(playerid, 0x00FF00, \"HIBA: /elfogad [iD]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
GetPlayerName(id, FogadottName, sizeof(FogadottName));
if(rendorthivott[id] == 1)
{
GetPlayerPos(id, x, y, z);
SetPlayerCheckpoint(playerid, x, y, z, 3.0);
format(String, sizeof(String), \"%s elfogadta a hívásod.\",FogadoName);
format(String2, sizeof(String2),\"Elfogadtad %s hívását.\",FogadottName);
SendClientMessage(playerid, 0x00FF00, String);
SendClientMessage(id, 0x00FF00, String2);
}
else SendClientMessage(playerid, 0x00FF00, \"Az illetõ nem hívott rendõrt.\");
}
else SendClientMessage(playerid, 0x00FF00, \"Nem vagy rendõr.\");
}
return 1;
}
/*=================================[ Lista ]=================================*/
CMD:lista(playerid, params[])
{
new
bool:first,
Name[MAX_PLAYER_NAME],
String[128];
SendClientMessage(playerid, 0x00FF00, \"A rendõrt hívók listája:\");
SendClientMessage(playerid, 0x00FF00, \" \");
for(new i = 0, Emberek = GetMaxPlayers(); i < Emberek; i++)
{
GetPlayerName(i, Name, sizeof(Name));
if(IsPlayerConnected(i))
{
if(rendorthivott)
{
first = true;
format(String, sizeof(String), \"%s [iD: %d]\",Name, i);
SendClientMessage(playerid, 0x00FF00, String);
}
}
}
if(!first) SendClientMessage(playerid, 0x00FF00, \"Nem hívott senki rendõrt.\");
return 1;
}