Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSS[REQ] jetpack+bazzoka remove shoot delay


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hello, can someone remove the shoot delay for this jetpack+bazzooka plugin please
Code:

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <zp_apocalypse>

new sprite_explosion,sprite_beamcylinder, jp_itemid,
cvar_cost,cvar_damage,cvar_speed,cvar_reload_time,cvar_radius,
cvar_start_energy,cvar_remove_energy,cvar_heal_energy,cvar_heal_time,cvar_zvelocity,cvar_aimvelocity,
cvar_can_drop,cvar_one_round,
maxplayers,hudsync, has_jetpack[33],can_shoot[33],energy[33]
public plugin_precache()
{
        precache_model("models/zp_apocalypse/v_egon.mdl")
        precache_model("models/zp_apocalypse/p_egonn.mdl")
        precache_model("models/w_egon.mdl")
       
        precache_model("models/rpgrocket.mdl")
       
        sprite_explosion = precache_model("sprites/zerogxplode.spr")
        sprite_beamcylinder = precache_model("sprites/white.spr")
       
        precache_sound("weapons/rocketfire1.wav")
        precache_sound("common/bodydrop2.wav")
        precache_sound("items/gunpickup2.wav")
        precache_sound("jetpack.wav")
}

public plugin_init() {
        register_plugin("[ZP] Extra Item: Jetpack + Bazooka", "1.1", "<VeCo>")
       
        cvar_cost = register_cvar("vecjp_cost","90")
        cvar_speed = register_cvar("vecjp_rocket_speed","1500")
        cvar_damage = register_cvar("vecjp_damage","700")
        cvar_reload_time = register_cvar("vecjp_reload_time","10.0")
        cvar_radius = register_cvar("vecjp_radius","250")
        cvar_start_energy = register_cvar("vecjp_start_energy","350")
        cvar_remove_energy = register_cvar("vecjp_remove_energy","1")
        cvar_heal_energy = register_cvar("vecjp_heal_energy","15")
        cvar_heal_time = register_cvar("vecjp_heal_time","1.0")
        cvar_zvelocity = register_cvar("vecjp_zvelocity","300")
        cvar_aimvelocity = register_cvar("vecjp_aimvelocity","300")
        cvar_can_drop = register_cvar("vecjp_can_drop","0")
        cvar_one_round = register_cvar("vecjp_one_round","0")
       
        jp_itemid = zp_register_extra_item("\r[Item] \wJetPack + Bazooka",get_pcvar_num(cvar_cost),ZP_TEAM_HUMAN)
       
        register_clcmd("hehe","drop_jetpack")
       
        RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_knife","shoot_jetpack")
        RegisterHam(Ham_Player_Jump,"player","fly_jetpack")
       
        register_touch("weapon_jetpack","player","get_jetpack")
        register_touch("","info_jetpack_rocket","touch_jetpack")
       
        register_event("DeathMsg","hook_death","a")
        register_event("CurWeapon","event_curweapon","be","1=1","2=29")
       
        register_logevent("round_end",2,"1=Round_End")
       
        maxplayers = get_maxplayers()
        hudsync = CreateHudSyncObj()
}

public zp_extra_item_selected(id,itemid)
{
        if(itemid != jp_itemid) return
       
        if(has_jetpack[id])
        {
                //client_print(id,print_chat,"[ZP] You already own a jetpack.")
                return
        }
       
        has_jetpack[id] = true
        can_shoot[id] = true
        energy[id] = get_pcvar_num(cvar_start_energy)
       
        emit_sound(id,CHAN_AUTO,"items/gunpickup2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
       
        client_cmd(id,"weapon_knife")
       
        entity_set_string(id,EV_SZ_viewmodel,"models/zp_apocalypse/v_egon.mdl")
        entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.mdl")
       
        set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
}

public drop_jetpack(id) if(get_pcvar_num(cvar_can_drop) && get_user_weapon(id) == CSW_KNIFE && has_jetpack[id]) action_drop_user_jetpack(id)

public shoot_jetpack(ent)
{
        new id = entity_get_edict(ent,EV_ENT_owner)
        if(!has_jetpack[id]) return HAM_IGNORED
       
        if(!can_shoot[id])
        {
                //client_print(id,print_center,"[ZP] You can't shoot with the jetpack right now. Please wait...")
                return HAM_IGNORED
        }
       
        action_shoot_user_jetpack(id)
       
        return HAM_IGNORED
}

public fly_jetpack(id)
{
        if(!has_jetpack[id]) return HAM_IGNORED
       
        if(!energy[id])
        {
                //client_print(id,print_center,"[ZP] You don't have enough energy to fly.")
                return HAM_IGNORED
        }
       
        if(get_user_button(id) & IN_DUCK) action_fly_user_jetpack(id)
       
        return HAM_IGNORED
}

public action_heal_user_jetpack(id)
{
        if(!is_user_connected(id) || !has_jetpack[id]) return
       
        if(zp_get_user_zombie(id) || zp_get_user_nemesis(id))
        {
                action_remove_user_jetpack(id)
                return
        }
       
        if(entity_get_int(id,EV_INT_flags) & FL_INWATER)
        {
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte(TE_KILLBEAM)
                write_short(id)
                message_end()
        }
       
        if(entity_get_int(id,EV_INT_flags) & FL_ONGROUND)
        {
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte(TE_KILLBEAM)
                write_short(id)
                message_end()
               
                if(energy[id] < get_pcvar_num(cvar_start_energy))
                {
                        energy[id] += get_pcvar_num(cvar_heal_energy)
                        if(energy[id] > get_pcvar_num(cvar_start_energy)) energy[id] = get_pcvar_num(cvar_start_energy)
                       
                        set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
                        ShowSyncHudMsg(id,hudsync,"Jetpack Energy: [%i / %i]",energy[id],get_pcvar_num(cvar_start_energy))
                }
        }
       
        set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
}

public action_drop_user_jetpack(id)
{
        remove_task(id)
       
        has_jetpack[id] = false
        can_shoot[id] = false
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_KILLBEAM)
        write_short(id)
        message_end()
       
        emit_sound(id,CHAN_AUTO,"common/bodydrop2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
       
        new ent = create_entity("info_target")
        if(ent)
        {
                new Float:origin[3],Float:velocity[3]
               
                entity_get_vector(id,EV_VEC_origin,origin)
                velocity_by_aim(id,60,velocity)
               
                origin[0] += velocity[0]
                origin[1] += velocity[1]
               
                entity_set_string(ent,EV_SZ_classname,"weapon_jetpack")
                entity_set_model(ent,"models/w_egon.mdl")
               
                entity_set_int(ent,EV_INT_solid,SOLID_TRIGGER)
                entity_set_int(ent,EV_INT_movetype,MOVETYPE_TOSS)
               
                entity_set_int(ent,EV_INT_iuser1,energy[id])
               
                entity_set_float(ent,EV_FL_gravity,1.0)
               
                entity_set_origin(ent,origin)
        }
       
        energy[id] = 0
}

public action_shoot_user_jetpack(id)
{
        can_shoot[id] = false
       
        emit_sound(id,CHAN_AUTO,"weapons/rocketfire1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
       
        new ent = create_entity("info_target")
        if(ent)
        {
                new Float:origin[3],Float:velocity[3],Float:angles[3]
               
                entity_get_vector(id,EV_VEC_origin,origin)
                velocity_by_aim(id,60,velocity)
               
                origin[0] += velocity[0]
                origin[1] += velocity[1]
               
                velocity[0] = 0.0
                velocity[1] = 0.0
               
                velocity_by_aim(id,get_pcvar_num(cvar_speed),velocity)
               
                entity_set_string(ent,EV_SZ_classname,"info_jetpack_rocket")
                entity_set_model(ent,"models/rpgrocket.mdl")
               
                entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
                entity_set_int(ent,EV_INT_movetype,MOVETYPE_FLY)
               
                entity_set_size(ent,Float:{-0.5,-0.5,-0.5},Float:{0.5,0.5,0.5})
               
                entity_set_vector(ent,EV_VEC_velocity,velocity)
               
                vector_to_angle(velocity,angles)
                entity_set_vector(ent,EV_VEC_angles,angles)
               
                entity_set_edict(ent,EV_ENT_owner,id)
               
                entity_set_int(ent,EV_INT_effects,entity_get_int(ent,EV_INT_effects) | EF_LIGHT)
               
                entity_set_origin(ent,origin)
               
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte(TE_BEAMFOLLOW)
                write_short(ent)
                write_short(sprite_beamcylinder)
                write_byte(30)
                write_byte(5)
                write_byte(255)
                write_byte(255)
                write_byte(255)
                write_byte(140)
                message_end()
        }
       
        set_task(get_pcvar_float(cvar_reload_time),"action_reload_user_jetpack",id)
}

public action_fly_user_jetpack(id)
{
        new Float:velocity[3]
        velocity_by_aim(id,get_pcvar_num(cvar_aimvelocity),velocity)
        velocity[2] += float(get_pcvar_num(cvar_zvelocity))
        entity_set_vector(id,EV_VEC_velocity,velocity)
       
        energy[id] -= get_pcvar_num(cvar_remove_energy)
        if(energy[id] < 1) energy[id] = 0
       
        set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
        ShowSyncHudMsg(id,hudsync,"Jetpack Energy: [%i / %i]",energy[id],get_pcvar_num(cvar_start_energy))
       
        emit_sound(id,CHAN_AUTO,"jetpack.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_KILLBEAM)
        write_short(id)
        message_end()
       
        if(entity_get_int(id,EV_INT_flags) & FL_INWATER) return
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW)
        write_short(id)
        write_short(sprite_beamcylinder)
        write_byte(25)
        write_byte(10)
        write_byte(255)
        write_byte(255)
        write_byte(255)
        write_byte(175)
        message_end()
}

public action_reload_user_jetpack(id)
{
        if(!is_user_connected(id) || !has_jetpack[id]) return
        can_shoot[id] = true
       
        //client_print(id,print_center,"[ZP] Your jetpack has been reloaded. Now you can shoot again!")
}

public get_jetpack(ent,id)
{
        if(has_jetpack[id] || zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return
       
        remove_task(id)
       
        has_jetpack[id] = true
        can_shoot[id] = false
        energy[id] = entity_get_int(ent,EV_INT_iuser1)
       
        emit_sound(id,CHAN_AUTO,"items/gunpickup2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
       
        client_cmd(id,"weapon_knife")
       
        entity_set_string(id,EV_SZ_viewmodel,"models/zp_apocalypse/v_egon.mdl")
        entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.mdl")
       
        set_task(get_pcvar_float(cvar_reload_time),"action_reload_user_jetpack",id)
        set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
       
        remove_entity(ent)
}

public touch_jetpack(world,ent)
{
        if(!is_valid_ent(ent)) return
       
        new Float:origin[3], origin_int[3], owner = entity_get_edict(ent,EV_ENT_owner)
        entity_get_vector(ent,EV_VEC_origin,origin)
       
        FVecIVec(origin,origin_int)
       
        new id = -1
        while((id = find_ent_in_sphere(id,origin,float(get_pcvar_num(cvar_radius)))) != 0)
        {
                if(!is_user_connected(owner)) break
               
                if(1 <= id <= maxplayers)
                {
                        if(!zp_get_user_zombie(id) && !zp_get_user_nemesis(id)) continue
                        ExecuteHamB(Ham_TakeDamage,id, owner,owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
                } else {
                        if(!is_valid_ent(id)) continue
                       
                        new classname[15]
                        entity_get_string(id,EV_SZ_classname,classname,14)
                       
                        if(!equal(classname,"func_breakable")) continue
                       
                        ExecuteHamB(Ham_TakeDamage,id, owner,owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
                }
        }
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
        write_byte(TE_EXPLOSION)
        write_coord(origin_int[0])
        write_coord(origin_int[1])
        write_coord(origin_int[2])
        write_short(sprite_explosion)
        write_byte(floatround(get_pcvar_num(cvar_radius) * 0.5))
        write_byte(10)
        write_byte(0)
        message_end()
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
        write_byte(TE_DLIGHT)
        write_coord(origin_int[0])
        write_coord(origin_int[1])
        write_coord(origin_int[2])
        write_byte(floatround(get_pcvar_num(cvar_radius) * 0.25))
        write_byte(200)
        write_byte(145)
        write_byte(0)
        write_byte(16)
        write_byte(32)
        message_end()
       
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
        write_byte(TE_BEAMCYLINDER)
        write_coord(origin_int[0])
        write_coord(origin_int[1])
        write_coord(origin_int[2])
        write_coord(origin_int[0])
        write_coord(origin_int[1])
        write_coord(origin_int[2] + get_pcvar_num(cvar_radius))
        write_short(sprite_beamcylinder)
        write_byte(0)
        write_byte(0)
        write_byte(10)
        write_byte(50)
        write_byte(0)
        write_byte(255)
        write_byte(255)
        write_byte(255)
        write_byte(160)
        write_byte(0)
        message_end()
       
        remove_entity(ent)
}

public hook_death()
{
        new id = read_data(2)
        action_remove_user_jetpack(id)
}

public action_remove_user_jetpack(id)
{
        if(get_pcvar_num(cvar_can_drop))
        {
                if(has_jetpack[id] && get_user_weapon(id) == CSW_KNIFE) action_drop_user_jetpack(id)
               
                has_jetpack[id] = false
                can_shoot[id] = false
                energy[id] = 0
               
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte(TE_KILLBEAM)
                write_short(id)
                message_end()
        } else {
                has_jetpack[id] = false
                can_shoot[id] = false
                energy[id] = 0
        }
}

public event_curweapon(id)
{
        if(has_jetpack[id] && !zp_get_user_zombie(id))
        {
                entity_set_string(id,EV_SZ_viewmodel,"models/zp_apocalypse/v_egon.mdl")
                entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.mdl")
        }
}

public round_end()
{
        remove_entity_name("weapon_jetpack")
       
        if(get_pcvar_num(cvar_one_round))
        {
                for(new i=1;i<maxplayers;i++)
                {
                        if(is_user_connected(i))
                        {
                                has_jetpack[i] = false
                                can_shoot[i] = false
                                energy[i] = 0
                        }
                }
        }
}

public client_connect(id) has_jetpack[id] = false
public client_disconnect(id) has_jetpack[id] = false

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...