#1 03-07-2009 11:30

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Катапульт

Как это часто бывает: вы сидите в вертолёте, в нево влетает ракеты и вы пытаетесь на сбитом вертолёте пролететь хоть немного дальше, а кагда нажимаете энтер то аккурат в этот момент верт взлетает на воздух (и патом летит обратно) вместе с гг. Теперь всё просто - жмём таб+ентер и сиджея просто выбрасывает из самба/верта, который через 2 секунды благополучно самоуничтожается:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'CATAPULT' 

:BLOWOUT_26
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @BLOWOUT_26 
if
04C8:   actor $PLAYER_ACTOR driving_flying_vehicle  
jf @BLOWOUT_26 
03C0: 0@ = actor $PLAYER_ACTOR car 
if and
01F3:   car 0@ in_air
0AB0:   key_pressed 9
00E1:   player_pressed_key 0 15
jf @BLOWOUT_26 
03C0: 0@ = actor $PLAYER_ACTOR car 
0657: car 0@ open_componentA 2 
02E3: 3@ = car 0@ speed 
04C4: store_coords_to 5@ 6@ 7@ from_actor $PLAYER_ACTOR with_offset 0.0 1.75 2.0 
06A2: get_car 0@ velocity_in_direction_XYZ 8@ 9@ 10@ 
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 5@ 6@ 7@ 
10@ += 20000.0
0657: car 0@ open_componentA 4
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ 10@ 
wait 2000
if
   not Car.Wrecked(0@)
jf @BLOWOUT_26
070C: explode_car 0@ // versionB 
jump @BLOWOUT_26

P.S. прошу прощения за слабое выталкивание вверх, пытался усилить как мог но всё без толку

Last edited by BullDogHEMI427 (03-07-2009 11:30)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#2 01-10-2009 17:34

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Катапульт

Слабое выталкиванеи можно усилить так:

10@+=200.0
for 30@ to 1000
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ 10@
wait 2
end

Циклически устанавливаем силу:)


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#3 01-10-2009 20:34

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Катапульт

думаю, будет достаточно одного толчка на 1000 вверх и на 20 влево или вперед(чтоб не упасть на вертолёт)


и ещё, вертолёт взрывать скриптом не надо!!!!!!!!!!! гораздо лучше, если он сам это сделает


GIMS developer

Offline

#4 01-10-2009 21:47

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Катапульт

Ну в принципе можно скриптом и не взрывать(он просто упадет и может не взорватся:(),а так выпрыгнул и ещё сзади взрывная волна.
Кстати насчёт выталкивания - очень хорошо было бы использовать 0209: 17@ = random_int_in_ranges 0 10
Так намного интереснее чем всегда одинаково вылетать.
Код:

10@+=200.0
for 30@ to 1000
0209: 30@ = random_int_in_ranges -20 20 
0209: 29@ = random_int_in_ranges -50 50
0209: 28@ = random_int_in_ranges -20 20
8@+=28@
9@+=30@
10@+=29@
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ 10@
wait 2
end

П.С. У него на 20000 поэтому и нужен цикл.
Это происходит потомучто если ударить по обьекту огромной силой и сразу прекратить воздействеи то он не успеет поглотить всю силу,в данном случае игра просто практически не учитывает опкод(потомучто 2000 0.5 с и ты уже в космосе).


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#5 01-10-2009 22:05

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Катапульт

ненене ты физику не примешивай...опкод присваивает векторную скорость после первого же раза, никакого поглощения быть не может, ты что???????!!!?!?!?!?!?!


GIMS developer

Offline

#6 02-10-2009 00:17

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Катапульт

@kostay scr, @3Doomer -
физика. седьмой класс. первый закон Ньютона.
Если на объект не действуют никакие силы, то он движется равномерно и прямолинейно.

Имеем импульс взрывной волны силой F, в начале нарастающий, потом убывающий.
Ускорение, которое приобретает объект a = F/m, где m - масса объекта.
Скорость объекта v = a*t.
Поскольку F - фиксированная функция, а t достаточно мало, можно не брать интеграл, а ограничиться последовательным присваиванием скорости из заранее посчитанной таблицы.

Для большего эффекта, v - должна быть векторной в modelling space, чтобы игрок не вылетал из вертолета, скажем, через дно.

Offline

#7 02-10-2009 17:31

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Катапульт

ну вот например если применить опкод set_velocity с силами 0,0 0,0 2,0 к объекту, он ведёт себя так, будто получил пинок вертикально вверх с начальной скоростью 5м\с (цифра примерная)

дык вот...а потом он падает как и любой нормальной тело)))) почему такое не пройдёт с педом-то????? вполне реалистичная ситуация вроде, надо изначально пинок посильнее сделать и усё само по игровой физике свершится))


GIMS developer

Offline

#8 02-10-2009 20:19

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Катапульт

Я это знаю^)
Но в игре не так(ну я движок не писал).
Да и реально если подействовать на тело силой невероятной величины, но только например 1*10^-10 с то он не особо то сдвинется(и не надо говорить что это не так(я не буду спорить на эту тему и что либо доказывать, но сила предаётся не мгновенно и время передачи зависит от поверхности соприкосновения(обратнопорпорциональная зависимость(Поверхность больше - время меньше))))
Просто этого не видно - это сделать практически невозможно.
-


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

Board footer

Powered by FluxBB