Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSSkin Gun Bug


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi

I have problems with Gun Skins in tease plugins.

1.The first problem is a player who has both flags b and p when he get Paladin gun,it shows ak47vipskin (models/SGP1N/v_ak47_1.mdl) not shows Paladin Skin (models/v_buffak.mdl).

2.The second problem is normal player can pick up paladin from the ground.I want normal player cant pick it up or when he pick up it changes to a normal ak47(skin+sound+spirit and ...).


Paladin gun source:
PHP Code:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <xs>
#include <fun>

#define PLUGIN "[CSO] AK47 Paladin"
#define VERSION "1.0"
#define AUTHOR "Dias Pendragon"

// Data Config
#define MODEL_V "models/v_buffak.mdl"
#define MODEL_P "models/p_buffak.mdl"
#define MODEL_W "models/w_buffak.mdl"
#define MODEL_W_OLD "models/w_ak47.mdl"

#define CSW_BASE CSW_AK47
#define weapon_base "weapon_ak47"

#define SUBMODEL -1 // can -1
#define WEAPON_CODE 2692015
#define WEAPON_EVENT "events/ak47.sc"

#define ANIME_SHOOT 3
#define ANIME_RELOAD 1 // can -1
#define ANIME_DRAW 2 // can -1
#define ANIME_IDLE 0 // can -1

new const WeaponSounds[5][] =
{
    
"weapons/ak47buff-1.wav",
    
"weapons/ak47buff-2.wav",
    
"weapons/ak47buff_idle.wav",
    
"weapons/ak47buff_draw.wav",
    
"weapons/ak47buff_reload.wav"
}

// Weapon Config
#define DAMAGE_A 33 // 66 for Zombie
#define DAMAGE_B 61 // 360 for Zombie
#define ACCURACY 70 // 0 - 100 ; -1 Default
#define CLIP 50
#define BPAMMO 250
#define SPEED_A 0.0775
#define SPEED_B 0.5
#define RECOIL 0.75
#define RELOAD_TIME 2.0
#define RANGE_SHOCK 96.0

// Muzzleflash
#define MUZZLEFLASH1 "sprites/muzzleflash40.spr"
#define MUZZLEFLASH2 "sprites/muzzleflash41.spr"

// MACROS
#define Get_BitVar(%1,%2) (%1 & (1 << (%2 & 31)))
#define Set_BitVar(%1,%2) %1 |= (1 << (%2 & 31))
#define UnSet_BitVar(%1,%2) %1 &= ~(1 << (%2 & 31))

#define ADMIN_ACCESS ADMIN_LEVEL_D

//new g_Base
new g_Had_Baseg_Clip[33], g_OldWeapon[33], Float:g_Recoil[33][3]
new 
g_Event_Baseg_SmokePuff_SprIdg_MsgCurWeapong_Hit_SprIDg_MaxPlayers
new g_Muzzleflash_Entg_Muzzleflash
new g_Muzzleflash_Ent2g_Muzzleflash2

// Safety
new g_HamBot
new g_IsConnectedg_IsAliveg_PlayerWeapon[33]


public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Safety
    
Register_SafetyFunc()
    
    
// Event
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
register_clcmd("get_base""Get_Base",ADMIN_ACCESS)
    
    
// Forward
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"fw_PlaybackEvent")
    
register_forward(FM_SetModel"fw_SetModel")    
    
register_forward(FM_CmdStart"fw_CmdStart")
    
register_forward(FM_AddToFullPack"fw_AddToFullPack_Post"1)
    
register_forward(FM_CheckVisibility"fw_CheckVisibility")
    
    
// Ham
    
RegisterHam(Ham_Item_Deployweapon_base"fw_Item_Deploy_Post"1)    
    
RegisterHam(Ham_Item_AddToPlayerweapon_base"fw_Item_AddToPlayer_Post"1)
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_base"fw_Weapon_WeaponIdle_Post"1)
    
RegisterHam(Ham_Item_PostFrameweapon_base"fw_Item_PostFrame")    
    
RegisterHam(Ham_Weapon_Reloadweapon_base"fw_Weapon_Reload")
    
RegisterHam(Ham_Weapon_Reloadweapon_base"fw_Weapon_Reload_Post"1)    
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_base"fw_Weapon_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_base"fw_Weapon_PrimaryAttack_Post"1)
    
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack_World")
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack_Player")    
    
    
// Cache
    
g_MsgCurWeapon get_user_msgid("CurWeapon")
    
g_MaxPlayers get_maxplayers()
}

public 
plugin_precache()
{
    
precache_model(MODEL_V)
    
precache_model(MODEL_P)
    
precache_model(MODEL_W)
    
    for(new 
0sizeof(WeaponSounds); i++)
        
precache_sound(WeaponSounds[i])
    
    
g_Hit_SprID precache_model("sprites/ef_buffak_hit.spr")
    
g_SmokePuff_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
    
    
// Muzzleflash
    
g_Muzzleflash_Ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
g_Muzzleflash_Ent2 engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
    
precache_model(MUZZLEFLASH1)
    
precache_model(MUZZLEFLASH2)
    
    
engfunc(EngFunc_SetModelg_Muzzleflash_EntMUZZLEFLASH1)
    
engfunc(EngFunc_SetModelg_Muzzleflash_Ent2MUZZLEFLASH2)
    
    
set_pev(g_Muzzleflash_Entpev_scale0.075)
    
set_pev(g_Muzzleflash_Ent2pev_scale0.1)
    
    
set_pev(g_Muzzleflash_Entpev_rendermodekRenderTransTexture)
    
set_pev(g_Muzzleflash_Entpev_renderamt0.0)
    
set_pev(g_Muzzleflash_Ent2pev_rendermodekRenderTransTexture)
    
set_pev(g_Muzzleflash_Ent2pev_renderamt0.0)
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal(WEAPON_EVENTname)) g_Event_Base get_orig_retval()        
}

public 
client_putinserver(id)
{
        
Safety_Connected(id)
    
    if(!
g_HamBot && is_user_bot(id))
    {
        
g_HamBot 1
        set_task
(0.1"Register_HamBot"id)
    }
}
 
public 
Register_HamBot(id)
{
    
Register_SafetyFuncBot(id)
    
RegisterHamFromEntity(Ham_TraceAttackid"fw_TraceAttack_Player")    
}
 
public 
client_disconnected(id)
{
        
Safety_Disconnected(id)
}
/*
public Mileage_WeaponGet(id, ItemID)
{
    if(ItemID == g_Base) Get_Base(id)
}

public Mileage_WeaponRefillAmmo(id, ItemID)
{
    if(ItemID == g_Base) cs_set_user_bpammo(id, CSW_BASE, BPAMMO)
}

public Mileage_WeaponRemove(id, ItemID)
{
    if(ItemID == g_Base) Remove_Base(id)
}*/

public Get_Base(id)
{
    if(!(
get_user_flags(id) & ADMIN_ACCESS))
    return 
PLUGIN_CONTINUE
        
    Set_BitVar
(g_Had_Baseid)
    
give_item(idweapon_base)
    
    
// Clip & Ammo
    
static EntEnt fm_get_user_weapon_entity(idCSW_BASE)
    if(!
pev_valid(Ent)) return
    
    
cs_set_weapon_ammo(EntCLIP)
    
cs_set_user_bpammo(idCSW_BASEBPAMMO)
    
    
message_begin(MSG_ONE_UNRELIABLEg_MsgCurWeapon_id)
    
write_byte(1)
    
write_byte(CSW_BASE)
    
write_byte(CLIP)
    
message_end()
    
    
cs_set_weapon_silen(Ent00)
}

public 
Remove_Base(id)
{
    
UnSet_BitVar(g_Had_Baseid)
}

public 
Event_CurWeapon(id)
{
    
    static 
CSWIDCSWID read_data(2)
    static 
SubModelSubModel SUBMODEL
    
    
if((CSWID == CSW_BASE && g_OldWeapon[id] != CSW_BASE) && Get_BitVar(g_Had_Baseid))
    {
        if(
SubModel != -1Draw_NewWeapon(idCSWID)
    } else if((
CSWID == CSW_BASE && g_OldWeapon[id] == CSW_BASE) && Get_BitVar(g_Had_Baseid)) {
        static 
EntEnt fm_get_user_weapon_entity(idCSW_BASE)
        if(!
pev_valid(Ent))
        {
            
g_OldWeapon[id] = get_user_weapon(id)
            return
        }
        
        static 
Float:Speed
        
if(cs_get_user_zoom(id) != CS_SET_AUGSG552_ZOOMSpeed SPEED_A
        
else Speed SPEED_B
        
        set_pdata_float
(Ent46Speed4)
        
set_pdata_float(Ent47Speed4)
    } else if(
CSWID != CSW_BASE && g_OldWeapon[id] == CSW_BASE) {
        if(
SubModel != -1Draw_NewWeapon(idCSWID)
    }
    
    
g_OldWeapon[id] = get_user_weapon(id)
    
}

public 
Draw_NewWeapon(idCSW_ID)
{
    if(
CSW_ID == CSW_BASE)
    {
        static 
ent
        ent 
fm_get_user_weapon_entity(idCSW_BASE)
        
        if(
pev_valid(ent) && Get_BitVar(g_Had_Baseid))
        {
            
set_pev(entpev_effectspev(entpev_effects) &~ EF_NODRAW
            
engfunc(EngFunc_SetModelentMODEL_P)    
            
set_pev(entpev_bodySUBMODEL)
        }
    } else {
        static 
ent
        ent 
fm_get_user_weapon_entity(idCSW_BASE)
        
        if(
pev_valid(ent)) set_pev(entpev_effectspev(entpev_effects) | EF_NODRAW)             
    }
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_alive(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BASE && Get_BitVar(g_Had_Baseid))
        
set_cd(cd_handleCD_flNextAttackget_gametime() + 0.001
    
    return 
FMRES_HANDLED
}

public 
fw_PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if (!
is_connected(invoker))
        return 
FMRES_IGNORED    
    
if(get_player_weapon(invoker) != CSW_BASE || !Get_BitVar(g_Had_Baseinvoker))
        return 
FMRES_IGNORED
    
if(eventid != g_Event_Base)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)

    
Set_WeaponAnim(invokerANIME_SHOOT)
    if(
cs_get_user_zoom(invoker) != CS_SET_AUGSG552_ZOOMemit_sound(invokerCHAN_WEAPONWeaponSounds[0], 1.00.4094 random_num(015))
    else {
        
emit_sound(invokerCHAN_WEAPONWeaponSounds[1], 1.00.4094 random_num(015))
        
Shock_Damage(invoker)
    }
    
    return 
FMRES_SUPERCEDE
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity))
        return 
FMRES_IGNORED
    
    
static Classname[32]
    
pev(entitypev_classnameClassnamesizeof(Classname))
    
    if(!
equal(Classname"weaponbox"))
        return 
FMRES_IGNORED
    
    
static iOwner
    iOwner 
pev(entitypev_owner)
    
    if(
equal(modelMODEL_W_OLD))
    {
        static 
weaponweapon find_ent_by_owner(-1weapon_baseentity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
Get_BitVar(g_Had_BaseiOwner))
        {
            
set_pev(weaponpev_impulseWEAPON_CODE)
            
engfunc(EngFunc_SetModelentityMODEL_W)
            
set_pev(entitypev_bodySUBMODEL)
        
            
Remove_Base(iOwner)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if (!
is_alive(id))
        return 
FMRES_IGNORED    
    
if(get_player_weapon(id) != CSW_BASE || !Get_BitVar(g_Had_Baseid))
        return 
FMRES_IGNORED
        
    
static ButtonButton get_uc(uc_handleUC_Buttons)    
    
    if(
Button IN_ATTACK2)
    {
        static 
Float:TimeTime get_pdata_float(id835)
        if(
Time 0.0) return FMRES_IGNORED
        
        
if(cs_get_user_zoom(id) != CS_SET_AUGSG552_ZOOMcs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1)
        else 
cs_set_user_zoom(idCS_RESET_ZOOM0)
        
        
Time 0.25
        set_pdata_float
(id83Time5)
    }
    
    return 
FMRES_IGNORED
}

public 
fw_AddToFullPack_Post(esStateiEiEntiHostiHostFlagsiPlayerpSet)
{
    if(
iEnt == g_Muzzleflash_Ent)
    {
        if(
Get_BitVar(g_MuzzleflashiHost))
        {
            
set_es(esStateES_Framefloat(random_num(02)))
                
            
set_es(esStateES_RenderModekRenderTransAdd)
            
set_es(esStateES_RenderAmt255.0)
            
            
UnSet_BitVar(g_MuzzleflashiHost)
            
//remove_task(iHost+WEAPON_CODE)
            
set_task(0.001"Set_NextMuzzleflash"iHost+WEAPON_CODE)
        }
            
        
set_es(esStateES_SkiniHost)
        
set_es(esStateES_Body1)
        
set_es(esStateES_AimEntiHost)
        
set_es(esStateES_MoveTypeMOVETYPE_FOLLOW)
    } else if(
iEnt == g_Muzzleflash_Ent2) {
        if(
Get_BitVar(g_Muzzleflash2iHost))
        {
            
set_es(esStateES_Framefloat(random_num(02)))
                
            
set_es(esStateES_RenderModekRenderTransAdd)
            
set_es(esStateES_RenderAmt255.0)
            
            
UnSet_BitVar(g_Muzzleflash2iHost)
        }
            
        
set_es(esStateES_SkiniHost)
        
set_es(esStateES_Body1)
        
set_es(esStateES_AimEntiHost)
        
set_es(esStateES_MoveTypeMOVETYPE_FOLLOW)
    }
}

public 
Set_NextMuzzleflash(idSet_BitVar(g_Muzzleflash2id-WEAPON_CODE)

public 
fw_CheckVisibility(iEntitypSet)
{
    if(
iEntity == g_Muzzleflash_Ent || iEntity == g_Muzzleflash_Ent2)
    {
        
forward_return(FMV_CELL1)
        return 
FMRES_SUPERCEDE
    
}
    
    return 
FMRES_IGNORED
}

public 
fw_Item_Deploy_Post(Ent)
{
    if(
pev_valid(Ent) != 2)
        return
    static 
IdId get_pdata_cbase(Ent414)
    if(
get_pdata_cbase(Id373) != Ent)
        return
    if(!
Get_BitVar(g_Had_BaseId))
        return
        
    static 
SubModelSubModel SUBMODEL
    
    set_pev
(Idpev_viewmodel2MODEL_V)
    
set_pev(Idpev_weaponmodel2SubModel != -"" MODEL_P)
    
    static 
DrawDraw ANIME_DRAW
    
if(Draw != -1Set_WeaponAnim(IdANIME_DRAW)
}

public 
fw_Item_AddToPlayer_Post(Entid)
{
    if(!
pev_valid(Ent))
        return 
HAM_IGNORED
        
    
if(pev(Entpev_impulse) == WEAPON_CODE)
    {
        
Set_BitVar(g_Had_Baseid)
        
set_pev(Entpev_impulse0)
    }
    
    return 
HAM_HANDLED    
}

public 
fw_Item_PostFrame(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    
    
    
static Float:flNextAttackflNextAttack get_pdata_float(id835)
    static 
bpammobpammo cs_get_user_bpammo(idCSW_BASE)
    
    static 
iClipiClip get_pdata_int(ent514)
    static 
fInReloadfInReload get_pdata_int(ent544)
    
    if(
fInReload && flNextAttack <= 0.0)
    {
        static 
temp1
        temp1 
min(CLIP iClipbpammo)

        
set_pdata_int(ent51iClip temp14)
        
cs_set_user_bpammo(idCSW_BASEbpammo temp1)        
        
        
set_pdata_int(ent5404)
        
        
fInReload 0
    
}        
    
    return 
HAM_IGNORED
}

public 
fw_Weapon_Reload(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    

    g_Clip
[id] = -1
        
    
static BPAmmoBPAmmo cs_get_user_bpammo(idCSW_BASE)
    static 
iClipiClip get_pdata_int(ent514)
        
    if(
BPAmmo <= 0)
        return 
HAM_SUPERCEDE
    
if(iClip >= CLIP)
        return 
HAM_SUPERCEDE        
            
    g_Clip
[id] = iClip    
    
    
return HAM_HANDLED
}

public 
fw_Weapon_Reload_Post(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    
    
    
if((get_pdata_int(ent544) == 1))
    { 
// Reload
        
if(g_Clip[id] == -1)
            return 
HAM_IGNORED
        
        set_pdata_int
(ent51g_Clip[id], 4)
        
        static 
ReloadReload ANIME_RELOAD
        
if(Reload != -1Set_WeaponAnim(idANIME_RELOAD)
        
Set_PlayerNextAttack(idRELOAD_TIME)
    }
    
    return 
HAM_HANDLED
}

public 
fw_Weapon_WeaponIdle_PostiEnt )
{
    if(
pev_valid(iEnt) != 2)
        return
    static 
IdId get_pdata_cbase(iEnt414)
    if(
get_pdata_cbase(Id373) != iEnt)
        return
    if(!
Get_BitVar(g_Had_BaseId))
        return
        
    static 
IdleIdle ANIME_IDLE
    
    
if(Idle != -&& get_pdata_float(iEnt484) <= 0.25)
    {
        
Set_WeaponAnim(IdANIME_IDLE)
        
set_pdata_float(iEnt4820.04)
    }    
}

public 
fw_TraceAttack_World(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_connected(Attacker))
        return 
HAM_IGNORED    
    
if(get_player_weapon(Attacker) != CSW_BASE || !Get_BitVar(g_Had_BaseAttacker))
        return 
HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
        
    
get_tr2(PtrTR_vecEndPosflEnd)
    
get_tr2(PtrTR_vecPlaneNormalvecPlane)        
            
    
Make_BulletHole(AttackerflEndDamage)
    
Make_BulletSmoke(AttackerPtr)

    if(
cs_get_user_zoom(Attacker) != CS_SET_AUGSG552_ZOOMSetHamParamFloat(3float(DAMAGE_A))
    else 
SetHamParamFloat(3float(DAMAGE_B))
    
    return 
HAM_HANDLED
}

public 
fw_TraceAttack_Player(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_connected(Attacker))
        return 
HAM_IGNORED    
    
if(get_player_weapon(Attacker) != CSW_BASE || !Get_BitVar(g_Had_BaseAttacker))
        return 
HAM_IGNORED

    
static Float:flEnd[3]
    
get_tr2(PtrTR_vecEndPosflEnd)    
        
    if(
cs_get_user_zoom(Attacker) != CS_SET_AUGSG552_ZOOMSetHamParamFloat(3float(DAMAGE_A))
    else 
SetHamParamFloat(3float(DAMAGE_B))
    
    return 
HAM_HANDLED
}


public 
fw_Weapon_PrimaryAttack(Ent)
{
    static 
idid pev(Entpev_owner)
    if(!
is_alive(id))
        return
    if(!
Get_BitVar(g_Had_Baseid))
        return

    
pev(idpev_punchangleg_Recoil[id])
}

public 
fw_Weapon_PrimaryAttack_Post(Ent)
{
    static 
idid pev(Entpev_owner)
    if(!
is_alive(id))
        return
    if(!
Get_BitVar(g_Had_Baseid))
        return

    static 
Float:Push[3]
    
pev(idpev_punchanglePush)
    
xs_vec_sub(Pushg_Recoil[id], Push)
    
    
xs_vec_mul_scalar(PushRECOILPush)
    
xs_vec_add(Pushg_Recoil[id], Push)
    
    
set_pev(idpev_punchanglePush)
    
Set_BitVar(g_Muzzleflashid)
    
    
// Acc
    
static AccenaAccena ACCURACY
    
if(Accena != -1)
    {
        static 
Float:Accuracy
        Accuracy 
= (float(100 ACCURACY) * 1.5) / 100.0

        set_pdata_float
(Ent62Accuracy4);
    }
}

public 
Shock_Damage(id)
{
    static 
Float:Origin[3]; fm_get_aim_origin(idOrigin)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_Hit_SprID)
    
write_byte(6)
    
write_byte(15)
    
write_byte(TE_EXPLFLAG_NODLIGHTS TE_EXPLFLAG_NOPARTICLES TE_EXPLFLAG_NOSOUND)
    
message_end()
    
    static 
EntEnt fm_get_user_weapon_entity(idCSW_AK47)
    if(!
pev_valid(Ent)) return
    
    static 
Float:Origin2[3]
    
    for(new 
0g_MaxPlayersi++)
    {
        if(!
is_alive(i))
            continue
        if(
id == i)
            continue
        
pev(ipev_originOrigin2)
        if(
get_distance_f(OriginOrigin2) > RANGE_SHOCK)
            continue
        
        
ExecuteHamB(Ham_TakeDamageiEntidfloat(DAMAGE_B), DMG_BULLET)
    }
}

/* ===============================
------------- SAFETY -------------
=================================*/
public Register_SafetyFunc()
{
    
register_event("CurWeapon""Safety_CurWeapon""be""1=1")
    
    
RegisterHam(Ham_Spawn"player""fw_Safety_Spawn_Post"1)
    
RegisterHam(Ham_Killed"player""fw_Safety_Killed_Post"1)
}

public 
Register_SafetyFuncBot(id)
{
    
RegisterHamFromEntity(Ham_Spawnid"fw_Safety_Spawn_Post"1)
    
RegisterHamFromEntity(Ham_Killedid"fw_Safety_Killed_Post"1)
}

public 
Safety_Connected(id)
{
    
Set_BitVar(g_IsConnectedid)
    
UnSet_BitVar(g_IsAliveid)
    
    
g_PlayerWeapon[id] = 0
}

public 
Safety_Disconnected(id)
{
    
UnSet_BitVar(g_IsConnectedid)
    
UnSet_BitVar(g_IsAliveid)
    
    
g_PlayerWeapon[id] = 0
}

public 
Safety_CurWeapon(id)
{
    if(!
is_alive(id))
        return
        
    static 
CSWCSW read_data(2)
    if(
g_PlayerWeapon[id] != CSWg_PlayerWeapon[id] = CSW
}

public 
fw_Safety_Spawn_Post(id)
{
    if(!
is_user_alive(id))
        return
        
    
Set_BitVar(g_IsAliveid)
}

public 
fw_Safety_Killed_Post(id)
{
    
UnSet_BitVar(g_IsAliveid)
}

public 
is_connected(id)
{
    if(!(
<= id <= 32))
        return 
0
    
if(!Get_BitVar(g_IsConnectedid))
        return 
0

    
return 1
}

public 
is_alive(id)
{
    if(!
is_connected(id))
        return 
0
    
if(!Get_BitVar(g_IsAliveid))
        return 
0
        
    
return 1
}

public 
get_player_weapon(id)
{
    if(!
is_alive(id))
        return 
0
    
    
return g_PlayerWeapon[id]
}

/* ===============================
--------- END OF SAFETY  ---------
=================================*/

stock Set_WeaponAnim(idanim)
{
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(pev(idpev_body))
    
message_end()
}

stock Make_BulletHole(idFloat:Origin[3], Float:Damage)
{
    
// Find target
    
static DecalDecal random_num(4145)
    static 
LoopTime
    
    if(
Damage 100.0LoopTime 2
    
else LoopTime 1
    
    
for(new 0LoopTimei++)
    {
        
// Put decal on "world" (a wall)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
engfunc(EngFunc_WriteCoordOrigin[0])
        
engfunc(EngFunc_WriteCoordOrigin[1])
        
engfunc(EngFunc_WriteCoordOrigin[2])
        
write_byte(Decal)
        
message_end()
        
        
// Show sparcles
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
engfunc(EngFunc_WriteCoordOrigin[0])
        
engfunc(EngFunc_WriteCoordOrigin[1])
        
engfunc(EngFunc_WriteCoordOrigin[2])
        
write_short(id)
        
write_byte(Decal)
        
message_end()
    }
}

stock Make_BulletSmoke(idTrResult)
{
    static 
Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
    
    get_weapon_attachment
(idvecSrc)
    
global_get(glb_v_forwardvecEnd)
    
    
xs_vec_mul_scalar(vecEnd8192.0vecEnd)
    
xs_vec_add(vecSrcvecEndvecEnd)

    
get_tr2(TrResultTR_vecEndPosvecSrc)
    
get_tr2(TrResultTR_vecPlaneNormalvecEnd)
    
    
xs_vec_mul_scalar(vecEnd2.5vecEnd)
    
xs_vec_add(vecSrcvecEndvecEnd)
    
    
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
    TE_FLAG 
|= TE_EXPLFLAG_NOSOUND
    TE_FLAG 
|= TE_EXPLFLAG_NOPARTICLES
    
    engfunc
(EngFunc_MessageBeginMSG_PASSVC_TEMPENTITYvecEnd0)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordvecEnd[0])
    
engfunc(EngFunc_WriteCoordvecEnd[1])
    
engfunc(EngFunc_WriteCoordvecEnd[2] - 10.0)
    
write_short(g_SmokePuff_SprId)
    
write_byte(2)
    
write_byte(50)
    
write_byte(TE_FLAG)
    
message_end()
}

stock get_weapon_attachment(idFloat:output[3], Float:fDis 40.0)

    static 
Float:vfEnd[3], viEnd[3
    
get_user_origin(idviEnd3)  
    
IVecFVec(viEndvfEnd
    
    static 
Float:fOrigin[3], Float:fAngle[3]
    
    
pev(idpev_originfOrigin
    
pev(idpev_view_ofsfAngle)
    
    
xs_vec_add(fOriginfAnglefOrigin
    
    static 
Float:fAttack[3]
    
    
xs_vec_sub(vfEndfOriginfAttack)
    
xs_vec_sub(vfEndfOriginfAttack
    
    static 
Float:fRate
    
    fRate 
fDis vector_length(fAttack)
    
xs_vec_mul_scalar(fAttackfRatefAttack)
    
    
xs_vec_add(fOriginfAttackoutput)
}

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;
}

stock Set_WeaponIdleTime(idWeaponId ,Float:TimeIdle)
{
    static 
entwpnentwpn fm_get_user_weapon_entity(idWeaponId)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46TimeIdle4)
    
set_pdata_float(entwpn47TimeIdle4)
    
set_pdata_float(entwpn48TimeIdle 0.54)
}

stock Set_PlayerNextAttack(idFloat:nexttime)
{
    
set_pdata_float(id83nexttime5)
}

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_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
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1042\\ f0\\ fs16 \n\\ par }
*/ 



ak47vipskin source:

PHP Code:

#include <amxmodx> 
#include <engine> 
#include <fakemeta> 

#define ADMIN_ACCESS ADMIN_RESERVATION

new VIEW_MODEL[]    = "models/SGP1N/v_ak47_1.mdl"

new OLDWORLD_MODEL[]    = "models/v_ak47.mdl"

new PLUGIN_NAME[]        = "Custom ak47 Model" 
new PLUGIN_AUTHOR[]    = "Cheap_Suit" 
new PLUGIN_VERSION[]     = "1.1" 

public plugin_init() 
{
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)     
    
register_event("CurWeapon""Event_CurWeapon""be","1=1")
    
register_forward(FM_SetModel"fw_SetModel")


public 
plugin_precache() 
{    
    
precache_model(VIEW_MODEL)


public 
Event_CurWeapon(id
{
    if(!(
get_user_flags(id) & ADMIN_ACCESS))
        return 
PLUGIN_CONTINUE

    
new weaponID read_data(2

    if(
weaponID != CSW_AK47)
        return 
PLUGIN_CONTINUE

    set_pev
(idpev_viewmodel2VIEW_MODEL)
    
    return 
PLUGIN_CONTINUE 
}

public 
fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity)) 
        return 
FMRES_IGNORED

    
if(!equali(modelOLDWORLD_MODEL)) 
        return 
FMRES_IGNORED

    
new className[33]
    
entity_get_string(entityEV_SZ_classnameclassName32)
    
    if(
equal(className"weaponbox") || equal(className"armoury_entity") || equal(className"grenade"))
    {
        
engfunc(EngFunc_SetModelentity)
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED


Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...