Advertisement
GoldenScripter

GoldenDM

Sep 7th, 2017
661
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.47 KB | None | 0 0
  1. /* GGGGGGGGGGGGGGGGGGG MMMMM MMMMM
  2. GGGGGGGGGGGGGGGGGGGG MM M M MM
  3. GG MM M M MM
  4. GG MM M M MM
  5. GG MM M M MM
  6. GG GGGGGGGGGGGGGG MM M MM
  7. GG GGGGGGGGGGGGGG MM MM
  8. GG GG MM MM
  9. GG GG MM MM
  10. GGGGGGGGGGGGGGGGGGGG MM MM
  11. GGGGGGGGGGGGGGGGGGG MM MM
  12. */
  13. /* Credits Goes To
  14. GameMode : Golden DM
  15. Created By
  16. GoldenMan
  17. Commands : Admin System [Only] & Commands
  18. Please dont remove credits */
  19.  
  20. //================= INCLUDES =================//
  21.  
  22. #include <a_samp>
  23. #include <streamer>
  24. #include <sscanf2>
  25. #include <YSI\y_ini>
  26. #include <dini>
  27. #include <zcmd>
  28.  
  29. //================= SERVER ENTITIES =================//
  30.  
  31. #define GM_TEXT "Golden DM"
  32. #define SERVER_NAME "Golden DM Simple Created By GoldenMan"
  33. #define SERVER_RCON "golden"
  34. #define SERVER_URL "www.goldenman.com"
  35. #define SERVER_MAPNAME "Special DM"
  36. #define SERVER_LANGUAGE "English"
  37.  
  38. //================= DIALOGS =================//
  39.  
  40. #define DIALOG_REGISTER 1
  41. #define DIALOG_LOGIN 2
  42. #define DIALOG_SUCCESS_1 3
  43. #define DIALOG_SUCCESS_2 4
  44. #define DIALOG_VIP_MENU 5
  45. #define NEON 6
  46. #define WEAPON_SHOP 7
  47. //================= Defines =================//
  48.  
  49. #define MaxMoney 999999999
  50. #define SCM SendClientMessage
  51. #define SCMTA SendClientMessageToAll
  52. #define MAX_VEHICLE_MODELS 600
  53.  
  54. //================= New Defines =================//
  55.  
  56. new gTimeStats[2];
  57. new Text:Date;
  58. new Text:Line1;
  59. new Text:Line2;
  60. new Text:Time;
  61.  
  62. //================= PATHS =================//
  63.  
  64. #define PATH "/Accounts/userfiles/%s.ini"
  65.  
  66. //================= COLOURS =================//
  67.  
  68. #define COLOR_DARKRED 0xAA3333FF
  69. #define RED 0xFF0000C8
  70. #define COLOR_GREY 0xAFAFAFFF
  71. #define COLOR_ASAY 0xFF0000FF
  72. #define COLOR_OSAY 0x007700FF
  73. #define COLOR_HSAY 0x1684CAFF
  74. #define COLOR_MSAY 0x1684CAFF
  75. #define COLOR_WHITE 0xFFFFFFFF
  76. #define COLOR_YELLOW 0xFFFF00FF
  77. #define COLOR_RED 0xFF0000FF
  78. #define COLOR_LRED 0xFF4747FF
  79. #define COLOR_GREEN 0x00FF00FF
  80. #define COLOR_BLUE 0x0000FFFF
  81. #define COLOR_LBLUE 0x99FFFFFF
  82. #define COLOR_LIGHTBLUE 0x99FFFFFF
  83. #define COLOR_ORANGE 0xFF9900FF
  84. #define COLOR_PURPLE 0xCC00DDFF
  85. #define COLOR_PEACH 0xFFCC66FF
  86. #define COLOR_SILVER 0xDDDDDDFF
  87. #define COLOR_WANTEDBLUE 0x0055CCFF
  88. #define COLOR_DARK_VIOLET 0x9400D3FF
  89. #define COLOR_VIP1 0x9400D3FF
  90. #define COLOR_HELP 0x00E5EEFF
  91. #define COLOR_ADMIN 0x0066FFFF
  92. #define COLOR_ADMIN2 0x008FD6FF
  93. #define COLOR_PLAYER 0xFFFF33FF
  94. #define COLOR_ULTRAADMIN 0x993300FF
  95. #define COLOR_EVENT 0x00CC66FF
  96. #define COLOR_VIP2 0xFF33CCFF
  97. #define COLOR_VIPCHAT 0xCC66CCFF
  98. #define COL_WHITE "{FFFFFF}"
  99. #define COL_RED "{F81414}"
  100. #define COL_GREEN "{00FF22}"
  101. #define COL_LIGHTBLUE "{00CED1}"
  102.  
  103. //================= ADMINS COLOUR =================//
  104.  
  105. #define COLOR_ADMIN_1 0x009933FF
  106. #define COLOR_ADMIN_2 0xFFAD5CFF
  107. #define COLOR_ADMIN_3 0xFF0000FF
  108. #define LEVEL_1_COLOR "{FF0000}"
  109. #define LEVEL_2_COLOR "{00FFFF}"
  110. #define LEVEL_3_COLOR "{FFAD5C}"
  111. #define LEVEL_4_COLOR "{FF0000}"
  112. #define LEVEL_5_COLOR "{FF0000}"
  113. #define LEVEL_6_COLOR "{FF0000}"
  114. #define LEVEL_7_COLOR "{008800}"
  115.  
  116. //================= MAIN =================//
  117.  
  118. main()
  119. {
  120. print("\n=====================================");
  121. print("===============Created By=============");
  122. print("================GoldenMan=============");
  123. print("======================================\n");
  124.  
  125. print("\n=============================================================");
  126. print("GGGGGGGGGGGGGGGGGGG MMMMM MMMMM ");
  127. print("GGGGGGGGGGGGGGGGGGGG MM M M MM ");
  128. print("GG MM M M MM ");
  129. print("GG MM M M MM ");
  130. print("GG MM M M MM ");
  131. print("GG GGGGGGGGGGGGGG MM M MM ");
  132. print("GG GGGGGGGGGGGGGG MM MM ");
  133. print("GG GG MM MM ");
  134. print("GG GG MM MM ");
  135. print("GGGGGGGGGGGGGGGGGGGG MM MM ");
  136. print(" GGGGGGGGGGGGGGGGGGG MM MM ");
  137. print("=============================================================\n");
  138.  
  139. print("\n=====================================");
  140. print("Server Loaded Successfully");
  141. print("======================================\n");
  142. }
  143. enum pInfo
  144. {
  145. pPass,
  146. pCash,
  147. pAdmin,
  148. pKills,
  149. pDeaths
  150. }
  151. new PlayerInfo[MAX_PLAYERS][pInfo];
  152.  
  153. forward LoadUser_data(playerid,name[],value[]);
  154. public LoadUser_data(playerid,name[],value[])
  155. {
  156. INI_Int("Password",PlayerInfo[playerid][pPass]);
  157. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  158. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  159. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  160. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  161. return 1;
  162. }
  163.  
  164. stock UserPath(playerid)
  165. {
  166. new string[128],playername[MAX_PLAYER_NAME];
  167. GetPlayerName(playerid,playername,sizeof(playername));
  168. format(string,sizeof(string),PATH,playername);
  169. return string;
  170. }
  171.  
  172. /*Credits to Dracoblue*/
  173. stock udb_hash(buf[]) {
  174. new length=strlen(buf);
  175. new s1 = 1;
  176. new s2 = 0;
  177. new n;
  178. for (n=0; n<length; n++)
  179. {
  180. s1 = (s1 + buf[n]) % 65521;
  181. s2 = (s2 + s1) % 65521;
  182. }
  183. return (s2 << 16) + s1;
  184. }
  185.  
  186. new vehicle_spawn[MAX_PLAYERS];
  187.  
  188. new NameVehicles[][] = // Name the all vehicles
  189. {
  190. "Landstalker",
  191. "Bravura",
  192. "Buffalo",
  193. "Linerunner",
  194. "Perrenial",
  195. "Sentinel",
  196. "Dumper",
  197. "Firetruck",
  198. "Trashmaster",
  199. "Stretch",
  200. "Manana",
  201. "Infernus",
  202. "Voodoo",
  203. "Pony",
  204. "Mule",
  205. "Cheetah",
  206. "Ambulance",
  207. "Leviathan",
  208. "Moonbeam",
  209. "Esperanto",
  210. "Taxi",
  211. "Washington",
  212. "Bobcat",
  213. "Whoopee",
  214. "BF Injection",
  215. "Hunter",
  216. "Premier",
  217. "Enforcer",
  218. "Securicar",
  219. "Banshee",
  220. "Predator",
  221. "Bus",
  222. "Rhino",
  223. "Barracks",
  224. "Hotknife",
  225. "Trailer", "Previon", "Coach", "Cabbie",
  226. "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  227. "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  228. "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  229. "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  230. "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  231. "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  232. "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  233. "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  234. "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
  235. "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  236. "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  237. "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  238. "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  239. "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  240. "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  241. "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  242. "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  243. "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  244. "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  245. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  246. "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  247. "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  248. "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  249. "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  250. "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  251. "Tiller", "Utility Trailer"
  252. };
  253.  
  254. stock IsNumeric(const string[])
  255. {
  256. for (new i = 0, j = strlen(string); i < j; i++)
  257. {
  258. if (string[i] > '9' || string[i] < '0')
  259. return 0;
  260. }
  261. return true;
  262. }
  263.  
  264. stock GetModelVehicle(vname[])
  265. {
  266. for(new i = 0; i < 211; i++)
  267. {
  268. if(strfind(NameVehicles[i], vname, true) != -1)
  269. return i + 400;
  270. }
  271. return false;
  272. }
  273.  
  274. stock CreateVehicleEx(playerid, modelid)
  275. {
  276. new Float:pos[4];
  277.  
  278. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  279. {
  280. GetVehiclePos(GetPlayerVehicleID(playerid), pos[0], pos[1], pos[2]);
  281. GetVehicleZAngle(GetPlayerVehicleID(playerid), pos[3]);
  282. DestroyVehicle(GetPlayerVehicleID(playerid));
  283. }
  284. else
  285. {
  286. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  287. GetPlayerFacingAngle(playerid, pos[3]);
  288. }
  289. if(vehicle_spawn[playerid] != 0) DestroyVehicle(vehicle_spawn[playerid]);
  290. vehicle_spawn[playerid] = CreateVehicle(modelid, pos[0], pos[1], pos[2], pos[3], -1, -1, 60);
  291. LinkVehicleToInterior(vehicle_spawn[playerid], GetPlayerInterior(playerid));
  292. SetVehicleVirtualWorld(vehicle_spawn[playerid], GetPlayerVirtualWorld(playerid));
  293. PutPlayerInVehicle(playerid, vehicle_spawn[playerid], 0);
  294. SetVehicleZAngle(vehicle_spawn[playerid], pos[3]);
  295. return true;
  296. }
  297.  
  298. forward Restart();
  299.  
  300. public OnGameModeInit()
  301. {
  302. SetGameModeText(""GM_TEXT"");
  303. SendRconCommand("hostname "SERVER_NAME"");
  304. SendRconCommand("rcon_password "SERVER_RCON"");
  305. SendRconCommand("weburl "SERVER_URL"");
  306. SendRconCommand("mapname "SERVER_MAPNAME"");
  307. SendRconCommand("language "SERVER_LANGUAGE"");
  308. //Clock System
  309. Date = TextDrawCreate(45.000000, 326.000000, "06/04/2015");
  310. TextDrawBackgroundColor(Date, 255);
  311. TextDrawFont(Date, 3);
  312. TextDrawLetterSize(Date, 0.509999, 1.000000);
  313. TextDrawColor(Date, -1);
  314. TextDrawSetOutline(Date, 0);
  315. TextDrawSetProportional(Date, 1);
  316. TextDrawSetShadow(Date, 1);
  317.  
  318. Line1 = TextDrawCreate(36.000000, 332.000000, "_");
  319. TextDrawBackgroundColor(Line1, 255);
  320. TextDrawFont(Line1, 1);
  321. TextDrawLetterSize(Line1, 6.699995, 1.000000);
  322. TextDrawColor(Line1, 16711935);
  323. TextDrawSetOutline(Line1, 0);
  324. TextDrawSetProportional(Line1, 1);
  325. TextDrawSetShadow(Line1, 1);
  326.  
  327. Line2 = TextDrawCreate(36.000000, 318.000000, "_");
  328. TextDrawBackgroundColor(Line2, 255);
  329. TextDrawFont(Line2, 1);
  330. TextDrawLetterSize(Line2, 6.699995, 1.000000);
  331. TextDrawColor(Line2, 16711935);
  332. TextDrawSetOutline(Line2, 0);
  333. TextDrawSetProportional(Line2, 1);
  334. TextDrawSetShadow(Line2, 1);
  335.  
  336. Time = TextDrawCreate(49.000000, 311.000000, "00:00:00");
  337. TextDrawBackgroundColor(Time, 255);
  338. TextDrawFont(Time, 1);
  339. TextDrawLetterSize(Time, 0.500000, 1.000000);
  340. TextDrawColor(Time, -1);
  341. TextDrawSetOutline(Time, 0);
  342. TextDrawSetProportional(Time, 1);
  343. TextDrawSetShadow(Time, 1);
  344.  
  345. SetTimer("time", 1000, true);
  346. //==========================PLAYER CLASSES======================//
  347. AddPlayerClass(1,404.9409,2533.1892,16.5460,182.0441,6,1,26,100,33,100); //
  348. AddPlayerClass(2,323.5802,2524.5325,16.7525,264.4515,6,1,26,100,33,100); //
  349. AddPlayerClass(3,395.1288,2465.5244,16.5000,230.9245,6,1,26,100,33,100); //
  350. AddPlayerClass(4,416.5731,2448.1128,16.5000,230.9245,6,1,26,100,33,100); //
  351. AddPlayerClass(5,162.6355,2377.0325,16.5000,78.3297,6,1,26,100,33,100); //
  352. AddPlayerClass(6,-95.1950,2458.6848,16.5000,77.0764,6,1,26,100,33,100); //
  353. AddPlayerClass(7,14.1675,2504.2317,16.5000,276.9616,6,1,26,100,33,100); //
  354. AddPlayerClass(8,231.6018,2497.9978,16.5000,268.5015,6,1,26,100,33,100); //
  355. AddPlayerClass(9,305.6609,2523.2061,16.5000,248.4481,6,1,26,100,33,100); //
  356. AddPlayerClass(10,432.4329,2523.0779,16.5000,272.2617,6,1,26,100,33,100); //
  357. AddPlayerClass(11,404.0999,2465.7368,16.5000,185.1542,6,1,26,100,33,100); //
  358. AddPlayerClass(12,404.0999,2465.7368,16.5000,185.1542,6,1,26,100,33,100); //
  359. AddPlayerClass(13,404.0999,2465.7368,16.5000,185.1542,6,1,26,100,33,100); //
  360. AddPlayerClass(14,404.0999,2465.7368,17.0121,185.1542,6,1,26,100,33,100); //
  361. AddPlayerClass(15,404.0999,2465.7368,17.4653,185.1542,6,1,26,100,33,100); //
  362. AddPlayerClass(16,404.0999,2465.7368,17.4653,185.1542,6,1,26,100,33,100); //
  363.  
  364. //=============================VEHICLES============================//
  365. AddStaticVehicle(411,388.9364,2531.0940,16.2702,89.7920,123,1); //
  366. AddStaticVehicle(425,368.9612,2536.5000,17.2309,87.6655,43,0); //
  367. AddStaticVehicle(522,366.1923,2479.3894,16.0380,271.3551,7,79); //
  368. AddStaticVehicle(522,378.3987,2479.3911,16.0502,270.0639,7,79); //
  369. AddStaticVehicle(522,419.1019,2480.8162,16.0477,271.4123,7,79); //
  370. AddStaticVehicle(522,429.3909,2490.4470,16.0432,355.7974,7,79); //
  371. AddStaticVehicle(522,429.6454,2508.3865,16.0505,359.3569,7,79); //
  372. AddStaticVehicle(451,422.2503,2441.0530,16.2070,175.3576,125,125); //
  373. AddStaticVehicle(451,422.8609,2460.1836,16.2063,180.0902,125,125); //
  374. AddStaticVehicle(451,389.8860,2461.3511,16.2060,355.4984,125,125); //
  375. AddStaticVehicle(451,388.3862,2442.3047,16.2076,355.4980,125,125); //
  376. AddStaticVehicle(451,160.2561,2473.6548,16.1889,13.5081,125,125); //
  377. AddStaticVehicle(451,205.3321,2479.5022,16.1990,284.2957,125,125); //
  378. AddStaticVehicle(451,255.8866,2518.4014,16.3580,50.2630,125,125); //
  379. AddStaticVehicle(522,-3.0093,2527.9309,16.0552,89.2382,36,105); //
  380. AddStaticVehicle(522,-76.6719,2479.4155,16.0477,145.3996,36,105); //
  381. AddStaticVehicle(522,-17.8494,2484.9229,16.0497,246.4063,36,105); //
  382. AddStaticVehicle(411,287.1540,2542.9355,16.5467,356.2872,116,1); //
  383. AddStaticVehicle(411,296.9729,2542.2698,16.5485,2.3036,116,1); //
  384. AddStaticVehicle(411,305.4609,2426.9041,16.2036,249.5041,116,1); //
  385. AddStaticVehicle(411,221.4702,2475.6831,16.2114,292.2923,116,1); //
  386. AddStaticVehicle(411,140.5230,2555.6575,16.3451,87.3846,116,1); //
  387. AddStaticVehicle(411,54.9136,2556.4802,16.2445,91.3709,116,1); //
  388. return 1;
  389. }
  390.  
  391. public OnGameModeExit()
  392. {
  393. return 1;
  394. }
  395.  
  396. // Player name Stock
  397. stock PlayerName(playerid)
  398. {
  399. new name[MAX_PLAYER_NAME];
  400. GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  401. return name;
  402. }
  403. stock RPN(playerid)
  404. {
  405. new name[MAX_PLAYER_NAME];
  406. GetPlayerName(playerid, name, sizeof(name));
  407. return name;
  408. }
  409. stock ALVLCN(lvl)
  410. {
  411. new string[128], str[256], str2[256];
  412. format(str, sizeof(str), "admincolorlevel%d", lvl);
  413. format(str2, sizeof(str2), "adminnamelevel%d", lvl);
  414. format(string, 128, "{%s} %s", dini_Get(AddDirFile(dir_datafiles, FILE_ACN), str), dini_Get(AddDirFile(dir_datafiles, FILE_ACN), str2));
  415. return string;
  416. }
  417.  
  418. // Send Messge to Amdins
  419. SendMessageToAdmins(color, message[])
  420. {
  421. for (new i = 0; i < MAX_PLAYERS; i++)
  422. {
  423. if (IsPlayerConnected(i) && PlayerInfo[i][pAdmin] != 0) SendClientMessage(i, color, message);
  424. }
  425. }
  426. /*SendMessageToNormal(color, message[])
  427. {
  428. for(new i = 0; i< PLAYERS; i++)
  429. {
  430. if(IsPlayerConnected(i) && adlvl[i] == 0) SendClientMessage(i, color, message);
  431. }
  432. }
  433. SendMessageToVips(color, message[])
  434. {
  435. for(new i = 0; i < MAX_PLAYERS; i++)
  436. {
  437. if(IsPlayerConnected(i) && vip[i] != 0) SendClientMessage(i, color, message);
  438. }
  439. }*/
  440. /*MyTest(color, message[])
  441. {
  442. for(new i = 0; i < MAX_PLAYERS; i++)
  443. {
  444. if(IsPlayerConnected(i) && Team[i] == 1) SendClientMessage(i, color, message);
  445. }
  446. }*/
  447. /*SendToPlayer(color, message[])
  448. {
  449. for(new i = 0; i < MAX_PLAYERS; i++)
  450. {
  451. if(IsPlayerConnected(i) && Team1[i] == 2) SendClientMessage(i, color, message);
  452. }
  453. }
  454. SendMessageToTesting(color, message[])
  455. {
  456. new playername[64];
  457. for(new i = 0; i < MAX_PLAYERS; i++)
  458. {
  459. GetPlayerName(i, playername, MAX_PLAYER_NAME);
  460. if(IsPlayerConnected(i) && dini_Int(AddDirFile(dir_userfiles, playername), "Testing") == 1) SendClientMessage(i, color, message);
  461. }
  462. }*/
  463. public Restart()
  464. {
  465. for(new i=0; i<MAX_PLAYERS; i++) {if(IsPlayerConnected(i)) Kick(i);}
  466. SendRconCommand("gmx");
  467. return 1;
  468. }
  469.  
  470. public OnPlayerRequestClass(playerid, classid)
  471. {
  472. SetPlayerPos(playerid, 403.544, 2470.676, 29.605);
  473. SetPlayerCameraPos(playerid, 408.544, 2470.676, 29.605);
  474. SetPlayerCameraLookAt(playerid, 408.544, 2470.676, 29.605);
  475. return 1;
  476. }
  477.  
  478. public OnPlayerConnect(playerid)
  479. {
  480. SendClientMessage(playerid, COLOR_BLUE,"Welcome In "SERVER_NAME"");
  481. SCM(playerid, COLOR_RED,"Please read /rules, /cmds");
  482. if(fexist(UserPath(playerid)))
  483. {
  484. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  485. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  486. }
  487. else
  488. {
  489. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Register",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  490. }
  491. return 1;
  492. }
  493.  
  494. public OnPlayerDisconnect(playerid, reason)
  495. {
  496. TextDrawHideForPlayer(playerid, Date);
  497. TextDrawHideForPlayer(playerid, Line1);
  498. TextDrawHideForPlayer(playerid, Line2);
  499. TextDrawHideForPlayer(playerid, Time);
  500. new INI:File = INI_Open(UserPath(playerid));
  501. INI_SetTag(File,"data");
  502. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  503. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  504. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  505. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  506. INI_Close(File);
  507. return 1;
  508. }
  509.  
  510. public OnPlayerSpawn(playerid)
  511. {
  512. TextDrawShowForPlayer(playerid, Date);
  513. TextDrawShowForPlayer(playerid, Line1);
  514. TextDrawShowForPlayer(playerid, Line2);
  515. TextDrawShowForPlayer(playerid, Time);
  516. return 1;
  517. }
  518. forward time();
  519. public time()
  520. {
  521. new string[256], year, month, day, hours, minutes, seconds;
  522. getdate(year, month, day), gettime(hours, minutes, seconds);
  523. format(string, sizeof string, "%d/%s%d/%s%d", day, ((month < 10) ? ("0") : ("")), month, (year < 10) ? ("0") : (""), year);
  524. TextDrawSetString(Date, string);
  525. format(string, sizeof string, "%s%d:%s%d:%s%d", (hours < 10) ? ("0") : (""), hours, (minutes < 10) ? ("0") : (""), minutes, (seconds < 10) ? ("0") : (""), seconds);
  526. TextDrawSetString(Time, string);
  527. }
  528. public OnPlayerDeath(playerid, killerid, reason)
  529. {
  530. PlayerInfo[killerid][pKills]++;
  531. PlayerInfo[playerid][pDeaths]++;
  532. return 1;
  533. }
  534.  
  535. public OnVehicleSpawn(vehicleid)
  536. {
  537. return 1;
  538. }
  539.  
  540. public OnVehicleDeath(vehicleid, killerid)
  541. {
  542. return 1;
  543. }
  544.  
  545. public OnPlayerText(playerid, text[])
  546. {
  547. return 1;
  548. }
  549.  
  550. public OnPlayerCommandText(playerid, cmdtext[])
  551. {
  552. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  553. {
  554. // Do something here
  555. return 1;
  556. }
  557. return 0;
  558. }
  559.  
  560. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  561. {
  562. return 1;
  563. }
  564.  
  565. public OnPlayerExitVehicle(playerid, vehicleid)
  566. {
  567. return 1;
  568. }
  569.  
  570. public OnPlayerStateChange(playerid, newstate, oldstate)
  571. {
  572. return 1;
  573. }
  574.  
  575. public OnPlayerEnterCheckpoint(playerid)
  576. {
  577. return 1;
  578. }
  579.  
  580. public OnPlayerLeaveCheckpoint(playerid)
  581. {
  582. return 1;
  583. }
  584.  
  585. public OnPlayerEnterRaceCheckpoint(playerid)
  586. {
  587. return 1;
  588. }
  589.  
  590. public OnPlayerLeaveRaceCheckpoint(playerid)
  591. {
  592. return 1;
  593. }
  594.  
  595. public OnRconCommand(cmd[])
  596. {
  597. return 1;
  598. }
  599.  
  600. public OnPlayerRequestSpawn(playerid)
  601. {
  602. return 1;
  603. }
  604.  
  605. public OnObjectMoved(objectid)
  606. {
  607. return 1;
  608. }
  609.  
  610. public OnPlayerObjectMoved(playerid, objectid)
  611. {
  612. return 1;
  613. }
  614.  
  615. public OnPlayerPickUpPickup(playerid, pickupid)
  616. {
  617. return 1;
  618. }
  619.  
  620. public OnVehicleMod(playerid, vehicleid, componentid)
  621. {
  622. return 1;
  623. }
  624.  
  625. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  626. {
  627. return 1;
  628. }
  629.  
  630. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  631. {
  632. return 1;
  633. }
  634.  
  635. public OnPlayerSelectedMenuRow(playerid, row)
  636. {
  637. return 1;
  638. }
  639.  
  640. public OnPlayerExitedMenu(playerid)
  641. {
  642. return 1;
  643. }
  644.  
  645. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  646. {
  647. return 1;
  648. }
  649.  
  650. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  651. {
  652. return 1;
  653. }
  654.  
  655. public OnRconLoginAttempt(ip[], password[], success)
  656. {
  657. return 1;
  658. }
  659.  
  660. public OnPlayerUpdate(playerid)
  661. {
  662. return 1;
  663. }
  664.  
  665. public OnPlayerStreamIn(playerid, forplayerid)
  666. {
  667. return 1;
  668. }
  669.  
  670. public OnPlayerStreamOut(playerid, forplayerid)
  671. {
  672. return 1;
  673. }
  674.  
  675. public OnVehicleStreamIn(vehicleid, forplayerid)
  676. {
  677. return 1;
  678. }
  679.  
  680. public OnVehicleStreamOut(vehicleid, forplayerid)
  681. {
  682. return 1;
  683. }
  684.  
  685. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  686. {
  687. switch( dialogid )
  688. {
  689. case DIALOG_REGISTER:
  690. {
  691. if (!response) return Kick(playerid);
  692. if(response)
  693. {
  694. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"{008800}Register",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  695. new INI:File = INI_Open(UserPath(playerid));
  696. INI_SetTag(File,"data");
  697. INI_WriteInt(File,"Password",udb_hash(inputtext));
  698. INI_WriteInt(File,"Cash",0);
  699. INI_WriteInt(File,"Admin",0);
  700. INI_WriteInt(File,"Kills",0);
  701. INI_WriteInt(File,"Deaths",0);
  702. INI_Close(File);
  703.  
  704. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  705. SpawnPlayer(playerid);
  706. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"{FF0000}Thanks For Choosing Our Server!",""COL_GREEN"Welcome In "SERVER_NAME"","Ok","");
  707. }
  708. }
  709.  
  710. case DIALOG_LOGIN:
  711. {
  712. if ( !response ) return Kick ( playerid );
  713. if( response )
  714. {
  715. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  716. {
  717. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  718. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  719. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"{0088CB}Thanks For Coming Back",""COL_GREEN"You have successfully logged in!","Ok","");
  720. }
  721. else
  722. {
  723. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"{0000FF}Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  724. }
  725. return 1;
  726. }
  727. }
  728. }
  729. if(dialogid == NEON)
  730. {
  731. if(response)
  732. {
  733. if(listitem == 0)
  734. {
  735. SetPVarInt(playerid, "neon", 1);
  736. SetPVarInt(playerid, "blue", CreateObject(18648,0,0,0,0,0,0));
  737. SetPVarInt(playerid, "blue1", CreateObject(18648,0,0,0,0,0,0));
  738. AttachObjectToVehicle(GetPVarInt(playerid, "blue"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  739. AttachObjectToVehicle(GetPVarInt(playerid, "blue1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  740. GameTextForPlayer(playerid, "~b~ Blue ~r~Colour Neon Has Been Added To Your Vehicle",3500,5);
  741. }
  742. if(listitem == 1)
  743. {
  744. SetPVarInt(playerid, "neon", 1);
  745. SetPVarInt(playerid, "green", CreateObject(18649,0,0,0,0,0,0));
  746. SetPVarInt(playerid, "green1", CreateObject(18649,0,0,0,0,0,0));
  747. AttachObjectToVehicle(GetPVarInt(playerid, "green"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  748. AttachObjectToVehicle(GetPVarInt(playerid, "green1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  749. GameTextForPlayer(playerid, "~g~Green ~r~Colour Neon Has Been Added To Your Vehicle",3500,5);
  750. }
  751. if(listitem == 2)
  752. {
  753. SetPVarInt(playerid, "neon", 1);
  754. SetPVarInt(playerid, "yellow", CreateObject(18650,0,0,0,0,0,0));
  755. SetPVarInt(playerid, "yellow1", CreateObject(18650,0,0,0,0,0,0));
  756. AttachObjectToVehicle(GetPVarInt(playerid, "yellow"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  757. AttachObjectToVehicle(GetPVarInt(playerid, "yellow1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  758. GameTextForPlayer(playerid, "~y~Yellow ~r~Colour Neon Has Been Added To Your Vehicle",3500,5);
  759. }
  760. if(listitem == 3)
  761. {
  762. SetPVarInt(playerid, "neon", 1);
  763. SetPVarInt(playerid, "white", CreateObject(18652,0,0,0,0,0,0));
  764. SetPVarInt(playerid, "white1", CreateObject(18652,0,0,0,0,0,0));
  765. AttachObjectToVehicle(GetPVarInt(playerid, "white"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  766. AttachObjectToVehicle(GetPVarInt(playerid, "white1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  767. GameTextForPlayer(playerid, "~w~White ~r~Colour Neon Has Been Added To Your Vehicle",3500,5);
  768. }
  769. if(listitem == 4)
  770. {
  771. SetPVarInt(playerid, "neon", 1);
  772. SetPVarInt(playerid, "pink", CreateObject(18651,0,0,0,0,0,0));
  773. SetPVarInt(playerid, "pink1", CreateObject(18651,0,0,0,0,0,0));
  774. AttachObjectToVehicle(GetPVarInt(playerid, "pink"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  775. AttachObjectToVehicle(GetPVarInt(playerid, "pink1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
  776. GameTextForPlayer(playerid, "~p~Pink ~r~Colour Neon Has Been Added To Your Vehicle",3500,5);
  777. }
  778. if(listitem == 5)
  779. {
  780. DestroyObject(GetPVarInt(playerid, "blue"));
  781. DeletePVar(playerid, "neon");
  782. DestroyObject(GetPVarInt(playerid, "blue1"));
  783. DeletePVar(playerid, "neon");
  784. DestroyObject(GetPVarInt(playerid, "green"));
  785. DeletePVar(playerid, "neon");
  786. DestroyObject(GetPVarInt(playerid, "green1"));
  787. DeletePVar(playerid, "neon");
  788. DestroyObject(GetPVarInt(playerid, "yellow"));
  789. DeletePVar(playerid, "neon");
  790. DestroyObject(GetPVarInt(playerid, "yellow1"));
  791. DeletePVar(playerid, "neon");
  792. DestroyObject(GetPVarInt(playerid, "white"));
  793. DeletePVar(playerid, "neon");
  794. DestroyObject(GetPVarInt(playerid, "white1"));
  795. DeletePVar(playerid, "neon");
  796. DestroyObject(GetPVarInt(playerid, "pink"));
  797. DeletePVar(playerid, "neon");
  798. DestroyObject(GetPVarInt(playerid, "pink1"));
  799. DeletePVar(playerid, "neon");
  800. GameTextForPlayer(playerid, "~p~Neon is removed from your vehicle",3500,5);
  801. }
  802. }
  803. }
  804. if(dialogid == WEAPON_SHOP)
  805. {
  806. if(response)
  807. {
  808. if(listitem == 0)
  809. GivePlayerWeapon(playerid, 28, 5000);
  810. GivePlayerWeapon(playerid, 26, 5000);
  811. GivePlayerWeapon(playerid, 30, 5000);
  812. GivePlayerWeapon(playerid, 24, 5000);
  813. GivePlayerMoney (playerid, -10000);
  814. SendClientMessage(playerid, COLOR_RED, "You have selected Package 1 - {008800}Shawn-OFF Shotgun, UZI, Desert Eagle, AK47. With {00FF00}1000 Bullets .");
  815. }
  816. if(listitem == 1)
  817. {
  818. GivePlayerWeapon(playerid, 29, 5000);
  819. GivePlayerWeapon(playerid, 31, 5000);
  820. GivePlayerWeapon(playerid, 34, 5000);
  821. GivePlayerWeapon(playerid, 25, 5000);
  822. GivePlayerMoney (playerid, -11000);
  823. SendClientMessage(playerid, COLOR_RED, "You have selected Package 2 - {00FF00}MP5, M4, Sniper, ShotGun With {008800}1000 Bullets ");
  824. }
  825. return 1;
  826. }
  827. return 1;
  828. }
  829.  
  830. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  831. {
  832. return 1;
  833. }
  834.  
  835. //============================= COMMANDS =============================//
  836. CMD:cmds(playerid, params[])
  837. {
  838. return cmd_commands(playerid, params);
  839. }
  840. CMD:commands(playerid, params[])
  841. {
  842. SendClientMessage(playerid, COLOR_YELLOW, "Server Commands");
  843. SendClientMessage(playerid, COLOR_WHITE, "/admins, /id, /vipinfo, /drink, /clock");
  844. return 1;
  845. }
  846.  
  847. CMD:vipinfo(playerid, params[])
  848. {
  849. SendClientMessage(playerid, COLOR_BLUE,"This is vip informaton menu");
  850. {
  851. ShowPlayerDialog(playerid, DIALOG_VIP_MENU, DIALOG_STYLE_MSGBOX, "VIP Information", "{00FF00}Price 2$\n{008800}Will Get $7000000 In Game Cash\nWill Get Admin Level 2\n", "Ok", "");
  852. }
  853. return 1;
  854. }
  855.  
  856. CMD:neon(playerid, params[])
  857. {
  858. if(IsPlayerInAnyVehicle(playerid))
  859. {
  860. if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
  861. {
  862. SendClientMessage(playerid, COLOR_WHITE, "You should a driver");
  863. return 1;
  864. }
  865. ShowPlayerDialog(playerid, NEON, DIALOG_STYLE_LIST, "Choose Neon Colour","Blue\nGreen\nYellow\nWhite\nPink\nRemove Neon","Add","Cancel");
  866. }
  867. else
  868. {
  869. SendClientMessage(playerid, COLOR_WHITE, "Please Sit In Vehicle");
  870. }
  871. return 1;
  872. }
  873. CMD:id(playerid,params[])
  874. {
  875. new TargetID,str1[270],pname[MAX_PLAYER_NAME];
  876. if(sscanf(params,"u",TargetID)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /id [Player Name/ID]");
  877. if(TargetID == INVALID_PLAYER_ID || !IsPlayerConnected(TargetID)) return SendClientMessage(playerid, COLOR_SILVER, "Player Is Not Connected.");
  878. else
  879. {
  880. GetPlayerName(TargetID,pname,sizeof(pname));
  881. format(str1,sizeof(str1),"%s {FF0000}[ID = %d] {008800}[Ping: %d]",pname,TargetID,GetPlayerPing(TargetID));
  882. SendClientMessage(playerid,COLOR_GREEN,str1);
  883. }
  884. return 1;
  885. }
  886.  
  887. CMD:drink(playerid, params[])
  888. {
  889. new options[128];
  890.  
  891. if(sscanf(params, "s[128]",options))
  892. {
  893. SendClientMessage(playerid, COLOR_WHITE, "Usage: /drink [Wine Or Beer]");
  894. SendClientMessage(playerid, COLOR_SILVER, "{00FF00}Wine, Beer");
  895. return 1;
  896. }
  897. else if(!strcmp(options, "Wine", true, 5))
  898. {
  899. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_WINE);
  900. SendClientMessage(playerid, COLOR_WHITE, "You got wine {00FF00}Press LMB to start drink");
  901. }
  902. else if(!strcmp(options, "Beer", true, 5))
  903. {
  904. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
  905. SendClientMessage(playerid, COLOR_LIGHTBLUE, "You got beer {00FF00}Press LMB to start drink");
  906. }
  907. else SendClientMessage(playerid, COLOR_RED, "Invalid Option.");
  908. return 1;
  909. }
  910.  
  911. CMD:acmds(playerid, params[])
  912. {
  913. new cmds;
  914. if(PlayerInfo[playerid][pAdmin] < 1) return 0;
  915. {
  916. new tmp[256];
  917. if(PlayerInfo[playerid][pAdmin] == 1)
  918. {
  919. format(tmp, sizeof(tmp), "Trial Moderator {FFFFFF}");
  920. SendClientMessage(playerid, COLOR_WHITE, tmp);
  921. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear");
  922. SendClientMessage(playerid, COLOR_WHITE, "soon");
  923. SendClientMessage(playerid, COLOR_WHITE, "soon");
  924. return 1;
  925. }
  926. if(PlayerInfo[playerid][pAdmin] == 2)
  927. {
  928. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  929. switch(cmds)
  930. {
  931. case 1:
  932. {
  933. format(tmp, sizeof(tmp), "Global Moderator - Page 1{FFFFFF}");
  934. SendClientMessage(playerid, COLOR_WHITE, tmp);
  935. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear, /ban");
  936. SendClientMessage(playerid, COLOR_WHITE, "soon");
  937. SendClientMessage(playerid, COLOR_WHITE, "soon");
  938. return 1;
  939. }
  940. case 2:
  941. {
  942. format(tmp, sizeof(tmp), "Global Moderator - Page 2{FFFFFF}");
  943. SendClientMessage(playerid, COLOR_WHITE, tmp);
  944. SendClientMessage(playerid, COLOR_WHITE, "soon");
  945. SendClientMessage(playerid, COLOR_WHITE, "soon");
  946. SendClientMessage(playerid, COLOR_WHITE, "soon");
  947. return 1;
  948. }
  949. }
  950. return 1;
  951. }
  952. if(PlayerInfo[playerid][pAdmin] == 3)
  953. {
  954. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  955. switch(cmds)
  956. {
  957. case 1:
  958. {
  959. format(tmp, sizeof(tmp), "Administrator - Page 1{FFFFFF}");
  960. SendClientMessage(playerid, COLOR_WHITE, tmp);
  961. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear, /ban");
  962. SendClientMessage(playerid, COLOR_WHITE, "/v");
  963. SendClientMessage(playerid, COLOR_WHITE, "soon");
  964. return 1;
  965. }
  966. case 2:
  967. {
  968. format(tmp, sizeof(tmp), "Administrator - Page 2{FFFFFF}");
  969. SendClientMessage(playerid, COLOR_WHITE, tmp);
  970. SendClientMessage(playerid, COLOR_WHITE, "soon");
  971. SendClientMessage(playerid, COLOR_WHITE, "soon");
  972. SendClientMessage(playerid, COLOR_WHITE, "soon");
  973. return 1;
  974. }
  975. }
  976. return 1;
  977. }
  978. if(PlayerInfo[playerid][pAdmin] == 4)
  979. {
  980. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  981. switch(cmds)
  982. {
  983. case 1:
  984. {
  985. format(tmp, sizeof(tmp), "Head Administrator - Page 1{FFFFFF}");
  986. SendClientMessage(playerid, COLOR_WHITE, tmp);
  987. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear, /ban");
  988. SendClientMessage(playerid, COLOR_WHITE, "soon");
  989. SendClientMessage(playerid, COLOR_WHITE, "soon");
  990. return 1;
  991. }
  992. case 2:
  993. {
  994. format(tmp, sizeof(tmp), "Head Administrator - Page 2{FFFFFF}");
  995. SendClientMessage(playerid, COLOR_WHITE, tmp);
  996. SendClientMessage(playerid, COLOR_WHITE, "soon");
  997. SendClientMessage(playerid, COLOR_WHITE, "soon");
  998. SendClientMessage(playerid, COLOR_WHITE, "soon");
  999. return 1;
  1000. }
  1001. }
  1002. return 1;
  1003. }
  1004. if(PlayerInfo[playerid][pAdmin] == 5)
  1005. {
  1006. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  1007. switch(cmds)
  1008. {
  1009. case 1:
  1010. {
  1011. format(tmp, sizeof(tmp), " Lead Administrator - Page 1{FFFFFF}");
  1012. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1013. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear, /ban");
  1014. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1015. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1016. return 1;
  1017. }
  1018. case 2:
  1019. {
  1020. format(tmp, sizeof(tmp), "Lead Administrator - Page 2{FFFFFF}");
  1021. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1022. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1023. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1024. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1025. return 1;
  1026. }
  1027. }
  1028. return 1;
  1029. }
  1030. if(PlayerInfo[playerid][pAdmin] == 6)
  1031. {
  1032. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  1033. switch(cmds)
  1034. {
  1035. case 1:
  1036. {
  1037. format(tmp, sizeof(tmp), "Server Manager/Owner - Page 1{FFFFFF}");
  1038. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1039. SendClientMessage(playerid, COLOR_WHITE, "/kick, /clear, /ban");
  1040. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1041. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1042. return 1;
  1043. }
  1044. case 2:
  1045. {
  1046. format(tmp, sizeof(tmp), "Server Manager/Owner - Page 2{FFFFFF}");
  1047. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1048. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1049. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1050. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1051. return 1;
  1052. }
  1053. }
  1054. return 1;
  1055. }
  1056. if(PlayerInfo[playerid][pAdmin] == 7)
  1057. {
  1058. if(sscanf(params, "i", cmds)) return SendClientMessage(playerid, COLOR_YELLOW, "You admin level has too many commands do /acmds [1-2]");
  1059. switch(cmds)
  1060. {
  1061. case 1:
  1062. {
  1063. format(tmp, sizeof(tmp), "Server Developer/Manager/Owner - Page 1{FFFFFF}");
  1064. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1065. SendClientMessage(playerid, COLOR_WHITE, "/setadmin, /restart, /v");
  1066. SendClientMessage(playerid, COLOR_WHITE, "/healme, /heal");
  1067. SendClientMessage(playerid, COLOR_WHITE, "/givemoney, /gotopos, /pos");
  1068. return 1;
  1069. }
  1070. case 2:
  1071. {
  1072. format(tmp, sizeof(tmp), "Server Developer/Manager/Owner - Page 2{FFFFFF}");
  1073. SendClientMessage(playerid, COLOR_WHITE, tmp);
  1074. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1075. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1076. SendClientMessage(playerid, COLOR_WHITE, "soon");
  1077. return 1;
  1078. }
  1079. }
  1080. return 1;
  1081. }
  1082. }
  1083. return 1;
  1084. }
  1085.  
  1086. CMD:settime(playerid, params[])
  1087. {
  1088. new var, playername[64],string[128],strings[150];
  1089. if(PlayerInfo[playerid][pAdmin] < 2) return 0;
  1090. GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
  1091.  
  1092. if (sscanf(params, "d", var)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /settime [time]");
  1093. if(var > 24) return SendClientMessage(playerid, COLOR_RED, "Invalid Hour!");
  1094.  
  1095. for(new i = 0; i < MAX_PLAYERS; i++)
  1096. {
  1097. if(IsPlayerConnected(i))
  1098. {
  1099. SetWorldTime(var);
  1100. gTimeStats[1] = 0;
  1101. gTimeStats[0] = var;
  1102. }
  1103. }
  1104. format(string,sizeof(string),"An admin has set server time to %d:00 ", var );
  1105. SendClientMessageToAll(COLOR_GREEN, string);
  1106. format(strings, 128, "Admin Log: %s (Id%d) has changed server time to %d:00.", playername, playerid, var);
  1107. SendMessageToAdmins(COLOR_ADMIN, strings);
  1108. return 1;
  1109. }
  1110. CMD:setadmin(playerid, params[])
  1111. {
  1112. new player, adlvl;
  1113. if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 6) return 0;
  1114. else if(sscanf(params, "ui", playerid, adlvl)) return SendClientMessage(playerid, -1, "Usage: /setadmin [id] [level]");
  1115. else if(adlvl < 0 || adlvl > 7) return SendClientMessage(playerid, -1, "Only levels 0-7");
  1116. else if(player == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Player Is Not Currently Connected");
  1117. else
  1118. {
  1119. new string[128], string1[128], target[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME];
  1120. GetPlayerName(player, pName, sizeof(pName));
  1121. GetPlayerName(playerid, target, sizeof(target));
  1122. format(string, sizeof(string), "You have set %s Admin level to %i", target, adlvl);
  1123. SendClientMessage(playerid, -1, string);
  1124. format(string, sizeof(string), "Your Admin level has been set to %i by %s", adlvl, pName);
  1125. SendClientMessage(player, -1, string1);
  1126. PlayerInfo[player][pAdmin] = adlvl;
  1127. }
  1128. return 1;
  1129. }
  1130.  
  1131. CMD:kick(playerid,params[])
  1132. {
  1133. new player,gname[MAX_PLAYER_NAME],string[125],reason[70];
  1134. if(PlayerInfo[playerid][pAdmin] < 3 || (playerid)) return 0;
  1135. if(sscanf(params,"us[70]",player,reason)) return SendClientMessage(playerid,-1," (ERROR) : /kick [playerid] [reason]");
  1136. GetPlayerName(player,gname,sizeof(gname));
  1137. format(string, sizeof(string), "SERVER SYSTEM: %s has been kicked from the server Reason: %s", gname,reason);
  1138. SendClientMessageToAll( -1, string);
  1139. Kick(player);
  1140. return 1;
  1141. }
  1142.  
  1143. CMD:ban(playerid, params[])
  1144. {
  1145. if(PlayerInfo[playerid][pAdmin] < 5)
  1146. {
  1147. new player;
  1148. new reason[64];
  1149. new str[128];
  1150. new Playername[MAX_PLAYER_NAME], Adminname[MAX_PLAYER_NAME];
  1151. GetPlayerName(playerid, Adminname, sizeof(Adminname));
  1152. GetPlayerName(player, Playername, sizeof(Playername));
  1153. if(sscanf(params, "us[64]", player,reason)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]");
  1154. if(!IsPlayerConnected(player))
  1155. return SendClientMessage(playerid, COLOR_GREY, "Player is not connected!");
  1156. format(str, sizeof(str), "'%s' has been banned by administrator '%s'. Reason: %s ", Playername, Adminname, reason);
  1157. SendClientMessageToAll(COLOR_RED, str);
  1158. Ban(player);
  1159. }
  1160. else
  1161. {
  1162. SendClientMessage(playerid, COLOR_GREY, "You have to be level 5 to use that command!");
  1163. }
  1164. return 1;
  1165. }
  1166.  
  1167. CMD:healme(playerid, params[])
  1168. {
  1169. if(PlayerInfo[playerid][pAdmin] < 5)
  1170. {
  1171. SetPlayerHealth(playerid, 100);
  1172. SendClientMessage(playerid, COLOR_GREY, "Health has been restored to 100.");
  1173. }
  1174. else
  1175. {
  1176. SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use that command!");
  1177. }
  1178. return 1;
  1179. }
  1180.  
  1181. CMD:heal(playerid, params[])
  1182. {
  1183. new player;
  1184. if(PlayerInfo[playerid][pAdmin] < 2) return 0;
  1185. if(sscanf(params,"u", player)) return SendClientMessage(playerid, 0xFFFFFFF,"SERVER : Correct usage: /heal [PlayerID]");
  1186. if(!IsPlayerConnected(player)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to the server!");
  1187. SetPlayerHealth(player, 100);
  1188. return 1;
  1189. }
  1190.  
  1191. CMD:givemoney(playerid, params[])
  1192. {
  1193. new giveplayerid, moneys1, playername[25], giveplayer[25], string[256];
  1194. if (PlayerInfo[playerid][pAdmin] < 3) return 0;
  1195. if (sscanf(params, "ud", giveplayerid, moneys1)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /givemoney [playerid] [amount]");
  1196. if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Error: Inactive player id!");
  1197. if (moneys1 < 1 || moneys1 > MaxMoney) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid amount.");
  1198. GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1199. GetPlayerName(giveplayerid, giveplayer, MAX_PLAYER_NAME);
  1200. GivePlayerMoney(giveplayerid, moneys1);
  1201. if (giveplayerid != playerid)
  1202. {
  1203. format(string, 128, "An admin has given you $%d.", moneys1);
  1204. SendClientMessage(giveplayerid, COLOR_SILVER, string);
  1205. format(string, 128, "You have given %s $%d.", giveplayer, moneys1);
  1206. SendClientMessage(playerid, COLOR_SILVER, string);
  1207. }
  1208. else
  1209. {
  1210. format(string, 128, "You have gave yourself $%d.", moneys1);
  1211. SendClientMessage(playerid, COLOR_SILVER, string);
  1212. }
  1213. /*if (PlayerInfo[playerid][pAdmin] < 7)
  1214. {
  1215. format(string, 128, "Admin Log: %s has given player %s (Id%d) $%d.", playername, giveplayer, giveplayerid, moneys1);
  1216. SendMessageToAdmins(COLOR_ADMIN, string);
  1217. }
  1218. printf("[givemoney] %s has given player %s (Id%d) $%d.", playername, giveplayer, giveplayerid, moneys1);
  1219. new str[256];
  1220. format(str, sizeof(str), "%s has given player %s (Id%d) $%d.\r\n", playername, giveplayer, giveplayerid, moneys1);
  1221. new File: file = fopen("Alog.cfg", io_append);
  1222. fwrite(file, str);
  1223. fclose(file);*/
  1224. return 1;
  1225. }
  1226.  
  1227. CMD:setmoney(playerid, params[])
  1228. {
  1229. new giveplayerid, moneys1, playername[25], giveplayer[25], string[256];
  1230. if (PlayerInfo[playerid][pAdmin] < 3) return 0;
  1231. if (sscanf(params, "ud", giveplayerid, moneys1)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /setmoney [playerid] [amount]");
  1232. if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Error: Inactive player id!");
  1233. if (moneys1 < 0 || moneys1 > MaxMoney) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid amount.");
  1234. GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1235. GetPlayerName(giveplayerid, giveplayer, MAX_PLAYER_NAME);
  1236. ResetPlayerMoney(giveplayerid);
  1237. GivePlayerMoney(giveplayerid, moneys1);
  1238. if (giveplayerid != playerid)
  1239. {
  1240. format(string, 128, "Your money has been set to $%d by an admin.", moneys1);
  1241. SendClientMessage(giveplayerid, COLOR_SILVER, string);
  1242. format(string, 128, "You have set %s's money to $%d.", giveplayer, moneys1);
  1243. SendClientMessage(playerid, COLOR_SILVER, string);
  1244. }
  1245. else
  1246. {
  1247. format(string, 128, "You have set your money to $%d.", moneys1);
  1248. SendClientMessage(playerid, COLOR_SILVER, string);
  1249. }
  1250. /*if (PlayerInfo[playerid][pAdmin] < 3)
  1251. {
  1252. format(string, 128, "Admin Log: %s has set player %s's (Id%d) money to $%d.", playername, giveplayer, giveplayerid, moneys1);
  1253. SendMessageToAdmins(COLOR_ADMIN, string);
  1254. }
  1255. printf("[setmoney] %s has set player %s's (Id%d) money to $%d.", playername, giveplayer, giveplayerid, moneys1);
  1256. new str[256];
  1257. format(str, sizeof(str), "%s has set player %s's (Id%d) money to $%d.\r\n", playername, giveplayer, giveplayerid, moneys1);
  1258. new File: file = fopen("Alog.cfg", io_append);
  1259. fwrite(file, str);
  1260. fclose(file);*/
  1261. return 1;
  1262. }
  1263.  
  1264. CMD:sethealth(playerid, params[])
  1265. {
  1266. new giveplayerid, moneys1, giveplayer[25], playername[25], string[256];
  1267. if (PlayerInfo[playerid][pAdmin] < 3) return 0;
  1268. if (sscanf(params, "ud", giveplayerid, moneys1)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /sethealth [playerid] [health]");
  1269. if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Error: Inactive player id!");
  1270. if (moneys1 < 0 || moneys1 > 100) return SendClientMessage(playerid, COLOR_RED, "Invalid amount! Select from 0 - 100.");
  1271. GetPlayerName(giveplayerid, giveplayer, MAX_PLAYER_NAME);
  1272. GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1273. SetPlayerHealth(giveplayerid, float(moneys1));
  1274. if (giveplayerid != playerid)
  1275. {
  1276. format(string, 128, "Your health has been set to %d by an admin.", moneys1);
  1277. SendClientMessage(giveplayerid, COLOR_SILVER, string);
  1278. format(string, 128, "Your have set %s's health to %d.", giveplayer, moneys1);
  1279. SendClientMessage(playerid, COLOR_SILVER, string);
  1280. }
  1281. else
  1282. {
  1283. format(string, 128, "You have set your health to %d.", moneys1);
  1284. SendClientMessage(playerid, COLOR_SILVER, string);
  1285. }
  1286. /*if (PlayerInfo[playerid][pAdmin] < 3)
  1287. {
  1288. format(string, 128, "Admin Log: %s has set player %s's (Id%d) health to %d.", playername, giveplayer, giveplayerid, moneys1);
  1289. SendMessageToAdmins(COLOR_ADMIN, string);
  1290. }
  1291. printf("[sethealth] %s has set player %s's (Id%d) health to %d.", playername, giveplayer, giveplayerid, moneys1);
  1292. new str[256];
  1293. format(str, sizeof(str), "%s has set player %s's (Id%d) health to %d.\r\n", playername, giveplayer, giveplayerid, moneys1);
  1294. new File: file = fopen("Alog.cfg", io_append);
  1295. fwrite(file, str);
  1296. fclose(file);*/
  1297. return 1;
  1298. }
  1299.  
  1300. CMD:setarmour(playerid, params[])
  1301. {
  1302. new giveplayerid, moneys1, giveplayer[25], playername[25], string[256];
  1303. if (PlayerInfo[playerid][pAdmin] < 3) return 0;
  1304. if (sscanf(params, "ud", giveplayerid, moneys1)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /setarmor [playerid] [armor]");
  1305. if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Error: Inactive player id!");
  1306. if (moneys1 < 0 || moneys1 > 100) return SendClientMessage(playerid, COLOR_RED, "Invalid amount! Select from 0 - 100.");
  1307. GetPlayerName(giveplayerid, giveplayer, MAX_PLAYER_NAME);
  1308. GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1309. SetPlayerArmour(giveplayerid, float(moneys1));
  1310. if (giveplayerid != playerid)
  1311. {
  1312. format(string, 128, "Your armor has been set to %d by an admin.", moneys1);
  1313. SendClientMessage(giveplayerid, COLOR_SILVER, string);
  1314. format(string, 128, "Your have set %s's armor to %d.", giveplayer, moneys1);
  1315. SendClientMessage(playerid, COLOR_SILVER, string);
  1316. }
  1317. else
  1318. {
  1319. format(string, 128, "You have set your armor to %d.", moneys1);
  1320. SendClientMessage(giveplayerid, COLOR_SILVER, string);
  1321. }
  1322. /*if (PlayerInfo[playerid][pAdmin] < 3)
  1323. {
  1324. format(string, 128, "Admin Log: %s has set player %s's (Id%d) armor to %d.", playername, giveplayer, giveplayerid, moneys1);
  1325. SendMessageToAdmins(COLOR_ADMIN, string);
  1326. }
  1327. printf("[setarmor] %s has set player %s's (Id%d) armor to %d.", playername, giveplayer, giveplayerid, moneys1);
  1328. new str[256];
  1329. format(str, sizeof(str), "%s has set player %s's (Id%d) armour to %d.\r\n", playername, giveplayer, giveplayerid, moneys1);
  1330. new File: file = fopen("Alog.cfg", io_append);
  1331. fwrite(file, str);
  1332. fclose(file);*/
  1333. return 1;
  1334. }
  1335.  
  1336. CMD:clear(playerid,params[])
  1337. {
  1338. if( PlayerInfo[ playerid ][ pAdmin ] < 1 ) return SendClientMessage( playerid, COLOR_RED, "ERROR: You must be level 1 to use this command!" );
  1339. {
  1340. for( new i = 0; i <= 100; i ++ ) SendClientMessageToAll( COLOR_WHITE, "The chat has been cleared by an admin." );
  1341. }
  1342. return 1;
  1343. }
  1344.  
  1345. CMD:restart(playerid, params[])
  1346. {
  1347. if(PlayerInfo[playerid][pAdmin] < 7) return 0;
  1348. new str[256], reson[256];
  1349. if (sscanf(params, "s", reson)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /restart [reason]");
  1350. format(str, sizeof(str), "*The server has been restarted, Reason: %s.", reson);
  1351. SendClientMessageToAll(COLOR_RED, str);
  1352. SetTimer("Restart", 500, 0);
  1353. return 1;
  1354. }
  1355.  
  1356. CMD:v(playerid, params[])
  1357. {
  1358. if(PlayerInfo[playerid][pAdmin] < 3) return 0;
  1359. if(IsNumeric(params))
  1360. {
  1361. if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>.");
  1362. if(params[0] < 400 || params[0] > 611) return SendClientMessage(playerid, -1, "modelid invalid, usage: /veh <modelid 400-611>.");
  1363. CreateVehicleEx(playerid, params[0]);
  1364. }
  1365. else
  1366. {
  1367. new name_vehicle[30], i_create_vehicle;
  1368. if(sscanf(params, "s[30]", name_vehicle)) return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>.");
  1369. i_create_vehicle = GetModelVehicle(name_vehicle);
  1370. if(i_create_vehicle < 400 || i_create_vehicle > 611) return SendClientMessage(playerid, -1, "name invalid, usage: /veh <name correct>.");
  1371. CreateVehicleEx(playerid, i_create_vehicle);
  1372. }
  1373. return true;
  1374. }
  1375.  
  1376. CMD:gotopos(playerid, params[])
  1377. {
  1378. if(PlayerInfo[playerid][pAdmin] < 7) return 0;
  1379. new Float:x, Float:y, Float:z, interior;
  1380. if(sscanf(params, "fffd", x, y, z, interior)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /gotopos <x> <y> <z> <interior>");
  1381. SetPlayerInterior(playerid, interior);
  1382. SetPlayerPos(playerid, x, y, z);
  1383. return 1;
  1384. }
  1385.  
  1386. CMD:pos(playerid, params[])
  1387. {
  1388. new string[256];
  1389. if (PlayerInfo[playerid][pAdmin] < 7) return 0;
  1390. new Float:x, Float:y, Float:z, Float:a;
  1391. if (!IsPlayerInAnyVehicle(playerid))
  1392. {
  1393. GetPlayerPos(playerid, x, y, z);
  1394. GetPlayerFacingAngle(playerid, a);
  1395. }
  1396. else
  1397. {
  1398. GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  1399. GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  1400. }
  1401. format(string, 128, "X: %.3f, Y: %.3f, Z: %.3f, A: %.1f", x, y, z, a);
  1402. SendClientMessage(playerid, COLOR_WHITE, string);
  1403. return 1;
  1404. }
  1405.  
  1406. CMD:ac(playerid, params[])
  1407. {
  1408. new string[172];
  1409. if(PlayerInfo[playerid][pAdmin] < 1) return 0;
  1410. if(isnull(params)) return SendClientMessage(playerid, -1, "Please use /ac [Message]");
  1411. new PName[MAX_PLAYER_NAME+1];
  1412. GetPlayerName(playerid, PName, sizeof(PName));
  1413. format(string, sizeof(string), "AdminsChat %s: %s", PName, params);
  1414. SendMessageToAdmins(COLOR_RED, string);
  1415. return 1;
  1416. }
  1417.  
  1418. CMD:asay(playerid, params[])
  1419. {
  1420. if(PlayerInfo[playerid][pAdmin] < 1) return 0;
  1421. new text[128];
  1422. if(sscanf(params, "s[128]",text)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /asay [text]");
  1423. new string[128];
  1424. new pName[128];
  1425. GetPlayerName(playerid,pName,128);
  1426. format(string,sizeof string,"[ADMIN]%s: %s",pName,text);
  1427. SendClientMessageToAll(COLOR_GREEN,string);
  1428. return 1;
  1429. }
  1430.  
  1431. CMD:admins(playerid, params[])
  1432. {
  1433. SendClientMessage(playerid, COLOR_BLUE, "Online Admins");
  1434. for(new i = 0; i < MAX_PLAYERS; i++)
  1435. {
  1436. if(PlayerInfo[i][pAdmin] >= 1)
  1437. {
  1438. new string[128], pname[24];
  1439. GetPlayerName(i, pname, sizeof(pname));
  1440. format(string, sizeof(string), "%s {FFFFFF} Level: %d (ID:%d)", pname, PlayerInfo[i][pAdmin], i);
  1441. SendClientMessage(playerid, COLOR_RED, string);
  1442. }
  1443. }
  1444. return 1;
  1445. }
  1446. CMD:weapons(playerid, params[])
  1447. {
  1448. {
  1449. ShowPlayerDialog(playerid, WEAPON_SHOP, DIALOG_STYLE_LIST, "Weapons Packages", "{008800}Package 1 {FF0000} Price : $10000\n{008800}Package 2 {FF0000} Price : $11000", "Select", "Exit");
  1450. return 1;
  1451. }
  1452. }
  1453.  
  1454. /*CMD:playsong(playerid, params[])
  1455. {
  1456. new options[128];
  1457. if(sscanf(params, "s[128]",options))
  1458. {
  1459. SendClientMessage(playerid, COLOR_WHITE, "Usage: /playsong [Wine Or Beer]");
  1460. SendClientMessage(playerid, COLOR_SILVER, "{00FF00}Despacito, Closer");
  1461. return 1;
  1462. }
  1463. else if(!strcmp(options, "Despacito", true, 5))
  1464. {
  1465. PlayAudioStreamForPlayer(playerid, "https://www.youtube.com/watch?v=kJQP7kiw5Fk");
  1466. SendClientMessage(playerid, COLOR_WHITE, "Despacito Song has been started");
  1467. }
  1468. else if(!strcmp(options, "Closer", true, 5))
  1469. {
  1470. PlayAudioStreamForPlayer(playerid, "https://www.youtube.com/watch?v=PT2_F-1esPk");
  1471. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Closer Song has been started");
  1472. }
  1473. else SendClientMessage(playerid, COLOR_RED, "Invalid Option.");
  1474. return 1;
  1475. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement