Itt van:
/*Admin rendszer by JACK v.1.0- 1.2
1.0 = Ez az elsõ kiadás.
1.1 = Regisztrációs rendszer + admin mentése javitva + bugok javitása.
1.2 = Bugok töbsége javitva, + leirás készitése.
*/
#include <a_samp>
#include <zcmd> //Letöltés: http://forum.sa-mp.com/showthread.php?t=91354
#include <sscanf2>//Letöltés: http://forum.sa-mp.com/showthread.php?t=120356
#include <dini>//letöltés: http://forum.sa-mp.com/showthread.php?t=50
#include <dudb>//letötlés: http://forum.sa-mp.com/showthread.php?t=31
//A szinek definiálva...
#define COLOR_DARKORANGE 0xFF7318FF
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_BLUE 0x0000FFAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_WITHE 0xFFFFFFAA
#define COLOR_PURPLE 0x9900FFAA
#define COLOR_BROWN 0x993300AA
#define COLOR_ORANGE 0xFF9933AA
#define COLOR_CYAN 0x99FFFFAA
#define COLOR_TAN 0xFFFFCCAA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_KHAKI 0x999900AA
#define COLOR_LIME 0x99FF00AA
#define COLOR_BLACK 0x000000AA
#define COLOR_TURQ 0x00A3C0AA
#define COLOR_LIGHTBLUE 0x00BFFFAA
#define COLOR_GREENISHGOLD 0xCCFFDD56
#define COLOR_LIGHTBLUEGREEN 0x0FFDD349
#define COLOR_NEUTRALBLUE 0xABCDEF01
#define COLOR_LIGHTCYAN 0xAAFFCC33
#define COLOR_LEMON 0xDDDD2357
#define COLOR_AQUA 0x7CFC00AA
#define COLOR_WHITEYELLOW 0xFFE87DAA
#define COLOR_BLUEAQUA 0x7E60FFAA
#define COLOR_GREENYELLOWWHITE 0xCBFF45AA
#define COLOR_DARKBLUE 0x15005EAA
#define COLOR_RED 0xAA3333AA
#define COLOR_ULTRARED 0xFF0606FF
#define COLOR_WARNING 0xFB0000FF
#define COLOR_VIOLET 0x8F698FFF
//Fõ változok
new file[128];
new szoveg[MAX_PLAYERS];
new IsLogged[MAX_PLAYERS];
// PLAYERINFOS CUCCOK //
enum pInfo
{
pAdmin,
pAdminSeged
}
;
new PlayerInfo[MAX_PLAYERS][pInfo];
enum weapons
{
weapon,
ammo,
}
;
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Jack admin / adminsegéd rendszer\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print(\"\\n----------------------------------\");
print(\" Jack admin / adminsegéd rendszer\");
print(\"----------------------------------\\n\");
}
#endif
//v.1.1 parancsok:
// Regisztrációs rendszer kezdete //
CMD:regeles(playerid, params[])
{
new PlayerName[MAX_PLAYER_NAME];
new password[64];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
if(IsLogged[playerid] == 0)
{
if(sscanf(params, \"s[64]\", password)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /regeles [jelszo]\");
else
{
format(file, sizeof(file), \"%s.ini\", PlayerName);
if(!dini_Exists(file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\", udb_hash(password)); //létre hozzuk neki a \'jelszó\'-t
dini_IntSet(file, \"Pénz\", GetPlayerMoney(playerid));//létre hozzuk neki a \'pénzt\'-t
dini_IntSet(file, \"Skin\", GetPlayerSkin(playerid));//létre hozzuk neki a \'Skin\'-t
SendClientMessage(playerid, COLOR_GREEN, \"Regisztráció sikeres! Használd a /login parancsot a belépéshez.\"); //Ha be regisztrált akkor kiiratsuk neki a szöveget
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Ezzel a névvel már regisztráltak\"); //Ha már létezik a név akkor kiiratsuk vele ezt a szöveget
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Te már regisztrálva vagy!\");
}
return 1;
}
CMD:login(playerid, params[])
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
if(IsLogged[playerid] == 0)
{
new password[64];
if(sscanf(params, \"s[64]\", password)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /login [jelszó]\");
else
{
format(file, sizeof(file), \"%s.ini\", PlayerName);
if(dini_Exists(file))
{
if(strval(dini_Get(file, \"Jelszó\")) == udb_hash(password))
{
GivePlayerMoney(playerid, dini_Int(file, \"Pénz\"));
new penztext[256];
IsLogged[playerid] = 1;
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél\");
format(penztext,sizeof(penztext),\"Mentés: Pénzed vissza adva. Jelenlegi pénzed: {33AA33}%i $.\",dini_Int(file, \"Pénz\"));
SendClientMessage(playerid,COLOR_WARNING,penztext);
SpawnPlayer(playerid); //le Spawnoljuk a játékost
SetPlayerSkin(playerid, dini_Int(file, \"Skin\")); //skin vissza állitva
new skintext[128];
format(skintext,sizeof(skintext),\"Skined vissza állítva. Jelenlegi skined:{33AA33}%i\", dini_Int(file,\"Skin\"));
SendClientMessage(playerid,COLOR_WARNING,skintext);
SetPlayerSkin(playerid, dini_Int(file, \"Skin\"));
new string[128];
dini_Int(file,\"Adminszint\");
PlayerInfo[playerid][pAdmin] = dini_Int(file,\"Adminszint\"); //Ha Admin akkor Vissza kapja az admin -t is
if(PlayerInfo[playerid] [pAdmin] == 0)
{
}
else
{
format(string,sizeof(string),\"Admin szinted beállítva. Admin szinted: %i\",dini_Int(file,\"Adminszint\"));
SendClientMessage(playerid,COLOR_LIGHTBLUEGREEN,string);
}
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó!\");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Elõször regisztrálj: /regeles \");
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Te már bevagy jelentkezve!\");
}
return 1;
}
// Regisztrációs rendszer vége. //
CMD:goto(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1) //Ha az admin nagyobb mint 1 akkor telézhet de ha nem akko rnem!
{
new id;
if(sscanf(params,\"u\",id)) SendClientMessage(playerid,COLOR_RED,\"Használat: /goto [iD]\");
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(id, x, y, z);
SetPlayerPos(playerid, x, y, z);
}
//Ide mit tegyen ha nem 1-es admin vagy nagyobb
}
return 1;
}
//v.1.0 parancsok:
CMD:test(playerid, params[]) //Ezzel adsz magadnak admin.t
{
if(IsPlayerAdmin(playerid))
{
ResetPlayerMoney(playerid);
PlayerInfo[playerid][pAdmin] = 4; //Admin szintje = 4
SendClientMessage(playerid,COLOR_RED,\"TEST parancs beírva. Admin szint: 4. Pénz: 1000000\");
}
else
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
format(szoveg, sizeof(szoveg),\"%s ki lett rúgva a szerver által. Oka: /test-ezni akart.\",PlayerName);
SendClientMessageToAll(COLOR_LIGHTBLUE,szoveg);
SendClientMessage(playerid,COLOR_RED,\"Mitmondtá? Kiskosárba fingottá, buzigyerek\");
Kick(playerid); //ha nem RCOn admin irja be akkor ki rugjuk a szerórol
}
return 1;
}
// ADMIN RENDSZER PARANCSOK //
//Ezeken sokat nem kell magyarázni...
CMD:ahelp(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] == 1) //Ha egyenlõ 1-es adminnal AKKOR CSAK ezt a szöveget kapja
{
SendClientMessage(playerid,COLOR_RED,\"__--==**Admin Parancsok:__--**\");
SendClientMessage(playerid,COLOR_RED,\"/kick, /afegyverek, /asay /goto\");
SendClientMessage(playerid,COLOR_RED,\"Ezek voltak az egyes admin parancsi!\");
}
if(PlayerInfo[playerid][pAdmin] == 2)
{
SendClientMessage(playerid,COLOR_RED,\"__--==**Admin parancsok:__--**\");
SendClientMessage(playerid,COLOR_RED,\" /kick, /aveh, /afegyverek, /asay /goto\");
SendClientMessage(playerid,COLOR_RED,\"Ezek voltak a 2 -es admin parancsi!\");
}
if(PlayerInfo [playerid] [pAdmin] == 3)
{
SendClientMessage(playerid,COLOR_RED,\"__--==**Admin parancsok:__--**\");
SendClientMessage(playerid,COLOR_RED,\"/kick, /aveh, /afegyverek, /asay, /tv /goto\");
SendClientMessage(playerid,COLOR_RED,\"Ezek voltak a 3-as admin parancsi!\");
}
if(PlayerInfo [playerid] [pAdmin] == 4)
{
SendClientMessage(playerid,COLOR_RED,\"__--==**Admin Parancsok:__--**\");
SendClientMessage(playerid,COLOR_RED,\" /kick, /aveh, /afegyverek, /ban, /asay, /tv, /agivearank /goto\");
SendClientMessage(playerid,COLOR_RED,\"Ezek voltak a 4-es admin parancsi!\");
}
return 1;
}
//Az ADminSegéd parancsok
CMD:as(playerid,params[])
{
if(PlayerInfo[playerid][pAdminSeged] == 1)
{
SendClientMessage(playerid,COLOR_RED,\"__--==**AdminSegéd Parancsok:__--**\");
SendClientMessage(playerid,COLOR_RED,\"/askick,/asayn \");
SendClientMessage(playerid,COLOR_RED,\"Ezek voltak az AdminSegéd parancsai!\");
}
return 1;
}
// Admin szint adás fõadminoknak.
CMD:agiverank(playerid, params[])
{
new nev;
new szint;
new string[128];
if (PlayerInfo[playerid][pAdmin] == 4)
{
if(sscanf(params, \"ui\", nev, szint)) SendClientMessage(playerid,COLOR_RED,\"Használat: /agiverank [iD] [adminszint]\");
else
{
PlayerInfo[nev][pAdmin] = szint;
new naka[MAX_PLAYER_NAME];
GetPlayerName(playerid,naka,sizeof(naka));
format(string, sizeof(string),\"<<Egy Adminisztrátor (%s) kinevezett Adminná (%s)>>!\",naka, szint);
SendClientMessage(nev,COLOR_LIGHTBLUE,string);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,\"Nem vagy 4-es admin!\");
}
return 1;
}
//AdminSegéd adása...
CMD:helper(playerid, params[])
{
new nev;
new szint;
new string[128];
if (PlayerInfo[playerid][pAdmin] >= 2)
{
if(sscanf(params, \"ui\", nev, szint)) SendClientMessage(playerid,COLOR_RED,\"Használat: /helper [iD] [1 = AS 2 = ÖrökAS]\");
else
{
PlayerInfo[nev][pAdminSeged] = 1;
PlayerInfo[nev][pAdmin] = 0;
new naka[MAX_PLAYER_NAME];
GetPlayerName(playerid,naka,sizeof(naka));
format(string, sizeof(string),\"<<Egy Adminisztrátor (%s) kinevezett AdminSegéddé /as (AdminSegéd)(Ha admin voltál akkor az oda lett)>>!\",naka);
SendClientMessage(nev,COLOR_LIGHTBLUE,string);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,\"<< Nem vagy 2-es ADMIN >>!\");
}
return 1;
}
// /kick parancs.
CMD:kick(playerid, params[])
{
if(PlayerInfo [playerid] [pAdmin] >= 1)
{
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid,n,sizeof(n));
new id;
new indok[128];
if(sscanf(params,\"us\",id, indok)) SendClientMessage(playerid,COLOR_RED,\"Használat: /kick [id] [oka]\");
else
{
new string[128];
new idname[MAX_PLAYER_NAME];
GetPlayerName(id,idname,sizeof(idname));
format(string, sizeof(string),\"Szerver: %s ki lett rúgva %s által. Oka: %s\",idname, n, indok);
SendClientMessageToAll(COLOR_LIGHTBLUE,string);
new iduzenet[128];
format(iduzenet,sizeof(iduzenet),\"%s kirúgott téged a szerverrõl. Oka: %s\", n, indok);
SendClientMessage(id,COLOR_RED,iduzenet);
Kick(id);
}
//Ide ,h mit csináljon ha nem admin
}
return 1;
}
CMD:askick(playerid, params[])
{
if(PlayerInfo [playerid] [pAdminSeged] == 1)
{
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid,n,sizeof(n));
new id;
new indok[128];
if(sscanf(params,\"us\",id, indok)) SendClientMessage(playerid,COLOR_RED,\"Használat: /askick [id] [oka]\");
else
{
new string[128];
new idname[MAX_PLAYER_NAME];
GetPlayerName(id,idname,sizeof(idname));
format(string, sizeof(string),\"<< Szerver: %s ki lett rúgva %s AdminSegéd által. Oka: %s\",idname, n, indok);
SendClientMessageToAll(COLOR_LIGHTBLUE,string);
new iduzenet[128];
format(iduzenet,sizeof(iduzenet),\"<< %s AdminSegéd, kirúgott téged a szerverrõl. Oka: %s >>\", n, indok);
SendClientMessage(id,COLOR_RED,iduzenet);
Kick(id);
//Ide ,h mit csináljon ha nem adminsegéd
}
return 1;
}
CMD:asay(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] >= 1)
{
new admiin[MAX_PLAYER_NAME];
GetPlayerName(playerid,admiin,sizeof(admiin));
new text[128];
if(sscanf(params, \"s[128]\",text)) return SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /asay [szöveg]\");
new kakak[128];
format(kakak,sizeof kakak,\"(( Admin %s : %s ))\",admiin,text);
SendClientMessageToAll(0xA10000AA,kakak);
}
SendClientMessage(playerid,COLOR_RED,\"Nem vagy admin!\");
return 1;
}
CMD:asayn(playerid, params[])
{
if (PlayerInfo[playerid][pAdminSeged] == 1)
{
new as[MAX_PLAYER_NAME];
GetPlayerName(playerid,as,sizeof(as));
new text[128];
if(sscanf(params, \"s[128]\",text)) return SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /asayn [szöveg]\");
new kakak[128];
format(kakak,sizeof kakak,\"<< AdminSegéd %s : %s >>\",as,text);
SendClientMessageToAll(0xA10000AA,kakak);
}
SendClientMessage(playerid,COLOR_RED,\"Nem vagy AdminSegéd!\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
{
// MENTSE H NEM ADMIN
dini_IntSet(file,\"Adminszint\", 0);
}
if(PlayerInfo[playerid][pAdmin] == 1)
{
// MENTSE H 1 -ES ADMIN
dini_IntSet(file,\"Adminszint\", 1);
}
if(PlayerInfo[playerid][pAdmin] == 2)
{
// MENTSE H 2 -ES ADMIN
dini_IntSet(file,\"Adminszint\", 2);
}
if(PlayerInfo [playerid] [pAdmin] == 3)
{
// MENTSE H 3 AS ADMIN
dini_IntSet(file,\"Adminszint\", 3);
}
if(PlayerInfo [playerid] [pAdmin] == 4)
{
dini_IntSet(file,\"Adminszint\", 4);
// MENTSE H FÕADMIN
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(IsLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, \"Elõször jelentkezz be!\");
Kick(playerid);
return 1;
}
return 1;
}
//Vége