public plugin_init() {
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}
public event_round_start() {
for(new id = 1; id <= 32; id++) {
if (!is_user_connected(id)) continue;
// вызываешь меню и добавляешь нужные проверки перед открытием меню, если их в меню нету
}
}
Спавн игрока!!!Code_0xABC, Можно и через Ham_CS_RoundRespawn, но насколько помню, мне встречался рес через
ExecuteHam(Ham_CS_RoundRespawn, id), поэтому, как по мне, объективно лучше мой предложенный метод - через отлов начала раунда
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <reapi>
new cvar_on
#define VIP_FLAG ADMIN_RESERVATION
#define ROUNDS 3 //Какой раунд вы хотите, чтобы он открылся?
new bool:g_bRound;
new g_iCount;
public plugin_init() {
register_plugin(" Weapons", "1.0", "Mekanın Sahibi")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
register_logevent("ElSonu", 2, "1=Round_End");
register_event("TextMsg","eRestart","a","2=#Game_will_restart_in","2=#Game_Commencing");
cvar_on = register_cvar("mkn_weapons", "1");
AutoExecConfig(true, "mkn_weaponssetting")
}
public ElSonu()
{
g_iCount++;
if(g_iCount >= ROUNDS){
g_bRound = true;
}
}
public eRestart() {
g_bRound = false;
g_iCount = 0;
}
public fwHamPlayerSpawnPost(id)
{
if(g_bRound == true && is_user_alive(id) && get_user_flags(id) & VIP_FLAG)
{
if(get_pcvar_num(cvar_on))
{
{
client_cmd(id, "amxx_mymenu")
}
}
}
}
//ПРИ ИЗМЕНЕНИИ КАРТЫ И СБРОСЕ ТУРА НИЧЕГО НЕ СЛОМАЕТСЯ.
это мы подключили реапи чтобы в название плагина добавить [ReAPI] Weapons?#include <reapi>
Этот цикл следует использовать с get_players, если вы не хотите использовать другой метод.Код:public event_round_start() { for(new id = 1; id <= 32; id++) { if (!is_user_connected(id)) continue; // вызываешь меню и добавляешь нужные проверки перед открытием меню, если их в меню нету } }
А как насчёт такого момента, когда игрок заходит через пару секунд после начала раунда, его ресает? Меню не выводит! Можно отследить спавн, а там, например, если оставшееся время раунда < mp_roundtime + mp_buytime , меню не выводить.Code_0xABC, Можно и через Ham_CS_RoundRespawn, но насколько помню, мне встречался рес через
ExecuteHam(Ham_CS_RoundRespawn, id), поэтому, как по мне, объективно лучше мой предложенный метод - через отлов начала раунда
Все зависит от задач человека. Можно множество недочетов приводить, к примеру если на его сервере (допустим это паблик) стоит Revive Teammates, и за это mp_roundtime игрок умрет и его снова реснут. Спавн может снова сработать (код плагина я не смотрел, но наверняка он хукнет спавн), тогда придется добавлять булевую переменную для блока повторного открытия меню и в конце/начале раунда обнулять ее.А как насчёт такого момента, когда игрок заходит через пару секунд после начала раунда, его ресает? Меню не выводит! Можно отследить спавн, а там, например, если оставшееся время раунда < mp_roundtime + mp_buytime , меню не выводить.
stock Float:rg_get_duration_time() {
return get_gametime() - Float:get_member_game(m_fRoundStartTimeReal);
}