наверно так)georgeml,
подскажите плз, как сделать changelevel de_dust2 или restart (имеется ввиду не sv_restart)
аналогично скрипту выше, после 50 побед одной из команд
#if AMXX_VERSION_NUM < 183
#define engine_changelevel(%0) server_cmd("changelevel %s", %0)
#endif
engine_changelevel("de_dust2_2x2")
а как сделать тоже самое но рестарт после N количества побед одной из команд??C++:#include <amxmodx> public plugin_init() { register_event("TeamScore", "EventTeamScore", "a", "2=50"); //50 - кол-во побед } public EventTeamScore() { set_cvar_float("sv_restart", 3.0); }
а как сделать тоже самое но рестарт после N количества побед одной из команд??
#include <amxmodx>
#include <reapi>
#define WIN_FOR_CT 10
#define WIN_FOR_TE 10
new win_ct_num;
new win_te_num;
public plugin_init()
{
RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", 1);
}
public RG_RoundEnd_Post(WinStatus:status)
{
switch(status)
{
case WINSTATUS_CTS: win_ct_num++;
case WINSTATUS_TERRORISTS: win_te_num++;
}
if(win_ct_num >= WIN_FOR_CT)
{
win_ct_num = win_te_num = 0;
set_cvar_float("sv_restart", 3.0);
}
if(win_te_num >= WIN_FOR_TE)
{
win_te_num = win_te_num = 0;
set_cvar_float("sv_restart", 3.0);
}
}
огонь но мне бы без re! типа под все платформы)C:#include <amxmodx> #include <reapi> #define WIN_FOR_CT 10 #define WIN_FOR_TE 10 new win_ct_num; new win_te_num; public plugin_init() { RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", 1); } public RG_RoundEnd_Post(WinStatus:status) { switch(status) { case WINSTATUS_CTS: win_ct_num++; case WINSTATUS_TERRORISTS: win_te_num++; } if(win_ct_num >= WIN_FOR_CT) { win_ct_num = win_te_num = 0; set_cvar_float("sv_restart", 3.0); } if(win_te_num >= WIN_FOR_TE) { win_te_num = win_te_num = 0; set_cvar_float("sv_restart", 3.0); } }
огонь но мне бы без re! типа под все платформы)
#include <amxmodx>
#define WIN_FOR_CT 10
#define WIN_FOR_TE 10
new win_ct_num;
new win_te_num;
public plugin_init()
{
register_logevent("LogEvent_CT_Win", 6, "3=CTs_Win");
register_logevent("LogEvent_TE_Win" , 6, "3=Terrorists_Win");
}
public LogEvent_CT_Win()
{
win_ct_num++;
if(win_ct_num >= WIN_FOR_CT)
{
win_ct_num = win_te_num = 0;
set_cvar_float("sv_restart", 3.0);
}
}
public LogEvent_TE_Win()
{
win_te_num++;
if(win_te_num >= WIN_FOR_TE)
{
win_ct_num = win_te_num = 0;
set_cvar_float("sv_restart", 3.0);
}
}
Да-да, я просто быстренько накидалStockX, юзай m_iNumCTWins, m_iNumTerroristWins
я просто тестил этоАнатолий, отлавливай мессагу"SendAudio"
и там в ней ловиterwin
иctwin
, ну или"TextMsg"
и в нем#Terrorists_Win
и#CTs_Win
. Или по отдельности через регистер евент:
Код:register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin") register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
#include <amxmodx>
#define MAX_WINS 10 // Максимальное количество побед той или иной команды
#define EXEC_CMD "amx_rtv" // Команда, посылаемая серверу для запуска голосования за следующую карту
public plugin_init()
{
register_plugin("VoteMap After Round Limit", "1.0", "neygomon")
register_event("TextMsg", "eTerroristWin", "a", "2=#Terrorists_Win")
register_event("TextMsg", "eCtWin", "a", "2=#CTs_Win")
}
public eTerroristWin()
Counter(1)
public eCtWin()
Counter(2)
Counter(team)
{
static num[3]
if(++num[team] == MAX_WINS)
server_cmd("%s", EXEC_CMD)
}
register_event("TeamScore", "Terrorists_Score", "a", "1=TERRORIST")
register_event("TeamScore", "Cts_Score", "a", "1=CT")
как пример)georgeml, перестань вести себя как быдло. мы то знаем что ты знаешь слишком "много" (!бесполезного)
Залепить остаток времени випки под gamecms api.
В gamecms_stocks.inl нужно сделать
stock StIsEqualFlags(flags1[], flags2[])
{
new iFlagsBit = read_flags(flags1);
return (iFlagsBit & read_flags(flags2)/* == iFlagsBit*/);
}
Его код)
else
{
iLen = formatex( szMenu, charsmax(szMenu), "\y%L\R%L^n", LANG_SERVER,"WEAPONS_MENU", LANG_SERVER,"ROUND")
new szDate[32];
cmsapi_service_timeleft(id, szDate, charsmax(szDate), g_szFlagAccess);
if (equali(szDate, "0000", 4))
format(szDate, 31, "Никогда :)");
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "Дата окончания ВИП: \w%s^t^n", szDate);
}
ОФФ ТОП![DOUBLEPOST=1558169782][/DOUBLEPOST]C:#include <amxmodx> #define WIN_FOR_CT 10 #define WIN_FOR_TE 10 new win_ct_num; new win_te_num; public plugin_init() { register_logevent("LogEvent_CT_Win", 6, "3=CTs_Win"); register_logevent("LogEvent_TE_Win" , 6, "3=Terrorists_Win"); } public LogEvent_CT_Win() { win_ct_num++; if(win_ct_num >= WIN_FOR_CT) { win_ct_num = win_te_num = 0; set_cvar_float("sv_restart", 3.0); } } public LogEvent_TE_Win() { win_te_num++; if(win_te_num >= WIN_FOR_TE) { win_ct_num = win_te_num = 0; set_cvar_float("sv_restart", 3.0); } }
Да-да, я просто быстренько накидал