Raised This Month: $ Target: $400
 0% 

Pleaz add


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Raul3w
Member
Join Date: Apr 2017
Old 06-29-2017 , 07:40   Pleaz add
Reply With Quote #1

Help me add weapon to menu,im bad loat plugin menu,its god plugin weapon.
PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "[CSO] Melee Item: Thanatos-9"
#define VERSION "2.0.beta" // Not Code Skull-Axe!
#define AUTHOR "Dev!l" //Original Author Code

#define THANATOS9_RANGE_SLASH 110.0
#define THANATOS9_RANGE_STAB 80.0
#define THANATOS9_NEXTATTACK_SLASH 2.0
#define THANATOS9_NEXTATTACK_STAB 1.0

#define THANATOS9_DAMAGE_SLASH 500.0
#define THANATOS9_DAMAGE_STAB 100.0

#define THANATOS9_CHANGEA 5.0
#define THANATOS9_CHANGEB 3.5

#define THANATOS9_SHOOT_START 1.0
#define THANATOS9_SHOOT_END 1.0

#define DRAW_TIMEA 1.0
#define DRAW_TIMEB 1.0

const OFFSET_WEAPONOWNER 41
const OFFSET_LINUX_WEAPONS 4
const m_flNextAttack 83

#define CSW_THANATOS9 CSW_KNIFE
#define weapon_thanatos9 "weapon_knife"

new v_model[] = "models/cso/v_thanatos9.mdl"
new p_modela[] = "models/cso/p_thanatos9a.mdl"
new p_modelb[] = "models/cso/p_thanatos9b.mdl"

new const hit_wall[] = "weapons/balrog9_wall.wav"
new const hit_sound[] = "weapons/skullaxe_hit.wav"

new const thanatos9_sound[][] =
{
    
"weapons/thanatos9_drawa.wav",
    
"weapons/thanatos9_shoota1.wav",
    
"weapons/thanatos9_shoota2.wav",
    
"weapons/thanatos9_shootb_end.wav",
    
"weapons/thanatos9_shootb_loop.wav",
    
"weapons/thanatos9_changea_1.wav",
    
"weapons/thanatos9_changea_2.wav",
    
"weapons/thanatos9_changea_3.wav",
    
"weapons/thanatos9_changea_4.wav",
    
"weapons/thanatos9_changeb_1.wav",
    
"weapons/thanatos9_changeb_2.wav"
}

enum
{
    
THANATOS9_ANIM_DRAWA 0,
    
THANATOS9_ANIM_SHOOTB_LOOP,
    
THANATOS9_ANIM_SHOOTB_START,
    
THANATOS9_ANIM_SHOOTB_END,
    
THANATOS9_ANIM_IDLEB,
    
THANATOS9_ANIM_IDLEA,
    
THANATOS9_ANIM_DRAWB,
    
THANATOS9_ANIM_SHOOTA1,
    
THANATOS9_ANIM_SHOOTA2,
    
THANATOS9_ANIM_CHANGEA,
    
THANATOS9_ANIM_CHANGEB
}

enum
{
    
MODE_SLASH 1,
    
MODE_CHANGEA,
    
MODE_CHANGEB,
    
MODE_STAB,
    
MODE_STAB_ACTION
}

enum
{
    
HIT_NOTHING 0,
    
HIT_ENEMY,
    
HIT_WALL
}

#define TASK_SLASHING 215842

new const WEAPONENTNAMES[][] = { """weapon_p228""""weapon_scout""weapon_hegrenade""weapon_xm1014""weapon_c4""weapon_mac10""weapon_aug""weapon_smokegrenade""weapon_elite""weapon_fiveseven""weapon_ump45""weapon_sg550""weapon_p228""weapon_famas""weapon_usp""weapon_glock18""weapon_awp""weapon_mp5navy""weapon_m249",
"weapon_m3""weapon_m4a1""weapon_tmp""weapon_g3sg1""weapon_flashbang""weapon_deagle""weapon_sg552",
"weapon_ak47""weapon_knife""weapon_p90" }

new 
m_iBlood[2]
new 
g_has_thanatos9[33], g_item
new g_MaxPlayersg_mode[33]

new 
Float:g_thanatos_swing_range 1.8,Float:g_thanatos_stab_range 0.8

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""Event_NewRound""a""1=0""2=0")
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
RegisterHam(Ham_Spawn"player""Player_Spawn"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHam(Ham_Weapon_WeaponIdle"weapon_knife""fw_thanatosidleanim"1)
    
    
register_forward(FM_EmitSound"fw_EmitSound")
    
register_forward(FM_CmdStart"fw_CmdStart")
    
register_forward(FM_TraceLine"fw_TraceLine")
    
register_forward(FM_TraceHull"fw_TraceHull")
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack")
    
    for (new 
1sizeof WEAPONENTNAMESi++)
    if (
WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "fw_Item_Deploy_Post"1)
    
    
g_MaxPlayers get_maxplayers()
    
    
}

public 
plugin_precache()
{
    
precache_model(v_model)
    
precache_model(p_modela)
    
precache_model(p_modelb)
    
    
precache_sound(hit_wall)
    
precache_sound(hit_sound)
        
    for(new 
0sizeof thanatos9_soundi++)
        
precache_sound(thanatos9_sound[i])
        
    
m_iBlood[0] = precache_model("sprites/blood.spr")
    
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
}

public 
zp_extra_item_selected(iditem)
{
    if(
item == g_item)
    {
        
get_thanatos9(id)
    }
}

public 
client_connect(idremove_thanatos9(id)
public 
client_disconnect(idremove_thanatos9(id)
public 
Player_Spawn(idremove_thanatos9(id)
public 
fw_PlayerKilled(idremove_thanatos9(id)

public 
get_thanatos9(id)
{
    
g_has_thanatos9[id] = 1
    g_mode
[id] = MODE_SLASH

    
if(get_user_weapon(id) == CSW_KNIFE
    {
        
set_pev(idpev_viewmodel2v_model)
        
        
set_weapon_anim(idTHANATOS9_ANIM_DRAWA)
        
set_weapons_timeidle(idCSW_THANATOS9DRAW_TIMEA)
        
set_player_nextattack(idDRAW_TIMEA)
        
        static 
entent fm_get_user_weapon_entity(idCSW_THANATOS9)
        
set_pdata_float(ent479999.0OFFSET_LINUX_WEAPONS)
    } else {
        
engclient_cmd(idweapon_thanatos9)
    }
}

public 
remove_thanatos9(id)
{
    
g_has_thanatos9[id] = 0
    g_mode
[id] = 0
    
if(g_mode[id] == MODE_STAB_ACTION)
    {
        
g_mode[id] = MODE_STAB
        shoot_b_end
(id)
    }
}

public 
fw_Item_Deploy_Post(weapon_ent)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_ent)

    if(
g_has_thanatos9[owner])
    {
    
set_weapons_timeidle(ownerCSW_THANATOS91.7)
    
// set_player_nextattack(owner, 1.7)
    
}
}

public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return 
1
    
if(get_user_weapon(id) != CSW_THANATOS9)
        return 
1
    
if(!g_has_thanatos9[id])
        return 
1
        
    set_pev
(idpev_viewmodel2v_model)
    
    if(
g_has_thanatos9[id])
    {
        if(
g_mode[id] == MODE_SLASH)
        {
            
set_pev(idpev_weaponmodel2p_modela)
            
set_weapon_anim(idTHANATOS9_ANIM_DRAWA)
            
set_weapons_timeidle(idCSW_THANATOS9DRAW_TIMEA)
            
set_player_nextattack(idDRAW_TIMEA)
        } else if(
g_mode[id] == MODE_STAB)
        {
            
set_pev(idpev_weaponmodel2p_modelb)
            
set_weapon_anim(idTHANATOS9_ANIM_DRAWB)
            
set_weapons_timeidle(idCSW_THANATOS9DRAW_TIMEB)
            
set_player_nextattack(idDRAW_TIMEB)
        } else if(
g_mode[id] == MODE_STAB_ACTION)
        {
            
set_pev(idpev_weaponmodel2p_modela)
            
set_weapon_anim(idTHANATOS9_ANIM_DRAWA)
            
set_weapons_timeidle(idCSW_THANATOS9DRAW_TIMEA)
            
set_player_nextattack(idDRAW_TIMEA)
            
g_mode[id] = MODE_STAB
            shoot_b_end
(id)
        }
    }
        
    return 
0
}            

public 
Event_NewRound()
{
    for(new 
0g_MaxPlayersi++)
        
remove_thanatos9(i)
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS)
}

public 
fw_EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if(!
is_user_connected(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_THANATOS9 || !g_has_thanatos9[id])
        return 
FMRES_IGNORED
        
    
if(sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if(
sample[14] == 's' && sample[15] == 'l' && sample[16] == 'a')
        {
            if(
g_mode[id] == MODE_SLASH)
            {
                
set_weapons_timeidle(idCSW_THANATOS91.2)
                
set_player_nextattack(id1.2)
            
                
emit_sound(idCHAN_WEAPONthanatos9_sound[random_num(2,3)], 1.0ATTN_NORM0PITCH_NORM)
            }
            return 
FMRES_SUPERCEDE
        
}
        if (
sample[14] == 'h' && sample[15] == 'i' && sample[16] == 't'// hit
        
{
            if (
sample[17] == 'w'// wall
            
{
                if(
g_mode[id] == MODE_SLASH)
                {
                    
set_weapons_timeidle(idCSW_THANATOS91.2)
                    
set_player_nextattack(id1.2)
                
                    
emit_sound(idCHAN_WEAPONhit_wall1.0ATTN_NORM0PITCH_NORM)
                }
                return 
FMRES_SUPERCEDE
            
}
            else
            {
                if(
g_mode[id] == MODE_SLASH)
                {
                    
set_weapons_timeidle(idCSW_THANATOS91.2)
                    
set_player_nextattack(id1.2)
                
                    
emit_sound(idCHAN_WEAPONhit_sound1.0ATTN_NORM0PITCH_NORM)
                }
                return 
FMRES_SUPERCEDE
            
}
        }
        if (
sample[14] == 's' && sample[15] == 't' && sample[16] == 'a'// stab
        
{
            if(
g_mode[id] == MODE_SLASH)
            {
                
set_weapons_timeidle(idCSW_THANATOS91.2)
                
set_player_nextattack(id1.2)
            
                
emit_sound(idCHAN_WEAPONhit_sound1.0ATTN_NORM0PITCH_NORM)
            }
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED
}

public 
fw_thanatosidleanim(Weapon)
{
    new 
id get_pdata_cbase(Weapon414)

    if(!
is_user_alive(id) || !g_has_thanatos9[id] || get_user_weapon(id) != CSW_THANATOS9)
        return 
HAM_IGNORED;
        
    if(
g_mode[id] == MODE_SLASH && get_pdata_float(Weapon484) <= 0.25
    {
        
set_weapon_anim(idTHANATOS9_ANIM_IDLEA)
        
set_pdata_float(Weapon4820.04)
        return 
HAM_SUPERCEDE;
    }
    
    if(
g_mode[id] == MODE_STAB && get_pdata_float(Weapon484) <= 0.25
    {
        
set_weapon_anim(idTHANATOS9_ANIM_IDLEB)
        
set_pdata_float(Weapon4820.04)
        return 
HAM_SUPERCEDE;
    }

    return 
HAM_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if (!
is_user_alive(id)) 
        return
    if(
get_user_weapon(id) != CSW_THANATOS9)
        return
    if(!
g_has_thanatos9[id])
        return
    
    static 
ent
    ent 
find_ent_by_owner(-1weapon_thanatos9id)
    
    if(!
pev_valid(ent))
        return
    if(
get_pdata_float(ent464) > 0.0 || get_pdata_float(ent474) > 0.0
        return
    
    static 
CurButton
    CurButton 
get_uc(uc_handleUC_Buttons)
    
    if(
CurButton IN_ATTACK)
    {
        if(
get_pdata_float(id835) > 0.0)
            return
            
        
set_uc(uc_handleUC_ButtonsCurButton & ~IN_ATTACK)
        
        if(
g_mode[id] == MODE_SLASH)
        {
            
g_mode[id] = MODE_SLASH
            set_weapons_timeidle
(idCSW_THANATOS9THANATOS9_NEXTATTACK_SLASH)
            
set_player_nextattack(idTHANATOS9_NEXTATTACK_SLASH)
            
set_weapon_anim(idrandom_num(THANATOS9_ANIM_SHOOTA1THANATOS9_ANIM_SHOOTA2))
            
            
set_task(1.2"Do_Slashing"id+TASK_SLASHING)
        }
        else if(
g_mode[id] == MODE_STAB)
        {
            
g_mode[id] = MODE_STAB
            shoot_b_start
(id)
            
set_weapons_timeidle(idCSW_THANATOS90.1)
            
set_player_nextattack(idTHANATOS9_NEXTATTACK_STAB)
        }
    } else if (
CurButton IN_ATTACK2) {
        if(
get_pdata_float(ent47OFFSET_LINUX_WEAPONS) > 0.0
            return
            
        if(
g_mode[id] == MODE_SLASH)
        {
            
set_weapons_timeidle(idCSW_THANATOS90.1)
            
set_player_nextattack(id0.1)
            
g_mode[id] = MODE_CHANGEA
            set_task
(0.1"change_modea"id)
        }
        else if(
g_mode[id] == MODE_STAB)
        {
            
set_weapons_timeidle(idCSW_THANATOS90.1)
            
set_player_nextattack(id0.1)
            
g_mode[id] = MODE_CHANGEB
            set_task
(0.1"change_modeb"id)
        }
    }
}

public 
Do_Slashing(id)
{
    
id -= TASK_SLASHING
    
    
if(!is_user_alive(id))
        return
    if(
get_user_weapon(id) != CSW_THANATOS9 || !g_has_thanatos9[id])
        return
        
    static 
Ent
    Ent 
find_ent_by_owner(-1weapon_thanatos9id)
    new 
Float:origin[3]
    
pev(Entpev_originorigin)
    
    new 
FM_NULLENT
    
    
while((find_ent_in_sphere(aorigin80.0)) != 0)
    {
        if (
id == a)
            continue
            
        if(
pev(apev_takedamage) != DAMAGE_NO)
        {
            
ExecuteHamB(Ham_TakeDamageaidid400.0DMG_BULLET)
        }
    }
        
    if(!
Check_Attack(id1))
    {
        
emit_sound(idCHAN_WEAPONthanatos9_sound[random_num(2,3)], 1.0ATTN_NORM0PITCH_NORM)
    } else {
        
emit_sound(idCHAN_WEAPONhit_sound1.0ATTN_NORM0PITCH_NORM)
    }
}

public 
change_modea(id)
{
    if(
g_mode[id] == MODE_CHANGEA)
    {
        
set_weapons_timeidle(idCSW_THANATOS9THANATOS9_CHANGEA)
        
set_player_nextattack(idTHANATOS9_CHANGEA)
        
set_weapon_anim(idTHANATOS9_ANIM_CHANGEA)
        
set_pev(idpev_weaponmodel2p_modelb)
    
        
g_mode[id] = MODE_SLASH
        set_task
(THANATOS9_CHANGEA"mode_b"id)
    }
}

public 
mode_b(id)
{
    
g_mode[id] = MODE_STAB
}

public 
change_modeb(id)
{
    if(
g_mode[id] == MODE_CHANGEB)
    {
        
set_weapons_timeidle(idCSW_THANATOS9THANATOS9_CHANGEB)
        
set_player_nextattack(idTHANATOS9_CHANGEB)
        
set_weapon_anim(idTHANATOS9_ANIM_CHANGEB)
        
set_pev(idpev_weaponmodel2p_modela)
                
        
g_mode[id] = MODE_SLASH
    
}
}

public 
shoot_b_start(id)
{
    if(
g_mode[id] == MODE_STAB)
    {
        
set_weapons_timeidle(idCSW_THANATOS9THANATOS9_SHOOT_START)
        
set_player_nextattack(idTHANATOS9_SHOOT_START)
        
set_weapon_anim(idTHANATOS9_ANIM_SHOOTB_START)
                
        
g_mode[id] = MODE_STAB_ACTION
        set_task
(THANATOS9_SHOOT_START"shoot_b_loop"id)
    }
}

public 
shoot_b_loop(id)
{
    if(
g_mode[id] == MODE_STAB_ACTION)
    {
        
set_weapons_timeidle(idCSW_THANATOS96.0)
        
set_player_nextattack(id0.0)
        
set_weapon_anim(idTHANATOS9_ANIM_SHOOTB_LOOP)
        
action_thanatos(id)
        
emit_sound(idCHAN_WEAPONthanatos9_sound[4], 1.0ATTN_NORM0PITCH_NORM)
                
        
g_mode[id] = MODE_STAB_ACTION
    
}
}

public 
shoot_b_end(id)
{
    if(
g_mode[id] == MODE_STAB)
    {
        
remove_task(id)
        
emit_sound(idCHAN_WEAPON"common/null.wav"1.0ATTN_NORM0PITCH_NORM)
                
        
g_mode[id] = MODE_STAB
        set_task
(0.1"shoot_b_end_finish"id)
    }
}

public 
shoot_b_end_finish(id)
{
    if(
g_mode[id] == MODE_STAB)
    {
        
set_weapons_timeidle(idCSW_THANATOS9THANATOS9_SHOOT_END)
        
set_player_nextattack(idTHANATOS9_SHOOT_END)
        
set_weapon_anim(idTHANATOS9_ANIM_SHOOTB_END)
                
        
g_mode[id] = MODE_CHANGEB
        set_task
(THANATOS9_SHOOT_END"change_modeb"id)
    }
}

public 
action_thanatos(id)
{
    static 
Ent
    Ent 
find_ent_by_owner(-1weapon_thanatos9id)
        
    
Damage_thanatos(Ent)
    
set_task(0.1"action_thanatos"id)
}

public 
Damage_thanatos(Ent)
{
    static 
idid pev(Entpev_owner)
    new 
Float:origin[3]
    
pev(Entpev_originorigin)
    
    new 
FM_NULLENT
    
    
while((find_ent_in_sphere(aorigin80.0)) != 0)
    {
        if (
id == a)
            continue
        
    
        if(
pev(apev_takedamage) != DAMAGE_NO)
        {
            
ExecuteHamB(Ham_TakeDamageaidid400.0DMG_BULLET)
        }
    }
    
set_task(0.1"damage_thanatos9"id)
}


public 
damage_thanatos9(id)
{
    static 
Float:Max_Distance
    
    
if(g_mode[id] == MODE_STAB_ACTION)
    {
        
Max_Distance THANATOS9_RANGE_STAB
    
}
    
    static 
Float:VicOrigin[3], Float:MyOrigin[3]
    
pev(idpev_originMyOrigin)
            
    static 
Have_VictimHave_Victim 0
    
static ent
    ent 
find_ent_by_owner(-1weapon_thanatos9id)
        
    if(!
pev_valid(ent))
        return 
0
        
    
for(new 0get_maxplayers(); i++)
    {
        if(!
is_user_alive(i))
            continue
        if(
id == i)
            continue
        if(
entity_range(idi) > Max_Distance)
            continue
        
pev(ipev_originVicOrigin)
        if(!
is_in_viewcone(idVicOrigin1))
            continue
        if(
is_wall_between_points(MyOriginVicOriginid))
            continue
        
        if(!
Have_VictimHave_Victim 1
        
if(g_mode[id] == MODE_STAB_ACTION)
        {
            
do_attack(idientTHANATOS9_DAMAGE_STAB)
        }
    }    
    
    
stop_damage(id)
    
    if(
Have_Victim)
        return 
1
    
else
        return 
0
    
    
return 0
}

public 
stop_damage(id)
{
    
set_task(6.0"shoot_b_end"id)
    
g_mode[id] = MODE_STAB
}

public 
Check_Attack(idFirst_Check)
{
    static 
Float:Max_Distance
    
    
if(g_mode[id] == MODE_SLASH)
    {
        
Max_Distance THANATOS9_RANGE_SLASH
    
}
    
    static 
Float:VicOrigin[3], Float:MyOrigin[3]
    
pev(idpev_originMyOrigin)
        
    static 
Have_VictimHave_Victim 0
    
static ent
    ent 
find_ent_by_owner(-1weapon_thanatos9id)
        
    if(!
pev_valid(ent))
        return 
0
        
    
for(new 0get_maxplayers(); i++)
    {
        if(!
is_user_alive(i))
            continue
        if(
id == i)
            continue
        if(
entity_range(idi) > Max_Distance)
            continue
        
pev(ipev_originVicOrigin)
        if(!
is_in_viewcone(idVicOrigin1))
            continue
        if(
is_wall_between_points(MyOriginVicOriginid))
            continue
        
        if(!
Have_VictimHave_Victim 1
        
if(g_mode[id] == MODE_SLASH)
        {
            
do_attack(idientTHANATOS9_DAMAGE_SLASH)
            if(!
First_Check && cs_get_user_team(id) != cs_get_user_team(i))
            {
                
// do_attack(id, i, ent, THANATOS9_DAMAGE_SLASH)
            
}
        }
    }    
    
    if(
Have_Victim)
        return 
1
    
else
        return 
0
    
    
return 0
}    

public 
fw_TraceLine(Float:fStart[3], Float:fEnd[3], conditionsidpentru){
    return 
vTrace(idpentru,fStart,fEnd,conditions)
}

public 
fw_Tracehull(Float:fStart[3], Float:fEnd[3], conditionshullidpentru){
    return 
vTrace(idpentru,fStart,fEnd,conditions,true,hull)
}

vTrace(idpentru,Float:fStart[3],Float:fEnd[3],iNoMonsters,bool:hull false,iHull 0)
{    
    if(
is_user_alive(id) && get_user_weapon(id) == CSW_THANATOS9 && g_has_thanatos9[id]){        
        new 
Float:scalar
        
        
if(g_mode[id] == MODE_SLASHscalar g_thanatos_swing_range
        
else if(g_mode[id] == MODE_STAB_ACTIONscalar g_thanatos_stab_range
        
else scalar 0.0

        xs_vec_sub
(fEnd,fStart,fEnd)
        
xs_vec_mul_scalar(fEnd,scalar,fEnd);
        
xs_vec_add(fEnd,fStart,fEnd);
        
        
hull engfunc(EngFunc_TraceHull,fStart,fEnd,iNoMonsters,iHull,id,pentru) : engfunc(EngFunc_TraceLine,fStart,fEnd,iNoMonstersid,pentru)
    }
    
    return 
FMRES_IGNORED;
}

public 
fw_TraceAttack(VictimAttackerFloat:DamageFloat:Direction[3], TraceHandleDamageBitpentru)
{
    if(!
is_user_alive(Attacker))
        return 
HAM_IGNORED
    
if(get_user_weapon(Attacker) != CSW_THANATOS9)
        return 
HAM_IGNORED
    
if(!g_has_thanatos9[Attacker])
        return 
HAM_IGNORED
        
    
        
    
return HAM_IGNORED
}

do_attack(AttackerVictimInflictorFloat:fDamage)
{
    
fake_player_trace_attack(AttackerVictimfDamage)
    
fake_take_damage(AttackerVictimfDamageInflictor)
}

fake_player_trace_attack(iAttackeriVictim, &Float:fDamage)
{
    
// get fDirection
    
new Float:fAngles[3], Float:fDirection[3]
    
pev(iAttackerpev_anglesfAngles)
    
angle_vector(fAnglesANGLEVECTOR_FORWARDfDirection)
    
    
// get fStart
    
new Float:fStart[3], Float:fViewOfs[3]
    
pev(iAttackerpev_originfStart)
    
pev(iAttackerpev_view_ofsfViewOfs)
    
xs_vec_add(fViewOfsfStartfStart)
    
    
// get aimOrigin
    
new iAimOrigin[3], Float:fAimOrigin[3]
    
get_user_origin(iAttackeriAimOrigin3)
    
IVecFVec(iAimOriginfAimOrigin)
    
    
// TraceLine from fStart to AimOrigin
    
new pentru create_tr2() 
    
engfunc(EngFunc_TraceLinefStartfAimOriginDONT_IGNORE_MONSTERSiAttackerpentru)
    new 
pHit get_tr2(pentruTR_pHit)
    new 
iHitgroup get_tr2(pentruTR_iHitgroup)
    new 
Float:fEndPos[3]
    
get_tr2(pentruTR_vecEndPosfEndPos)

    
// get target & body at aiming
    
new iTargetiBody
    get_user_aiming
(iAttackeriTargetiBody)
    
    
// if aiming find target is iVictim then update iHitgroup
    
if (iTarget == iVictim)
    {
        
iHitgroup iBody
    
}
    
    
// if pentru find target not is iVictim
    
else if (pHit != iVictim)
    {
        
// get AimOrigin in iVictim
        
new Float:fVicOrigin[3], Float:fVicViewOfs[3], Float:fAimInVictim[3]
        
pev(iVictimpev_originfVicOrigin)
        
pev(iVictimpev_view_ofsfVicViewOfs
        
xs_vec_add(fVicViewOfsfVicOriginfAimInVictim)
        
fAimInVictim[2] = fStart[2]
        
fAimInVictim[2] += get_distance_f(fStartfAimInVictim) * floattanfAngles[0] * 2.0degrees )
        
        
// check aim in size of iVictim
        
new iAngleToVictim get_angle_to_target(iAttackerfVicOrigin)
        
iAngleToVictim abs(iAngleToVictim)
        new 
Float:fDis 2.0 get_distance_f(fStartfAimInVictim) * floatsinfloat(iAngleToVictim) * 0.5degrees )
        new 
Float:fVicSize[3]
        
pev(iVictimpev_size fVicSize)
        if ( 
fDis <= fVicSize[0] * 0.5 )
        {
            
// TraceLine from fStart to aimOrigin in iVictim
            
new ptr2 create_tr2() 
            
engfunc(EngFunc_TraceLinefStartfAimInVictimDONT_IGNORE_MONSTERSiAttackerptr2)
            new 
pHit2 get_tr2(ptr2TR_pHit)
            new 
iHitgroup2 get_tr2(ptr2TR_iHitgroup)
            
            
// if ptr2 find target is iVictim
            
if ( pHit2 == iVictim && (iHitgroup2 != HIT_HEAD || fDis <= fVicSize[0] * 0.25) )
            {
                
pHit iVictim
                iHitgroup 
iHitgroup2
                get_tr2
(ptr2TR_vecEndPosfEndPos)
            }
            
            
free_tr2(ptr2)
        }
        
        
// if pHit still not is iVictim then set default HitGroup
        
if (pHit != iVictim)
        {
            
// set default iHitgroup
            
iHitgroup HIT_GENERIC
            
            
new ptr3 create_tr2() 
            
engfunc(EngFunc_TraceLinefStartfVicOriginDONT_IGNORE_MONSTERSiAttackerptr3)
            
get_tr2(ptr3TR_vecEndPosfEndPos)
            
            
// free ptr3
            
free_tr2(ptr3)
        }
    }
    
    
// set new Hit & Hitgroup & EndPos
    
set_tr2(pentruTR_pHitiVictim)
    
set_tr2(pentruTR_iHitgroupiHitgroup)
    
set_tr2(pentruTR_vecEndPosfEndPos)
    
    
// hitgroup multi fDamage
    
new Float:fMultifDamage 
    
switch(iHitgroup)
    {
        case 
HIT_HEADfMultifDamage  2.5
        
case HIT_STOMACHfMultifDamage  1.25
        
case HIT_LEFTLEGfMultifDamage  0.75
        
case HIT_RIGHTLEGfMultifDamage  0.75
        
default: fMultifDamage  1.0
    
}
    
    
fDamage *= fMultifDamage
    
    
// ExecuteHam
    
fake_trake_attack(iAttackeriVictimfDamagefDirectionpentru)
    
    
// free pentru
    
free_tr2(pentru)
}

stock fake_trake_attack(iAttackeriVictimFloat:fDamageFloat:fDirection[3], iTraceHandleiDamageBit = (DMG_NEVERGIB DMG_BULLET))
{
    
ExecuteHamB(Ham_TraceAttackiVictimiAttackerfDamagefDirectioniTraceHandleiDamageBit)
}

stock fake_take_damage(iAttackeriVictimFloat:fDamageiInflictor 0iDamageBit = (DMG_NEVERGIB DMG_BULLET))
{
    
iInflictor = (!iInflictor) ? iAttacker iInflictor
    ExecuteHamB
(Ham_TakeDamageiVictimiInflictoriAttackerfDamageiDamageBit)
}

stock set_weapon_anim(idanim)
{
    if(!
is_user_alive(id))
        return
        
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id)
    
write_byte(anim)
    
write_byte(0)
    
message_end()    
}

stock set_weapons_timeidle(idWeaponId ,Float:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    static 
entwpnentwpn fm_get_user_weapon_entity(idWeaponId)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46TimeIdleOFFSET_LINUX_WEAPONS)
    
set_pdata_float(entwpn47TimeIdleOFFSET_LINUX_WEAPONS)
    
set_pdata_float(entwpn48TimeIdle 0.5OFFSET_LINUX_WEAPONS)
}

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

stock Get_MissileWeaponHitGroupiEnt )
{
    new 
Float:flStart], Float:flEnd];
    
    
peviEntpev_originflStart );
    
peviEntpev_velocityflEnd );
    
xs_vec_addflStartflEndflEnd );
    
    new 
pentru create_tr2();
    
engfuncEngFunc_TraceLineflStartflEnd0iEntpentru );
    
    new 
iHitGroupOwnernOheadhead
    Owner 
pev(iEntpev_owner)
    
nOhead get_tr2pentruTR_iHitgroup )
    
head set_tr2pentruTR_iHitgroupHIT_HEAD )
    
    
iHitGroup is_user_alive(Owner) ? head nOhead
    free_tr2
pentru );
    
    return 
iHitGroup;
}

stock get_angle_to_target(id, const Float:fTarget[3], Float:TargetSize 0.0)
{
    new 
Float:fOrigin[3], iAimOrigin[3], Float:fAimOrigin[3], Float:fV1[3]
    
pev(idpev_originfOrigin)
    
get_user_origin(idiAimOrigin3// end position from eyes
    
IVecFVec(iAimOriginfAimOrigin)
    
xs_vec_sub(fAimOriginfOriginfV1)
    
    new 
Float:fV2[3]
    
xs_vec_sub(fTargetfOriginfV2)
    
    new 
iResult get_angle_between_vectors(fV1fV2)
    
    if (
TargetSize 0.0)
    {
        new 
Float:fTan TargetSize get_distance_f(fOriginfTarget)
        new 
fAngleToTargetSize floatroundfloatatan(fTandegrees) )
        
iResult -= (iResult 0) ? fAngleToTargetSize : -fAngleToTargetSize
    
}
    
    return 
iResult
}

stock get_angle_between_vectors(const Float:fV1[3], const Float:fV2[3])
{
    new 
Float:fA1[3], Float:fA2[3]
    
engfunc(EngFunc_VecToAnglesfV1fA1)
    
engfunc(EngFunc_VecToAnglesfV2fA2)
    
    new 
iResult floatround(fA1[1] - fA2[1])
    
iResult iResult 360
    iResult 
= (iResult 180) ? (iResult 360) : iResult
    
    
return iResult
}

stock is_wall_between_points(Float:start[3], Float:end[3], ignore_ent)
{
    static 
pentru
    pentru 
create_tr2()

    
engfunc(EngFunc_TraceLinestartendIGNORE_MONSTERSignore_entpentru)
    
    static 
Float:EndPos[3]
    
get_tr2(pentruTR_vecEndPosEndPos)

    
free_tr2(pentru)
    return 
floatround(get_distance_f(endEndPos))

to


PHP Code:
#pragma semicolon 1

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <vault>

#define ADMIN_BBVIP ADMIN_LEVEL_G

// Define the Plugin Version
new const VERSION[] = { "1.5" };

// PREFIX
new const PREFIX[] = { "!g[ BB.Ecila.Ro ]!n" };

new const 
g_szKnifeBModel[] = "models/bb_cso/v_warhammer_royale.mdl";
new const 
g_szKnifeWModel[] = "models/bb_cso/v_wolf_kosa.mdl";
new const 
g_szAk47BModel[] = "models/akbb/v_ak47_red.mdl";
new const 
g_szM4A1Model[] = "models/akbb/v_m4a1_red.mdl";
new const 
g_szEliteModel[] = "models/bb_cso/v_dual_elite.mdl";
new const 
g_szP90Model[] = "models/bb_cso/v_p90lapin.mdl";

new 
VipUsed[33];
new 
HasSpeed;

new 
bool:g_bHasKnifeB[33];
new 
bool:g_bHasKnifeW[33];
new 
bool:g_bHasAk47B[33];
new 
bool:g_bHasM4A1[33];
new 
bool:g_bHasElite[33];
new 
bool:g_bHasP90[33];
new 
Float:fast_speed 400.0;
new 
Float:normal_speed 250.0;
//new g_pVisiblity;
new mpd,/* mkb,*/ mhb;
new 
maxplayers;

public 
plugin_init()
{
    
register_plugin("BaseBuilder: VIP Gold Menu"VERSION"Raul3w");
    
RegisterHam(Ham_Spawn"player""FwdHamSpawn_Post"1);
    
RegisterHam(Ham_Item_PreFrame"player""FwdPreFrame_Post"1);
    
RegisterHam(Ham_TakeDamage"player""FwdPlayerDamage");
    
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
    
    
register_event("CurWeapon","event_curweapon","be","1=1");
    
    
register_clcmd("say gold""cmdVmenu");
    
register_clcmd("say /gold""cmdVmenu");
    
register_clcmd("say_team gold""cmdVmenu");
    
register_clcmd("say_team /gold""cmdVmenu");

    
//g_pVisiblity = register_cvar( "km_invis", "150" ); // 255 = clearly visible
    
set_task(480.0"kmodmsg"0__"b");
    
    
mpd register_cvar("money_per_damage","3");
    
//mkb = register_cvar("money_kill_bonus","200");
    
mhb register_cvar("money_hs_bonus","500");
    
register_event("Damage","Damage","b");
    
maxplayers get_maxplayers();
    
    
    
// Ham TakeDamage
    
register_forwardFM_CmdStart"fw_CmdStart" );
    
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
}

public 
Damage(id)
{
    new 
weaponhitpointattacker get_user_attacker(id,weapon,hitpoint);
    if(
attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
        if (
get_user_flags(attacker) & ADMIN_LEVEL_G
    {
        new 
money read_data(2) * get_pcvar_num(mpd);
        if(
hitpoint==1money += get_pcvar_num(mhb);
        
cs_set_user_money(attacker,cs_get_user_money(attacker) + money);
    }
}     
public 
FwdPlayerDamage(victiminflictorattackerFloat:damagedamagebits)
{
    if(
inflictor == attacker 
    
&& attacker != victim 
    
&& g_bHasKnifeBattacker 
    && 
is_user_alive(attacker
    && 
get_user_weapon(attacker) == CSW_KNIFE )
{
    
SetHamParamFloat(4damage 8.0);
}
    if(
inflictor == attacker 
&& attacker != victim 
&& g_bHasAk47Battacker ]
&& 
is_user_alive(attacker
&& 
get_user_weapon(attacker) == CSW_AK47 )
{
SetHamParamFloat(4damage 6.0);
}
    if(
inflictor == attacker 
&& attacker != victim 
&& g_bHasEliteattacker ]
&& 
is_user_alive(attacker
&& 
get_user_weapon(attacker) == CSW_ELITE )
{
SetHamParamFloat(4damage 3.0);
}
    if(
inflictor == attacker 
&& attacker != victim 
&& g_bHasM4A1attacker ]
&& 
is_user_alive(attacker
&& 
get_user_weapon(attacker) == CSW_M4A1 )
{
SetHamParamFloat(4damage 6.0);
}
    if(
inflictor == attacker 
&& attacker != victim 
&& g_bHasP90attacker ]
&& 
is_user_alive(attacker
&& 
get_user_weapon(attacker) == CSW_P90 )
{
SetHamParamFloat(4damage 3.0);
}

}  
public 
plugin_precache()
{
precache_model(g_szKnifeBModel);
precache_model(g_szAk47BModel);
precache_model(g_szKnifeWModel);
precache_model(g_szM4A1Model);
precache_model(g_szEliteModel);
precache_model(g_szP90Model);
}

public 
event_curweapon(id)
{
if(
g_bHasKnifeB[id] && read_data(2) == CSW_KNIFE)
{
set_pev(idpev_viewmodel2g_szKnifeBModel);
set_user_gravity(id0.5);
}

if(
g_bHasAk47B[id] && read_data(2) == CSW_AK47)
{
set_pev(idpev_viewmodel2g_szAk47BModel);
}

if(
g_bHasM4A1[id] && read_data(2) == CSW_M4A1)
{
set_pev(idpev_viewmodel2g_szM4A1Model);
}

if(
g_bHasElite[id] && read_data(2) == CSW_ELITE)
{
set_pev(idpev_viewmodel2g_szEliteModel);
}

if(
g_bHasP90[id] && read_data(2) == CSW_P90)
{
set_pev(idpev_viewmodel2g_szP90Model);

}
}


public 
FwdPreFrame_Post(id)
{
if(!
is_user_alive(id))
{
return 
PLUGIN_HANDLED;
}

if(!
HasSpeed)
{
return 
PLUGIN_HANDLED;
}

else if(
HasSpeed)
{
set_user_maxspeed(idfast_speed);
}

return 
PLUGIN_HANDLED;
}


public 
FwdHamSpawn_Post(id)
{
if (!
is_user_alive(id))
return 
PLUGIN_CONTINUE;

HasSpeed false;
VipUsed[id] = false;
g_bHasKnifeB[id] = false
g_bHasKnifeW[id] = false
g_bHasAk47B[id] = false
g_bHasM4A1[id] = false
g_bHasElite[id] = false
g_bHasP90[id] = false
set_user_maxspeed(idnormal_speed);
set_user_renderingid_000_);
return 
PLUGIN_CONTINUE;
}  

public 
cmdVmenu(id)
{
if(!(
get_user_flags(id) & ADMIN_BBVIP))
{
client_printc(id"%s Doar !gmembri VIP Gold !tau acces la  !gMeniul de vip gold"PREFIX);

return 
PLUGIN_HANDLED;
}

if(
VipUsed[id])
{
client_printc(id"%s Ti-ai luat deja ceva din !gMeniul de VIP Gold!n in aceasta runda."PREFIX);

return 
PLUGIN_HANDLED;
}

switch(
cs_get_user_team(id))
{
case 
CS_TEAM_T:
    
VipTMenu(id);
    
case 
CS_TEAM_CT:
    
VipCTMenu(id);
    }
return 
PLUGIN_HANDLED;
}

public 
VipCTMenu(id)
{
    new 
menu menu_create("Meniu De ViP Gold:^n""VipCTMenu_handler");
    
    
menu_additem(menu"+450HP si +450Armor""1"0);
    
menu_additem(menu"WarHammer Royal""2"0);
    
menu_additem(menu"P90 Lapin""3"0);
    
menu_additem(menu"AK47 RedSkull""4"0);
    
menu_additem(menu"M4A1 RedSkull""5"0);
    
menu_additem(menu"Dual Final Elite x6""6"0);
    
menu_display(idmenu);
}

public 
VipCTMenu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    new 
key str_to_num(data);
    
    switch(
key)
    {
        case 
1:
        {
            
set_user_health(idget_user_health(id) + 450);
            
set_user_armor(idget_user_armor(id) + 450);
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit !g450HP!n si !g450Armor!n"PREFIX);
        }
        case 
2:
        {
            
set_pev(idpev_viewmodel2"models/bb_cso/v_warhammer_royale.mdl");
            
g_bHasKnifeB[id] = true;
            
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit !tViata !nsi !gWarHammer Royal"PREFIX);
        }
        
        case 
3:
        {
            
give_item(id"weapon_p90");
            
cs_set_user_bpammo(idCSW_P90200);
            
set_pev(idpev_viewmodel2"models/bb_cso/v_p90lapin.mdl");
            
g_bHasP90[id] = true;
            
VipUsed[id] = true;
            
client_printc(id"%s Tocmai ai primit un !gP90!n !gLapin!n"PREFIX);
        }
        case 
4:
        {
            
            
give_item(id"weapon_ak47");
            
cs_set_user_bpammo(idCSW_AK47200);
            
set_pev(idpev_viewmodel2"models/akbb/v_ak47_red.mdl");
            
g_bHasAk47B[id] = true;
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit un !gAK-47 RedSkull"PREFIX);
        }
        case 
5:
        {
            
            
give_item(id"weapon_m4a1");
            
cs_set_user_bpammo(idCSW_M4A1200);
            
set_pev(idpev_viewmodel2"models/akbb/v_m4a1_red.mdl");
            
g_bHasM4A1[id] = true;
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit un !gM4A1 RedSkull"PREFIX);
        }
        case 
6:
        {
            
            
give_item(id"weapon_elite");
            
cs_set_user_bpammo(idCSW_ELITE200);
            
set_pev(idpev_viewmodel2"models/bb_cso/v_dual_elite.mdl");
            
g_bHasElite[id] = true;
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit un !gElite Dual Final Elite"PREFIX);
        }
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
VipTMenu(id)
{
    new 
menu menu_create("Meniu De ViP:^n""VipTMenu_handler");
    
    
menu_additem(menu"Viteza""1"0);
    
menu_additem(menu"+5000Hp si +5000Armor""2"0);
    
menu_additem(menu"WarHammer Royal""3"0);
    
menu_additem(menu"Wolf Blade""4"0);
    
menu_display(idmenu);
}

public 
VipTMenu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    new 
key str_to_num(data);
    
    switch(
key)
    {
        
        case 
1:
        {
            
VipUsed[id] = true;
            
HasSpeed true;
            
            
set_user_maxspeed(idfast_speed);
            
            
client_printc(id"%s Tocmai ai primit !gViteza"PREFIX);
        }
        
        case 
2:
        {
            
set_user_health(idget_user_health(id) + 5000);
            
set_user_armor(idget_user_armor(id) + 5000);
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit !g5000 HP!n si !g5000 Armura!n"PREFIX);
        }
        
        case 
3:
        {
            
set_user_health(idget_user_health(id) + 2000);
            
set_user_armor(idget_user_armor(id) + 2000);
            
set_user_maxspeed(idfast_speed);
            
HasSpeed true;
            
set_pev(idpev_viewmodel2"models/bb_cso/v_warhammer_royale.mdl");
            
g_bHasKnifeB[id] = true;
            
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit !tViata !nsi un !gWarHammer Royal"PREFIX);
        }
        case 
4:
        {
            
set_user_health(idget_user_health(id) + 2500);
            
set_user_armor(idget_user_armor(id) + 2500);
            
set_user_maxspeed(idfast_speed);
            
HasSpeed true;
            
set_pev(idpev_viewmodel2"models/bb_cso/v_wolf_kosa.mdl");
            
g_bHasKnifeW[id] = true;
            
set_user_rendering(idkRenderFxNone000kRenderTransAlpha125); 
            
            
VipUsed[id] = true;
            
            
client_printc(id"%s Tocmai ai primit !tViata !nsi un !gWolf Blade"PREFIX);
        }
        
        
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

// Colour Chat
stock client_printc(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
    
    
replace_all(msg190"!g""^x04"); // Green Color
    
replace_all(msg190"!n""^x01"); // Default Color
    
replace_all(msg190"!t""^x03"); // 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();
        }
    }


Last edited by Raul3w; 06-29-2017 at 07:53.
Raul3w is offline
DjSoftero
Veteran Member
Join Date: Nov 2014
Location: Lithuania
Old 06-30-2017 , 14:51   Re: Pleaz add
Reply With Quote #2

recompile both of those, and it should work.
1st:
Spoiler

2nd:
Spoiler

next time, if you want to get help, then I would suggest you to follow forums rules. https://forums.alliedmods.net/misc.php?do=showrules
specificly rule nr2. Use descriptive topic name. "plz help" or "help needed" doesnt count.
__________________
retired chump

Last edited by DjSoftero; 06-30-2017 at 14:55.
DjSoftero is offline
Raul3w
Member
Join Date: Apr 2017
Old 07-01-2017 , 09:03   Re: Pleaz add
Reply With Quote #3

thanks
Raul3w is offline
Reply



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 22:18.


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