Raised This Month: $ Target: $400
 0% 

CROW-9 2nd mode damage bugs


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
ZombieTheMan01
Senior Member
Join Date: Aug 2015
Location: Turkey
Old 03-27-2017 , 14:48   CROW-9 2nd mode damage bugs
Reply With Quote #1

CROW-9 CSO is one of the weapons. My problem is this: I went into the damage mode in the second mode of the bomb. But whatever it is, it does not damage it and there are some bugs. And the animations do not fix somehow, problems occur in the second mode.

For those who don't know:
ORIGINAL VIDEO
MY VIDEO BUGS PLUGIN
PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <xs>

#define NAME        "CROW-9"
#define VERSION        "1.0"
#define AUTHOR        "Zombie-Mod.ru/YunusReyiz"

#define BUY_KNIFE    "say crow9"

#define DAMAGE_SLASH     10.0
#define DAMAGE_STAB     30.0
#define RANGE_SLASH     50.0
#define RANGE_STAB     70.0
#define NEXTATTACK_SLASH 0.3
#define NEXTATTACK_STAB 1.0
#define    KNIFE_KNOCK    5
#define BLOOD        3

#define Reload_Time    1.0
#define CROW_Time    1.5
#define    Normal_Time    1.8
#define NEXTATTACK_SLASH 0.3
#define NEXTATTACK_STAB_CROW 2.5
#define NEXTATTACK_STAB_NORMAL 3.1



static const v_knife[] = "models/v_crow9.mdl"
static const p_knife[] = "models/p_crow9.mdl"

static const SoundList[6][] =
{
    
"weapons/nata_draw.wav",
    
"weapons/nata_wall.wav",
    
"weapons/nata_slash.wav",
    
"weapons/nata_stab.wav",
    
"weapons/crow9_slasha_1.wav",
    
"weapons/crow9_slasha_1.wav"
}

static const 
Blood[][] =
{
    
"sprites/blood.spr",
    
"sprites/bloodspray.spr"
}
static 
g_Blood[sizeof Blood]
static 
bool:Knife[33]
new 
g_MaxPlayersattack[33]
new 
mode[33]
enum
{
    
normal 0,
    
crow,
    
notattacked
}

public 
plugin_init()
{
    
register_plugin(NAMEVERSIONAUTHOR)
    
    
register_event("HLTV""Event_NewRound""a""1=0""2=0")
    
RegisterHam(Ham_TakeDamage"player""TakeDamage_Pre"0)
    
RegisterHam(Ham_TakeDamage"player""TakeDamage_Post"1)
    
RegisterHam(Ham_Item_Deploy"weapon_knife""ChangeModel"1)
    
//RegisterHam(Ham_Player_PreThink, "player", "PreThink")
    
register_forward(FM_EmitSound"KnifeSound")
    
register_forward(FM_TraceLine"fw_TraceLine")
    
register_forward(FM_TraceHull"fw_TraceHull")    
    
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_knife""fw_nata_primaryattack_post"1)
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_nata_secondaryattack_post"1)
    
    
register_clcmd(BUY_KNIFE"BuyKnife")
    
g_MaxPlayers get_maxplayers()
}

public 
BuyKnife(id)
{
    
Knife[id] = true
    change
(id)
    
engclient_cmd(id"weapon_knife")
}

public 
Event_NewRound()
{
    for(new 
0g_MaxPlayersi++)
        
Knife[i] = false
}

public 
ChangeModel(weapon)
{
    if(!
pev_valid(weapon))
        return 
HAM_IGNORED
    
    
static player
    player 
pev(weaponpev_owner)
    
    if(!
is_user_alive(player))
        return 
HAM_IGNORED
    
    
if(!Knife[player])
        return 
HAM_IGNORED
        
    change
(player)
    return 
HAM_HANDLED
}

public 
KnifeSound(idchannelsample[], Float:volumeFloat:attnflagspitch)
{
    if(!
equal(sample"weapons/knife_"14) || !Knife[id])
        return 
FMRES_IGNORED
            
    
if(equal(sample[8], "knife_hitwall"13))
        
PlaySound(id1)    
    else
    if(
equal(sample[8], "knife_hit"9))
        switch(
random(2))
        {
            case 
0:PlaySound(id4)
            case 
1:PlaySound(id5)
        }        
    if(
equal(sample[8], "knife_slash"11)) PlaySound(id2)
    if(
equal(sample[8], "knife_stab"10)) PlaySound(id3)
    if(
equal(sample[8], "knife_deploy"12)) PlaySound(id0)
    return 
FMRES_SUPERCEDE
}

public 
TakeDamage_Pre(victiminflictorattackerFloat:damagedamagetype)
{
    if(!
is_user_alive(attacker))
    return 
HAM_IGNORED
        
    
if(!Knife[attacker] || get_user_weapon(attacker) != CSW_KNIFE)
     return 
HAM_IGNORED
     
    
new hittarget
    get_user_aiming
(attackertargethit)

    new 
Float:mult_dmg 1.0
    
if(pev(attackerpev_buttonIN_ATTACK))
        
mult_dmg DAMAGE_SLASH
    
else
        if(
mode[attacker] == normalmult_dmg DAMAGE_STAB
        
else if(mode[attacker] == crowmult_dmg DAMAGE_STAB 2.5
    SetHamParamFloat
(4damage mult_dmg)
    if(
mode[attacker] == crowset_task(1.0"crow_damaged"attacker)

    return 
HAM_HANDLED
}

public 
crow_damaged(id)
{
    
set_weapons_timeidle(idNEXTATTACK_STAB_CROW)
    
set_player_nextattack(idNEXTATTACK_STAB_CROW)
}

public 
TakeDamage_Post(victiminflictorattackerFloat:damagedamagetype)
{
    if(!
is_user_alive(attacker) || !is_user_alive(victim)) 
    return 
HAM_IGNORED
        
    
if(!Knife[attacker] || get_user_weapon(attacker) != CSW_KNIFE)
     return 
HAM_IGNORED
        
    
new Float:Origin[3], Float:Origin2[3], Float:Velocity[3]
    
pev(attackerpev_originOrigin)
    
pev(victimpev_originOrigin2)
    
xs_vec_sub(Origin2OriginVelocity)
    
xs_vec_normalize(VelocityVelocity)
    
xs_vec_mul_scalar(Velocity, (KNIFE_KNOCK 100.0), Velocity)
    if(
Velocity[2] <= 100.0)
        
Velocity[2] = random_float(150.0250.0)
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
    
write_byte(TE_BLOODSPRITE);
    
engfunc(EngFunc_WriteCoordOrigin2[0])
    
engfunc(EngFunc_WriteCoordOrigin2[1])
    
engfunc(EngFunc_WriteCoordOrigin2[2])
    
write_short(g_Blood[0])
    
write_short(g_Blood[1])
    
write_byte(77)
    
write_byte(BLOOD)
    
message_end()
    
set_pev(victimpev_velocityVelocity)
    return 
HAM_HANDLED
}

public 
fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monsteridhandle)
{
    if (!
is_user_alive(id))
        return 
FMRES_IGNORED
    
if (get_user_weapon(id) != CSW_KNIFE)
        return 
FMRES_IGNORED
    
if(!Knife[id])
        return 
FMRES_IGNORED
    
    
static Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
    
    
pev(idpev_originfOrigin)
    
pev(idpev_view_ofsview_ofs)
    
xs_vec_add(fOriginview_ofsvecStart)
    
pev(idpev_v_anglev_angle)
    
    
engfunc(EngFunc_MakeVectorsv_angle)
    
get_global_vector(GL_v_forwardv_forward)
    
    static 
Float:scalar
    
static buttons buttons pev(idpev_button)
    
    if (
buttons IN_ATTACKscalar RANGE_SLASH
    
else if (buttons IN_ATTACK2
    {
        if(
mode[id] == normalscalar RANGE_STAB
        
else if(mode[id] == crowscalar RANGE_STAB 100.0
    
}
    
    
xs_vec_mul_scalar(v_forwardscalarv_forward)
    
xs_vec_add(vecStartv_forwardvecEnd)
    
    
engfunc(EngFunc_TraceLinevecStartvecEndignored_monsteridhandle)
    
    return 
FMRES_SUPERCEDE
}

public 
fw_TraceHull(Float:vector_start[3], Float:vector_end[3], ignored_monsterhullidhandle)
{
    if (!
is_user_alive(id))
        return 
FMRES_IGNORED
    
if (get_user_weapon(id) != CSW_KNIFE)
        return 
FMRES_IGNORED
    
if(!Knife[id])
        return 
FMRES_IGNORED
    
    
static Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
    
    
pev(idpev_originfOrigin)
    
pev(idpev_view_ofsview_ofs)
    
xs_vec_add(fOriginview_ofsvecStart)
    
pev(idpev_v_anglev_angle)
    
    
engfunc(EngFunc_MakeVectorsv_angle)
    
get_global_vector(GL_v_forwardv_forward)
    
    static 
Float:scalar
    
static buttons buttons pev(idpev_button)
    
    if (
buttons IN_ATTACKscalar RANGE_SLASH
    
else if (buttons IN_ATTACK2scalar RANGE_STAB
    
    xs_vec_mul_scalar
(v_forwardscalarv_forward)
    
xs_vec_add(vecStartv_forwardvecEnd)
    
    
engfunc(EngFunc_TraceHullvecStartvecEndignored_monsterhullidhandle)
    
    return 
FMRES_SUPERCEDE
}

/*public PreThink(id)
{
    if(!is_user_alive(id)) return HAM_IGNORED
    if(!Knife[id]) return HAM_IGNORED
    if(get_user_weapon(id) != CSW_KNIFE) 
    {
        set_pev(id, pev_gravity, 0.8)
        set_pev(id, pev_maxspeed, 240.0)
        return HAM_IGNORED
    }
    return HAM_HANDLED
}*/

public plugin_precache()
{
    
precache_model(v_knife)
    
precache_model(p_knife)
    
    static 
i
    
for(0<= charsmax(SoundList); i++)
        
precache_sound(SoundList[i])
        
    for(
0<= charsmax(Blood); i++)
        
g_Blood[i] = precache_model(Blood[i])
}
// Primary Attack Speed
public fw_nata_primaryattack_post(ent)
{
    if(
pev_valid(ent) != 2)
        return 
HAM_IGNORED
        
    
new id
    id 
get_pdata_cbase(ent41 4)
    
    if(!
Knife[id])
        return 
HAM_IGNORED    
        
    
switch(attack[id])
    {
        case 
0:
        {
            
set_anim(id1)
            
attack[id] = 1
        
}
        case 
1:
        {
            
set_anim(id2)
            
attack[id] = 0
        
}
    }
    
    
set_weapons_timeidle(idNEXTATTACK_SLASH)
    
set_player_nextattack(idNEXTATTACK_SLASH)
    
    return 
HAM_HANDLED
}
// Secondary Attack Speed
public fw_nata_secondaryattack_post(ent)
{
    if(
pev_valid(ent) != 2)
        return 
HAM_IGNORED
        
    
new id
    id 
get_pdata_cbase(ent41 4)
    
    if(!
Knife[id])
        return 
HAM_IGNORED    

    set_task
(0.0"reloading_before"id)
    if(
mode[id] == normal)
    {
        if(
mode[id] == crow)
        {
            if((
pev(idpev_oldbuttons) & IN_ATTACK2))
            {
                
set_task(Reload_Time"crow_reload"id)
            }
            
set_weapons_timeidle(idNEXTATTACK_STAB_CROW)
            
set_player_nextattack(idNEXTATTACK_STAB_CROW)
            
        }
        else if(
mode[id] == notattacked)
        {
            if(!(
pev(idpev_oldbuttons) & IN_ATTACK2))
            {
                
set_task(Reload_Time"normal_reload"id)
            }
            
set_weapons_timeidle(idNEXTATTACK_STAB_NORMAL)
            
set_player_nextattack(idNEXTATTACK_STAB_NORMAL)    
        }
    }
    
    return 
HAM_HANDLED
}

public 
reloading_before(id)
{
    
set_anim(id4)
    
//new wpn = pev(id, pev_owner)
    
mode[id] = normal
    set_task
(Reload_Time"crow_reload"id)
    
set_task(Reload_Time"normal_reload"id)
}

public 
crow_reload(id)
{
    new 
wpn pev(idpev_owner)
    if((
pev(idpev_oldbuttons) & IN_RELOAD) && (pev(idpev_oldbuttons) & IN_ATTACK2))
    {
        
mode[id] = crow
        set_anim
(id5)
        
set_pdata_float(wpn48CROW_Time4)
        
set_pdata_float(id83CROW_Time5)
    }
}
public 
normal_reload(id)
{
    new 
wpn pev(idpev_owner)
    if(!(
pev(idpev_oldbuttons) & IN_RELOAD))
    {
        
mode[id] = notattacked
        set_anim
(id6)
        
set_pdata_float(wpn48Normal_Time4)
        
set_pdata_float(id83Normal_Time5)
    }
}

change(id)
{
    
set_pev(idpev_viewmodel2v_knife)
    
set_pev(idpev_weaponmodel2p_knife)
}

stock PlaySound(EntSound)
    
engfunc(EngFunc_EmitSoundEntCHAN_WEAPONSoundList[_:Sound], VOL_NORMATTN_NORM0PITCH_NORM)
    
stock is_user_admin(id)
{
    new 
__flags=get_user_flags(id);
    return (
__flags>&& !(__flags&ADMIN_USER));
}

stock fm_set_user_money(indexmoneyflash
{
    
set_pdata_int(index115money)
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("Money"), _index)
    
write_long(money)
    
write_byte(flash 0)
    
message_end()
}

stock fm_get_user_money(index
    return 
get_pdata_int(index115)
    
stock ColorChat(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }
}

stock set_weapons_timeidle(idFloat:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    new 
entwpn fm_get_user_weapon_entity(idCSW_KNIFE)
    if (
pev_valid(entwpn)) 
    {
        
set_pdata_float(entwpn46TimeIdle4)
        
set_pdata_float(entwpn47TimeIdle4)
        
set_pdata_float(entwpn48TimeIdle 1.04)
    }
}

stock set_player_nextattack(idFloat:nexttime)
{
    if(!
is_user_alive(id))
        return
        
    const 
m_flNextAttack 83
    set_pdata_float
(idm_flNextAttacknexttime5)
}

stock set_anim(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()

Thanks in advance.
Attached Files
File Type: zip crow-9.zip (561.8 KB, 87 views)
__________________
FREE PLUGINS:

2021 and before -> ALL PLUGIN LINK IS HERE <-

2022:
Zombie: The Original [%70 Completed]

Last edited by ZombieTheMan01; 03-27-2017 at 14:51.
ZombieTheMan01 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:53.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode