Bruno_Ferrari
Участник
- Сообщения
- 27
- Реакции
- 0
Добрый день. У меня проблема.
Когда игрок хочет выключить/включить музыку боссов, он её выключает, но в чате при любом раскладе высвечивается "ON", хотя игрок её выключил и она заглохла.
Ну а когда включает, так же высвечивается "ON". Аналогично может происходить с "OFF". В чём тут недоработка ? Кто поможет? Фото пример прикрепил.
Вот часть кода:
Когда игрок хочет выключить/включить музыку боссов, он её выключает, но в чате при любом раскладе высвечивается "ON", хотя игрок её выключил и она заглохла.
Ну а когда включает, так же высвечивается "ON". Аналогично может происходить с "OFF". В чём тут недоработка ? Кто поможет? Фото пример прикрепил.
Вот часть кода:
public Action MusicTogglePanelCmd(int client, int args)
{
if(!IsValidClient(client))
{
ReplyToCommand(client, "[SM] %t", "Command is in-game only");
return Plugin_Handled;
}
if(args)
{
static char cmd[64];
GetCmdArgString(cmd, sizeof(cmd));
if(StrContains(cmd, "off", false)!=-1 || StrContains(cmd, "disable", false)!=-1 || StrContains(cmd, "0", false)!=-1)
{
ToggleBGM(client, false);
}
else if(StrContains(cmd, "on", false)!=-1 || StrContains(cmd, "enable", false)!=-1 || StrContains(cmd, "1", false)!=-1)
{
if(ToggleMusic[client])
{
FReplyToCommand(client, "You already have boss themes enabled...");
return Plugin_Handled;
}
ToggleBGM(client, true);
}
FPrintToChat(client, "%t", "ff2_music", ToggleMusic[client] ? "on" : "off"); // TODO: Make this more multi-language friendly
return Plugin_Handled;
}
MusicTogglePanel(client);
return Plugin_Handled;
}
public Action MusicTogglePanel(int client)
{
if(!cvarAdvancedMusic.BoolValue)
{
Menu menu = new Menu(MusicTogglePanelH);
menu.SetTitle("Turn the Freak Fortress 2 music...");
menu.AddItem("On", "On");
menu.AddItem("Off", "Off");
menu.ExitButton = false;
menu.Display(client, MENU_TIME_FOREVER);
}
else
{
char title[128];
Menu menu = new Menu(MusicTogglePanelH);
SetGlobalTransTarget(client);
FormatEx(title, sizeof(title), "%t", "theme_menu");
menu.SetTitle(title, title);
if(ToggleMusic[client])
{
FormatEx(title, sizeof(title), "%t", "themes_disable");
menu.AddItem(title, title);
FormatEx(title, sizeof(title), "%t", "theme_skip");
menu.AddItem(title, title);
FormatEx(title, sizeof(title), "%t", "theme_shuffle");
menu.AddItem(title, title);
if(cvarSongInfo.IntValue >= 0)
{
FormatEx(title, sizeof(title), "%t", "theme_select");
menu.AddItem(title, title);
}
}
else
{
FormatEx(title, sizeof(title), "%t", "themes_enable");
menu.AddItem(title, title);
}
menu.ExitButton = true;
menu.Display(client, MENU_TIME_FOREVER);
}
return Plugin_Continue;
}
public int MusicTogglePanelH(Menu menu, MenuAction action, int client, int selection)
{
switch(action)
{
case MenuAction_End:
{
delete menu;
}
case MenuAction_Select:
{
if(!cvarAdvancedMusic.BoolValue)
{
if(selection) //Off
{
ToggleMusic[client] = false;
StopMusic(client, true);
}
else //On
{
//If they already have music enabled don't do anything
if(!ToggleMusic[client])
{
ToggleMusic[client] = true;
StartMusic(client);
}
}
FPrintToChat(client, "%t", "ff2_music", selection==2 ? "off" : "on"); // TODO: Make this more multi-language friendly
}
else
{
switch(selection)
{
case 0:
{
ToggleBGM(client, ToggleMusic[client] ? false : true);
FPrintToChat(client, "%t", "ff2_music", ToggleVoice[client] ? "on" : "off"); // And here too
}
case 1:
{
Command_SkipSong(client, 0);
}
case 2:
{
Command_ShuffleSong(client, 0);
}
case 3:
{
Command_Tracklist(client, 0);
}
}
}
}
}
}
void ToggleBGM(int client, bool enable)
{
if(enable)
{
ToggleMusic[client] = true;
StartMusic(client);
}
else
{
ToggleMusic[client] = false;
StopMusic(client, true);
}
}
{
if(!IsValidClient(client))
{
ReplyToCommand(client, "[SM] %t", "Command is in-game only");
return Plugin_Handled;
}
if(args)
{
static char cmd[64];
GetCmdArgString(cmd, sizeof(cmd));
if(StrContains(cmd, "off", false)!=-1 || StrContains(cmd, "disable", false)!=-1 || StrContains(cmd, "0", false)!=-1)
{
ToggleBGM(client, false);
}
else if(StrContains(cmd, "on", false)!=-1 || StrContains(cmd, "enable", false)!=-1 || StrContains(cmd, "1", false)!=-1)
{
if(ToggleMusic[client])
{
FReplyToCommand(client, "You already have boss themes enabled...");
return Plugin_Handled;
}
ToggleBGM(client, true);
}
FPrintToChat(client, "%t", "ff2_music", ToggleMusic[client] ? "on" : "off"); // TODO: Make this more multi-language friendly
return Plugin_Handled;
}
MusicTogglePanel(client);
return Plugin_Handled;
}
public Action MusicTogglePanel(int client)
{
if(!cvarAdvancedMusic.BoolValue)
{
Menu menu = new Menu(MusicTogglePanelH);
menu.SetTitle("Turn the Freak Fortress 2 music...");
menu.AddItem("On", "On");
menu.AddItem("Off", "Off");
menu.ExitButton = false;
menu.Display(client, MENU_TIME_FOREVER);
}
else
{
char title[128];
Menu menu = new Menu(MusicTogglePanelH);
SetGlobalTransTarget(client);
FormatEx(title, sizeof(title), "%t", "theme_menu");
menu.SetTitle(title, title);
if(ToggleMusic[client])
{
FormatEx(title, sizeof(title), "%t", "themes_disable");
menu.AddItem(title, title);
FormatEx(title, sizeof(title), "%t", "theme_skip");
menu.AddItem(title, title);
FormatEx(title, sizeof(title), "%t", "theme_shuffle");
menu.AddItem(title, title);
if(cvarSongInfo.IntValue >= 0)
{
FormatEx(title, sizeof(title), "%t", "theme_select");
menu.AddItem(title, title);
}
}
else
{
FormatEx(title, sizeof(title), "%t", "themes_enable");
menu.AddItem(title, title);
}
menu.ExitButton = true;
menu.Display(client, MENU_TIME_FOREVER);
}
return Plugin_Continue;
}
public int MusicTogglePanelH(Menu menu, MenuAction action, int client, int selection)
{
switch(action)
{
case MenuAction_End:
{
delete menu;
}
case MenuAction_Select:
{
if(!cvarAdvancedMusic.BoolValue)
{
if(selection) //Off
{
ToggleMusic[client] = false;
StopMusic(client, true);
}
else //On
{
//If they already have music enabled don't do anything
if(!ToggleMusic[client])
{
ToggleMusic[client] = true;
StartMusic(client);
}
}
FPrintToChat(client, "%t", "ff2_music", selection==2 ? "off" : "on"); // TODO: Make this more multi-language friendly
}
else
{
switch(selection)
{
case 0:
{
ToggleBGM(client, ToggleMusic[client] ? false : true);
FPrintToChat(client, "%t", "ff2_music", ToggleVoice[client] ? "on" : "off"); // And here too
}
case 1:
{
Command_SkipSong(client, 0);
}
case 2:
{
Command_ShuffleSong(client, 0);
}
case 3:
{
Command_Tracklist(client, 0);
}
}
}
}
}
}
void ToggleBGM(int client, bool enable)
{
if(enable)
{
ToggleMusic[client] = true;
StartMusic(client);
}
else
{
ToggleMusic[client] = false;
StopMusic(client, true);
}
}