AMX MOD X
Четверг, 22.01.2026, 11:11:54



Приветствую Вас Гость | RSS
[ Главная ] [ Team balance - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Team balance
manyДата: Понедельник, 13.10.2008, 19:20:48 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 49
Репутация: 0
Статус: Не в сети
Вот попробовал написать простой тим бэленс плагин но почему то он не работает. Помогите исправить
Code

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN    "Team Balance"
#define AUTHOR    "many"
#define VERSION    "1.0"

public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
  register_event("DeathMsg", "ev_DeathMsg", "a");
}

public ev_DeathMsg()
{
  static players[32], CT_num, T_num
  get_players(players, CT_num, "ae", "CT")
  get_players(players, T_num, "ae", "T")

  if(CT_num - T_num == 2)
  {
   new name_CT[32]
   new rand_CT = random(CT_num)
   get_user_name(players[rand_CT], name_CT, 31)
   cs_set_user_team(players[rand_CT], 1)
   client_print(0, print_chat, "[HNS Team Balance] %s have been transfered to Terrorist", name_CT)
   client_print(players[rand_CT], print_chat, "[HNS Team Balance] You have been transfered to Terrorist")
     }
  else if(T_num - CT_num == 2)
  {
   new name_T[32]
   new rand_T = random(T_num)
   cs_set_user_team(players[rand_T], 2)
   get_user_name(players[rand_T], name_T, 31)
   client_print(0, print_chat, "[HNS Team Balance] %s have been transfered to Terrorist", name_T)
   client_print(players[rand_T], print_chat, "[HNS Team Balance] You have been transfered to Counter-Terrorist")
  }
}
 
PomanoBДата: Понедельник, 13.10.2008, 20:03:26 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Во-первых событие DeathMsg вызывается для смерти каждого игрока, логичнее было бы использовать событие начала раунда
Во-вторых тебе надо использовать вычитание по модулю 2, т.к может быть 6 терроров и 2 контра


http://romanov4400.mybrute.com

Сообщение отредактировал PomanoB - Понедельник, 13.10.2008, 20:08:30
 
manyДата: Понедельник, 13.10.2008, 21:42:44 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 49
Репутация: 0
Статус: Не в сети
DeathMsg - глобальное событие и использую его я потому что у меня DM и начало раунда бывает только в начале карте тк раунд незаканчиваеться.
Плагин работает, но криво он постоянно пытаеться всех КТ перенести за Т
 
PomanoBДата: Понедельник, 13.10.2008, 21:54:42 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Тогда по смерти игрока смотри если игроков в команде умершего больше чем в противоположной перекидывай его

http://romanov4400.mybrute.com
 
manyДата: Понедельник, 13.10.2008, 22:13:49 | Сообщение # 5
Лейтенант
Группа: Пользователи
Сообщений: 49
Репутация: 0
Статус: Не в сети
непонял, можешь написать пример как

Добавлено (2008-10-13, 10:13 Pm)
---------------------------------------------
у меня щас вот так

Code

include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN    "HNS Team Balance"
#define AUTHOR    "many"
#define VERSION    "1.0"

public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
  register_event("DeathMsg", "ev_DeathMsg", "a");
}

public ev_DeathMsg()
{
  static players[32], CT_num, T_num
  get_players(players, CT_num, "ae", "CT")
  get_players(players, T_num, "ae", "T")

  if(CT_num - T_num >= 2)
  {
   new name_CT[32]
   new rand_CT = random(CT_num)
   get_user_name(players[rand_CT], name_CT, 31)
   client_print(0, print_chat, "[HNS Team Balance] %s have been transfered to Terrorist", name_CT)
   client_print(players[rand_CT], print_chat, "[HNS Team Balance] You have been transfered to Terrorist")
   cs_set_user_team(players[rand_CT], 1)
   return PLUGIN_CONTINUE
     }
  else if(T_num - CT_num >= 2)
  {
   new name_T[32]
   new rand_T = random(T_num)
   get_user_name(players[rand_T], name_T, 31)
   client_print(0, print_chat, "[HNS Team Balance] %s have been transfered to Terrorist", name_T)
   client_print(players[rand_T], print_chat, "[HNS Team Balance] You have been transfered to Counter-Terrorist")
   cs_set_user_team(players[rand_T], 2)
   return PLUGIN_CONTINUE
  }
  return PLUGIN_CONTINUE
}
 
PomanoBДата: Понедельник, 13.10.2008, 22:45:48 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Вот держи
Это только пример надо конечно серьёзно доработать)

И в функции в get_players команды игроков обозначаются "CT" и "TERRORIST" :)

Прикрепления: team.zip (0.6 Kb)


http://romanov4400.mybrute.com

Сообщение отредактировал PomanoB - Вторник, 14.10.2008, 14:12:43
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026