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

Сообщения
775
Реакции
293
Помог
11 раз(а)
Всем привет. Смотрю можно создать такую тему, а то d3m37r4 я уже заколебал своими вопросами.
################ Внимание вопрос ################

1. Как принудительно вызвать Intermission

В качестве примера, чего я хочу добиться.
Есть квар, он определяет до скольки побед играется карта, если квар равен 0, тогда карта играется столько, сколько задано mp_timelimit или когда юзеры написали rtv.
Почему не занимаюсь принудительным вызовом change level? потому как в голосовалках есть такая кнопка, как продлить карту. Т.е. победы будут продолжаться.
Именно поэтому я хочу принудительно вызвать Intermission (а именно конец карты), и там уже реализовывать, вывод худ и мотд окна. Отсюда вытекает следующий вопрос, как заблокировать вывод таблицы счета, потому как она почему-то блочит вывод DHUD. Можно сделать for( new id = 1; id <= MaxClients; id++ ) client_cmd(id,"-showscores");, но мне кажется будет лучше просто блокнуть вывод.

2. Заблокировать tabscore.
 
Сообщения
2,751
Реакции
3,016
Помог
61 раз(а)
Сообщения
775
Реакции
293
Помог
11 раз(а)
Но в твоём случае его лучше заблокировать и написать своё поведение.
Хорошо, я блокирую вывод. но это хорошо подходит для ограниченного количества раундов, а именно число побед. А если у меня нет ограничения по победам. Ну сыграли ребята карту, вылезло голосование, они взяли продление, еще 15 минут поиграли и решили, что пора бы карту сменить. Получается либо отлавливать какую-то функцию. типа старта голосования с чужого плагина и по его окончанию, делать подсчет побед и показывать победившего, либо опять же нам нужен интермишен, чтобы знать наверняка, что это конец карты. Но тогда нужно блочить tabscore
13 Мар 2021
set_msg_block(SVC_INTERMISSION, BLOCK_SET) - оставлю тут, пробовал блокировку интермишен, вроде получилось
message_begin(MSG_ALL, SVC_INTERMISSION);
message_end();
- как и предлагал wopox1337, это работает, как принудительный вызов интермишен
 
Последнее редактирование:
Сообщения
775
Реакции
293
Помог
11 раз(а)
наверное я не правильно изъяснился.
есть код
Код:
public RoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
    iTTWins = get_member_game(m_iNumTerroristWins)
    iCTWins = get_member_game(m_iNumCTWins);
    if(g_Cvar[WIN_TEAM_SCORE] == 0)
    {
        // тут проверка на конец карты
    }
    else if(g_Cvar[WIN_TEAM_SCORE] > 0)
    {
        if(iCTWins == g_Cvar[WIN_TEAM_SCORE] || iTTWins == g_Cvar[WIN_TEAM_SCORE])   
        {
            if(g_Cvar[WIN_MSG_SCORE] == 1)
            {
                for(new id = 1; id <=  MaxClients; id++)
                    ClearDHUDMessages(id);
                    
                remove_task(132);
            }

            if(g_Cvar[WIN_SCREENFADE] == 1)
            {
                ScreenFade(1);
            }
            
            if(iCTWins > iTTWins)
            {
                set_dhudmessage(0, 0, 200, -1.0, 0.03, 0, 5.0, 5.0);
                show_dhudmessage(0, "Контр-Террористы Победили");
            }
            else if(iCTWins < iTTWins)
            {
                set_dhudmessage(200, 0, 0, -1.0, 0.03, 0, 5.0, 5.0);
                show_dhudmessage(0, "Террористы Победили");
            }
            set_task(1.0, "showMotd");
            set_task(7.0, "ChangeMap");
        }
    }
....
}
Как сделать ту самую проверку на конец карты. Т.е. как плагину узнать что карта закончилась и вывести set_task(1.0, "showMotd");
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Есть в регейме, но не вынесен в реапи. Возвращает тру после интермиссии.
bool m_bGameOver; // intermission or finale (deprecated name g_fGameOver)
Может через фейкмету геймдату получится добраться.

Либо после интермиссии ставь свой бул тру.
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
maFFyoZZyk, тебе же сказали хукать SVC_INTERMISSION
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
steelzzz, ты о RG_CSGameRules_GoToIntermission ( register_event(30, "event_intermission", "a");)
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Всем привет и снова я, со своими вопросами.

Собственно суть вопроса, как сделать обводку для Entity.
А именно, хочется сделать обводку func_bomb_target
Это вообще реально?

Пробовал через:

rg_set_rendering(iPlant, kRenderFxGlowShell, {255.0, 255.0, 255.0}, kRenderNormal, 255.0);
Код:
        set_entvar(iEntity, var_rendermode, kRenderGlow);
        set_entvar(iEntity, var_renderamt, 1.0);
        set_entvar(iEntity, var_rendercolor, Float: { 0.0, 255.0, 0.0 });
        set_entvar(iEntity, var_renderfx, kRenderFxGlowShell);
27 Апр 2021
попробовал код отсюда, получилось только на одну секунду и разово.
Потому хотелось бы узнать совет знающих, а лучше посмотреть на пример кода
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
MayroN, актуально то да, но я уже столько вариантов перебрал, что этот скорее всего утрачен, вечером посмотрю, если найду, то скину
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Всем привет, собстна вопросы:

1. Как моментально взорвать бомбу
2. Как принудительно присудить победу команде

1. Пробовал set_member_game(m_iC4Timer, 0) , но что-то работать ну убейте как не хочет
Думал заюзать m_Grenade_flC4Blow , но чет тоже лажа получается

2. Собственно бомба удаляется и в этот момент присуждается победа контрам.
Код удаления бомбы сделал, а вот как принудительно дать победу, чет туплю.
Пробовал rg_send_bartime(id, 0) и set_member(id, m_bIsDefusing, false), но тоже не пошло

Заранее спасибо за помощь
 
Последнее редактирование:

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
775
Реакции
293
Помог
11 раз(а)
RockTheStreet,
client_print_color(id, -2, "Произошел взрыв");
set_member_game(m_iC4Timer, max(0, 0));


Текст есть, взрыва нет
7 Авг 2021
Я так понимаю, если я так сделаю, я поломаю логику у аес и он не защитает дефьюзинг кт игроку. Может как-то ускорить разминирование. Ну а конкретней моментально его произвести
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
775
Реакции
293
Помог
11 раз(а)
И так, похоже я понял. Если я значение мембера меняю во время установки бомбы, то все работает как и должно быть, бомба взрывается сразу.
Если же бомба уже установлена, то мембер отказывается работать. Есть еще варианты? или только имитировать взрыв?
 

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

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