|
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Awp skin _w model |
Awp skin _w model |
Дата: Суббота, 13.10.2018, 00:14 | Сообщение # 1
Смотрящий
Мастер
Offline
![]()
Привет ребят похимичил я чёт попытался но так и не вышло у меня добавить "_w" модель модель сервер скачивает при заходе на сервер но при выбросе awp на землю "_w" модели нету
![]() Код #include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Prize Awp" #define VERSION "0.1" #define AUTHOR "Demo nx" /*---------------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 WORLD_MODEL[] = "models/msfkflgawp/w_msfkflgawp.mdl" new const gszawpModelV[] = "models/msfkflgawp/v_msfkflgawp.mdl" // 1st person view model new const gszawpModelP[] = "models/msfkflgawp/p_msfkflgawp.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" ) 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' 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 fw_SetModel(id,entity, model[]) { // Проверяем существует ли объект if (!is_valid_ent(entity)) return FMRES_IGNORED // Проверяем та ли это w_ модель, которую му хотим изменить if (!CheckFlag( gbCustomawpDamage, id )) return FMRES_IGNORED new className[33] // Получаем класс объекта entity_get_string(entity, EV_SZ_classname, className, 32) // Сравниваем равняется ли полученный класс объекта weaponbox (выкинутое оружие) или armoury_entity (оружие, которое лежит на карте), или grenade (C4 и гранаты) if (equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade")) { // Установка w_ модели, которая отображается на земле entity_set_model(entity, WORLD_MODEL) return FMRES_SUPERCEDE } return FMRES_IGNORED } 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 } |
Дата: Суббота, 13.10.2018, 05:42 | Сообщение # 2
Местный
Offline
![]()
я вижу в чем ошибка как приду попробую сделать
|
Дата: Суббота, 13.10.2018, 11:41 | Сообщение # 3
Скриптер
Мастер
Offline
![]()
FM_SetModel передает всего два параметра: индекс объекта, строку с названием модели, так и не понял откуда у вас там id еще появился.
Т.е. Проверка Код if (!CheckFlag( gbCustomawpDamage, id )) return FMRES_IGNORED Получить id можно при помощи pev( entity, pev_owner ) |
Дата: Суббота, 13.10.2018, 15:02 | Сообщение # 4
|
Дата: Суббота, 13.10.2018, 15:14 | Сообщение # 5
Скриптер
Мастер
Offline
![]() Я не очень понимаю в этом )) что и где на что мне изменить чтобы ещё _w модель работала :)))? Код #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_msfkflgawp.mdl" new const gszawpModelV[] = "models/msfkflgawp/v_msfkflgawp.mdl" //1stpersonviewmodel new const gszawpModelP[] = "models/msfkflgawp/p_msfkflgawp.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)) 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 } |
Дата: Суббота, 13.10.2018, 18:39 | Сообщение # 6
Смотрящий
Мастер
Offline
![]()
Цитата Легендарный Код Спасибо теперь работает _w модель слушай а ты не вкурсе это модель баговая или в коде что то нужно делать чтобы при zoom awp небыло видно awp ато сейчяс чуть чуть видно ![]() Добавлено (13.10.2018, 20:34) |
Дата: Суббота, 13.10.2018, 22:34 | Сообщение # 7
Скриптер
Мастер
Offline
![]()
Код public fw_SetModel(entity,model[]) { //Проверяемсуществуетлиобъект if(!is_valid_ent(entity)) return FMRES_IGNORED Замените на Код public fw_SetModel(entity,model[]) { //Проверяемсуществуетлиобъект if(!is_valid_ent(entity) || !equal(model, "models/w_awp.mdl") ) return FMRES_IGNORED |
Дата: Суббота, 13.10.2018, 23:17 | Сообщение # 8
Смотрящий
Мастер
Offline
![]()
Цитата Легендарный Добавлено (13.10.2018, 23:19) |
| |||
| |||