Napisano dnia: 2016-11-29 17:36:00
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:
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ł:
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:
Znalazłem taki kod:
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
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ł:
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
{$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