Guest User

wrongmissing

a guest
Oct 26th, 2012
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.07 KB | None | 0 0
  1. /* Aleksi's Tdm Gamemode */
  2. #include <a_samp>
  3. #include <Zcmd>
  4. #include <Sscanf2>
  5. #include <YSI\y_ini>
  6.  
  7. #if defined FILTERSCRIPT
  8. #else
  9. /* Color Defines */
  10. #define COLOR_GREEN 0x00BF06AA
  11. #define COLOR_PURPLE 0xFF00D0AA
  12. #define COLOR_YELLOW 0xFFFB00AA
  13. #define COLOR_WHITE 0xFFFFFFAA
  14. #define COLOR_RED 0xFF0000AA
  15. #define COLOR_GREY 0x9C9C9CAA
  16. /* Dialog Defines */
  17. #define DIALOG_REGISTER 1
  18. #define DIALOG_LOGIN 2
  19. #define DIALOG_SUCCESS_1 3
  20. #define DIALOG_SUCCESS_2 4
  21. #define PATH "/Users/%s.ini"
  22. #define DIALOG_RADIO 5
  23. #define DIALOG_MSG 6
  24. /* Killstreak */
  25. new KillStreak[MAX_PLAYERS];
  26.  
  27. main()
  28. {
  29. print("\n----------------------------------");
  30. print(" TDM By Aleksi");
  31. print("----------------------------------\n");
  32. }
  33.  
  34. #endif
  35.  
  36. public OnGameModeInit()
  37. {
  38. UsePlayerPedAnims();
  39. SetGameModeText("TDM By Aleksi");
  40. AddPlayerClass(105,2495.2610,-1688.8726,14.0776,0,24,250,26,100,32,150); // Grove Spawn
  41. AddPlayerClass(106,2495.2610,-1688.8726,14.0776,0,24,250,25,100,34,150); // Grove Spawn
  42. AddPlayerClass(107,2495.2610,-1688.8726,14.0776,0,31,250,29,100,18,5); // Grove Spawn
  43. AddPlayerClass(102,2168.3401,-1673.5699,15.0831,0,24,250,26,100,32,150); // Ballas Spawn
  44. AddPlayerClass(103,2168.3401,-1673.5699,15.0831,0,24,250,25,100,34,150); // Ballas Spawn
  45. AddPlayerClass(104,2168.3401,-1673.5699,15.0831,0,31,250,29,100,18,5); // Ballas Spawn
  46. CreateVehicle(426,2507.8481,-1677.3844,13.2045,326.5124,252,252,30); // Grove Car 1
  47. CreateVehicle(426,2510.4846,-1668.3409,13.1943,7.0573,252,252,30); // Grove Car 2
  48. CreateVehicle(426,2501.7634,-1655.1450,13.2064,65.2911,252,252,30); // Grove Car 3
  49. CreateVehicle(560,2186.0813,-1664.8429,14.4467,347.6702,150,150,30); // Ballas Sultan 1
  50. CreateVehicle(560,2184.6890,-1671.2732,14.1460,347.8608,150,150,30); // Ballas Sultan 2
  51. CreateVehicle(560,2183.3474,-1677.6812,13.8477,348.8291,150,150,30); // Ballas Sultan 3
  52. return 1;
  53. }
  54. /* Forwards */
  55. forward LoadUser_data(playerid,name[],value[]);
  56. /* Enums */
  57. enum pInfo
  58. {
  59. pPass,
  60. pScore,
  61. pAdmin,
  62. pCash,
  63. pKills,
  64. pDeaths,
  65. pCookies
  66. }
  67. new PlayerInfo[MAX_PLAYERS][pInfo];
  68. /* Stocks */
  69. stock UserPath(playerid)
  70. {
  71. new string[128],playername[MAX_PLAYER_NAME];
  72. GetPlayerName(playerid,playername,sizeof(playername));
  73. format(string,sizeof(string),PATH,playername);
  74. return string;
  75. }
  76.  
  77. /*Credits to Dracoblue*/
  78. stock udb_hash(buf[]) {
  79. new length=strlen(buf);
  80. new s1 = 1;
  81. new s2 = 0;
  82. new n;
  83. for (n=0; n<length; n++)
  84. {
  85. s1 = (s1 + buf[n]) % 65521;
  86. s2 = (s2 + s1) % 65521;
  87. }
  88. return (s2 << 16) + s1;
  89. }
  90. /* Stocks End*/
  91. public OnGameModeExit()
  92. {
  93. return 1;
  94. }
  95.  
  96. public OnPlayerRequestClass(playerid, classid)
  97. {
  98. SetPlayerPos(playerid,-1483.2732,2643.5129,58.7813);
  99. SetPlayerCameraPos(playerid,-1483.1754,2646.7676,58.7281);
  100. SetPlayerCameraLookAt(playerid,-1483.2732,2643.5129,58.7813);
  101. SetPlayerFacingAngle(playerid,0);
  102. if(classid == 0 || classid == 1 || classid == 2)
  103. {
  104. GameTextForPlayer(playerid,"~g~Grove",1000,5);
  105. }
  106. if(classid == 3 || classid == 4 || classid == 5)
  107. {
  108. GameTextForPlayer(playerid,"~p~Ballas",1000,5);
  109. }
  110. return 1;
  111. }
  112.  
  113. public OnPlayerConnect(playerid)
  114. {
  115. if(fexist(UserPath(playerid)))
  116. {
  117. INI_ParseFile(UserPath(playerid),"LoadUser_%s", .bExtra = true, .extra = playerid);
  118. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Type your password to login.","Login","Quit");
  119. }
  120. else
  121. {
  122. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Type your password to register new account","Register","Quit");
  123. }
  124. new string[64], pName[MAX_PLAYER_NAME];
  125. GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  126. format(string,sizeof string,"%s has joined server!",pName);
  127. SendClientMessageToAll(COLOR_GREY,string);
  128. SendClientMessage(playerid,COLOR_WHITE,"Welcome to Aleksi's TDM Server");
  129. KillStreak[playerid] = 0;
  130. return 1;
  131. }
  132.  
  133. public LoadUser_data(playerid,name[],value[])
  134. {
  135. INI_Open(UserPath(playerid));
  136. INI_Int("Password",PlayerInfo[playerid][pPass]);
  137. INI_Int("Score",PlayerInfo[playerid][pScore]);
  138. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  139. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  140. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  141. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  142. INI_Int("Cookies",PlayerInfo[playerid][pCookies]);
  143. return 1;
  144. }
  145.  
  146. public OnPlayerDisconnect(playerid, reason)
  147. {
  148. KillStreak[playerid] = 0;
  149. new string[64], pName[MAX_PLAYER_NAME];
  150. GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  151. format(string,sizeof string,"%s left from server!",pName);
  152. SendClientMessageToAll(COLOR_GREY,string);
  153. new INI:File = INI_Open(UserPath(playerid));
  154. INI_SetTag(File,"data");
  155. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  156. INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
  157. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  158. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  159. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  160. INI_WriteInt(File,"Cookies",PlayerInfo[playerid][pCookies]);
  161. INI_Close(File);
  162. return 1;
  163. }
  164.  
  165. public OnPlayerSpawn(playerid)
  166. {
  167. new classid = GetPlayerSkin(playerid);
  168. if(classid == 105 || classid == 106 || classid == 107)
  169. {
  170. SetPlayerTeam(playerid,0);
  171. SetPlayerColor(playerid,COLOR_GREEN);
  172. }
  173. if(classid == 102 || classid == 103 || classid == 104)
  174. {
  175. SetPlayerTeam(playerid,1);
  176. SetPlayerColor(playerid,COLOR_PURPLE);
  177. }
  178. return 1;
  179. }
  180.  
  181. public OnPlayerDeath(playerid, killerid, reason)
  182. {
  183. if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
  184. {
  185. KillStreak[killerid]++;
  186. }
  187. SendDeathMessage(killerid,playerid,reason);
  188. PlayerInfo[killerid][pKills]+= 1;
  189. SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid) + 1);
  190. PlayerInfo[killerid][pScore]+= 1;
  191. PlayerInfo[playerid][pDeaths]+= 1;
  192. SetPlayerWantedLevel(playerid,0);
  193. KillStreak[playerid] = 0;
  194. new str[256],PlayerName[MAX_PLAYER_NAME];
  195. GetPlayerName(killerid,PlayerName,sizeof(PlayerName));
  196. switch(KillStreak[killerid])
  197. {
  198. case 2:
  199. {
  200. format(str, sizeof(str), "~w~%s ~b~Doublekill!", PlayerName);
  201. GameTextForAll(str,4000,4);
  202. GivePlayerMoney(killerid,2000);
  203. SendClientMessage(killerid,COLOR_GREY,"$2000 for Doublekill");
  204. }
  205. case 3:
  206. {
  207. format(str, sizeof(str), "~w~%s ~b~Triplekill!", PlayerName);
  208. GameTextForAll(str,4000,4);
  209. GivePlayerMoney(killerid,5000);
  210. SendClientMessage(killerid,COLOR_GREY,"$5000 for Triplekill");
  211. }
  212. case 5:
  213. {
  214. format(str, sizeof(str), "~w~%s ~b~Multikill!", PlayerName);
  215. GameTextForAll(str,4000,4);
  216. GivePlayerMoney(killerid,10000);
  217. PlayerInfo[killerid][pCookies]+= 1;
  218. SendClientMessage(killerid,COLOR_GREY,"$10000 and 1 Cookie for Multikill");
  219. }
  220. case 10:
  221. {
  222. format(str, sizeof(str), "~w~%s ~b~Unstoppable ~w~10 ~b~Killstreak", PlayerName);
  223. GameTextForAll(str,4000,4);
  224. GivePlayerMoney(killerid,100000);
  225. PlayerInfo[killerid][pCookies]+= 5;
  226. SendClientMessage(killerid,COLOR_GREY,"$100,000 and 5 Cookie for 10 Killstreak");
  227. }
  228. }
  229. return 1;
  230. }
  231.  
  232. public OnPlayerText(playerid, text[])
  233. {
  234. return 1;
  235. }
  236.  
  237. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  238. {
  239. return 1;
  240. }
  241.  
  242. public OnPlayerExitVehicle(playerid, vehicleid)
  243. {
  244. return 1;
  245. }
  246.  
  247. public OnPlayerStateChange(playerid, newstate, oldstate)
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnPlayerEnterCheckpoint(playerid)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnPlayerLeaveCheckpoint(playerid)
  258. {
  259. return 1;
  260. }
  261.  
  262. public OnPlayerEnterRaceCheckpoint(playerid)
  263. {
  264. return 1;
  265. }
  266.  
  267. public OnPlayerLeaveRaceCheckpoint(playerid)
  268. {
  269. return 1;
  270. }
  271.  
  272. public OnPlayerRequestSpawn(playerid)
  273. {
  274. return 1;
  275. }
  276.  
  277. public OnPlayerPickUpPickup(playerid, pickupid)
  278. {
  279. return 1;
  280. }
  281.  
  282. public OnPlayerSelectedMenuRow(playerid, row)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnPlayerExitedMenu(playerid)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnPlayerUpdate(playerid)
  303. {
  304. SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
  305. return 1;
  306. }
  307.  
  308. public OnPlayerStreamIn(playerid, forplayerid)
  309. {
  310. return 1;
  311. }
  312.  
  313. public OnPlayerStreamOut(playerid, forplayerid)
  314. {
  315. return 1;
  316. }
  317.  
  318. public OnVehicleStreamIn(vehicleid, forplayerid)
  319. {
  320. return 1;
  321. }
  322.  
  323. public OnVehicleStreamOut(vehicleid, forplayerid)
  324. {
  325. return 1;
  326. }
  327.  
  328. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  329. {
  330. if(dialogid == DIALOG_RADIO)
  331. {
  332. if(response)
  333. {
  334. if(listitem == 0)
  335. {
  336. PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
  337. }
  338. if(listitem == 1)
  339. {
  340. PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377200");
  341. }
  342. if(listitem == 2)
  343. {
  344. PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=2057543");
  345. }
  346. if(listitem == 3)
  347. {
  348. PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=29469");
  349. }
  350. if(listitem == 4)
  351. {
  352. PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=695657");
  353. }
  354. if(listitem == 5)
  355. {
  356. StopAudioStreamForPlayer(playerid);
  357. }
  358. }
  359. }
  360. else if(dialogid == DIALOG_REGISTER)
  361. {
  362. if(!response) return Kick(playerid);
  363. if(response)
  364. {
  365. if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","You enter invalid password.\nType your password to register","Register","Quit");
  366. new INI:File = INI_Open(UserPath(playerid));
  367. INI_SetTag(File,"data");
  368. INI_WriteInt(File,"Password",udb_hash(inputtext));
  369. INI_WriteInt(File,"Score",0);
  370. INI_WriteInt(File,"Admin",0);
  371. INI_WriteInt(File,"Cash",0);
  372. INI_WriteInt(File,"Kills",0);
  373. INI_WriteInt(File,"Deaths",0);
  374. INI_WriteInt(File,"Cookies",0);
  375. INI_Close(File);
  376. ShowPlayerDialog(playerid,DIALOG_SUCCESS_1,DIALOG_STYLE_MSGBOX,"Register","Successfully registered new account! Relog to save your stats!","Ok","");
  377. }
  378. }
  379. else if(dialogid == DIALOG_LOGIN)
  380. {
  381. if(!response) return Kick(playerid);
  382. if(response)
  383. {
  384. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  385. {
  386. INI_ParseFile(UserPath(playerid),"LoadUser_%s", .bExtra = true, .extra = playerid);
  387. GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
  388. ShowPlayerDialog(playerid,DIALOG_SUCCESS_2,DIALOG_STYLE_MSGBOX,"Login","You have successfully logged in!","Ok","");
  389. }
  390. else
  391. {
  392. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","You have entered incorrect password.\nType Your password to login","Login","Quit");
  393. }
  394. return 1;
  395. }
  396. }
  397. else if(dialogid == DIALOG_MSG)
  398. {
  399. return 1;
  400. }
  401. return 1;
  402. }
  403.  
  404. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  405. {
  406. return 1;
  407. }
  408.  
  409. CMD:help(playerid,params[])
  410. {
  411. SendClientMessage(playerid,COLOR_YELLOW,"Help");
  412. SendClientMessage(playerid,COLOR_WHITE,"Type /Cmds to see player commands!");
  413. return 1;
  414. }
  415. CMD:cmds(playerid,params[])
  416. {
  417. SendClientMessage(playerid,COLOR_YELLOW,"Commands");
  418. SendClientMessage(playerid,COLOR_WHITE,"/kill /radio /stats");
  419. return 1;
  420. }
  421. CMD:kill(playerid,params[])
  422. {
  423. PlayerInfo[playerid][pDeaths]+= 1;
  424. SetPlayerHealth(playerid,0);
  425. SendClientMessage(playerid,COLOR_GREY,"You have commited suicide");
  426. return 1;
  427. }
  428. CMD:radio(playerid,params[])
  429. {
  430. ShowPlayerDialog(playerid,DIALOG_RADIO,DIALOG_STYLE_LIST,"Radio","1\n2\n3\n4\n5\nRadio Off","Select","Cancel");
  431. return 1;
  432. }
  433. CMD:stats(playerid,params[])
  434. {
  435. if(IsPlayerConnected(playerid))
  436. {
  437. new Kills = PlayerInfo[playerid][pKills];
  438. new Deaths = PlayerInfo[playerid][pDeaths];
  439. new Cookies = PlayerInfo[playerid][pCookies];
  440. new string[500];
  441. format(string,sizeof(string),"Kills: %d | Deaths: %d | Cookies: %d",Kills,Deaths,Cookies);
  442. ShowPlayerDialog(playerid,DIALOG_MSG,DIALOG_STYLE_MSGBOX,"Stats",string,"Ok","");
  443. }
  444. return 1;
  445. }
  446. CMD:adhelp(playerid,params[])
  447. {
  448. if(PlayerInfo[playerid][pAdmin] > 5)
  449. {
  450. SendClientMessage(playerid,COLOR_YELLOW,"Admin Commands");
  451. SendClientMessage(playerid,COLOR_WHITE,"/kick /ban");
  452. }
  453. else return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command");
  454. return 1;
  455. }
  456. CMD:kick(playerid,params[])
  457. {
  458. new pid;
  459. if(PlayerInfo[playerid][pAdmin] > 5)
  460. {
  461. if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "/kick <id> <reason>");
  462. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, 0xFFFFFFFF, "This player is not connected");
  463. new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
  464. GetPlayerName(pid, paramname, sizeof(paramname));
  465. GetPlayerName(playerid, adminname, sizeof(adminname));
  466. format(string, sizeof(string), "%s has been kicked by %s for: %s", paramname, adminname, params[2]);
  467. SendClientMessageToAll(COLOR_RED, string);
  468. Kick(pid);
  469. }
  470. else if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command!");
  471. return 1;
  472. }
  473. CMD:ban(playerid,params[])
  474. {
  475. new pid;
  476. if(PlayerInfo[playerid][pAdmin] > 5)
  477. {
  478. if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "/ban <id> <reason>");
  479. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, 0xFFFFFFFF, "This player is not connected");
  480. new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
  481. GetPlayerName(pid, paramname, sizeof(paramname));
  482. GetPlayerName(playerid, adminname, sizeof(adminname));
  483. format(string, sizeof(string), "%s has been kicked by %s for: %s", paramname, adminname, params[2]);
  484. SendClientMessageToAll(COLOR_RED, string);
  485. Ban(pid);
  486. }
  487. else if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command!");
  488. return 1;
  489. }
Advertisement
Add Comment
Please, Sign In to add comment