HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by CrB Studio v0.2 */
  2.  
  3. #include <amxmodx>
  4. #include <engine>
  5. #include <fakemeta>
  6. #include <fun>
  7. #include <amxmisc>
  8. #include <colorchat>
  9. #include <cstrike>
  10. #include <hamsandwich>
  11.  
  12. #define ice_model "models/jegkocka.mdl"
  13.  
  14. const PEV_NADE_TYPE = pev_flTimeStepSound
  15. const NADE_TYPE_CRB = 9987
  16. const Float:NADE_EXPLOSION_RADIUS = 240.0
  17.  
  18. new bool:fagyva[33]
  19. static Float:o[3]
  20. static ent[33]
  21.  
  22. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
  23.  
  24.  
  25. new cvar_dmg, cvar_range, cvar_speed
  26.  
  27. new SW_MODEL[64] = "models/crb/minden.mdl"
  28. new SW_SOUND[64] = "weapons/swfire1.wav"
  29. new explosion, trail, white
  30. new bool:lohet[33] = true
  31. public fm_startFrame(){
  32.  
  33. static id
  34. for (id = 1; id <= 32; id++)
  35. {
  36. if(is_user_connected(id))
  37. wp_forward(id)
  38. }
  39. }
  40. public wp_forward(player)
  41. {
  42. new wpnid = get_user_weapon(player)
  43. if(wpnid == CSW_MP5NAVY)
  44. {
  45. if((pev(player,pev_button)&IN_ATTACK2)){
  46. if(lohet[player] == true) {
  47. attack2(player)
  48. lohet[player]=false
  49. set_task(3.0, "ujralohet", player)
  50. }
  51. else client_print(player, print_center, "A fegyver újratölt kérlek várj!")
  52. }
  53.  
  54. }
  55. }
  56. public ujralohet(id){
  57. lohet[id] = true;
  58. client_print(id, print_center, "A fegyver készen áll!")
  59. }
  60. public attack2(player) {
  61. new sw = create_entity("info_target")
  62. if(sw == 0) return PLUGIN_CONTINUE
  63.  
  64. entity_set_string(sw, EV_SZ_classname, "sw_entityname")
  65. entity_set_model(sw, SW_MODEL)
  66.  
  67. entity_set_size(sw, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})
  68. entity_set_int(sw, EV_INT_movetype, MOVETYPE_FLY)
  69. entity_set_int(sw, EV_INT_solid, SOLID_BBOX)
  70.  
  71. new Float:vSrc[3]
  72. entity_get_vector(player, EV_VEC_origin, vSrc)
  73.  
  74. new Float:Aim[3],Float:origin[3]
  75. VelocityByAim(player, 64, Aim)
  76. entity_get_vector(player,EV_VEC_origin,origin)
  77.  
  78. vSrc[0] += Aim[0]
  79. vSrc[1] += Aim[1]
  80. entity_set_origin(sw, vSrc)
  81.  
  82. new Float:velocity[3], Float:angles[3]
  83. VelocityByAim(player, get_pcvar_num(cvar_speed), velocity)
  84.  
  85. entity_set_vector(sw, EV_VEC_velocity, velocity)
  86. vector_to_angle(velocity, angles)
  87. entity_set_vector(sw, EV_VEC_angles, angles)
  88. entity_set_edict(sw,EV_ENT_owner,player)
  89. entity_set_float(sw, EV_FL_takedamage, 1.0)
  90.  
  91. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  92. write_byte(TE_BEAMFOLLOW)
  93. write_short(sw)
  94. write_short(trail)
  95. write_byte(25)
  96. write_byte(5)
  97. write_byte(224)
  98. write_byte(224)
  99. write_byte(255)
  100. write_byte(255)
  101. message_end()
  102.  
  103. emit_sound(sw, CHAN_WEAPON, SW_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM)
  104. return PLUGIN_CONTINUE
  105. }
  106. public pfn_touch(ptr, ptd) {
  107. if(is_valid_ent(ptr)) {
  108. new classname[32]
  109. entity_get_string(ptr,EV_SZ_classname,classname,31)
  110. if(equal(classname, "sw_entityname")) {
  111. new Float:fOrigin[3]
  112. new iOrigin[3]
  113. entity_get_vector(ptr, EV_VEC_origin, fOrigin)
  114. FVecIVec(fOrigin,iOrigin)
  115. sw_radius_damage(ptr)
  116.  
  117. message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
  118. write_byte(TE_EXPLOSION)
  119. write_coord(iOrigin[0])
  120. write_coord(iOrigin[1])
  121. write_coord(iOrigin[2])
  122. write_short(explosion)
  123. write_byte(30)
  124. write_byte(15)
  125. write_byte(0)
  126. message_end()
  127.  
  128. message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
  129. write_byte(TE_BEAMCYLINDER)
  130. write_coord(iOrigin[0])
  131. write_coord(iOrigin[1])
  132. write_coord(iOrigin[2])
  133. write_coord(iOrigin[0])
  134. write_coord(iOrigin[1])
  135. write_coord(iOrigin[2]+200)
  136. write_short(white)
  137. write_byte(0)
  138. write_byte(1)
  139. write_byte(6)
  140. write_byte(8)
  141. write_byte(1)
  142. write_byte(255)
  143. write_byte(255)
  144. write_byte(192)
  145. write_byte(128)
  146. write_byte(5)
  147. message_end()
  148.  
  149. if(is_valid_ent(ptd)) {
  150. new classname2[32]
  151. entity_get_string(ptd,EV_SZ_classname,classname2,31)
  152.  
  153. if(equal(classname2,"func_breakable"))
  154. force_use(ptr,ptd)
  155. }
  156.  
  157. remove_entity(ptr)
  158. }
  159. }
  160. }
  161.  
  162.  
  163.  
  164. new const g_szPageSprite[] = "sprites/crb/papir.spr"
  165.  
  166. new const SZEROPREF[] = "CrB"
  167.  
  168. new const MODEL[ ] = "models/crb/santa_hat.mdl";
  169.  
  170.  
  171. new const iSound[] = "sound/crb/hohoho.mp3"
  172. new const szSound[] = "sound/crb/szel.mp3"
  173. new const csSound[] = "sound/crb/csengo.mp3"
  174.  
  175. new bool:lehet[33] = true
  176.  
  177. new spr, cvar, counter = 0, papirszam, talaltpapir[33], ajandekszam[33], voltszam[33], hocvar, szelzaj
  178. new bool:megvan
  179. new bool:generalva
  180. new bool:vanmodell[33]
  181. /* ajdandekok */
  182. new const ajandekleiras[][] = {
  183. "+100HP",
  184. "+100AP",
  185. "M4A1",
  186. "AK47",
  187. "AWP",
  188. "Makker",
  189. "Mikulás sapka",
  190. "Mikulás modell"
  191. }
  192. new const parancs[][] = {
  193. "", //100hp
  194. "", // 100ap
  195. "weapon_m4a1",
  196. "weapon_ak47",
  197. "weapon_awp",
  198. "", //makker
  199. "", //miki spai
  200. "" //miki modell
  201. }
  202. new const ammoname[] = {
  203. "", //100hp
  204. "", // 100ap
  205. CSW_M4A1, //m4
  206. CSW_AK47, //ak
  207. CSW_AWP, //awp
  208. "", //makker
  209. "", //miki spai
  210. "" //miki modell
  211. }
  212.  
  213. public papirbevalt(id)
  214. {
  215. if(talaltpapir[id] > 0)
  216. {
  217. switch(random_num(1,2))
  218. {
  219. case 1: {
  220. parancsfut(id)
  221. ColorChat(id, GREEN, "^4[^3%s^4] ^3Megkaptad az ajándékod :)",SZEROPREF)
  222. }
  223. case 2: {
  224. talaltpapir[id] = 0;
  225. ColorChat(id, GREEN, "^4[^3%s^4] ^3Ez most nem jott be :D", SZEROPREF)
  226. }
  227. }
  228. }
  229. else {
  230. ColorChat(id, GREEN, "^4[^3%s^4] ^3Neked nincs papírod gyorsan keress egyet :)",SZEROPREF)
  231. }
  232. return PLUGIN_CONTINUE
  233.  
  234. }
  235. public papireldob(id) {
  236. if(talaltpapir[id] > 0) {
  237. talaltpapir[id] = 0;
  238. ColorChat(id, GREEN, "^4[^3%s^4] ^3Eldobtad a papírod reméljük a következő nem ilyen sorsra jut :)",SZEROPREF)
  239. }
  240. else {
  241. ColorChat(id, GREEN, "^4[^3%s^4] ^3Neked nincs papírod gyorsan keress egyet :)",SZEROPREF)
  242. }
  243. }
  244. public szelsound()
  245. {
  246.  
  247. if(get_pcvar_num(szelzaj) == 1)
  248. {
  249. client_cmd(0, "mp3 play %s", szSound)
  250. }
  251. }
  252.  
  253.  
  254. public fw_PlayerSpawn(id)
  255. {
  256. if(vanmodell[id] == true)
  257. {
  258. switch(cs_get_user_team(id))
  259. {
  260. case CS_TEAM_CT: {
  261. cs_set_user_model(id, "crb_santa_ct")
  262. }
  263. case CS_TEAM_T: {
  264. cs_set_user_model(id, "crb_santa_t")
  265. }
  266. }
  267. }
  268. torol(id)
  269. }
  270. public szamlalo(id)
  271. {
  272. if(generalva == true) {
  273. counter++
  274. }
  275. if(megvan == true) {
  276. counter = 0
  277. }
  278. if(counter > 30 && generalva == true)
  279. {
  280. new target = find_ent_by_class(target, "papirka")
  281. engfunc(EngFunc_RemoveEntity, target)
  282. papirszam--
  283. counter = 0
  284. generalva = false
  285. }
  286. }
  287. public papircreate(id)
  288. {
  289. if(papirszam < 1) {
  290. new inifile[192], map[32]
  291. get_mapname(map, 31)
  292. new Float:papiro[3]
  293. formatex(inifile, charsmax(inifile), "addons/amxmodx/configs/csdm/%s.spawns.cfg", map)
  294. new elsopoz[8], masodikpoz[8], harmadikpoz[8]
  295. new lines = file_size(inifile, 1)
  296. if(lines > 0)
  297. {
  298. new randomLine = random(lines);
  299. new lineBuffer[256], len;
  300. read_file(inifile, randomLine, lineBuffer, charsmax(lineBuffer), len);
  301. parse(lineBuffer, elsopoz, 7, masodikpoz, 7, harmadikpoz, 7)
  302.  
  303. papiro[0] = str_to_float(elsopoz)
  304. papiro[1] = str_to_float(masodikpoz)
  305. papiro[2] = str_to_float(harmadikpoz)
  306. }
  307. new ent = create_entity("info_target")
  308. set_pev(ent, pev_classname, "papirka")
  309. entity_set_model(ent, g_szPageSprite)
  310. set_pev(ent,pev_solid, SOLID_BBOX)
  311. set_pev(ent, pev_movetype, MOVETYPE_TOSS)
  312. engfunc(EngFunc_SetOrigin, ent, papiro)
  313. engfunc(EngFunc_SetSize, ent, Float:{-10.0,-10.0,0.0}, Float:{10.0,10.0,25.0})
  314. engfunc(EngFunc_DropToFloor, ent)
  315. fm_set_rendering(ent, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16);
  316.  
  317. client_cmd(id, "mp3 play %s", csSound)
  318.  
  319. papirszam++
  320. megvan = false
  321. generalva = true
  322. }
  323. }
  324. public client_disconnect(id) torol(id)
  325. public client_putinserver(id)
  326. {
  327. lehet[id] = true
  328. lohet[id] = true
  329. fagyva[id] = false
  330. }
  331. public plugin_precache()
  332. {
  333. spr = precache_model("sprites/crb/ho.spr")
  334. precache_generic(iSound);
  335. precache_generic(szSound);
  336. precache_generic(csSound);
  337. precache_model("models/crb/slander.mdl")
  338. precache_model(g_szPageSprite);
  339. precache_model( "models/crb/santa_hat.mdl" );
  340. precache_model("models/player/crb_santa_ct/crb_santa_ct.mdl")
  341. precache_model("models/player/crb_santa_t/crb_santa_t.mdl")
  342.  
  343. precache_model(SW_MODEL)
  344. precache_sound(SW_SOUND)
  345. explosion = precache_model("sprites/crb/explo.spr")
  346. trail = precache_model("sprites/smoke.spr")
  347. white = precache_model("sprites/white.spr")
  348. engfunc(EngFunc_PrecacheModel, ice_model)
  349. RegisterHam(Ham_Think, "grenade", "granateldobas")
  350. }
  351. public keszit(id)
  352. {
  353. if(get_pcvar_num(hocvar) == 1)
  354. {
  355.  
  356.  
  357. new origin[3]
  358. new map[64]
  359. get_mapname(map,63)
  360.  
  361. new fajl[192]
  362. formatex(fajl, charsmax(fajl), "addons/amxmodx/configs/hopoz.ini")
  363. if (file_exists(fajl))
  364. {
  365. new line
  366. new linetext[255]
  367. new len
  368. new mapnev[32], maxcoord[8]
  369. while(read_file(fajl, line, linetext, 256, len))
  370. {
  371. parse(linetext, mapnev, 31, maxcoord, 7)
  372. if(equal(map, mapnev))
  373. {
  374. origin[2] = str_to_num(maxcoord)
  375.  
  376. }
  377. line++
  378. }
  379. }
  380. for(new i=0; i < get_pcvar_num(cvar); i++) {
  381. origin[0] = random_num(-2999,2999)
  382. origin[1] = random_num(-2999,2999)
  383. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  384. write_byte(15)
  385. write_coord(origin[0])
  386. write_coord(origin[1])
  387. write_coord(origin[2])
  388. write_coord(origin[0])
  389. write_coord(origin[1])
  390. write_coord(origin[2])
  391. write_short(spr)
  392. write_byte(10)
  393. write_byte(0)
  394. write_byte(5)
  395. write_byte(random_num(30,70))
  396. write_byte(40)
  397. message_end()
  398. }
  399. }
  400.  
  401. }
  402. public fw_EvTeamInfo( )
  403. {
  404.  
  405. static id; id = read_data( 1 );
  406. new nev[32]
  407. get_user_name(id, nev, charsmax(nev))
  408. static szTeam[ 2 ]; read_data( 2 , szTeam , 1 );
  409. if(lehet[id] == true)
  410. {
  411. switch( szTeam[ 0 ] )
  412. {
  413. case 'T':
  414. {
  415. lehet[id] = false
  416. client_cmd(id, "mp3 play %s", iSound)
  417. ColorChat(0, GREEN, "^4[^3%s^4] %s ^3csatlakozott a ^4Terroristakhoz ^3Kellemes unnepeket kivanunk neki!",SZEROPREF, nev);
  418. }
  419. case 'C':
  420. {
  421. lehet[id] = false
  422. client_cmd(id, "mp3 play %s", iSound)
  423. ColorChat(0, GREEN, "^4[^3%s^4] %s ^3csatlakozott a ^4Terrorista Elharitokhoz ^3Kellemes unnepeket kivanunk neki!",SZEROPREF, nev);
  424. }
  425. case 'S':
  426. {
  427. lehet[id] = false
  428. ColorChat(0, GREEN, "^4[^3%s^4] %s ^3csatlakozott a ^4Nezokhoz ^3Kellemes unnepeket kivanunk neki!",SZEROPREF, nev);
  429. client_cmd(id, "mp3 play %s", iSound)
  430. }
  431. }
  432. }
  433. }
  434. public csavokanpc()
  435. {
  436. new Float:origin[3]
  437. new map[64]
  438. get_mapname(map,63)
  439. new fajl[192]
  440. formatex(fajl, charsmax(fajl), "addons/amxmodx/configs/csavokapoz.ini")
  441. if (file_exists(fajl))
  442. {
  443. new line
  444. new linetext[255]
  445. new len
  446. new mapnev[32], elsopoz[8], masodikpoz[8], harmadikpoz[8]
  447. while(read_file(fajl, line, linetext, 256, len))
  448. {
  449. parse(linetext, mapnev, 31, elsopoz, 7, masodikpoz, 7, harmadikpoz, 7)
  450. if(equal(map, mapnev))
  451. {
  452. origin[0] = str_to_float(elsopoz);
  453. origin[1] = str_to_float(masodikpoz);
  454. origin[2] = str_to_float(harmadikpoz);
  455.  
  456. }
  457. line++
  458. }
  459. }
  460. new ent = create_entity("info_target")
  461. set_pev(ent, pev_classname, "csavoka")
  462. entity_set_model(ent, "models/crb/slander.mdl")
  463. set_pev(ent,pev_solid, SOLID_BBOX)
  464. set_pev(ent, pev_movetype, MOVETYPE_TOSS)
  465. engfunc(EngFunc_SetOrigin, ent, origin)
  466. engfunc(EngFunc_SetSize, ent, Float:{-10.0,-10.0,0.0}, Float:{10.0,10.0,25.0})
  467.  
  468. }
  469. public remove(ent, id)
  470. {
  471. if(is_user_alive(id) && !is_user_bot(id) && is_user_connected(id)) {
  472. engfunc(EngFunc_RemoveEntity, ent)
  473. set_task(2.0, "csavokanpc")
  474. ajandekmenu(id)
  475. }
  476. }
  477. public papirtorol(ent, id)
  478. {
  479. if(is_user_alive(id) && !is_user_bot(id) && is_user_connected(id)) {
  480. engfunc(EngFunc_RemoveEntity, ent)
  481. papirszam--
  482. megvan = true
  483. generalva = false
  484. if(talaltpapir[id] > 0)
  485. {
  486. ColorChat(id, GREEN, "^4[^3%s^4] ^3Már találtál egy papírt váltsd be :)",SZEROPREF)
  487. }
  488. else {
  489. talaltpapir[id]++
  490. sorsol(id)
  491. }
  492. }
  493. }
  494. public sorsol(id)
  495. {
  496. new rnd = random(sizeof(ajandekleiras))
  497. if(voltszam[id] != rnd)
  498. {
  499. ColorChat(id, GREEN, "^4[^3%s^4] ^3Erre a papirra %s ajándék volt írva.",SZEROPREF, ajandekleiras[rnd])
  500. ajandekszam[id] = rnd
  501. voltszam[id] = rnd
  502. }
  503. else sorsol(id)
  504.  
  505. }
  506. public parancsfut(id)
  507. {
  508. if(ajandekszam[id] == 0)
  509. {
  510. set_user_health(id, get_user_health(id)+100)
  511. }
  512. else if(ajandekszam[id] == 1)
  513. {
  514. set_user_armor(id, get_user_armor(id)+100)
  515. }
  516. else if(ajandekszam[id] == 5)
  517. {
  518. new halal = cs_get_user_deaths(id)
  519. new frag = halal*2
  520. set_user_frags(id, get_user_frags(id)+frag)
  521. cs_set_user_deaths(id, 0)
  522. }
  523. else if(ajandekszam[id] == 6)
  524. {
  525. new iEntity
  526. new iInfoTarget
  527. iInfoTarget = engfunc( EngFunc_AllocString, "info_target" );
  528. iEntity = engfunc( EngFunc_CreateNamedEntity, iInfoTarget );
  529. if( pev_valid( iEntity ) )
  530. {
  531. engfunc( EngFunc_SetModel, iEntity, MODEL );
  532. set_pev( iEntity, pev_movetype, MOVETYPE_FOLLOW );
  533. set_pev( iEntity, pev_aiment, id );
  534. set_pev( iEntity, pev_owner, id );
  535. }
  536. }
  537. else if(ajandekszam[id] == 7)
  538. {
  539. vanmodell[id] = true
  540. }
  541. else {
  542. give_item(id, parancs[ajandekszam[id]])
  543. cs_set_user_bpammo(id, ammoname[ajandekszam[id]], 120)
  544. }
  545. talaltpapir[id] = 0
  546. }
  547. public ajandekmenu(id)
  548. {
  549. new menuamne[512]
  550. formatex(menuamne, charsmax(menuamne), "\y[%s] \rÜnnepi menü \w[\yPapir szám: \r%d\w]", SZEROPREF, talaltpapir[id])
  551. new menu = menu_create(menuamne, "menu_handler");
  552.  
  553. menu_additem(menu, "Beváltom a papírt", "", 0); // case 0
  554. menu_additem(menu, "Nem kell az ajándék", "", 0); // case 1
  555.  
  556. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  557. menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  558. menu_setprop(menu, MPROP_NEXTNAME, "Következő");
  559. menu_setprop(menu, MPROP_EXITNAME, "Kilpés");
  560. menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
  561.  
  562. menu_display(id, menu, 0);
  563.  
  564. return PLUGIN_HANDLED;
  565. }
  566.  
  567. public menu_handler(id, menu, item)
  568. {
  569. if(item == MENU_EXIT)
  570. {
  571. menu_cancel(id);
  572. return PLUGIN_HANDLED;
  573. }
  574.  
  575. new command[6], name[64], access, callback;
  576.  
  577. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  578.  
  579. switch(item)
  580. {
  581. case 0: {
  582. if(talaltpapir[id] > 0)
  583. {
  584. parancsfut(id)
  585. talaltpapir[id] = 0
  586. ColorChat(id, GREEN, "^4[^3%s^4] ^3Megkaptad az ajándékod :)",SZEROPREF)
  587. }
  588. else ColorChat(id, GREEN, "^4[^3%s^4] ^3Neked nincs papírod gyorsan keress egyet :)",SZEROPREF)
  589. }
  590. case 1: {
  591. if(talaltpapir[id] > 0) {
  592. talaltpapir[id] = 0;
  593. ColorChat(id, GREEN, "^4[^3%s^4] ^3Eldobtad a papírod reméljük a következő nem ilyen sorsra jut :)",SZEROPREF)
  594. }
  595. else ColorChat(id, GREEN, "^4[^3%s^4] ^3Neked nincs papírod gyorsan keress egyet :)",SZEROPREF)
  596. }
  597. }
  598.  
  599. menu_destroy(menu);
  600.  
  601. return PLUGIN_HANDLED;
  602. }
  603. public korvege()
  604. {
  605. new players[32], num
  606. get_players(players, num)
  607. for(new a=0; a<num; a++)
  608. {
  609. torol(players[a])
  610. }
  611. }
  612. public halal()
  613. {
  614. new victim = read_data(2)
  615.  
  616. if(fagyva[victim])
  617. {
  618. torol(victim)
  619. }
  620. }
  621. public fw_SetModel(entity, const model[])
  622. {
  623. if (strlen(model) < 8)
  624. return;
  625.  
  626. if (model[7] != 'w' || model[8] != '_')
  627. return;
  628.  
  629. static Float:dmgtime
  630. pev(entity, pev_dmgtime, dmgtime)
  631.  
  632. if (dmgtime == 0.0)
  633. return;
  634. if (model[9] == 'f' && model[10] == 'l')
  635. {
  636. set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_CRB)
  637. }
  638. }
  639. public granateldobas(entity)
  640. {
  641. if (!pev_valid(entity)) return HAM_IGNORED;
  642.  
  643. static Float:dmgtime
  644. pev(entity, pev_dmgtime, dmgtime)
  645.  
  646. if (dmgtime > get_gametime())
  647. return HAM_IGNORED;
  648.  
  649. switch (pev(entity, PEV_NADE_TYPE))
  650. {
  651. case NADE_TYPE_CRB:
  652. {
  653. robbanas(entity)
  654. return HAM_SUPERCEDE;
  655. }
  656. }
  657.  
  658. return HAM_IGNORED;
  659. }
  660. public robbanas(ent)
  661. {
  662. static Float:origin[3]
  663. pev(ent, pev_origin, origin)
  664. new victim = -1
  665.  
  666. while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, NADE_EXPLOSION_RADIUS)) != 0)
  667. {
  668. set_task(0.1, "befagyaszt", victim)
  669.  
  670. }
  671. engfunc(EngFunc_RemoveEntity, ent)
  672. }
  673. public befagyaszt(id)
  674. {
  675. fagyaszt(id)
  676. set_task(15.0, "torold", id)
  677. }
  678. public torold(id)
  679. {
  680. torol(id)
  681. }
  682. public FM_PreThink(id)
  683. {
  684. if(fagyva[id] == true)
  685. {
  686. set_pev(id, pev_maxspeed, 1.0)
  687. set_pev( id, pev_button, pev(id,pev_button) & ~IN_ATTACK );
  688. set_pev( id, pev_button, pev(id,pev_button) & ~IN_ATTACK2 );
  689. pev( id, pev_origin, o )
  690. if( pev( id, pev_flags ) & FL_DUCKING ) o[2] -= 15.0
  691. else o[2] -= 35.0
  692. entity_set_origin(ent[id], o)
  693.  
  694. }
  695.  
  696. }
  697. public Player_Duck(id)
  698. {
  699. static iOldbuttons ; iOldbuttons = entity_get_int(id, EV_INT_oldbuttons)
  700. if(fagyva[id] == true)
  701. {
  702. if( !(iOldbuttons & IN_DUCK) )
  703. {
  704. entity_set_int(id, EV_INT_oldbuttons, iOldbuttons | IN_DUCK)
  705. return HAM_HANDLED
  706. }
  707. }
  708. return HAM_IGNORED
  709. }
  710. public Player_Jump(id)
  711. {
  712. static iOldbuttons ; iOldbuttons = entity_get_int(id, EV_INT_oldbuttons)
  713. if(fagyva[id] == true)
  714. {
  715. if( !(iOldbuttons & IN_JUMP) )
  716. {
  717. entity_set_int(id, EV_INT_oldbuttons, iOldbuttons | IN_JUMP)
  718. return HAM_HANDLED
  719. }
  720. }
  721. return HAM_IGNORED
  722. }
  723. public fagyaszt(id)
  724. {
  725. if(is_user_alive(id) && is_user_connected(id))
  726. {
  727. fagyva[id] = true
  728. set_pev(id, pev_maxspeed, 1.0)
  729. set_rendering(ent[id], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)
  730. }
  731. }
  732. public torol(id)
  733. {
  734. if(fagyva[id] == true)
  735. {
  736. fagyva[id] = false
  737. ExecuteHamB( Ham_Player_ResetMaxSpeed, id );
  738. set_rendering(ent[id], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 0)
  739. }
  740.  
  741. }
  742. public EntityCreate()
  743. {
  744. for(new i=0;i<get_maxplayers();i++)
  745. {
  746. ent[i] = create_entity("info_target")
  747. set_pev( ent[i], pev_classname, "CrB" )
  748. entity_set_model(ent[i], ice_model)
  749. dllfunc(DLLFunc_Spawn, ent[i])
  750. set_pev(ent[i], pev_solid, SOLID_NOT)
  751. set_pev(ent[i], pev_movetype, MOVETYPE_FLY)
  752. entity_set_size(ent[i], Float:{ -3.0, -3.0, -3.0 }, Float:{ 3.0, 3.0, 3.0 } )
  753. set_pev( ent[i], pev_iuser3, i )
  754. set_pev( ent[i], pev_team, 6969 )
  755. set_rendering(ent[i], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 0)
  756.  
  757. }
  758.  
  759. }
  760. stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
  761. {
  762. static Float:color[3]
  763. color[0] = float(r)
  764. color[1] = float(g)
  765. color[2] = float(b)
  766.  
  767. set_pev(entity, pev_renderfx, fx)
  768. set_pev(entity, pev_rendercolor, color)
  769. set_pev(entity, pev_rendermode, render)
  770. set_pev(entity, pev_renderamt, float(amount))
  771. }
  772. stock sw_radius_damage(entity) {
  773. new id = entity_get_edict(entity,EV_ENT_owner)
  774. for(new i = 1; i < 33; i++) {
  775. if(is_user_alive(i)) {
  776. new dist = floatround(entity_range(entity,i))
  777.  
  778. if(dist <= get_pcvar_num(cvar_range)) {
  779. new hp = get_user_health(i)
  780. new Float:damage = get_pcvar_float(cvar_dmg)-(get_pcvar_float(cvar_dmg)/get_pcvar_float(cvar_range))*float(dist)
  781.  
  782. new Origin[3]
  783. get_user_origin(i,Origin)
  784.  
  785. if(cs_get_user_team(id) != cs_get_user_team(i)) {
  786. if(hp > damage)
  787. sw_sebzes_msg(i,floatround(damage),Origin,DMG_BLAST)
  788. else
  789. logolas(id,i,"Rak?",0)
  790. }
  791. }
  792. }
  793. }
  794. }
  795. stock logolas(killer, victim, weapon[], headshot)
  796. {
  797. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
  798. ExecuteHamB(Ham_Killed, victim, killer, 2)
  799. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
  800.  
  801.  
  802. message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))
  803. write_byte(killer)
  804. write_byte(victim)
  805. write_byte(headshot)
  806. write_string(weapon)
  807. message_end()
  808.  
  809. if(get_user_team(killer)!=get_user_team(victim))
  810. set_user_frags(killer,get_user_frags(killer) +1)
  811. if(get_user_team(killer)==get_user_team(victim))
  812. set_user_frags(killer,get_user_frags(killer) -1)
  813.  
  814. new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]
  815.  
  816. get_user_name(killer, kname, 31)
  817. get_user_team(killer, kteam, 9)
  818. get_user_authid(killer, kauthid, 31)
  819.  
  820. get_user_name(victim, vname, 31)
  821. get_user_team(victim, vteam, 9)
  822. get_user_authid(victim, vauthid, 31)
  823.  
  824. log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
  825. kname, get_user_userid(killer), kauthid, kteam,
  826. vname, get_user_userid(victim), vauthid, vteam, weapon)
  827.  
  828. return PLUGIN_CONTINUE;
  829. }
  830. stock sw_sebzes_msg(victim,damage,origin[3],bit) {
  831. message_begin(MSG_ONE,get_user_msgid("Damage"),{0,0,0},victim)
  832. write_byte(21)
  833. write_byte(20)
  834. write_long(bit)
  835. write_coord(origin[0])
  836. write_coord(origin[1])
  837. write_coord(origin[2])
  838. message_end()
  839.  
  840. set_user_health(victim,get_user_health(victim)-damage)
  841. }
  842.  
  843. #define PLUGIN "Teli Plugin"
  844. #define VERSION "1.0"
  845. #define AUTHOR "crazyboy"
  846.  
  847. public plugin_init() {
  848. register_plugin(PLUGIN, VERSION, AUTHOR)
  849.  
  850. /* CVAR */
  851. hocvar = register_cvar("crb_essen", "1")
  852. cvar = register_cvar("crb_pehely", "32")
  853. szelzaj = register_cvar("crb_szel", "1")
  854. cvar_dmg=register_cvar("sw_damage","155")
  855. cvar_range=register_cvar("sw_radius","350")
  856. cvar_speed=register_cvar("sw_speed","1500")
  857. /* TASK */
  858. set_task(0.1, "keszit", 0, _, _, "b")
  859. set_task(1.0, "csavokanpc")
  860. set_task(30.0, "papircreate",0,_,_,"b")
  861. set_task(1.0, "szamlalo",0,_,_,"b")
  862. set_task(random_float(10.0, 100.0), "szelsound", 0,_,_,"b")
  863. /* EVENT */
  864. register_event( "TeamInfo" , "fw_EvTeamInfo" , "a" );
  865. register_logevent("korvege", 2, "1=Round_End")
  866. register_event("DeathMsg", "halal", "a")
  867. /* TOUCH */
  868. register_touch("csavoka","player","remove")
  869. register_touch("papirka","player","papirtorol")
  870. /* EGYEB */
  871. set_lights("g")
  872. /* HAM */
  873. RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn")
  874. RegisterHam(Ham_Player_Duck, "player", "Player_Duck")
  875. RegisterHam(Ham_Player_Jump, "player", "Player_Jump")
  876. /* CMD */
  877. register_clcmd("say /bevalt", "papirbevalt")
  878. register_clcmd("say /eldob", "papireldob")
  879. /* FM */
  880. register_forward(FM_StartFrame, "fm_startFrame")
  881. register_forward(FM_SetModel, "fw_SetModel")
  882. register_forward(FM_PlayerPreThink,"FM_PreThink")
  883.  
  884. EntityCreate()
  885.  
  886. }
  887.  
  888.