HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "Kerdezz-Felelek"
  8. #define VERSION "1.0"
  9. #define AUTHOR "DeRoiD"
  10.  
  11. new Nyertes, Nyeremeny[33], Kepesseg[33]
  12. new Kerdes[512], Megoldas[512]
  13. new ElozoKerdes[512]
  14. new bool:Jatek
  15.  
  16. new SajatKerdes[512], SajatValasz[512]
  17.  
  18. new cvar_ido, cvar_kiiras, cvar_esely,
  19. cvar_hp, cvar_hp_ertek, cvar_gyorsasag, cvar_gyorsasag_ertek,
  20. cvar_teleport, cvar_sebzes, cvar_sebzes_ertek,
  21. cvar_halhatatlan, cvar_lathatatlan, cvar_kepesseg_ido, cvar_frag, cvar_frag_ertek, cvar_flash
  22.  
  23. public plugin_init() {
  24. register_plugin(PLUGIN, VERSION, AUTHOR)
  25. register_clcmd("say", "UzenetLekerese")
  26. register_clcmd("say_team", "UzenetLekerese")
  27.  
  28. register_clcmd("KERDES", "UjKerdes")
  29. register_clcmd("VALASZ", "UjValasz")
  30.  
  31. cvar_esely = register_cvar("cvar_esely", "1")
  32. cvar_ido = register_cvar("cvar_ido", "60.0")
  33. cvar_kiiras = register_cvar("cvar_kiiras", "1")
  34.  
  35. cvar_hp = register_cvar("cvar_hp", "1")
  36. cvar_hp_ertek = register_cvar("cvar_hp_ertek", "50")
  37. cvar_gyorsasag = register_cvar("cvar_gyorsasag", "1")
  38. cvar_gyorsasag_ertek = register_cvar("cvar_gyorsasag_ertek", "400.0")
  39. cvar_teleport = register_cvar("cvar_teleport", "1")
  40. cvar_sebzes = register_cvar("cvar_sebzes", "1")
  41. cvar_sebzes_ertek = register_cvar("cvar_sebzes_ertek", "10.0")
  42. cvar_halhatatlan = register_cvar("cvar_halhatatlan", "1")
  43. cvar_lathatatlan = register_cvar("cvar_lathatatlan", "1")
  44. cvar_kepesseg_ido = register_cvar("cvar_kepesseg_ido", "20.0")
  45. cvar_frag = register_cvar("cvar_frag", "1")
  46. cvar_frag_ertek = register_cvar("cvar_frag_ertek", "5")
  47. cvar_flash = register_cvar("cvar_flash", "1")
  48.  
  49. register_event("ScreenFade", "Flash", "be", "4=255", "5=255", "6=255", "7>199")
  50. register_event("CurWeapon", "Fegyverek", "be", "1=1")
  51. register_logevent("KorKezdes", 2, "1=Round_Start")
  52. RegisterHam(Ham_TakeDamage, "player", "Sebzes", 0)
  53.  
  54. register_impulse(201, "Teleportalas")
  55. set_task(180.0, "Uzenetek")
  56. }
  57. public Sebzes(victim, inflictor, attacker, Float:damage, damage_type)
  58. {
  59. if(Nyeremeny[attacker] == 4 && Nyertes == attacker)
  60. SetHamParamFloat(4, damage * get_pcvar_float(cvar_sebzes_ertek))
  61. return HAM_IGNORED
  62. }
  63. public Uzenetek()
  64. {
  65. print_color(0, "!g[Kerdezz-Felelek]!y Ezen a szerveren !gKerdezz-Felelek!y plugin fut. (by !gDeRoiD!y)!")
  66. set_task(180.0, "Uzenetek")
  67. }
  68. public Fegyverek(id)
  69. {
  70. if(Nyeremeny[id] == 2 && Nyertes == id)
  71. {
  72. set_user_maxspeed(id, get_pcvar_float(cvar_gyorsasag_ertek))
  73. }
  74. }
  75. public KorKezdes()
  76. {
  77. Jatek = false
  78. Nyertes = 0
  79. new Szam = random_num(1, get_pcvar_num(cvar_esely))
  80.  
  81. if(Szam == get_pcvar_num(cvar_esely))
  82. {
  83. Betoltes()
  84. }
  85. }
  86. public UzenetLekerese(id)
  87. {
  88. new Uzenet[512]
  89.  
  90. read_args(Uzenet, 512)
  91. remove_quotes(Uzenet)
  92.  
  93. if(Jatek){
  94. if(equal(Uzenet, Megoldas))
  95. {
  96. new NyertesNev[64]
  97. get_user_name(id, NyertesNev, 63)
  98. Jatek = false
  99. GyoztesKiiras(NyertesNev)
  100. Nyertes = id
  101. NyeremenySorsolasa(id)
  102. }
  103. }
  104. else
  105. {
  106. if(equal(Uzenet, "/kerdes") && get_user_flags(id) & ADMIN_BAN)
  107. {
  108. KerdezzFelelekMenu(id)
  109. }
  110. }
  111. }
  112. public GyoztesKiiras(NyertesNev[64])
  113. {
  114. if(get_pcvar_num(cvar_kiiras) == 0){
  115. client_print(0, print_center, "Helyes valaszt adta %s", NyertesNev)
  116. }
  117. else if(get_pcvar_num(cvar_kiiras) == 1)
  118. {
  119. set_hudmessage(255, 255, 255, -1.0, 0.20, 0, 6.0, 5.0)
  120. show_hudmessage(0, "Helyes valaszt adta %s", NyertesNev)
  121. }
  122. }
  123. public NyeremenySorsolasa(id)
  124. {
  125. switch (random_num(1,8))
  126. {
  127. case 1 :
  128. {
  129. if(get_pcvar_num(cvar_hp) == 1)
  130. {
  131. Nyeremeny[id] = 1
  132. }
  133. else
  134. set_task(0.1, "NyeremenySorsolasa", id)
  135. }
  136. case 2 :
  137. {
  138. if(get_pcvar_num(cvar_gyorsasag) == 1)
  139. {
  140. Nyeremeny[id] = 2
  141. }
  142. else
  143. set_task(0.1, "NyeremenySorsolasa", id)
  144. }
  145. case 3 :
  146. {
  147. if(get_pcvar_num(cvar_teleport) == 1)
  148. {
  149. Nyeremeny[id] = 3
  150. }
  151. else
  152. set_task(0.1, "NyeremenySorsolasa", id)
  153. }
  154. case 4 :
  155. {
  156. if(get_pcvar_num(cvar_sebzes) == 1)
  157. {
  158. Nyeremeny[id] = 4
  159. }
  160. else
  161. set_task(0.1, "NyeremenySorsolasa", id)
  162. }
  163. case 5 :
  164. {
  165. if(get_pcvar_num(cvar_halhatatlan) == 1)
  166. {
  167. Nyeremeny[id] = 5
  168. }
  169. else
  170. set_task(0.1, "NyeremenySorsolasa", id)
  171. }
  172. case 6 :
  173. {
  174. if(get_pcvar_num(cvar_lathatatlan) == 1)
  175. {
  176. Nyeremeny[id] = 6
  177. }
  178. else
  179. set_task(0.1, "NyeremenySorsolasa", id)
  180. }
  181. case 7 :
  182. {
  183. if(get_pcvar_num(cvar_frag) == 1)
  184. {
  185. Nyeremeny[id] = 7
  186. }
  187. else
  188. set_task(0.1, "NyeremenySorsolasa", id)
  189. }
  190. case 8 :
  191. {
  192. if(get_pcvar_num(cvar_flash) == 1)
  193. {
  194. Nyeremeny[id] = 8
  195. }
  196. else
  197. set_task(0.1, "NyeremenySorsolasa", id)
  198. }
  199. }
  200. if(Nyeremeny[id] != 0)
  201. NyeremenyAdas(id, Nyeremeny[id])
  202. }
  203. public NyeremenyAdas(id, Nyeremenyek)
  204. {
  205. new name[32]
  206. get_user_name(id, name, charsmax(name))
  207. if(Nyeremenyek == 1)
  208. {
  209. print_color(0, "!g[Kerdezz-Felelek]!t %s!y nyert %d HPt!", name, get_pcvar_num(cvar_hp_ertek))
  210. set_user_health(id, get_user_health(id)+get_pcvar_num(cvar_hp_ertek))
  211. }
  212. else if(Nyeremenyek == 2)
  213. {
  214. set_task(get_pcvar_float(cvar_kepesseg_ido), "KepessegOff", id)
  215. print_color(0, "!g[Kerdezz-Felelek]!t %s!y nyert %3.0f sebesseget!", name, get_pcvar_float(cvar_gyorsasag_ertek)-250.0)
  216. set_user_maxspeed(id, get_pcvar_float(cvar_gyorsasag_ertek))
  217. }
  218. else if(Nyeremenyek == 3)
  219. {
  220. set_task(get_pcvar_float(cvar_kepesseg_ido), "KepessegOff", id)
  221. print_color(0, "!g[Kerdezz-Felelek]!t %s!y oda teleportalhat ahova nezz!(%3.0f masodpercig)", name, get_pcvar_float(cvar_kepesseg_ido))
  222. }
  223. else if(Nyeremenyek == 4)
  224. {
  225. set_task(get_pcvar_float(cvar_kepesseg_ido), "KepessegOff", id)
  226. print_color(0, "!g[Kerdezz-Felelek]!t %s!y nyert %3.0f sebzest!", name, get_pcvar_float(cvar_sebzes_ertek))
  227. }
  228. else if(Nyeremenyek == 5)
  229. {
  230. set_user_godmode(id, 1)
  231. set_task(get_pcvar_float(cvar_kepesseg_ido), "KepessegOff", id)
  232. print_color(0, "!g[Kerdezz-Felelek]!t %s!y halhatatlan %3.0f masodpercig!", name, get_pcvar_float(cvar_kepesseg_ido))
  233. }
  234. else if(Nyeremenyek == 6)
  235. {
  236. set_task(get_pcvar_float(cvar_kepesseg_ido), "KepessegOff", id)
  237. print_color(0, "!g[Kerdezz-Felelek]!t %s!y lathatatlan %3.0f masodpercig!", name, get_pcvar_float(cvar_kepesseg_ido))
  238. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
  239. }
  240. else if(Nyeremenyek == 7)
  241. {
  242. print_color(0, "!g[Kerdezz-Felelek]!t %s!y kapott %d fraget!", name, get_pcvar_num(cvar_frag_ertek))
  243. set_user_frags(id, get_user_frags(id)+get_pcvar_num(cvar_frag_ertek))
  244. }
  245. else if(Nyeremenyek == 8)
  246. {
  247. print_color(0, "!g[Kerdezz-Felelek]!t %s!y nem lehet flashelni %3.0f masodpercig!", name, get_pcvar_float(cvar_kepesseg_ido))
  248. set_user_frags(id, get_user_frags(id)+get_pcvar_num(cvar_frag_ertek))
  249. }
  250. }
  251. public KepessegOff(id)
  252. {
  253. if(Nyeremeny[id] == 6)
  254. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
  255. Nyeremeny[id] = 0
  256. if(Nyeremeny[id] == 5)
  257. set_user_godmode(id, 0)
  258. print_color(id, "!g[Kerdezz-Felelek]!t Lejart az ido!")
  259. }
  260. public Betoltes()
  261. {
  262. new fajl[192]
  263. formatex(fajl, charsmax(fajl), "addons/amxmodx/configs/kerdesek.ini")
  264. new sor = file_size(fajl, 1)
  265.  
  266. new buff[256], len
  267. read_file(fajl, (random(sor)), buff, charsmax(buff), len)
  268. parse(buff, Kerdes, 512, Megoldas, 512)
  269.  
  270. if(equal(Kerdes, ElozoKerdes))
  271. {
  272. Betoltes()
  273. }
  274. else
  275. {
  276. set_task(get_pcvar_float(cvar_ido), "JatekLeallitasa", 0)
  277. Jatek = true
  278. KerdesInditasa()
  279. }
  280. }
  281. public JatekLeallitasa()
  282. Jatek = false
  283. public KerdesInditasa()
  284. {
  285. if(Jatek){
  286. if(get_pcvar_num(cvar_kiiras) == 0){
  287. client_print(0, print_center, "%s", Kerdes)
  288. }
  289. else if(get_pcvar_num(cvar_kiiras) == 1)
  290. {
  291. set_hudmessage(255, 255, 255, -1.0, 0.20, 0, 6.0, 1.0)
  292. show_hudmessage(0, "%s", Kerdes)
  293. }
  294. set_task(1.0, "KerdesInditasa")
  295. }
  296. else
  297. {
  298. remove_task()
  299. }
  300. }
  301. public Teleportalas(id)
  302. {
  303. if(!Kepesseg[id] && id == Nyertes && Nyeremeny[id] == 3)
  304. {
  305. new hely[3], ujhely[3]
  306.  
  307. get_user_origin(id, hely)
  308. get_user_origin(id, ujhely, 3)
  309.  
  310. hely[2] += 15;
  311. ujhely[0] += ( ( ujhely[0] - hely[0] > 0 ) ? -50 : 50)
  312. ujhely[1] += ( ( ujhely[1] - hely[1] > 0 ) ? -50 : 50)
  313. ujhely[2] += 40;
  314.  
  315. set_user_origin(id, ujhely)
  316.  
  317. new kordi[5]
  318. kordi[0] = id
  319. kordi[1] = hely[0]
  320. kordi[2] = hely[1]
  321. kordi[3] = hely[2]
  322. kordi[4] = ujhely[2]
  323.  
  324. set_task(0.1, "HelyEllenorzes", 1337 + id, kordi, 5)
  325. Kepesseg[id] = true
  326. return PLUGIN_HANDLED
  327. }
  328. else
  329. return PLUGIN_CONTINUE
  330. return PLUGIN_HANDLED
  331. }
  332. public Ujratoltes(id)
  333. Kepesseg[id] = false
  334. public HelyEllenorzes(kordi[])
  335. {
  336. new id = kordi[0]
  337.  
  338. new regihely[3], origin[3]
  339.  
  340. regihely[0] = kordi[1]
  341. regihely[1] = kordi[2]
  342. regihely[2] = kordi[3]
  343.  
  344. get_user_origin(id, origin)
  345.  
  346. if(kordi[4] == origin[2])
  347. {
  348. set_user_origin(id, regihely)
  349. }
  350. else
  351. set_task(1.0, "Ujratoltes", id)
  352. }
  353. public Flash(id)
  354. {
  355. if(Nyeremeny[id] == 8 && Nyertes == id)
  356. {
  357. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0},id)
  358. write_short(1)
  359. write_short(1)
  360. write_short(1)
  361. write_byte(0)
  362. write_byte(0)
  363. write_byte(0)
  364. write_byte(255)
  365. message_end()
  366. }
  367. }
  368. public KerdezzFelelekMenu(id) {
  369. if(get_user_flags(id) & ADMIN_BAN){
  370. new elso[64], masodik[64]
  371. format(elso, charsmax(elso), "Kerdes: %s", SajatKerdes)
  372. format(masodik, charsmax(masodik), "Valasz: %s^n", SajatValasz)
  373. new menu = menu_create("Kerdezz-Felelek 1.0", "KerdezzFelelekMenuh" )
  374. menu_additem(menu,elso,"1")
  375. menu_additem(menu,masodik,"2")
  376. if(!equal("", SajatKerdes) && !equal("", SajatValasz))
  377. menu_additem(menu,"Indit","3")
  378. menu_display(id, menu)
  379. }
  380. }
  381. public KerdezzFelelekMenuh(id, menu, item){
  382. if(item == MENU_EXIT)
  383. {
  384. menu_destroy(menu)
  385. return
  386. }
  387. new data[9], szName[64]
  388. new access, callback
  389. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  390. new key = str_to_num(data)
  391. switch(key)
  392. {
  393. case 1 : client_cmd(id, "messagemode KERDES")
  394. case 2 : client_cmd(id, "messagemode VALASZ")
  395. case 3 : {
  396. remove_task()
  397. Jatek = true
  398. Kerdes = SajatKerdes
  399. Megoldas = SajatValasz
  400. KerdesInditasa()
  401. }
  402. }
  403. }
  404.  
  405. public UjKerdes(id)
  406. {
  407. if(get_user_flags(id) & ADMIN_BAN){
  408. read_args(SajatKerdes, charsmax(SajatKerdes))
  409. remove_quotes(SajatKerdes)
  410. KerdezzFelelekMenu(id)
  411. }
  412. }
  413. public UjValasz(id)
  414. {
  415. if(get_user_flags(id) & ADMIN_BAN){
  416. read_args(SajatValasz, charsmax(SajatValasz))
  417. remove_quotes(SajatValasz)
  418. KerdezzFelelekMenu(id)
  419. }
  420. }
  421. stock print_color(const id, const input[], any:...)
  422. {
  423. new count = 1, players[32]
  424. static msg[191]
  425. vformat(msg, 190, input, 3)
  426.  
  427. replace_all(msg, 190, "!g", "^4")
  428. replace_all(msg, 190, "!y", "^1")
  429. replace_all(msg, 190, "!t", "^3")
  430.  
  431. if(id) players[0] = id; else get_players(players, count, "ch")
  432. {
  433. for (new i = 0; i < count; i++)
  434. {
  435. if (is_user_connected(players[i]))
  436. {
  437. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  438. write_byte(players[i])
  439. write_string(msg)
  440. message_end()
  441. }
  442. }
  443. }
  444. return PLUGIN_HANDLED
  445. }
  446. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  447. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  448. */
  449.