Русское сообщество по скриптингу

VIP model : Weapon model

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

VIP model : Weapon model

Сообщение Skenmuk » 25 сен 2016, 15:18

И ещё раз здрасти)

Хотел заменить стандартные модели AWP, на ASIMOV, написал вроде бы всё правильно, но в игре w_awp.mdl стандартный,а p_awp.mdl и v_awp.mdl стали ASIMOV, не подскажите где допустил ошибку?

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>

#define is_valid_player(%1) (1 <= %1 <= 32)

new const AWP_BIT_SUM = (1<<CSW_AWP)

new ASIMOV_V_MODEL[64] = "models/vip_asimov_awp/v_asimov_awp.mdl"
new ASIMOV_P_MODEL[64] = "models/vip_asimov_awp/p_asimov_awp.mdl"
new ASIMOV_W_MODEL[64] = "models/vip_asimov_awp/w_asimov_awp.mdl"

new WORLDASIMOV_MODEL[64] = "models/w_awp.mdl"

new gold_damage, golden_model, goldasimov_cost
new bool
:g_HasASIMOV[33]

public plugin_init()
{
    register_plugin("Asimovawp", "1.0", "Alienware")
    register_clcmd("amx_asimovawp", "cmdasimovawp")
    
    gold_damage 
= register_cvar("goldenasimov_dmg", "5")
    golden_model = register_cvar("goldenasimov_custommodel", "1")
    goldasimov_cost = register_cvar("goldenasimov_cost", "1")
    
    register_event
("DeathMsg", "Death", "a")
    register_event("WeapPickup", "checkModel", "b","1=19")
    register_event("CurWeapon", "checkWeapon", "be","1=1")
    
    RegisterHam
(Ham_TakeDamage, "player", "fw_TakeDamage")
    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    
    register_forward
(FM_CmdStart, "fw_CmdStart")
    register_forward(FM_SetModel, "fw_SetModel")
}

public client_connect(id)
    g_HasASIMOV[id] = false

public client_disconnect
(id)
    g_HasASIMOV[id] = false

public Death
()
    g_HasASIMOV[read_data(2)] = false

public plugin_precache
()
{
    precache_model(ASIMOV_V_MODEL)
    precache_model(ASIMOV_P_MODEL)
    precache_model(ASIMOV_W_MODEL)
}

public cmdasimovawp(id)
{
    if(!is_user_alive(id)) return
    
    new money 
= cs_get_user_money(id)
    
    if
(money < get_pcvar_num(goldasimov_cost))
    {
        ColorChat(id, GREEN, "^x01У вас недостаточно денег")
        return
    
}
    
    drop_weapon
(id, 1)
    give_item(id, "weapon_awp")
    cs_set_user_bpammo(id, CSW_AWP, 30)
    cs_set_user_money(id, money - get_pcvar_num(goldasimov_cost))
    ColorChat(id, GREEN, "^x01[^x04 SERVER^x01 ] Вы получили^x04 AWP ^x01 [^x03 ASIMOV ^x01 ]")
    g_HasASIMOV[id] = true
}

public checkModel(id)
{
    new szWeapID = read_data(2)
    
    if
(szWeapID == CSW_AWP && g_HasASIMOV[id] == true && get_pcvar_num(golden_model) == 1)
    {
        set_pev(id, pev_viewmodel2, ASIMOV_V_MODEL)
        set_pev(id, pev_weaponmodel2, ASIMOV_P_MODEL)
    }
    return PLUGIN_HANDLED
}

public checkWeapon(id)
{
    new plrWeapId
    plrWeapId 
= get_user_weapon(id)
    
    if 
(plrWeapId == CSW_AWP && g_HasASIMOV[id])
        checkModel(id)
    else
        return PLUGIN_CONTINUE
    
    return PLUGIN_HANDLED
}

public fw_SetModel(entity, model[])
{
    if(!pev_valid(entity))
        return FMRES_IGNORED
    
    if
(!equali(model, WORLDASIMOV_MODEL))
        return FMRES_IGNORED
    
    new className
[33]
    pev(entity, pev_classname, className, 32)
    
    if
(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
    {
        engfunc(EngFunc_SetModel, entity, ASIMOV_W_MODEL)
        return FMRES_SUPERCEDE
    
}
    return FMRES_IGNORED
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
    if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_AWP && g_HasASIMOV[attacker])
        SetHamParamFloat(4, damage * get_pcvar_float(gold_damage))
}

stock drop_weapon(id, dropwhat)
{
    static weapons[32], num, i, weaponid
    num 
= 0
    get_user_weapons
(id, weapons, num)
    
    for
(= 0; i < num; i++)
    {
        weaponid = weapons[i]
        if((dropwhat == 1 && ((1<<weaponid) & AWP_BIT_SUM)))
        {
            static wname[32]
            get_weaponname(weaponid, wname, charsmax(wname))
            engclient_cmd(id, "drop", wname)
        }
    }
}
Аватара пользователя
Skenmuk
 
Сообщения: 23
Зарегистрирован: 08 авг 2016, 20:03
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: VIP model : Weapon model

Сообщение Subb98 » 25 сен 2016, 18:20

Проверяйте на корректность каждое условие в этом обработчике:

Код: Выделить всё
public fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity))
        return 
FMRES_IGNORED
    
    
if(!equali(modelWORLDASIMOV_MODEL))
        return 
FMRES_IGNORED
    
    
new className[33]
    
pev(entitypev_classnameclassName32)
    
    if(
equal(className"weaponbox") || equal(className"armoury_entity") || equal(className"grenade"))
    {
        
engfunc(EngFunc_SetModelentityASIMOV_W_MODEL)
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: VIP model : Weapon model

Сообщение Skenmuk » 25 сен 2016, 18:24

Subb98, Всё правильно вроде бы, брал с Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
Skenmuk
 
Сообщения: 23
Зарегистрирован: 08 авг 2016, 20:03
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: VIP model : Weapon model

Сообщение Subb98 » 25 сен 2016, 22:56

Skenmuk, раз всё правильно, значит, у вас всё работает.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: VIP model : Weapon model

Сообщение Skenmuk » 26 сен 2016, 13:29

Subb98, В чем и дело не все, когда игрок держит оружие, видно,когда я держу оружие видно, а когда оно лежит на полу - стандартная модель.
Аватара пользователя
Skenmuk
 
Сообщения: 23
Зарегистрирован: 08 авг 2016, 20:03
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: VIP model : Weapon model

Сообщение Subb98 » 26 сен 2016, 19:25

Subb98 писал(а):Проверяйте на корректность каждое условие в обработчике

Skenmuk писал(а):Subb98, Всё правильно вроде бы, брал с Вы должны зарегистрироваться, чтобы видеть ссылки.

Skenmuk писал(а):Subb98, В чем и дело не все, когда игрок держит оружие, видно,когда я держу оружие видно, а когда оно лежит на полу - стандартная модель.

Вы или не понимаете, или не желаете понимать: если всё правильно, то всё и работает. Вы выше утверждаете, что всё правильно, но при этом не работает. Ситуация сложная, я бы сказал, из жанра фантастики. Без помощи шамана тут не обойтись, код верный по умолчанию и дебажить мы его не будем.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: VIP model : Weapon model

Сообщение Skenmuk » 27 сен 2016, 01:07

Subb98, а могу ли быть конфликты с самим другим кодом?
Аватара пользователя
Skenmuk
 
Сообщения: 23
Зарегистрирован: 08 авг 2016, 20:03
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: VIP model : Weapon model

Сообщение Subb98 » 27 сен 2016, 01:18

Skenmuk, тестируйте плагин отдельно и узнаете.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 7