public void OnPluginStart()
{
PrintToServer("\n<Cycle check>");
for(int i = 1; i <= MaxClients; i++)
{
PrintToServer(" #%i", i);
return;
}
PrintToServer("</Cycle check>\n ");
}
[BotNames] Names loaded: 46
<Cycle check>
#1
Weapons with infinite clip allowed:
Ты какой-то тугой:ac:d4Ck, правда?PHP:public void OnPluginStart() { PrintToServer("\n<Cycle check>"); for(int i = 1; i <= MaxClients; i++) { PrintToServer(" #%i", i); return; } PrintToServer("</Cycle check>\n "); }
все верно, не работает... Там проблема из-за дм'a, после рестарта сервера ничего не происходит... Тупо очки за убийства не даются... Надо сделать так чтоб раз в час в консоль прописывалась данная команда, mp_restartgame 1..Ну раз написал, значит не работает :D
if (FindEntityByClassname (-1, "info_player_terrorist") <= 0 && FindEntityByClassname (-1, "info_player_counterterrorist") <= 0)
{
if (GetTeamClientCount(2) == GetTeamClientCount(3))
PrintToChatAll("есть два")
else if (GetTeamClientCount(3) < GetTeamClientCount(2))
PrintToChatAll("есть т2")
else if (GetTeamClientCount(2) < GetTeamClientCount(3))
PrintToChatAll("есть кт2")
}
if (FindEntityByClassname (-1, "info_player_terrorist") <= 0)
PrintToChatAll("есть т")
if (FindEntityByClassname (-1, "info_player_counterterrorist") <= 0)
PrintToChatAll("есть кт")
Ну так ентити есть, и даже не одна, но когда ставлю ">= 0", то ничего не происходит.Так функция возвращает -1, если энтити совсем не найдено.
А если сделать так, мол каждый худ включается по таймеру, и имеют различия в старте между временем и будет служить "паузой", то-есть худ будет отключён как минимум 1 секунду, за это время есть шанс обновить другой худ. Что бы худ не моргал, ставим ему значение ~1.2 для6 каналов одновременно на экране максимум
public void EventTankHook(Event event, const char[] name, bool dontBroadcast)
{
if(!GetConVarInt(g_iEnable_Weapon) || (g_stop_weapon))return;
{
GetCurrentMap(maps, sizeof(maps));
if(IsGameMaps())
{
//switch(GetRandomInt(0, 1))
//{
//case 0: random_weapon();
// case 1:
// {
for (int i = 1; i <= MaxClients; ++i) if (IsClientInGame(i) && !IsFakeClient(i))
{
IsWeaponMenu(i);
PrintToChat(i, "\x03Появился заблокированный \x05Tанк\x01... \x03Выжившим предоставлен \x05выбор оружия\x01!!!");
}
// }
//}
g_stop_weapon = true;
}
}
}
stock void IsWeaponMenu(int client)
{
Handle menu = CreateMenu(MenuHandler);
SetMenuTitle(menu, "Weapons Menu");
AddMenuItem(menu, "option1", "Rifle");
AddMenuItem(menu, "option2", "Hunting Rifle");
AddMenuItem(menu, "option3", "Auto Shotgun");
SetMenuExitButton(menu, true);
DisplayMenu(menu, client, 15);
}
А если так?Вообщем такая проблема. Пытаюсь с помощью цикла всем включать меню. Такое вообще возможно всем и сразу?
PHP:public void EventTankHook(Event event, const char[] name, bool dontBroadcast) { if(!GetConVarInt(g_iEnable_Weapon) || (g_stop_weapon))return; { GetCurrentMap(maps, sizeof(maps)); if(IsGameMaps()) { Handle menu = CreateMenu(MenuHandler); SetMenuTitle(menu, "Weapons Menu"); AddMenuItem(menu, "option1", "Rifle"); AddMenuItem(menu, "option2", "Hunting Rifle"); AddMenuItem(menu, "option3", "Auto Shotgun"); SetMenuExitButton(menu, true); //switch(GetRandomInt(0, 1)) //{ //case 0: random_weapon(); // case 1: // { for (int i = 1; i <= MaxClients; ++i) if (IsClientInGame(i) && !IsFakeClient(i)) { DisplayMenu(menu, i, 15); PrintToChat(i, "\x03Появился заблокированный \x05Tанк\x01... \x03Выжившим предоставлен \x05выбор оружия\x01!!!"); } // } //} g_stop_weapon = true; } } }
Menu hWpnMenu;
bool bEnableMenu;
public void OnPluginStart()
{
hWpnMenu = new Menu(Handler_WpnMenu);
hWpnMenu.SetTitle("Weapons Menu");
hWpnMenu.AddItem("option1", "Rifle");
hWpnMenu.AddItem("option2", "Hunting Rifle");
hWpnMenu.AddItem("option3", "Auto Shotgun");
hWpnMenu.ExitButton = true;
}
public void OnMapStart()
{
char map[64];
GetCurrentMap(map, sizeof(map));
bEnableMenu = IsGameMaps();
}
public void EventTankHook(Event event, const char[] name, bool dontBroadcast)
{
if(!bEnableMenu || !GetConVarInt(g_iEnable_Weapon) || g_stop_weapon)
return;
for(int i = 1; i <= MaxClients; ++i)
if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i))
{
DisplayMenu(hWpnMenu, client, 15);
PrintToChat(i, "\x03Появился заблокированный \x05Tанк\x01...\n\x03Выжившим предоставлен \x05выбор оружия\x01!!!");
}
g_stop_weapon = true;
}
Ну потому что, код работает на определенныхalexmy, а для чего ты при каждом событии получаешь имя карты? Она что, может поменяться м/у событиями?
Лучше же при старте карты это имя получить
Да и меню можно создать при старте плагина, а потом отсылать его игрокам при необходимости
Вот как-то так:Только я не помню номер команды выживших в L4D2PHP:Menu hWpnMenu; bool bEnableMenu; public void OnPluginStart() { hWpnMenu = new Menu(Handler_WpnMenu); hWpnMenu.SetTitle("Weapons Menu"); hWpnMenu.AddItem("option1", "Rifle"); hWpnMenu.AddItem("option2", "Hunting Rifle"); hWpnMenu.AddItem("option3", "Auto Shotgun"); hWpnMenu.ExitButton = true; } public void OnMapStart() { char map[64]; GetCurrentMap(map, sizeof(map)); bEnableMenu = IsGameMaps(); } public void EventTankHook(Event event, const char[] name, bool dontBroadcast) { if(!bEnableMenu || !GetConVarInt(g_iEnable_Weapon) || g_stop_weapon) return; for(int i = 1; i <= MaxClients; ++i) if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i)) { DisplayMenu(hWpnMenu, client, 15); PrintToChat(i, "\x03Появился заблокированный \x05Tанк\x01...\n\x03Выжившим предоставлен \x05выбор оружия\x01!!!"); } g_stop_weapon = true; }
спасибо, я попробую)alexmy, а для чего ты при каждом событии получаешь имя карты? Она что, может поменяться м/у событиями?
Лучше же при старте карты это имя получить
Да и меню можно создать при старте плагина, а потом отсылать его игрокам при необходимости
Вот как-то так:Только я не помню номер команды выживших в L4D2PHP:Menu hWpnMenu; bool bEnableMenu; public void OnPluginStart() { hWpnMenu = new Menu(Handler_WpnMenu); hWpnMenu.SetTitle("Weapons Menu"); hWpnMenu.AddItem("option1", "Rifle"); hWpnMenu.AddItem("option2", "Hunting Rifle"); hWpnMenu.AddItem("option3", "Auto Shotgun"); hWpnMenu.ExitButton = true; } public void OnMapStart() { char map[64]; GetCurrentMap(map, sizeof(map)); bEnableMenu = IsGameMaps(); } public void EventTankHook(Event event, const char[] name, bool dontBroadcast) { if(!bEnableMenu || !GetConVarInt(g_iEnable_Weapon) || g_stop_weapon) return; for(int i = 1; i <= MaxClients; ++i) if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i)) { DisplayMenu(hWpnMenu, client, 15); PrintToChat(i, "\x03Появился заблокированный \x05Tанк\x01...\n\x03Выжившим предоставлен \x05выбор оружия\x01!!!"); } g_stop_weapon = true; }