hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.14. 18:56



Jelenlévő felhasználók

Jelenleg 749 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 747 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Nem robban fel.
HozzászólásElküldve: 2016.01.16. 17:34 
Offline
Újonc

Csatlakozott: 2016.01.09. 15:53
Hozzászólások: 6
Megköszönt másnak: 4 alkalommal
Ha meghal valamiert nem robban fel . miert?




  1. #include <amxmodx>
  2. #include <zombieplague>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <fun>
  6.  
  7. #define PLUGINNAME        "[ZP] Robbano Zombi"
  8. #define VERSION           "1.2.2"
  9. #define AUTHOR            "tii"
  10.  
  11. new g_zclass_boomer,  g_maxplayers,
  12. spr_smoke_steam1,cvar_max_damage,cvar_damage_radius,mdl_gib_legbone,
  13. mdl_gib_flesh,mdl_gib_meat,mdl_gib_head,spr_blood_drop,spr_blood_spray
  14. new bool:lamuerteexplosiva[33] = false
  15.  
  16. new g_sndExplode[] = "weapons/c4_explode1.wav"
  17. new spr_zerogxplode
  18. new gmsgDeathMsg,gmsgScoreInfo,mdl_gib_lung,mdl_gib_spine
  19.  
  20. new const zclass_name[] = { "Boomer Zombie" }
  21. new const zclass_info[] = { "Halala utan felrobban" }
  22. new const zclass_model[] = { "Tirant_Boomer_Frk_14" }
  23. new const zclass_clawmodel[] = { "bommer_hands.mdl" }
  24. const zclass_health = 8000
  25. const zclass_speed = 200
  26. const Float:zclass_gravity = 1.2
  27. const Float:zclass_knockback = 1.0
  28.  
  29. public plugin_init(){  
  30.     register_plugin(PLUGINNAME, VERSION, AUTHOR)
  31.     register_event("DeathMsg", "boomer_death", "a")
  32.     cvar_max_damage = register_cvar("zp_bomer_maxdmg","100")
  33.     cvar_damage_radius = register_cvar("zp_bomer_raius","350")
  34.     g_maxplayers = get_maxplayers()
  35.     gmsgDeathMsg = get_user_msgid("DeathMsg")
  36.     gmsgScoreInfo = get_user_msgid("ScoreInfo")
  37. }
  38.  
  39. public plugin_precache()
  40. {
  41.     g_zclass_boomer = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)    
  42.     mdl_gib_lung = precache_model("models/GIB_Lung.mdl")
  43.     mdl_gib_meat = precache_model("models/GIB_B_Gib.mdl")
  44.     mdl_gib_head = precache_model("models/GIB_Skull.mdl")
  45.     mdl_gib_flesh = precache_model("models/Fleshgibs.mdl")
  46.     mdl_gib_spine = precache_model("models/GIB_B_Bone.mdl")
  47.     mdl_gib_legbone = precache_model("models/GIB_Legbone.mdl")
  48.     precache_sound("weapons/mortarhit.wav")
  49.     spr_blood_drop = precache_model("sprites/blood.spr")
  50.     spr_blood_spray = precache_model("sprites/bloodspray.spr")
  51.     spr_zerogxplode = precache_model("sprites/zerogxplode.spr")
  52.     spr_smoke_steam1 = precache_model("sprites/steam1.spr")
  53.     precache_sound(g_sndExplode)
  54.     spr_zerogxplode = precache_model("sprites/zerogxplode.spr")
  55.     precache_model("models/w_egon.mdl")
  56. }
  57.  
  58. public zp_user_infected_post(player, infector)
  59. {
  60.     if (zp_get_user_zombie_class(player) == g_zclass_boomer) {
  61.         lamuerteexplosiva[player] = true
  62.         client_print(player, print_chat, "[ZP] Felrobban mikor meghal!")
  63.     }
  64. }
  65.  
  66. public zp_user_humanized_post(player)
  67. {
  68.     lamuerteexplosiva[player] = false
  69. }
  70.  
  71. public boomer_death() {
  72.     new attacker = read_data(1)
  73.     new victim = read_data(2)
  74.     if(lamuerteexplosiva[victim]) {
  75.         static victim_name[33]
  76.         static attacker_name[33]
  77.         get_user_name(victim, victim_name, sizeof victim_name -1)
  78.         get_user_name(attacker, attacker_name, sizeof attacker_name -1)
  79.         new Float:origin[3], origin2[3]
  80.         entity_get_vector(victim,EV_VEC_origin,origin)
  81.         origin2[0] = floatround(origin[0])
  82.         origin2[1] = floatround(origin[1])
  83.         origin2[2] = floatround(origin[2])
  84.         for (new id2; id2 <= g_maxplayers; id2++)
  85.         {
  86.             if (zp_get_user_zombie_class(id2) == g_zclass_boomer && zp_get_user_zombie(id2) && !zp_get_user_nemesis(id2))
  87.             {  
  88.                 emit_sound(victim, CHAN_WEAPON, "weapons/mortarhit.wav", 1.0, 0.5, 0, PITCH_NORM)
  89.                 emit_sound(victim, CHAN_VOICE, "weapons/mortarhit.wav", 1.0, 0.5, 0, PITCH_NORM)
  90.                
  91.                 for (new e = 1; e < 8; e++) {
  92.                     // Random Explosion 8 Times
  93.                     message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  94.                     write_byte(TE_SPRITE)
  95.                     write_coord(origin2[0] + random_num(-60,60))
  96.                     write_coord(origin2[1] + random_num(-60,60))
  97.                     write_coord(origin2[2] +128)
  98.                     write_short(spr_zerogxplode)
  99.                     write_byte(random_num(30,65))
  100.                     write_byte(255)
  101.                     message_end()
  102.                    
  103.                 }
  104.  
  105.                 for (new e = 1; e < 3; e++) {
  106.                     // Random Smoke 3 Times
  107.                     message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  108.                     write_byte(TE_SMOKE)
  109.                     write_coord(origin2[0])
  110.                     write_coord(origin2[1])
  111.                     write_coord(origin2[2] + 256)
  112.                     write_short(spr_smoke_steam1)
  113.                     write_byte(random_num(80,150))
  114.                     write_byte(random_num(5,10))
  115.                     message_end()
  116.                 }
  117.                
  118.                 // Create the burn decal
  119.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  120.                 write_byte(TE_GUNSHOTDECAL)
  121.                 write_coord(origin2[0])
  122.                 write_coord(origin2[1])
  123.                 write_coord(origin2[2])
  124.                 write_short(0)         
  125.                 write_byte(random_num(46,48))  // decal
  126.                 message_end()
  127.  
  128.                 new Max_Damage = get_pcvar_num(cvar_max_damage)
  129.                 new Damage_Radius = get_pcvar_num(cvar_damage_radius)  
  130.                 new PlayerPos[3], Distance, Damage
  131.                 for (new i = 1; i < 32; i++) {
  132.                     if (is_user_alive(i) == 1) {
  133.                         get_user_origin(i, PlayerPos)
  134.                         Distance = get_distance(PlayerPos, origin2)
  135.                         if (Distance <= Damage_Radius) {  // Screenshake Radius
  136.                            
  137.                             message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, i)  // Shake Screen
  138.                             write_short(1<<14)
  139.                             write_short(1<<14)
  140.                             write_short(1<<14)
  141.                             message_end()
  142.  
  143.                             Damage = Max_Damage - floatround(floatmul(float(Max_Damage), floatdiv(float(Distance), float(Damage_Radius))))
  144.                             //if(!zp_get_user_zombie(id2) && !zp_get_user_nemesis(id2))
  145.                             do_victim(i,victim,Damage,0)
  146.                         }
  147.                        
  148.                     }
  149.                    
  150.                 }
  151.             }
  152.         }
  153.         lamuerteexplosiva[victim] = false
  154.     }
  155. }
  156.  
  157. public do_victim (victim,attacker,Damage,team_kill) {
  158.  
  159.     new namek[32],namev[32],authida[35],authidv[35],teama[32],teamv[32]
  160.  
  161.     get_user_name(victim,namev,31)
  162.     get_user_name(attacker,namek,31)
  163.     get_user_authid(victim,authidv,34)
  164.     get_user_authid(attacker,authida,34)
  165.     get_user_team(victim,teamv,31)
  166.     get_user_team(attacker,teama,31)
  167.  
  168.     if(Damage >= get_user_health(victim)) {
  169.  
  170.         if(get_cvar_num("mp_logdetail") == 3) {
  171.            
  172.             log_message("^"%s<%d><%s><%s>^" megtamadta ^"%s<%d><%s><%s>^" ezzel ^"bomber^" (utes ^"ches^") (Serules ^"%d^") (elet ^"0^")",
  173.             namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage)
  174.        
  175.         }
  176.  
  177.         client_print(attacker,print_chat,"[AMXX] Te megolted %s-t a robbanassal",namev)
  178.         client_print(victim,print_chat,"[AMXX] Teged megolt %s a robbanassal",namek)
  179.  
  180.         if(team_kill == 0) {
  181.            
  182.             set_user_frags(attacker,get_user_frags(attacker) + 1 )
  183.        
  184.         }
  185.        
  186.         set_msg_block(gmsgDeathMsg,BLOCK_ONCE)
  187.         set_msg_block(gmsgScoreInfo,BLOCK_ONCE)
  188.  
  189.         user_kill(victim,1)
  190.  
  191.         replace_dm(attacker,victim,0)
  192.  
  193.         log_message("^"%s<%d><%s><%s>^" megolte ^"%s<%d><%s><%s>^" ezzel ^"bomber^"",
  194.         namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv)
  195.  
  196.         if (Damage > 100) {
  197.                                    
  198.             new iOrigin[3]
  199.             get_user_origin(victim,iOrigin)
  200.             set_user_rendering(victim,kRenderFxNone,0,0,0,kRenderTransAlpha,0)
  201.             fx_gib_explode(iOrigin,3)
  202.             fx_blood_large(iOrigin,5)
  203.             fx_blood_small(iOrigin,15)
  204.             iOrigin[2] = iOrigin[2] - 20
  205.             set_user_origin(victim,iOrigin)
  206.  
  207.         }
  208.        
  209.     }
  210.  
  211.     else {
  212.         set_user_health(victim,get_user_health(victim) - Damage )
  213.  
  214.         if(get_cvar_num("mp_logdetail") == 3) {
  215.            
  216.             log_message("^"%s<%d><%s><%s>^" megtamadta ^"%s<%d><%s><%s>^" ezel ^"bomber^" (utes ^"chest^") (Serules ^"%d^") (elet ^"%d^")",
  217.             namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage,get_user_health(victim))
  218.        
  219.         }
  220.  
  221.         client_print(attacker,print_chat,"[AMXX] Megtamadtad %s-t",namev)
  222.         client_print(victim,print_chat,"[AMXX] Megolted %s-t",namek)
  223.  
  224.     }
  225.    
  226. }
  227.  
  228. public client_disconnect(id)
  229. {
  230.     lamuerteexplosiva[id] = false
  231. }  
  232.  
  233. public client_putinserver(id)
  234. {
  235.     lamuerteexplosiva[id] = false
  236. }  
  237.  
  238. public replace_dm (id,tid,tbody) {
  239.  
  240.     //Update killers scorboard with new info
  241.     message_begin(MSG_ALL,gmsgScoreInfo)
  242.     write_byte(id)
  243.     write_short(get_user_frags(id))
  244.     write_short(get_user_deaths(id))
  245.     write_short(0)
  246.     write_short(get_user_team(id))
  247.     message_end()
  248.  
  249.     //Update victims scoreboard with correct info
  250.     message_begin(MSG_ALL,gmsgScoreInfo)
  251.     write_byte(tid)
  252.     write_short(get_user_frags(tid))
  253.     write_short(get_user_deaths(tid))
  254.     write_short(0)
  255.     write_short(get_user_team(tid))
  256.     message_end()
  257.  
  258.     //Headshot Kill
  259.     if (tbody == 1) {
  260.  
  261.         message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
  262.         write_byte(id)
  263.         write_byte(tid)
  264.         write_string(" missile")
  265.         message_end()
  266.        
  267.     }
  268.  
  269.     //Normal Kill
  270.     else {
  271.        
  272.         message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
  273.         write_byte(id)
  274.         write_byte(tid)
  275.         write_byte(0)
  276.         write_string("missile")
  277.         message_end()
  278.        
  279.     }
  280.  
  281.     return PLUGIN_CONTINUE
  282.    
  283. }
  284. static fx_blood_small (origin[3],num) {
  285.    
  286.     // Small splash
  287.     for (new j = 0; j < num; j++) {
  288.        
  289.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  290.         write_byte(TE_WORLDDECAL)
  291.         write_coord(origin[0]+random_num(-100,100))
  292.         write_coord(origin[1]+random_num(-100,100))
  293.         write_coord(origin[2]-36)
  294.        
  295.         write_byte(random_num(190,197)) // Blood decals
  296.  
  297.         message_end()
  298.        
  299.     }
  300.    
  301. }
  302.  
  303. static fx_blood_large (origin[3],num) {
  304.    
  305.     // Large splash
  306.     for (new i = 0; i < num; i++) {
  307.        
  308.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  309.         write_byte(TE_WORLDDECAL)
  310.         write_coord(origin[0] + random_num(-50,50))
  311.         write_coord(origin[1] + random_num(-50,50))
  312.         write_coord(origin[2]-36)
  313.  
  314.         write_byte(random_num(204,205)) // Blood decals
  315.        
  316.         message_end()
  317.        
  318.     }
  319.    
  320. }
  321.  
  322. static fx_gib_explode (origin[3],num) {
  323.    
  324.     new flesh[3], x, y, z
  325.     flesh[0] = mdl_gib_flesh
  326.     flesh[1] = mdl_gib_meat
  327.     flesh[2] = mdl_gib_legbone
  328.    
  329.     // Gib explosion
  330.     // Head
  331.     message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  332.     write_byte(TE_MODEL)
  333.     write_coord(origin[0])
  334.     write_coord(origin[1])
  335.     write_coord(origin[2])
  336.     write_coord(random_num(-100,100))
  337.     write_coord(random_num(-100,100))
  338.     write_coord(random_num(100,200))
  339.     write_angle(random_num(0,360))
  340.     write_short(mdl_gib_head)
  341.     write_byte(0)
  342.     write_byte(500)
  343.     message_end()
  344.    
  345.     // Spine
  346.     message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  347.     write_byte(TE_MODEL)
  348.     write_coord(origin[0])
  349.     write_coord(origin[1])
  350.     write_coord(origin[2])
  351.     write_coord(random_num(-100,100))
  352.     write_coord(random_num(-100,100))
  353.     write_coord(random_num(100,200))
  354.     write_angle(random_num(0,360))
  355.     write_short(mdl_gib_spine)
  356.     write_byte(0)
  357.     write_byte(500)
  358.     message_end()
  359.    
  360.     // Lung
  361.     for(new i = 0; i < random_num(1,2); i++) {
  362.        
  363.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  364.         write_byte(TE_MODEL)
  365.         write_coord(origin[0])
  366.         write_coord(origin[1])
  367.         write_coord(origin[2])
  368.         write_coord(random_num(-100,100))
  369.         write_coord(random_num(-100,100))
  370.         write_coord(random_num(100,200))
  371.         write_angle(random_num(0,360))
  372.         write_short(mdl_gib_lung)
  373.         write_byte(0)
  374.         write_byte(500)
  375.         message_end()
  376.        
  377.     }
  378.    
  379.     // Parts, 5 times
  380.     for(new i = 0; i < 5; i++) {
  381.        
  382.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  383.         write_byte(TE_MODEL)
  384.         write_coord(origin[0])
  385.         write_coord(origin[1])
  386.         write_coord(origin[2])
  387.         write_coord(random_num(-100,100))
  388.         write_coord(random_num(-100,100))
  389.         write_coord(random_num(100,200))
  390.         write_angle(random_num(0,360))
  391.         write_short(flesh[random_num(0,2)])
  392.         write_byte(0)
  393.         write_byte(500)
  394.         message_end()
  395.        
  396.     }
  397.    
  398.     // Blood
  399.     for(new i = 0; i < num; i++) {
  400.        
  401.         x = random_num(-100,100)
  402.         y = random_num(-100,100)
  403.         z = random_num(0,100)
  404.        
  405.         for(new j = 0; j < 5; j++) {
  406.            
  407.             message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  408.             write_byte(TE_BLOODSPRITE)
  409.             write_coord(origin[0]+(x*j))
  410.             write_coord(origin[1]+(y*j))
  411.             write_coord(origin[2]+(z*j))
  412.             write_short(spr_blood_spray)
  413.             write_short(spr_blood_drop)
  414.             write_byte(248)
  415.             write_byte(15)
  416.             message_end()
  417.            
  418.         }
  419.        
  420.     }
  421.    
  422. }


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole