|
Форум Counter-Strike 1.6 Сервер Counter-Strike 1.6 Помощь по скриптингу Knife vip flag |
Knife vip flag |
Дата: Суббота, 29.09.2018, 20:55 | Сообщение # 1
Смотрящий
Мастер
Offline
Здравствуйте помогите пожалуйсто сделать 3 модели на 3 флага и что б у каждой модели читало V_ и P_ модель, и урон по квару там чтоб на 3 модели работал , сейчяс в коде только 1 модель на 1 флаг
Код #include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Prize Knife" #define VERSION "0.1" #define AUTHOR "Safety1st" /*---------------EDIT ME------------------*/ #define ACCESS_FLAG ADMIN_LEVEL_E // flag 't' by default #define CUSTOM_DMG 2.0 // custom knife damage; fractional part of a number is mandatory new const gszKnifeModelV[] = "models/v_knife.mdl" // 1st person view model new const gszKnifeModelP[] = "models/p_knife.mdl" // 3rd person view model /*----------------------------------------*/ new giszKnifeModelV, giszKnifeModelP // macro; %1 - variable being modified, %2 - player id #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 gbCustomKnfDamage #define IsPlayer(%0) ( 1 <= (%0) <= giMaxPlayers ) new giMaxPlayers public plugin_init() { register_plugin( PLUGIN, VERSION, AUTHOR ) RegisterHam( Ham_Item_Deploy, "weapon_knife" , "Fwd_ItemDeploy_Knife_Post", .Post = 1 ) RegisterHam( Ham_TakeDamage, "player", "Fwd_TakeDamage" ) giszKnifeModelV = engfunc( EngFunc_AllocString, gszKnifeModelV ) giszKnifeModelP = engfunc( EngFunc_AllocString, gszKnifeModelP ) giMaxPlayers = get_maxplayers() } public plugin_precache() { precache_model( gszKnifeModelV ) precache_model( gszKnifeModelP ) } public client_putinserver(id) { get_user_flags(id) & ACCESS_FLAG ? SetFlag( gbCustomKnfDamage, id ) : ClearFlag( gbCustomKnfDamage, id ) } public Fwd_ItemDeploy_Knife_Post( ent ) { const XO_WEAPON = 4 // 'XO' means extraoffset const m_pPlayer = 41 new iPlayer = get_pdata_cbase( ent, m_pPlayer, XO_WEAPON ) if( CheckFlag( gbCustomKnfDamage, iPlayer ) ) { set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV ) set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP ) } } public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) { if( IsPlayer(attacker) && attacker == inflictor /* it is mandatory be4 checking current weapon (it could not be the same as one inflicting damage now) */ && CheckFlag( gbCustomKnfDamage, attacker ) && get_user_weapon(attacker) == CSW_KNIFE ) { SetHamParamFloat( 4, damage * CUSTOM_DMG ) return HAM_HANDLED } return HAM_IGNORED }
Сообщение отредактировал M0Nk - Суббота, 29.09.2018, 21:07
|
| |||
| |||