slogic | Дата: Пятница, 22.12.2006, 15:51:15 | Сообщение # 1 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| В первую очередь предполагается, что вы знаете C++. Иначе вам тут делать нечего, хотя бывают исключения. Скоро будет расписан подробно каждый файл. Рекомендуемый мною порядок, в котором следует изучать HLSDK: multiplayer\engine\edict.h Описывает структуру edict_s, которая в свою очередь используется для любого объекта в игре. Объекты связаны в виде дерева. Т.о. когда мы говорим об объекте - подразумевается в первую очередь объект структуры edict_s. С точки зрения программиста AMXX там интересны лишь два свойства: pvPrivateData и v. Первое содержит данные, которые используется соответсвующей DLL (т.е. модом: HL, CS и пр.). Например, есть такой класс, как CBasePlayer. Получается, что для объекта Игрок экземпляр этого класса и хранится в pvPrivateData. Атрибут v соответсвует entvars_t из файла progdefs.h, и описывает свойства объекта, которыми оперирует движок. Т.о. атрибут pvPrivateData актуален для текущего мода, а v - для любого мода, построенного на движке HL. multiplayer\engine\progdefs.h Здесь описываются структуры globalvars_t и entvars_t. globalvars_t описывает структуру, экземляр которой (один!) виден (грубо) во всех файлах HLSDK. Например, функция amx/x get_maxplayers() получает максимально возможное кол-во игроков на сервере (задается в игре переменной maxplayers). Реализация этой функции проста: возвращается значение gpGlobals->maxClients, где gpGlobals и есть единственный глобальный экземпляр данной структры. Про назначение атрибутов структуры entvars_t можно узнать здесь, а также из жиденьких комментариев в самом файле. multiplayer\common\const.h Здесь описываются константы, которые используются при инициализации свойств entvars_t структуры, сообщений а также подробный синтаксис сообщений, генерирующих на клиентах временные объекты (эффекты, взрывы, анимации и прочее) и т.д. Короче много полезного, т.к. для некоторых констант присутствуют комментарии в коде. multiplayer\engine\eiface.h Содержит струкутру enginefuncs_t с указателями на функции движка. Проще говоря - это интерфейс (API) движка HL, который предоставлен программисту. Программисты amx/x, которые планируют использовать модуль fakemeta, будут постоянно использовать эти функции или их "обертки". Также в этом файле содержатся структуры DLL_FUNCTIONS и NEW_DLL_FUNCTIONS с указателями на функции из mod-dll, т.е. это те функции, которые предоставляет тот или иной мод, которые, кстати, используются не только программистом, но и самим движком. Файл содержит и другие более или менее важные структуры. multiplayer\dlls\enginecallback.h (fakemeta_const.inc) Содержит "обертки" для использования функций движка, описанных в файле eiface.h. Именно эти имена используются в HLSDK, т.к. их удобнее читать и использовать. В этом файле не увидишь интерфейсов функций движка, т.к. они описаны в файле eiface.h. multiplayer\dlls\util.h multiplayer\dlls\util.cpp multiplayer\dlls\cbase.cpp multiplayer\dlls\player.cpp Далее - на свое усмотрение.
Сообщение отредактировал slogic - Вторник, 23.01.2007, 15:10:57 |
|
| |
VEN | Дата: Пятница, 29.12.2006, 17:44:06 | Сообщение # 2 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote | В первую очередь предполагается, что вы знаете C++. Иначе вам тут делать нечего | Я не знаю C# абсолютно, однако, портировал практически полностью engine и fun, а также несколько HLSDK функций в FM. HLSDK читаю вполне сносно.
Сообщение отредактировал VEN - Пятница, 29.12.2006, 17:45:28 |
|
| |
slogic | Дата: Пятница, 29.12.2006, 17:54:40 | Сообщение # 3 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| C# и C++ - это разные вещи. C# работает на фрэймворке.
|
|
| |
VEN | Дата: Пятница, 29.12.2006, 18:00:39 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| :O поправка: "я не знаю C/C++/C#"
|
|
| |
DaTa | Дата: Вторник, 17.06.2008, 13:53:19 | Сообщение # 5 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| сборник туторов по hlsdk © http://hlfx.ru/forum....st31539 Добавлено (2008-06-16, 6:31 Pm) --------------------------------------------- и вообще очень полезный форум по hlsdk http://hlfx.ru/forum/forumdisplay.php?forumid=8 Добавлено (2008-06-17, 1:53 Pm) --------------------------------------------- тут можно узнать про структуру директорий hlsdk (en) http://botman.planethalflife.gamespy.com/sdk.shtml
|
|
| |