Небольшая статья о манипуляции с гравитацией в игре через скрипт. (И псевдо-манипуляции через силу)
Варианты:
Меняем целиком. level.physics_world():set_gravity(number) — позволяет менять гравитацию "на уровне" в целом. (везде) 19.620 - гравитация по умолчанию 3.40 - ~гравитация луны Примечания: гравитация приравненная к нулю, а так же отрицательная гравитация, заставит объекты оторваться от земли и улететь; очень высокая гравитация, более 25 вдавит объекты в землю, в том числе и ГГ. При падении с высоты отнимет большое количество единиц здоровья(по сравнению со стандартным значением, на любом уровне сложности), сила удара увеличится и может "вколотить" ГГ и/или объекты в террейн и под него! p.s. Этот метод работает только в Зове Припяти.
"Лишить" отдельный объект "гравитации" (На самом деле применит силу): local ph_gobj = game_object:get_physics_shell() if ph_gobj then --проверка физической оболочки у объекта. game_object:set_const_force(vector():set(0,1,0), game_object:mass()*19.62, 65535*65535) --Применяем силу (вектор[в данном случае направление вверх], множим массу объекта на стандартное значение[нечего не измениться], время действия силы[При таком числе можно сказать всегда]) end
Аналогично под луну, поменять значение 19.62 на 3.4 Применение возможно только для объектов с физической оболочкой! А именно: Прожекторы, аномалии, инвентарные ящики, переходы между уровнями, спейс рестикторы, смарт террейны, гулаги и дрв этот список не входят!, так как у них нет физ. оболочки.
Нюансы/примечания: Не будет действовать на живые объекты (нпс и мобы), на них действует только после смерти (на следующем апдейте!), а так же на объекты которые находятся в инвентаре и объекты переданные в коллбек на выбрасывание предметов из инвентаря. Захватить можно только на следующем апдейте после коллбека на выбрасывания предмета. Остальные динамические объекты будут захвачены сразу.
Сообщение отредактировал N1kname0000 - Среда, 26.02.2020, 17:33