BMOD — Extended Physics Module (Модуль расширяющий физику игры)

BMOD — Extended Physics Module (Модуль расширяющий физику игры)

BMOD — Extended Physics Module (Модуль расширяющий физику игры)
Что такое BMOD?
BMOD позволяет amxx программистам использовать альтернативный физический движок (Bullet). Немного видео для наглядности:
https://youtube.com/watch?v=Nn26KkoIGNY
https://youtube.com/watch?v=CUmNRsVro1U
https://youtube.com/watch?v=vUCIKGlyDBQ
https://youtube.com/watch?v=fAJlHJehlI8
Как это работает?
Во время загрузки игровой карты движок Bullet создает свою. У нас получается два «мира» — один со старой HL1 физикой и один с Bullet Physics. Это позволяет добавить объект в мир Bullet и синхронизировать движения с любой энтити в мире HL1.

Какие функции имеет BMOD
/* Типы объектов bmod: */ enum {    BMOD_sphere = 0,    /* сфера: x - радиус */    BMOD_box,    /* куб: x, y и z - стороны */    BMOD_cylinder,    /* цилиндр: x - радиус; z - ось, вдоль которой расположен цилиндр */    BMOD_capsule,    /* капсула: x - радиус, y - расстояние между полусфер; z - ось, вдоль которой расположена капсула */    BMOD_cone    /* конус: x - радиус, y - высота; z - ось, вдоль которой расположен конус */ }; 
/* Создает bmod объект с параметрами: энтити, тип, масса и размеры (x,y,z). Впоследствии bmod объект прикрепляется к данной энтити. */ native bmod_object_add(ent,type,Float:mass,Float:size[3]) 
/* Удаляет bmod объект, прикрепленный к энтити. */ native bmod_object_remove(ent) 
/* Возвращает 1, если к энтити прикреплен какой-нибудь bmod объект. */ native bmod_object_check(ent) 
enum BMOD_FL {    BMOD_FL_afactor,    //только устанавливает угловой фактор    BMOD_FL_friction,    //устанавливает/получает трение    BMOD_FL_restitution    //устанавливает/получает восстановление }; 
enum BMOD_VEC {    BMOD_VEC_afactor,    //устанавливает/получает угловой фактор    BMOD_VEC_avelocity,    //устанавливает/получает угловое ускорение    BMOD_VEC_afriction,    //устанавливает/получает анизотропное трение    BMOD_VEC_gravity,    //устанавливает/получает гравитацию    BMOD_VEC_factor,    //устанавливает/получает линейный фактор    BMOD_VEC_velocity,    //устанавливает/получает линейное ускорение    BMOD_VEC_force,    //применяет центральная силу / получает полную силу    BMOD_VEC_torque    //применяет момент силы / получает полный момент силы }; 
/* Устанавливает параметры объекту. */ native bmod_object_set_float(ent,BMOD_FL:key,Float:float) native bmod_object_set_vector(ent,BMOD_VEC:key,Float:vector[3]) 
/* Применяет объект в силу относительного положения. */ native bmod_object_apply_force_at(ent,Float:force[3],Float:pos[3]) 
/* Получает параметры объекта. */ native Float:bmod_object_get_float(ent,BMOD_FL:key) native bmod_object_get_vector(ent,BMOD_VEC:key,Float:vector[3]) 
/* Активирут callback(forward) для энтити. */ native bmod_object_set_callback(ent,bool) 
/* Устанавливает/применяет мировые параметры. */ native bmod_world_set_float(BMOD_FL:key,Float:float) native Float:bmod_world_get_float(BMOD_FL:key) 
/* Стоит трейс до энтити, возвращая его индекс или ноль, если ее нет. Также возвращает точку касания и нормаль. */ native bmod_traceline(Float:start[3],Float:end[3],Float:point[3],Float:normal[3]) 
/* Форвард, вызывающийся при столкновении объектов. */ forward bmod_forward_contact(ent1,ent2,Float:distance)
Пример?
Как создать шар над головой игрока:
public plugin_init() {    register_concmd("bmod_test","_bmod_test") }
 public _bmod_test(id){    //создаем новую энтити и устанавливаем модель к ней    new entity = create_entity("func_wall")    entity_set_model(entity,"models/fyzsph.mdl")     //устанавливаем координаты энтити над головой игрока    new Float:origin[3]    entity_get_vector(id,EV_VEC_origin,origin)    origin[2]+=128    entity_set_origin(entity,origin)     //устанавливаем movetype и nextthink для плавного движения энтити    entity_set_float(entity,EV_FL_nextthink,86400.0)    entity_set_int(entity,EV_INT_movetype,8)     //прикрепляем bmod объект к созданной энтити    new Float:size[3] = {24.0,24.0,24.0}    bmod_object_add(entity,BMOD_sphere,10.0,size)     //устанавливаем трение и восстановление    bmod_object_set_float(entity,BMOD_FL_friction,2.0)    bmod_object_set_float(entity,BMOD_FL_restitution,0.88)     //устанавливаем мировое трение и мировое восстановление    bmod_world_set_float(BMOD_FL_friction,1.0)    bmod_world_set_float(BMOD_FL_restitution,1.0) }
 public plugin_precache(){    precache_model("models/fyzsph.mdl") }
Последние файлы/исходники
Скачать последние файлы GitHub (windowslinux).
Скачать последние amxx исходники Github.
Просмотреть последние исходники GitHub.

У вас нет доступа к скачиванию файлов с нашего сервера



Скачать с зеркала
Привет, наша адмнистрация публикует только пушечный контент, поставь лайк под постом ниже и напишите самый топовый комментарий, мы готовим материал только для тебя, любимый Гость.

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Основа для вашей сборки
ReHLDS 3.14.0.857

ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.

ReGameDLL_CS 5.28.0.756

ReGameDLL_CS, Reverse-engineered mod CS - Улучшенная замена серверной библиотеки CS 1.6, расширяющая возможности игрового процесса.

AmxModx 5.2.9.4

AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn

ReAPI 5.26.0.338

Это AMX Mod X модуль, который умеет работать с API ReHLDS, ReGameDLL_CS, ReUnion и VTC. Это предоставляет разработчикам AMXX-плагинов больше возможностей для реализации своих целей.

Reunion 0.2.0.27

Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.

Revoice 0.1.0.34

Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.

Metamod-r 1.3.0.149

Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.

Ultimate Unprecacher 1.1

Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!

ReAuthCheck 0.1.6

ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!

NetBufExtender (NBEX) 1.0

NetBufExtender или NBEX - это метамод-плагин, который расширяет "интернет-буфер": буферы сервера и клиента(гарантия не 100%). Расширяет до 64 кб. Это значит, что у игроков уменьшается вероятность быть кикнутыми с ошибкой "Reliable channel overflowed".

UserInfoNetOptimizer (UINO) 1.0

UINO — metamod-плагин, который позволяет удалять ненужные поля из userinfo(setinfo) когда движок передаёт его другим игрокам на сервере. Данная мера уменьшает объём передаваемых данных и немного сокращает шанс быть кикнутым с "Reliable channel overflowed".

Информация

Добро пожаловать на CS-WZ.COM!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запись!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт