А при онлайн - остановка.Тоисть игроки обездвижены и ничего непроисходит.А должен быть чёрный екран ,меню карт и т.п..Как и по коду функции
- Код: Выделить всё
public start_vote()
{
new players[32], iCount, player;
get_players(players, iCount, "ah");
for (new i; i < iCount; i++)
{
player = players[i];
set_pev(player, pev_flags, pev(player, pev_flags) | FL_FROZEN)
fm_set_user_godmode(player, 1);
}
SetBlackScreenFade(2);
set_task(1.0, "SetBlackScreenFade", 1);
g_alreadyvoted = true
remove_task(TASK_VOTEMOD)
remove_task(TASK_CHVOMOD)
new menu[512], mkeys, iPercent, i
new pos = format(menu, 511, g_coloredmenus ? "\y%L:\w^n^n" : "%L:^n^n", LANG_PLAYER, "MM_CHOOSE")
for(i=0; i<= g_modcount; i++)
{
pos += format(menu[pos], 511, "\r%d.\w %s\d \y•\w \r%d\w \y%%\w^n^n", i + 1, g_modnames[i], iPercent)
g_votemodcount[i] = 0
mkeys |= (1<<i)
}
new szMenuName[63]
formatex(szMenuName, charsmax(szMenuName), "%L", LANG_PLAYER, "MM_VOTE")
server_print("show menu %s %s %i", menu, g_menuname, mkeys)
show_menu(0, mkeys, menu, 15, g_menuname)
client_cmd(0, "spk Vote/golosovanie_start")
set_task(15.0, "check_vote", TASK_CHVOMOD)
return
}
И ето происходит именно на Моде GunGame ( с остальными Модами всё впорядке ).
Как только появляеться победное MOTD окно - и всё -больше ничего нет.В самом плагине GunGame есть участок кода где можно прописать соответствующую функцию для голосования ( тоесть функцию для голоса )
- Код: Выделить всё
// start a map vote
stock start_mapvote()
{
new dmmName[24], plugin;
// Galileo - galileo.amxx
if(galileoID != -1)
{
log_amx("Starting a map vote from Galileo");
server_cmd("gal_startvote -nochange");
}
// AMXX Nextmap Chooser - mapchooser.amxx
else if((plugin = is_plugin_loaded("Nextmap Chooser")) != -1)
{
log_amx("Starting a map vote from Nextmap Chooser");
new oldWinLimit = get_cvar_num("mp_winlimit"), oldMaxRounds = get_cvar_num("mp_maxrounds");
set_cvar_num("mp_winlimit",0); // skip winlimit check
set_cvar_num("mp_maxrounds",-1); // trick plugin to think game is almost over
// call the vote
if(callfunc_begin_i(get_func_id("voteNextmap",plugin),plugin) == 1)
callfunc_end();
// set maxrounds back
set_cvar_num("mp_winlimit",oldWinLimit);
set_cvar_num("mp_maxrounds",oldMaxRounds);
}
// Deagles' Map Management 2.30b - deagsmapmanage230b.amxx
else if((plugin = is_plugin_loaded("DeagsMapManage")) != -1)
{
dmmName = "DeagsMapManage";
}
// Deagles' Map Management 2.40 - deagsmapmanager.amxx
else if((plugin = is_plugin_loaded("DeagsMapManager")) != -1)
{
dmmName = "DeagsMapManager";
}
// Mapchooser4 - mapchooser4.amxx
else if((plugin = is_plugin_loaded("Nextmap Chooser 4")) != -1)
{
log_amx("Starting a map vote from Nextmap Chooser 4");
new oldWinLimit = get_cvar_num("mp_winlimit"), oldMaxRounds = get_cvar_num("mp_maxrounds");
set_cvar_num("mp_winlimit",0); // skip winlimit check
set_cvar_num("mp_maxrounds",1); // trick plugin to think game is almost over
// deactivate g_buyingtime variable
if(callfunc_begin_i(get_func_id("buyFinished",plugin),plugin) == 1)
callfunc_end();
// call the vote
if(callfunc_begin_i(get_func_id("voteNextmap",plugin),plugin) == 1)
{
callfunc_push_str("",false);
callfunc_end();
}
// set maxrounds back
set_cvar_num("mp_winlimit",oldWinLimit);
set_cvar_num("mp_maxrounds",oldMaxRounds);
}
// NOTHING?
else log_amx("Using gg_vote_setting without any compatible plugins: could not start a vote!");
// do DMM stuff
if(dmmName[0])
{
log_amx("Starting a map vote from %s",dmmName);
// allow voting
/*if(callfunc_begin("dmapvotemode",dmmName) == 1)
{
callfunc_push_int(0); // server
callfunc_end();
}*/
new oldWinLimit = get_cvar_num("mp_winlimit"), Float:oldTimeLimit = get_cvar_float("mp_timelimit");
set_cvar_num("mp_winlimit",99999); // don't allow extending
set_cvar_float("mp_timelimit",0.0); // don't wait for buying
set_cvar_num("enforce_timelimit",1); // don't change map after vote
// call the vote
if(callfunc_begin_i(get_func_id("startthevote",plugin),plugin) == 1)
callfunc_end();
set_cvar_num("mp_winlimit",oldWinLimit);
set_cvar_float("mp_timelimit",oldTimeLimit);
// disallow further voting
/*if(callfunc_begin("dmapcyclemode",dmmName) == 1)
{
callfunc_push_int(0); // server
callfunc_end();
}*/
set_task(20.1,"dmm_stop_mapchange");
}
}
Но я пошол в обход,и в конфигурационном файле GunGame прописал следующее ( команда вызова меню голосования )
- Код: Выделить всё
gg_vote_setting 0
gg_vote_custom ""
gg_changelevel_custom "amx_votemod"
И так то работает,но только оффлайн
В заключении я думаю что,нужно в Моде корректно прописать вызов функции голосования,а в конфиге мода сделать так
- Код: Выделить всё
gg_changelevel_custom "ето поле оставить пустым"
Если,что-то неясно - спрашивайте.Постараюсь ещё более подробно обьяснить
Спасибо за Вашу помощь !
Добавлено спустя 1 час 56 минут 42 секунды:
Решено:
Оказалось всё банально просто.Нужно было в другой функции вызвать ( там где Motd окно показываеться )
Добавить:
- Код: Выделить всё
callfunc_begin("start_vote", "multimod.amxx");
callfunc_end();
Далее убрать автоматический рестарт ( проверку на наличие ,если нет голосования )
И в cfg сделать так:
- Код: Выделить всё
gg_vote_setting 0
gg_vote_custom ""
gg_changelevel_custom ""