*/
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;
}
jol nézki :)
Újítások a fõposztban!
ez kellet ment a +
Kössz ez jól jött a szerómhoz ;D
ez kellet ment a +[/quote]
mindenhez azt irja hogy ment a + és sosem ad xDDDDDDDDDDD
amugy szép script :D
Köszi,lehet felhasználok 1-2 parancsot. +
Jó lett adtam Likeot! :)
Tetszik. Grat. ;)
Miért van az, hogy mindegyik csak adminok számára jó? Miért nem csináljátok úgy mint Epsilon, hogy rendõrskinekre van? :tantrum:
Annyi az egész, hogy átírod magadnak megfelelõen, például, ha van munka scripted, akkor annak megfelelõen, vagy skinhez kötötten stb....
Ez kérlekszépen nem admin szerint mûködik.. leaderes melóként van betéve. Tehát vannak rangok satöbbi.. Köze nincs az admin joghoz.
Szép script lett!
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] == 5 || IsPlayerAdmin(playerid))
Gondolom dísz...
Felvenni / Rangot adni admin is tud... Hiszen akkor hogy lenne egyáltalán leader ha nincs ki felvenné? Kicsit nézd át mielõtt leszólod.
Nem szóltam le... Csak megmondtam a véleményem. Ezt nem kell szívre venni. :nono: Azt kell vele, hogy építõ kritika és máskor kipróbálod úgy is.
E.: Ha szar lenne adtam volna rá +-t? :-*
Jó lett,Csak ha resizem a szervert akkor nem menti el a rendõr rangot....
De Like :)
E:Meg csinálnád,hogy resi után is mentse aki már rendõr és hogy rendõr kocsikat csak rendõrök tudják használni amit HQ-ra lerakok/lerakunk.?
Lenne egy olyan problémám,hogy ha adok valakinek rendõr szintet és újraindítom a szervert akkor már nem rendõr az akinek azelõtt adtam...
Mivel nem menti el sehova a rangokat.
+ a /rc parancs nem jó
Bravo Fl0rian!Ment a + habar van egy ket hiba de javitom magamnak! :D
Lenne egy olyan problémám,hogy ha adok valakinek rendõr szintet és újraindítom a szervert akkor már nem rendõr az akinek azelõtt adtam...
Oda írta, hogy nem tesztelte lehetnek benne hibák...
Jó kis FS ment a +.