AMX MOD X
Четверг, 28.03.2024, 23:41:15



Приветствую Вас Гость | RSS
[ Главная ] [ [FAQ] С чего лучше начать изучать HLSDK? - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
AMX Mod X Форум » Half-Life SDK » Вопросы по Half-Life SDK » [FAQ] С чего лучше начать изучать HLSDK?
[FAQ] С чего лучше начать изучать HLSDK?
slogicДата: Пятница, 22.12.2006, 15:51:15 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
В первую очередь предполагается, что вы знаете 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
Репутация: 45
Статус: Не в сети
Quote
В первую очередь предполагается, что вы знаете C++. Иначе вам тут делать нечего
Я не знаю C# абсолютно, однако, портировал практически полностью engine и fun, а также несколько HLSDK функций в FM. HLSDK читаю вполне сносно.


Сообщение отредактировал VEN - Пятница, 29.12.2006, 17:45:28
 
slogicДата: Пятница, 29.12.2006, 17:54:40 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
C# и C++ - это разные вещи. C# работает на фрэймворке.
 
VENДата: Пятница, 29.12.2006, 18:00:39 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
:O поправка: "я не знаю C/C++/C#"
 
DaTaДата: Вторник, 17.06.2008, 13:53:19 | Сообщение # 5
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
сборник туторов по 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

Прикрепления: hl-sdkt_1.0.rar (593.2 Kb)
 
AMX Mod X Форум » Half-Life SDK » Вопросы по Half-Life SDK » [FAQ] С чего лучше начать изучать HLSDK?
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024