Русское сообщество по скриптингу

Компиляция AMX Mod X

Статьи или фрагменты кода для новичков и уже опытных скриптеров по Metamod.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по Metamod.

Компиляция AMX Mod X

Сообщение DJ_WEST » 21 дек 2010, 17:54

В данной статье будет рассмотрена компиляция плагина для Metamod под названием AMX Mod X версии 1.8.2. Для успешной компиляции AMXX нам понадобятся следующие средства:
  1. Вы должны зарегистрироваться, чтобы видеть ссылки.

    hlsdk-2.3-p3.zip

  2. Вы должны зарегистрироваться, чтобы видеть ссылки.

    metamod-1.19-win.src.zip

  3. Вы должны зарегистрироваться, чтобы видеть ссылки.

После скачивания компонентов распакуйте их в директорию C:\AMX Mod X, например. Таким образом содержание данной папки должно быть таким:
C:\AMX Mod X\metamod-1.19 - директория с исходниками Metamod.
C:\AMX Mod X\hlsdk-2.3-p3 - директория с HL SDK.
C:\AMX Mod X\amxmodx-source - директория с исходниками AMXX (у вас папка может называться по другому, для удобства можно переименовать в указанное).

Прежде всего рассмотрим компиляцию библиотек под Windows. Под данной ОС компиляция проходит с помощью программного средства под названием Вы должны зарегистрироваться, чтобы видеть ссылки.. При написании данной статьи использовалась версия VS 2010 (но подойдет 2005 и 2008 версии). Запускаем файл проекта для Visual Studio - C:\AMX Mod X\amxmodx-source\amxmodx\msvc8\amxmodx_mm.vcproj. Если версия созданного проекта отличается от версии вашего VS, будет предложена конвертация запущенного проекта в формат подходящий для вашего VS:
[align=center]
vs_convert.jpg
[/align]

После успешной конвертации слева на панели можно будет увидеть файлы проекта, выбираем amxmodx_mm:
[align=center]
vs_browser.jpg
[/align]
Сверху на панели вместо JITDebug выбираем JITRelease.

Чтобы изменить настройки проекта, зайдите в "Проект - Свойства" (или Alt+F7). В "Свойства конфигурации - С\C++" находится опция "Дополнительные каталоги включаемых файлов", в ней прописаны пути к файлам, которые необходимо включить в проект при компиляции (include). Следовательно, здесь прописаны пути к Metamod и HLSDK исходникам. Конечно, вы можете изменить путь к файлам прямо в данных настройках, но лучше оставить, как есть и воспользоваться текущим вариантом через переменные среды.

Зайдите в "Панель управления - Система - Дополнительно - Переменные среды", откроется новое окно в под-окне "Системные переменные" нажмите кнопку "Создать", затем впишите имя переменной - METAMOD, значение переменной - C:\AMX Mod X\metamod-1.19\metamod. Точно также добавляем переменную HLSDK со значением C:\AMX Mod X\hlsdk-2.3-p3\multiplayer. Нажимаем "ОК", сохраняя изменения. Если у вас был запущен VS в данный момент, то для применения изменений необходимо его перезапустить.

Мы подготовили и настроили среду для компиляции проекта AMXX, теперь перейдем непосредственно к процессу компиляции, нажимаем F5 или зеленый треугольник на панели инструментов. После процесса компиляции, проверяем нет ли ошибок или предупреждений в логах (нижнее окно).
В VS 2010 идет дополнительно Microsoft SDK, в котором также есть константы с аналогичными именами из HLSDK, к примеру, данное предупреждение:
Код: Выделить всё
C:\AMX Mod X\hlsdk-2.3-p3\multiplayer\engine\eiface.h(416): warning C4005: ARRAYSIZE: изменение макроопределения
          c:\Program Files\Microsoft SDKs\Windows\v7.0A\include\winnt.h(1140): см. предыдущее определение "ARRAYSIZE"

Нажимаем два раза на строку ошибки с winnt.h и сразу переходим к проблемному месту в файле. Для устранения проблемы просто закомментируем строчку:
[pawn]//#define ARRAYSIZE(A)    RTL_NUMBER_OF_V2(A)        [/pawn]
Также может быть такое предупреждение:
Код: Выделить всё
C:\AMX Mod X\hlsdk-2.3-p3\multiplayer\dlls\enginecallback.h(62): warning C4005: SERVER_EXECUTE: изменение макроопределения
          c:\Program Files\Microsoft SDKs\Windows\v7.0A\include\winspool.h(3137): см. предыдущее определение "SERVER_EXECUTE"

Также закомментируем код в файле winspool.h:
[pawn]/*
#define SERVER_EXECUTE       (STANDARD_RIGHTS_EXECUTE       |\
                              SERVER_ACCESS_ENUMERATE)
*/
 [/pawn]
Перезапускаем компиляцию через Ctrl+Alt+F7. Теперь компиляция должна пройти без ошибок и предупреждений:
Код: Выделить всё
Построение успешно завершено.

Затраченное время: 00:00:50.16
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========

Библиотеку amxmodx_mm.dll теперь можно найти в директории C:\AMX Mod X\amxmodx-source\amxmodx\msvc8\JITRelease.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3649
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2176 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Компиляция AMX Mod X

Сообщение pRoxxx » 19 авг 2011, 02:44

GNET_SPIRIT писал(а):Ребята, полезная статейка, но вот как это сделать по Линуксом, я по логике все сделал так же только пути и папки другие оно все видит, но вот не компилит и все,

../../hlsdk/multiplayer/dlls/cbase.h:503: предупреждение: ‘class CBaseToggle’ has virtual functions but non-virtual destructor
../../hlsdk/multiplayer/dlls/basemonster.h:19: предупреждение: ‘class CBaseMonster’ has virtual functions but non-virtual destructor
../../hlsdk/multiplayer/dlls/cbase.h:676: предупреждение: ‘class CBaseButton’ has virtual functions but non-virtual destructor
../../hlsdk/multiplayer/dlls/cbase.h:792: предупреждение: ‘class CWorld’ has virtual functions but non-virtual destructor
../../hlsdk/multiplayer/dlls/player.h:295: ошибка: extra qualification ‘CBasePlayer::’ on member ‘TabulateAmmo’
../../hlsdk/multiplayer/dlls/player.h:89: предупреждение: ‘class CBasePlayer’ has virtual functions but non-virtual destructor
gmake[1]: *** [debug.linux/dllapi.o] Ошибка 1
gmake[1]: Leaving directory `/tmp/compile/metamod/trace_plugin'
gmake: *** [trace_plugin] Ошибка 2

компилю амкмодх...

Не уверен, но попробуй в CBaseEntity добавить виртуланьый деструктор,
[pawn]
  1.  

  2. virtual ~CBaseEntity();

  3.  
[/pawn]
/watch?v=tSZxznUiJ24
Аватара пользователя
pRoxxx
 
Сообщения: 137
Зарегистрирован: 22 сен 2010, 12:21
Благодарил (а): 1 раз.
Поблагодарили: 21 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Компиляция AMX Mod X

Сообщение hitmany » 20 окт 2011, 19:08

DJ_WEST писал(а):Как сделать сошку расскажу попозже. Я точно не помню, там были проблемы. Надо садиться и вспоминать.

удалось?
компилил оригинал с последней версией amx 1.8.1,hlsdk и metamoda не получается,пробовал разные версии
компилил с помощью gcc
в основном ошибки типа "was not declared in this scope"
Аватара пользователя
hitmany
 
Сообщения: 6
Зарегистрирован: 12 дек 2009, 17:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Half-Life

Re: Компиляция AMX Mod X

Сообщение PRoSToTeM@ » 27 окт 2011, 00:06

Не качай .zip.

Добавлено спустя 58 секунд:
Я недавно компилил свой плагин на линуксе, проблемы были только с stricmp...
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2505
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1120 раз.

Re: Компиляция AMX Mod X

Сообщение Sho0ter » 03 ноя 2011, 15:31

hitmany писал(а):
DJ_WEST писал(а):Как сделать сошку расскажу попозже. Я точно не помню, там были проблемы. Надо садиться и вспоминать.

удалось?
компилил оригинал с последней версией amx 1.8.1,hlsdk и metamoda не получается,пробовал разные версии
компилил с помощью gcc
в основном ошибки типа "was not declared in this scope"

Обычно такое вылазит, если не находит какой-то *.h файл. Проверь ещё раз путь к инклюдам.
Но у меня вылазит другой трабл :)
Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
Sho0ter
 
Сообщения: 586
Зарегистрирован: 31 мар 2010, 19:18
Откуда: г. Белая Церковь, Украина
Благодарил (а): 12 раз.
Поблагодарили: 306 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life 1

Re: Компиляция AMX Mod X

Сообщение DJ_WEST » 06 ноя 2011, 16:28

Под Mingw или Cygwin пробуйте.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3649
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2176 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Компиляция AMX Mod X

Сообщение Mego » 29 апр 2012, 00:05

Залейте плиз исходники AMXX MOD X 1.8.2 . С allienmods не могу скачать
Аватара пользователя
Mego
 
Сообщения: 1
Зарегистрирован: 28 апр 2012, 13:20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Компиляция AMX Mod X

Сообщение vladimir1990 » 16 май 2012, 17:33

Код: Выделить всё
1>c:\documents and settings\администратор\рабочий стол\amx mod x\amxmodx-source\amxmodx\amxmodx.h(43): fatal error C1083: Cannot open include file: 'meta_api.h': No such file or directory


Библиотеку не нашел.

Код: Выделить всё
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Аватара пользователя
vladimir1990
 
Сообщения: 3
Зарегистрирован: 16 май 2012, 15:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Компиляция AMX Mod X

Сообщение vladimir1990 » 16 май 2012, 17:51

Вероятнее всего след. ошибка будет аналогична этой только с extdll.h.
Аватара пользователя
vladimir1990
 
Сообщения: 3
Зарегистрирован: 16 май 2012, 15:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Компиляция AMX Mod X

Сообщение 6a6kin » 16 май 2012, 19:01

Пути к заголовочным файлам metamod-sdk и hlsdk прописаны?
На заказ не пишу.
Аватара пользователя
6a6kin
Скриптер
 
Сообщения: 330
Зарегистрирован: 09 мар 2010, 16:40
Благодарил (а): 37 раз.
Поблагодарили: 271 раз.

Re: Компиляция AMX Mod X

Сообщение vladimir1990 » 16 май 2012, 19:28

6a6kin писал(а):Пути к заголовочным файлам metamod-sdk и hlsdk прописаны?


Да
Аватара пользователя
vladimir1990
 
Сообщения: 3
Зарегистрирован: 16 май 2012, 15:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1