Другое SAMPFUNCS | API C++

Maddy

Известный
34
11
А не легче проверять не по типу, а по классу авто?

Из собейта:
int class_id = gta_vehicle_get_by_id( vinfo->base.model_alt_id )->class_id; // получение класса авто

/* классы авто */
#define VEHICLE_CLASS_CAR 0
#define VEHICLE_CLASS_CAR_FAST 1
#define VEHICLE_CLASS_HEAVY 2
#define VEHICLE_CLASS_HELI 3
#define VEHICLE_CLASS_AIRPLANE 4
#define VEHICLE_CLASS_BIKE 5
#define VEHICLE_CLASS_BOAT 6
#define VEHICLE_CLASS_MINI 7
#define VEHICLE_CLASS_TRAILER 8
#define VEHICLE_CLASS_COUNT 9 /* # of classes */


Ошибся, в SF такого нету
 
Последнее редактирование:

kent-34

Известный
5
0
1)Почему не работает?
Код:
if ( param.empty() ) return;
    int carid = std::stoi( param );
    SF->getSAMP()->sendEnterVehicle(carid,0);
2)Как получить больше параметров из команды?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
1) Эта функция не сажает игрока в авто, а отправляет RPC.
2) sscanf. Первым параметром будет param.c_str()
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
можно проще, используя stringstream(#include <sstream>)
std::stringstream ss(param);
int p1 = 0;
std::string p2;
ss >> p1 >> p2;
вот так например
Вот так да, вот так проще.
Ты подключаешь ещё какую-то библиотеку, которая будет необходима только для одного - чтение значений...
Дело твое.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
А как тогда посадить в кар? Пробывал через клео-крашь
Пока "нормальными" методами никак.

Можешь попробовать вызывать клео опкоды, указывай
072A: put_actor 0@ into_car 1@ driverseat
0@ = actor handle(actor_info *self = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE);)
1@ = car handle(DWORD car_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);)
SF->getCLEO()->callOpcode("072A: put_actor %d into_car %d driverseat", &self, car_handle);

Вроде так, если не ошибся.
 

kent-34

Известный
5
0
Пока "нормальными" методами никак.

Можешь попробовать вызывать клео опкоды, указывай
072A: put_actor 0@ into_car 1@ driverseat
0@ = actor handle(actor_info *self = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE);)
1@ = car handle(DWORD car_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);)
SF->getCLEO()->callOpcode("072A: put_actor %d into_car %d driverseat", &self, car_handle);

Вроде так, если не ошибся.
Код:
if ( param.empty() ) return;
    int carid = std::stoi( param );
    DWORD vid = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);
    SF->getCLEO()->SetLocalVar(1, vid);
    SF->getCLEO()->callOpcode("036A: put_actor $PLAYER_ACTOR in_car 1@ driverseat");
Вот так прекрасно работает,спасибо.
Есть опкод что-бы выйти из машины?
 
Последнее редактирование:

kent-34

Известный
5
0
Ещё пару вопросов:
1)Как узнать ид машины в которой сидит игрок?
Разобрался:
Код:
stInCarData * VehInfo = SF->getSAMP()->getPlayers()->GetInCarData(id);
    int carid = VehInfo->sVehicleID;
2)Как выкинуть себя из машины?
 
Последнее редактирование:

Uztor

Новичок
42
0
More functions coming like this:
  • 0B82: dialog 1@ add_button id 2@ text 3@ pos_XY 4@ 5@ size 6@ 7@
  • 0B83: dialog 1@ add_checkbox id 2@ text 3@ pos_XY 4@ 5@ size 6@ 7@
  • 0B88: dialog 1@ add_editbox id 2@ text 3@ pos_XY 4@ 5@ size 6@ 7@
  • ...
?
 

luckyFOX

Ушёл.
328
477
А что это значит?
Код:
int &iDialogStatus = SF->getSAMP()->getDialog()->iIsActive; // сохраняем ссылку на переменную в которой хранится текущий статус диалога.
 

PoccoJI

Новичок
135
10
А что это значит?
Код:
int &iDialogStatus = SF->getSAMP()->getDialog()->iIsActive; // сохраняем ссылку на переменную в которой хранится текущий статус диалога.
ну короче чтобы каждый раз
SF->getSAMP()->getDialog()->iIsActive не писать можно как бы сохранить это большую штуку в iDialogStatus а потом изменять ee
iDialogStatus = 1
iDialogStatus = 0
ну короче вооот ну вот у iIsActive есть адрес да? Ну мы короче этот адрес в iDialogStatus записали да? и можем его изменять..
 

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Sire Like

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Уршадов когда новые уроки будут?
 

urShadow

Потрачен
Автор темы
21
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Предложи тему уроков, напишу.