Компиляция плагина и все в этом духе

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Для успешной компиляции плагина, если вы профан. Следуйте инструкции!!!

1. Скачивайте плагин
2. Открываем архив, переходим в папку scripting и смотрим, что там находится
Варианты событий
I. В папке scripting был только файл "название_файла.sp", перекидываем его туда, где у вас компилятор и компилируем.
II. В папке scripting помимо "название_файла.sp", была еще папка include. Перекидываем все в место где у вас компилятор.

#include - это файл, который подключается к основному файлу в папке scripting. В include может хранится все, что угодно для корректной работы основного плагина: форварды, нативы и т.п.
III. В папке scripting помимо "название_файла.sp", была еще какая-то папка. Ее перекидываем туда где у вас компилятор, вместе с файлом. Это тоже своего рода инклуды для плагина.


Теперь разберемся с компиляцией плагина, самый простой способ компиляции плагина.
1. Качаем sm, под который вам нужно компилировать плагины.
2. Создаем папку с любым названием на рабочем столе (или еще где-то)
3. В архиве со скаченным sm, переходим по пути> addons>sourcemod>scripting
4. От туда перекидываем в нашу папку, папку include и еще два exe: compile.exe и spcomp.exe
В папке include находится стандартный пул инклудов для успешной компиляции плагинов
5. После когда вы проделали все, что я сказал выше. Можно перекидывать в данную папку файл, который нужно скомпилировать.
6. Для компиляции перетаскиваем файл "названием_файла.sp", на compile.exe.
После появится такое окно
1628400300974.png
Ву-а-ля, вы скомпилировали плагин!
 

DeathScore13

пирожок. пирожочек.
Сообщения
734
Реакции
403
хочу такой же гайд, но по декомпиляции
 

HolyHender

Прокуратура на связи
Сообщения
271
Реакции
394
@MrEvgen, я думаю, что автор хотел преподнести четкую, простую и понятную информацию, как компилировать, для новичков.
 
Последнее редактирование:

Deluks

Верховное DNO|
Сообщения
1,853
Реакции
812
Для успешной компиляции плагина, если вы профан. Следуйте инструкции!!!

1. Скачивайте плагин
2. Открываем архив, переходим в папку scripting и смотрим, что там находится
Варианты событий
I. В папке scripting был только файл "название_файла.sp", перекидываем его туда, где у вас компилятор и компилируем.
II. В папке scripting помимо "название_файла.sp", была еще папка include. Перекидываем все в место где у вас компилятор.

#include - это файл, который подключается к основному файлу в папке scripting. В include может хранится все, что угодно для корректной работы основного плагина: форварды, нативы и т.п.
III. В папке scripting помимо "название_файла.sp", была еще какая-то папка. Ее перекидываем туда где у вас компилятор, вместе с файлом. Это тоже своего рода инклуды для плагина.


Теперь разберемся с компиляцией плагина, самый простой способ компиляции плагина.
1. Качаем sm, под который вам нужно компилировать плагины.
2. Создаем папку с любым названием на рабочем столе (или еще где-то)
3. В архиве со скаченным sm, переходим по пути> addons>sourcemod>scripting
4. От туда перекидываем в нашу папку, папку include и еще два exe: compile.exe и spcomp.exe
В папке include находится стандартный пул инклудов для успешной компиляции плагинов
5. После когда вы проделали все, что я сказал выше. Можно перекидывать в данную папку файл, который нужно скомпилировать.
6. Для компиляции перетаскиваем файл "названием_файла.sp", на compile.exe.
После появится такое окно Ву-а-ля, вы скомпилировали плагин!

Если ты компилишь модуль, то в инклюдах должно быть и "ядро основного плагина" =). В противном случае ты получишь обыкновенное нихуа. =)

1628406956977.png
 

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Вообще эта вся информация уже есть, просто некоторые даже не пытаются искать и создают новые темы
[Урок] Основы декомиляции smx
Установка и компиляция плагинов
Даже я имея опыт, прочитав это тупил. А я написал, как это сделать по простому.
Сообщения автоматически склеены:

Если ты компилишь модуль, то в инклюдах должно быть и "ядро основного плагина" =). В противном случае ты получишь обыкновенное нихуа. =)

Посмотреть вложение 82379
Щас дополню!)
Сообщения автоматически склеены:

хочу такой же гайд, но по декомпиляции
Если когда-то такое будет ( а оно будет), станет для кого-то лучше, а кому-то сделает хуже
 

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,490
Для успешной компиляции плагина, если вы профан. Следуйте инструкции!!!
Думаю, от такой инструкции уровень знаний следующего ей не повысится. Скорее, ещё больше поспособствует деградации.
1. Скачать SourceMod для своей ОС (то есть если твоё устройство работает, например, под Windows, скачивать нужно именно для Windows):
2. Из скачанного архива тебе нужна лишь папка addons/sourcemod/scripting - всё остальное можно смело удалить.
3. Для самой компиляции тебе нужен файл с расширением .sp. Его нужно поместить в выше упомянутую папку scripting.
У плагина могут быть зависимости:​
  • Файлы с расширением .inc - это библиотеки с функциями, которые, возможно, необходимы для компиляции и работы плагина. Зависит от самого плагина.
    Сами функции могут быть как кастомными, так и созданы другими плагинами/расширениями/программами для работы плагинов с ними.
    .inc нужно поместить в scripting/include/
    В некоторых случаях у .inc могут быть свои зависимости и храниться в своих директориях, а не в корне - scripting/include/custom_directory/
    Тебе об этом не нужно беспокоиться, так как обычно такие файлы уже рассортированы разработчиками по нужным директориям.

  • Дополнительные файлы .sp/.cpp и пр., хранящиеся по пути scripting/custom_directory/
    Они нужны для компиляции плагина (если они у него есть), но тебе не нужно компилировать их вручную. Не трогай их.
    Тебе нужно компилировать только главный .sp, который сам заберёт в себя всё необходимое из .inc и .sp из других папок.
4. Непосредственно для компиляции тебе нужно перетащить файл .sp из scripting/ на файл:
  • compile.exe (.exe в примере с Windows)
    Это обычная компиляция. Если всё прошло успешно, ты увидишь окно вроде этого -
    1628413611138.png
    Готовый .smx (плагин, который уже можно использовать на сервере) появится в папке scripting/compiled/
  • spcomp.exe (.exe в примере с Windows)
    Это "быстрая" компиляция. Если всё прошло успешно (или нет), на этот раз окно просто откроется и сразу закроется, а готовый .smx появится прямо в папке scripting/ (рядом с spcomp.exe).
  • Советую компилировать плагины с помощью compile.exe - так у тебя будет возможность узнать об ошибках/предупреждениях компилятора, что поможет тебе выяснить, почему компиляция не удалась, или какие проблемы могут ждать тебя в потенциальном будущем.
  • Используй на серверах самые новые версии SourceMod и не забывай про обновления.
  • Старайся компилировать все плагины на той версии SourceMod, которая установлена на сервере - это придаст уверенность в том, что плагин подходит к твоей версии, и упростит диагностику потенциальных проблем.
 
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
3. Для самой компиляции тебе нужен файл с расширением .sp. Его нужно поместить в выше упомянутую папку scripting.
У плагина могут быть зависимости:​
  • Файлы с расширением .inc - это библиотеки с функциями, которые, возможно, необходимы для компиляции и работы плагина. Зависит от самого плагина.
    Сами функции могут быть как кастомными, так и созданы другими плагинами/расширениями/программами для работы плагинов с ними.
    .inc нужно поместить в scripting/include/
    В некоторых случаях .inc могут храниться в своих директориях, а не в корне - scripting/include/my_includes/
    Тебе об этом не нужно беспокоиться, так как обычно такие файлы уже рассортированы разработчиками по нужным директориям.

  • Дополнительные файлы .sp/.cpp, хранящиеся по пути scripting/my_plugin/
    Они нужны для компиляции плагина (если они у него есть), но тебе не нужно компилировать их вручную. Не трогай их.
    Тебе нужно компилировать только главный .sp, который сам заберёт в себя всё необходимое из .inc и .sp из других папок.
Вообще, дополнительные файлы могут иметь практически любое расширение.
Это же правило касается и доп. файлов для .inc

Обозначение my_plugin не уместно, т.к. директория может носить не интуитивное название.
В данном случае, проще заглянуть в исходники и посмотреть, что он подтягивает в себя.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #10
@Paranoiiik, @D1fox, лучше качать компилятор той же версии, что и см на сервере.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
@🟡differend🟢, зависит от того, насколько капитальные версия вносились в тот же компилятор и рантайм.
Например, в SM 1.11 был баг (даже не смотря на такие проблемы, я продолжу советовать ставить только его, 1.10 пора хоронить), который приводил к неудачной генерации кода для бинаря, что приводило к тому, что плагин мог на ровном месте упасть. Была эта проблема до билда 6478 включительно, и особенно остро проявлялась в SB и MA (символично), побороли в 6480. Вроде разница всего в версию, а поправили очень критический баг.

Для понимания, ошибка была именно в компиляторе плагинов. Не в самом SourceMod. Периодически их всё ещё находят. Потому конкретно в данном случае, юзер ничего не заметит, если соберёт плагин компилятором 6480 для 6478. Но бывают случаи, когда баг в JIT есть. А иногда баг порождается сразу неудачной версией компилятора и джита одновременно.
 

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Но если не брать в расчёт баги компилятора, то схема совместимости будет примерно такая:

КомпиляторSM на сервереРезультат
1.81.9ОК
1.81.10ОК
1.81.11ОК
1.91.10ОК
1.91.11ОК
1.101.11ОК
1.91.8ОК*
1.101.9FAIL
1.111.10OK*

* за исключением ситуаций, когда в плагине заюзана фича, отсутствующая в предыдущем поколении SM.

@D1fox, вот откровенно скажу, мне очень не понравилась инструкция, как то сложно, непонятно, лишние действия, нету ссылок.
Зачем хотя бы перекидывать сразу оба exe.
Да и обычно делают всё до наоборот: в папку компилятора кидают все недостающие инклуды, перетаскивают sp на spcomp и готово.
 

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Но если не брать в расчёт баги компилятора, то схема совместимости будет примерно такая:

КомпиляторSM на сервереРезультат
1.81.9ОК
1.81.10ОК
1.81.11ОК
1.91.10ОК
1.91.11ОК
1.101.11ОК
1.91.8ОК*
1.101.9FAIL
1.111.10OK*

* за исключением ситуаций, когда в плагине заюзана фича, отсутствующая в предыдущем поколении SM.

@D1fox, вот откровенно скажу, мне очень не понравилась инструкция, как то сложно, непонятно, лишние действия, нету ссылок.
Зачем хотя бы перекидывать сразу оба exe.
Да и обычно делают всё до наоборот: в папку компилятора кидают все недостающие инклуды, перетаскивают sp на spcomp и готово.
не знаю, что ты там мог не понять. Явно проще, чем это другие гайды
 
Сверху Снизу