[Модуль Amxx] Curl (Windows & Linux)

 Counter-Strike 1.6, Modules  Comments Off on [Модуль Amxx] Curl (Windows & Linux)
Jun 022019
 

Модуль является обёрткой над библиотекой libcurl. Поддерживает ssl и позволяет делать передачи в неблокирующем режиме.

Функции:
Все нативы выполняет ровно то что и их C аналоги, за исключением некоторых:

native void:curl_easy_perform(const CURL:handle, const callbackComplite[], const data[] = {}, const data_len = 0)

Функция начинает передачу, и по завершении передачи будет вызван callback callbackComplite.
Третьим параметром можно указать массив с т.н. юзердатой, он будет передан в callbackComplite, четвертый параметр размер массива.

Если data установлена, тогда callback должен иметь такую сигнатуру:

public compliteCallback(CURL:curl, CURLcode:code, data[])

Если не установлена, тогда тогда сигнатура должна быть такой:

public compliteCallback(CURL:curl, CURLcode:code)

Автор: Polarhigh
Скачать: GitHub releases
Исходники: https://github.com/Polarhigh/AmxxCurl
Примеры: https://github.com/Polarhigh/AmxxCurl/tree/master/amx_examples

Некоторые примечания и рекомендации под катом.
Continue reading »

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

 Counter-Strike 1.6, Modules, Guids  Comments Off on BMOD – Extended Physics Module (Модуль расширяющий физику игры)
Jul 302013
 

BMOD

Что такое 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.
Continue reading »

Модуль Orpheu (v2.5.1)

 Counter-Strike 1.6, Modules, Guids  Comments Off on Модуль Orpheu (v2.5.1)
May 302013
 

Автор: joaquimandrade

Модуль Orpheu дает скриптеру возможность использовать функции, которые было бы невозможно использовать без него (включая функции от других плагинов MetaMod).Модуль работает, как на Windows, так и на Linux.
Начиная с версии 2.1 ( 29 января 2010 г.), Orpheu также поддерживает прямой доступ к памяти.

Суть работы заключается в следующем:
Модуль использует преобразования между типами С++ и Pawn, и позволяет вызывать функции, указав ее адрес в памяти, а также используемые ею аргументы. Этот метод включает в себя общие принципы работы со структурами С++.

Например, предположим, что вы хотите использовать эту функцию:
void PM_Move( struct playermove_s *ppmove, qboolean server)

Она получает один аргумент типа “playermove_s” и другой типа “qboolean”. Значения эта функция не возвращает.

Пока типы, необходимые функции, используются в модуле, вы можете использовать ее. Если один из типов не используется, то Вы можете подключить его напрямую, и все равно продолжать работать с функцией, к примеру подключать ее, так как при подключении функции Вам не надо заботиться обо всех ее аргументах.
Continue reading »