AMX MOD X
Суббота, 04.05.2024, 13:15:42



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как словить событие, начала игры на новой мапе (...)
Как словить событие, начала игры на новой мапе
dArkДата: Вторник, 08.05.2007, 10:24:59 | Сообщение # 1
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Репутация: 1
Статус: Не в сети
В общем, нужно сделать, чтобы после смены мапы, + 10с. делались 3 рестарта, в общем то проблем нету, но нужно как то "словить" событие начала игры на новой мапе, подскажите плз. + Как с точки зрения "профессионального" кода, лучше всего реализовать рестарты?
 
VENДата: Вторник, 08.05.2007, 11:14:06 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
plugin_init() вызывается сразу после того, как карта "готова". Для задержки set_task(10.0, "здесь_имя_вызываемой_функции").
 
slogicДата: Вторник, 08.05.2007, 11:41:45 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Я бы для этого использовал plugin_cfg(), чтобы гарантировать, что все остальные плагины корректно инициализировались.

plugin_cfg() вызывается сразу после того, как были вызваны plugin_init() из всех зарегистрированных плагинов.

 
VENДата: Вторник, 08.05.2007, 12:21:09 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Все зависит от конкретного случая. Здесь, например, у sv_restart все равно идет задержка, даже если убрать set_task полностью, рестарт произойдет гораздо позже вызова plugin_cfg.

EDIT:

Просто я хотел сказать, что всегда нужно выбирать наиболее подходящий способ. В данном случае в дополнительном хуке необходимости нет.

А вообще, вот основные forward функции:

plugin_precache() - начало инициализации карты
plugin_init() - конец инициализации карты

Есть еще plugin_natives() - вызывается до plugin_precache(), используется в основном для регистрирования динамических native функций.

Сообщение отредактировал VEN - Вторник, 08.05.2007, 12:45:08
 
slogicДата: Вторник, 08.05.2007, 15:01:04 | Сообщение # 5
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Еще кое-что добавлю...

plugin_recache() вызывается перед вызовом самого первого вызова функции Spawn() мода.

plugin_init() и plugin_cfg() - после вызова функции ServerActivate() мода.

Более подробно последовательность вызовов можно изучить, посмотрев файл amxmodx/meta_api.cpp исходников amx/x.

 
dArkДата: Среда, 09.05.2007, 00:39:08 | Сообщение # 6
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Репутация: 1
Статус: Не в сети
Я думал plugin_init() вызывается один раз, при старте сервера, а оно оказывается вызывается при каждой смене карты?
 
VENДата: Среда, 09.05.2007, 00:50:10 | Сообщение # 7
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Да.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как словить событие, начала игры на новой мапе (...)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024