Конференции   |   Вход   |   Участники   |   Календарь   |   Сообщения за день   |   Поиск   |   Правила

Вернуться   Global Half-Life | Форум > Конференция Panther Studios > Half-Life SDK: Кодинг > [ Кодинг ] Туториалы

Ответ
 
Опции темы
Shadow762
Быдлокодер
 
Аватар для Shadow762
Shadow762 на форуме
 
Регистрация: 22.11.2015
Проживает: Гиде-то
Сообщений: 50
Профиль Steam
Red face trigger_player_freeze

Находил тутор когда-то давно, оказался нерабочий
в общем, пришлось порыться и поправить пару моментов
годится на HL SDK 2.3, на 2.4 не проверял и не собираюсь

Собственно, ничего особенного

в конец triggers.cpp на сервере копипастим

С / С++:
class CTriggerPlayerFreeze : public CBaseDelay
{
public:
    
void Spawn() override;

    
void Use(CBaseEntitypActivatorCBaseEntitypCallerUSE_TYPE useTypefloat valueoverride;

public:
    
BOOL m_bUnFrozen;
};

LINK_ENTITY_TO_CLASS(trigger_playerfreezeCTriggerPlayerFreeze);

void CTriggerPlayerFreeze::Spawn()
{
    if (
g_pGameRules->IsDeathmatch())
        
REMOVE_ENTITY(edict());
    else
        
m_bUnFrozen true;
}

void CTriggerPlayerFreeze::Use(CBaseEntitypActivatorCBaseEntitypCallerUSE_TYPE useTypefloat value)
{
    
m_bUnFrozen = !m_bUnFrozen;

    
//TODO: not made for multiplayer
    
CBaseEntitypPlayer static_cast<CBasePlayer*>(CBaseEntity::Instance(g_engfuncs.pfnPEntityOfEntIndex(1)));

    if (!
pPlayer)
    {
        return;
    }

    ((
CBasePlayer*)pPlayer) ->EnableControl(m_bUnFrozen);

Ну и в FGD -
Код:
@PointClass base(Targetx, Targetname) = trigger_playerfreeze : "Trigger Player Freeze" []
Применение - спавн на карту самой энтити, ее активация и деактивация любым триггером или мультименеджером.
__________________
#1 Старый 14.12.2022, 20:02 Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

На основе Vbulletin