Witam. Wymodelowałem sobie taki prosty blaszany garaż, napisałem (hah edytowałem) skrypt na otwieranie bram. Wszystko działa ale chciałbym trochę ten skrypt przerobić. Aktualnie bramy otwierają się tak:

http://i.imgur.com/m0K0s6A

A ja chciałbym żeby otwierały się nie tylko w dół ale i z rotacją. Tak jak w rzeczywistości.

Na gifie widać jedno skrzydło ale w ostateczności chciałbym zastosować dwa otwierane na ten skrypt. Mniej więcej tak chcę żeby tor ruchu wyglądał:

http://i.imgur.com/fdf7bUD

No i moje pytanie brzmi: jak? :) Co dodać, co zmienić, gdzie szukać wskazówek :) Nigdy nie miałem styczności z takim czymś dlatego liczę na Waszą pomoc.

A to jest mój edytowany kod:

Kod:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
Model.Load(18632)
038B: load_requested_models 
1@ = Object.Create(18632, 2520.87, 2020.78, 10.2462)
Object.Angle(1@) = -90.0

:NONAME_40
03BC: 2@ = create_sphere_at 2527.12 2020.956 10.2462 radius 1.0 
03BC: 3@ = create_sphere_at 2527.12 2020.956 10.2462 radius 1.0 

:NONAME_90
wait 0 
if or
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 
else_jump @NONAME_90 
03BD: destroy_sphere 3@ 
03BD: destroy_sphere 2@ 
097A: play_audio_at 2520.87 2020.78 10.2462 event 1153 

:NONAME_189
wait 0 
if 
034E: move_object 1@ to 2520.87 2020.78 7.6462 speed 0.02 0.02 0.02 collision_check 0 
else_jump @NONAME_189 
097A: play_audio_at 2520.87 2020.78 7.6462 event 1154 

:NONAME_261
wait 0 
if and
80ED:   not actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 on_foot 
80ED:   not actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 on_foot 
else_jump @NONAME_261 
03BC: 3@ = create_sphere_at 2527.12 2020.956 10.2462 radius 1.0 
03BC: 2@ = create_sphere_at 2527.12 2020.956 10.2462 radius 1.0 

:NONAME_380
wait 0 
if or
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 
else_jump @NONAME_380 
03BD: destroy_sphere 3@ 
03BD: destroy_sphere 2@ 
097A: play_audio_at 2527.12 2020.956 10.2462 event 1153 

:NONAME_479
wait 0 
if 
034E: move_object 1@ to 2520.87 2020.78 10.2462 speed 0.02 0.02 0.02 collision_check 0 
else_jump @NONAME_479 
097A: play_audio_at 2520.87 2020.78 10.2462 event 1154 

:NONAME_551
wait 0 
if and
80ED:   not actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 on_foot 
80ED:   not actor $PLAYER_ACTOR sphere 0 near_point 2527.12 2020.956 radius 1.0 1.0 on_foot 
else_jump @NONAME_551 
jump @NONAME_40 


Znalazłem taki kod:
Kod:
034D: rotate_object $obiekt from_angle 0.0 to_angle 360.0 flag 0 


Faktycznie, działa rotacja ale nie jest ona płynna tak jak w przypadku opcji Move a zależy mi na tym :) No i jeszcze jak już raz wejdę w marker to obiekt cały czas jest obrócony.. nie wraca to pierwotnej pozycji po ponownym wejściu.

aha. i ten kod pierwotnie znalazł się w remizie OSP od Mopsika :P