Advertisement
Lordz

Damin fix

Nov 25th, 2012
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.91 KB | None | 0 0
  1. /*
  2. Change logs / Updates
  3.  
  4. - = D a r [ k ] L o r d = - Admin script ...
  5.  
  6. ________________________________Version 1.1v____________________________________
  7. This Version was a starting of the script well made by -=Dar[K]Lord=- And
  8. Help by Lordz™.
  9. Well this starting Of the script contains less commands well will be updated in the
  10. next version
  11. Max Admin levels will be 6 if u want to change as u wish to 10 .. you can change
  12. "MAX_ALevels" from 6 to 10 or whichever level u want.
  13.  
  14. */
  15. #include <a_samp>
  16. #include <YSI\y_ini>
  17. #include <ZCMD>
  18. #include <sscanf2>
  19.  
  20. #define D_Register 1000
  21. #define D_Login 1001
  22.  
  23. /*------------------------------------------------------------------------------
  24. Maximums ---------------------------
  25. -------------------------------------------------------------------------------*/
  26. #define MAX_ALevels 6
  27. #define MAX_VLevels 4
  28. #define MAX_PING 500
  29. #define MAX_MUTE_WARNINGS 5
  30. #define TIME_UPDATEACCOUNT 15000 //Time (in milliseconds), every accounts will be updated. Default is 15 seconds.
  31. /*------------------------------------------------------------------------------
  32. PATHS ---------------------------
  33. -------------------------------------------------------------------------------*/
  34. #define UserPath "DAdmin/Users/%s.ini"
  35. #define ConfigPath "DAdmin/Configs/Config.ini"
  36.  
  37. #define DRPass "-=D[K]L=-" /*Change it to Your Wish*/
  38. #define DWarns 6
  39. /*------------------------------------------------------------------------------
  40. Colours-----------------------------
  41. ------------------------------------------------------------------------------*/
  42. #define red 0xFF0000AA
  43. #define GREY 0xAFAFAFAA
  44. #define GREEN 0x33AA33AA
  45. #define YELLOW 0xFFFF00AA
  46. #define WHITE 0xFFFFFFAA
  47. #define LIGHTBLUE 0x33CCFFAA
  48. #define ORANGE 0xFF9900AA
  49. #define LIGHTGREEN 0x38FF06FF
  50. #define LIGHTBLUE2 0xF6BB0AAA
  51. #define silver 0x00F5FFFF
  52. #define COLOR_GREEN 0x33AA33AA
  53. #define COLOR_PINK 0xFF66FFAA
  54. #define COLOR_BLUE 0x0000BBAA
  55. #define COLOR_PURPLE 0x800080AA
  56. #define COLOR_BLACK 0x000000AA
  57. #define COLOR_WHITE 0xFFFFFFAA
  58. #define COLOR_GREEN1 0x33AA33AA
  59. #define COLOR_BROWN 0xA52A2AAA
  60. #define blue 0x375FFFFF
  61. #define BlueMsg 0x0BBF6AAA
  62. #define white 0xFFFFFFAA
  63. #define lightred 0xFB0000AA
  64. #define green 0x33FF33AA
  65. #define yellow 0xFFFF00AA
  66. #define grey 0xC0C0C0AA
  67. #define Red 0xFF0000FF
  68. #define Blue 0x000FFFFF
  69. #define White 0xFFFFFFFF
  70. #define Silver 0x00FFFFFF
  71. #define Green 0x21DD00FF
  72. #define Grey 0xAFAFAFAA
  73. #define Yellow 0xFFF000FF
  74. #define Green1 0x129E12FF
  75. #define Green2 0x53D212FF
  76. #define blue1 0x2641FEAA
  77. #define orange 0xFF9900AA
  78. #define black 0x2C2727AA
  79.  
  80. /*==============================================================================
  81. Forwards -------------->
  82. ===============================================================================*/
  83. forward LoadAccount_user(playerid, name[], value[]);
  84. forward ConfigLoad(name[], value[]);
  85. forward LevelMSG(playerid,Level);
  86. forward MessageToAdmins(color,const string[]);
  87. forward MessageToConsoleAdmins(color,const string[]);
  88. forward GodCarM(playerid);
  89.  
  90. stock Path(playerid)
  91. {
  92. new str[128],name[MAX_PLAYER_NAME];
  93. GetPlayerName(playerid,name,sizeof(name));
  94. format(str,sizeof(str),UserPath,name);
  95. return str;
  96. }
  97.  
  98. native WP_Hash(buffer[],len,const str[]);
  99.  
  100. enum PlayerInfo
  101. {
  102. Pass[129],
  103. Admin,
  104. Vip,
  105. Money,
  106. Scores,
  107. GodM,
  108. Kills,
  109. Reputation,
  110. Deaths,
  111. Banned,
  112. Logged,
  113. UseSkin,
  114. Freeze,
  115. DPoints,
  116. MuteWarnings,
  117. FSkin,
  118. Mute,
  119. DarkID
  120. }
  121. enum CarData
  122. {
  123. AdminCar,
  124. VipCar
  125. }
  126. enum Sinfo
  127. {
  128. HPK
  129. }
  130. new SData[Sinfo];
  131. new vInfo[MAX_VEHICLES][CarData];
  132. new pInfo[MAX_PLAYERS][PlayerInfo];
  133. new AdmRank[256];
  134. new VipRank[100];
  135. new NoAdmin;
  136.  
  137. new Text3D:Admincar[MAX_PLAYERS];
  138.  
  139.  
  140. public OnFilterScriptInit()
  141. {
  142. print("\n- - - - -= D A R [K] L O R D =- - - - - -");
  143. print("\t\tServer Info:");
  144. print("\n");
  145. print("Yini Script Loaded!");
  146. printf("Max Admin Level : %d\tMax Vip Levels:- %d",MAX_ALevels,MAX_VLevels);
  147. print("- - - - - - - - - - - - - - - - - - - - -\n");
  148. for(new i = 0; i < MAX_PLAYERS; i++)
  149. OnPlayerConnect(i);
  150. /*Timers*/
  151. SetTimer("GodCarM",1000,1);
  152. SetTimer("UpdateAccount", TIME_UPDATEACCOUNT, true);
  153.  
  154. /*
  155. Configuration file checker!
  156. */
  157. CheckConfigs();
  158. return 1;
  159. }
  160.  
  161. public OnFilterScriptExit()
  162. {
  163. for(new i = 0; i < MAX_PLAYERS; i++)
  164. OnPlayerDisconnect(i,0);
  165. return 1;
  166. }
  167.  
  168. public OnPlayerConnect(playerid)
  169. {
  170. new str[256];
  171. if(fexist(Path(playerid)))
  172. {
  173. INI_ParseFile(Path(playerid),"LoadAccount_user", .bExtra = true, .extra = playerid);
  174. if(pInfo[playerid][Banned] == 0)
  175. {
  176. format(str,sizeof(str),"{FFFFFF}Welcome {CCCCCC}%s{FFFFFF}!\nThis Account is registered on this server!\nPlease Enter your password to access your account!",Playername(playerid));
  177. ShowPlayerDialog(playerid,D_Login,DIALOG_STYLE_INPUT,"Account Login!",str,"Login","Quit");
  178. }
  179. else
  180. {
  181. SendClientMessage(playerid,Red,"[AMX]:You are banned!") && Kick(playerid);
  182. }
  183. }
  184. else
  185. {
  186. format(str,sizeof(str),"{FFFFFF}Welcome {CCCCCC}%s{FFFFFF}!\nThis Account is not registered on this server!\nPlease Enter your desired password to create your account on this server!",Playername(playerid));
  187. ShowPlayerDialog(playerid,D_Register,DIALOG_STYLE_INPUT,"Account Register",str,"Register","Quit");
  188. return 1;
  189. }
  190. return 1;
  191. }
  192. public OnPlayerDisconnect(playerid, reason)
  193. {
  194. if(fexist(Path(playerid)))
  195. {
  196. new INI:file = INI_Open(Path(playerid));
  197. INI_SetTag(file,"Data");
  198. INI_WriteInt(file,"Admin",pInfo[playerid][Admin]);
  199. INI_WriteInt(file,"Vip",pInfo[playerid][Vip]);
  200. INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
  201. INI_WriteInt(file,"Scores",GetPlayerScore(playerid));
  202. INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  203. INI_WriteInt(file,"Banned",pInfo[playerid][Banned]);
  204. INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  205. INI_WriteInt(file,"FSkin",pInfo[playerid][FSkin]);
  206. INI_WriteInt(file,"UseSkin",pInfo[playerid][UseSkin]);
  207. INI_WriteInt(file,"Rept",pInfo[playerid][Reputation]);
  208. INI_WriteInt(file,"DarkId",pInfo[playerid][DarkID]);
  209. INI_WriteInt(file,"DPoints",pInfo[playerid][DPoints]);
  210. pInfo[playerid][Logged] = 0;
  211. INI_Close(file);
  212. return 1;
  213. }
  214. return 1;
  215. }
  216.  
  217. public OnPlayerSpawn(playerid)
  218. {
  219. if(fexist(Path(playerid)))
  220. {
  221. if(pInfo[playerid][UseSkin] == 1)
  222. {
  223. SetPlayerSkin(playerid,pInfo[playerid][FSkin]);
  224. }
  225. return 1;
  226. }
  227. return 1;
  228. }
  229.  
  230. public OnPlayerDeath(playerid, killerid, reason)
  231. {
  232. pInfo[playerid][Deaths]++;
  233. pInfo[killerid][Kills]++;
  234. if(killerid != INVALID_PLAYER_ID)
  235. {
  236. pInfo[killerid][DPoints] += 4;
  237. pInfo[playerid][DPoints] -= 4;
  238. new string[256];
  239. format(string,sizeof(string),"Server Stats: %s(DPoints : %d) Killed %s(DPoints : %d)",Playername(killerid),pInfo[killerid][DPoints],Playername(playerid),pInfo[playerid][DPoints]);
  240. SendClientMessageToAll(Green,string);
  241. SendClientMessage(playerid,Red,"[AMX_DPoints]:Got Killed.. Lossed 4 points... Make Sure u dont lose next time!");
  242. SendClientMessage(killerid,Red,"[AMX_DPoints]:Killed Someone.. Gained 4 points.!");
  243. }
  244. return 1;
  245. }
  246.  
  247. public OnVehicleSpawn(vehicleid)
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnVehicleDeath(vehicleid, killerid)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnPlayerText(playerid, text[])
  258. {
  259. if(text[0] == '#' && pInfo[playerid][Admin] >= 1)
  260. {
  261. new string[128];
  262. format(string,sizeof(string),"(Admin Chat) *%s(Id:%d)*{FFFFFF}: %s",Playername(playerid),playerid,text[1]);
  263. MessageToAdmins(GetPlayerColor(playerid),string);
  264. return 0;
  265. }
  266. if(pInfo[playerid][Mute] == 1)
  267. {
  268. if(pInfo[playerid][MuteWarnings] < MAX_MUTE_WARNINGS)
  269. {
  270. pInfo[playerid][MuteWarnings]++;
  271. new string[256];
  272. format(string,sizeof(string),"[AMX]: You Are Mute By Admin , You Cannot Chat. [Warning]: %d/%d",pInfo[playerid][MuteWarnings],MAX_MUTE_WARNINGS);
  273. SendClientMessage(playerid,Red,string);
  274. }
  275. if(pInfo[playerid][MuteWarnings] == MAX_MUTE_WARNINGS)
  276. {
  277. new string[256];
  278. format(string,sizeof(string),"[AMX]: You Are Mute By Admin , You Cannot Chat. [Warning]: %d/%d",pInfo[playerid][MuteWarnings],MAX_MUTE_WARNINGS);
  279. SendClientMessage(playerid,Red,string);
  280. pInfo[playerid][MuteWarnings] = 0;
  281. pInfo[playerid][Mute] = 0;
  282. Kick(playerid);
  283. }
  284. return 0;
  285.  
  286. }
  287. return 1;
  288. }
  289.  
  290. forward UpdateAccounts();
  291. public UpdateAccounts()
  292. {
  293. for(new i; i< GetMaxPlayers(); i++)
  294. {
  295. if(IsPlayerConnected(i))
  296. {
  297. if(fexist(Path(i)))
  298. {
  299. if(pInfo[i][Logged] == 1)
  300. {
  301. new INI:file = INI_Open(Path(i));
  302. INI_SetTag(file,"Data");
  303. INI_WriteInt(file,"Money",GetPlayerMoney(i));
  304. INI_WriteInt(file,"Rept",pInfo[i][Reputation]);
  305. INI_WriteInt(file,"Scores",GetPlayerScore(i));
  306. INI_WriteInt(file,"FSkin",pInfo[i][FSkin]);
  307. INI_WriteInt(file,"UseSkin",pInfo[i][UseSkin]);
  308. INI_Close(file);
  309. }
  310. }
  311. }
  312. }
  313. return 1;
  314. }
  315. /*==============================================================================
  316. Some Players Command ---------- >
  317. ===============================================================================*/
  318. CMD:dcreatorcredits(playerid,params[])
  319. {
  320. ShowPlayerDialog(playerid,1600,DIALOG_STYLE_MSGBOX,"DarkLord system Credits","{FFF000}-=Dar[K]Lord=- Admin System Creator Credits:-\n\n{FFFFFF}Configger:- -=Dar[K]Lord=- [Samp Forums :- http://forum.sa-mp.com/member.php?u=183201]\nTester:- GAMER_007[Samp Forums :- http://forum.sa-mp.com/member.php?u=147638]\nHelper :- Lordz [Samp Forums :- http://forum.sa-mp.com/member.php?u=158660]","ok","");
  321. return 1;
  322. }
  323. CMD:favskin(playerid,params[])
  324. {
  325. if(fexist(Path(playerid)))
  326. {
  327. new skin = strval(params);
  328. if(sscanf(params,"i",skin))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF}/favskin [skinid]");
  329. pInfo[playerid][FSkin] = skin;
  330. pInfo[playerid][UseSkin] = 1;
  331. SetPlayerSkin(playerid,skin);
  332. new string[160];
  333. format(string,sizeof(string),"[AMX]:{CCCCCC}You Have Choosed Your Favorate Skin As %d",skin);
  334. return SendClientMessage(playerid,White,string);
  335. }
  336. else return SendClientMessage(playerid,Red,"[ERROR]:You Have No Account on this server!");
  337. }
  338. CMD:admins(playerid,params[])
  339. {
  340. new bool:First2 = false;
  341. new Count, i;
  342. new string[256];
  343. new adminname[MAX_PLAYER_NAME];
  344. for(i = 0; i < MAX_PLAYERS; i++)
  345. if(IsPlayerConnected(i) && pInfo[i][Admin] > 0)
  346. Count++;
  347.  
  348. if(Count == 0)
  349. return ShowPlayerDialog(playerid,9000,DIALOG_STYLE_MSGBOX,"Admins Online","{FF0000}No Admins Online!","Ok","Back");
  350.  
  351. for(i = 0; i < MAX_PLAYERS; i++)
  352. if(IsPlayerConnected(i) && pInfo[i][Admin] > 0)
  353. {
  354. if(pInfo[i][Admin] > 0)
  355. {
  356. switch(pInfo[i][Admin])
  357. {
  358. case 1: AdmRank = "Co - Operator";
  359. case 2: AdmRank = "Operator";
  360. case 3: AdmRank = "Co-Moderator";
  361. case 4: AdmRank = "Moderator";
  362. case 5: AdmRank = "Co - Owner";
  363. case 6: AdmRank = "Owner";
  364. }
  365. }
  366. GetPlayerName(i, adminname, sizeof(adminname));
  367. if(!First2)
  368. {
  369. format(string, sizeof(string), "\t\t{00FF00}Admins Online\n{FFFFFF}========================================\nAdmin\t\tRank\t\tStatus\n{CCCCCC}%s\t\t{FFFFFF}[%s]\t\t[%s]\n", Playername(i),AdmRank);
  370. First2 = true;
  371. }
  372. else format(string,sizeof(string),"%s\n{CCCCCC}%s\t\t{FFFFFF}[%s]\t\t[%s",string,Playername(i),AdmRank);
  373. }
  374. return ShowPlayerDialog(playerid,9000,DIALOG_STYLE_MSGBOX,"Admins Online",string,"Ok","Back");
  375. }
  376. CMD:vips(playerid,params[])
  377. {
  378. new bool:First2 = false;
  379. new Count, i;
  380. new string[256];
  381. new adminname[MAX_PLAYER_NAME];
  382. for(i = 0; i < MAX_PLAYERS; i++)
  383. if(IsPlayerConnected(i) && pInfo[i][Vip] > 0)
  384. Count++;
  385.  
  386. if(Count == 0)
  387. return ShowPlayerDialog(playerid,9001,DIALOG_STYLE_MSGBOX,"Admins Online","{FF0000}No Admins Online!","Ok","Back");
  388.  
  389. for(i = 0; i < MAX_PLAYERS; i++)
  390. if(IsPlayerConnected(i) && pInfo[i][Vip] > 0)
  391. {
  392. if(pInfo[i][Vip] > 0)
  393. {
  394. switch(pInfo[i][Vip])
  395. {
  396. case 1: VipRank = "Bronze";
  397. case 2: VipRank = "Silver";
  398. case 3: VipRank = "Gold";
  399. case 4: VipRank = "Platinum";
  400. }
  401. }
  402. GetPlayerName(i, adminname, sizeof(adminname));
  403. if(!First2)
  404. {
  405. format(string, sizeof(string), "\t\t{00FF00}Vips Online\n{FFFFFF}========================================\n{CCCCCC}%s\t{FFFFFF}(%s)", Playername(i),VipRank);
  406. First2 = true;
  407. }
  408. else format(string,sizeof(string),"%s\n{CCCCCC}%s\t{FFFFFF}(%s)",string,Playername(i),VipRank);
  409. }
  410. return ShowPlayerDialog(playerid,9001,DIALOG_STYLE_MSGBOX,"Admins Online",string,"Ok","Back");
  411. }
  412. CMD:rep(playerid,params[])
  413. {
  414. new player1 = strval(params);
  415. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/rep [playerid]");
  416. pInfo[player1][Reputation]++;
  417. new string[200];
  418. format(string,sizeof(string),"[AMX]: {00FF00}You Have Repped %s | Current Rep : %d",Playername(player1),pInfo[player1][Reputation]);
  419. SendClientMessage(playerid,White,string);
  420. format(string,sizeof(string),"[AMX]: {00FF00}You Have Been Repped By %s | Current Rep : %d",Playername(playerid),pInfo[player1][Reputation]);
  421. SendClientMessage(player1,White,string);
  422. return 1;
  423. }
  424. CMD:stats(playerid,params[])
  425. {
  426. new player1 = strval(params);
  427. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: /stats [playerid] || /mystats");
  428. if(fexist(Path(player1)))
  429. {
  430. new string[256];
  431. format(string,sizeof(string),"{CCCCCC}\t[AMX]: %s Stats\n\n{FFFFFF}Admin level : %d\nVip Level : %d\nCash : %d\nScore : %d\n\n\tReputations\nReputations : %d\n\n\tDark ID\nID: %d",Playername(player1),pInfo[player1][Admin],pInfo[player1][Vip],pInfo[player1][Money],pInfo[player1][Scores],pInfo[player1][Reputation],pInfo[player1][DarkID]);
  432. ShowPlayerDialog(playerid,1261,DIALOG_STYLE_MSGBOX,"{FFFFFF}[AMX]: Players Stats!",string,"Close","");
  433. }
  434. else
  435. {
  436. SendClientMessage(playerid,Red,"[AMX]: The Players File Doesnot Exists On this server");
  437. }
  438. return 1;
  439. }
  440. CMD:mystats(playerid,params[])
  441. {
  442. new string[256];
  443. format(string,sizeof(string),"{CCCCCC}\t[AMX]: %s Stats\n\n{FFFFFF}Admin level : %d\nVip Level : %d\nCash : %d\nScore : %d\n\n\tReputations\nReputations : %d\n\n\tDark ID\nID: %d",Playername(playerid),pInfo[playerid][Admin],pInfo[playerid][Vip],pInfo[playerid][Money],pInfo[playerid][Scores],pInfo[playerid][Reputation],pInfo[playerid][DarkID]);
  444. ShowPlayerDialog(playerid,1261,DIALOG_STYLE_MSGBOX,"{FFFFFF}[AMX]: Players Stats!",string,"Close","");
  445. }
  446. CMD:changepass(playerid,params[])
  447. {
  448. if(sscanf(params,"c",params)) return SendClientMessage(playerid,red,"[Useage]: /changepass [New Password]");
  449. if(fexist(Path(playerid)))
  450. {
  451. new string[256];
  452. new hashpass[129]; //Now we will create a new variable to hash his/her password
  453. WP_Hash(hashpass,sizeof(hashpass),params);//We will use whirlpool to hash their inputted text
  454. new INI:file = INI_Open(Path(playerid)); // we will open a new file for them to save their account inside of Scriptfiles/Users folder
  455. INI_SetTag(file,"Data");//We will set a tag inside of user's account called "Player's Data"
  456. INI_WriteString(file,"Password",hashpass);//This will write a hashed password into user's account
  457. INI_WriteInt(file,"Admin",pInfo[playerid][Admin]);
  458. INI_WriteInt(file,"Vip",pInfo[playerid][Vip]);
  459. INI_WriteInt(file,"Money",pInfo[playerid][Money]);
  460. INI_WriteInt(file,"Scores",pInfo[playerid][Scores]);
  461. INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  462. INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  463. INI_WriteInt(file,"Banned",pInfo[playerid][Banned]);
  464. INI_WriteInt(file,"UseSkin",pInfo[playerid][UseSkin]);
  465. INI_WriteInt(file,"Rept",pInfo[playerid][Reputation]);
  466. INI_WriteInt(file,"FSkin",pInfo[playerid][FSkin]);
  467. INI_SetTag(file,"Dark_Id");
  468. INI_WriteInt(file,"DarkId",pInfo[playerid][DarkID]);
  469. INI_WriteInt(file,"DPoints",pInfo[playerid][DPoints]);
  470. INI_Close(file);
  471. format(string,sizeof(string),"[File]: You Have Changed Your Password To %s",params);
  472. SendClientMessage(playerid,White,string);
  473. }
  474. return 1;
  475. }
  476. /*Classifications made in commands so that its easier to add them in /acommands..*/
  477. /*------------------------------------------------------------------------------
  478. Adm Level 1 Commands ----------->
  479. -------------------------------------------------------------------------------*/
  480. CMD:god(playerid,params[])
  481. {
  482. if(pInfo[playerid][Admin] >= 2 || IsPlayerAdmin(playerid))
  483. {
  484. if(pInfo[playerid][GodM] == 0)
  485. {
  486. pInfo[playerid][GodM] = 1;
  487. SetPlayerHealth(playerid,99999999);
  488. SendClientMessage(playerid,silver,"[AMX_GOD]: You Are In God Mode Now!");
  489. GodCarM(playerid);
  490. }
  491. else
  492. {
  493. pInfo[playerid][GodM] = 0;
  494. SendClientMessage(playerid,silver,"[AMX_GOD]: You Are Not In God Mode Now!");
  495. SetPlayerHealth(playerid, 100);
  496. }
  497. return 1;
  498. }
  499. else return LevelMSG(playerid,1);
  500. }
  501. CMD:acmds(playerid,params[])
  502. {
  503. if(pInfo[playerid][Admin] > 0)
  504. {
  505. if(pInfo[playerid][Admin] == 1)
  506. {
  507. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 1)","{FFFFFF}Commands:\n /God , /resetrep","Ok","");
  508. }
  509. if(pInfo[playerid][Admin] == 2)
  510. {
  511. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 2)","{FFFFFF}Commands:\n /God , /Kick , /resetrep","Ok","");
  512. }
  513. if(pInfo[playerid][Admin] == 3)
  514. {
  515. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 3)","{FFFFFF}Commands:\n /God , /Kick, /Ban , /resetrep","Ok","");
  516. }
  517. if(pInfo[playerid][Admin] == 4)
  518. {
  519. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 4)","{FFFFFF}Commands:\n /God , /Kick , /Ban , /setname , /setmoney","Ok","");
  520. }
  521. if(pInfo[playerid][Admin] == 5)
  522. {
  523. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 5)","{FFFFFF}Commands:\n /God , /Kick , /Ban , /setname , /setmoney\n/givecash , /giveallmoney , /resetrep , /giveallcash , /giveweapon","Ok","");
  524. }
  525. if(pInfo[playerid][Admin] == 6)
  526. {
  527. ShowPlayerDialog(playerid,6001,DIALOG_STYLE_MSGBOX,"Admin Commands (Level : 6)","{FFFFFF}Commands:\n /God , /Kick , /Ban , /setname , /setmoney\n/givecash , /giveallmoney , /setlevel , /setvip , /resetrep\n/giveallcash , /giveweapon","Ok","");
  528. }
  529. return 1;
  530. }
  531. else return LevelMSG(playerid,NoAdmin);
  532. }
  533. CMD:resetrep(playerid,params[])
  534. {
  535. if(pInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
  536. {
  537. new player1 = strval(params);
  538. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: /resetrep [playerid]");
  539. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[Error]: Wrong Id ! Player is not connected");
  540. pInfo[player1][Reputation] = 0;
  541. new string[200];
  542. format(string,sizeof(string),"[AMX]: {FF0000}You Have Reseted %s players Rep Points!",Playername(player1));
  543. SendClientMessage(playerid,White,string);
  544. format(string,sizeof(string),"[AMX]: {FF0000}Admin %s Has Reseted Your Rep Points!",Playername(playerid));
  545. SendClientMessage(player1,White,string);
  546. return 1;
  547. }
  548. else return LevelMSG(playerid,1);
  549. }
  550. CMD:goto(playerid,params[])
  551. {
  552. if(pInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
  553. {
  554. new player1 = strval(params);
  555. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/Goto [playerid]");
  556. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]: Player Not Connected!");
  557. new Float:X,Float:Y,Float:Z;
  558. GetPlayerPos(player1,X,Y,Z);
  559. SetPlayerPos(playerid,X,Y,Z);
  560. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  561. if(IsPlayerInAnyVehicle(playerid))
  562. {
  563. new vehicleid = GetPlayerVehicleID(playerid);
  564. SetVehiclePos(vehicleid,X,Y,Z);
  565. }
  566. new string[256];
  567. format(string,sizeof(string),"[AMX]: {00FF00}You Have Been Teleported To Player %s",Playername(player1));
  568. SendClientMessage(playerid,White,string);
  569. return 1;
  570. }
  571. else return LevelMSG(playerid,1);
  572. }
  573. CMD:acar(playerid,params[])
  574. {
  575. if(pInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
  576. {
  577. if(!IsPlayerInAnyVehicle(playerid))
  578. {
  579. new Float:X,Float:Y,Float:Z,Float:Angle;
  580. GetPlayerPos(playerid,X,Y,Z);
  581. new vehicleid = GetPlayerVehicleID(playerid);
  582. GetPlayerFacingAngle(playerid,Angle);
  583. new car = CreateVehicle(411,X,Y,Z,Angle,0,0,12000000);
  584. PutPlayerInVehicle(playerid,car,0);
  585. new string[256];
  586. format(string,sizeof(string),"Admin Car Of\n%s(Level %d)",Playername(playerid),pInfo[playerid][Admin]);
  587. Admincar[playerid] = Create3DTextLabel(string,0x00F300FF,X,Y,Z,1500,GetPlayerVirtualWorld(playerid),1);
  588. Attach3DTextLabelToVehicle(Admincar[playerid],car,0.0,0.0,0.3);
  589. vehicleid = vInfo[vehicleid][AdminCar];
  590. return SendClientMessage(playerid,Red,"[AMX]:Admin Car Created!");
  591. }
  592. else return SendClientMessage(playerid,Red,"[ERROR]: You Are Already In A Vehicle!");
  593. }
  594. else return LevelMSG(playerid,1);
  595. }
  596.  
  597. /*------------------------------------------------------------------------------
  598. Adm Level 2 Commands ----------->
  599. -------------------------------------------------------------------------------*/
  600. CMD:kick(playerid,params[])
  601. {
  602. if(pInfo[playerid][Admin] >= 2 || IsPlayerAdmin(playerid))
  603. {
  604. new player1 = strval(params);
  605. new reason = strlen(params);
  606. if(sscanf(params,"uc",player1,reason))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF} /kick [playerid] [reason]");
  607. new string[210];
  608. /*Kicked Message To All Players*/
  609. format(string,sizeof(string),"***Admin %s Has Kicked Player %s (Id: %d). {CCCCCC}[Reason]: %s",Playername(playerid),Playername(player1),player1,params[1]);
  610. SendClientMessageToAll(Red,string);
  611. /*Kicked Message To Admin*/
  612. format(string,sizeof(string),"***You Have Kicked Player %s (Id:%d).{CCCCCC}[Reason]: %s",Playername(player1),player1,params[1]);
  613. SendClientMessage(playerid,Red,string);
  614. /*Kicked Message To Player*/
  615. format(string,sizeof(string),"***Admin %s Has Kicked You!.{CCCCCC}[Reason]: %s",Playername(playerid),params[1]);
  616. SendClientMessage(player1,Red,string);
  617. /*Kicked Message To Console*/
  618. printf("(AMX): Admin %s(Id - %d) Has Kicked Player %s(Id - %d) Reason :- %s",Playername(playerid),playerid,Playername(player1),player1,params[1]);
  619. return Kick(player1);
  620. }
  621. else return LevelMSG(playerid,2);
  622. }
  623. CMD:get(playerid,params[])
  624. {
  625. if(pInfo[playerid][Admin] >= 2 || IsPlayerAdmin(playerid))
  626. {
  627. new player1 = strval(params);
  628. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/Goto [playerid]");
  629. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]: Player Not Connected!");
  630. new Float:X,Float:Y,Float:Z;
  631. GetPlayerPos(playerid,X,Y,Z);
  632. SetPlayerPos(player1,X,Y,Z);
  633. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  634. if(IsPlayerInAnyVehicle(player1))
  635. {
  636. new vehicleid = GetPlayerVehicleID(player1);
  637. SetVehiclePos(vehicleid,X,Y,Z);
  638. }
  639. new string[256];
  640. format(string,sizeof(string),"[AMX]: {00FF00}Admin %s Has Teleported You To his position",Playername(playerid));
  641. SendClientMessage(playerid,White,string);
  642. return 1;
  643. }
  644. else return LevelMSG(playerid,2);
  645. }
  646. /*------------------------------------------------------------------------------
  647. Adm Level 3 Commands ----------->
  648. -------------------------------------------------------------------------------*/
  649. CMD:ban(playerid,params[])
  650. {
  651. if(pInfo[playerid][Admin] >= 3 || IsPlayerAdmin(playerid))
  652. {
  653. new player1 = strval(params);
  654. new reason = strlen(params);
  655. if(sscanf(params,"uc",player1,reason))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF} /ban [playerid] [reason]");
  656. new string[210];
  657. /*Banned Message To All Players*/
  658. format(string,sizeof(string),"***Admin %s Has Banned Player %s (Id: %d). {CCCCCC}[Reason]: %s",Playername(playerid),Playername(player1),player1,params[1]);
  659. SendClientMessageToAll(Red,string);
  660. /*Banned Message To Admin*/
  661. format(string,sizeof(string),"***You Have Banned Player %s (Id:%d).{CCCCCC}[Reason]: %s",Playername(player1),player1,params[1]);
  662. SendClientMessage(playerid,Red,string);
  663. /*Banned Message To Player*/
  664. format(string,sizeof(string),"***Admin %s Has Banned You!.{CCCCCC}[Reason]: %s",Playername(playerid),params[1]);
  665. SendClientMessage(player1,Red,string);
  666. /*Banned Message To Console*/
  667. printf("(AMX): Admin %s(Id - %d) Has Banned Player %s(Id - %d) Reason :- %s",Playername(playerid),playerid,Playername(player1),player1,params[1]);
  668. if(fexist(Path(player1)))
  669. {
  670. pInfo[player1][Banned] = 1;
  671. Ban(player1);
  672. }
  673. else
  674. {
  675. pInfo[playerid][Banned] = 1;
  676. Ban(player1);
  677. }
  678. return 1;
  679. }
  680. else return LevelMSG(playerid,3);
  681. }
  682. CMD:admweaps(playerid,params[])
  683. {
  684. if(pInfo[playerid][Admin] >= 3)
  685. {
  686. GivePlayerWeapon(playerid,24,1000000);
  687. GivePlayerWeapon(playerid,26,1000000);
  688. GivePlayerWeapon(playerid,31,1000000);
  689. GivePlayerWeapon(playerid,38,1000000);
  690. GivePlayerWeapon(playerid,42,1000000);
  691. SendClientMessage(playerid,Red,"[AMX]:Weapons Given By Server!");
  692. return 1;
  693. }
  694. else return LevelMSG(playerid,3);
  695. }
  696. CMD:freeze(playerid,params[])
  697. {
  698. if(pInfo[playerid][Admin] >= 3 || IsPlayerAdmin(playerid))
  699. {
  700. new player1 = strval(params);
  701. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/freeze [playerid]");
  702. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]: {FFFFFF} This Player Is not connected!");
  703. if(pInfo[playerid][Freeze] == 0)
  704. {
  705. new string[256];
  706. format(string,sizeof(string),"[D_Freeze]: {FFFFFF}You Have Freezed %s!",Playername(player1));
  707. SendClientMessage(playerid,Red,string);
  708. format(string,sizeof(string),"{*|* Admin %s Has Frozen You *|*}",Playername(playerid));
  709. SendClientMessage(player1,Red,string);
  710. TogglePlayerControllable(player1,0);
  711. pInfo[player1][Freeze] = 1;
  712. printf("[Console_Log]: Admin %s Has Frozen Player %s",Playername(playerid),Playername(player1));
  713. return 1;
  714. }
  715. else return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF} Player Already Frozen!");
  716. }
  717. else return LevelMSG(playerid,3);
  718. }
  719. CMD:unfreeze(playerid,params[])
  720. {
  721. if(pInfo[playerid][Admin] >= 3 || IsPlayerAdmin(playerid))
  722. {
  723. new player1 = strval(params);
  724. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/unfreeze [playerid]");
  725. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]: {FFFFFF} This Player Is not connected!");
  726. if(pInfo[playerid][Freeze] == 1)
  727. {
  728. new string[256];
  729. format(string,sizeof(string),"[D_Freeze]: {FFFFFF}You Have Unfreezed %s!",Playername(player1));
  730. SendClientMessage(playerid,Red,string);
  731. format(string,sizeof(string),"{*|* Admin %s Has Unrozen You *|*}",Playername(playerid));
  732. SendClientMessage(player1,Red,string);
  733. TogglePlayerControllable(player1,1);
  734. pInfo[player1][Freeze] = 0;
  735. printf("[Console_Log]: Admin %s Has Unfrozen Player %s",Playername(playerid),Playername(player1));
  736. return 1;
  737. }
  738. else return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF} Player Already UnFrozen!");
  739. }
  740. else return LevelMSG(playerid,3);
  741. }
  742. /*------------------------------------------------------------------------------
  743. Adm Level 4 Commands ----------->
  744. ------------------------------------------------------------------------------*/
  745. CMD:setmoney(playerid,params[])
  746. {
  747. if(pInfo[playerid][Admin] >= 4 || IsPlayerAdmin(playerid))
  748. {
  749. new player1 = strval(params);
  750. new money = strval(params);
  751. if(sscanf(params,"ui",player1,money))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF}/setmoney [playerid] [Cash]");
  752. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}Player Not Connected!");
  753. ResetPlayerMoney(player1);
  754. GivePlayerMoney(player1,money);
  755. new string[200];
  756. format(string,sizeof(string),"[AMX]: {F30000}Admin %s Has Set Your Cash To %d",Playername(playerid),money);
  757. SendClientMessage(player1,White,string);
  758. format(string,sizeof(string),"[AMX]: {F30000}You Have Set %s's Cash To %d",Playername(player1),money);
  759. SendClientMessage(playerid,White,string);
  760. return 1;
  761. }
  762. else return LevelMSG(playerid,4);
  763. }
  764. CMD:setname(playerid,params[])
  765. {
  766. if(pInfo[playerid][Admin] >= 4 || IsPlayerAdmin(playerid))
  767. {
  768. new player1 = strval(params);
  769. new name[24];
  770. if(sscanf(params,"us",player1,name))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/setname [playerid] [name]");
  771. new string[200];
  772. /*Formating the message for the admin who changed name of the player!*/
  773. format(string,sizeof(string),"[AMX]: {F30000}You Have Set The Name Of Player %s(Id: %d) To %s(Id: %d).",Playername(player1),player1,name,player1);
  774. SendClientMessage(playerid,White,string);
  775. SendClientMessage(playerid,White,"[AMX]: {F30000}The player will automatically register..");
  776. /*Formating the message for the player whose name has been set*/
  777. format(string,sizeof(string),"[AMX]: {F30000}Admin %s(Id: %d) Has Set Your Name To %s(Id: %d).",Playername(playerid),playerid,name,player1);
  778. SendClientMessage(player1,White,string);
  779. SendClientMessage(player1,White,"[AMX]: {F30000}You need to register!");
  780. SetPlayerName(player1,name);
  781. new str[256];
  782. if(fexist(Path(player1)))
  783. {
  784. INI_ParseFile(Path(player1),"LoadAccount_user", .bExtra = true, .extra = player1);
  785. format(str,sizeof(str),"{FFFFFF}Welcome {CCCCCC}%s{FFFFFF}!\nThis Account is registered on this server!\nPlease Enter your password to access your account!",Playername(player1));
  786. ShowPlayerDialog(player1,D_Login,DIALOG_STYLE_INPUT,"Account Login!",str,"Login","Quit");
  787. }
  788. else
  789. {
  790. format(str,sizeof(str),"{FFFFFF}Welcome {CCCCCC}%s{FFFFFF}!\nThis Account is not registered on this server!\nPlease Enter your desired password to create your account on this server!",Playername(player1));
  791. ShowPlayerDialog(player1,D_Register,DIALOG_STYLE_INPUT,"Account Register",str,"Register","Quit");
  792. return 1;
  793. }
  794. return 1;
  795. }
  796. else return LevelMSG(playerid,4);
  797. }
  798. CMD:mute(playerid,params[])
  799. {
  800. if(pInfo[playerid][Admin] >= 4 || IsPlayerAdmin(playerid))
  801. {
  802. new player1 = strval(params);
  803. new reason = params[1];
  804. if(sscanf(params,"uc",player1,reason))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/mute [playerid] [reason]");
  805. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid,Red,"[ERROR]: Player Is Not Connected!");
  806. if(pInfo[player1][Mute] == 1) return SendClientMessage(playerid,Red,"[ERROR]: Player Already Muted");
  807. new string[256];
  808. format(string,sizeof(string),"[AMX_Mute]: {FF0000}Admin %s Has unmuted You.[Reason]: %s",Playername(playerid),params[1]);
  809. SendClientMessage(player1,White,string);
  810. format(string,sizeof(string),"[AMX_Mute]: {FF0000} You Have Muted Player %s [Reason]: %s",Playername(player1),params[1]);
  811. SendClientMessage(playerid,White,string);
  812. return pInfo[player1][Mute] = 1;
  813. }
  814. else return LevelMSG(playerid,4);
  815. }
  816. CMD:unmute(playerid,params[])
  817. {
  818. if(pInfo[playerid][Admin] >= 4 || IsPlayerAdmin(playerid))
  819. {
  820. new player1 = strval(params);
  821. if(sscanf(params,"u",player1))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/unmute [playerid]");
  822. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid,Red,"[ERROR]: Player Is Not Connected!");
  823. if(pInfo[player1][Mute] == 0) return SendClientMessage(playerid,Red,"[ERROR]: Player Already unmuted");
  824. new string[256];
  825. format(string,sizeof(string),"[AMX_Mute]: {FF0000}Admin %s Has unmuted You.",Playername(playerid));
  826. SendClientMessage(player1,White,string);
  827. format(string,sizeof(string),"[AMX_Mute]: {FF0000} You Have Unmuted Player %s.",Playername(player1));
  828. SendClientMessage(playerid,White,string);
  829. return pInfo[player1][Mute] = 0;
  830. }
  831. else return LevelMSG(playerid,4);
  832. }
  833. /*------------------------------------------------------------------------------
  834. Adm Level 5 Commands ----------->
  835. -------------------------------------------------------------------------------*/
  836. CMD:giveallmoney(playerid,params[])
  837. {
  838. if(pInfo[playerid][Admin] >= 5 || IsPlayerAdmin(playerid))
  839. {
  840. new cash = strval(params);
  841. if(sscanf(params,"i",cash))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF} /giveallmoney [Amounnt]");/*&& SendClientMessage(playerid,0xCCCCCCFF,"Will Give A Specific Amount of money to all players on server!");*/
  842. for(new i = 0; i < MAX_PLAYERS; i++)
  843. {
  844. if(IsPlayerConnected(i))
  845. {
  846. GivePlayerMoney(i,cash);
  847. }
  848. new string[256];
  849. format(string,sizeof(string),"[AMX_Cash]: {00ff00}Admin %s Has Given All Players $%d Cash",Playername(playerid),cash);
  850. SendClientMessage(i,White,string);
  851. }
  852. return 1;
  853. }
  854. else return LevelMSG(playerid,5);
  855. }
  856. CMD:giveweapon(playerid,params[])
  857. {
  858. if(pInfo[playerid][Admin] >= 5 || IsPlayerAdmin(playerid))
  859. {
  860. new player1 = strval(params);
  861. new Weapon = strval(params);
  862. new Ammo = strval(params);
  863. new Weaponname[50];
  864. if(sscanf(params,"uii",player1,Weapon,Ammo))return SendClientMessage(playerid,Red,"[Useage]: {FFFFFF}/giveweapon [playerid] [weaponid] [ammo]");
  865. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]: Player Not Connected To Server!");
  866. if(Ammo < 1)return SendClientMessage(playerid,Red,"[ERROR]: Ammo Cannot Be 0 or Negative!");
  867. if(Weapon < 0) return SendClientMessage(playerid,Red,"[ERROR]:Weapon Ids Exist from 0 - 42");
  868. if(Weapon > 42) return SendClientMessage(playerid,Red,"[ERROR]: Weapon Ids Exist from 0 - 42");
  869. GetWeaponName(Weapon,Weaponname,sizeof(Weaponname));
  870. new string[256];
  871. format(string,sizeof(string),"[AMX_Weapon]: {FFFFFF}You Have Give Player %s A Weapon ID : %d (Name : %s) | Ammo : %d",Playername(player1),Weapon,Weaponname,Ammo);
  872. SendClientMessage(playerid,Red,string);
  873. format(string,sizeof(string),"[AMX_Weapon]: {FFFFFF}You Have Been Give A Weapon ID : %d (Name : %s) | Ammo :%d By Admin %s",Weapon,Weaponname,Ammo,Playername(playerid));
  874. SendClientMessage(player1,Red,string);
  875. return GivePlayerWeapon(player1,Weapon,Ammo);
  876. }
  877. else return LevelMSG(playerid,5);
  878. }
  879. /*------------------------------------------------------------------------------
  880. Adm Level 6 Commands ----------->
  881. -------------------------------------------------------------------------------*/
  882. CMD:setlevel(playerid,params[])
  883. {
  884. if(pInfo[playerid][Admin] > 5 || IsPlayerAdmin(playerid))
  885. {
  886. new player1 = strval(params);
  887. new level = strval(params);
  888. if(sscanf(params,"ui",player1,level))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF}/setlevel [playerid] [level]");
  889. if(fexist(Path(player1)))
  890. {
  891. if(level > MAX_ALevels)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Cannot Exceed More than "#MAX_ALevels"");
  892. if(level < 0)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Cannot Set A Level To Negation!");
  893. if(pInfo[playerid][Admin] == level)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}Player Already Has That Level!");
  894. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}Player Not Connected!");
  895. switch(level)
  896. {
  897. case 0: AdmRank = "Player";
  898. case 1: AdmRank = "Co - Operator";
  899. case 2: AdmRank = "Operator";
  900. case 3: AdmRank = "Co-Moderator";
  901. case 4: AdmRank = "Moderator";
  902. case 5: AdmRank = "Co - Owner";
  903. case 6: AdmRank = "Owner";
  904. }
  905. pInfo[player1][Admin] = level;
  906. new INI:file = INI_Open(Path(playerid)); // we will open a new file for them to save their account inside of Scriptfiles/Users folder
  907. INI_SetTag(file,"Data");//We will set a tag inside of user's account called "Player's Data"
  908. INI_WriteString(file,"Password",pInfo[player1][Pass]);//This will write a hashed password into user's account
  909. INI_WriteInt(file,"Admin",pInfo[player1][Admin]);
  910. INI_WriteInt(file,"Vip",pInfo[player1][Vip]);
  911. INI_WriteInt(file,"Money",pInfo[player1][Money]);
  912. INI_WriteInt(file,"Scores",pInfo[player1][Scores]);
  913. INI_WriteInt(file,"Kills",pInfo[player1][Kills]);
  914. INI_WriteInt(file,"Deaths",pInfo[player1][Deaths]);
  915. INI_WriteInt(file,"Banned",pInfo[player1][Banned]);
  916. INI_WriteInt(file,"UseSkin",pInfo[player1][UseSkin]);
  917. INI_WriteInt(file,"Rept",pInfo[player1][Reputation]);
  918. INI_WriteInt(file,"FSkin",pInfo[player1][FSkin]);
  919. INI_SetTag(file,"Dark_Id");
  920. INI_WriteInt(file,"DarkId",pInfo[player1][DarkID]);
  921. INI_Close(file);
  922. new string[256];
  923. format(string,sizeof(string),"[AMX]: {F30000}You Have Set {FF0000}%s's {F30000}Level To {FFFFFF}%d {00FF00}(Rank : %s).",Playername(player1),level,AdmRank);
  924. SendClientMessage(playerid,White,string);
  925. format(string,sizeof(string),"[AMX]: {F30000}Admin {FF0000}%s {F30000}Has Set Your{F30000}Level To {FFFFFF}%d {00FF00}(Rank : %s).",Playername(playerid),level,AdmRank);
  926. SendClientMessage(player1,White,string);
  927. PlayerPlaySound(player1,1057,0,0,0);
  928. }
  929. else
  930. {
  931. return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}This Player Has No Account On The Database!.Tell Him To /Register");
  932. }
  933. return 1;
  934. }
  935. else return LevelMSG(playerid,6);
  936. }
  937. CMD:setvip(playerid,params[])
  938. {
  939. if(pInfo[playerid][Admin] > 5 || IsPlayerAdmin(playerid))
  940. {
  941. new player1 = strval(params);
  942. new level = strval(params);
  943. if(sscanf(params,"ui",player1,level))return SendClientMessage(playerid,Red,"[Useage]:{FFFFFF}/setvip [playerid] [level]");
  944. if(fexist(Path(player1)))
  945. {
  946. if(level > MAX_VLevels)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Cannot Exceed More than "#MAX_VLevels"");
  947. if(level < 0)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Cannot Set A Level To Negation!");
  948. if(pInfo[playerid][Vip] == level)return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}Player Already Has That Level!");
  949. if(!IsPlayerConnected(player1))return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}Player Not Connected!");
  950. switch(level)
  951. {
  952. case 0: VipRank = "Player";
  953. case 1: VipRank = "Bronze";
  954. case 2: VipRank = "Silver";
  955. case 3: VipRank = "Gold";
  956. case 4: VipRank = "Platinum";
  957. }
  958. pInfo[playerid][Vip] = level;
  959. new string[256];
  960. format(string,sizeof(string),"[AMX]: {F30000}You Have Set {FF0000}%s's {F30000}Vip Level To {FFFFFF}%d {00FF00}(Rank : %s).",Playername(player1),level,VipRank);
  961. SendClientMessage(playerid,White,string);
  962. format(string,sizeof(string),"[AMX]: {F30000}Admin {FF0000}%s {F30000}Has Set Your{F30000}Vip Level To {FFFFFF}%d {00FF00}(Rank : %s).",Playername(playerid),level,VipRank);
  963. SendClientMessage(player1,White,string);
  964. PlayerPlaySound(player1,1057,0,0,0);
  965. }
  966. else
  967. {
  968. return SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}This Player Has No Account On The Database!.Tell Him To /Register");
  969. }
  970. return 1;
  971. }
  972. else return LevelMSG(playerid,6);
  973. }
  974. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  975. {
  976. return 1;
  977. }
  978.  
  979. public OnPlayerExitVehicle(playerid, vehicleid)
  980. {
  981. return 1;
  982. }
  983.  
  984. public OnPlayerStateChange(playerid, newstate, oldstate)
  985. {
  986. if(newstate == PLAYER_STATE_DRIVER)
  987. {
  988. new vehicleid = GetPlayerVehicleID(playerid);
  989. if(vehicleid == vInfo[vehicleid][AdminCar] && pInfo[playerid][Admin] < 1)
  990. {
  991. RemovePlayerFromVehicle(playerid);
  992. SendClientMessage(playerid,Red,"[ERROR]: This is a admin car!");
  993. }
  994. return 1;
  995. }
  996. return 1;
  997. }
  998.  
  999. public OnPlayerEnterRaceCheckpoint(playerid)
  1000. {
  1001. return 1;
  1002. }
  1003.  
  1004. public OnPlayerLeaveRaceCheckpoint(playerid)
  1005. {
  1006. return 1;
  1007. }
  1008.  
  1009. public OnRconCommand(cmd[])
  1010. {
  1011. return 1;
  1012. }
  1013.  
  1014. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1015. {
  1016. return 1;
  1017. }
  1018.  
  1019. public OnRconLoginAttempt(ip[], password[], success)
  1020. {
  1021. return 1;
  1022. }
  1023.  
  1024. public OnPlayerUpdate(playerid)
  1025. {
  1026. if(SData[HPK] == 1)
  1027. {
  1028. if(GetPlayerPing(playerid) > MAX_PING)
  1029. {
  1030. new string[230];
  1031. format(string,sizeof(string),"[HPK]: %s Player Has Kicked By The Server![Reason] Ping More than "#MAX_PING"|Players Ping %s",Playername(playerid),GetPlayerPing(playerid));
  1032. SendClientMessageToAll(Green,string);
  1033. format(string,sizeof(string),"[HPK]: You Have been kicked by the server![Reason] Ping More than "#MAX_PING"|Players Ping %s",GetPlayerPing(playerid));
  1034. SendClientMessage(playerid,Green,string);
  1035. Kick(playerid);
  1036. }
  1037. return 1;
  1038. }
  1039. return 1;
  1040. }
  1041.  
  1042. public OnPlayerStreamIn(playerid, forplayerid)
  1043. {
  1044. return 1;
  1045. }
  1046.  
  1047. public OnPlayerStreamOut(playerid, forplayerid)
  1048. {
  1049. return 1;
  1050. }
  1051.  
  1052. public OnVehicleStreamIn(vehicleid, forplayerid)
  1053. {
  1054. return 1;
  1055. }
  1056.  
  1057. public OnVehicleStreamOut(vehicleid, forplayerid)
  1058. {
  1059. return 1;
  1060. }
  1061.  
  1062. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1063. {
  1064. if(dialogid == D_Register)
  1065. {
  1066. if(!response) return Kick(playerid);
  1067. if(response)
  1068. {
  1069. if(!strlen(inputtext))
  1070. {
  1071. new str[256];
  1072. format(str,sizeof(str),"{FFFFFF}Welcome {CCCCCC}%s{FFFFFF}!\nThis Account is not registered on this server!\nPlease Enter your desired password to create your account on this server!",Playername(playerid));
  1073. ShowPlayerDialog(playerid,D_Register,DIALOG_STYLE_INPUT,"Account Register",str,"Register","Quit");
  1074. }
  1075. else
  1076. {
  1077. new DarkId = random(100000000);
  1078. new hashpass[129]; //Now we will create a new variable to hash his/her password
  1079. WP_Hash(hashpass,sizeof(hashpass),inputtext);//We will use whirlpool to hash their inputted text
  1080. new INI:file = INI_Open(Path(playerid)); // we will open a new file for them to save their account inside of Scriptfiles/Users folder
  1081. INI_SetTag(file,"Data");//We will set a tag inside of user's account called "Player's Data"
  1082. INI_WriteString(file,"Password",hashpass);//This will write a hashed password into user's account
  1083. INI_WriteInt(file,"Admin",0);
  1084. INI_WriteInt(file,"Vip",0);
  1085. INI_WriteInt(file,"Money",0);
  1086. INI_WriteInt(file,"Scores",0);
  1087. INI_WriteInt(file,"Kills",0);
  1088. INI_WriteInt(file,"Deaths",0);
  1089. INI_WriteInt(file,"Banned",0);
  1090. INI_WriteInt(file,"UseSkin",0);
  1091. INI_WriteInt(file,"Rept",0);
  1092. INI_WriteInt(file,"FSkin",0);
  1093. INI_SetTag(file,"Dark_Id");
  1094. INI_WriteInt(file,"DarkId",DarkId);
  1095. INI_WriteInt(file,"DPoints",1000);
  1096. pInfo[playerid][DarkID] = DarkId;
  1097. pInfo[playerid][DPoints] = 1000;
  1098. INI_Close(file);
  1099. SendClientMessage(playerid,White,"[AMX]:{00FF00}You have been successfully registered");//Tell to them that they have successfully registered a new account
  1100. }
  1101. }
  1102. }
  1103. if(dialogid == D_Login)
  1104. {
  1105. if(!response) return Kick(playerid);
  1106. if(response)
  1107. {
  1108. new hashpass[129];
  1109. WP_Hash(hashpass,sizeof(hashpass),inputtext);
  1110. if(!strcmp(hashpass,pInfo[playerid][Pass]))
  1111. {
  1112. new string[256];
  1113. INI_ParseFile(Path(playerid),"LoadAccount_user",.bExtra = true, .extra = playerid);
  1114. SetPlayerScore(playerid,pInfo[playerid][Scores]);
  1115. GivePlayerMoney(playerid,pInfo[playerid][Money]);
  1116. SetPlayerSkin(playerid,pInfo[playerid][FSkin]);
  1117. pInfo[playerid][Logged] = 1;
  1118. if(pInfo[playerid][Admin] > 0)
  1119. {
  1120. switch(pInfo[playerid][Admin])
  1121. {
  1122. case 1: AdmRank = "Co - Operator";
  1123. case 2: AdmRank = "Operator";
  1124. case 3: AdmRank = "Co-Moderator";
  1125. case 4: AdmRank = "Moderator";
  1126. case 5: AdmRank = "Co - Owner";
  1127. case 6: AdmRank = "Owner";
  1128. }
  1129. format(string,sizeof(string),"[AMX]: {00FF00}You have been Automatically Logged in As A {FF0000}Admin! {00FF00}[Admin Level]:%d [Rank :%s]",pInfo[playerid][Admin],AdmRank);
  1130. SendClientMessage(playerid,White,string);
  1131.  
  1132. }
  1133. else
  1134. {
  1135. format(string,sizeof(string),"[AMX]: {00FF00}You have been Automatically Logged In!");
  1136. SendClientMessage(playerid,White,string);
  1137. }
  1138. return 1;
  1139. }
  1140. else
  1141. {
  1142. ShowPlayerDialog(playerid,D_Login,DIALOG_STYLE_INPUT,"Login","{FF0000}Incorrect Password!\n{FFFFFF}Please Re-enter the password as You have entered a {FF0000}wrong {FFFFFF}password","Login","Quit");//We will tell to them that they've entered an incorrect password
  1143. return 1;
  1144. }
  1145. }
  1146. }
  1147. return 1;
  1148. }
  1149.  
  1150. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1151. {
  1152. return 1;
  1153. }
  1154.  
  1155.  
  1156. public LoadAccount_user(playerid, name[], value[])
  1157. {
  1158. INI_String("Password", pInfo[playerid][Pass],129); /*we will use INI_String to load user's password.
  1159. ("Password",.. will load user's password inside of user's path. 'pInfo[playerid][Pass]',...We have defined our user's variable above called, pInfo. Now it's time to use it here to load user's password. '129',... 129 is a length of a hashed user's password. Whirlpool will hash 128 characters + NULL*/
  1160. INI_Int("Admin",pInfo[playerid][Admin]);/*We will use INI_Int to load user's admin level. INI_Int stands for INI_Integer. This load an admin level. */
  1161. INI_Int("Vip",pInfo[playerid][Vip]);
  1162. INI_Int("Banned",pInfo[playerid][Banned]);
  1163. INI_Int("Money",pInfo[playerid][Money]);
  1164. INI_Int("Scores",pInfo[playerid][Scores]);
  1165. INI_Int("Kills",pInfo[playerid][Kills]);
  1166. INI_Int("Deaths",pInfo[playerid][Deaths]);
  1167. INI_Int("FSkin",pInfo[playerid][FSkin]);
  1168. INI_Int("UseSkin",pInfo[playerid][UseSkin]);
  1169. INI_Int("Rept",pInfo[playerid][Reputation]);
  1170. INI_Int("DarkId",pInfo[playerid][DarkID]);
  1171. INI_Int("DPoints",pInfo[playerid][DPoints]);
  1172. return 1;
  1173. }
  1174.  
  1175. public ConfigLoad(name[], value[])
  1176. {
  1177. INI_Int("HPK", SData[HPK]);
  1178. return 1;
  1179. }
  1180. public MessageToAdmins(color,const string[])
  1181. {
  1182. for(new i = 0; i < MAX_PLAYERS; i++)
  1183. {
  1184. if(IsPlayerConnected(i) == 1)
  1185. if(pInfo[i][Admin] >= 1)
  1186. SendClientMessage(i, color, string);
  1187. }
  1188. return 1;
  1189. }
  1190. public MessageToConsoleAdmins(color,const string[])
  1191. {
  1192. for(new i = 0; i < MAX_PLAYERS; i++)
  1193. {
  1194. if(IsPlayerConnected(i) == 1)
  1195. if(IsPlayerAdmin(i) == 1)
  1196. SendClientMessage(i, color, string);
  1197. }
  1198. print(string);
  1199. return 1;
  1200. }
  1201. public LevelMSG(playerid,Level)
  1202. {
  1203. if(Level == 6)
  1204. {
  1205. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 6 To Use This Command!");
  1206. return 1;
  1207. }
  1208. if(Level == 5)
  1209. {
  1210. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 5 To Use This Command!");
  1211. }
  1212. if(Level == 4)
  1213. {
  1214. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 4 To Use This Command!");
  1215. }
  1216. if(Level == 3)
  1217. {
  1218. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 3 To Use This Command!");
  1219. }
  1220. if(Level == 2)
  1221. {
  1222. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 2 To Use This Command!");
  1223. }
  1224. if(Level == 1)
  1225. {
  1226. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not Admin Level 1 To Use This Command!");
  1227. }
  1228. if(Level == NoAdmin)
  1229. {
  1230. SendClientMessage(playerid,Red,"[ERROR]:{FFFFFF}You Are Not an Admin To Use This Command!");
  1231. }
  1232. return 1;
  1233. }
  1234. stock Playername(playerid)
  1235. {
  1236. new pname[70];
  1237. GetPlayerName(playerid,pname,sizeof(pname));
  1238. return pname;
  1239. }
  1240. stock CheckConfigs()
  1241. {
  1242. if(fexist(ConfigPath))
  1243. {
  1244. INI_ParseFile(ConfigPath, "ConfigLoad", .bExtra = false);
  1245. printf("Configurations Loaded From The File %s", ConfigPath);
  1246. print("ConfigLoaded!\n");
  1247. }
  1248. else
  1249. {
  1250. new INI:file = INI_Open(ConfigPath);
  1251. INI_SetTag(file, "Cofiguration!");
  1252. INI_WriteInt(file,"HPK",1);
  1253. SData[HPK] = 1;
  1254. INI_Close(file);
  1255. printf("Configuration files created in %s",ConfigPath);
  1256. print("ConfigLoaded\n!");
  1257. }
  1258. return 1;
  1259. }
  1260.  
  1261. public GodCarM(playerid)
  1262. {
  1263. for(new i = 0; i < MAX_PLAYERS; i++)
  1264. {
  1265. if(pInfo[i][GodM] == 1)
  1266. {
  1267. if(IsPlayerConnected(i))
  1268. {
  1269. new Float:health, cid;
  1270. if (IsPlayerInAnyVehicle(i))
  1271. {
  1272. cid = GetPlayerVehicleID(i);
  1273. GetVehicleHealth(cid, health);
  1274. if (health < 1000)
  1275. {
  1276. RepairVehicle(GetPlayerVehicleID(i));
  1277. }
  1278. }
  1279. }
  1280. }
  1281. }
  1282. return 1;
  1283. }
  1284. forward SendClientMessageToAdmins(Colour,const string[]);
  1285. public SendClientMessageToAdmins(Colour,const string[])
  1286. {
  1287. for(new i = 0; i < MAX_PLAYERS; i++)
  1288. if(pInfo[i][Admin] >= 1 || IsPlayerAdmin(i))
  1289. {
  1290. if(IsPlayerConnected(i))
  1291. {
  1292. SendClientMessage(i,Colour,string);
  1293. return 1;
  1294. }
  1295. return 1;
  1296. }
  1297. return 1;
  1298. }
  1299. /* -=Dar[K]Lord=-
  1300. All Rights Reserved!
  1301. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement