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[REQUEST] need help with zp_has_round_started


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hello, can anyone help me with adding zp_has_round_started on my jetpack plugin
Code:

#include <amxmodx>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zp_apocalypse>
#include <colorchat>

// HUD messages
const Float:HUD_EVENT_X = -1.0
const Float:HUD_EVENT_Y = 0.17
const Float:HUD_INFECT_X = 0.05
const Float:HUD_INFECT_Y = 0.45
const Float:HUD_SPECT_X = -1.0
const Float:HUD_SPECT_Y = 0.8
const Float:HUD_STATS_X = 0.02
const Float:HUD_STATS_Y = 0.9

#pragma tabsize 0

#define PLUGINNAME                "[ZP] Extra: Jetpack+Bazooka"
#define VERSION                        "1.0"
#define AUTHOR                        "HCS"

#define MAX_PLAYERS        32

#define ACCESS_LEVEL        ADMIN_LEVEL_A

#define TE_EXPLOSION        3
#define TE_BEAMFOLLOW        22
#define TE_BEAMCYLINDER        21

#define JETPACK_COST  60 // set how may ammopacks the Jatpack+Rocket cost

new ROCKET_MDL[64] = "models/rpgrocket.mdl"
new ROCKET_SOUND[64] = "weapons/rocketfire1.wav"
new getrocket[64] = "items/9mmclip2.wav"

new bool:fly[33] = false
new bool:rocket[33] = false
new bool:rksound[33] = false
new bool:shot[33] = false

new frame[33];

new const Float:g_flCoords[][] =
{
        {0.50, 0.40},
        {0.56, 0.44},
        {0.60, 0.50},
        {0.56, 0.56},
        {0.50, 0.60},
        {0.44, 0.56},
        {0.40, 0.50},
        {0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new Float:gltime = 0.0
new Float:last_Rocket[33] = 0.0
new Float:jp_cal[33] = 0.0
new Float:jp_soun[33] = 0.0
new flame, explosion, trail, white
new g_flyEnergy[33], hasjet[33]
new cvar_jetpack, cvar_jetpackSpeed, cvar_RocketDmg, cvar_Dmg_range, cvar_jetpackUpSpeed, cvar_jetpackAcrate ,cvar_RocketDelay, cvar_RocketSpeed, cvar_fly_max_engery, cvar_fly_engery, cvar_regain_energy, g_item_jetpack, cvar_cal_time, cvar_oneround


public plugin_init() {
        register_plugin(PLUGINNAME, VERSION, AUTHOR)
       
        g_item_jetpack = zp_register_extra_item("\r[Item] \wJetPack + Bazooka", JETPACK_COST, ZP_TEAM_HUMAN)
       
        cvar_jetpack = register_cvar("zp_jetpack", "2")
       
        cvar_jetpackSpeed=register_cvar("zp_jp_forward_speed","350.0")
        cvar_jetpackUpSpeed=register_cvar("zp_jp_up_speed","35.0")
        cvar_jetpackAcrate=register_cvar("zp_jp_accelerate","50.0")
       
        cvar_RocketDelay=register_cvar("zp_jp_rocket_delay","20.0")
        cvar_RocketSpeed=register_cvar("zp_jp_rocket_speed","1700")
        cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","950")
        cvar_Dmg_range=register_cvar("zp_jp_damage_radius","600")       
       
        cvar_fly_max_engery = register_cvar("zp_jp_max_engery", "10")
        cvar_fly_engery = register_cvar("zp_jp_engery", "1")
        cvar_regain_energy = register_cvar("zp_jp_regain_energy", "1")
        cvar_cal_time = register_cvar("zp_jp_energy_cal", "1.0")
        cvar_oneround = register_cvar("zp_jp_oneround", "0")

        register_event("CurWeapon", "check_models", "be")
        register_event("DeathMsg", "player_die", "a")
        register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
       
        register_forward(FM_StartFrame, "fm_startFrame")
        register_forward(FM_PlayerPreThink, "fm_prethink")
        register_forward(FM_EmitSound, "emitsound")
}

public plugin_precache() {
        precache_model("models/p_egon.mdl")
        precache_model("models/zp_apocalypse/v_egon.mdl")
        precache_model("models/w_egon.mdl")
        precache_sound("jetpack.wav")
        precache_sound("jp_blow.wav")
       
        precache_model(ROCKET_MDL)
        precache_sound(ROCKET_SOUND)
        precache_sound(getrocket)
       
        explosion = precache_model("sprites/zerogxplode.spr")
        trail = precache_model("sprites/smoke.spr")
        flame = precache_model("sprites/xfireball3.spr")
        white = precache_model("sprites/white.spr")
}

public client_putinserver(id) {
        fly[id] = false
        rocket[id] = false
        hasjet[id] = 0
        g_flyEnergy[id] = 0
}

public client_disconnect(id) {
        fly[id] = false
        rocket[id] = false
        hasjet[id] = 0
        g_flyEnergy[id] = 0
}

public event_round_start()
{
        remove_jetpacks();
        if (get_pcvar_num(cvar_oneround) == 1) {
                for (new id; id <= 32; id++) hasjet[id] = 0, g_flyEnergy[id] = 0, fly[id] = false;
        }
}

public fm_startFrame(){

    gltime = get_gametime()
    static id
    for (id = 1; id <= 32; id++)
    {
      frame[id]++;

    }
}

public fm_prethink(id) {

    if(is_user_alive(id))
      jp_forward(id)
}

public jp_forward(player) {
       
        if (!is_user_alive(player) && (zp_get_user_zombie(player) || zp_get_user_nemesis(player) || zp_get_user_survivor(player)))
                return FMRES_IGNORED               
               
        if (!hasjet[player])
                return FMRES_IGNORED
       
        if(jp_cal[player] < gltime){
                jp_energy(player); jp_cal[player] = gltime + get_pcvar_float(cvar_cal_time)
        }
       
        check_rocket(player)
       
        new clip,ammo
        new wpnid = get_user_weapon(player,clip,ammo)
        if (wpnid == CSW_KNIFE || wpnid != CSW_KNIFE){
                if(get_pcvar_num(cvar_jetpack) == 1){
                        if(!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK){
                                if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
                                        if(jp_soun[player] < gltime){
                                                jp_soun[player] = gltime + 1.0
                                        }
                                }                       
                                else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
                                        if(jp_soun[player] < gltime){
                                                        emit_sound(player,CHAN_ITEM,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
                                                        jp_soun[player] = gltime + 1.0
                                        }
                                }
                        }
                        human_fly(player)
                        attack(player)       
                }
                if((pev(player,pev_button)&IN_ATTACK2)){
                                attack2(player)       
                        }       
        }
        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)){                       
                if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
                        if(jp_soun[player] < gltime){
                                jp_soun[player] = gltime + 1.0
                        }
                }                                       
                else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
                        if(jp_soun[player] < gltime){
                                emit_sound(player,CHAN_ITEM,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
                                jp_soun[player] = gltime + 1.0
                        }
                }
                human_fly(player)
                attack(player)
        }       
       
        return FMRES_IGNORED
}

public jp_energy(player) {
                       
                if (!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK)       
                {
                        // Get our current velocity               
                        new clip,ammo
                        new wpnid = get_user_weapon(player,clip,ammo)
                        if (wpnid == CSW_KNIFE)
                        {
                        // flying
                        if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.09)
                                g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery);        // Increase distance counter               
                        }
                }
                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))
                {
                        if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.09)
                                g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery);        // Increase distance counter       
                }
                // Walking/Runnig
                if (pev(player, pev_flags) & FL_ONGROUND)       
                        g_flyEnergy[player] = g_flyEnergy[player] + get_pcvar_num(cvar_regain_energy);// Decrease distance counter
}

public attack(player) {
//code snippa from TS_Jetpack 1.0 - Jetpack plugin for The Specialists.
//http://forums.alliedmods.net/showthread.php?t=55709&highlight=jetpack
//By: Bad_Bud
        if(fly[player])
        {       
                static Float:JetpackData[3]
                pev(player,pev_velocity,JetpackData)
                                       
                new fOrigin[3],Float:Aim[3]
                VelocityByAim(player, 10, Aim)
                get_user_origin(player,fOrigin)
                fOrigin[0] -= floatround(Aim[0])
                fOrigin[1] -= floatround(Aim[1])
                fOrigin[2] -= floatround(Aim[2])
               
               
                if((pev(player,pev_button)&IN_JUMP && pev(player,pev_button)&IN_DUCK) && !(pev(player, pev_flags) & FL_ONGROUND))
                        {
                               
                                message_begin(MSG_ALL,SVC_TEMPENTITY)
                                write_byte(17)
                                write_coord(fOrigin[0])
                                write_coord(fOrigin[1])
                                write_coord(fOrigin[2])
                                write_short(flame)
                                write_byte(9)
                                write_byte(180)
                                message_end()       
                               
                                static Float:Speed
                                Speed=floatsqroot(JetpackData[0]*JetpackData[0]+JetpackData[1]*JetpackData[1])
                                       
                                if(Speed!=0.0)//Makes players only lay down if their speed isn't 0; if they are thrusting forward.
                                {
                                        set_pev(player,EV_INT_movetype,6)
                                        set_pev(player, pev_frame, 0.9)
                                }
                                       
                                if(Speed<get_pcvar_float(cvar_jetpackSpeed))
                                        Speed+=get_pcvar_float(cvar_jetpackAcrate)
                                               
                                static Float:JetpackData2[3]
                                pev(player,pev_angles,JetpackData2)
                                JetpackData2[2]=0.0//Remove the Z value/
                                       
                                angle_vector(JetpackData2,ANGLEVECTOR_FORWARD,JetpackData2)
                                JetpackData2[0]*=Speed
                                JetpackData2[1]*=Speed
                                       
                                JetpackData[0]=JetpackData2[0]
                                JetpackData[1]=JetpackData2[1]
                        }
                       
                if(JetpackData[2]<get_pcvar_float(cvar_jetpackSpeed)&&JetpackData[2]>0.0)//Jetpacks get more power on the way down -- it helps landing.
                                JetpackData[2]+=get_pcvar_float(cvar_jetpackUpSpeed)
                        else if(JetpackData[2]<0.0)
                                JetpackData[2]+=(get_pcvar_float(cvar_jetpackUpSpeed)*1.15)
                                       
                set_pev(player,pev_velocity,JetpackData)
        }
}

public attack2(player) {
               
        if (rocket[player])
        {
               
                new rocket = create_entity("info_target")
                if(rocket == 0) return PLUGIN_CONTINUE
               
                entity_set_string(rocket, EV_SZ_classname, "zp_jp_rocket")
                entity_set_model(rocket, ROCKET_MDL)
               
                entity_set_size(rocket, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})
                entity_set_int(rocket, EV_INT_movetype, MOVETYPE_FLY)
                entity_set_int(rocket, EV_INT_solid, SOLID_BBOX)
               
                new Float:vSrc[3]
                entity_get_vector(player, EV_VEC_origin, vSrc)
               
                new Float:Aim[3],Float:origin[3]
                VelocityByAim(player, 64, Aim)
                entity_get_vector(player,EV_VEC_origin,origin)
               
                vSrc[0] += Aim[0]
                vSrc[1] += Aim[1]
                entity_set_origin(rocket, vSrc)
               
                new Float:velocity[3], Float:angles[3], fOrigin[3]
                VelocityByAim(player, get_pcvar_num(cvar_RocketSpeed), velocity)
               
                entity_set_vector(rocket, EV_VEC_velocity, velocity)
                vector_to_angle(velocity, angles)
                entity_set_vector(rocket, EV_VEC_angles, angles)
                entity_set_edict(rocket,EV_ENT_owner,player)
                entity_set_float(rocket, EV_FL_takedamage, 1.0)
               
                set_pev(rocket, pev_effects, EF_LIGHT)

                message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
                write_byte(TE_BEAMFOLLOW)
                write_short(rocket)
                write_short(trail)
                write_byte(25)
                write_byte(8)
                write_byte(255)
                write_byte(255)
                write_byte(255)
                write_byte(200)
                message_end()

                                message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
                                write_byte( TE_BEAMTORUS );
                                write_coord( fOrigin[0]); // Start X
                                write_coord( fOrigin[1] ); // Start Y
                                write_coord( fOrigin[2]); // Start Z
                                write_coord( fOrigin[0] ); // End X
                                write_coord( fOrigin[1] ); // End Y
                                write_coord( fOrigin[2] + 10); // End Z
                                write_short( flame ); // sprite
                                write_byte( 0 ); // Starting frame
                                write_byte( 0  ); // framerate * 0.1
                                write_byte( 8 ); // life * 0.1
                                write_byte( 50 ); // width
                                write_byte( 0 ); // noise
                                write_byte( 0 ); // color r,g,b
                                write_byte( 255 ); // color r,g,b
                                write_byte( 0 ); // color r,g,b
                                write_byte( 255 ); // brightness
                                write_byte( 0 ); // scroll speed
                                message_end();

                emit_sound(rocket, CHAN_WEAPON, ROCKET_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM)
               
                shot[player] = true
                last_Rocket[player] = gltime + get_pcvar_num(cvar_RocketDelay)
        }
        return PLUGIN_CONTINUE
}

public check_models(id) {

        if (zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
                return FMRES_IGNORED
       
        if(hasjet[id]) {
                new clip,ammo
                new wpnid = get_user_weapon(id,clip,ammo)
               
                if ( wpnid == CSW_KNIFE ) {
                        switchmodel(id)
                }
                return PLUGIN_CONTINUE
        }
        return PLUGIN_CONTINUE
}

public switchmodel(id) {
        entity_set_string(id,EV_SZ_viewmodel,"models/zp_apocalypse/v_egon.mdl")
        entity_set_string(id,EV_SZ_weaponmodel,"models/p_egon.mdl")
}

public remove_jetpacks() {
        new nextitem  = find_ent_by_class(-1,"zp_jp_jetpack")
        while(nextitem) {
                remove_entity(nextitem)
                nextitem = find_ent_by_class(-1,"zp_jp_jetpack")
        }
        return PLUGIN_CONTINUE
}

public emitsound(entity, channel, const sample[]) {
        if(is_user_alive(entity)) {
                new clip,ammo
                new weapon = get_user_weapon(entity,clip,ammo)
               
                if(hasjet[entity] && weapon == CSW_KNIFE) {
                        if(equal(sample,"weapons/knife_slash1.wav")) return FMRES_SUPERCEDE
                        if(equal(sample,"weapons/knife_slash2.wav")) return FMRES_SUPERCEDE
                       
                        if(equal(sample,"weapons/knife_deploy1.wav")) return FMRES_SUPERCEDE
                        if(equal(sample,"weapons/knife_hitwall1.wav")) return FMRES_SUPERCEDE
                       
                        if(equal(sample,"weapons/knife_hit1.wav")) return FMRES_SUPERCEDE
                        if(equal(sample,"weapons/knife_hit2.wav")) return FMRES_SUPERCEDE
                        if(equal(sample,"weapons/knife_hit3.wav")) return FMRES_SUPERCEDE
                        if(equal(sample,"weapons/knife_hit4.wav")) return FMRES_SUPERCEDE
                       
                        if(equal(sample,"weapons/knife_stab.wav")) return FMRES_SUPERCEDE
                }
        }
        return FMRES_IGNORED
}

public human_fly(player) {
       
        if (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery)*0.1)
        {
                jp_off(player);       
        }
        if (g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.1)
        {
                jp_on(player);
        }
}

public jp_on(player) {

        fly[player] = true
       
}

public jp_off(player) {

        fly[player] = false
       
}

public check_rocket(player) {
               
        if (last_Rocket[player] > gltime)
        {       
                rk_forbidden(player)
                rksound[player] = true
        }
        else
        {       

                if (shot[player])
                {
                        rksound[player] = false
                        shot[player] = false
                }
                rk_sound(player)
                rk_allow(player)
        }
       
}

public rk_allow(player) {
               
        rocket[player] = true
}

public rk_forbidden(player) {

        rocket[player] = false
       
}

public rk_sound(player) {

        if (!rksound[player])
        {
                engfunc(EngFunc_EmitSound, player, CHAN_WEAPON, getrocket, 1.0, ATTN_NORM, 0, PITCH_NORM)
                client_print(player, print_center, "[!] BAZOOKA IS READY [!]")
                rksound[player] = true
        }
        else if (rksound[player])
        {
               
        }
       
}

public player_die() {
       
        new id = read_data(2)
        if(hasjet[id]) {
                hasjet[id] = 0
                rocket[id] = false
                g_flyEnergy[id] = 0
        }
       
        return PLUGIN_CONTINUE
}

public pfn_touch(ptr, ptd) {
    if(is_valid_ent(ptr)) {
        new classname[32]
        entity_get_string(ptr,EV_SZ_classname,classname,31)
       
        if(equal(classname, "zp_jp_jetpack")) {
            if(is_valid_ent(ptd)) {
                new id = ptd
                if(id > 0 && id < 34) {
                    if(!hasjet[id] && !zp_get_user_zombie(id) && is_user_alive(id)) {
                       
                        hasjet[id] = 1
                        g_flyEnergy[id] = get_pcvar_num(cvar_fly_engery)
                        rocket[id] = true
                        client_cmd(id,"spk items/gunpickup2.wav")
                        engclient_cmd(id,"weapon_knife")
                        switchmodel(id)
                        remove_entity(ptr)
                                        }
                                }
                        }
                }else if(equal(classname, "zp_jp_rocket")) {
                        new Float:fOrigin[3]
                        new iOrigin[3]
                        entity_get_vector(ptr, EV_VEC_origin, fOrigin)
                        FVecIVec(fOrigin,iOrigin)
                        jp_radius_damage(ptr)
                               
                        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_EXPLOSION)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_short(explosion)
                        write_byte(55)
                        write_byte(15)
                        write_byte(0)
                        message_end()

                        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_EXPLOSION)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_short(explosion)
                        write_byte(65)
                        write_byte(15)
                        write_byte(0)
                        message_end()

                        message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_EXPLOSION)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_short(explosion)
                        write_byte(85)
                        write_byte(15)
                        write_byte(0)
                        message_end()
                               
                        message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_BEAMCYLINDER)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2]+650)
                        write_short(white)
                        write_byte(0)
                        write_byte(1)
                        write_byte(6)
                        write_byte(100)
                        write_byte(1)
                        write_byte(255)
                        write_byte(255)
                        write_byte(255)
                        write_byte(200)
                        write_byte(0)
                        message_end()

                        message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_BEAMCYLINDER)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2]+650)
                        write_short(white)
                        write_byte(0)
                        write_byte(1)
                        write_byte(6)
                        write_byte(100)
                        write_byte(1)
                        write_byte(255)
                        write_byte(255)
                        write_byte(255)
                        write_byte(200)
                        write_byte(0)
                        message_end()

                        message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
                        write_byte(TE_BEAMCYLINDER)
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2])
                        write_coord(iOrigin[0])
                        write_coord(iOrigin[1])
                        write_coord(iOrigin[2]+650)
                        write_short(white)
                        write_byte(0)
                        write_byte(1)
                        write_byte(6)
                        write_byte(100)
                        write_byte(1)
                        write_byte(255)
                        write_byte(255)
                        write_byte(255)
                        write_byte(200)
                        write_byte(0)
                        message_end()
                       
                        if(is_valid_ent(ptd)) {
                                new classname2[32]
                                entity_get_string(ptd,EV_SZ_classname,classname2,31)
                               
                                if(equal(classname2,"func_breakable"))
                                        force_use(ptr,ptd)
                        }
                       
                        remove_entity(ptr)
                }
        }
        return PLUGIN_CONTINUE
}

public zp_user_infected_pre(player, infector){
       
        hasjet[player] = 0;
        g_flyEnergy[player] = 0;
        rocket[player] = false;
}

public zp_extra_item_selected(player, itemid)
{
        new clip,ammo
        new weapon = get_user_weapon(player,clip,ammo)
        new name[32] 
        get_user_name(player, name, 31) 
               
        if (itemid == g_item_jetpack)
        {
        ColorChat(player, GREY, "^4[ZP]^1 ^1Press ^3-CTRL+SPACE-^1 to fly!")
        ColorChat(player, GREY, "^4[ZP]^1 ^1Press ^3-RIGHT CLICK-^1 to shoot!")
        hasjet[player] = 1
        g_flyEnergy[player] = get_pcvar_num(cvar_fly_max_engery)
        rocket[player] = true
        client_cmd(player,"spk items/gunpickup2.wav")
        if(weapon == CSW_KNIFE)
                {
                        switchmodel(player)
                }
        else
                {
                        engclient_cmd(player,"weapon_knife"),switchmodel(player)
                }
        }
}


stock jp_radius_damage(entity) {
        new id = entity_get_edict(entity,EV_ENT_owner)
        new packs,name[32];
        for(new i = 1; i < 33; i++) {
                if(is_user_alive(i)) {
                        new dist = floatround(entity_range(entity,i))
                       
                        if(dist <= get_pcvar_num(cvar_Dmg_range)) {
                                new hp = get_user_health(i)
                                new Float:damage = get_pcvar_float(cvar_RocketDmg)-(get_pcvar_float(cvar_RocketDmg)/get_pcvar_float(cvar_Dmg_range))*float(dist)
                               
                                new Origin[3]
                                get_user_origin(i,Origin)
                                new iPos = ++g_iPlayerPos[id]
                                if( iPos == sizeof(g_flCoords) )
                        {
                                iPos = g_iPlayerPos[id] = 0
                        }
                               
                                if(zp_get_user_zombie(id) != zp_get_user_zombie(i)) {
                                                get_user_name(i,name,31);
                                                if(damage>=800)
                                                        packs = 2;
                                                else
                                                        packs = 1;
                                                       
                                                if(hp > damage)
                                                {
                                                       
                                                        zp_set_user_ammo_packs ( id, zp_get_user_ammo_packs ( id ) + packs );
                                                        jp_take_damage(i,floatround(damage),Origin,DMG_BLAST)
                                                        ColorChat(id, GREY, "^4[ZP]^1 Damage to ^4%s^1 :: ^4%i^1 damage", name, floatround(damage))

                                                        set_hudmessage( 0, 40, 80, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1 )
                                                        //show_hudmessage( id, "%i", floatround(damage) )
                                                       
                                                }
                                                else
                                                {
                                                        log_kill(id,i,"Jetpack Rocket",0)
                                                        zp_set_user_ammo_packs ( id, zp_get_user_ammo_packs ( id ) + 4 );
                                                                ColorChat(0, GREY, "", name)
                                                }
                                        }
                        }
                }
        }
}

stock log_kill(killer, victim, weapon[], headshot)
{
// code from MeRcyLeZZ
        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
        ExecuteHamB(Ham_Killed, victim, killer, 2) // set last param to 2 if you want victim to gib
        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)

       
        message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))
        write_byte(killer)
        write_byte(victim)
        write_byte(headshot)
        write_string(weapon)
        message_end()
//
       
        if(get_user_team(killer)!=get_user_team(victim))
                set_user_frags(killer,get_user_frags(killer) +1)
        if(get_user_team(killer)==get_user_team(victim))
                set_user_frags(killer,get_user_frags(killer) -1)
               
        new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]

        get_user_name(killer, kname, 31)
        get_user_team(killer, kteam, 9)
        get_user_authid(killer, kauthid, 31)
 
        get_user_name(victim, vname, 31)
        get_user_team(victim, vteam, 9)
        get_user_authid(victim, vauthid, 31)
               
        log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
        kname, get_user_userid(killer), kauthid, kteam,
        vname, get_user_userid(victim), vauthid, vteam, weapon)

        return PLUGIN_CONTINUE;
}

stock jp_take_damage(victim,damage,origin[3],bit) {
    message_begin(MSG_ONE,get_user_msgid("Damage"),{0,0,0},victim)
    write_byte(21)
    write_byte(20)
    write_long(bit)
    write_coord(origin[0])
    write_coord(origin[1])
    write_coord(origin[2])
    message_end()
   
    set_user_health(victim,get_user_health(victim)-damage)
        client_cmd(victim,"spk fvox/flatline.wav")
        msg_screen_fade(victim, 1, 255, 0, 0, 115)
        msg_screen_shake( victim, 255<<10, 10<<10, 255<<10 );
}

stock msg_screen_fade(id, holdtime, r, g, b, a)
{
        message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0, 0, 0}, id)
        write_short(seconds_to_units(holdtime))
        write_short(seconds_to_units(holdtime))
        write_short(0)
        write_byte(r)
        write_byte(g)
        write_byte(b)
        write_byte(a)
        message_end()
}

stock seconds_to_units(time) {
        return ((1 << 10) * (time))
}

public msg_screen_shake( id,  Amplitud ,  Duracion, Frecuencia  ){
 
    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), {0,0,0}, id);
    write_short(255<<10);
    write_short(10<<10);
    write_short(255<<10);
    message_end()
 
}

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ę...