Исходник меню футбола:
- Код: Выделить всё
Show_SoccerMenu(id)
{
if(g_iDayMode != 1 && g_iDayMode != 4 || id != g_iChiefId || IsNotSetBit(g_iBitUserAlive, id)) return PLUGIN_HANDLED;
new szMenu[512], iKeys = (1<<0|1<<8|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\y%L^n^n", id, "JBE_MENU_SOCCER_TITLE");
if(g_bSoccerStatus)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \w %L^n", id, "JBE_MENU_SOCCER_DISABLE"); //включение\выключение футбола.
if(g_iSoccerBall)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \w %L^n", id, "JBE_MENU_SOCCER_SUB_BALL");
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \w %L^n", id, "JBE_MENU_SOCCER_ADD_BALL");
}
if(g_bSoccerGame)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[3] \w %L^n", id, "JBE_MENU_SOCCER_WHISTLE");
iKeys |= (1<<2);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[3] \d %L^n", id, "JBE_MENU_SOCCER_WHISTLE");
if(g_bSoccerGame)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[4] \d %L^n", id, "JBE_MENU_SOCCER_TEAMS");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \w %L^n^n", id, "JBE_MENU_SOCCER_SCORE");
iKeys |= (1<<4);
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[4] \w %L^n", id, "JBE_MENU_SOCCER_TEAMS");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \d %L^n^n", id, "JBE_MENU_SOCCER_SCORE");
iKeys |= (1<<5);
}
iKeys |= (1<<1);
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \w %L^n", id, "JBE_MENU_SOCCER_ENABLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \d %L^n", id, "JBE_MENU_SOCCER_ADD_BALL");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[3] \d %L^n", id, "JBE_MENU_SOCCER_WHISTLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[4] \d %L^n", id, "JBE_MENU_SOCCER_TEAMS");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \d %L^n^n", id, "JBE_MENU_SOCCER_SCORE");
}
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r9. \w %L", id, "JBE_MENU_BACK");
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0. \w %L", id, "JBE_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, "Show_SoccerMenu");
}
public Handle_SoccerMenu(id, iKey)
{
if(g_iDayMode != 1 && g_iDayMode != 4 || id != g_iChiefId || IsNotSetBit(g_iBitUserAlive, id)) return PLUGIN_HANDLED;
switch(iKey)
{
case 0:
{
if(g_bSoccerStatus) jbe_soccer_disable_all();
else
{
jbe_soccer_game_start(id);
}
}
case 1:
{
if(g_iSoccerBall) jbe_soccer_remove_ball();
else
{
jbe_soccer_create_ball(id);
}
}
case 2:
{
if(g_bSoccerGame && g_iSoccerBall)
{
emit_sound(id, CHAN_AUTO, "j_ekoplaycs/football/whistle.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
}
case 3: if(!g_bSoccerGame) return Show_SoccerTeamMenu(id);
case 4: if(g_bSoccerGame) return Show_SoccerScoreMenu(id);
case 8: return Show_MiniGameMenu(id);
case 9: return PLUGIN_HANDLED;
}
return Show_SoccerMenu(id);
}
Паблик jbe_soccer_game_start
- Код: Выделить всё
jbe_soccer_game_start(pPlayer)
{
g_bSoccerStatus = true;
for(new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++) if(IsSetBit(g_iBitUserAlive, iPlayer) || iPlayer == g_iChiefId) set_task(1.0, "jbe_soccer_score_informer", iPlayer+TASK_SHOW_SOCCER_SCORE, _, _, "b");
g_bSoccerGame = true;
set_hudmessage(0, 255, 0, -1.0, 0.55, 0, 6.0, 3.0, 0.1, 0.2, -1);
new szName[34];
get_user_name(pPlayer, szName, charsmax(szName));
show_hudmessage(0, "%s включил футбол", szName);
}
Паблик jbe_soccer_disable_all
- Код: Выделить всё
jbe_soccer_disable_all()
{
jbe_soccer_remove_ball();
for(new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++)
{
if(IsSetBit(g_iBitClothingGuard, iPlayer) && IsSetBit(g_iBitClothingType, iPlayer)) jbe_set_user_model(iPlayer, g_szPlayerModel[GUARD]);
else jbe_default_player_model(iPlayer);
set_pdata_int(iPlayer, m_bloodColor, 247);
new iActiveItem = get_pdata_cbase(iPlayer, m_pActiveItem);
if(iActiveItem > 0)
{
ExecuteHamB(Ham_Item_Deploy, iActiveItem);
UTIL_WeaponAnimation(iPlayer, 3);
}
if(g_bSoccerGame) remove_task(iPlayer+TASK_SHOW_SOCCER_SCORE);
}
if(g_bSoccerGame)
{
if(g_iChiefStatus == 1) remove_task(g_iChiefId+TASK_SHOW_SOCCER_SCORE);
}
g_iSoccerScore = {0, 0};
g_bSoccerGame = false;
g_bSoccerStatus = false;
}
Если нужны еще какие то данные, я могу скинуть
Добавлено спустя 1 час 47 минут 56 секунд:
Потом и кровью нашёл проблему, в паблике jbe_soccer_disable_all нужно было удалить установку моделей игрокам. Простите, думал, уже тупик