Advertisement
Guest User

LWAdmin System By Loinal

a guest
Jun 14th, 2016
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.85 KB | None | 0 0
  1. //============================LWAdmin System========================================//
  2. //\\\\\\\\\\\\\\\\\\\\\\\\\\\Includes\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//
  3. #include <a_samp>
  4. #include <zcmd>
  5. #include <foreach>
  6. #include <sscanf2>
  7. #include <YSI\y_ini>
  8. #pragma tabsize 0
  9. #define COLOR_BLUE 0x3700FFFF
  10. #define COLOR_RED 0xFF0000FF
  11. #define COLOR_PINK 0xF797CEFF
  12. #define COLOR_PURPLE 0xF20CD0FF
  13. #define COLOR_COLORGREEN 0x00FFAAFF
  14. #define COLOR_LIGHTGREEN 0x00FF26FF
  15. #define COLOR_YELLOW 0xE0FF47FF
  16. #define COLOR_ORANGE 0xF5BE5FFF
  17. #define COLOR_BROWN 0x9C761FFF
  18. #define red 0xF60000AA
  19. #define COLOR_GREEN 0x21DD00FF
  20. #define COLOR_BLACK 0x000000AA
  21. #define orange 0xFF8000C8
  22. #define COLOR_MESSAGE_YELLOW 0xFFDD00AA
  23. #define DIALOG_REGISTER 1
  24. #define DIALOG_LOGIN 2
  25. #define DIALOG_SUCCESS_1 3
  26. #define DIALOG_SUCCESS_2 4
  27. //==================================================================================//
  28. enum pInfo
  29. {
  30. pPass,
  31. pCash,
  32. pAdmin,
  33. pKills,
  34. pDeaths,
  35. Kiss,
  36. Pizza
  37. }
  38. new PlayerInfo[MAX_PLAYERS][pInfo];
  39. new Banned[MAX_PLAYERS];
  40. new Mute[MAX_PLAYERS];
  41. //====================================================================================//
  42. #define PATH "/LWUsers/%s.ini"
  43. #define COL_WHITE "{FFFFFF}"
  44. #define COL_RED "{F81414}"
  45. #define COL_GREEN "{00FF22}"
  46. #define COL_LIGHTBLUE "{00CED1}"
  47. forward LoadUser_data(playerid,name[],value[]);
  48. public LoadUser_data(playerid,name[],value[])
  49. {
  50. INI_Int("Password",PlayerInfo[playerid][pPass]);
  51. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  52. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  53. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  54. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  55. INI_Int("Kisses",PlayerInfo[playerid][Kiss]);
  56. INI_Int("Pizzas",PlayerInfo[playerid][Pizza]);
  57. return 1;
  58. }
  59. stock UserPath(playerid)
  60. {
  61. new string[128],playername[MAX_PLAYER_NAME];
  62. GetPlayerName(playerid,playername,sizeof(playername));
  63. format(string,sizeof(string),PATH,playername);
  64. return string;
  65. }
  66. stock udb_hash(buf[]) {
  67. new length=strlen(buf);
  68. new s1 = 1;
  69. new s2 = 0;
  70. new n;
  71. for (n=0; n<length; n++)
  72. {
  73. s1 = (s1 + buf[n]) % 65521;
  74. s2 = (s2 + s1) % 65521;
  75. }
  76. return (s2 << 16) + s1;
  77. }
  78. //================================================================================//
  79.  
  80. public OnFilterScriptInit()
  81. {
  82. print("\n--------------------------------------");
  83. print("LWAdmin System By Loinal Loaded");
  84. print("--------------------------------------\n");
  85. return 1;
  86. }
  87.  
  88. public OnFilterScriptExit()
  89. {
  90. return 1;
  91. }
  92.  
  93. public OnPlayerConnect(playerid)
  94. {
  95. if(fexist(UserPath(playerid)))
  96. {
  97. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  98. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Welcome To LWAdmin Please Login","Login","Quit");
  99. }
  100. else
  101. {
  102. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Welcome To LWAdmin Please Register","Register","Quit");
  103. }
  104. if(Banned[playerid] == 1)
  105. {
  106. ShowPlayerDialog(playerid,900,DIALOG_STYLE_MSGBOX,"You Have Been Banned!","You Are Banned From This Server\n If You think that it wasn't fair apply on our forum www.forum.sa-mp.com","Ok","");
  107. Kick(playerid);
  108. }
  109. return 1;
  110. }
  111.  
  112. public OnPlayerDisconnect(playerid, reason)
  113. {
  114. new INI:File = INI_Open(UserPath(playerid));
  115. INI_SetTag(File,"data");
  116. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  117. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  118. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  119. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  120. INI_WriteInt(File,"Kisses",PlayerInfo[playerid][Kiss]);
  121. INI_WriteInt(File,"Pizzas",PlayerInfo[playerid][Pizza]);
  122. INI_Close(File);
  123. return 1;
  124. }
  125.  
  126. public OnPlayerDeath(playerid, killerid, reason)
  127. {
  128. PlayerInfo[killerid][pKills]++;
  129. PlayerInfo[playerid][pDeaths]++;
  130. return 1;
  131. }
  132.  
  133. public OnPlayerText(playerid, text[])
  134. {
  135. if(Mute[playerid] == 1)
  136. {
  137. SendClientMessage(playerid,0xFF0000FF,"Sorry, Your Are Muted");
  138. return 0;
  139. }
  140. return 1;
  141. }
  142. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  143. {
  144. switch( dialogid )
  145. {
  146. case DIALOG_REGISTER:
  147. {
  148. if (!response) /*Kick(playerid);*/
  149. {
  150. new string[123];
  151. format(string,sizeof(string),"TempNameID%d",playerid);
  152. SetPlayerName(playerid,string);
  153. }
  154. if(response)
  155. {
  156. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  157. new INI:File = INI_Open(UserPath(playerid));
  158. INI_SetTag(File,"data");
  159. INI_WriteInt(File,"Password",udb_hash(inputtext));
  160. INI_WriteInt(File,"Cash",0);
  161. INI_WriteInt(File,"Admin",0);
  162. INI_WriteInt(File,"Kills",0);
  163. INI_WriteInt(File,"Deaths",0);
  164. INI_Close(File);
  165.  
  166. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You Have Registerd Welcome To TrafficWars","Ok","");
  167. }
  168. }
  169.  
  170. case DIALOG_LOGIN:
  171. {
  172. if (!response) /*Kick(playerid);*/
  173. {
  174. new string[123];
  175. format(string,sizeof(string),"TempNameID%d",playerid);
  176. SetPlayerName(playerid,string);
  177. }
  178. if( response )
  179. {
  180. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  181. {
  182. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  183. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  184. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  185. }
  186. else
  187. {
  188. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  189. }
  190. return 1;
  191. }
  192. }
  193. }
  194. return 1;
  195. }
  196. CMD:setkills(playerid,params[])
  197. {
  198. if(PlayerInfo[playerid][pAdmin] >= 4)
  199. {
  200. new target,kills,string[133];
  201. if(sscanf(params,"ud[133]",target,kills)) return SendClientMessage(playerid,-1,"USAGE: /setkills [playerid][kills]");
  202. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  203. PlayerInfo[target][pKills] = kills;
  204. format(string,sizeof(string),"Admin %s has setted your kills to %d",pName(playerid),kills);
  205. SendClientMessage(target,0xFF0000FF,string);
  206. format(string,sizeof(string),"You have setted %s kills to %d",pName(target),kills);
  207. SendClientMessage(target,0xFF0000FF,string);
  208. }
  209. else
  210. {
  211. SendClientMessage(playerid,-1,"Only Level +4 can use this command");
  212. }
  213. return 1;
  214. }
  215.  
  216. CMD:stats(playerid,params[])
  217. {
  218. new string[123+100];
  219. format(string,sizeof(string),"Statistics For %s\nKills: %d\nDeaths: %d\nScore: %d\nCash: %d\nKisses: %d\nPizzas: %d",pName(playerid),PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],GetPlayerScore(playerid),GetPlayerMoney(playerid),PlayerInfo[playerid][Kiss],PlayerInfo[playerid][Pizza]);
  220. ShowPlayerDialog(playerid,200,DIALOG_STYLE_MSGBOX,"Stats",string,"Ok","");
  221. return 1;
  222. }
  223. CMD:setlevel(playerid,params[])
  224. {
  225. if(PlayerInfo[playerid][pAdmin] >= 5)
  226. {
  227. new target,level,string[134];
  228. if(sscanf(params,"ui",target,level)) return SendClientMessage(playerid,-1,"USAGE: /setlevel [playerid] [0 - 5]");
  229. if(level < 0 || level > 5) return SendClientMessage(playerid, COLOR_RED, "Max Admin Level [5]");
  230. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  231. PlayerInfo[target][pAdmin] = level;
  232. format(string,sizeof(string),"Administrator %s Has setted your Admin Level To %d",pName(playerid),level);
  233. SendClientMessage(target,0xFFFF00FF,string);
  234. format(string,sizeof(string),"You have setted %s Level To %d",pName(target),level);
  235. SendClientMessage(playerid,0xFFFF00FF,string);
  236. return 1;
  237. }
  238. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +5 can use this command");
  239. }
  240. CMD:kick(playerid,params[])
  241. {
  242. if(PlayerInfo[playerid][pAdmin] >= 1)
  243. {
  244. new target,reason,string[134];
  245. if(sscanf(params,"us",target,reason)) return SendClientMessage(playerid,-1,"USAGE: /kick [playerid] [reason]");
  246. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  247. format(string,sizeof(string),"Administrator %s has kicked you for: %s",pName(playerid),reason);
  248. SendClientMessage(target,0xFFFF00FF,string);
  249. format(string,sizeof(string),"you have kicked %s For: %s",pName(target),reason);
  250. SendClientMessage(playerid,0xFFFF00FF,string);
  251. Kick(target);
  252. return 1;
  253. }
  254. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +1 can use this command");
  255. }
  256. CMD:ban(playerid,params[])
  257. {
  258. if(PlayerInfo[playerid][pAdmin] >= 2)
  259. {
  260. new target,reason,string[134];
  261. if(sscanf(params,"us",target,reason)) return SendClientMessage(playerid,-1,"USAGE: /ban [playerid] [reason]");
  262. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  263. format(string,sizeof(string),"Administrator %s has banned you for: %s",pName(playerid),reason);
  264. SendClientMessage(target,0xFFFF00FF,string);
  265. format(string,sizeof(string),"you have banned %s For: %s",pName(target),reason);
  266. SendClientMessage(playerid,0xFFFF00FF,string);
  267. Ban(target);
  268. Banned[target] = 1;
  269. return 1;
  270. }
  271. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +2 can use this command");
  272. }
  273. CMD:givecash(playerid,params[])
  274. {
  275. if(PlayerInfo[playerid][pAdmin] >= 3)
  276. {
  277. new target,money,string[134];
  278. if(sscanf(params,"ui",target,money)) return SendClientMessage(playerid,-1,"USAGE: /givecash [playerid] [Amount]");
  279. if(money < 0 || money > 999999999) return SendClientMessage(playerid, COLOR_RED, "Max Amount Of Cash [999999999]");
  280. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  281. GivePlayerMoney(target,money);
  282. format(string,sizeof(string),"Administrator %s has Gived You %d Cash",pName(playerid),money);
  283. SendClientMessage(target,0xFFFF00FF,string);
  284. format(string,sizeof(string),"you have Gived %s %d Cash",pName(target),money);
  285. SendClientMessage(playerid,0xFFFF00FF,string);
  286. return 1;
  287. }
  288. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +3 can use this command");
  289. }
  290. CMD:setscore(playerid,params[])
  291. {
  292. if(PlayerInfo[playerid][pAdmin] >= 3)
  293. {
  294. new target,score,string[134];
  295. if(sscanf(params,"ui",target,score)) return SendClientMessage(playerid,-1,"USAGE: /setscore [playerid] [Amount]");
  296. if(score < 0 || score > 999999999) return SendClientMessage(playerid, COLOR_RED, "Max Amount Of Score [999999999]");
  297. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  298. SetPlayerScore(target,score);
  299. format(string,sizeof(string),"Administrator %s has Gived You %d Score",pName(playerid),score);
  300. SendClientMessage(target,0xFFFF00FF,string);
  301. format(string,sizeof(string),"you have Gived %s %d Score",pName(target),score);
  302. SendClientMessage(playerid,0xFFFF00FF,string);
  303. return 1;
  304. }
  305. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +3 can use this command");
  306. }
  307. CMD:setkisses(playerid,params[])
  308. {
  309. if(PlayerInfo[playerid][pAdmin] >= 5)
  310. {
  311. new target,amount,string[123];
  312. if(sscanf(params,"ui",target,amount)) return SendClientMessage(playerid,-1,"USAGE: /setkisses [playerid] [Amount]");
  313. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  314. PlayerInfo[playerid][Kiss] = amount;
  315. format(string,sizeof(string),"Administrator %s Setted Your Kisses To %d",pName(playerid),amount);
  316. SendClientMessage(target,0xFFFF00FF,string);
  317. format(string,sizeof(string),"you have Setted %s Kisses to %d",pName(target),amount);
  318. SendClientMessage(playerid,0xFFFF00FF,string);
  319. return 1;
  320. }
  321. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +5 can use this command");
  322. }
  323. CMD:setpizzas(playerid,params[])
  324. {
  325. if(PlayerInfo[playerid][pAdmin] >= 5)
  326. {
  327. new target,amount,string[123];
  328. if(sscanf(params,"ui",target,amount)) return SendClientMessage(playerid,-1,"USAGE: /setpizzas [playerid] [Amount]");
  329. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  330. PlayerInfo[playerid][Pizza] = amount;
  331. format(string,sizeof(string),"Administrator %s Setted Your Pizzas To %d",pName(playerid),amount);
  332. SendClientMessage(target,0xFFFF00FF,string);
  333. format(string,sizeof(string),"you have Setted %s Pizzas to %d",pName(target),amount);
  334. SendClientMessage(playerid,0xFFFF00FF,string);
  335. return 1;
  336. }
  337. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +5 can use this command");
  338. }
  339. CMD:pizza(playerid,params[])
  340. {
  341. if(PlayerInfo[playerid][pAdmin] >= 4)
  342. {
  343. new target,string[123];
  344. if(sscanf(params,"ud",target)) return SendClientMessage(playerid,-1,"USAGE: /pizza [playerid]");
  345. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  346. PlayerInfo[playerid][Pizza] += 1;
  347. format(string,sizeof(string),"Administrator %s Gived you 1 Pizza [Total: %d]",pName(playerid),PlayerInfo[target][Pizza]);
  348. SendClientMessage(target,0xFFFF00FF,string);
  349. format(string,sizeof(string),"you have Gived %s 1 Pizza",pName(target));
  350. SendClientMessage(playerid,0xFFFF00FF,string);
  351. return 1;
  352. }
  353. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +4 can use this command");
  354. }
  355. CMD:kiss(playerid,params[])
  356. {
  357. if(PlayerInfo[playerid][pAdmin] >= 4)
  358. {
  359. new target,string[123];
  360. if(sscanf(params,"ud",target)) return SendClientMessage(playerid,-1,"USAGE: /kiss [playerid]");
  361. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  362. PlayerInfo[playerid][Kiss] += 1;
  363. format(string,sizeof(string),"Administrator %s Gived you 1 Kiss [Total: %d]",pName(playerid),PlayerInfo[target][Kiss]);
  364. SendClientMessage(target,0xFFFF00FF,string);
  365. format(string,sizeof(string),"you have Gived %s 1 Kiss",pName(target));
  366. SendClientMessage(playerid,0xFFFF00FF,string);
  367. return 1;
  368. }
  369. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +4 can use this command");
  370. }
  371. CMD:freeze(playerid,params[])
  372. {
  373. if(PlayerInfo[playerid][pAdmin] >= 1)
  374. {
  375. new target,string[123];
  376. if(sscanf(params,"ud",target)) return SendClientMessage(playerid,-1,"USAGE: /freeze [playerid]");
  377. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  378. TogglePlayerControllable(target,0);
  379. format(string,sizeof(string),"Administrator %s Has Freezed You",pName(playerid));
  380. SendClientMessage(target,0xFFFF00FF,string);
  381. format(string,sizeof(string),"you have Freezed %s",pName(target));
  382. SendClientMessage(playerid,0xFFFF00FF,string);
  383. return 1;
  384. }
  385. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +1 can use this command");
  386. }
  387. CMD:unfreeze(playerid,params[])
  388. {
  389. if(PlayerInfo[playerid][pAdmin] >= 1)
  390. {
  391. new target,string[123];
  392. if(sscanf(params,"ud",target)) return SendClientMessage(playerid,-1,"USAGE: /unfreeze [playerid]");
  393. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  394. TogglePlayerControllable(target,1);
  395. format(string,sizeof(string),"Administrator %s Has UnFreezed You",pName(playerid));
  396. SendClientMessage(target,0xFFFF00FF,string);
  397. format(string,sizeof(string),"you have UnFreezed %s",pName(target));
  398. SendClientMessage(playerid,0xFFFF00FF,string);
  399. return 1;
  400. }
  401. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +1 can use this command");
  402. }
  403. CMD:mute(playerid,params[])
  404. {
  405. if(PlayerInfo[playerid][pAdmin] >= 2)
  406. {
  407. new target,string[123];
  408. if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"USAGE: /mute [playerid]");
  409. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  410. Mute[target] = 1;
  411. format(string,sizeof(string),"Administrator %s Has Mutted You",pName(playerid));
  412. SendClientMessage(target,0xFFFF00FF,string);
  413. format(string,sizeof(string),"you have Mutted %s",pName(target));
  414. SendClientMessage(playerid,0xFFFF00FF,string);
  415. return 1;
  416. }
  417. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +2 can use this command");
  418. }
  419. CMD:unmute(playerid,params[])
  420. {
  421. if(PlayerInfo[playerid][pAdmin] >= 2)
  422. {
  423. new target,string[123];
  424. if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"USAGE: /unmute [playerid]");
  425. if(!IsPlayerConnected(target)) return SendClientMessage(playerid,-1,"**Player is not connected");
  426. Mute[target] = 0;
  427. format(string,sizeof(string),"Administrator %s Has unMutted You",pName(playerid));
  428. SendClientMessage(target,0xFFFF00FF,string);
  429. format(string,sizeof(string),"you have unMutted %s",pName(target));
  430. SendClientMessage(playerid,0xFFFF00FF,string);
  431. return 1;
  432. }
  433. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +2 can use this command");
  434. }
  435. CMD:acmds(playerid,params[])
  436. {
  437. if(PlayerInfo[playerid][pAdmin] >= 1)
  438. {
  439. ShowPlayerDialog(playerid,100,DIALOG_STYLE_MSGBOX,"Admincmds","Level 1:\n/kick /freeze /unfreeze\nLevel 2:\n/ban /mute /unmute\nLevel 3:\n/givecash /setscore\nLevel 4:\n/setkills /kiss /pizza\nLevel 5:\n/setlevel /setkisses /setpizzas","Ok","");
  440. return 1;
  441. }
  442. else return SendClientMessage(playerid,0xFF0000FF,"Only Level +1 can use this command");
  443. }
  444. CMD:makemeadmin(playerid,params[])
  445. {
  446. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000FF,"Only Rcons Can Use This Command");
  447. {
  448. PlayerInfo[playerid][pAdmin] = 5;
  449. }
  450. return 1;
  451. }
  452. //================================//
  453. stock pName(playerid)
  454. {
  455. new name[MAX_PLAYER_NAME];
  456. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  457. return name;
  458. }
  459. //===============================//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement