AMX MOD X
Суббота, 20.04.2024, 17:05:48



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Функция не хочет принимать оргумент
Функция не хочет принимать оргумент
SkinoДата: Четверг, 25.02.2010, 21:45:20 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Не в сети
Code
public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
   
  register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public event_round_start()
{
  new players[32], num
  get_players(players, num)
  client_print(0, print_chat, "New round begin")
  for (new i; i < num; i++)
  {
   client_print(i, print_chat, "loop")
   if(!g_canbuy[i])
   {
    Menu_W(i) <<<<<<<<<<<<<<<<<<<<<<<<<
   }
  }
}

public Menu_W(id)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
{
//
}

Вот собсна код... ошибка происходит в самом кс, причем фатальная и ссылается на какиеть строки

 
ZETAДата: Пятница, 26.02.2010, 09:40:24 | Сообщение # 2
Генерал-майор
Группа: Скриптеры
Сообщений: 369
Репутация: 21
Статус: Не в сети
players - массив с id где i - это всего лишь номер id в массиве, т.е чтобы получить id нужно писать players[i]

Code
public event_round_start()     
{     
      new players[32], num     
      get_players(players, num)     
      client_print(0, print_chat, "New round begin")     
      for (new i; i < num; i++)     
      {     
       client_print(players[i], print_chat, "loop")     
       if(!g_canbuy[players[i]])     
       {     
        Menu_W(players[i]) <<<<<<<<<<<<<<<<<<<<<<<<<     
       }     
      }     
}


Говори что думаешь и думай что говоришь...

Сообщение отредактировал ZETA - Пятница, 26.02.2010, 09:46:14
 
SkinoДата: Пятница, 26.02.2010, 15:16:17 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Не в сети
СПС помогло

Code
public event_round_start()
{
  set_pdata_int(1, 114, 2, 5)
  emessage_begin(MSG_ALL, get_user_msgid("TeamInfo"))
  ewrite_byte(1)
  ewrite_string("CT")
  emessage_end()
}

Ещё вопрос - почему вот это не работает? Типо в нельзя использовать такие действия в событии начало раунда?
Мб как-нибуть через посредника? ... нужны срочно стать на русском про все ньюансы скриптинга. =(

Сообщение отредактировал Skino - Пятница, 26.02.2010, 15:59:25
 
PomanoBДата: Пятница, 26.02.2010, 19:23:41 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Это не будет работать если игрока с id 1 нет на сервере

http://romanov4400.mybrute.com
 
SkinoДата: Пятница, 26.02.2010, 20:29:29 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Не в сети
Это я как бы знаю, вопрос в другом...
 
PomanoBДата: Пятница, 26.02.2010, 21:18:47 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Покажи как зарегистрирована функция event_round_start, и зарегистрирована она вообще?

http://romanov4400.mybrute.com
 
SkinoДата: Суббота, 27.02.2010, 16:34:19 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Не в сети
Code
public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
   
  register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public event_round_start()
{
  new players[32], num
  get_players(players, num)

  for (new i; i < num; i++)
  {
   //set_user_team(players[i], 2)
   if(!g_canbuy[players[i]])
   {
    Menu_W(players[i])
   }
   else
   {
                         set_user_team(players[i], 2)
   }
  }
}

stock set_user_team(id, team)
{
  set_pdata_int(id, 114, team, 5)
   
  emessage_begin(MSG_ALL, get_user_msgid("TeamInfo"))
  ewrite_byte(id)
  switch(team)
  {
   case 1:
   {
    ewrite_string("TERRORIST")
   }
   case 2:
   {
    ewrite_string("CT")
   }
  }
  emessage_end()
}

Добавлено (27.02.2010, 16:34:19)
---------------------------------------------
Всё я реализовал через функцию-посредник

Code
public event_round_start()
{
  set_task(0.1, "Round_Start")
}

Я удивлён что ты этого не знаеш О_О

 
PomanoBДата: Суббота, 27.02.2010, 22:07:28 | Сообщение # 8
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Чего этого о_О

http://romanov4400.mybrute.com
 
SkinoДата: Воскресенье, 28.02.2010, 01:37:09 | Сообщение # 9
Сержант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Не в сети
Что в событии event_round_start
неьзя вообще использовать команды такие как:
emessage_begin(MSG_ALL, get_user_msgid("TeamInfo"))
Кс просто неуспевает их обработать.
 
PomanoBДата: Воскресенье, 28.02.2010, 16:21:11 | Сообщение # 10
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Скорее всего кс сама рассылает сообщения TeamInfo в начале раунда
Вообще если что-то что не работает в форвардах, хотя должно работать, скорее всего поможет задержка


http://romanov4400.mybrute.com
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Функция не хочет принимать оргумент
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024