Raised This Month: $ Target: $400
 0% 

Suggestion / Subplugin Request Help diaz salamander plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
eqisaputra
Member
Join Date: Dec 2012
Old 06-09-2013 , 06:45   Help diaz salamander plugin
Reply With Quote #1

hey, i need help, im installed diaz plugins (salamander) and i use with basebuilder mod, and i have a problem, when human kill zombie with salamander, zombie is not alive again, how to fix it ?

http://idiasvn.net/enter/weapon-salamander-2013-version
eqisaputra is offline
JusTGo
Veteran Member
Join Date: Mar 2013
Old 06-09-2013 , 07:25   Re: Help diaz salamander plugin
Reply With Quote #2

this plugin is for zp4.3
JusTGo is offline
eqisaputra
Member
Join Date: Dec 2012
Old 06-09-2013 , 07:34   Re: Help diaz salamander plugin
Reply With Quote #3

Quote:
Originally Posted by JusTGo View Post
this plugin is for zp4.3
not for zp only, diaz make 2 code for zp and normal mod, and i use for basebuilder
eqisaputra is offline
Old 06-09-2013, 07:51
JusTGo
This message has been deleted by JusTGo.
Catastrophe
Veteran Member
Join Date: Jul 2012
Location: somewhere between narnia
Old 06-09-2013 , 07:54   Re: Help diaz salamander plugin
Reply With Quote #4

normal mode = base builder it's same...

Solution = Open code find ExecuteHam(Ham_killed,blablabal)change it to ExecuteHam(Ham_TakeDamage,blablabla)
Or just post the code here in php form, i'll do it.
__________________
You will find everything u need :-

Last edited by Catastrophe; 06-09-2013 at 07:56.
Catastrophe is offline
eqisaputra
Member
Join Date: Dec 2012
Old 06-09-2013 , 09:21   Re: Help diaz salamander plugin
Reply With Quote #5

Quote:
Originally Posted by Catastrophe View Post
normal mode = base builder it's same...

Solution = Open code find ExecuteHam(Ham_killed,blablabal)change it to ExecuteHam(Ham_TakeDamage,blablabla)
Or just post the code here in php form, i'll do it.
Here code :

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <xs>
#include <fun>
// #include <zombieplague>

#define PLUGIN "Salamander"
#define VERSION "3.0"
#define AUTHOR "Dias"

#define DAMAGE 38
#define RECOIL 0.1
#define FIRE_SPEED 500.0

#define BURN_DAMAGE 15
#define BURN_LOOP 1.0
#define BURN_TIME 5.0
#define FIREBURN_CLASSNAME "fire_burn"

#define CSW_SALAMANDER CSW_M249
#define weapon_salamander "weapon_m249"

#define DEFAULT_W_MODEL "models/w_m249.mdl"
#define WEAPON_SECRET_CODE 1962+400
#define FIRE_CLASSNAME "fire"

// Fire Start
#define WEAPON_ATTACH_F 40.0
#define WEAPON_ATTACH_R 5.0
#define WEAPON_ATTACH_U -15.0

#define TASK_RESET_AMMO 5434

const pev_ammo pev_iuser4

new const WeaponModel[3][] =
{
    
"models/v_flamethrower.mdl",
    
"models/p_flamethrower.mdl",
    
"models/w_flamethrower.mdl"
}

new const 
WeaponSound[6][] =
{
    
"weapons/flamegun-1.wav",
    
"weapons/flamegun-2.wav",
    
"weapons/flamegun_draw.wav",
    
"weapons/flamegun_clipin1.wav",
    
"weapons/flamegun_clipout1.wav",
    
"weapons/flamegun_clipout2.wav"
}

new const 
WeaponResource[7][] = 
{
    
"sprites/flame_puff01.spr",
    
"sprites/flame_burn01.spr",
    
"sprites/weapon_flamethrower.txt",
    
"sprites/640hud7_2.spr",
    
"sprites/640hud59_2.spr",
    
"sprites/640hud60_2.spr",
    
"sprites/smokepuff.spr"
}

enum
{
    
MODEL_V 0,
    
MODEL_P,
    
MODEL_W
}

enum
{
    
SALAMANDER_ANIM_IDLE 0,
    
SALAMANDER_ANIM_SHOOT_BEGIN,
    
SALAMANDER_ANIM_SHOOT_END,
    
SALAMANDER_ANIM_RELOAD,
    
SALAMANDER_ANIM_DRAW
}

new 
g_salamander
new g_had_salamander[33], g_old_weapon[33], Float:g_PunchAngles[33][3]
new 
g_smokepuff_idg_weapon_eventg_register,cvar_cost

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""Event_NewRound""a""1=0""2=0")
    
register_event("CurWeapon""event_CurWeapon""be""1=1")

    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_PlaybackEvent"fw_PlaybackEvent")
    
register_forward(FM_CmdStart"fw_CmdStart")

    
register_think(FIRE_CLASSNAME"fw_Fire_Think")
    
register_think(FIREBURN_CLASSNAME"fw_FireBurn_Think")
    
register_touch(FIRE_CLASSNAME"*""fw_Fire_Touch")
    
    
RegisterHam(Ham_Spawn"player""fw_Spawn_Post"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon_salamander"fw_AddToPlayer_Post"1)
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack")
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_salamander"fw_Weapon_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_salamander"fw_Weapon_PrimaryAttack_Post"1)
    
    
//g_dragoncannon = zp_register_extra_item("Dragon Cannon", 1, ZP_TEAM_HUMAN)
    
    
register_clcmd("say /salamander""get_salamander")
    
register_clcmd("weapon_flamethrower""hook_weapon")
    
cvar_cost register_cvar("salam_cost""9000")
    
register_clcmd("do_shoot""do_shoot")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

public 
do_shoot(id)
{
    static 
BodyTarget
    get_user_aiming
(idTargetBody9999)
    
    if(
is_user_alive(Target))
    {
        static 
EntEnt fm_get_user_weapon_entity(Targetget_user_weapon(Target))
        
ExecuteHamB(Ham_Weapon_PrimaryAttackEnt)
    }
}

public 
plugin_precache()
{
    new 
i
    
for(0sizeof(WeaponModel); i++)
        
engfunc(EngFunc_PrecacheModelWeaponModel[i])
    for(
0sizeof(WeaponSound); i++)
        
engfunc(EngFunc_PrecacheSoundWeaponSound[i])
        
    
engfunc(EngFunc_PrecacheModelWeaponResource[0])
    
engfunc(EngFunc_PrecacheModelWeaponResource[1])
    
engfunc(EngFunc_PrecacheGenericWeaponResource[2])
    
engfunc(EngFunc_PrecacheModelWeaponResource[3])
    
engfunc(EngFunc_PrecacheModelWeaponResource[4])
    
engfunc(EngFunc_PrecacheModelWeaponResource[5])
    
g_smokepuff_id engfunc(EngFunc_PrecacheModelWeaponResource[6])
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal("events/m249.sc"name))
        
g_weapon_event get_orig_retval()
}

public 
client_putinserver(id)
{
    if(
is_user_bot(id) && !g_register)
    {
        
g_register 1
        set_task
(0.1"do_register"id)
    }
}

public 
do_register(id)
{
    
RegisterHamFromEntity(Ham_TraceAttackid"fw_TraceAttack")            
}

public 
zp_extra_item_selected(iditemid)
{
    if(
itemid == g_salamanderget_salamander(id)
}

public 
get_salamander(id)
{
    if(!
is_user_alive(id))
        return    
    
drop_weapons(id1)

    new 
money cs_get_user_money(id)
    if (
money >= get_pcvar_num(cvar_cost))
    {
    
cs_set_user_money(idmoney get_pcvar_num(cvar_cost))
    
fm_give_item(idweapon_salamander)
    }
    else
    {
    
client_print(idprint_chat"[Frixa] You dont hav enough money to buy Salamander. Cost $%d "get_pcvar_num(cvar_cost))
    }
    
g_had_salamander[id] = 1
    message_begin
(MSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), _id)
    
write_byte(1)
    
write_byte(CSW_SALAMANDER)
    
write_byte(100)
    
message_end()
    
    
cs_set_user_bpammo(idCSW_SALAMANDER200)
}

public 
remove_salamnader(id)
{
    if(!
is_user_connected(id))
        return
        
    
g_had_salamander[id] = 0
}

public 
hook_weapon(idengclient_cmd(idweapon_salamander)
public 
Event_NewRound()
{
    
remove_entity_name(FIRE_CLASSNAME)
    
remove_entity_name(FIREBURN_CLASSNAME)
}
public 
event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
        
    if(
get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
    {
        
set_pev(idpev_viewmodel2WeaponModel[MODEL_V])
        
set_pev(idpev_weaponmodel2WeaponModel[MODEL_P])
        
        if(
g_old_weapon[id] != CSW_SALAMANDER)
        {
            
set_weapon_anim(idSALAMANDER_ANIM_DRAW)
            
set_pdata_float(id831.05)
        }
    }
    
    
g_old_weapon[id] = get_user_weapon(id)
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_connected(id) || !is_user_alive(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
        return 
FMRES_IGNORED
    
    set_cd
(cd_handleCD_flNextAttackget_gametime() + 0.001
    
    return 
FMRES_HANDLED
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity))
        return 
FMRES_IGNORED
    
    
static szClassName[33]
    
pev(entitypev_classnameszClassNamecharsmax(szClassName))
    
    if(!
equal(szClassName"weaponbox"))
        return 
FMRES_IGNORED
    
    
static id
    id 
pev(entitypev_owner)
    
    if(
equal(modelDEFAULT_W_MODEL))
    {
        static 
weapon
        weapon 
fm_find_ent_by_owner(-1weapon_salamanderentity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED
        
        
if(g_had_salamander[id])
        {
            
set_pev(weaponpev_impulseWEAPON_SECRET_CODE)
            
engfunc(EngFunc_SetModelentityWeaponModel[MODEL_W])
            
            
remove_salamnader(id)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED
}

public 
fw_PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if(!
is_user_connected(invoker) || !is_user_alive(invoker))
        return 
FMRES_IGNORED
    
if(get_user_weapon(invoker) != CSW_SALAMANDER || !g_had_salamander[invoker])
        return 
FMRES_IGNORED    
    
if(eventid == g_weapon_event)
    {
        
playback_event(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)    

        
set_weapon_anim(invokerSALAMANDER_ANIM_SHOOT_BEGIN)
        
        
/*
        if(get_gametime() - 0.1 > FireSound_Delay[invoker])
        {
            emit_sound(invoker, CHAN_WEAPON, WeaponSound[random_num(0, 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)    
            FireSound_Delay[invoker] = get_gametime()
        }*/
        
        
return FMRES_SUPERCEDE
    
}
    
    return 
FMRES_HANDLED
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_connected(id) || !is_user_alive(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
        return 
FMRES_IGNORED
        
    
static PressedButton
    PressedButton 
get_uc(uc_handleUC_Buttons)
    
    if(!(
PressedButton IN_ATTACK))
    {
        if((
pev(idpev_oldbuttons) & IN_ATTACK) && pev(idpev_weaponanim) == SALAMANDER_ANIM_SHOOT_BEGIN)
        {
            static 
weaponweapon fm_get_user_weapon_entity(idCSW_SALAMANDER)
            if(
pev_valid(weapon)) set_pdata_float(weapon482.04)
            
set_weapon_anim(idSALAMANDER_ANIM_SHOOT_END)
            
make_fire_smoke(id)
        }
    }
        
    return 
FMRES_HANDLED
}

public 
fw_Spawn_Post(id)
{
    
remove_salamnader(id)
}

public 
fw_AddToPlayer_Post(entid)
{
    if(!
pev_valid(ent))
        return 
HAM_IGNORED
        
    
if(pev(entpev_impulse) == WEAPON_SECRET_CODE)
    {
        
remove_salamnader(id)
        
g_had_salamander[id] = 1
    
}
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("WeaponList"), _id)
    
write_string(g_had_salamander[id] == "weapon_flamethrower" "weapon_m249")
    
write_byte(3)
    
write_byte(200)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(4)
    
write_byte(CSW_SALAMANDER)
    
write_byte(0)
    
message_end()            
    
    return 
HAM_HANDLED    
}

public 
fw_TraceAttack(EntAttackerFloat:DamageFloat:Dir[3], ptrDamageType)
{
    if(!
is_user_alive(Attacker))
        return 
HAM_IGNORED
    
if(get_user_weapon(Attacker) != CSW_SALAMANDER || !g_had_salamander[Attacker])
        return 
HAM_IGNORED
        
    
static Float:Origin[3], Float:TargetOrigin[3]
    
//get_tr2(ptr, TR_vecEndPos, TargetOrigin)
    
    
get_position(AttackerWEAPON_ATTACH_FWEAPON_ATTACH_RWEAPON_ATTACH_U 10.0Origin)
    
get_position(AttackerWEAPON_ATTACH_F 100.0WEAPON_ATTACH_RWEAPON_ATTACH_U 10.0TargetOrigin)
    
    
create_fire(AttackerOriginTargetOriginFIRE_SPEED)
        
    return 
HAM_SUPERCEDE
}

public 
fw_Weapon_PrimaryAttack(ent)
{
    static 
idid pev(entpev_owner)
    
pev(idpev_punchangleg_PunchAngles[id])
    
    return 
HAM_IGNORED    
}

public 
fw_Weapon_PrimaryAttack_Post(ent)
{
    static 
idid pev(ent,pev_owner)

    if(
get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
    {
        static 
Float:push[3]
        
pev(idpev_punchanglepush)
        
xs_vec_sub(pushg_PunchAngles[id], push)
        
        
xs_vec_mul_scalar(pushRECOILpush)
        
xs_vec_add(pushg_PunchAngles[id], push)
        
set_pev(idpev_punchanglepush)
    }
    
    return 
HAM_IGNORED    
}

public 
create_fake_attack(id)
{
    static 
weapon
    weapon 
fm_find_ent_by_owner(-1"weapon_knife"id)
    
    if(
pev_valid(weapon)) ExecuteHamB(Ham_Weapon_PrimaryAttackweapon)
}

public 
create_fire(idFloat:Origin[3], Float:TargetOrigin[3], Float:Speed)
{
    new 
iEnt create_entity("env_sprite")
    static 
Float:vfAngle[3], Float:MyOrigin[3], Float:Velocity[3]
    
    
pev(idpev_anglesvfAngle)
    
pev(idpev_originMyOrigin)
    
    
vfAngle[2] = float(random(18) * 20)

    
// set info for ent
    
set_pev(iEntpev_movetypeMOVETYPE_FLY)
    
set_pev(iEntpev_rendermodekRenderTransAdd)
    
set_pev(iEntpev_renderamt250.0)
    
set_pev(iEntpev_fuser1get_gametime() + 1.0)    // time remove
    
set_pev(iEntpev_scale0.5)
    
set_pev(iEntpev_nextthinkget_gametime() + 0.05)
    
    
entity_set_string(iEntEV_SZ_classnameFIRE_CLASSNAME)
    
engfunc(EngFunc_SetModeliEntWeaponResource[0])
    
set_pev(iEntpev_minsFloat:{-1.0, -1.0, -1.0})
    
set_pev(iEntpev_maxsFloat:{1.01.01.0})
    
set_pev(iEntpev_originOrigin)
    
set_pev(iEntpev_gravity0.01)
    
set_pev(iEntpev_anglesvfAngle)
    
set_pev(iEntpev_solidSOLID_TRIGGER)
    
set_pev(iEntpev_ownerid)    
    
set_pev(iEntpev_frame0.0)
    
set_pev(iEntpev_iuser2get_user_team(id))

    
get_speed_vector(OriginTargetOriginSpeedVelocity)
    
set_pev(iEntpev_velocityVelocity)
    
    
emit_sound(iEntCHAN_BODYWeaponSound[random_num(01)], 1.0ATTN_NORM0PITCH_NORM)    
}

public 
fw_Fire_Think(iEnt)
{
    if(!
pev_valid(iEnt)) 
        return
    
    new 
Float:fFrameFloat:fScaleFloat:fNextThink
    pev
(iEntpev_framefFrame)
    
pev(iEntpev_scalefScale)

    
// effect exp
    
new iMoveType pev(iEntpev_movetype)
    if (
iMoveType == MOVETYPE_NONE)
    {
        
fNextThink 0.015
        fFrame 
+= 1.0
        fScale 
floatmax(fScale1.75)
        
        if (
fFrame 21.0)
        {
            
engfunc(EngFunc_RemoveEntityiEnt)
            return
        }
    }
    
    
// effect normal
    
else
    {
        
fNextThink 0.045
        fFrame 
+= 1.0
        fFrame 
floatmin(21.0fFrame)
        
fScale += 0.2
        fScale 
floatmin(fScale1.75)
    }

    
set_pev(iEntpev_framefFrame)
    
set_pev(iEntpev_scalefScale)
    
set_pev(iEntpev_nextthinkget_gametime() + fNextThink)
    
    
// time remove
    
static Float:fTimeRemove
    pev
(iEntpev_fuser1fTimeRemove)
    if (
get_gametime() >= fTimeRemove)
    {
        
engfunc(EngFunc_RemoveEntityiEnt)
        return;
    }
}

public 
fw_Fire_Touch(entid)
{
    if(!
pev_valid(ent))
        return
        
    if(
pev_valid(id))
    {
        static 
Classname[32]
        
pev(idpev_classnameClassnamesizeof(Classname))
        
        if(
equal(ClassnameFIRE_CLASSNAME)) return
        else if(
is_user_alive(id)) 
        {
            static 
EntTeamEntTeam pev(entpev_iuser2)
            if(
get_user_team(id) != EntTeam)
            {
                
do_attack(pev(entpev_owner), id0float(DAMAGE))
                
Make_FireBurn(id)
            }
        }
    }
        
    
set_pev(entpev_movetypeMOVETYPE_NONE)
    
set_pev(entpev_solidSOLID_NOT)
}

public 
make_fire_smoke(id)
{
    static 
Float:Origin[3]
    
get_position(idWEAPON_ATTACH_FWEAPON_ATTACH_RWEAPON_ATTACH_UOrigin)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY
    
write_byte(TE_EXPLOSION
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_smokepuff_id
    
write_byte(5)
    
write_byte(30)
    
write_byte(14)
    
message_end()
}

public 
Make_FireBurn(id)
{
    static 
EntEnt fm_find_ent_by_owner(-1FIREBURN_CLASSNAMEid)
    if(!
pev_valid(Ent))
    {
        new 
iEnt create_entity("env_sprite")
        static 
Float:MyOrigin[3]
        
        
pev(idpev_originMyOrigin)
        
        
// set info for ent
        
set_pev(iEntpev_movetypeMOVETYPE_FLY)
        
set_pev(iEntpev_rendermodekRenderTransAdd)
        
set_pev(iEntpev_renderamt250.0)
        
set_pev(iEntpev_fuser1get_gametime() + 5.0)    // time remove
        
set_pev(iEntpev_scale1.0)
        
set_pev(iEntpev_nextthinkget_gametime() + 0.5)
        
        
entity_set_string(iEntEV_SZ_classnameFIREBURN_CLASSNAME)
        
engfunc(EngFunc_SetModeliEntWeaponResource[1])
        
set_pev(iEntpev_originMyOrigin)
        
set_pev(iEntpev_ownerid)
        
set_pev(iEntpev_aimentid)
        
set_pev(iEntpev_frame0.0)
    }
}

public 
fw_FireBurn_Think(iEnt)
{
    if(!
pev_valid(iEnt)) 
        return
    
    static 
Float:fFrame
    pev
(iEntpev_framefFrame)

    
// effect exp
    
fFrame += 1.0
    
if(fFrame 15.0fFrame 0.0

    set_pev
(iEntpev_framefFrame)
    
set_pev(iEntpev_nextthinkget_gametime() + 0.05)
    
    static 
id
    id 
pev(iEntpev_owner)
    
    if(
get_gametime() - BURN_LOOP pev(iEntpev_fuser2))
    {
        
ExecuteHam(Ham_TakeDamageid0id0.0DMG_BURN)
        if((
get_user_health(id) - BURN_DAMAGE) > 0)
            
set_user_health(idget_user_health(id) - BURN_DAMAGE)
        else
            
user_kill(id)
        
set_pev(iEntpev_fuser2get_gametime())
    }
    
    
// time remove
    
static Float:fTimeRemove
    pev
(iEntpev_fuser1fTimeRemove)
    if (
get_gametime() >= fTimeRemove)
    {
        
engfunc(EngFunc_RemoveEntityiEnt)
        return;
    }
}

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 ptr create_tr2() 
    
engfunc(EngFunc_TraceLinefStartfAimOriginDONT_IGNORE_MONSTERSiAttackerptr)
    new 
pHit get_tr2(ptrTR_pHit)
    new 
iHitgroup get_tr2(ptrTR_iHitgroup)
    new 
Float:fEndPos[3]
    
get_tr2(ptrTR_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 ptr 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(ptrTR_pHitiVictim)
    
set_tr2(ptrTR_iHitgroupiHitgroup)
    
set_tr2(ptrTR_vecEndPosfEndPos)
    
    
// hitgroup multi fDamage
    
new Float:fMultifDamage 
    
switch(iHitgroup)
    {
        case 
HIT_HEADfMultifDamage  4.0
        
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(iAttackeriVictimfDamagefDirectionptr)
    
    
// free ptr
    
free_tr2(ptr)
}

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

stock fake_take_damage(iAttackeriVictimFloat:fDamageiInflictoriDamageBit = (DMG_NEVERGIB DMG_BULLET))
{
    
ExecuteHam(Ham_TakeDamageiVictimiInflictoriAttackerfDamageiDamageBit)
}

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 set_weapon_anim(idanim)
{
    if(!
is_user_alive(id) || pev(idpev_weaponanim) == anim)
        return
        
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(pev(idpev_body))
    
message_end()
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
    
    for (
0numi++)
    {
        
weaponid weapons[i]
        
        if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }
}

stock set_player_nextattack(playerweapon_idFloat:NextTime)
{
    const 
m_flNextPrimaryAttack 46
    
const m_flNextSecondaryAttack 47
    
const m_flTimeWeaponIdle 48
    
const m_flNextAttack 83
    
    
static weapon
    weapon 
fm_get_user_weapon_entity(playerweapon_id)
    
    
set_pdata_float(playerm_flNextAttackNextTime5)
    if(
pev_valid(weapon))
    {
        
set_pdata_float(weaponm_flNextPrimaryAttack NextTime4)
        
set_pdata_float(weaponm_flNextSecondaryAttackNextTime4)
        
set_pdata_float(weaponm_flTimeWeaponIdleNextTime4)
    }
}

stock get_position(id,Float:forwFloat:rightFloat:upFloat:vStart[])
{
    new 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(idpev_originvOrigin)
    
pev(idpev_view_ofs,vUp//for player
    
xs_vec_add(vOrigin,vUp,vOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward//or use EngFunc_AngleVectors
    
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
    
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
    
    
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
    vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
    vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3])
{
    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num
    
    
return 1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
i'm not found Ham_killed
eqisaputra 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 09:13.


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