|
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Вместо (knife) сделать > (awp) |
Вместо (knife) сделать > (awp) |
Дата: Среда, 03.10.2018, 13:09 | Сообщение # 1
Смотрящий
Мастер
Offline
![]()
Hey ребят памогите сделать вместо KNIFE > (AWP) и добавить ещё чтобы ( _w ) модель читало
![]() Код #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_H // 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 - Среда, 03.10.2018, 13:09
|
Дата: Среда, 03.10.2018, 14:56 | Сообщение # 2
Скриптер
Любитель
Offline
![]()
---> Раздел "Куплю"
|
Дата: Среда, 03.10.2018, 18:18 | Сообщение # 3
![]()
Сменить ID оружия с CSW_KNIFE на CSW_AWP, в Ham_Item_Deploy weapon_knife на weapon_awp. А по поводу w_ модели смотри ссылку!
|
Дата: Среда, 03.10.2018, 18:23 | Сообщение # 4
Смотрящий
Мастер
Offline
![]()
А патроны для авп добавить как ?
Добавлено (03.10.2018, 18:31) Добавлено (03.10.2018, 18:51) Код #include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Prize Awp" #define VERSION "0.1" #define AUTHOR "Safety1st" /*---------------EDIT ME------------------*/ #define ACCESS_FLAG ADMIN_LEVEL_H // flag 't' by default #define CUSTOM_DMG 2.0 // custom Awp damage; fractional part of a number is mandatory new const gszAwpModelV[] = "models/v_Awp.mdl" // 1st person view model new const gszAwpModelP[] = "models/p_Awp.mdl" // 3rd person view model /*----------------------------------------*/ new giszAwpModelV, giszAwpModelP // 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 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" ) giszAwpModelV = engfunc( EngFunc_AllocString, gszAwpModelV ) giszAwpModelP = engfunc( EngFunc_AllocString, gszAwpModelP ) giMaxPlayers = get_maxplayers() } public plugin_precache() { precache_model( gszAwpModelV ) precache_model( gszAwpModelP ) } 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' means extraoffset 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 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( gbCustomAwpDamage, attacker ) && get_user_weapon(attacker) == CSW_Awp ) { SetHamParamFloat( 4, damage * CUSTOM_DMG ) return HAM_HANDLED } return HAM_IGNORED } |
Дата: Среда, 03.10.2018, 20:14 | Сообщение # 5
|
Дата: Среда, 03.10.2018, 20:22 | Сообщение # 6
Смотрящий
Мастер
Offline
![]()
Я не добавил ещё _w модель так как не понял как это сделать а вместо Knife вписал везде Awp Вот ошибка при компиляции
Прикрепления:
3115920.png
(26.2 Kb)
|
| |||
| |||