Advertisement
WildWave

Untitled

May 4th, 2014
1,610
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.61 KB | None | 0 0
  1. //Credits to WildWave + Y_Less
  2. //Found bug ? Skype : ofekshirin or http://www.fxp.co.il/member.php?u=839912
  3. //======Includes=======//
  4. #include <a_samp>
  5. #include <YSI\y_ini>
  6. #include <YSI\y_ini>
  7. #include <ZCMD>
  8. #include <sscanf2>
  9. //======Formats=======//
  10. #define SendFormatMessage(%0,%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessage(%0, %1, String)
  11. #define SendFormatMessageToAll(%0,%1,%2) format(String, sizeof(String),%1,%2) && SendClientMessageToAll(%0, String)
  12. //==========Defines========//
  13. #define DIALOG_Alog 7
  14. #define Apass "changeit"
  15. new AdminFile[MAX_PLAYERS][MAX_PLAYER_NAME],
  16. bool:Alogged[MAX_PLAYERS] = false,
  17. GetName[MAX_PLAYERS][MAX_PLAYER_NAME],
  18. String[128],
  19. Float:Pos[4];
  20. enum pInfo
  21. {
  22. pAdmin,
  23. bool:pBan
  24. }
  25. new PlayerInfo[MAX_PLAYERS][pInfo];
  26. public OnPlayerConnect(playerid)
  27. {
  28. GetPlayerName(playerid,GetName[playerid],MAX_PLAYER_NAME+1) && format(AdminFile[playerid],sizeof(AdminFile),"Admin/%s.ini",GetName[playerid]);
  29. inline LoadUserDate(string:name[],string:value[])
  30. {
  31. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  32. INI_Bool("Ban",PlayerInfo[playerid][pBan]);
  33. }
  34. if(fexist(AdminFile[playerid]))
  35. {
  36. INI_ParseFile(AdminFile[playerid],using inline "LoadUserDate");
  37. }
  38. if(PlayerInfo[playerid][pBan] == true) return Kick(playerid);
  39. 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");
  40. return 1;
  41. }
  42. public OnPlayerCommandReceived(playerid, cmdtext[])
  43. {
  44. 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;
  45. return 1;
  46. }
  47. public OnPlayerDisconnect(playerid, reason)
  48. {
  49. if(PlayerInfo[playerid][pAdmin] >= 1) Alogged[playerid] = false;
  50. new INI:File = INI_Open(AdminFile[playerid]);
  51. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  52. INI_WriteInt(File,"Ban",PlayerInfo[playerid][pBan]);
  53. INI_Close(File);
  54. return 1;
  55. }
  56. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  57. {
  58. if(dialogid == DIALOG_Alog && response && !strcmp(inputtext,Apass,true))
  59. {
  60. Alogged[playerid] = true;
  61. format(String,sizeof(String),"Administrator %s[ID:%d] is back, he logged into his admin account",GetName[playerid],playerid);
  62. SendMessageToAdmin(String);
  63. }
  64. else
  65. {
  66. format(String,sizeof(String),"%s[ID:%d] has tried the admin login pass, but failed - check him out NOW",GetName[playerid],playerid);
  67. SendMessageToAdmin(String);
  68. }
  69. return 1;
  70. }
  71. //=================Commands=============================//
  72. CMD:alog(playerid,params[])
  73. {
  74. if(PlayerInfo[playerid][pAdmin] >= 1)
  75. {
  76. if(Alogged[playerid]) return SendClientMessage(playerid,-1,"{FF0000}[Error:] You already logged to the system");
  77. ShowPlayerDialog(playerid,DIALOG_Alog,DIALOG_STYLE_INPUT,"{FF00FF}Admin System","{FF00FF}Please enter the admin password","Okey","Cancel");
  78. }
  79. return 1;
  80. }
  81. CMD:admins(playerid,params[])
  82. {
  83. new aCount = 0;
  84. for(new i, j = GetMaxPlayers(); i != j; i++)
  85. {
  86. if(PlayerInfo[i][pAdmin] && IsPlayerConnected(i) && Alogged[i] == true) aCount ++;
  87. format(String,sizeof(String),"{FF00FF}%s [AdminLevel: %s | %s]",GetName[i],PlayerInfo[playerid][pAdmin],AdminsLevelS(i));
  88. }
  89. if(aCount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
  90. SendClientMessage(playerid,-1,String);
  91. return 1;
  92. }
  93. CMD:sethp(playerid,params[])
  94. {
  95. if( PlayerInfo[playerid][pAdmin] < 2 ) return 1;
  96. if(sscanf(params,"uf",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /SetHP [playerid] [Amount]");
  97. SetPlayerHealth(params[0],params[1]);
  98. SendFormatMessageToAll(-1,"{FF00FF}The Admin %s has beed edit %s health",GetName[playerid],GetName[ params[0] ]);
  99. return 1;
  100. }
  101. CMD:setar(playerid,params[])
  102. {
  103. if( PlayerInfo[playerid][pAdmin] < 2 ) return 1;
  104. if(sscanf(params,"uf",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /SetAR [playerid] [Amount]");
  105. SetPlayerArmour(params[0],params[1]);
  106. SendFormatMessageToAll(-1,"{FF00FF}The Admin %s has beed edit %s armour",GetName[playerid],GetName[ params[0] ]);
  107. return 1;
  108. }
  109. CMD:giveweapon(playerid,params[])
  110. {
  111. if( PlayerInfo[playerid][pAdmin] < 3 ) return 1;
  112. if(sscanf(params,"udd",params[0],params[1],params[2])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /GiveWeapon [playerid] [WeaponID] [Amount]");
  113. GivePlayerWeapon(params[0],params[1],params[2]);
  114. SendFormatMessage(playerid,-1,"{FF00FF}You gaved to %s weapon",GetName[ params[0] ]);
  115. SendFormatMessage(params[0],-1,"{FF00FF}The admin %s gaved you weapon",GetName[playerid]);
  116. return 1;
  117. }
  118. CMD:resetweapon(playerid,params[])
  119. {
  120. if(PlayerInfo[playerid][pAdmin] < 3 ) return 1;
  121. if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{ff0000} /ResetWeapon [playerid]");
  122. ResetPlayerWeapons(params[0]);
  123. SendFormatMessage(playerid,-1,"{FF00FF}You have been reset %s weapons",GetName[ params[0] ]);
  124. SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been reset your weapons",GetName[playerid]);
  125. return 1;
  126. }
  127. CMD:say(playerid,params[])
  128. {
  129. if(PlayerInfo[playerid][pAdmin] < 1) return 1;
  130. if(sscanf(params,"s[26]",String)) return SendClientMessage(playerid,-1,"Usage:{ff0000} /Say [Message]");
  131. SendFormatMessageToAll(-1,"{FF0000}**Administrator %s : %s",GetName[playerid],String);
  132. return 1;
  133. }
  134. CMD:setadmin(playerid,params[])
  135. {
  136. if(!IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] < 5) return 1;
  137. if(sscanf(params,"ui",params[0],params[1])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /SetAdmin [playerid] [0-5]");
  138. if( params[1] > 5 ) return SendClientMessage( playerid, -1, "/SetAdmin [playerid] [0-5]" );
  139. PlayerInfo[params[0]][pAdmin] = params[1];
  140. SendFormatMessageToAll(-1,"{FF00FF}The player %s has been Promoted to Admin Level %d",GetName[ params[0] ],params[1]);
  141. return 1;
  142. }
  143. CMD:gmx(playerid,params[])
  144. {
  145. if(PlayerInfo[playerid][pAdmin] < 5) return 1;
  146. SendFormatMessageToAll(-1,"{FF0000}The admin %s has reset the server",GetName[playerid]);
  147. SendRconCommand("gmx");
  148. return 1;
  149. }
  150. CMD:goto(playerid,params[])
  151. {
  152. if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
  153. if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Goto [playerid]");
  154. GetPlayerPos(params[0],Pos[0],Pos[1],Pos[2]);
  155. SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  156. SendFormatMessage(playerid,-1,"{FF00FF}You have been teleported to %s",GetName[ params[0] ]);
  157. SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been teleported to you",GetName[playerid]);
  158. return 1;
  159. }
  160. CMD:get(playerid,params[])
  161. {
  162. if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
  163. if(sscanf(params,"u",params[0])) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Get[playerid]");
  164. GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  165. SetPlayerPos(params[0],Pos[0],Pos[1],Pos[2]);
  166. SendFormatMessage(playerid,-1,"{FF00FF}%s has been teleported to you",GetName[ params[0] ]);
  167. SendFormatMessage(params[0],-1,"{FF00FF}The admin %s has been teleported you",GetName[playerid]);
  168. return 1;
  169. }
  170. CMD:kick(playerid,params[])
  171. {
  172. if(PlayerInfo[playerid][pAdmin] <= 1) return 1;
  173. if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Kick [playerid] [Reason]");
  174. SendFormatMessageToAll(-1,"The player %s has been kicked by the Admin %s (Reason : %s)",GetName[ params[0] ], GetName[playerid],String);
  175. Kick(params[0]);
  176. return 1;
  177. }
  178. CMD:ban(playerid,params[])
  179. {
  180. if(PlayerInfo[playerid][pAdmin] <= 2) return 1;
  181. if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Ban [playerid] [Reason]");
  182. PlayerInfo[params[0]][pBan] = true;
  183. Kick(params[0]);
  184. SendFormatMessageToAll(-1,"The player %s was banned by the Admin %s (Reason : %s)",GetName[ params[0] ], GetName[playerid],String);
  185. return 1;
  186. }
  187. CMD:unban(playerid,params[])
  188. {
  189. if(PlayerInfo[playerid][pAdmin] <= 2) return 1;
  190. new iPlayerName[26];
  191. if(sscanf(params,"s",iPlayerName[0]))return SendClientMessage(playerid,-1,"Usage:{FF0000} /UnBan [playerid]");
  192. if(!fexist(AdminFile[iPlayerName[0]])) return SendClientMessage(playerid,-1,"Error:{FF0000} This player not banned");
  193. format(AdminFile[playerid],32,"%s",iPlayerName[0]);
  194. if(!fexist(AdminFile[iPlayerName[0]]))return SendClientMessage(playerid,-1,"Error:{FF0000} This name is not exist");
  195. new INI:File = INI_Open(AdminFile[iPlayerName[0]]);
  196. INI_WriteBool(File,"Ban",false);
  197. INI_Close(File);
  198. SendFormatMessageToAll(-1,"The Administrator %s has unbanned %s", GetName[playerid],GetName[iPlayerName[0]]);
  199. return 1;
  200. }
  201. CMD:report(playerid,params[0])
  202. {
  203. if(PlayerInfo[playerid][pAdmin] >= 2) return 1;
  204. new str[50];
  205. if(sscanf(params,"us[26]",params[0],String)) return SendClientMessage(playerid,-1,"Usage:{FF0000} /Report [playerid] [Reason]");
  206. format(str,sizeof(str),"The player %s whas reported by the players %s (Reason : %s)",GetName[ params[0] ] , GetName[playerid],String);
  207. SendMessageToAdmin(str);
  208. return 1;
  209. }
  210. stock AdminsLevelS(playerid)
  211. {
  212. new GetAdminLevel[50];
  213. new lvl = PlayerInfo[playerid][pAdmin];
  214. switch(lvl)
  215. {
  216. case 1: GetAdminLevel = "Trail Admin";
  217. case 2: GetAdminLevel = "Normal Admin";
  218. case 3: GetAdminLevel = "Super Admin";
  219. case 4: GetAdminLevel = "Server Manager";
  220. case 5: GetAdminLevel = "Server Admin";
  221. }
  222. return GetAdminLevel;
  223. }
  224. 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