Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Zombie Plague 4.3

[KOSZ] BAZUKA ABY NIEDAŁO SIE PRZEKAZACWITAM POTRZEBUJE ZMODYWIKOWAC BAZOKE ,ABY NIEDAŁO JEJ SIE PRZEKAZAC

zombie plague 4.3

  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 ZIGI89

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:30
  • GG:
  • Steam:steam
  • Lokalizacja:Łodygowice
Offline

Napisano 01.12.2015 23:43

Witam posiadam  serwer zombi mod 4,3  

prosił bym ,by ktoś przerobił mi tak  bazoke

aby nie dało jej się przekazać innej osobie albo aby po przekazaniu była bezużyteczna (nie miała  naboi albo po prostu zablokować możliwość wyrzucania jej )

dokładniej chodzi mi  o wyeliminowanie przekazywania sobie bazooki miedzy graczami

wiadomo ze bazuka optrzebuje czasu na przeładowanie 

a gdy ja przekazujemy  sobie miedzy graczami  to  niema tego czasu na przeładowywanie

  i mona strzelać cały czas

#include <amxmodx>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

#define PLUGINNAME    "Extra Item Bazooka"
#define VERSION        "1.0"
#define AUTHOR        "B!gBud"

#define ACCESS_LEVEL    ADMIN_LEVEL_A

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

#define BAZOOKA_COST 30 // set how may ammopacks the Bazooka costs

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

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

new hasbazooka[33]
new Float:gltime = 0.0
new Float:last_Rocket[33] = 0.0
new explosion, trail, white
new cvar_RocketDelay, cvar_RocketSpeed, cvar_RocketDmg, cvar_Dmg_range, g_item_bazooka

public plugin_init()
{
    register_plugin(PLUGINNAME, VERSION, AUTHOR)
    
    g_item_bazooka = zp_register_extra_item("Bazooka", BAZOOKA_COST, ZP_TEAM_HUMAN, 1)
    register_clcmd("drop","cmdDrop")
    
    new ver[64]
    format(ver,63,"%s v%s",PLUGINNAME,VERSION)
    register_cvar("zp_bz_version",ver,FCVAR_SERVER)    
    
    cvar_RocketDelay=register_cvar("zp_bz_rocket_delay","15.0")
    cvar_RocketSpeed=register_cvar("zp_bz_rocket_speed","1500")
    cvar_RocketDmg=register_cvar("zp_bz_rocket_damage","800")
    cvar_Dmg_range=register_cvar("zp_bz_damage_radius","350")
    
    register_event("CurWeapon", "check_models", "be", "1=1")
    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_EmitSound, "emitsound")
}

public plugin_precache()
{
    precache_model("models/p_rpg.mdl")
    precache_model("models/v_rpg.mdl")
    precache_model("models/w_rpg.mdl")
    
    precache_model(ROCKET_MDL)
    precache_sound(ROCKET_SOUND)
    precache_sound(getrocket)
    
    explosion = precache_model("sprites/zerogxplode.spr")
    trail = precache_model("sprites/smoke.spr")
    white = precache_model("sprites/white.spr")
}

public client_putinserver(id)
{
    rocket[id] = false
}

public client_disconnect(id)
{
    rocket[id] = false
}

public event_round_start()
{
    remove_bazookas();
}

public fm_startFrame()
{
        
    gltime = get_gametime()
    static id
    for (id = 1; id <= 32; id++)
    {
        bz_forward(id)
    }
}

public bz_forward(player)
{
    if (!hasbazooka[player])
        return FMRES_IGNORED
    
    check_rocket(player)
    
    new clip,ammo
    new wpnid = get_user_weapon(player,clip,ammo)
    if (wpnid == CSW_KNIFE)
    {
        if((pev(player,pev_button)&IN_ATTACK2))
        {
                attack2(player)    
        }    
    }
    return FMRES_IGNORED
}

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_bz_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]
        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)
        
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW)
        write_short(rocket)
        write_short(trail)
        write_byte(25)
        write_byte(5)
        write_byte(224)
        write_byte(224)
        write_byte(255)
        write_byte(255)
        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_survivor(id))
        return;
    
    if(hasbazooka[id])
    {
        new wpnid = read_data(2);
        if ( wpnid == CSW_KNIFE)
        {
            switchmodel(id)
        }
    }
}

public switchmodel(id)
{
        set_pev(id,pev_viewmodel2,"models/v_rpg.mdl")
        set_pev(id,pev_weaponmodel2,"models/p_rpg.mdl")
}

public remove_bazookas()
{
    new nextitem  = find_ent_by_class(-1,"zp_bazooka")
    while(nextitem)
    {
        remove_entity(nextitem)
        nextitem = find_ent_by_class(-1,"zp_bazooka")
    }
    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(hasbazooka[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 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] Bron przeladowana !!!")
        rksound[player] = true
    }
}

public player_die()
{
    new id = read_data(2)
    if(hasbazooka[id])
    {
        drop_bazooka(id)
        rocket[id] = false
    }
    return PLUGIN_CONTINUE
}

public cmdDrop(id)
{
    if(hasbazooka[id])
    {
        new clip,ammo
        new weapon = get_user_weapon(id,clip,ammo)
        if(weapon == CSW_KNIFE)
        {
            drop_bazooka(id)
            if(!zp_get_user_zombie(id))
            {
                entity_set_string(id,EV_SZ_viewmodel,"models/v_knife.mdl")
                entity_set_string(id,EV_SZ_weaponmodel,"models/p_knife.mdl")
            }
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}

public drop_bazooka(player)
{
    if(hasbazooka[player])
    {
        new Float:Aim[3],Float:origin[3]
        VelocityByAim(player, 64, Aim)
        entity_get_vector(player,EV_VEC_origin,origin)
        
        origin[0] += Aim[0]
        origin[1] += Aim[1]
        
        new bazooka = create_entity("info_target")
        entity_set_string(bazooka,EV_SZ_classname,"zp_bazooka")
        entity_set_model(bazooka,"models/w_rpg.mdl")    
        
        entity_set_size(bazooka,Float:{-16.0,-16.0,-16.0},Float:{16.0,16.0,16.0})
        entity_set_int(bazooka,EV_INT_solid,1)
        
        entity_set_int(bazooka,EV_INT_movetype,6)
        
        entity_set_vector(bazooka,EV_VEC_origin,origin)
    
        
        hasbazooka[player] = 0
        rocket[player] = false
    }    
}

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_bazooka"))
        {
            if(is_valid_ent(ptd))
            {
                new id = ptd
                if(id > 0 && id < 34) {
                    if(!hasbazooka[id] && !zp_get_user_zombie(id) && is_user_alive(id))
                    {
                        engclient_cmd(id,"weapon_knife")
                        hasbazooka[id] = 1
                        rocket[id] = true
                        client_cmd(id,"spk items/gunpickup2.wav")
                        switchmodel(id)
                        remove_entity(ptr)
                    }
                }
            }
        }
        else if(equal(classname, "zp_bz_rocket"))
        {
            new Float:fOrigin[3]
            new iOrigin[3]
            entity_get_vector(ptr, EV_VEC_origin, fOrigin)
            FVecIVec(fOrigin,iOrigin)
            bz_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(30)
            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]+200)
            write_short(white)
            write_byte(0)
            write_byte(1)
            write_byte(6)
            write_byte(8)
            write_byte(1)
            write_byte(255)
            write_byte(255)
            write_byte(192)
            write_byte(128)
            write_byte(5)
            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)
{
    drop_bazooka(player)
    hasbazooka[player] = 0;
    rocket[player] = false;
}

public zp_extra_item_selected(player, itemid)
{
    new clip,ammo
    new weapon = get_user_weapon(player,clip,ammo)
        
    if (itemid == g_item_bazooka)
    {
        hasbazooka[player] = 1
        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 bz_radius_damage(entity)
{
    new attacker  = entity_get_edict(entity, EV_ENT_owner);
    new name[35];
    get_user_name(attacker, name, 34);
    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)
                
                
                if(zp_get_user_zombie(attacker) != zp_get_user_zombie(i))
                {
                        if(hp > damage)
                        {
                            ExecuteHamB(Ham_TakeDamage, i,  entity, attacker, damage, DMG_BLAST);
                        }
                        else
                        {
                            ExecuteHamB(Ham_TakeDamage, i,  entity, attacker, float(hp), DMG_BLAST);
                            log_kill(attacker ,i,"Bazooka",0)
                        }
                }
            }
        }
    }
}

stock log_kill(killer, victim, weapon[], headshot)
{
    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;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

Użytkownik ZIGI89 edytował ten post 01.12.2015 23:46

  • +
  • -
  • 0
<img src="http://steamprofile....1:25467514.png" alt="Tekst alternatywny" />

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.12.2015 06:23

Nazywaj tematy zgodnie z ich treścią.
Napisz ponownie temat nazywając go tak, aby każdy wiedział o co chodzi.

Jednoznacznie określ problematykę tematu, wyróżniając go spośród reszty.
Nie dodawaj zbędnych informacji, znaków, ani emotikon w nazwie tematu.

Ten temat w ciągu 24 godzin zostanie przeniesiony do kosza.
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: zombie plague 4.3

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych