HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <colorchat>
  6. #include <nvault>
  7.  
  8. #define PLUGIN "Fragverseny Plugin"
  9. #define VERSION "1.3"
  10. #define AUTHOR "6almasok"
  11.  
  12. new kezdesido[32],befejido[32],ujvegeter[33][32],ujkezdoido[33][32],nobughud[33]
  13. new bool:fragverse[33]
  14. new bool:setdebug[33]
  15. new bool:nincstobb[33]
  16. new Hudbj,vault
  17. new oles[33]
  18.  
  19. new top1, top2, top3;
  20.  
  21. public plugin_init()
  22. {
  23. register_plugin(PLUGIN, VERSION, AUTHOR)
  24.  
  25. register_clcmd("say /fragverseny","verseny")
  26. register_clcmd("KEZDES_IDO", "kezd_kuld")
  27. register_clcmd("VEGETERESI_IDO", "befej_kuld")
  28. register_event("DeathMsg","death","a")
  29.  
  30. vault = nvault_open("frag_verseny")
  31.  
  32. Hudbj = CreateHudSyncObj()
  33. }
  34. public death()
  35. {
  36. new killer = read_data(1)
  37. new victim = read_data(2)
  38. if(fragverse[killer] == true)
  39. {
  40. if(killer == victim)
  41. {
  42. oles[killer]++
  43. }
  44. }
  45. }
  46. public verseny(id)
  47. {
  48. if(get_user_flags(id)&ADMIN_CFG)
  49. {
  50. new cim[121]
  51. new almenu[121]
  52. new almenu1[121]
  53. new Idoo[10];
  54. get_time("%H:%M:%S", Idoo, charsmax(Idoo))
  55. format(cim, charsmax(cim), "Fragverseny Beallitasok^n\rIdo: \d%s",Idoo)
  56. new menu = menu_create(cim, "ido_menu_h" )
  57.  
  58. if(fragverse[id] == false)
  59. {
  60. format(almenu, charsmax(almenu),"\wKezdesi Ido: [\d%s\w] \y(Pl.: 18:00)", ujkezdoido[id])
  61. menu_additem(menu,almenu,"1",0)
  62. format(almenu1, charsmax(almenu1),"\wVegeteresi Ido: [\d%s\w] \y(Pl.: 20:00)", ujvegeter[id])
  63. menu_additem(menu,almenu1,"2",0)
  64. menu_additem(menu,"\dFragverseny Inditasa","3",0)
  65. }
  66. else if(fragverse[id] == true)
  67. {
  68. format(almenu, charsmax(almenu),"\wJelenleg megy a fragverseny!", ujkezdoido[id])
  69. menu_additem(menu,almenu,"1",0)
  70. menu_additem(menu,"\rFragverseny Leallitasa!","3",0)
  71. }
  72. menu_setprop(menu, MPROP_EXIT, "Kilepes");
  73. menu_display(id, menu, 0);
  74. }
  75. }
  76. public ido_menu_h(id, menu, item)
  77. {
  78. if( item == MENU_EXIT )
  79. {
  80. menu_destroy(menu);
  81. return PLUGIN_HANDLED;
  82. }
  83. new data[9], szName[64], name[32]
  84. get_user_name(id, name, 31)
  85. new access, callback;
  86. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  87. new key = str_to_num(data);
  88.  
  89. switch(key)
  90. {
  91. case 1:
  92. {
  93. if(fragverse[id] == false)
  94. {
  95. client_cmd(id, "messagemode KEZDES_IDO")
  96. }
  97. else if(fragverse[id] == true)
  98. {
  99. verseny(id)
  100. }
  101. }
  102. case 2:
  103. {
  104. if(fragverse[id] == false)
  105. {
  106. client_cmd(id, "messagemode VEGETERESI_IDO")
  107. }
  108. else if(fragverse[id] == true)
  109. {
  110. verseny(id)
  111. }
  112. }
  113. case 3:
  114. {
  115. if(fragverse[id] == false)
  116. {
  117. idozonacheck(id)
  118. setdebug[id] = true
  119. nobughud[id] = 0
  120. nobughud[id]++
  121. idozonacheck(id)
  122. setdebug[id] = true
  123. nobughud[id] = 0
  124. nobughud[id]++
  125. ColorChat(id, GREEN,"^1Elinditottad a szamlalot, ha annyi lesz az ido amennyit beutottel akkor elindul a fragverseny!")
  126. }
  127. else if(fragverse[id] == true)
  128. {
  129. rakerdezes(id)
  130. }
  131. }
  132. }
  133. menu_destroy(menu)
  134. return PLUGIN_HANDLED
  135. }
  136. public rakerdezes(id)
  137. {
  138. new cim[121]
  139. format(cim, charsmax(cim), "\rBiztosan leakarod allitani a fragversenyt?")
  140. new menu = menu_create(cim, "rakerd_menu_h" )
  141.  
  142. menu_additem(menu,"Igen","1",0)
  143. menu_additem(menu,"Nem","2",0)
  144.  
  145. menu_setprop(menu, MPROP_EXIT, "Kilepes");
  146. menu_display(id, menu, 0);
  147. }
  148. public rakerd_menu_h(id, menu, item)
  149. {
  150. if( item == MENU_EXIT )
  151. {
  152. menu_destroy(menu);
  153. return PLUGIN_HANDLED;
  154. }
  155. new data[9], szName[64], name[32]
  156. get_user_name(id, name, 31)
  157. new access, callback;
  158. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  159. new key = str_to_num(data);
  160.  
  161. switch(key)
  162. {
  163. case 1:
  164. {
  165. if(fragverse[id] == true)
  166. {
  167. setdebug[id] = false
  168. fragverse[id] = false
  169. nobughud[id] = 0
  170. leallitotta(id)
  171. }
  172. }
  173. case 2:
  174. {
  175. verseny(id)
  176. }
  177. }
  178. menu_destroy(menu)
  179. return PLUGIN_HANDLED
  180. }
  181. public leallitotta(id)
  182. {
  183. set_hudmessage(255, 0, 0, -1.0, 0.15, 2, 6.0, 10.0)
  184. show_hudmessage(0, "Egy admin leallitotta a fragversenyt!^nNincs nyertes!")
  185. }
  186. public idozonacheck(id)
  187. {
  188. new Idoo[10];
  189. get_time("%H:%M", Idoo, charsmax(Idoo))
  190.  
  191. if(setdebug[id] == true)
  192. set_task(1.0, "idozonacheck",id);
  193.  
  194. if(nobughud[id] >= 1 && fragverse[id] == false)
  195. {
  196. set_hudmessage(0, 255, 0, -1.0, 0.10, 0, 1.0, 1.0)
  197. show_hudmessage(0, "Fragverseny elkezdodik %s-kor...",ujkezdoido[id])
  198. }
  199.  
  200. if(fragverse[id] == true)
  201. masikhud(id)
  202.  
  203.  
  204. if(equal(Idoo, ujkezdoido[id]))
  205. {
  206. fragverse[id] = true
  207. nobughud[id] = 0
  208. }
  209. else if(equal(Idoo, ujvegeter[id]))
  210. {
  211. setdebug[id] = false
  212. fragverse[id] = false
  213. nobughud[id] = 0
  214. setdebug[id] = false
  215. fragverse[id] = false
  216. vegevan(id)
  217. nobughud[id] = 0
  218. }
  219.  
  220. return PLUGIN_CONTINUE;
  221. }
  222. public vegevan(id)
  223. {
  224. nincstobb[id] = true
  225.  
  226. if(nincstobb[id] == true)
  227. {
  228. set_task(1.0, "alegjobbak",id);
  229. }
  230. }
  231. public alegjobbak(id)
  232. {
  233. nincstobb[id] = false
  234. new players[32], num;
  235. get_players(players, num);
  236. SortCustom1D(players, num, "sors_legelsouj")
  237.  
  238. top1 = players[0]
  239. top2 = players[1]
  240. top3 = players[2]
  241.  
  242. new top1neve[33], top2neve[33], top3neve[33];
  243. get_user_name(top1, top1neve, charsmax(top1neve))
  244. get_user_name(top2, top2neve, charsmax(top2neve))
  245. get_user_name(top3, top3neve, charsmax(top3neve))
  246.  
  247. if(num == 1)
  248. {
  249. set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 30.0)
  250. ShowSyncHudMsg(0, Hudbj, "A fragverseny veget ert^nHelyezesek:^n1. %s",top1neve)
  251. }
  252. else if(num == 2)
  253. {
  254. set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 30.0)
  255. ShowSyncHudMsg(0, Hudbj, "A fragverseny veget ert^nHelyezesek:^n1. %s || 2. %s",top1neve, top2neve)
  256. }
  257. else if(num >= 3)
  258. {
  259. set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 30.0)
  260. ShowSyncHudMsg(0, Hudbj, "A fragverseny veget ert^nHelyezesek:^n1. %s || 2. %s || 3. %s ",top1neve, top2neve, top3neve)
  261. }
  262. client_print(0, print_chat, "")
  263. }
  264. public sors_legelsouj(id1, id2)
  265. {
  266. if(oles[id1] > oles[id2])
  267. return -1;
  268. else if(oles[id1] < oles[id2])
  269. return 1;
  270.  
  271. return 0;
  272. }
  273. public masikhud(id)
  274. {
  275. if(fragverse[id] == true)
  276. {
  277. new players[32], num;
  278. get_players(players, num);
  279. SortCustom1D(players, num, "sors_legelso")
  280.  
  281. top1 = players[0]
  282. top2 = players[1]
  283. top3 = players[2]
  284.  
  285. new top1neve[33], top2neve[33], top3neve[33];
  286. get_user_name(top1, top1neve, charsmax(top1neve))
  287. get_user_name(top2, top2neve, charsmax(top2neve))
  288. get_user_name(top3, top3neve, charsmax(top3neve))
  289.  
  290. if(num == 1)
  291. {
  292. set_hudmessage(0, 85, 255, -1.0, 0.05, 0, 6.0, 1.0)
  293. ShowSyncHudMsg(0, Hudbj, "Jelenleg Fragverseny van, tart: %s-%s^n ^n1. %s KILL's: %d",ujkezdoido[id],ujvegeter[id],top1neve, oles[top1])
  294. }
  295. else if(num == 2)
  296. {
  297. set_hudmessage(0, 85, 255, -1.0, 0.05, 0, 6.0, 1.0)
  298. ShowSyncHudMsg(0, Hudbj, "Jelenleg Fragverseny van, tart: %s-%s^n ^n1. %s KILL's: %d || 2. %s KILL's: %d",ujkezdoido[id],ujvegeter[id], top1neve, oles[top1], top2neve, oles[top2])
  299. }
  300. else if(num >= 3)
  301. {
  302. set_hudmessage(0, 85, 255, -1.0, 0.05, 0, 6.0, 1.0)
  303. ShowSyncHudMsg(0, Hudbj, "Jelenleg Fragverseny van, tart: %s-%s^n ^n1. %s KILL's: %d || 2. %s KILL's: %d || 3. %s KILL's :%d",ujkezdoido[id],ujvegeter[id], top1neve, oles[top1], top2neve, oles[top2],top3neve, oles[top3])
  304. }
  305. }
  306. client_print(0, print_chat, "")
  307. }
  308. public sors_legelso(id1, id2)
  309. {
  310. if(oles[id1] > oles[id2])
  311. return -1;
  312. else if(oles[id1] < oles[id2])
  313. return 1;
  314.  
  315. return 0;
  316. }
  317. public kezd_kuld(id)
  318. {
  319. read_args(kezdesido, charsmax(kezdesido))
  320. remove_quotes(kezdesido)
  321. new hossz = strlen(kezdesido)
  322.  
  323. if(hossz < 5)
  324. {
  325. ColorChat(id, GREEN,"^1Helytelen karakter ^4formatum!")
  326. client_cmd(id, "messagemode KEZDES_IDO")
  327. if(hossz >= 6)
  328. {
  329. ColorChat(id, GREEN,"^1Helytelen karakter ^4formatum!")
  330. client_cmd(id, "messagemode KEZDES_IDO")
  331. }
  332. }
  333. else
  334. {
  335. ujkezdoido[id] = kezdesido
  336. verseny(id)
  337. }
  338. return PLUGIN_CONTINUE
  339. }
  340. public befej_kuld(id)
  341. {
  342. read_args(befejido, charsmax(befejido))
  343. remove_quotes(befejido)
  344. new hossz = strlen(befejido)
  345.  
  346. if(hossz < 5)
  347. {
  348. ColorChat(id, GREEN,"^1Helytelen karakter ^4formatum!")
  349. client_cmd(id, "messagemode VEGETERESI_IDO")
  350. if(hossz >= 6)
  351. {
  352. ColorChat(id, GREEN,"^1Helytelen karakter ^4formatum!")
  353. client_cmd(id, "messagemode VEGETERESI_IDO")
  354. }
  355. }
  356. else
  357. {
  358. ujvegeter[id] = befejido
  359. verseny(id)
  360. }
  361. return PLUGIN_CONTINUE
  362. }
  363. public mentes(id)
  364. {
  365. new vaultkey[64],vaultdata[256], name[32]
  366. get_user_name(id, name, 31)
  367. format(vaultkey,63,"%s-FRAG", name)
  368. format(vaultdata,255,"%i#", oles[id])
  369. nvault_set(vault,vaultkey,vaultdata)
  370. return PLUGIN_CONTINUE
  371. }
  372. public betoltes(id)
  373. {
  374. new vaultkey[64],vaultdata[256], name[32]
  375. get_user_name(id, name, 31)
  376. format(vaultkey,63,"%s-FRAG", name)
  377. format(vaultdata,255,"%i#",oles[id])
  378. nvault_get(vault,vaultkey,vaultdata,255)
  379. replace_all(vaultdata, 255, "#", " ")
  380. new m_o[32]
  381. parse(vaultdata, m_o, 31)
  382. oles[id] = str_to_num(m_o)
  383. return PLUGIN_CONTINUE
  384. }
  385. public client_disconnect(id)
  386. {
  387. if(fragverse[id] == false)
  388. {
  389. oles[id] = 0
  390. }
  391. mentes(id)
  392. }
  393. public client_connect(id)
  394. {
  395. if(fragverse[id] == false)
  396. {
  397. oles[id] = 0
  398. }
  399. betoltes(id)
  400. }