Просмотр полной версии : CMake | Готовый проект ASI-плагина | SAMP-API, RakHook, kthook
Всё хотел создать правильный плагин для себя, искал исходники, поиски не увенчались успехом, т.к. большинство проектов на том же гитхабе то мусор то не то.
Решил собрать себе проект сам, базу так сказать, ну и выдал её.
Проект использует CMake. С гитхаба подтягивает: SAMP-API, RakHook, kthook (+ktsignal). Имгуи нет, позже подтяну.
Первые варианты выглядели сносно, но без опыта я понаписал фигни.
Помогали:
@FYP (https://www.blast.hk/members/2/) - контроль качества, почти всё было переписано под его руководством, отполирован именно им.
@imring (https://www.blast.hk/members/106094/) - советы по проекту, ответы по RakHook
@kin4stat (https://www.blast.hk/members/161331/) - ответы по kthook
Спасибо всем неравнодушным.
Источники:
Гайд - Безопасная инициализация и работа с SAMP (https://www.blast.hk/threads/101433/)
SAMP-API (https://github.com/BlastHackNet/SAMP-API)
kthook [external_deps] (https://github.com/KiN4StAt/kthook/tree/external_deps)
RakHook (https://github.com/imring/RakHook)
Сам проект:
https://github.com/AnWuPP/AsiPlugin
Инструкция по сборке в README.
Если смогу, отвечу на вопросы.
Сделай пожалуйста гайд как использовать модули из c++20 в проектах cmake))
В инете очень мало инфы
Сделай пожалуйста гайд как использовать модули из c++20 в проектах cmake))
В инете очень мало инфы
Ну тут я хз, нет опыта. Разве модули уже полноценно завезли в 20й стандарт? Я читал что в c++23 минимум ждать годных решений.
Minavit - Reload
07.01.2023, 00:31
Ну тут я хз, нет опыта. Разве модули уже полноценно завезли в 20й стандарт? Я читал что в c++23 минимум ждать годных решений.
С++11
kin4stat
07.01.2023, 00:32
Сделай пожалуйста гайд как использовать модули из c++20 в проектах cmake))
В инете очень мало инфы
Никак
С++11
То что ты называешь модулями в С++11 это прекомпилированные заголовки. Настоящие модули будут позже, насколько я знаю.
У SR_team вроде чёт подобное тоже есть на гитлабе
У SR_team вроде чёт подобное тоже есть на гитлабе
тгк собейт аси вижу, архивный
тгк собейт аси вижу, архивный
Я от этом говорил: https://gitlab.com/prime-hack/samp/plugins/templates/AsiPlugin
Но там нет SAMP API, KtHook'ов. Там вроде только SRHook
Я от этом говорил: https://gitlab.com/prime-hack/samp/plugins/templates/AsiPlugin
Но там нет SAMP API, KtHook'ов. Там вроде только SRHook
не видел его, круто) хотя сложновато наверно для нубов
EclipsedFlow
07.01.2023, 01:36
Plugin SDK можно ещё накинуть в проект. Молодец!
Plugin SDK можно ещё накинуть в проект. Молодец!
Не сказал бы что нужно. У PSDK есть свой настройщик проекта.
EclipsedFlow
07.01.2023, 01:59
Не сказал бы что нужно. У PSDK есть свой настройщик проекта.
Есть, функционала в PSDK намного больше чем в SF например. Так что будет где разгуляться. А там решайте добавлять или нет.
AdCKuY_DpO4uLa
07.01.2023, 02:03
Не сказал бы что нужно. У PSDK есть свой настройщик проекта.
Без псдк - этот "шаблон" по начинке даже поменьше СФ будет
Без псдк - этот "шаблон" по начинке даже поменьше СФ будет
этот "шаблон" и не соревнуется ни с кем. Просто симейк, сампапи и ракхук. Дальше дело за кодером.
AdCKuY_DpO4uLa
07.01.2023, 14:44
этот "шаблон" и не соревнуется ни с кем. Просто симейк, сампапи и ракхук. Дальше дело за кодером.
Тогда вообще в этом смысла не вижу, если челик новокек в с++, то он вряд ли поставит себе git, чтобы загрузить один единственный проект, а затем ещё и CMake, после чего будет писать код в какой-нибудь студии/вс коде и компилировать через консоль. Если же челик с каким-то стажем, то он либо соберёт себе более менее обширное АПИ, либо возьмёи только то, что ему нужно, а не самп АПИ, ракхук и на этом всё. Имхо
Без псдк - этот "шаблон" по начинке даже поменьше СФ будет
так подтяни
GitHub - imring/plugin-sdk at cmake (https://github.com/imring/plugin-sdk/tree/cmake)
An SDK for developing ASI/CLEO plugins for GTA San Andreas, GTA Vice City and GTA III - imring/plugin-sdk
github.com
AdCKuY_DpO4uLa
07.01.2023, 14:52
так подтяни
GitHub - imring/plugin-sdk at cmake (https://github.com/imring/plugin-sdk/tree/cmake)
An SDK for developing ASI/CLEO plugins for GTA San Andreas, GTA Vice City and GTA III - imring/plugin-sdk
github.com
Спасибо за совет, так и сделаю https://github.com/DpO4uLa/SAMP_API...a0a107/SAMP_API_ONE_HEADER/SAMP/SAMP.hpp#L163 (https://github.com/DpO4uLa/SAMP_API/blob/0980facd56acfddf219b548a1763046158a0a107/SAMP_API_ONE_HEADER/SAMP/SAMP.hpp#L163)
Тогда вообще в этом смысла не вижу, если челик новокек в с++, то он вряд ли поставит себе git, чтобы загрузить один единственный проект, а затем ещё и CMake, после чего будет писать код в какой-нибудь студии/вс коде и компилировать через консоль. Если же челик с каким-то стажем, то он либо соберёт себе более менее обширное АПИ, либо возьмёи только то, что ему нужно, а не самп АПИ, ракхук и на этом всё. Имхо
Если мне нужно взаимодействовать только с сампом и игра меня вообще никак не колышет, зачем мне тянуть псдк?
EclipsedFlow
07.01.2023, 17:04
Если мне нужно взаимодействовать только с сампом и игра меня вообще никак не колышет, зачем мне тянуть псдк?
Тогда думаю круче было бы самому разработчику определять что подтягивать в проект
Тогда думаю круче было бы самому разработчику определять что подтягивать в проект
это в планах
не видел его
и не смотри там говнокод. Особенно в CMake ад ебаный. Напрмер свои костыли на основе гита вместо FetchContent
reussssya
13.03.2023, 00:22
не варик было сделать папку с инклюдами, вместо фетча в смейке
manukhov
15.05.2023, 01:35
CMakeLists.txt:
set(CMAKE_GENERATOR_PLATFORM Win32)
CMakeLists.txt:
set(CMAKE_GENERATOR_PLATFORM Win32)
зачем?
manukhov
15.05.2023, 15:26
зачем?
Ну как минимум чтобы флаг при сборке не прописывать, у тебя же шаблон проекта для сампа, там x86 должно по умолчанию стоять
Из-за чего может подобное происходить при сборке?
error C2039: "format": не является членом "std". [AsiPlugin\build\_deps\rakhook-build\src\rakhook.vcxproj]
Я пробовал стандарт по разному ставить ( в cmake файле ), на 20-ый, но при этом ничего не меняется
reussssya
01.05.2024, 18:47
Из-за чего может подобное происходить при сборке?
error C2039: "format": не является членом "std". [AsiPlugin\build\_deps\rakhook-build\src\rakhook.vcxproj]
Я пробовал стандарт по разному ставить ( в cmake файле ), на 20-ый, но при этом ничего не меняется
так ты же через вижуал студио собираешь. у него вроде бы другой сборщик, нет?
так ты же через вижуал студио собираешь. у него вроде бы другой сборщик, нет?
Я решил это, просто убрал формат после создания cmake - _deps, оттуда отредачил строку с форматом, и собрал, готово
Это реально работает?
Я так понял, этот метод принимает пакеты, которые приходят от сервера.
roman_vodola
27.08.2024, 23:08
Как я могу воспроизвести RPC? Я сохранил битстрим RPC, который я отправил на сервер в файл - 14, 225, 1, 0, 0, 12, 0, 99, 101, 102, 95, 114, 112, 99, 95, 97, 117, 116, 104, 31, 0, 131, 164, 100, 97, 116, 97, 169, 86, 101, 110, 121, 97, 104, 50, 50, 50, 162, 105, 100, 166, 113, 101, 55, 48, 105, 112, 163, 107, 101, 121, 1.
Как теперь я могу эмулировать отправку этого RPC исходя из того, что знаю его айдишник(252) и имея последовательность битов, которую я сохранил?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot