BLOG [questions] Вопросы от maFFyoZZyk, или над чем я ломаю голову.

Сообщения
775
Реакции
293
Помог
11 раз(а)
Код:
rg_send_bartime(id, 0);
set_member(g_iEntity, m_Grenade_flDefuseCountDown, get_gametime());
Код для моментального разминирования C4
 
Последнее редактирование модератором:
Сообщения
775
Реакции
293
Помог
11 раз(а)
Внимание вопрос, что я делаю не так. По какой причине модель С4 не заменяется

Код:
public CWeapon_DefaultDeploy_Pre(iItem, sViewModel[], sWeaponModel[], iAnim, sAnimExt[], iSkipLocal)
{
    if(!is_entity(iItem) || !equal(sViewModel, "models/v_c4.mdl"))
        return HC_CONTINUE;

    SetHookChainArg(2, ATYPE_STRING, V_MODEL);
    SetHookChainArg(3, ATYPE_STRING, P_MODEL);
    return HC_SUPERCEDE;
}
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
rg_send_bartime(id, 0);
set_member(g_iEntity, m_Grenade_flDefuseCountDown, get_gametime());


Код для моментального разминирования C4
можно просто блов на 0.0

Внимание вопрос, что я делаю не так. По какой причине модель С4 не заменяется

Код:
public CWeapon_DefaultDeploy_Pre(iItem, sViewModel[], sWeaponModel[], iAnim, sAnimExt[], iSkipLocal)
{
    if(!is_entity(iItem) || !equal(sViewModel, "models/v_c4.mdl"))
        return HC_CONTINUE;

    SetHookChainArg(2, ATYPE_STRING, V_MODEL);
    SetHookChainArg(3, ATYPE_STRING, P_MODEL);
    return HC_SUPERCEDE;
}
Блочишь вызов же. Просто аргументы меняй.
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
fl0wer, даже если я уберу суперсид, ровным счетом ничего не изменится
16 Авг 2021
fl0wer, sorry, делал все это в пост хуке
16 Авг 2021
Кто подскажет, как грамотно поменять W модель
я подозреваю, что нужно использовать public WeaponBox_SetModel_Pre(const iWeaponBox, const szModel[])
и еще вопрос, как не привязываться к модели, пробовал через #define IsC4(%1) bool:get_member(%1, m_Grenade_bIsC4), не вышло
 
Последнее редактирование:
Сообщения
1,293
Реакции
2,291
Помог
57 раз(а)
maFFyoZZyk, правильно подозреваешь. меняй в пре через SetHookChainArg()
2-ой вопрос я лично не понял. Ты пытаешься веапонбокс проверить через m_Grenade_bIsC4 ? Если да, это неправильно. Веапонбокс это не граната (совершенно другой класс, ваш капитан). Юзай rg_get_weaponbox_id()
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
BlackSignature,
Код:
public WeaponBox_SetModel_Pre(const iWeaponBox, const szModel[])
{
    if(!equal(szModel, "models/w_c4.mdl"))
        return HC_CONTINUE;
        
    SetHookChainArg(2, ATYPE_STRING, W_MODEL);   
    
    return HC_CONTINUE;
}
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
zhorzh78, увы, но установленная бомба остается дефолтной
 
Сообщения
333
Реакции
290
Помог
9 раз(а)
maFFyoZZyk, Не вижу, где речь про установленную бомбу.
WeaponBox_SetModel_Pre
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
zhorzh78, Виноват, не сказал что пытаюсь заменить модельку установленной бомбы и тех, что в руках. До той что за спиной я еще не добрался
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Забегаю вперед, скажу сразу что знаю о том что модель за спиной меняется в модели игрока, можно заменить только дропнутую модельку
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,177
Помог
10 раз(а)
maFFyoZZyk, там не модель а вариация скина игрока с бомбой, но ты можешь сетнуть варик без бомбы и приаттачить кастомную модельку.
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Давненько я не над чем не ломал голову, но чет решил снова заняться головоломками
И так на этот раз меня интересует способ отловить человека на пленту.
Игрок может быть как террористом, так и контром.
В принципе можно ловить тач RegisterHam(Ham_Touch, "func_bomb_target", "Ham_Touch_Post", true);
Пробовал изменить проверку на байзону, но она завязана на иконке, т.е. мой вывод, будет работать, если у тебя бомба и мигает иконка бомбы.

Код:
stock bool:rg_get_user_plantzone(const pIndex)
{
    new iSignals[UnifiedSignals];
    get_member(pIndex, m_signals, iSignals);

    return bool:(SignalState:iSignals[US_State] & SIGNAL_BOMB);
}
(Выявить работоспособность данного кода не удалось)

Потому назрел вопрос, может кто в курсе, как сделать простую проверку на нахождение в зоне установки бомбы.
Может есть какой-то простой способ
 
Сообщения
678
Реакции
56
Помог
16 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
maFFyoZZyk, думаю есть, раз в ReGameDLL квар имеется на счёт сокращения установки бомбы на 1 юнит, думаю что там можно глянуть что к чему и как
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Всем спасибо, нашел простое решение на просторах интернета
Переделал чуть по своему

Код:
// Is player at the bomb target (func_bomb_target)?
// Note: there are no good way to detect if player is at the info_bomb_target

new target = NULLENT, class[] = "func_bomb_target", bool:is_inside = false;
while ((target = rg_find_ent_by_class(target, class)))
{
    if (!rg_boxents_distance(index, target))
    {
        is_inside = true;
        break;
    }
}

if (is_inside)

stock Float:rg_boxents_distance(boxent1, boxent2)
{
    new Float:mins1[3], Float:maxs1[3];
    get_entvar(boxent1, var_absmin, mins1);
    get_entvar(boxent1, var_absmax, maxs1);

    new Float:mins2[3], Float:maxs2[3];
    get_entvar(boxent2, var_absmin, mins2);
    get_entvar(boxent2, var_absmax, maxs2);

    return rg_boxes_distance(mins1, maxs1, mins2, maxs2);
}

stock Float:rg_boxes_distance(const Float:mins1[3], const Float:maxs1[3], const Float:mins2[3], const Float:maxs2[3])
{
    new Float:dist[3];
    for (new i = 0; i < 3; ++i) {
        if (mins1[i] > maxs2[i])
            dist[i] = mins1[i] - maxs2[i];
        else if (mins2[i] > maxs1[i])
            dist[i] = mins2[i] - maxs1[i];
    }

    return vector_length(dist);
}
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Друзья, подскажите такой вопрос, как отловить время окончания bartime.

Я понимаю, что можно запустить таск с тем же временем, что и длительность бартайма.

Но нашел вот такую штуку и не понял как ее использовать
m_izSBarState
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,177
Помог
10 раз(а)
maFFyoZZyk, по-моему никак ты окончание не отловишь, это ж мессага. Время получить мб можно аргументом.
4 Мар 2023
m_progressEnd
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
d3m37r4, не, он получает число, через которое будет закончен бар тайм, а не вызывается когда бар тайм закончился.
т.е если Float:get_member(id, m_progressEnd) - ответ будет время бартайма + время раунда, следовательно
если Float:get_member(id, m_progressEnd) - get_gametime() - получаем в ответ, то время которое используем в rg_send_bartime(id, 2, true);, т.е. в моем случае, всегда будет 2.0

Вот что удалось нарыть
1677954790453.png
,но как его использовать, я честное слово не пойму, пробовал исходя из
Код:
/*
    * Description:      -
    * Member type:      int [4]
    * Get params:       get_member(index, member, element);
    * Set params:       set_member(index, member, value, element);
    */
    m_izSBarState,
get_member(id, m_izSBarState, SBAR_END);

но при компилировании ругается на SBAR_END
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
hajimura, да кажись проще и вернее будет таск заюзать
4 Мар 2023
get_member(id, m_izSBarState, SBAR_END);

но при компилировании ругается на SBAR_END
попробовал get_member(id, m_izSBarState, 4); - но ту какие-то магические числа появляются вроде
Код:
1103296205
1105682103
1107093565
1107845865
 

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

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