hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.28. 06:02



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: ZP Jetpack
HozzászólásElküldve: 2017.06.27. 04:25 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Valaki ebbe beletudná írni, hogy a jetpack energia visszatöltése maximum 100 legyen és, hogy amikor repülünk akkor adja ki a jetpack hangot.
Én bárhogy próbáltam sehogy se akart működni, vagy nem repült vagy max 1 energiát töltött vissza..

  1. #include <amxmodx>
  2. #include <fun>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6. #include <zombieplague>
  7. #include <zp50_class_zombie>
  8.  
  9. #define PLUGINNAME      "Extra Item Jetpack+Bazooka"
  10. #define VERSION         "3.2"
  11. #define AUTHOR          "B!gBud"
  12.  
  13. #define ACCESS_LEVEL    ADMIN_LEVEL_A
  14. #define VOTE_ACCESS ADMIN_CFG
  15.  
  16. #define TE_EXPLOSION    3
  17. #define TE_BEAMFOLLOW   22
  18. #define TE_BEAMCYLINDER 21
  19.  
  20. #define JETPACK_COST 40
  21.  
  22. new ROCKET_MDL[64] = "models/rpgrocket.mdl"
  23. new ROCKET_SOUND[64] = "weapons/rocketfire1.wav"
  24. new getrocket[64] = "items/9mmclip2.wav"
  25.  
  26. new bool:fly[33] = false
  27. new bool:rocket[33] = false
  28. new bool:rksound[33] = false
  29. new bool:shot[33] = false
  30.  
  31. new Float:gltime = 0.0
  32. new Float:last_Rocket[33] = 0.0
  33. new Float:jp_cal[33] = 0.0
  34. new Float:jp_soun[33] = 0.0
  35. new flame, explosion, trail, white
  36. new g_flyEnergy[33], hasjet[33]
  37. new cvar_jetpack, cvar_jetpackSpeed, cvar_jetpackUpSpeed, cvar_jetpackAcrate ,cvar_RocketDelay, cvar_RocketSpeed, cvar_RocketDmg, cvar_Dmg_range, cvar_fly_engery, cvar_regain_energy, g_item_jetpack, cvar_cal_time, cvar_oneround
  38. new cvar_fly_max_engery
  39.  
  40. public plugin_init() {
  41.     register_plugin(PLUGINNAME, VERSION, AUTHOR)
  42.    
  43.     g_item_jetpack = zp_register_extra_item("Jetpack+Bazooka", JETPACK_COST, ZP_TEAM_HUMAN)
  44.     register_clcmd("drop","cmdDrop")
  45.    
  46.     new ver[64]
  47.     format(ver,63,"%s v%s",PLUGINNAME,VERSION)
  48.     register_cvar("zp_jp_version",ver,FCVAR_SERVER)
  49.    
  50.     cvar_jetpack = register_cvar("zp_jetpack", "2")
  51.    
  52.     cvar_jetpackSpeed=register_cvar("zp_jp_forward_speed","300.0")
  53.     cvar_jetpackUpSpeed=register_cvar("zp_jp_up_speed","35.0")
  54.     cvar_jetpackAcrate=register_cvar("zp_jp_accelerate","100.0")
  55.    
  56.     cvar_RocketDelay=register_cvar("zp_jp_rocket_delay","12.0")
  57.     cvar_RocketSpeed=register_cvar("zp_jp_rocket_speed","1500")
  58.     cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","1500")
  59.     cvar_Dmg_range=register_cvar("zp_jp_damage_radius","350")
  60.    
  61.     cvar_fly_max_engery = register_cvar("zp_jp_max_engery", "100")
  62.     cvar_fly_engery = register_cvar("zp_jp_engery", "1")
  63.     cvar_regain_energy = register_cvar("zp_jp_regain_energy", "1")
  64.     cvar_cal_time = register_cvar("zp_jp_energy_cal", "1.0")
  65.     cvar_oneround = register_cvar("zp_jp_oneround", "0")
  66.  
  67.     register_event("CurWeapon", "check_models", "be")
  68.     register_event("DeathMsg", "player_die", "a")
  69.     register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
  70.    
  71.     register_forward(FM_StartFrame, "fm_startFrame")
  72.     register_forward(FM_EmitSound, "emitsound")
  73. }
  74.  
  75. public plugin_precache() {
  76.     precache_model("models/p_egon.mdl")
  77.     precache_model("models/v_egon.mdl")
  78.     precache_model("models/w_egon.mdl")
  79.     precache_sound("jetpack.wav")
  80.    
  81.     precache_model(ROCKET_MDL)
  82.     precache_sound(ROCKET_SOUND)
  83.     precache_sound(getrocket)
  84.    
  85.     explosion = precache_model("sprites/zerogxplode.spr")
  86.     trail = precache_model("sprites/laserbeam.spr")
  87.     flame = precache_model("sprites/xfireball3.spr")
  88.     white = precache_model("sprites/white.spr")
  89. }
  90.  
  91. public client_putinserver(id) {
  92.     fly[id] = false
  93.     rocket[id] = false
  94.     hasjet[id] = 0
  95.     g_flyEnergy[id] = 0
  96. }
  97.  
  98. public client_disconnect(id) {
  99.     fly[id] = false
  100.     rocket[id] = false
  101.     hasjet[id] = 0
  102.     g_flyEnergy[id] = 0
  103. }
  104.  
  105. public event_round_start()
  106. {
  107.     static id
  108.     for (id = 1; id <= 32; id++)
  109.     {
  110.     g_flyEnergy[id] = 100
  111.     }
  112.    
  113.     remove_jetpacks();
  114.     if (get_pcvar_num(cvar_oneround) == 1) {
  115.     for (new id; id <= 32; id++) hasjet[id] = 0, g_flyEnergy[id] = 0,fly[id] = false
  116.     }
  117. }
  118.  
  119. public fm_startFrame()
  120. {
  121.        
  122.     gltime = get_gametime()
  123.     static id
  124.     for (id = 1; id <= 32; id++)
  125.     {
  126.     jp_forward(id)
  127.     }
  128. }
  129.  
  130. public jp_forward(player)
  131. {
  132.     if (!is_user_alive(player) || (zp_get_user_zombie(player) || zp_get_user_nemesis(player) || zp_get_user_survivor(player)))
  133.         return FMRES_IGNORED       
  134.        
  135.     if (!hasjet[player])
  136.         return FMRES_IGNORED
  137.    
  138.     if(jp_cal[player] < gltime){
  139.         jp_energy(player); jp_cal[player] = gltime + get_pcvar_float(cvar_cal_time)
  140.     }
  141.    
  142.     check_rocket(player)
  143.    
  144.     new clip,ammo
  145.     new wpnid = get_user_weapon(player,clip,ammo)
  146.     if (wpnid == CSW_KNIFE){
  147.         if(get_pcvar_num(cvar_jetpack) == 1){
  148.             if(!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK&& get_user_weapon(player) == CSW_KNIFE){
  149.                 if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.0) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
  150.                     if(jp_soun[player] < gltime){
  151.                         emit_sound(player,CHAN_ITEM,"jetpack.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  152.                         jp_soun[player] = gltime + 1.0
  153.                     }
  154.                 }          
  155.                 else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
  156.                     if(jp_soun[player] < gltime){
  157.                             jp_soun[player] = gltime + 1.0
  158.                     }
  159.                 }
  160.             }
  161.             human_fly(player)
  162.             attack(player) 
  163.         }
  164.         if((pev(player,pev_button)&IN_ATTACK2)){
  165.                 attack2(player)
  166.             }  
  167.     }
  168.     if((get_pcvar_num(cvar_jetpack) == 2 && !(pev(player, pev_flags)&FL_ONGROUND)) && (pev(player,pev_button)&IN_JUMP && pev(player,pev_button)&IN_DUCK)){         
  169.         if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
  170.             client_print(player, print_center, "Jetpack: %d%%", g_flyEnergy[player])
  171.             if(jp_soun[player] < gltime){
  172.                 emit_sound(player,CHAN_ITEM,"jetpack.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  173.                 jp_soun[player] = gltime + 1.0
  174.             }
  175.         }                  
  176.         else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.0)){
  177.             if(jp_soun[player] < gltime){
  178.                 jp_soun[player] = gltime + 1.0
  179.             }
  180.         }
  181.         human_fly(player)
  182.         attack(player)
  183.     }
  184.    
  185.     return FMRES_IGNORED
  186. }
  187.  
  188. public jp_energy(player) {
  189.            
  190.         if (!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK)
  191.         {
  192.             // Get our current velocity    
  193.             new clip,ammo
  194.             new wpnid = get_user_weapon(player,clip,ammo)
  195.             if (wpnid == CSW_KNIFE)
  196.             {
  197.             // flying
  198.             if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery))
  199.                 g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery);  // Increase distance counter      
  200.             }
  201.         }
  202.         else if ((get_pcvar_num(cvar_jetpack) == 2 && !(pev(player, pev_flags)&FL_ONGROUND)) && (pev(player,pev_button)&IN_JUMP && pev(player,pev_button)&IN_DUCK))
  203.         {
  204.             client_print(player, print_center, "Jetpack: %d%%", g_flyEnergy[player])
  205.             if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.0) // 0.09
  206.             g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery);  // Increase distance counter  
  207.         }
  208.         // Walking/Runnig
  209.         if (pev(player, pev_flags) & FL_ONGROUND)
  210.         g_flyEnergy[player] = g_flyEnergy[player] + get_pcvar_num(cvar_regain_energy);
  211. }
  212.  
  213. public attack(player) {
  214. //code snippa from TS_Jetpack 1.0 - Jetpack plugin for The Specialists.
  215. //http://forums.alliedmods.net/showthread.php?s=3ea22295e3e5a292fa82899676583326&t=55709&highlight=jetpack
  216. //By: Bad_Bud
  217.     if(fly[player])
  218.     {  
  219.         static Float:JetpackData[3]
  220.         pev(player,pev_velocity,JetpackData)
  221.                    
  222.         new fOrigin[3],Float:Aim[3]
  223.         VelocityByAim(player, 10, Aim)
  224.         get_user_origin(player,fOrigin)
  225.         fOrigin[0] -= floatround(Aim[0])
  226.         fOrigin[1] -= floatround(Aim[1])
  227.         fOrigin[2] -= floatround(Aim[2])
  228.        
  229.        
  230.         if((pev(player,pev_button)&IN_FORWARD) && !(pev(player, pev_flags) & FL_ONGROUND))
  231.             {
  232.                
  233.                 message_begin(MSG_ALL,SVC_TEMPENTITY)
  234.                 write_byte(17)
  235.                 write_coord(fOrigin[0])
  236.                 write_coord(fOrigin[1])
  237.                 write_coord(fOrigin[2])
  238.                 write_short(flame)
  239.                 write_byte(10)
  240.                 write_byte(255)
  241.                 message_end()  
  242.                
  243.                 static Float:Speed
  244.                 Speed=floatsqroot(JetpackData[0]*JetpackData[0]+JetpackData[1]*JetpackData[1])
  245.                    
  246.                 if(Speed!=0.0)//Makes players only lay down if their speed isn't 0; if they are thrusting forward.
  247.                 {
  248.                     set_pev(player,pev_gaitsequence,0)
  249.                     set_pev(player,pev_sequence,111)
  250.                 }
  251.                    
  252.                 if(Speed<get_pcvar_float(cvar_jetpackSpeed))
  253.                     Speed+=get_pcvar_float(cvar_jetpackAcrate)
  254.                        
  255.                 static Float:JetpackData2[3]
  256.                 pev(player,pev_angles,JetpackData2)
  257.                 JetpackData2[2]=0.0//Remove the Z value/
  258.                    
  259.                 angle_vector(JetpackData2,ANGLEVECTOR_FORWARD,JetpackData2)
  260.                 JetpackData2[0]*=Speed
  261.                 JetpackData2[1]*=Speed
  262.                    
  263.                 JetpackData[0]=JetpackData2[0]
  264.                 JetpackData[1]=JetpackData2[1]
  265.             }
  266.            
  267.         if(JetpackData[2]<get_pcvar_float(cvar_jetpackSpeed)&&JetpackData[2]>0.0)//Jetpacks get more power on the way down -- it helps landing.
  268.                 JetpackData[2]+=get_pcvar_float(cvar_jetpackUpSpeed)
  269.             else if(JetpackData[2]<0.0)
  270.                 JetpackData[2]+=(get_pcvar_float(cvar_jetpackUpSpeed)*1.15)
  271.                    
  272.         set_pev(player,pev_velocity,JetpackData)
  273.     }
  274. }
  275.  
  276. public attack2(player) {
  277.        
  278.     if (rocket[player])
  279.     {
  280.        
  281.         new rocket = create_entity("info_target")
  282.         if(rocket == 0) return PLUGIN_CONTINUE
  283.        
  284.         entity_set_string(rocket, EV_SZ_classname, "zp_jp_rocket")
  285.         entity_set_model(rocket, ROCKET_MDL)
  286.        
  287.         entity_set_size(rocket, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})
  288.         entity_set_int(rocket, EV_INT_movetype, MOVETYPE_FLY)
  289.         entity_set_int(rocket, EV_INT_solid, SOLID_BBOX)
  290.        
  291.         new Float:vSrc[3]
  292.         entity_get_vector(player, EV_VEC_origin, vSrc)
  293.        
  294.         new Float:Aim[3],Float:origin[3]
  295.         VelocityByAim(player, 64, Aim)
  296.         entity_get_vector(player,EV_VEC_origin,origin)
  297.        
  298.         vSrc[0] += Aim[0]
  299.         vSrc[1] += Aim[1]
  300.         entity_set_origin(rocket, vSrc)
  301.        
  302.         new Float:velocity[3], Float:angles[3]
  303.         VelocityByAim(player, get_pcvar_num(cvar_RocketSpeed), velocity)
  304.        
  305.         entity_set_vector(rocket, EV_VEC_velocity, velocity)
  306.         vector_to_angle(velocity, angles)
  307.         entity_set_vector(rocket, EV_VEC_angles, angles)
  308.         entity_set_edict(rocket,EV_ENT_owner,player)
  309.         entity_set_float(rocket, EV_FL_takedamage, 1.0)
  310.        
  311.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  312.         write_byte(TE_BEAMFOLLOW)
  313.         write_short(rocket)
  314.         write_short(trail)
  315.         write_byte(25)
  316.         write_byte(5)
  317.         write_byte(random(255))
  318.         write_byte(random(255))
  319.         write_byte(random(255))
  320.         write_byte(255)
  321.         message_end()
  322.        
  323.        
  324.  
  325.         emit_sound(rocket, CHAN_WEAPON, ROCKET_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM)
  326.        
  327.         shot[player] = true
  328.         last_Rocket[player] = gltime + get_pcvar_num(cvar_RocketDelay)
  329.     }
  330.     return PLUGIN_CONTINUE
  331. }
  332.  
  333. public check_models(id) {
  334.  
  335.     if (zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
  336.         return FMRES_IGNORED
  337.    
  338.     if(hasjet[id]) {
  339.         new clip,ammo
  340.         new wpnid = get_user_weapon(id,clip,ammo)
  341.        
  342.         if ( wpnid == CSW_KNIFE ) {
  343.             switchmodel(id)
  344.         }
  345.         return PLUGIN_CONTINUE
  346.     }
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public switchmodel(id) {
  351.     entity_set_string(id,EV_SZ_viewmodel,"models/v_egon.mdl")
  352.     entity_set_string(id,EV_SZ_weaponmodel,"models/p_egon.mdl")
  353. }
  354.  
  355. public remove_jetpacks() {
  356.     new nextitem  = find_ent_by_class(-1,"zp_jp_jetpack")
  357.     while(nextitem) {
  358.         remove_entity(nextitem)
  359.         nextitem = find_ent_by_class(-1,"zp_jp_jetpack")
  360.     }
  361.     return PLUGIN_CONTINUE
  362. }
  363.  
  364. public emitsound(entity, channel, const sample[]) {
  365.     if(is_user_alive(entity)) {
  366.         new clip,ammo
  367.         new weapon = get_user_weapon(entity,clip,ammo)
  368.        
  369.         if(hasjet[entity] && weapon == CSW_KNIFE) {
  370.             if(equal(sample,"weapons/knife_slash1.wav")) return FMRES_SUPERCEDE
  371.             if(equal(sample,"weapons/knife_slash2.wav")) return FMRES_SUPERCEDE
  372.            
  373.             if(equal(sample,"weapons/knife_deploy1.wav")) return FMRES_SUPERCEDE
  374.             if(equal(sample,"weapons/knife_hitwall1.wav")) return FMRES_SUPERCEDE
  375.            
  376.             if(equal(sample,"weapons/knife_hit1.wav")) return FMRES_SUPERCEDE
  377.             if(equal(sample,"weapons/knife_hit2.wav")) return FMRES_SUPERCEDE
  378.             if(equal(sample,"weapons/knife_hit3.wav")) return FMRES_SUPERCEDE
  379.             if(equal(sample,"weapons/knife_hit4.wav")) return FMRES_SUPERCEDE
  380.            
  381.             if(equal(sample,"weapons/knife_stab.wav")) return FMRES_SUPERCEDE
  382.         }
  383.     }
  384.     return FMRES_IGNORED
  385. }
  386.  
  387. public Icon_Show(icon[], color[3], mode, player) {
  388.            
  389.     message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("StatusIcon"), {0,0,0}, player);
  390.     write_byte(mode);   // status (0=hide, 1=show, 2=flash)
  391.     write_string(icon);     // sprite name
  392.     write_byte(color[0]);   // red
  393.     write_byte(color[1]);   // green
  394.     write_byte(color[2]);   // blue
  395.     message_end();
  396.  
  397. }
  398.  
  399. public Icon_Energy(color[3], mode, player) {
  400.    
  401.     Icon_Show("item_longjump", color, mode, player)
  402. }
  403.  
  404. public human_fly(player) {
  405.    
  406.     if (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery)*0.1)
  407.     {
  408.         jp_off(player);
  409.     }
  410.     if (g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.1)
  411.     {
  412.         jp_on(player);
  413.     }
  414. }
  415.  
  416. public jp_on(player) {
  417.  
  418.     fly[player] = true
  419.    
  420. }
  421.  
  422. public jp_off(player) {
  423.  
  424.     fly[player] = false
  425.    
  426. }
  427.  
  428. public check_rocket(player) {
  429.        
  430.     if (last_Rocket[player] > gltime)
  431.     {  
  432.         rk_forbidden(player)
  433.         rksound[player] = true
  434.     }
  435.     else
  436.     {  
  437.  
  438.         if (shot[player])
  439.         {
  440.             rksound[player] = false
  441.             shot[player] = false
  442.         }
  443.         rk_sound(player)
  444.         rk_allow(player)
  445.     }
  446.    
  447. }
  448.  
  449. public rk_allow(player) {
  450.        
  451.     rocket[player] = true
  452. }
  453.  
  454. public rk_forbidden(player) {
  455.  
  456.     rocket[player] = false
  457.    
  458. }
  459.  
  460. public rk_sound(player) {
  461.  
  462.     if (!rksound[player])
  463.     {
  464.         engfunc(EngFunc_EmitSound, player, CHAN_WEAPON, getrocket, 1.0, ATTN_NORM, 0, PITCH_NORM)
  465.         client_print(player, print_center, "Bazooka Ăšjratöltve!")
  466.         rksound[player] = true
  467.     }
  468.     else if (rksound[player])
  469.     {
  470.        
  471.     }
  472.    
  473. }
  474.  
  475. public player_die() {
  476.    
  477.     new id = read_data(2)
  478.     if(hasjet[id]) {
  479.         drop_jetpack(id)
  480.         hasjet[id] = 0
  481.         rocket[id] = false
  482.         g_flyEnergy[id] = 0
  483.     }
  484.    
  485.     return PLUGIN_CONTINUE
  486. }
  487.  
  488. public cmdDrop(id) {
  489.  
  490.     if(hasjet[id]) {
  491.         new clip,ammo
  492.         new weapon = get_user_weapon(id,clip,ammo)
  493.         if(weapon == CSW_KNIFE) {
  494.             drop_jetpack(id)
  495.             if(!zp_get_user_zombie(id)){
  496.                 entity_set_string(id,EV_SZ_viewmodel,"models/v_knife.mdl")
  497.                 entity_set_string(id,EV_SZ_weaponmodel,"models/p_knife.mdl")
  498.                 }
  499.             return PLUGIN_HANDLED
  500.         }
  501.     }
  502.     return PLUGIN_CONTINUE
  503. }
  504.  
  505. public drop_jetpack(player) {
  506.     if(hasjet[player]) {
  507.         new Float:Aim[3],Float:origin[3]
  508.         VelocityByAim(player, 64, Aim)
  509.         entity_get_vector(player,EV_VEC_origin,origin)
  510.        
  511.         origin[0] += Aim[0]
  512.         origin[1] += Aim[1]
  513.        
  514.         new jetpack = create_entity("info_target")
  515.         entity_set_string(jetpack,EV_SZ_classname,"zp_jp_jetpack")
  516.         entity_set_model(jetpack,"models/w_egon.mdl")  
  517.        
  518.         entity_set_size(jetpack,Float:{-16.0,-16.0,-16.0},Float:{16.0,16.0,16.0})
  519.         entity_set_int(jetpack,EV_INT_solid,1)
  520.        
  521.         entity_set_int(jetpack,EV_INT_movetype,6)
  522.        
  523.         entity_set_vector(jetpack,EV_VEC_origin,origin)
  524.        
  525.         Icon_Energy({255, 255, 0}, 0, player)
  526.         Icon_Energy({128, 128, 0}, 0, player )
  527.         Icon_Energy({0, 255, 0}, 0, player)
  528.        
  529.         hasjet[player] = 0
  530.         rocket[player] = false
  531.     }  
  532. }
  533.  
  534. public pfn_touch(ptr, ptd) {
  535.     if(is_valid_ent(ptr)) {
  536.         new classname[32]
  537.         entity_get_string(ptr,EV_SZ_classname,classname,31)
  538.        
  539.         if(equal(classname, "zp_jp_jetpack")) {
  540.             if(is_valid_ent(ptd)) {
  541.                 new id = ptd
  542.                 if(id > 0 && id < 34) {
  543.                     if(!hasjet[id] && !zp_get_user_zombie(id) && is_user_alive(id)) {
  544.                        
  545.                         hasjet[id] = 1
  546.                         g_flyEnergy[id] = get_pcvar_num(cvar_fly_max_engery)
  547.                         rocket[id] = true
  548.                         client_cmd(id,"spk items/gunpickup2.wav")
  549.                         engclient_cmd(id,"weapon_knife")
  550.                         switchmodel(id)
  551.                         remove_entity(ptr)
  552.                     }
  553.                 }
  554.             }
  555.         }else if(equal(classname, "zp_jp_rocket")) {
  556.             new Float:fOrigin[3]
  557.             new iOrigin[3]
  558.             entity_get_vector(ptr, EV_VEC_origin, fOrigin)
  559.             FVecIVec(fOrigin,iOrigin)
  560.             jp_radius_damage(ptr)
  561.                
  562.             message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
  563.             write_byte(TE_EXPLOSION)
  564.             write_coord(iOrigin[0])
  565.             write_coord(iOrigin[1])
  566.             write_coord(iOrigin[2])
  567.             write_short(explosion)
  568.             write_byte(30)
  569.             write_byte(15)
  570.             write_byte(0)
  571.             message_end()
  572.            
  573.             message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
  574.             write_byte(TE_BEAMCYLINDER)
  575.             write_coord(iOrigin[0])
  576.             write_coord(iOrigin[1])
  577.             write_coord(iOrigin[2])
  578.             write_coord(iOrigin[0])
  579.             write_coord(iOrigin[1])
  580.             write_coord(iOrigin[2]+200)
  581.             write_short(white)
  582.             write_byte(0)
  583.             write_byte(1)
  584.             write_byte(6)
  585.             write_byte(8)
  586.             write_byte(1)
  587.             write_byte(random(255))
  588.             write_byte(random(255))
  589.             write_byte(random(255))
  590.             write_byte(128)
  591.             write_byte(5)
  592.             message_end()
  593.            
  594.             if(is_valid_ent(ptd)) {
  595.                 new classname2[32]
  596.                 entity_get_string(ptd,EV_SZ_classname,classname2,31)
  597.                
  598.                 if(equal(classname2,"func_breakable"))
  599.                     force_use(ptr,ptd)
  600.             }
  601.            
  602.             remove_entity(ptr)
  603.         }
  604.     }
  605.     return PLUGIN_CONTINUE
  606. }
  607.  
  608. public zp_user_infected_pre(player, infector){
  609.    
  610.     Icon_Energy({0, 255, 0}, 0, player);
  611.     cmdDrop(player);
  612.     hasjet[player] = 0;
  613.     g_flyEnergy[player] = 0;
  614.     rocket[player] = false;
  615. }
  616.  
  617. public zp_extra_item_selected(player, itemid){
  618.    
  619.  
  620.     new clip,ammo
  621.     new weapon = get_user_weapon(player,clip,ammo)
  622.        
  623.     if (itemid == g_item_jetpack)
  624.     {
  625.         hasjet[player] = 1
  626.         g_flyEnergy[player] = get_pcvar_num(cvar_fly_max_engery)
  627.         rocket[player] = true
  628.         client_cmd(player,"spk items/gunpickup2.wav")
  629.         if(weapon == CSW_KNIFE){
  630.             switchmodel(player)
  631.         }
  632.         else
  633.         {
  634.             engclient_cmd(player,"weapon_knife"),switchmodel(player)
  635.         }
  636.     }
  637. }
  638.  
  639. stock jp_radius_damage(entity) {
  640.     new id = entity_get_edict(entity,EV_ENT_owner)
  641.     for(new i = 1; i < 33; i++) {
  642.         if(is_user_alive(i)) {
  643.             new dist = floatround(entity_range(entity,i))
  644.            
  645.             if(dist <= get_pcvar_num(cvar_Dmg_range)) {
  646.                 new hp = get_user_health(i)
  647.                 new Float:damage = get_pcvar_float(cvar_RocketDmg)-(get_pcvar_float(cvar_RocketDmg)/get_pcvar_float(cvar_Dmg_range))*float(dist)
  648.                
  649.                 new Origin[3]
  650.                 get_user_origin(i,Origin)
  651.                
  652.                 if(zp_get_user_zombie(id) != zp_get_user_zombie(i)) {
  653.                         if(hp > damage)
  654.                             jp_take_damage(i,floatround(damage),Origin,DMG_BLAST)
  655.                         else
  656.                             log_kill(id,i,"Jetpack Rocket",0)
  657.                     }
  658.             }
  659.         }
  660.     }
  661. }
  662.  
  663. stock log_kill(killer, victim, weapon[], headshot)
  664. {
  665. // code from MeRcyLeZZ
  666.     set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
  667.     ExecuteHamB(Ham_Killed, victim, killer, 2) // set last param to 2 if you want victim to gib
  668.     set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
  669.  
  670.    
  671.     message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))
  672.     write_byte(killer)
  673.     write_byte(victim)
  674.     write_byte(headshot)
  675.     write_string(weapon)
  676.     message_end()
  677. //
  678.    
  679.     if(get_user_team(killer)!=get_user_team(victim))
  680.         set_user_frags(killer,get_user_frags(killer) +1)
  681.     if(get_user_team(killer)==get_user_team(victim))
  682.         set_user_frags(killer,get_user_frags(killer) -1)
  683.        
  684.     new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]
  685.  
  686.     get_user_name(killer, kname, 31)
  687.     get_user_team(killer, kteam, 9)
  688.     get_user_authid(killer, kauthid, 31)
  689.  
  690.     get_user_name(victim, vname, 31)
  691.     get_user_team(victim, vteam, 9)
  692.     get_user_authid(victim, vauthid, 31)
  693.        
  694.     log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
  695.     kname, get_user_userid(killer), kauthid, kteam,
  696.     vname, get_user_userid(victim), vauthid, vteam, weapon)
  697.  
  698.     return PLUGIN_CONTINUE;
  699. }
  700.  
  701. stock jp_take_damage(victim,damage,origin[3],bit) {
  702.     message_begin(MSG_ONE,get_user_msgid("Damage"),{0,0,0},victim)
  703.     write_byte(21)
  704.     write_byte(20)
  705.     write_long(bit)
  706.     write_coord(origin[0])
  707.     write_coord(origin[1])
  708.     write_coord(origin[2])
  709.     message_end()
  710.    
  711.     set_user_health(victim,get_user_health(victim)-damage)
  712. }

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: ZP Jetpack
HozzászólásElküldve: 2017.07.02. 14:02 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Használd inkább ezt :)


Csatolmányok:
jetpack.rar [232 KiB]
Letöltve 26 alkalommal.

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0
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  [ 2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 52 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