AMX MOD X
Среда, 11.12.2024, 12:42:31



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
return
ExtasyДата: Вторник, 29.12.2009, 15:56:45 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
В большинстве исходников мне доводилось наблюдать, в конце развилки, функции и прочего, return (PLUGIN_HANDLED или PLUGIN_CONTINUE). Вот у меня возник вопрос. Для чего это нужно, и что вообще обозначает? Можно ли обойтись без этого, а в каких случаях это необходимо? Можно ли return'ом вернуть что-нибудь другое?
p.s. Может вопрос и покажется для многих глупым, но я в недоумении..
 
FreeKILLДата: Вторник, 29.12.2009, 16:26:24 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
как я понимаю(может я и неправ) return PLUGIN_HUNDLED это конец функции, тоесть после выполнения всего что стоит перед return PLUGIN_HUNDLED функция закрывается и заканчивается.
return PLUGIN_CONTINUE это значит полностью отключить плагин к примеру :
if (!get_pcvar_num(g_Status) || !is_user_connected(Client))
return PLUGIN_CONTINUE;

это значит если квар не включен или игрок не подконектился то плагин не включается. ты спросиш тогда почему CONTINUE? это же переводится как "продолжить". дословно я находил перевод
return PLUGIN_CONTINUE это значит продолжать плагин с обычными настройками(тоесть не включая в настройки твой плагин)

 
PomanoBДата: Вторник, 29.12.2009, 16:34:39 | Сообщение # 3
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
PLUGIN_CONTINUE - Плагин пропускает операцию. Она продолжается дальше.
PLUGIN_HANDLED - Плагин останавливает операцию (следующие плагины в plugin.ini не будут вызваны).
PLUGIN_HANDLED_MAIN - Остановить операцию, но следующие плагины в plugin.ini будут вызваны


http://romanov4400.mybrute.com
 
ExtasyДата: Вторник, 29.12.2009, 21:59:36 | Сообщение # 4
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
Quote (PomanoB)
PLUGIN_HANDLED - Плагин останавливает операцию (следующие плагины в plugin.ini не будут вызваны).

хм, а если, к примеру, взять плагин amx_buyc4
Code

public client_connect(id){
   g_hasC4[id] = false
   return PLUGIN_HANDLED
}

не уж-то, если выставить PLUGIN_HANDLED_MAIN, то после выполнения этого кода, будут еще вызваны другие плагины из plugin.ini ?
И зачем нужен PLUGIN_CONTINUE. Если просто для продолжения кода, то и без него работает, вроде как..


Сообщение отредактировал Extasy - Вторник, 29.12.2009, 21:59:55
 
PomanoBДата: Вторник, 29.12.2009, 23:25:24 | Сообщение # 5
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Положим плагин1 регистрирует событие
register_message(get_usermsgid("SayText"), "func1")
плагин2 тоже регистрирует событие
register_message(get_usermsgid("SayText"), "func2")

func1(msgid, dest, id)
{
Если
return PLUGIN_HANDLED // func2 не вызовется, тк плагин1 заблокировал, в чате тоже ничего не будет
return PLUGIN_HANDLED_MAIN // / func2 вызовется, но в чате ничего не будет
return PLUGIN_CONTINUE // func2 вызовется, в чате всё будет
}


http://romanov4400.mybrute.com
 
ExtasyДата: Среда, 30.12.2009, 00:06:39 | Сообщение # 6
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
Теперь стало яснее. Спасибо
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024