Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Credits to WildWave + Y_Less
- //Found bug ? Skype : ofekshirin or http://www.fxp.co.il/member.php?u=839912
- //======Includes=======//
- #include <a_samp>
- #include <YSI\y_ini>
- #include <YSI\y_ini>
- #include <ZCMD>
- #include <sscanf2>
- //======Formats=======//
- #define SendFormatMessage(%0,%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessage(%0, %1, String)
- #define SendFormatMessageToAll(%0,%1,%2) format(String, sizeof(String),%1,%2) && SendClientMessageToAll(%0, String)
- //==========Defines========//
- #define DIALOG_Alog 7
- #define Apass "changeit"
- new AdminFile[MAX_PLAYERS][MAX_PLAYER_NAME],
- bool:Alogged[MAX_PLAYERS] = false,
- GetName[MAX_PLAYERS][MAX_PLAYER_NAME],
- String[128],
- Float:Pos[4];
- enum pInfo
- {
- pAdmin,
- bool:pBan
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid,GetName[playerid],MAX_PLAYER_NAME+1) && format(AdminFile[playerid],sizeof(AdminFile),"Admin/%s.ini",GetName[playerid]);
- inline LoadUserDate(string:name[],string:value[])
- {
- INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
- INI_Bool("Ban",PlayerInfo[playerid][pBan]);
- }
- if(fexist(AdminFile[playerid]))
- {
- INI_ParseFile(AdminFile[playerid],using inline "LoadUserDate");
- }
- if(PlayerInfo[playerid][pBan] == true) return Kick(playerid);
- if(PlayerInfo[playerid][pAdmin] >= 1 && !Alogged[playerid]) return SendClientMessage(playerid,-1,"{FF0000}The Admin System Found that youre admin , please login to the sysem with the command - /aLog");
- return 1;
- }
- public OnPlayerCommandReceived(playerid, cmdtext[])
- {
- if(PlayerInfo[playerid][pAdmin] >= 1 && !Alogged[playerid] && strcmp(cmdtext, "/alog", true)) return SendClientMessage(playerid, -1, "You cant write commands until you will login to the Admin System"),0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(PlayerInfo[playerid][pAdmin] >= 1) Alogged[playerid] = false;
- new INI:File = INI_Open(AdminFile[playerid]);
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
- INI_WriteInt(File,"Ban",PlayerInfo[playerid][pBan]);
- INI_Close(File);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_Alog && response && !strcmp(inputtext,Apass,true))
- {
- Alogged[playerid] = true;
- format(String,sizeof(String),"Administrator %s[ID:%d] is back, he logged into his admin account",GetName[playerid],playerid);
- SendMessageToAdmin(String);
- }
- else
- {
- format(String,sizeof(String),"%s[ID:%d] has tried the admin login pass, but failed - check him out NOW",GetName[playerid],playerid);
- SendMessageToAdmin(String);
- }
- return 1;
- }
- //=================Commands=============================//
- CMD:alog(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] >= 1)
- {
- if(Alogged[playerid]) return SendClientMessage(playerid,-1,"{FF0000}[Error:] You already logged to the system");
- ShowPlayerDialog(playerid,DIALOG_Alog,DIALOG_STYLE_INPUT,"{FF00FF}Admin System","{FF00FF}Please enter the admin password","Okey","Cancel");
- }
- return 1;
- }
- CMD:admins(playerid,params[])
- {
- new aCount = 0;
- for(new i, j = GetMaxPlayers(); i != j; i++)
- {
- if(PlayerInfo[i][pAdmin] && IsPlayerConnected(i) && Alogged[i] == true) aCount ++;
- format(String,sizeof(String),"{FF00FF}%s [AdminLevel: %s | %s]",GetName[i],PlayerInfo[playerid][pAdmin],AdminsLevelS(i));
- }
- if(aCount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
- SendClientMessage(playerid,-1,String);
- return 1;
- }
- CMD:sethp(playerid,params[])
- {
- if( PlayerInfo[playerid][pAdmin] < 2 ) return 1;
- if(sscanf(params,"uf",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /SetHP [playerid] [Amount]");
- SetPlayerHealth(params[0],params[1]);
- SendFormatMessageToAll(-1,"{FF00FF}The Admin %s has beed edit %s health",GetName[playerid],GetName[ params[0] ]);
- return 1;
- }
- CMD:setar(playerid,params[])
- {
- if( PlayerInfo[playerid][pAdmin] < 2 ) return 1;
- if(sscanf(params,"uf",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /SetAR [playerid] [Amount]");
- SetPlayerArmour(params[0],params[1]);
- SendFormatMessageToAll(-1,"{FF00FF}The Admin %s has beed edit %s armour",GetName[playerid],GetName[ params[0] ]);
- return 1;
- }
- CMD:giveweapon(playerid,params[])
- {
- if( PlayerInfo[playerid][pAdmin] < 3 ) return 1;
- if(sscanf(params,"udd",params[0],params[1],params[2])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /GiveWeapon [playerid] [WeaponID] [Amount]");
- GivePlayerWeapon(params[0],params[1],params[2]);
- SendFormatMessage(playerid,-1,"{FF00FF}You gaved to %s weapon",GetName[ params[0] ]);
- SendFormatMessage(params[0],-1,"{FF00FF}The admin %s gaved you weapon",GetName[playerid]);
- return 1;
- }
- CMD:resetweapon(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] < 3 ) return 1;
- if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /ResetWeapon [playerid]");
- ResetPlayerWeapons(params[0]);
- SendFormatMessage(playerid,-1,"{FF00FF}You have been reset %s weapons",GetName[ params[0] ]);
- SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been reset your weapons",GetName[playerid]);
- return 1;
- }
- CMD:say(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] < 1) return 1;
- if(sscanf(params,"s[26]",String)) return SendClientMessage(playerid,-1,"Usage:{ff0000} /Say [Message]");
- SendFormatMessageToAll(-1,"{FF0000}**Administrator %s : %s",GetName[playerid],String);
- return 1;
- }
- CMD:setadmin(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] < 5) return 1;
- if(sscanf(params,"ui",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /SetAdmin [playerid] [0-5]");
- if( params[1] > 5 ) return SendClientMessage( playerid, -1, "/SetAdmin [playerid] [0-5]" );
- PlayerInfo[params[0]][pAdmin] = params[1];
- SendFormatMessageToAll(-1,"{FF00FF}The player %s has been Promoted to Admin Level %d",GetName[ params[0] ],params[1]);
- return 1;
- }
- CMD:gmx(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] < 5) return 1;
- SendFormatMessageToAll(-1,"{FF0000}The admin %s has reset the server",GetName[playerid]);
- SendRconCommand("gmx");
- return 1;
- }
- CMD:goto(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
- if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Goto [playerid]");
- GetPlayerPos(params[0],Pos[0],Pos[1],Pos[2]);
- SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
- SendFormatMessage(playerid,-1,"{FF00FF}You have been teleported to %s",GetName[ params[0] ]);
- SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been teleported to you",GetName[playerid]);
- return 1;
- }
- CMD:get(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
- if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Get[playerid]");
- GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
- SetPlayerPos(params[0],Pos[0],Pos[1],Pos[2]);
- SendFormatMessage(playerid,-1,"{FF00FF}%s has been teleported to you",GetName[ params[0] ]);
- SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been teleported you",GetName[playerid]);
- return 1;
- }
- CMD:kick(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
- if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Kick [playerid] [Reason]");
- SendFormatMessageToAll(-1,"The player %s has been kicked by the Admin %s (Reason : %s)",GetName[ params[0] ], GetName[playerid],String);
- Kick(params[0]);
- return 1;
- }
- CMD:ban(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] <= 2) return 1;
- if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Ban [playerid] [Reason]");
- PlayerInfo[params[0]][pBan] = true;
- Kick(params[0]);
- SendFormatMessageToAll(-1,"The player %s was banned by the Admin %s (Reason : %s)",GetName[ params[0] ], GetName[playerid],String);
- return 1;
- }
- CMD:unban(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] <= 2) return 1;
- new iPlayerName[26];
- if(sscanf(params,"s",iPlayerName[0]))return SendClientMessage(playerid,-1,"Usage:{FF0000} /UnBan [playerid]");
- if(!fexist(AdminFile[iPlayerName[0]])) return SendClientMessage(playerid,-1,"Error:{FF0000} This player not banned");
- format(AdminFile[playerid],32,"%s",iPlayerName[0]);
- if(!fexist(AdminFile[iPlayerName[0]]))return SendClientMessage(playerid,-1,"Error:{FF0000} This name is not exist");
- new INI:File = INI_Open(AdminFile[iPlayerName[0]]);
- INI_WriteBool(File,"Ban",false);
- INI_Close(File);
- SendFormatMessageToAll(-1,"The Administrator %s has unbanned %s", GetName[playerid],GetName[iPlayerName[0]]);
- return 1;
- }
- CMD:report(playerid,params[0])
- {
- if(PlayerInfo[playerid][pAdmin] >= 2) return 1;
- new str[50];
- if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Report [playerid] [Reason]");
- format(str,sizeof(str),"The player %s whas reported by the players %s (Reason : %s)",GetName[ params[0] ] , GetName[playerid],String);
- SendMessageToAdmin(str);
- return 1;
- }
- stock AdminsLevelS(playerid)
- {
- new GetAdminLevel[50];
- new lvl = PlayerInfo[playerid][pAdmin];
- switch(lvl)
- {
- case 1: GetAdminLevel = "Trail Admin";
- case 2: GetAdminLevel = "Normal Admin";
- case 3: GetAdminLevel = "Super Admin";
- case 4: GetAdminLevel = "Server Manager";
- case 5: GetAdminLevel = "Server Admin";
- }
- return GetAdminLevel;
- }
- stock SendMessageToAdmin(string[]) for(new i=0;i<MAX_PLAYERS;i++) if(PlayerInfo[i][pAdmin] <= 1 && Alogged[i]) SendClientMessage(i,-1,string);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement