|
Форум Counter-Strike 1.6 Сервер Counter-Strike 1.6 Помощь по скриптингу Кто объяснит про форварды? (Форварды) |
Кто объяснит про форварды? |
Дата: Суббота, 21.07.2018, 20:40 | Сообщение # 1
Любитель
Offline
![]()
Вот все еще не доходит, как их делать. К примеру делать событие сохранения опыта, то есть форвард, эта функция вызывается когда сохраняется опыт, ну и т.д. и т.п...
Я конечно знаю register_forward, но тоже не разбираюсь. К примеру Код public save_exp(id){ } И что дальше? Про внутренности все понятно. |
Дата: Суббота, 21.07.2018, 21:38 | Сообщение # 2
Скриптер
Дух ( Новичок )
Offline
![]()
Форвард и публичная функция - это разные вещи.
Цитата Forward Форварды предназначены для отлова событий, генерируемых где-то в другом месте (модуле или плагине). Если функция отмечена как форвард, её нельзя вызвать напрямую, но она показывает, какое имя должны носить функция, которая хочет отловить событие, и какие параметры она получит. Аналогично нативам, форварды помещаются в инклады и используются авторами модулей и плагинов-модов. Public К пабликам (публичным функциям) в вашем плагине может получить доступ другой плагин или модуль. Паблики используются для отлова событий - в них непосредственно располагается код, отвечающий за реацкцию на событие. Если паблик возвращает значение, то это значение используется для изменения обычного хода события. Например, событие можно отменить или заместить. Публичные функции так же можно вызвать в коде. К примеру, есть две функции - LoadThis и SaveThis. У обоих 1 аргумент - индекс игрока. К примеру, нам надо при входе игрока загружать что-то, а при выходе игрока - сохранять что-либо. Вызываем client_putinserver, в теле пишем: LoadThis(iPlayer); ( iPlayer - индекс игрока, у многих он id ). Вызываем client_disconnect, в теле пишем: SaveThis(iPlayer); Таким образом, при входе/выходе игрока будут вызываться определенные функции, в ходе чего, код который находится в теле этих функций - будет выполнятся. Вроде бы всё должно быть понятно.
Сообщение отредактировал Mort3m - Суббота, 21.07.2018, 21:41
|
Дата: Суббота, 21.07.2018, 23:27 | Сообщение # 3
Любитель
Offline
![]()
Наверное я неправильно объяснил, про это я знаю, а вот то, что улавливает само исполнение publica к примеру в инклюдах они не нативы а forward,я не знаю, во многих плагинах есть такое, например AES
Код /* Called on opening anew menu. return PLUGI_HANDLED if you want block menu. */ forward aes_on_anew_command(id) Улавливает что игрок открыл мен бонусов. Мне про это нужно, как это сделать? |
Дата: Воскресенье, 22.07.2018, 00:37 | Сообщение # 4
Скриптер
Дух ( Новичок )
Offline
![]()
pro1000kill, Эта штука называется "Мультифорвард". В зп есть яркий пример, как можно его создать. ( CreateMultiForward )
|
| |||
| |||