[AMXX Module] Reapi, AMXModX модуль, который умеет работать с API |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
[AMXX Module] Reapi, AMXModX модуль, который умеет работать с API |
CBETJIAHA
|
4.6.2016, 22:34
Сообщение
|
![]() |
Команда разработки:
• Asmodai • s1lent Ссылки: • github Описание: • Это AMX Mod X модуль, который умеет работать с API ReHLDS, ReGameDLL_CS, Reunion и VTC. Это предоставляет разработчикам AMXX-plugins больше возможностей для реализации своих целей. Требования: • ReHLDS, ReGameDLL_CS, Reunion или VTC Внимание: (Можно использовать не все перечисленные, но тогда будет доступна меньшая часть функционала) • MetaMod 1.20(p) или новее Установка: Cкрытый текст • Копируем из архива reapi_X_X_X.zip файл reapi_amxx_i386.so или reapi_amxx.dll (в зависимости от используемой ОС) в папку <gamedir>/addons/amxmodx/modules • Установка Reapi завершена Возможности форвардов: Cкрытый текст 1. Управление вызовом оригинальной функции и других хуков. Делается путем возврата из форварда одного из 4 значений: • HC_CONTINUE - продолжить вызывать хуки и оригинал • HC_OVERRIDE - продолжить вызывать оригинал, но возвращать свое значение • HC_SUPERCEDE - продолжить вызывать хуки, но прервать выполнение оригинала • (Если функция не void, перед блокировкой её вызова необходимо установить свое возвращаемое значение) • HC_BREAK - прервать выполнение хуков и оригинала 2. Установка возвращаемого значения. Выполняется нативом SetHookChainReturn с двумя аргументами, в первом требуется указать тип возвращаемого значения, а во втором значение. 3. Получение возвращаемого значения. Делается нативом GetHookChainReturn, может быть вызвано только в post. 4. Замена аргументов в функции. Делается нативом SetHookChainArg, в первом аргументе указывается номер последовательности аргументов всегда начинается с 1, во втором тип аргумента и в третьем - значение. Практические примеры: 1. SetHookChainReturn Cкрытый текст Для начала подключим include reapi. Код: #include <reapi> В plugin_init, зарегистрируем хук на DeadPlayerWeapons и повесим обработчик на CSGameRules_DeadPlayerWeapons Код: public plugin_init() Далее создадим тело обработчик-функции Код: public CSGameRules_DeadPlayerWeapons(const index) Следующим шагом для общего представления желательно заглянуть в исходник ReGameDLL_CS player.cpp#L1473, понимая что функция должна возвращать некое значение в котором не ожидает GR_PLR_DROP_GUN_NO и от этого будет зависеть далее выполняемый код, суть этой PackDeadPlayerItems функции заключается в том, что выбрасывает оружия на землю после смерти игрока, попробуем это предотвратить, для этого вернём значение GR_PLR_DROP_GUN_NO который не ожидает получить. Код: public CSGameRules_DeadPlayerWeapons(const index) Так как, в оригинальной функции, практически ничего нет, то нет надобности ее лишний раз вызывать, поэтому используем HC_SUPERCEDE Код: public CSGameRules_DeadPlayerWeapons(const index) Таким нехитрым способом, предотвратили любое появление оружия после смерти игрока, вполне себе сойдет для CSDM или GunGame модов. Код: #include <amxmodx> 2. GetHookChainReturn Cкрытый текст Поскольку CBasePlayer::TakeDamage возвращает значение 0/1, в виде • 0 - не получил урон • 1 - получил урон Если на сервере будет включен mp_friendlyfire 0, стреляя по союзникам CBasePlayer::TakeDamage все равно будет вызываться, но возвращать уже будет 0. В некоторых ситуациях, нужно точно знать получила ли жертва урон, на примере этого будет оповещение атакующему о том, сколько урона нанёс (аля Damager). GetHookChainReturn должен использоваться только в post, когда оригинальная функция уже была вызвана. Код: #include <amxmodx> Полезная информация: CBasePlayer::TakeDamage в post, аргумент flDamage уже приходит с расчетом брони и уменьшенным уроном по союзникам на 35% (иными словами в flDamage будет точный урон), чего не скажешь о такой возможности в Hamsandwich-е. 3. SetHookChainArg Cкрытый текст Используя хук ShowVGUIMenu, мы вполне cможем видоизменять/русифицировать меню выбора для всех, за исключением VGUI меню, так как функция ShowVGUIMenu, вызывается как для VGUI так и для old меню. Код: #include <amxmodx> ![]() Примечания: • ReAPI по большей части предназначен для Counter-Strike 1.6 / Condition Zero, но может использоваться и на других модах с меньшим доступным функционалом. • С каждой новой версией желательно перекомпилировать свои плагины использующие ReAPI с обновленными инклюдами. Источник: www.dedicated-server.ru Цитата Актуальная версия:
Reapi_publish_5.1.0.112_artifacts.zip ( 226,31 килобайт )
Кол-во скачиваний: 2632![]() --
Хайповая дива)))))))))))))))) |
Поблагодарили 5 раз
|
|
tyne
|
5.6.2016, 10:40
Сообщение
|
![]() |
Что только не придумают..но смысл?)
|
|
|
|
Unknown
|
5.6.2016, 11:42
Сообщение
|
|
|
![]() Аткажитесъ от плагенов бес исходника.
|
Поблагодарили 1 раз
|
|
CBETJIAHA
|
5.6.2016, 13:37
Сообщение
|
![]() |
![]() --
Хайповая дива)))))))))))))))) |
|
|
|
ssx
|
5.6.2016, 19:05
Сообщение
|
![]() |
![]() [Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018 [CS 1.6 DM AIM] 78.152.169.100:27017 [CS 1.6 DM FFA] 78.152.169.100:27015 |
|
|
|
CBETJIAHA
|
12.6.2016, 0:59
Сообщение
|
![]() |
Обновление:
• Текущая версия модуля 0.1.50 (Обновлена совместимость) ![]() --
Хайповая дива)))))))))))))))) |
|
|
|
iFrank
|
30.6.2016, 8:23
Сообщение
|
![]() |
В modules.ini прописывать Reapi не надо?
|
|
|
|
DexteR
|
14.12.2016, 10:41
Сообщение
|
![]() |
Также тут Обновите шапку темы уже есть версия
Прикрепленные файлы:
|
|
|
|
adva
|
14.12.2016, 12:50
Сообщение
|
![]() ![]() |
|
|
|
|
DexteR
|
14.12.2016, 15:31
Сообщение
|
![]() |
|
|
|
|
adva
|
14.12.2016, 15:43
Сообщение
|
![]() ![]() |
|
|
|
|
DexteR
|
11.1.2017, 21:27
Сообщение
|
![]() |
Обновление:
Текущая версия модуля 0.1.85
Прикрепленные файлы:
|
Поблагодарили 1 раз
|
|
niceserver
|
11.1.2017, 21:42
Сообщение
|
|
|
|
|
|
|
XyLiGaN
|
8.2.2017, 13:40
Сообщение
|
|
|
Цитата Обновил 1-й пост, добавив последнюю актуальную версию модуля ReAPI
|
|
|
|
fl0werD
|
13.3.2017, 22:16
Сообщение
|
|
|
А CBreakable будет добавлен?
|
|
|
|
Jack2345
|
18.5.2017, 7:44
Сообщение
|
|
|
без реапи вполне нормально и годно работает
![]() Success
|
|
|
|
Jack2345
|
18.5.2017, 9:09
Сообщение
|
|
|
![]() Success
|
|
|
|
deniska21233
|
18.5.2017, 9:39
Сообщение
|
|
|
|
|
|
|
![]() ![]() |