Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Crunks Admin system
- Съдържание:
- +Register & Login - направени са в диалог, а паролите ще се криптират под udb_hash
- +Admin система - състои се от 5 нива
- +Chat ранк система - Това(http://cs-bg.info/forum/viewtopic.php?f=171&t=138454) е тя,но е направено да се запазват убийствата.
- +RCON admin control panel - съдържа Kick, Ban и правене на админ.Появява се когато цъкнете 2 пъти на някой играч в scoreboard-a.
- +Anti-Swear системка - системата ще блокира съобщенията в които има псувни(можете да добавите каквито думи искате)
- Команди за играчите: /helpme
- Credits:
- Crunks - главен скриптер
- Dracoblue - hash системата за пароли
- WestSize - началната идея и скрипт за chat ранк системата
- Ако съм забравил някой се извинявам.
- *Моля, не трийте тези редове.
- **Реклами от сорта на съобщения и т.н НЯМА.Всичко което е пускано от мен(Crunks) безплатно няма да съдържа реклами.
- Поздрави,
- С.Игнатов
- */
- #include <a_samp>
- #include <YSI\y_ini>
- #include <zcmd>
- #include <sscanf2>
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_SUCCESS_1 3
- #define DIALOG_SUCCESS_2 4
- #define DIALOG_PMENU 5
- #define DIALOG_MADMIN 6
- #define DIALOG_PKICK 7
- #define DIALOG_PBAN 8
- #define COLOR_YELLOW 0xFFFF00AA
- #define PATH "CAS/Players/%s.ini"
- #define SCM SendClientMessage
- #define SCMToAll SendClientMessageToAll
- forward LoadUser_data(playerid,name[],value[]);
- new SwearWords[][] = //Добавете още колкото искате :)
- {
- "noob",
- "******",
- "fuck u",
- "fuck",
- "pedal",
- "retard",
- "laino"
- };
- enum pInfo
- {
- pPass,
- pCash,
- pAdmin,
- pKills,
- pDeaths,
- pSkin
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public LoadUser_data(playerid,name[],value[])
- {
- INI_Int("Password",PlayerInfo[playerid][pPass]);
- INI_Int("Cash",PlayerInfo[playerid][pCash]);
- INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
- INI_Int("Kills",PlayerInfo[playerid][pKills]);
- INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
- INI_Int("Skin",PlayerInfo[playerid][pSkin]);
- return 1;
- }
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),PATH,playername);
- return string;
- }
- stock GetName(playerid)
- {
- new pname[MAX_PLAYER_NAME]; pname="Invalid PlayerID";
- if(IsPlayerConnected(playerid)) {
- GetPlayerName(playerid, pname, sizeof (pname));
- }
- return pname;
- }
- stock SendToAdmins(COLOR,message[])
- {
- new string[128];
- for(new i = 0; < MAX_PLAYERS; i++);
- if(PlayerInfo[i][pAdmin] > 1)
- {
- SendClientMessage(i,COLOR,message);
- }
- return 0;
- }
- /*Създадено от Dracoblue*/
- stock udb_hash(buf[]) {
- new length=strlen(buf);
- new s1 = 1;
- new s2 = 0;
- new n;
- for (n=0; n<length; n++)
- {
- s1 = (s1 + buf[n]) % 65521;
- s2 = (s2 + s1) % 65521;
- }
- return (s2 << 16) + s1;
- }
- main()
- {
- print("Loaded Crunks Admin system");
- }
- public OnFilterScriptInit()
- {
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(UserPath(playerid)))
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Влизане","Моля, въведи твоята парола,за да влезнеш","Влизане","Откажи");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Регистриране","Въведи парола,за да регистрираш твоя акаунт.","Регистрация","Откажи");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
- INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
- INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
- INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
- INI_Close(File);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- PlayerInfo[killerid][pKills]++;
- PlayerInfo[playerid][pDeaths]++;
- SendDeathMessage(killerid, playerid, reason);
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- SetVehicleToRespawn(vehicleid);
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- for(new words; words<sizeof(SwearWords); words++)
- {
- if(strfind(text,SwearWords[words], true) != -1 ) { SCM(playerid, COLOR_YELLOW, "Псуването е забранено!"); return 0;}
- }
- new rankon[MAX_PLAYERS];
- if(rankon[playerid] == 1)
- {
- new rank[32], PlayerName[MAX_PLAYER_NAME], String[128];
- if(PlayerInfo[playerid][pKills] >= 500) { rank = "Най-добрия!"; }
- else if(PlayerInfo[playerid][pKills] > 400 && PlayerInfo[playerid][pKills] <= 499) { rank = "Ultra Killer!"; }
- else if(PlayerInfo[playerid][pKills] > 300 && PlayerInfo[playerid][pKills] <= 399) { rank = "Професионалист!"; }
- else if(PlayerInfo[playerid][pKills] > 200 && PlayerInfo[playerid][pKills] <= 299) { rank = "Ветеран!"; }
- else if(PlayerInfo[playerid][pKills] > 100 && PlayerInfo[playerid][pKills] <= 199) { rank = "Напредващ!"; }
- else if(PlayerInfo[playerid][pKills] > 0 && PlayerInfo[playerid][pKills] <= 99) { rank = "Новак!"; }
- GetPlayerName(playerid, PlayerName, 24);
- format(String, sizeof(String), "{BA0000}[%s] {%06x}%s (%d): {FFFFFF}%s", rank, (GetPlayerColor(playerid) >>> 8), PlayerName, playerid, text);
- SCMToAll(-1,String);
- return 0;
- }
- 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 OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_REGISTER:
- {
- if (!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация","Тази парола е невалидна.\nМоля, въведи валидна парола,за да се регистрираш.","Регистриране","Откажи");
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Password",udb_hash(inputtext));
- INI_WriteInt(File,"Cash",0);
- INI_WriteInt(File,"Admin",0);
- INI_WriteInt(File,"Kills",0);
- INI_WriteInt(File,"Deaths",0);
- INI_Close(File);
- SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- }
- }
- case DIALOG_LOGIN:
- {
- if (!response) return Kick ( playerid );
- if(response)
- {
- if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Влизане","Ти си въвел грешна парола.\nМоля, въведи вярната,за да влезнеш.","Влез","Откажи");
- }
- return 1;
- }
- }
- case DIALOG_PMENU:
- {
- if(response)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid, DIALOG_MADMIN, DIALOG_STYLE_INPUT, "Направи админ", "Задай админ левел на играча", "Задай", "Откажи");
- }
- if(listitem == 1)
- {
- new kname[256];
- format(kname, 256, "Сигурен ли сте,че искате да кикнете %s?", GetName(GetPVarInt(playerid,"pplayerid")));
- ShowPlayerDialog(playerid, DIALOG_PKICK, DIALOG_STYLE_MSGBOX, "Kick-ване на играч", kname, "Kick", "Откажи");
- }
- if(listitem == 2)
- {
- new kname[256];
- format(kname, 256, "Сигурен ли сте,че искате да баннете %s?", GetName(GetPVarInt(playerid,"pplayerid")));
- ShowPlayerDialog(playerid, DIALOG_PBAN, DIALOG_STYLE_MSGBOX, "Ban-ване на играч", kname, "Ban", "Откажи");
- }
- return 1;
- }
- }
- case DIALOG_MADMIN:
- {
- if(response)
- {
- new string[256];
- if(strval(inputtext) < 0 || strval(inputtext) > 5) return SCM(playerid, COLOR_YELLOW, "ERROR: Админ левелите са от 0 до 5.");
- PlayerInfo[GetPVarInt(playerid,"pplayerid")][pAdmin] = strval(inputtext);
- format(string, 256, "ADMIN: %s даде %d админ левел на %s.", GetName(playerid), inputtext, GetName(GetPVarInt(playerid,"pplayerid")));
- SCMToAll(COLOR_YELLOW, string);
- SetPVarInt(playerid,"pplayerid",999);
- return 1;
- }
- }
- case DIALOG_PKICK:
- {
- if(response)
- {
- new string[256];
- Kick(GetPVarInt(playerid,"pplayerid"));
- format(string, 256, "ADMIN: %s кикна %s от сървъра", GetName(playerid), GetName(GetPVarInt(playerid,"pplayerid")));
- SCMToAll(COLOR_YELLOW, string);
- SetPVarInt(playerid,"pplayerid",999);
- return 1;
- }
- }
- case DIALOG_PBAN:
- {
- if(response)
- {
- new string[256];
- Ban(GetPVarInt(playerid,"pplayerid"));
- format(string, 256, "ADMIN: %s банна %s от сървъра", GetName(playerid), GetName(GetPVarInt(playerid,"pplayerid")));
- SCMToAll(COLOR_YELLOW, string);
- SetPVarInt(playerid,"pplayerid",999);
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- if(IsPlayerAdmin(playerid))
- {
- ShowPlayerDialog(playerid, DIALOG_PMENU, DIALOG_STYLE_LIST, GetName(clickedplayerid), "Направи админ\nKick\nBan", "Избери", "Откажи");
- SetPVarInt(playerid,"pplayerid",clickedplayerid);
- return 1;
- }
- return 1;
- }
- CMD:helpme(playerid, params[])
- {
- new string[128], text[48];
- if(sscanf(params, "s[48]", text)) return SCM(playerid, COLOR_YELLOW, "Използвай /helpme [Text]");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pAdmin] > 0)
- {
- format(string,sizeof(string),"HelpME: %s(ID: %d) попита: %s", GetName(playerid), playerid, text);
- SCM(i, COLOR_YELLOW, string);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement