Portugal
Пользователь
- Регистрация
- 2 Мар 2018
- Сообщения
- 257
- Симпатии
- 5
- Предупреждения
- 60
- Пол
- Мужской
Здравствуйте помогите пожалуйсто добавить авп модель на флаг сейчяс в плагине уже есть авп модель на флаг мне бы хотелось добавить ещё одну модель на один флаг чтоб было 2 модели на 2 разных флага
Код:
#include<amxmodx>
#include<engine>
#include<fakemeta>
#include<hamsandwich>
#define PLUGIN "PrizeAwp"
#define VERSION "0.1"
#define AUTHOR "Demonx"
/*---------------EDITME------------------*/
#define ACCESS_FLAG ADMIN_LEVEL_H //flag't'bydefault
#define CUSTOM_DMG 2.0 //customknifedamage;fractionalpartofanumberismandatory
new WORLD_MODEL[] = "models/msfkflgawp/w_awp.mdl"
new const gszawpModelV[] = "models/msfkflgawp/v_awp.mdl" //1stpersonviewmodel
new const gszawpModelP[] = "models/msfkflgawp/p_awp.mdl" //3rdpersonviewmodel
/*----------------------------------------*/
new giszawpModelV,giszawpModelP
//macro;%1-variablebeingmodified,%2-playerid
#define CheckFlag(%1,%2) (%1 & (1<<(%2&31)))
#define SetFlag(%1,%2) (%1 |= (1<<(%2&31)))
#define ClearFlag(%1,%2) (%1 &= ~(1<<(%2&31)))
new gbCustomawpDamage
#define IsPlayer(%0) (1<=(%0)<=giMaxPlayers)
new giMaxPlayers
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Item_Deploy,"weapon_awp","Fwd_ItemDeploy_awp_Post",.Post=1)
RegisterHam(Ham_TakeDamage,"player","Fwd_TakeDamage")
register_forward(FM_SetModel,"fw_SetModel")
giszawpModelV = engfunc(EngFunc_AllocString,gszawpModelV)
giszawpModelP = engfunc(EngFunc_AllocString,gszawpModelP)
giMaxPlayers = get_maxplayers()
}
public plugin_precache(){
precache_model(gszawpModelV)
precache_model(gszawpModelP)
precache_model(WORLD_MODEL)
}
public client_putinserver(id)
{
( get_user_flags(id) & ACCESS_FLAG ) ? SetFlag( gbCustomawpDamage , id ) : ClearFlag( gbCustomawpDamage , id )
}
public Fwd_ItemDeploy_awp_Post(ent){
const XO_WEAPON = 4 //'XO'meansextraoffset
const m_pPlayer = 41
new iPlayer=get_pdata_cbase(ent,m_pPlayer,XO_WEAPON)
if(CheckFlag(gbCustomawpDamage,iPlayer))
{
set_pev_string(iPlayer,pev_viewmodel2,giszawpModelV)
set_pev_string(iPlayer,pev_weaponmodel2,giszawpModelP)
}
}
public fw_SetModel(entity,model[])
{
//Проверяемсуществуетлиобъект
if(!is_valid_ent(entity) || !equal(model, "models/w_awp.mdl") )
return FMRES_IGNORED
new id = pev( entity, pev_owner );
//Проверяемталиэтоw_модель,которуюмухотимизменить
if( !CheckFlag( gbCustomawpDamage ,id) )
return FMRES_IGNORED
new szClassName[33]
//Получаемклассобъекта
pev( entity, pev_classname, szClassName, charsmax(szClassName) );
//Сравниваемравняетсялиполученныйклассобъектаweaponbox(выкинутоеоружие)илиarmoury_entity(оружие,котороележитнакарте),илиgrenade(C4игранаты)
if( equal(szClassName,"weaponbox") )
{
//Установкаw_модели,котораяотображаетсяназемле
engfunc( EngFunc_SetModel, entity, WORLD_MODEL );
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public Fwd_TakeDamage(victim,inflictor,attacker,Float:damage,damagebits)
{
if( IsPlayer( attacker ) && attacker == inflictor && CheckFlag(gbCustomawpDamage,attacker) && get_user_weapon(attacker) == CSW_AWP )
{
SetHamParamFloat(4, damage * CUSTOM_DMG)
return HAM_HANDLED
}
return HAM_IGNORED
}