PDA

Просмотр полной версии : [Вопрос] Несколько объектов одновременно



m1n1vv
24.03.2016, 02:28
Привет. Напомните, какая программа или ФС одновременно перетаскивает несколько объектов?

VVWVV
24.03.2016, 02:36
Texture-Studio.

m1n1vv
24.03.2016, 23:20
Texture-Studio.

А можно просто повернуть несколько объектов на 90°? А то не просто через OnPlayerEditObject это сделать. Я перфекционист.

DeimoS
24.03.2016, 23:28
А можно просто повернуть несколько объектов на 90°? А то не просто через OnPlayerEditObject это сделать. Я перфекционист.

Написать макрос, который будет прибавлять/отнимать нужное число от координат? Типа

#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) printf("CreateDynamicObject(%d,%f,%f,%f,%f,%f,%f);", %0, %1, %2, %3, %4, %5, %6)
И уже в самом макросе указывать нужные изменения. Например, поднятие всех объектов на 100 метров:

#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) printf("CreateDynamicObject(%d,%f,%f,%f,%f,%f,%f);", %0, %1, %2, %3+100.0, %4, %5, %6)

Но тут макрос не учитывает необязательные параметры, поэтому если они у тебя указаны, добавь их в макрос.
Ну и в том, какой параметр изменять, определяйся по объявлению функции:

CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1);

Собственно, после запуска мода с таким макросом, в консоль выдаст готовый код с уже новыми координатами. Останется убрать макрос и вставить новые координаты в мод

m1n1vv
25.03.2016, 00:32
Но оно же просто повернет объект

DeimoS
25.03.2016, 00:39
Но оно же просто повернет объект

Либо повернёт, либо переместит на новые координаты - зависит от того, какие параметры будешь изменять

m1n1vv
25.03.2016, 01:04
Либо повернёт, либо переместит на новые координаты - зависит от того, какие параметры будешь изменять

Вот у меня объекты здания с дверями. Хочу все это повернуть на 90°

DeimoS
25.03.2016, 09:00
Ну так и смотри по параметрам порядковый номер и увеличивай его

CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
Тебе, как я понимаю, либо rx, либо ry нужен, а это 4-ый и 5-ый параметры в макросе

#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) printf("CreateDynamicObject(%d,%f,%f,%f,%f,%f,%f);", %0, %1, %2, %3, %4, %5, %6)

m1n1vv
25.03.2016, 13:40
Ну так и смотри по параметрам порядковый номер и увеличивай его

CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
Тебе, как я понимаю, либо rx, либо ry нужен, а это 4-ый и 5-ый параметры в макросе

#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) printf("CreateDynamicObject(%d,%f,%f,%f,%f,%f,%f);", %0, %1, %2, %3, %4, %5, %6)

Так тут будет поворачивать по своей оси

DeimoS
25.03.2016, 14:00
Так тут будет поворачивать по своей оси

Ну так ещё и с Float:x/Float:y поиграйся. Но раз ты все объекты будешь двигать, значит у всех объектов координаты будут изменены на равное кол-во пунктов, не?

m1n1vv
25.03.2016, 14:17
Я хочу повернуть здание, и чтобы при развороте объекты дверей оставались на месте выхода

Быдлокодер
25.03.2016, 14:19
Я хочу повернуть здание, и чтобы при развороте объекты дверей оставались на месте выхода

http://forum.sa-mp.com/showthread.php?t=506610 - мб это ?

m1n1vv
25.03.2016, 14:30
http://forum.sa-mp.com/showthread.php?t=506610 - мб это ?

Я уже писал


А можно просто повернуть несколько объектов на 90°? А то не просто через OnPlayerEditObject это сделать. Я перфекционист.

DeimoS
25.03.2016, 14:58
Я хочу повернуть здание, и чтобы при развороте объекты дверей оставались на месте выхода

Ну так выгрузи код создания здания в отдельный файл, оставив код дверей в исходном файле, и проведи все махинации с углом поворота. А потом уже подправь двери, если координаты вдруг не подойдут.
Заметь, ты бы это реализовал ещё часов 10 назад, если бы просто немного вник и разобрался

m1n1vv
25.03.2016, 15:20
А если прикрепить все объекты к экстерьеру здания (AttachObjectToObject) и потом повернуть. Скрипт для записи координат объекта запишет изначальные координаты или уже с поворотом?

m1n1vv
26.03.2016, 00:27
http://forum.sa-mp.com/showthread.php?t=506610 - мб это ?

А в целом это подойдет. Только в OnPlayerEditObject надо добавить fRotZ и приравнять к нужному градусу.