Другое С/С++ Вопрос - Ответ

AnWu

https://t.me/anwublog
Всефорумный модератор
4,771
5,376
Успешно настроил проект под plugin-sdk, взял простой пример с интернета:
C++:
#include "plugin.h"
#include "CMessages.h"

using namespace plugin;

class scoreboard {
public:
    scoreboard() {
        Events::gameProcessEvent += [] {
            if (KeyPressed(VK_F2)) {
                CMessages::AddMessageJumpQ("You have set time to ~b~12:00", 3000, 0, false);
            }
        };
    }
} _scoreboard;
Нажимаю F2 и 0 эмоций. Есть какой-нибудь лог что происходит с плагином?
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Успешно настроил проект под plugin-sdk, взял простой пример с интернета:
C++:
#include "plugin.h"
#include "CMessages.h"

using namespace plugin;

class scoreboard {
public:
    scoreboard() {
        Events::gameProcessEvent += [] {
            if (KeyPressed(VK_F2)) {
                CMessages::AddMessageJumpQ("You have set time to ~b~12:00", 3000, 0, false);
            }
        };
    }
} _scoreboard;
Нажимаю F2 и 0 эмоций. Есть какой-нибудь лог что происходит с плагином?
дебагер
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
компелится то всё нормально, где можно почитать больше о аси плагинах? я нашел минимум инфы. По тому же муну инфы больше
Просто ты ток в луа шариш)0
В отладке - приконектится к процессу - там выбираешь гтаса(можно еще запускать через локальный отладчик)
Далее ставишь бряки там где тебе что то не понятно(ПКМ по строчке) после того как поставишь - тебе будет выдавать в окошке значение которое вернула функция
 

AnWu

https://t.me/anwublog
Всефорумный модератор
4,771
5,376
Просто ты ток в луа шариш)0
В отладке - приконектится к процессу - там выбираешь гтаса(можно еще запускать через локальный отладчик)
Далее ставишь бряки там где тебе что то не понятно(ПКМ по строчке) после того как поставишь - тебе будет выдавать в окошке значение которое вернула функция
позовите другого оператора, этот сломался. другими словами ты объяснять не умеешь.
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
позовите другого оператора, этот сломался. другими словами ты объяснять не умеешь.
я тебе дал инструкцию как подключать дебагер и посмотреть что там не так, вспоминаю времена когда меня учили луа, вот ты сейчас в таком же положении)
 

AnWu

https://t.me/anwublog
Всефорумный модератор
4,771
5,376
я тебе дал инструкцию как подключать дебагер и посмотреть что там не так, вспоминаю времена когда меня учили луа, вот ты сейчас в таком же положении)
Вроде нашел, спасибо
Есть ли вики по плагин-сдк?
 

AnWu

https://t.me/anwublog
Всефорумный модератор
4,771
5,376
Скорее всего нет, это ведь сдк)
upload_2018-11-29_17-40-8.png

Не втыкаю что дальше? Точки остановки делать?
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
И ничего не происходит( Как же тут всё не как в луа(
Я не шарю в плагин сдк, но в сампфунксе все выполняется в MainLoop(бесконечный цикл) , а по тому что ты скидываешь, это просто класс
 

Azller Lollison

ещкере
Друг
1,347
2,298
Посмотреть вложение 22005
Не втыкаю что дальше? Точки остановки делать?
Судя по скрину, у тебя отсутствует DllMain.

C++:
void yourMainCycle(void *) {
//put your stuff there
}

C++:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
    case DLL_PROCESS_ATTACH:
        _beginthread(yourMainCycle, NULL, NULL);
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
 
  • Нравится
Реакции: AnWu

AnWu

https://t.me/anwublog
Всефорумный модератор
4,771
5,376
Судя по скрину, у тебя отсутствует DllMain.

C++:
void yourMainCycle(void *) {
//put your stuff there
}

C++:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
    case DLL_PROCESS_ATTACH:
        _beginthread(yourMainCycle, NULL, NULL);
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
где искать инфу то. неужели все через вопросы?
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
где искать инфу то. неужели все через вопросы?
Открывай файлики и смотри че там за функции, классы, может есть вики, но в сф все делается именно так