Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » round_start без повтора переменной (глупый вопрос)
round_start без повтора переменной
Scarface_slv Дата: Среда, 22.08.2012, 15:31:39 | Сообщение # 1
Сообщений: 738
Репутация: 61 [ +/- ]
В общем не могу додуматься чтобы был маленький код и правильный
я даже с этим справиться не могу
Code

#include <sourcemod>
#include <cstrike>   

public OnPluginStart()
{
  HookEvent("round_start", round_start, EventHookMode_PostNoCopy);
}

public round_start(Handle:event, const String:name[], bool:dontBroadcast)
{
  new Player = 0;
  for(new x = 1; x <= MaxClients; x++)
  {
   if (IsClientInGame(x) && IsPlayerAlive(x)) Player++;
  }
  if (Player <= 4) PrintToChatAll("1");
  else if (Player <= 8) PrintToChatAll("2");
  else if (Player <= 12) PrintToChatAll("3");
   else if (Player <= 16) PrintToChatAll("4");
  else if (Player <= MaxClients) PrintToChatAll("5");
}

мне нужно сделать так чтобы PrintToChatAll срабатывал только 1 раз при определенном количестве игроков
например 4 игрока Player <= 4 то PrintToChatAll("1"); написало только 1 раз в последующих раундах больше не писало
но когда будет 8 игроков else if (Player <= 8) то снова написало только 1 раз PrintToChatAll("2"); и в остальных раундах не писало пока не увеличиться до 12 или не уменьшиться до 4 и т.д.
 
_wS_ Дата: Среда, 22.08.2012, 15:58:02 | Сообщение # 2
Если я правильно понял, то можно так:

Code
#include <sourcemod>

public OnPluginStart()
{
     HookEvent("round_start", round_start, EventHookMode_PostNoCopy);
}

new bool:p4, bool:p8, bool:p12;

public OnMapStart()
{
     p4 = false; p8 = false; p12 = false;
}

public round_start(Handle:event, const String:name[], bool:dontBroadcast)
{
     new alive_players = 0;
     for (new x = 1; x <= MaxClients; x++)
     {
         if (IsClientInGame(x) && IsPlayerAlive(x)) alive_players++;
     }
     if (alive_players < 1) return;
     if (alive_players <= 4)
     {
         if (!p4)
         {
             PrintToChatAll("1");
             p4 = true;
         }
         p8 = false; p12 = false;
     }
     else if (alive_players <= 8)
     {
         if (!p8)
         {
             PrintToChatAll("2");
             p8 = true;
         }
         p4 = false; p12 = false;
     }
     else if (alive_players <= 12)
     {
         if (!p12)
         {
             PrintToChatAll("3");
             p12 = true;
         }
         p4 = false; p8 = false;
     }
}

Прикрепления: xz.sp(0.8 Kb)
 
Scarface_slv Дата: Пятница, 24.08.2012, 22:32:16 | Сообщение # 3
Сообщений: 738
Репутация: 61 [ +/- ]
Идеальный вариант, Спасибо большое за помощь!!

Добавлено (24.08.2012, 22:15:14)
---------------------------------------------
не стал создавать новую тему иза error


в чем может быть проблема?
Code

public OnClientDisconnect(client)
{
  if (Timers[client] != INVALID_HANDLE) KillTimer(Timers[client]);
  mutplayer[client] = false;
}

Добавлено (24.08.2012, 22:32:16)
---------------------------------------------
а щас добавил Timers[client] = INVALID_HANDLE; вроде все стало норм, хотя может и не иза этого

 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » round_start без повтора переменной (глупый вопрос)
  • Страница 1 из 1
  • 1
Поиск: