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

ELDO

Новичок
3
0
Доброго утра, подскажите пожалуйста, как зарегистрировать команду, если параметры функции не являются string.

void CALLBACK func (int param) // допустим Int.
{
код;
}

SF->getSAMP()->registerChatCommand("cmd", func);

Если string, все успешно регистрируется, если меняю, пишет, что несовместимо.
 

Dark_Knight

Me, me and me.
Друг
4,082
2,105
@ELDO Никак. Надо строку переводить в число через std::stoi, но еще надо проверять является ли строка числом.
 
  • Нравится
Реакции: ELDO

sc6ut

неизвестный
Модератор
382
1,089
Ок, как я понял,
C++:
void CALLBACK setcarhp(std::string param)

{

float vehiclehp = std::stof(param)
    // etc..
}

А как проверить является ли строчка числом?
обернуть в try-catch можешь:
C++:
void CALLBACK cmd(std::string param) {
    auto veh_hp = 0.f;
    try {
        veh_hp = std::stof(param);
    } catch (...) {
        // сообщения об неверных параметрах или whatever
        return;
    }
    // тут можешь работать с флоатом
}
 
  • Нравится
Реакции: ELDO

ELDO

Новичок
3
0
Все, problem solved
Работает, спасибо что помогли разобраться)




Для вызова функций "GTAfunc_.." необходим header-файл "GTAfuncs.h" , если сую его из Mod_Sa API в SF API, не воспринимает и появляется ошибка "undefined".

Есть ли какие-нибудь альтернативы функциям, например "GTAfunc_PutActorInCar" или совместимый с SF API "GTAfunc.h"?
 
Последнее редактирование:

F0RQU1N and

Известный
1,307
498
Все, problem solved
Работает, спасибо что помогли разобраться)

Для вызова функций "GTAfunc_.." необходим header-файл "GTAfuncs.h" , если сую его из Mod_Sa API в SF API, не воспринимает и появляется ошибка "undefined".

Есть ли какие-нибудь альтернативы функциям, например "GTAfunc_PutActorInCar" или совместимый с SF API "GTAfunc.h"?
можно по адресу вызывать, самому, найди идб гташки и сам делай
 
  • Нравится
Реакции: ELDO

Chilim

Потрачен
71
6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ребят подскажите пожалуйста,я вот сделал рванку и хочу сделать чтоб машина рванила туда куда я смотрю,как это сделать?
 

ELDO

Новичок
3
0
PutPlayerInCar:
void CALLBACK PutPlayerInCar(std::string param)
{
    if (param.empty()) return;
    int vehid = std::stoi(param);

    // rpc enter vehicle
    SF->getSAMP()->sendEnterVehicle(vehid, 0);

    BitStream bsPutRpc;

    bsPutRpc.Write((USHORT)vehid);
    bsPutRpc.Write((BYTE)0);

    SF->getRakNet()->emulateRecvRPC(RPC_ScrPutPlayerInVehicle, &bsPutRpc);

    // incar data
    stInCarData bsVehSynch = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData;
    bsVehSynch.sVehicleID = vehid;

    BitStream bsVehSync;
    bsVehSync.Write((BYTE)ID_VEHICLE_SYNC);
    bsVehSync.Write((PCHAR)&bsVehSync, sizeof(stInCarData));

    SF->getRakNet()->SendPacket(&bsVehSync);
}

Если за рулем есть игрок, не сажает.
Вопрос #1: Можно ли как-нибудь удалить водителя с машины, чтобы работала функция? (необходим доступ к кару на буквально 0.1сек).
Вопрос #2: Есть ли другие способы посадить персонажа в машину. (телепортнуть)
 

Chilim

Потрачен
71
6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добрый вечер,подскажите пожалуйста как получить ближайшую ПУСТУЮ машину в зоне стрима?
 

FlewMo

Участник
12
1
Здрасте, мне нужна не совсем большая помощь, вообщем кодил на AHK, посчитал что это уже прошлый век к тому же UDF на R3-1 нет.. Так вот, решил перейти на C++ и искал нормальную библиотеку к SAMP, чу-чуть основ C++ знаю, но не могу говорить что я знаю всю хотябы базу) Но не совсем суть, я буду еще учить сам.
Можете подсказать как мне вообще использовать эту библиотеку, или, если есть вариант лучше то подскажите какой.
Мне нужен пример как подключить ее к исполняемому DLL и, если можно то еще пример использования GetScore(), буду очень благодарен. Насчет первого примера, то просто подскажите что нужно сделать чтобы она работала и какой код написать в самой DLL-ке, или как подключить ее в Visual Studio. Извините за глупые вопросы, и столько текста, но просто реально чайник и нужны примеры, а их нет нигде :( чувствую опозорюсь щас, но, че поделать, надеюсь хоть поможете) (ASI)
Если быть точнее. То просто скажите что нужно сделать после скачивания либы с гит хаба, как скомпилировать и как потом использовать (как подвязать к проекту с dll) и просто пример вызова любой функции с API, как я просил - GetScore().
------------------------
Не знаю почему, но мне в гугле не выдавало тему прекрасного человека kin4stat, с его ахуеннейшим гайдом. Вот прям читаю и радуюсь, спасибо, что эта тема существует, всё так просто оказывается. Ещё раз спасибо!!
 
Последнее редактирование:

Yayachana)

Известный
32
10
На lua есть такая ф-ция - IsPointOnScreen, которая проверяет по координатам x y z находится ли точка на экране или нет.


Вопрос собственно: Есть ли такое в SF SDK?


-----------------------------------------------------------------------------------
UPD: Решено!


!:
bool OnScreen(CVector vect)
{
    SF->getCLEO()->callOpcode("00C2: %f %f %f 0.0", vect.fX, vect.fY, vect.fZ);
    return SF->getCLEO()->GetCondResult();
}


CVector vect;
vect.fX = ;
vect.fY = ;
vect.fZ = ;

OnScreen(vect);
 
Последнее редактирование:
  • Нравится
Реакции: sVor

Fiksae

Потрачен
26
10
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как получить координаты объекта?
 

Chilim

Потрачен
71
6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добрый вечер,подскажите пожалуйста что тут не так? хочу сделать инвиз(типо серфил на машине)
1650352135353.png