PDA

Просмотр полной версии : CMake | Готовый проект ASI-плагина | SAMP-API, RakHook, kthook


AnWu
07.01.2023, 00:00
Всё хотел создать правильный плагин для себя, искал исходники, поиски не увенчались успехом, т.к. большинство проектов на том же гитхабе то мусор то не то.

Решил собрать себе проект сам, базу так сказать, ну и выдал её.

Проект использует 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.

Если смогу, отвечу на вопросы.

N08I40K
07.01.2023, 00:18
Сделай пожалуйста гайд как использовать модули из c++20 в проектах cmake))

В инете очень мало инфы

AnWu
07.01.2023, 00:19
Сделай пожалуйста гайд как использовать модули из 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))

В инете очень мало инфы


Никак

AnWu
07.01.2023, 00:32
С++11


То что ты называешь модулями в С++11 это прекомпилированные заголовки. Настоящие модули будут позже, насколько я знаю.

ARMOR
07.01.2023, 00:47
У SR_team вроде чёт подобное тоже есть на гитлабе

AnWu
07.01.2023, 00:51
У SR_team вроде чёт подобное тоже есть на гитлабе


тгк собейт аси вижу, архивный

ARMOR
07.01.2023, 00:55
тгк собейт аси вижу, архивный


Я от этом говорил: https://gitlab.com/prime-hack/samp/plugins/templates/AsiPlugin

Но там нет SAMP API, KtHook'ов. Там вроде только SRHook

AnWu
07.01.2023, 01:07
Я от этом говорил: https://gitlab.com/prime-hack/samp/plugins/templates/AsiPlugin

Но там нет SAMP API, KtHook'ов. Там вроде только SRHook


не видел его, круто) хотя сложновато наверно для нубов

EclipsedFlow
07.01.2023, 01:36
Plugin SDK можно ещё накинуть в проект. Молодец!

ARMOR
07.01.2023, 01:45
Plugin SDK можно ещё накинуть в проект. Молодец!


Не сказал бы что нужно. У PSDK есть свой настройщик проекта.

EclipsedFlow
07.01.2023, 01:59
Не сказал бы что нужно. У PSDK есть свой настройщик проекта.


Есть, функционала в PSDK намного больше чем в SF например. Так что будет где разгуляться. А там решайте добавлять или нет.

AdCKuY_DpO4uLa
07.01.2023, 02:03
Не сказал бы что нужно. У PSDK есть свой настройщик проекта.


Без псдк - этот "шаблон" по начинке даже поменьше СФ будет

AnWu
07.01.2023, 04:08
Без псдк - этот "шаблон" по начинке даже поменьше СФ будет


этот "шаблон" и не соревнуется ни с кем. Просто симейк, сампапи и ракхук. Дальше дело за кодером.

AdCKuY_DpO4uLa
07.01.2023, 14:44
этот "шаблон" и не соревнуется ни с кем. Просто симейк, сампапи и ракхук. Дальше дело за кодером.


Тогда вообще в этом смысла не вижу, если челик новокек в с++, то он вряд ли поставит себе git, чтобы загрузить один единственный проект, а затем ещё и CMake, после чего будет писать код в какой-нибудь студии/вс коде и компилировать через консоль. Если же челик с каким-то стажем, то он либо соберёт себе более менее обширное АПИ, либо возьмёи только то, что ему нужно, а не самп АПИ, ракхук и на этом всё. Имхо

imring
07.01.2023, 14:47
Без псдк - этот "шаблон" по начинке даже поменьше СФ будет


так подтяни

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)

AnWu
07.01.2023, 14:58
Тогда вообще в этом смысла не вижу, если челик новокек в с++, то он вряд ли поставит себе git, чтобы загрузить один единственный проект, а затем ещё и CMake, после чего будет писать код в какой-нибудь студии/вс коде и компилировать через консоль. Если же челик с каким-то стажем, то он либо соберёт себе более менее обширное АПИ, либо возьмёи только то, что ему нужно, а не самп АПИ, ракхук и на этом всё. Имхо


Если мне нужно взаимодействовать только с сампом и игра меня вообще никак не колышет, зачем мне тянуть псдк?

EclipsedFlow
07.01.2023, 17:04
Если мне нужно взаимодействовать только с сампом и игра меня вообще никак не колышет, зачем мне тянуть псдк?


Тогда думаю круче было бы самому разработчику определять что подтягивать в проект

AnWu
07.01.2023, 17:35
Тогда думаю круче было бы самому разработчику определять что подтягивать в проект


это в планах

SR_team
02.03.2023, 13:02
не видел его


и не смотри там говнокод. Особенно в CMake ад ебаный. Напрмер свои костыли на основе гита вместо FetchContent

reussssya
13.03.2023, 00:22
не варик было сделать папку с инклюдами, вместо фетча в смейке

manukhov
15.05.2023, 01:35
CMakeLists.txt:






set(CMAKE_GENERATOR_PLATFORM Win32)

AnWu
15.05.2023, 10:18
CMakeLists.txt:






set(CMAKE_GENERATOR_PLATFORM Win32)





зачем?

manukhov
15.05.2023, 15:26
зачем?


Ну как минимум чтобы флаг при сборке не прописывать, у тебя же шаблон проекта для сампа, там x86 должно по умолчанию стоять

Smeruxa
14.04.2024, 18:32
Из-за чего может подобное происходить при сборке?

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-ый, но при этом ничего не меняется


так ты же через вижуал студио собираешь. у него вроде бы другой сборщик, нет?

Smeruxa
01.05.2024, 18:51
так ты же через вижуал студио собираешь. у него вроде бы другой сборщик, нет?


Я решил это, просто убрал формат после создания cmake - _deps, оттуда отредачил строку с форматом, и собрал, готово

swlm
27.07.2024, 19:14
Это реально работает?

Я так понял, этот метод принимает пакеты, которые приходят от сервера.

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) и имея последовательность битов, которую я сохранил?