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

Компиляция 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
Администратор
 
Сообщения: 3747
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2171 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

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

Сообщение Rhyme » 30 мар 2011, 19:51

visual studio делает преобразование?? metamod
Аватара пользователя
Rhyme
 
Сообщения: 107
Зарегистрирован: 30 мар 2011, 17:57
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

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

Сообщение xakintosh » 28 июн 2011, 18:18

Hello i start to writing with .dll, let me explain what is wrong.

I have Visual C++ 2010 Express ... so then i download SDK (hldsk,metamod,amxmodx).
I start new project and set the properties of this project like this. Вы должны зарегистрироваться, чтобы видеть ссылки. , Вы должны зарегистрироваться, чтобы видеть ссылки..
I have setup winnt.h and winspool.h and i get not a single one error with compile.
I just make a simple hello world application made by you in this leasson but when i load it from metamod folder in my server every time i get Badf load.. :(

EDIT : I make my project with new project -> Win32 Console Aplication -> Next -> .dll Finish.
Аватара пользователя
xakintosh
 
Сообщения: 17
Зарегистрирован: 31 янв 2010, 17:03
Откуда: Bulgaria
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
DotA
BFBC2
SWTOR
TERA
BNS
Diablo II
Mafia II

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

Сообщение DJ_WEST » 28 июн 2011, 23:20

This article is not for writing plugins to Metamod. It's about AMXX compile.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3747
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2171 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

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

Сообщение TheQn » 02 июл 2011, 21:13

DJ_WEST, у меня вот такая проблема когда скомпилировал файл всё успешно прошло. чтоб ошибок не было я winres.h заменил на WinResrc.h. Когда закидываю .dll в папку addons\amxmodx\dlls\ включаю сервер пиши в консоле amxx list все плагины показывают
name - version - author - plugin - status
unknown unknown unknown adminhelp.amxx running.
В чём может быть проблема.
Всё по статье делал.
У меня MS Visual C++ 2008.
И когда захожу на сервер он сразу падает.
Больше не пишу *.amxx плагины только помогаю.
Аватара пользователя
TheQn
 
Сообщения: 33
Зарегистрирован: 09 май 2011, 17:10
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Другие языки программирования:
PHP
(X)HTML/HTML5
CSS
JavaScript
C++

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

Сообщение Sho0ter » 03 июл 2011, 14:35

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

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

Сообщение DJ_WEST » 09 июл 2011, 20:38

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

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

Сообщение TheQn » 11 июл 2011, 04:59

AMX Mod X Source-Code v1.8.1 Tarball с сайта Вы должны зарегистрироваться, чтобы видеть ссылки.

Вот это на сервере Вы должны зарегистрироваться, чтобы видеть ссылки.
Когда заходишь на сервер он сразу падает.
Больше не пишу *.amxx плагины только помогаю.
Аватара пользователя
TheQn
 
Сообщения: 33
Зарегистрирован: 09 май 2011, 17:10
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Другие языки программирования:
PHP
(X)HTML/HTML5
CSS
JavaScript
C++

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

Сообщение GNET_SPIRIT » 29 июл 2011, 19:02

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

../../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

компилю амкмодх...
Аватара пользователя
GNET_SPIRIT
 
Сообщения: 1
Зарегистрирован: 29 июл 2011, 18:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение DJ_WEST » 01 авг 2011, 14:43

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

След.

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

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

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