Конфликт между моделями гранат ZP 5.0.8 и другими похожими плагинами.

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
48
Реакции
1
Предупреждения
5
Вот купил в магазе я Pumpkin, а вместо тыквы получил обычную модель гранаты из ZP. Так это еще ничего, Молотов вообще превращается в обычную flame (ZP) гранату.

Как все это дело изолировать, чтобы каждый из конкретных случаев отображался в зависимости от купленного предмета?

Прошу подкинуть идею, либо пример с кодом. Я подозреваю, что в плагинах конфликтуют функции, задействованные из разных модулей. Действительно ли оно так, судя по описанной проблеме? Спасибо.
 
Сообщения
28
Реакции
-2
Мне кажется проблема с ключами
Код:
pev_iuser1
или
Код:
pev_owner
. Чтобы дать точный ответ нужны ошибки, код, или хоть какое то визуальное состояние и описания последующих действий, тогда уже более детально можно разобрать в чем именно проблема.
20 Окт 2024
Я подозреваю, что в плагинах конфликтуют функции
Конечно, либо хардкод.
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
в дефолтных 4.3 и 5.0 нет проверок на ключ, просто выставляется модель гранат
так же и с логикой броска - кто успел, тот и сел
Код:
// Forward Set Model
public fw_SetModel(entity, const model[])
{
    // We don't care
    if (strlen(model) < 8)
        return;
    
    // Narrow down our matches a bit
    if (model[7] != 'w' || model[8] != '_')
        return;
    
    // Get damage time of grenade
    static Float:dmgtime
    pev(entity, pev_dmgtime, dmgtime)
    
    // Grenade not yet thrown
    if (dmgtime == 0.0)
        return;
    
    // Grenade's owner is zombie?
    if (zp_core_is_zombie(pev(entity, pev_owner)))
        return;
    
    // HE Grenade
    if (model[9] == 'h' && model[10] == 'e')
    {
        // Give it a glow
        fm_set_rendering(entity, kRenderFxGlowShell, 200, 0, 0, kRenderNormal, 16)
        
        // And a colored trail
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW) // TE id
        write_short(entity) // entity
        write_short(g_trailSpr) // sprite
        write_byte(10) // life
        write_byte(10) // width
        write_byte(200) // r
        write_byte(0) // g
        write_byte(0) // b
        write_byte(200) // brightness
        message_end()
        
        // Set grenade type on the thrown grenade entity
        set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_NAPALM)
    }
}

// Ham Grenade Think Forward
public fw_ThinkGrenade(entity)
{
    // Invalid entity
    if (!pev_valid(entity)) return HAM_IGNORED;
    
    // Get damage time of grenade
    static Float:dmgtime
    pev(entity, pev_dmgtime, dmgtime)
    
    // Check if it's time to go off
    if (dmgtime > get_gametime())
        return HAM_IGNORED;
    
    // Not a napalm grenade
    if (pev(entity, PEV_NADE_TYPE) != NADE_TYPE_NAPALM)
        return HAM_IGNORED;
    
    fire_explode(entity);
    
    // Keep the original explosion?
    if (get_pcvar_num(cvar_grenade_fire_explosion))
    {
        set_pev(entity, PEV_NADE_TYPE, 0)
        return HAM_IGNORED;
    }
    
    // Get rid of the grenade
    engfunc(EngFunc_RemoveEntity, entity)
    return HAM_SUPERCEDE;
}
 
Сообщения
28
Реакции
-2
BalbuR, Не сильно силен в ZP но проблема я думаю тут уже очевидна.
 
Сообщения
28
Реакции
-2
VasyaVas990, В плагин "гранат" выстави bool:натив для передачи что игрок взял/получил нужную нам гранату и в ZP сделай проверку что игрок получил гранату не через плагин. Так же и с ZP в плагин "гранат"
20 Окт 2024
VasyaVas990, у тебя сейчас получается так что ты на руки одел перчатки, а ты хочешь видеть руки через печатки.
20 Окт 2024
VasyaVas990,


Код:
#define SetBit(%0,%1) ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1) ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1) ((%0) & (1 << (%1)))

new g_iBitUserGranata;

SetBit(g_iBitUserPredmetGranataTeleport, pId) //? Там где граната выдается

ClearBit(g_iBitUserPredmetGranataTeleport, pId) //? Там где гранаты уже не будет

public bool:native_granate(iPlayer) return IsSetBit(g_iBitUserPredmetGranataTeleport, iPlayer) ? true : false;
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
смотря как работает тыква
для кода взрыва и W_ : если он аналогичен по коду с дефолтным зп, то можешь SetModel хук регнуть раньше, например, в plugin_precache чтобы он по приоритету выше был

для v_ модели - перезаписывать модель
в целом там код неоптимально написан - есть подозрение что он будет при каждом новом событии "пушки" перезаписывать модель на дефолт зп
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу