Как спавнить объекты?

Ya Zaregalsya

Известный
Автор темы
387
135
Как создать в мире какой-либо объект при помощи SAMPFUNS? Актёра, транспорт, объект маппинга — что угодно, только без чит-костылей.
 
  • Нравится
Реакции: Vintik

Ya Zaregalsya

Известный
Автор темы
387
135
Если тебе для сингл, то плагин СДК в помощь. Если нет то объясни получше что ты хочешь сделать
.
В SF есть куча функционала для взаимодействия с маппингом, актёрами и транспортом, нужно просто найти нужный объект из существующих и дальше можно будет вертеть им как угодно, с этим никаких проблем. Но вот я хочу не искать существующую машину или ведро на карте, а заспавнить своё (понятно, что это будет локально), примерно представляю по какому принципу это устроено в памяти, но пока не натыкался на конкретные функции в SF, позволяющие заспавнить какой-либо объект. Возможно для этого нужно создать stObject, заполнить его поля и добавить в его в соответствующий пул, но похоже, что этого недостаточно.

В Lua это можно было сделать одной строчкой:

Lua:
Object object = createObject(Model modelId, float atX, float atY, float atZ)
Player player = createPlayer(Model modelId, float atX, float atY, float atZ)
Ped ped = createChar(int pedtype, Model modelId, float atX, float atY, float atZ)
Vehicle car = createCar(Model modelId, float atX, float atY, float atZ)


Только давайте без указок в сторону PSDK, это бесполезный и необоснованный совет. С чего это вдруг ради такой мелкой задачи необходимо менять среду разработки? Не верю, что в SAMPFUNCS нет такого функционала, скорее он просто находится в неявной форме.
 
Последнее редактирование:
  • Нравится
Реакции: Vintik

Ya Zaregalsya

Известный
Автор темы
387
135
Переменная GAME и в ней ищи взаемодействие с миром. Вроде класс GetWorld(). Честно, работу с синглом через СФ никогда не практиковал.
Получилось всё-таки, спасибо.

C++:
void CALLBACK spawn_object_example(std::string param) {
    CObject * obj = GAME->GetPools()->AddObject(2779, false, false);
    CVector obj_pos(1300.0, -1847.0, 12.5);
    obj->SetPosition(&obj_pos);
    GAME->GetWorld()->Add(obj, CObject_Constructor);
}
 
  • Нравится
Реакции: Vintik и Dark_Knight