Raised This Month: $12 Target: $400
 3% 

Can You Help?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
By Hazard
Member
Join Date: Jan 2016
Old 12-21-2017 , 11:44   Can You Help?
Reply With Quote #1

When the gun becomes a zombie still is not going, Could you help me? Thank you.

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

#define PLUGIN "Blood-Dripper" 
#define VERSION "1.0" 
#define AUTHOR "m4m3ts" 

#define CSW_BDRIPPER CSW_MAC10 
#define weapon_guillotine "weapon_knife" 
#define old_event "events/knife.sc" 
#define old_w_model "models/w_knife.mdl" 
#define WEAPON_SECRETCODE 1329419 


#define DEFAULT_AMMO 10 
#define DAMAGE 10 
#define BDRIP_CLASSNAME "Blood Dripper" 
#define WEAPON_ANIMEXT "knife" 

#define Get_Ent_Data(%1,%2) get_pdata_int(%1,%2,4) 
#define Set_Ent_Data(%1,%2,%3) set_pdata_int(%1,%2,%3,4) 

const PDATA_SAFE 
const OFFSET_LINUX_WEAPONS 
const OFFSET_WEAPONOWNER 41 
const m_flNextAttack 83 
const m_szAnimExtention 492 

new const v_model[] = "models/v_guillotine.mdl" 
new const p_model[] = "models/p_guillotine.mdl" 
new const w_model[] = "models/w_guillotine.mdl" 
new const KNIFE_MODEL[] = "models/guillotine_projectile.mdl" 
new const PECAH_MODEL[] = "models/gibs_guilotine.mdl" 
new const hit_wall[] = "weapons/janus9_stone1.wav" 
new const hit_wall2[] = "weapons/janus9_stone2.wav" 
new const weapon_sound[6][] =  

    
"weapons/guillotine_catch2.wav"
    
"weapons/guillotine_draw.wav"
    
"weapons/guillotine_draw_empty.wav"
    
"weapons/guillotine_explode.wav"
    
"weapons/guillotine_red.wav"
    
"weapons/guillotine-1.wav" 



new const 
WeaponResource[3][] =  

    
"sprites/weapon_guillotine.txt"
    
"sprites/640hud120.spr"
    
"sprites/guillotine_lost.spr" 


enum
{
  
ANIM_KNIFE_IDLE 0,
  
ANIM_KNIFE_SLASH1,
  
ANIM_KNIFE_DRAW,
  
ANIM_KNIFE_STAB
  
/*ANIM_IDLE_SHOOT,
  ANIM_IDLE_SHOOT2,
  ANIM_CATCH,
  ANIM_LOST*/
}


enum
{
  
ANIM_IDLE 0,
  
ANIM_IDLE_EMPTY,
  
ANIM_SHOOT,
  
ANIM_DRAW,
  
ANIM_DRAW_EMPTY,
  
ANIM_IDLE_SHOOT,
  
ANIM_IDLE_SHOOT2,
  
ANIM_CATCH,
  
ANIM_LOST
}

new 
g_MsgDeathMsg 

new g_had_guillotine[33], g_guillotine_ammo[33], shoot_mode[33], shoot_ent_mode[33], g_pecahheadshot_mode[33], ent_sentuh[33], ent_sentuh_balik[33
new 
g_old_weapon[33], g_smokepuff_idm_iBlood[2], guillotine_korban[33], headshot_korban[33], gmsgScoreInfo 

const PRIMARY_WEAPONS_BIT_SUM =  
(
1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(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

public 
plugin_init() 

    
register_plugin(PLUGINVERSIONAUTHOR
    
register_cvar("guillotine_version""m4m3ts"FCVAR_SERVER|FCVAR_SPONLY
    
register_forward(FM_CmdStart"fw_CmdStart"
    
register_forward(FM_SetModel"fw_SetModel"
    
register_think(BDRIP_CLASSNAME"fw_Think"
    
register_touch(BDRIP_CLASSNAME"*""fw_touch"
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1
    
register_forward(FM_TraceLine"fw_traceline"1
    
register_forward(FM_AddToFullPack"fm_addtofullpack_post"1
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_guillotine"fw_guillotineidleanim"1
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled"
    
RegisterHam(Ham_Item_AddToPlayerweapon_guillotine"fw_AddToPlayer_Post"1
    
register_event("CurWeapon""Event_CurWeapon""be""1=1"
         
    
RegisterHam(Ham_Spawn"player""get_guillotine"1);

     
    
g_MsgDeathMsg get_user_msgid("DeathMsg"
    
gmsgScoreInfo get_user_msgid("ScoreInfo"



public 
plugin_precache() 

    
precache_model(v_model
    
precache_model(p_model
    
precache_model(w_model
    
precache_model(KNIFE_MODEL
    
g_pecah precache_model(PECAH_MODEL
    
precache_sound(hit_wall
    
precache_sound(hit_wall2
     
    for(new 
0sizeof(weapon_sound); i++)  
        
precache_sound(weapon_sound[i]) 
     
    for(new 
1sizeof(WeaponResource); i++) 
        
precache_model(WeaponResource[i]) 
     
    
g_smokepuff_id engfunc(EngFunc_PrecacheModelWeaponResource[2]) 
    
m_iBlood[0] = precache_model("sprites/blood.spr"
    
m_iBlood[1] = precache_model("sprites/bloodspray.spr")     


public 
fw_PlayerKilled(id

    
remove_guillotine(id

public 
get_guillotine(id

if(
get_user_flags(id) & ADMIN_BAN){
    if(!
is_user_alive(id)) 
        return 
    
g_had_guillotine[id] = 
    g_guillotine_ammo
[id] = DEFAULT_AMMO 
     
    give_item
(idweapon_guillotine
    
update_ammo(id
     
    static 
weapon_entweapon_ent fm_find_ent_by_owner(-1weapon_guillotineid
    if(
pev_valid(weapon_ent)) cs_set_weapon_ammo(weapon_ent1

}
public 
remove_guillotine(id

    
g_had_guillotine[id] = 


public 
refill_guillotine(id
{     
    if(
g_had_guillotine[id]) g_guillotine_ammo[id] = 15 
     
    
if(get_user_weapon(id) == CSW_KNIFE && g_had_guillotine[id]) update_ammo(id

     
public 
fw_UpdateClientData_Post(idsendweaponscd_handle

    if(!
is_user_alive(id) || !is_user_connected(id)) 
        return 
FMRES_IGNORED     
    
if(get_user_weapon(id) == CSW_BDRIPPER && g_had_guillotine[id]) 
        
set_cd(cd_handleCD_flNextAttackget_gametime() + 0.001)  
     
    return 
FMRES_HANDLED 


public 
Event_CurWeapon(id

    if(!
is_user_alive(id)) 
        return 
         
    if(
get_user_weapon(id) == CSW_KNIFE && g_had_guillotine[id]) 
    { 
        
set_pev(idpev_viewmodel2v_model
        
set_pev(idpev_weaponmodel2p_model
        
set_pdata_string(idm_szAnimExtention 4WEAPON_ANIMEXT, -20
        if(
g_old_weapon[id] != CSW_KNIFE && g_guillotine_ammo[id] >= 1set_weapon_anim(idANIM_DRAW
        if(
g_old_weapon[id] != CSW_KNIFE && g_guillotine_ammo[id] == 0set_weapon_anim(idANIM_DRAW_EMPTY
        
update_ammo(id
    } 
     
    
g_old_weapon[id] = get_user_weapon(id


public 
fw_guillotineidleanim(Weapon

    new 
id get_pdata_cbase(Weapon414

    if(!
is_user_alive(id) || !g_had_guillotine[id] || get_user_weapon(id) != CSW_KNIFE
        return 
HAM_IGNORED
     
    if(
shoot_mode[id] == && g_guillotine_ammo[id] >= 1)  
        return 
HAM_SUPERCEDE
     
    if(
headshot_mode[id] == && shoot_mode[id] == && get_pdata_float(Weapon484) <= 0.25)  
    { 
        
set_weapon_anim(idANIM_IDLE_SHOOT
        
set_pdata_float(Weapon4820.04
        return 
HAM_SUPERCEDE
    } 
     
    if(
headshot_mode[id] == && shoot_mode[id] == && get_pdata_float(Weapon484) <= 0.25)  
    { 
        
set_weapon_anim(idANIM_IDLE_SHOOT2
        
set_pdata_float(Weapon4820.04
        return 
HAM_SUPERCEDE
    } 
     
    if(
g_guillotine_ammo[id] == && get_pdata_float(Weapon484) <= 0.25)  
    { 
        
set_weapon_anim(idANIM_IDLE_EMPTY
        
set_pdata_float(Weapon4820.04
        return 
HAM_SUPERCEDE
    } 

    return 
HAM_IGNORED


public 
fw_CmdStart(iduc_handleseed

    if(!
is_user_alive(id) || !is_user_connected(id)) 
        return 
    if(
get_user_weapon(id) != CSW_KNIFE || !g_had_guillotine[id]) 
        return 
     
    static 
entent fm_get_user_weapon_entity(idCSW_KNIFE
    if(!
pev_valid(ent)) 
        return 
    if(
get_pdata_float(ent46OFFSET_LINUX_WEAPONS) > 0.0 || get_pdata_float(ent47OFFSET_LINUX_WEAPONS) > 0.0)  
        return 
     
    static 
CurButton 
    CurButton 
get_uc(uc_handleUC_Buttons
     
    if(
CurButton IN_ATTACK
    { 
        
CurButton &= ~IN_ATTACK 
        set_uc
(uc_handleUC_ButtonsCurButton
         
        if(
g_guillotine_ammo[id] == 0
            return 
        if(
shoot_mode[id] == && get_pdata_float(id835) <= 0.0
        { 
            
g_guillotine_ammo[id]-- 
            
update_ammo(id
            
shoot_mode[id] = 
            FireKnife
(id
            
set_weapon_anim(idANIM_SHOOT
            
emit_sound(idCHAN_WEAPONweapon_sound[5], 1.0ATTN_NORM0PITCH_NORM
            
set_weapons_timeidle(idCSW_BDRIPPER0.7
            
set_player_nextattackx(id0.7
        } 
    } 


public 
FireKnife(id

    static 
Float:StartOrigin[3], Float:velocity[3], Float:angles[3], Float:anglestrue[3], Float:jarak_max[3
    
get_position(id2.00.00.0StartOrigin
    
get_position(id700.00.00.0jarak_max
     
    
pev(id,pev_v_angle,angles
    static 
EntEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target")) 
    if(!
pev_valid(Ent)) return 
    
anglestrue[0] = 360.0 angles[0
    
anglestrue[1] = angles[1
    
anglestrue[2] = angles[2
     
    
// Set info for ent 
    
set_pev(Entpev_movetypeMOVETYPE_FLY
    
set_pev(Entpev_ownerid
    
set_pev(Entpev_iuser1id
    
set_pev(Entpev_fuser1get_gametime() + 4.0
    
set_pev(Entpev_nextthinkhalflife_time() + 0.01
     
    
entity_set_string(EntEV_SZ_classnameBDRIP_CLASSNAME
    
engfunc(EngFunc_SetModelEntKNIFE_MODEL
    
set_pev(Entpev_minsFloat:{-1.0, -1.0, -1.0}) 
    
set_pev(Entpev_maxsFloat:{1.01.01.0}) 
    
set_pev(Entpev_originStartOrigin
    
set_pev(Entpev_anglesanglestrue
    
set_pev(Entpev_gravity0.01
    
set_pev(Entpev_solidSOLID_BBOX
    
set_pev(Entpev_frame1.0
    
set_pev(Entpev_framerate30.0
    
set_pev(Entpev_sequence0
     
    
velocity_by_aimid1100velocity 
    
set_pevEntpev_velocityvelocity 
    
set_pev(Entpev_vuser1velocity
    
set_pev(Entpev_vuser2jarak_max
    
shoot_ent_mode[id] = 
    ent_sentuh
[id] = 
    ent_sentuh_balik
[id] = 


public 
fm_addtofullpack_post(eseuserhosthost_flagsplayerp_set

    if(!
player
        return 
FMRES_IGNORED 
         
    
if(!is_user_connected(host) || !is_user_alive(user)) 
        return 
FMRES_IGNORED 
         
    
if(headshot_korban[user] != 1
        return 
FMRES_IGNORED 
         
    
if(host == user
        return 
FMRES_IGNORED 
     
    
new Float:PlayerOrigin[3], Float:anglesss[3
    
pev(userpev_originPlayerOrigin
     
    
engfunc(EngFunc_GetBonePositionuser8PlayerOriginanglesss
                         
    
engfunc(EngFunc_SetOriginguillotine_korban[user], PlayerOrigin
    
engfunc(EngFunc_SetOriginguillotine_korban[user], PlayerOrigin

    return 
FMRES_HANDLED 


public 
fw_Think(Ent

    if(!
pev_valid(Ent))  
        return 
     
    static 
Float:pulang[3], Float:StartOriginz[3], pemilixFloat:brangkat[3], Float:jarak_max[3], Float:origin_asli[3], korban 
    pemilix 
pev(Entpev_iuser1
    
pev(Entpev_originStartOriginz
    
korban pev(Entpev_iuser2
     
    if(
headshot_korban[korban] == 1
    { 
        if(
get_gametime() - 0.2 pev(Entpev_fuser3)) 
        { 
            
Damage_guillotine(Entkorban
            
set_pev(Entpev_fuser3get_gametime()) 
        } 
    } 
     
    if(
ent_sentuh_balik[pemilix] == && shoot_ent_mode[pemilix] == 1
    { 
        
ent_sentuh_balik[pemilix] = 
        pev
(pemilixpev_originorigin_asli
        
origin_asli[2] += 7.5 
    

     
    if(
ent_sentuh[pemilix] == 1
    { 
        
ent_sentuh[pemilix] = 
        pev
(Entpev_vuser2jarak_max
        
pev(Entpev_vuser1brangkat
        
get_speed_vector(StartOriginzorigin_asli1100.0pulang
                     
        if(
shoot_ent_mode[pemilix] == 1
        { 
            
set_pev(Entpev_velocitypulang
        } 
        else 
set_pev(Entpev_velocitybrangkat
    } 
     
    if(
shoot_ent_mode[pemilix] == && get_distance_f(StartOriginzjarak_max) <= 10.0
    { 
        
shoot_ent_mode[pemilix] = 
        ent_sentuh
[pemilix] = 
        set_pev
(Entpev_owner0
    } 
     
    if(
shoot_ent_mode[pemilix] == && get_distance_f(StartOriginzorigin_asli) <= 10.0
    { 
        if(
is_user_alive(pemilix) && is_user_connected(pemilix) && get_user_weapon(pemilix) == CSW_KNIFE && g_had_guillotine[pemilix]) balik(Ent
        else 
ancur(Ent
    } 
    else if(
headshot_korban[korban] == 1set_pev(Entpev_nextthinkget_gametime() + 0.2
    else 
set_pev(Entpev_nextthinkhalflife_time() + 0.01


public 
fw_touch(EntId

    
// If ent is valid 
    
if(!pev_valid(Ent)) 
        return 
    if(
pev(Entpev_movetype) == MOVETYPE_NONE
        return 
    static 
classnameptd[32
    
pev(Idpev_classnameclassnameptd31
    if (
equali(classnameptd"func_breakable")) ExecuteHamBHam_TakeDamageId0080.0DMG_GENERIC 
     
    
// Get it's origin 
    
new Float:originF[3], pemilix 
    pemilix 
pev(Entpev_iuser1
    
pev(Entpev_originoriginF
    
// Alive... 
     
    
if(is_user_alive(Id) && cs_get_user_team(pemilix) != cs_get_user_team(Id)) 
    { 
        
Damage_guillotine(EntId
        
set_pev(Entpev_ownerId
        
ent_sentuh[pemilix] = 
        create_blood
(originF
        
create_blood(originF
    } 
     
    else if(
shoot_ent_mode[pemilix] == && Id == pemilix
    { 
        if(
is_user_alive(pemilix) && is_user_connected(pemilix) && get_user_weapon(pemilix) == CSW_KNIFE && g_had_guillotine[pemilix]) balik(Ent
        else 
ancur(Ent
    } 
     
    else if(
is_user_alive(Id) && cs_get_user_team(pemilix) == cs_get_user_team(Id)) 
    { 
        
set_pev(Entpev_ownerId
        
ent_sentuh[pemilix] = 
    

     
    else 
    { 
        
set_pev(Entpev_owner0

        if(
shoot_ent_mode[pemilix] == 0
        { 
            
shoot_ent_mode[pemilix] = 
            engfunc
(EngFunc_EmitSoundEntCHAN_WEAPONhit_wall1.0ATTN_STATIC0PITCH_NORM
            
ent_sentuh[pemilix] = 
        

        else 
ancur(Ent
    } 


public 
ancur(Ent

    if(!
pev_valid(Ent)) 
        return 
    static 
Float:origin2[3], pemilixFloat:origin3[3
    
pemilix pev(Entpev_iuser1
    
entity_get_vector(EntEV_VEC_originorigin2
    
pev(Entpev_originorigin3
     
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin20
    
write_byte(TE_BREAKMODEL
    
engfunc(EngFunc_WriteCoordorigin2[0]) 
    
engfunc(EngFunc_WriteCoordorigin2[1]) 
    
engfunc(EngFunc_WriteCoordorigin2[2]) 
    
engfunc(EngFunc_WriteCoord25
    
engfunc(EngFunc_WriteCoord25
    
engfunc(EngFunc_WriteCoord25
    
engfunc(EngFunc_WriteCoordrandom_num(-2525)) 
    
engfunc(EngFunc_WriteCoordrandom_num(-2525)) 
    
engfunc(EngFunc_WriteCoord5
    
write_byte(5
    
write_short(g_pecah
    
write_byte(10
    
write_byte(17
    
write_byte(0x00
    
message_end() 
     
    
fake_smokes(origin3
    
engfunc(EngFunc_EmitSoundEntCHAN_WEAPONhit_wall21.0ATTN_STATIC0PITCH_NORM
    
shoot_mode[pemilix] = 
    remove_entity
(Ent
     
    if(!
is_user_alive(pemilix) || !is_user_connected(pemilix) || get_user_weapon(pemilix) != CSW_KNIFE || !g_had_guillotine[pemilix]) 
        return 
     
    
set_weapon_anim(pemilixANIM_LOST
    
set_weapons_timeidle(pemilixCSW_KNIFE2.5
    
set_player_nextattackx(pemilix2.5
    
set_task(1.3"reload2"pemilix
    
set_task(1.4"reload"pemilix


public 
reload(id

    if(!
is_user_alive(id) || !is_user_connected(id) || get_user_weapon(id) != CSW_KNIFE || !g_had_guillotine[id] || g_guillotine_ammo[id] == 0
        return 
     
    
set_weapon_anim(idANIM_DRAW


public 
reload2(id

    if(!
is_user_alive(id) || !is_user_connected(id) || get_user_weapon(id) != CSW_KNIFE || !g_had_guillotine[id] || g_guillotine_ammo[id] == 0
        return 
     
    
set_weapon_anim(idANIM_IDLE_SHOOT2


public 
balik(Ent

    if(!
pev_valid(Ent)) 
        return 
    static 
id 
    id 
pev(Entpev_iuser1
    
set_weapon_anim(idANIM_CATCH
    
emit_sound(idCHAN_WEAPONweapon_sound[0], 1.0ATTN_NORM0PITCH_NORM
    
set_weapons_timeidle(idCSW_KNIFE1.0
    
set_player_nextattackx(id1.0
    
shoot_mode[id] = 
    g_guillotine_ammo
[id]++ 
    
update_ammo(id
     
    
remove_entity(Ent


public 
Damage_guillotine(EntId

    static 
OwnerOwner pev(Entpev_iuser1
    static 
Attacker;  
    if(!
is_user_alive(Owner))  
    { 
        
Attacker 
        
return 
    } else 
Attacker Owner 
     
    
new bool:bIsHeadShot// never make that one static 
    
new Float:flAdjustedDamagebool:death 
         
    
switch( Get_MissileWeaponHitGroup(Ent) )  
    { 
        case 
HIT_GENERICflAdjustedDamage DAMAGE 1.0  
        
case HIT_STOMACHflAdjustedDamage DAMAGE 1.3  
        
case HIT_LEFTLEGHIT_RIGHTLEGflAdjustedDamage DAMAGE 1.1 
        
case HIT_LEFTARMHIT_RIGHTARMflAdjustedDamage DAMAGE 1.2 
        
case HIT_HEADHIT_CHEST
        { 
            
flAdjustedDamage DAMAGE 1.7 
            bIsHeadShot 
true 
            
if(headshot_mode[Owner] == 0set_task(2.0"balik_bro"Ent+1858941 
            
headshot_mode[Owner] = 
            headshot_korban
[Id] = 
            guillotine_korban
[Id] = Ent 
            set_pev
(Entpev_iuser2Id
            
set_pev(Entpev_sequence1
            
set_pev(Entpev_solidSOLID_NOT
            
set_pev(Entpev_fuser30.0
        } 
    } 
    if(
pev(Idpev_health) <= flAdjustedDamagedeath true  
     
    
if(is_user_alive(Id)) 
    { 
        if( 
bIsHeadShot && death
        { 
            if(
task_existsEnt+1858941 )) remove_taskEnt 1858941 
            
set_pev(Entpev_sequence0
            
headshot_korban[pev(Entpev_iuser2)] = 
            headshot_mode
[Owner] = 
            shoot_ent_mode
[Owner] = 
            ent_sentuh
[Owner] = 
            ent_sentuh_balik
[Owner] = 
            set_pev
(Entpev_solidSOLID_BBOX
            
set_pev(Entpev_nextthinkhalflife_time() + 0.01
     
            
kill(AttackerId1
             
            
death false             
        

        if(
death
        { 
            
kill(AttackerId0
             
            
death false             
        

        else 
ExecuteHamB(Ham_TakeDamageIdEntAttackerflAdjustedDamageDMG_BULLET
    } 


public 
balik_bro(Ent

    
Ent -= 1858941 
     
    
if(!pev_valid(Ent)) 
        return 
     
    static 
pemilixpemilix pev(Entpev_iuser1
    
set_pev(Entpev_sequence0
    
headshot_korban[pev(Entpev_iuser2)] = 
    headshot_mode
[pemilix] = 
    shoot_ent_mode
[pemilix] = 
    ent_sentuh
[pemilix] = 
    ent_sentuh_balik
[pemilix] = 
    set_pev
(Entpev_solidSOLID_BBOX
    
set_pev(Entpev_nextthinkhalflife_time() + 0.01


public 
fw_SetModel(entitymodel[]) 

    if(!
pev_valid(entity)) 
        return 
FMRES_IGNORED 
     
    
static Classname[64
    
pev(entitypev_classnameClassnamesizeof(Classname)) 
     
    if(!
equal(Classname"weaponbox")) 
        return 
FMRES_IGNORED 
     
    
static id 
    id 
pev(entitypev_owner
     
    if(
equal(modelold_w_model)) 
    { 
        static 
weapon 
        weapon 
fm_get_user_weapon_entity(entityCSW_KNIFE
         
        if(!
pev_valid(weapon)) 
            return 
FMRES_IGNORED 
         
        
if(g_had_guillotine[id]) 
        { 
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE
            
set_pev(weaponpev_iuser4g_guillotine_ammo[id]) 
            
engfunc(EngFunc_SetModelentityw_model
             
            
g_had_guillotine[id] = 
            g_guillotine_ammo
[id] = 
             
            
return FMRES_SUPERCEDE 
        

    } 

    return 
FMRES_IGNORED


public 
fw_AddToPlayer_Post(entid

    if(
pev(entpev_impulse) == WEAPON_SECRETCODE
    { 
        
g_had_guillotine[id] = 
        g_guillotine_ammo
[id] = pev(entpev_iuser4
         
        
set_pev(entpev_impulse0
    }             
     
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("WeaponList"), _id
    
write_string((g_had_guillotine[id] == "weapon_guillotine" "weapon_knife")) 
    
write_byte(6
    
write_byte(100
    
write_byte(-1
    
write_byte(-1
    
write_byte(0
    
write_byte(13
    
write_byte(CSW_BDRIPPER
    
write_byte(0
    
message_end() 


public 
update_ammo(id

    if(!
is_user_alive(id)) 
        return 

    static 
weapon_entweapon_ent fm_get_user_weapon_entity(idCSW_BDRIPPER
    if(!
pev_valid(weapon_ent)) return 
     
    
cs_set_weapon_ammo(weapon_entg_guillotine_ammo[id])     
    
cs_set_user_bpammo(idCSW_BDRIPPERg_guillotine_ammo[id]) 
     
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id
    
write_byte(1
    
write_byte(CSW_BDRIPPER
    
write_byte(-1
    
message_end() 
     
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("AmmoX"), _id
    
write_byte(1
    
write_byte(g_guillotine_ammo[id]) 
    
message_end() 


public 
fw_traceline(Float:v1[3],Float:v2[3],noMonsters,id,ptr

    if(!
is_user_alive(id)) 
        return 
HAM_IGNORED     
    
if(get_user_weapon(id) != CSW_BDRIPPER || !g_had_guillotine[id]) 
        return 
HAM_IGNORED 

    
// get crosshair aim 
    
static Float:aim[3]; 
    
get_aim(id,v1,aim); 
     
    
// do another trace to this spot 
    
new trace create_tr2(); 
    
engfunc(EngFunc_TraceLine,v1,aim,noMonsters,id,trace); 
     
    
// copy ints 
    
set_tr2(ptr,TR_AllSolid,get_tr2(trace,TR_AllSolid)); 
    
set_tr2(ptr,TR_StartSolid,get_tr2(trace,TR_StartSolid)); 
    
set_tr2(ptr,TR_InOpen,get_tr2(trace,TR_InOpen)); 
    
set_tr2(ptr,TR_InWater,get_tr2(trace,TR_InWater)); 
    
set_tr2(ptr,TR_pHit,get_tr2(trace,TR_pHit)); 
    
set_tr2(ptr,TR_iHitgroup,get_tr2(trace,TR_iHitgroup)); 

    
// copy floats 
    
get_tr2(trace,TR_flFraction,aim[0]); 
    
set_tr2(ptr,TR_flFraction,aim[0]); 
    
get_tr2(trace,TR_flPlaneDist,aim[0]); 
    
set_tr2(ptr,TR_flPlaneDist,aim[0]); 
     
    
// copy vecs 
    
get_tr2(trace,TR_vecEndPos,aim); 
    
set_tr2(ptr,TR_vecEndPos,aim); 
    
get_tr2(trace,TR_vecPlaneNormal,aim); 
    
set_tr2(ptr,TR_vecPlaneNormal,aim); 

    
// get rid of new trace 
    
free_tr2(trace); 

    return 
FMRES_IGNORED


get_aim(id,Float:source[3],Float:ret[3]) 

    static 
Float:vAngle[3], Float:pAngle[3], Float:dir[3], Float:temp[3]; 

    
// get aiming direction from forward global based on view angle and punch angle 
    
pev(id,pev_v_angle,vAngle); 
    
pev(id,pev_punchangle,pAngle); 
    
xs_vec_add(vAngle,pAngle,temp); 
    
engfunc(EngFunc_MakeVectors,temp); 
    
global_get(glb_v_forward,dir); 
     
    
/* vecEnd = vecSrc + vecDir * flDistance; */ 
    
xs_vec_mul_scalar(dir,8192.0,temp); 
    
xs_vec_add(source,temp,ret); 


public 
fake_smokes(Float:Origin[3]) 

    static 
TE_FLAG 
     
    TE_FLAG 
|= TE_EXPLFLAG_NODLIGHTS 
    TE_FLAG 
|= TE_EXPLFLAG_NOSOUND 
    TE_FLAG 
|= TE_EXPLFLAG_NOPARTICLES 
     
    engfunc
(EngFunc_MessageBeginMSG_PASSVC_TEMPENTITYOrigin0
    
write_byte(TE_EXPLOSION
    
engfunc(EngFunc_WriteCoordOrigin[0]) 
    
engfunc(EngFunc_WriteCoordOrigin[1]) 
    
engfunc(EngFunc_WriteCoordOrigin[2]) 
    
write_short(g_smokepuff_id
    
write_byte(6
    
write_byte(25
    
write_byte(TE_FLAG
    
message_end() 


stock set_weapon_anim(idanim

    if(!
is_user_alive(id)) 
        return 
     
    
set_pev(idpev_weaponanimanim
     
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id
    
write_byte(anim
    
write_byte(pev(idpev_body)) 
    
message_end() 


stock kill(kvheadshot

    
cs_set_user_money(kcs_get_user_money(k) + 500
     
    
set_user_frags(kget_user_frags(k) + 1
     
    
set_msg_block(g_MsgDeathMsg,BLOCK_ONCE
    
set_msg_block(gmsgScoreInfo,BLOCK_ONCE
    
user_kill(v,1
     
    new 
kteam get_user_team(k); 
    new 
vteam get_user_team(v); 
     
    new 
kfrags get_user_frags(k); 
    new 
kdeaths get_user_deaths(k); 
     
    new 
vfrags get_user_frags(v); 
    new 
vdeaths get_user_deaths(v); 
     
    
emessage_begin(MSG_ALLgmsgScoreInfo); 
    
ewrite_byte(k); 
    
ewrite_short(kfrags); 
    
ewrite_short(kdeaths); 
    
ewrite_short(0); 
    
ewrite_short(kteam); 
    
emessage_end(); 
     
    
emessage_begin(MSG_ALLgmsgScoreInfo); 
    
ewrite_byte(v); 
    
ewrite_short(vfrags); 
    
ewrite_short(vdeaths); 
    
ewrite_short(0); 
    
ewrite_short(vteam); 
    
emessage_end(); 
     
    
emessage_begin(MSG_BROADCASTg_MsgDeathMsg
    
ewrite_byte(k
    
ewrite_byte(v
    
ewrite_byte(headshot
    
ewrite_string("Blood Dripper"
    
emessage_end() 



stock create_blood(const Float:origin[3]) 

    
// Show some blood :) 
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)  
    
write_byte(TE_BLOODSPRITE
    
engfunc(EngFunc_WriteCoordorigin[0]) 
    
engfunc(EngFunc_WriteCoordorigin[1]) 
    
engfunc(EngFunc_WriteCoordorigin[2]) 
    
write_short(m_iBlood[1]) 
    
write_short(m_iBlood[0]) 
    
write_byte(75
    
write_byte(8
    
message_end() 


stock drop_weapons(iddropwhat

    static 
weapons[32], numiweaponid 
    num 

    get_user_weapons
(idweaponsnum
      
    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 Get_MissileWeaponHitGroupiEnt 

    new 
Float:flStart], Float:flEnd]; 
     
    
peviEntpev_originflStart ); 
    
peviEntpev_velocityflEnd ); 
    
xs_vec_addflStartflEndflEnd ); 
     
    new 
ptr create_tr2(); 
    
engfuncEngFunc_TraceLineflStartflEnd0iEntptr ); 
     
    new 
iHitGroupOwnernOheadhead 
    Owner 
pev(iEntpev_iuser1
    
nOhead get_tr2ptrTR_iHitgroup 
    
head set_tr2ptrTR_iHitgroupHIT_HEAD 
     
    
iHitGroup headshot_mode[Owner] ? head nOhead 
     
    free_tr2
ptr ); 
     
    return 
iHitGroup


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
    static 
Float:numnum 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


stock get_position(id,Float:forwFloat:rightFloat:upFloat:vStart[]) 

    static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3
     
    
pev(idpev_originvOrigin
    
pev(idpev_view_ofsvUp//for player 
    
xs_vec_add(vOriginvUpvOrigin
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles 
     
    
angle_vector(vAngleANGLEVECTOR_FORWARDvForward//or use EngFunc_AngleVectors 
    
angle_vector(vAngleANGLEVECTOR_RIGHTvRight
    
angle_vector(vAngleANGLEVECTOR_UPvUp
     
    
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 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(entwpn48TimeIdle 0.2OFFSET_LINUX_WEAPONS


stock set_player_nextattackx(idFloat:nexttime

    if(!
is_user_alive(id)) 
        return 
         
    
set_pdata_float(idm_flNextAttacknexttime5

By Hazard is offline
Reply


Thread Tools
Display Modes

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 20:56.


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