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

RSSAntidote Bomb Issue (ZM 4.3)


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi guys! I have almost finished my own zombie plague server but i still have a problem.
I would like to add a Antidote Bomb.
My original addon was Zombie Plague 4.3 fix5a .

This is the error:
PHP Code:

L 08/19/2021 14:45:54Invalid CVAR pointer
L 08
/19/2021 14:45:54: [AMXXDisplaying debug trace (plugin "zp_antidote.amxx"version "1.0")
L 08/19/2021 14:45:54: [AMXXRun time error 10native error (native "set_pcvar_num")
L 08/19/2021 14:45:54: [AMXX]    [0zp_antidote.sma::fw_SetModel (line 114

The problem:
- It shows in Extra Items Menu, i buy it but when throw the grenade, it makes the same thing as flare grenade which is disabled. Also i have to say that i have Kill Bomb with supports the flare grenade. But it doesn't matter, why the antidote bomb is not an antidote and just a normal flare grenade?

Should i add some cvars maybe?

zp_antidote.sma
PHP Code:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "Nowy Plugin"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

new const NADE_TYPE_ANTIDOTEBOMB 6969
new const Float:RADIUS 300.0
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const sprite_grenade_ring[] = "sprites/shockwave.spr"
new const item_cost 30
new const item_name[] = "Antidote Bomb"
new const model_grenade_infect[] = "models/zombie_plague/v_grenade_antidot.mdl"

new item_id
new has_bomb[33]
new 
cvar_enabledcvar_fragsinfectcvar_ammoinfectcvar_humanbonushpcvar_flaregrenades
new g_trailSprg_exploSprg_msgScoreInfog_msgDeathMsgg_msgScoreAttrib

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_forward(FM_SetModel"fw_SetModel")    
    
    
register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
    
    
cvar_enabled register_cvar("zp_antidote_bomb","1")
    
cvar_fragsinfect get_cvar_pointer("zp_zombie_frags_for_infect")
    
cvar_ammoinfect get_cvar_pointer("zp_zombie_infect_reward")
    
cvar_humanbonushp register_cvar("zp_antidote_bomb_extra_hp","10")    
    
cvar_flaregrenades get_cvar_pointer("zp_flare_grenades")
    
    
g_msgScoreInfo get_user_msgid("ScoreInfo")
    
g_msgDeathMsg get_user_msgid("DeathMsg")
    
g_msgScoreAttrib get_user_msgid("ScoreAttrib")
}

public 
plugin_precache()
{
    
g_trailSpr engfunc(EngFunc_PrecacheModelsprite_grenade_trail)
    
g_exploSpr engfunc(EngFunc_PrecacheModelsprite_grenade_ring)
    
    
engfunc(EngFunc_PrecacheModelmodel_grenade_infect)
    
    
item_id zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN)
}

public 
client_disconnect(id)
{
    
has_bomb[id] = 0
}

public 
zp_extra_item_selected(playeritemid)
{
    if(
itemid == item_id)
    {
        
has_bomb[player] = 1    
        fm_strip_user_gun
(player,9)
        
fm_give_item(player,"weapon_smokegrenade")
    }
    
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    
has_bomb[victim] = 0    
}

public 
fw_ThinkGrenade(entity)
{    
    if(!
pev_valid(entity))
        return 
HAM_IGNORED
        
    
static Float:dmgtime    
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime get_gametime())
        return 
HAM_IGNORED    
    
    
if(pev(entitypev_flTimeStepSound) == NADE_TYPE_ANTIDOTEBOMB)
        
antidote_explode(entity)
    
    return 
HAM_SUPERCEDE
}

public 
fw_SetModel(entity, const model[])
{
    if(!
get_pcvar_num(cvar_enabled))
        return    
    
    static 
Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime == 0.0)
        return
    
    if (
equal(model[7], "w_sm"4))
    {        
        new 
owner pev(entitypev_owner)        
        
        if(!
zp_get_user_zombie(owner) && has_bomb[owner]) 
        {
            
set_pcvar_num(cvar_flaregrenades,0)            
            
            
fm_set_rendering(entitykRenderFxGlowShell2551280kRenderNormal16)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW// TE id
            
write_short(entity// entity
            
write_short(g_trailSpr// sprite
            
write_byte(10// life
            
write_byte(10// width
            
write_byte(255// r
            
write_byte(128// g
            
write_byte(0// b
            
write_byte(200// brightness
            
message_end()
            
            
set_pev(entitypev_flTimeStepSoundNADE_TYPE_ANTIDOTEBOMB)
        }
    }
    
}


public 
antidote_explode(ent)
{
    if (!
zp_has_round_started()) return
    
    
set_pcvar_num(cvar_flaregrenades,1)
    
    static 
Float:originF[3]
    
pev(entpev_originoriginF)
    
    
create_blast(originF)    
    
    
//engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_infect[random_num(0, sizeof grenade_infect - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
    
    
static attacker
    attacker 
pev(entpev_owner)
    
    
has_bomb[attacker] = 0
    
    
static victim
    victim 
= -1
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginFRADIUS)) != 0)
    {
        if (!
is_user_alive(victim) || !zp_get_user_zombie(victim) || zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
            continue
        
        
SendDeathMsg(attackervictim)
        
FixDeadAttrib(victim)
        
UpdateFrags(attackervictimget_pcvar_num(cvar_fragsinfect), 11)
        
zp_disinfect_user(victim)
        
zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_ammoinfect))
        
fm_set_user_health(attackerpev(attackerpev_health)+get_pcvar_num(cvar_humanbonushp))
        
    }
    
    
engfunc(EngFunc_RemoveEntityent)
}

public 
create_blast(const Float:originF[3])
{
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+385.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(128// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+470.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(164// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+555.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
}

public 
UpdateFrags(attackervictimfragsdeathsscoreboard)
{
    
set_pev(attackerpev_fragsfloat(pev(attackerpev_frags) + frags))
    
    
fm_set_user_deaths(victimfm_get_user_deaths(victim) + deaths)
    
    if (
scoreboard)
    {    
        
message_begin(MSG_BROADCASTg_msgScoreInfo)
        
write_byte(attacker// id
        
write_short(pev(attackerpev_frags)) // frags
        
write_short(fm_get_user_deaths(attacker)) // deaths
        
write_short(0// class?
        
write_short(fm_get_user_team(attacker)) // team
        
message_end()
        
        
message_begin(MSG_BROADCASTg_msgScoreInfo)
        
write_byte(victim// id
        
write_short(pev(victimpev_frags)) // frags
        
write_short(fm_get_user_deaths(victim)) // deaths
        
write_short(0// class?
        
write_short(fm_get_user_team(victim)) // team
        
message_end()
    }
}

stock fm_set_user_deaths(idvalue)
{
    
set_pdata_int(id444value5)
}

stock fm_get_user_deaths(id)
{
    return 
get_pdata_int(id4445)
}


stock fm_get_user_team(id)
{
    return 
get_pdata_int(id1145)
}

public 
SendDeathMsg(attackervictim)
{
    
message_begin(MSG_BROADCASTg_msgDeathMsg)
    
write_byte(attacker// killer
    
write_byte(victim// victim
    
write_byte(1// headshot flag
    
write_string("grenade"// killer's weapon
    
message_end()
}

public 
FixDeadAttrib(id)
{
    
message_begin(MSG_BROADCASTg_msgScoreAttrib)
    
write_byte(id// id
    
write_byte(0// attrib
    
message_end()
}

public 
replace_models(id)
{
    if (!
is_user_alive(id))
        return
    
    if(
get_user_weapon(id) == CSW_SMOKEGRENADE && has_bomb[id])
    {
        
set_pev(idpev_viewmodel2model_grenade_infect)
        
    }
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    
replace_models(msg_entity)


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