Napisano dnia: 2011-04-09 12:38:51
Zacząłem sobie robić otwierającą i zamykającą bramę. Mój skrypt na obecną chwilę wygląda tak
Problem polega na tym że brama nie chce się zamykać. Wydaje mi się że powinno wystarczyć dać pętle sprawdzającą czy aktor znajduje się poza wyznaczoną strefą, a potem opcod, który powoduje żeby brama się zamykała. W sumie taki jak przy otwieraniu bramy tylko że s powrotnymi współrzędnymi. Jednak to nie działa i nie wiem czemu. Ktoś wie jak jak to naprawić?
Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
$BRAMA1 = Object.Create(988, 2464.1626, -1656.2, 12.28)
$BRAMA2 = Object.Create(988, 2464.1626, -1661.7, 12.28)
Object.Angle($BRAMA1) = -90.0
Object.Angle($BRAMA2) = -90.0
00A5: $test1 = create_car #GREENWOO at 2442.8848 -1658.3671 13.308
0175: set_car $test1 z_angle_to 271.3024
0229: set_car $test1 color_to 2 1
05CB: AS_actor $PLAYER_ACTOR enter_car $test1 as_driver 0 ms
:czy_przed_brama
wait 0
if
00EC: actor $PLAYER_ACTOR 1 near_point 2463.635 -1658.5243 radius 10.0 10.0
jf @czy_przed_brama
Player.CanMove($PLAYER_CHAR) = False
:brama_start
wait 0
if
034E: move_object $BRAMA1 to 2464.1626 -1651.2 13.4 speed 0.1 0.1 0.1 flag 11
034E: move_object $BRAMA2 to 2464.1626 -1666.7 13.4756 speed 0.1 0.1 0.1 flag 11
jf @brama_start
//=============
Player.CanMove($PLAYER_CHAR) = True
:czy_za_brama
wait 0
if
80EC: not actor $PLAYER_ACTOR 1 near_point 2463.635 -1658.524 radius 10.0 10.0
jf @czy_za_brama
wait 7000
:brama_start111
wait 0
if
034E: move_object $BRAMA1 to 2464.2305 -1659.0134 13.302 speed 0.1 0.1 0.1 flag 11
034E: move_object $BRAMA2 to 2464.1626 -1666.7 13.4756 speed 0.1 0.1 0.1 flag 11
jf @brama_start111
0A93: end_custom_thread
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
$BRAMA1 = Object.Create(988, 2464.1626, -1656.2, 12.28)
$BRAMA2 = Object.Create(988, 2464.1626, -1661.7, 12.28)
Object.Angle($BRAMA1) = -90.0
Object.Angle($BRAMA2) = -90.0
00A5: $test1 = create_car #GREENWOO at 2442.8848 -1658.3671 13.308
0175: set_car $test1 z_angle_to 271.3024
0229: set_car $test1 color_to 2 1
05CB: AS_actor $PLAYER_ACTOR enter_car $test1 as_driver 0 ms
:czy_przed_brama
wait 0
if
00EC: actor $PLAYER_ACTOR 1 near_point 2463.635 -1658.5243 radius 10.0 10.0
jf @czy_przed_brama
Player.CanMove($PLAYER_CHAR) = False
:brama_start
wait 0
if
034E: move_object $BRAMA1 to 2464.1626 -1651.2 13.4 speed 0.1 0.1 0.1 flag 11
034E: move_object $BRAMA2 to 2464.1626 -1666.7 13.4756 speed 0.1 0.1 0.1 flag 11
jf @brama_start
//=============
Player.CanMove($PLAYER_CHAR) = True
:czy_za_brama
wait 0
if
80EC: not actor $PLAYER_ACTOR 1 near_point 2463.635 -1658.524 radius 10.0 10.0
jf @czy_za_brama
wait 7000
:brama_start111
wait 0
if
034E: move_object $BRAMA1 to 2464.2305 -1659.0134 13.302 speed 0.1 0.1 0.1 flag 11
034E: move_object $BRAMA2 to 2464.1626 -1666.7 13.4756 speed 0.1 0.1 0.1 flag 11
jf @brama_start111
0A93: end_custom_thread
Problem polega na tym że brama nie chce się zamykać. Wydaje mi się że powinno wystarczyć dać pętle sprawdzającą czy aktor znajduje się poza wyznaczoną strefą, a potem opcod, który powoduje żeby brama się zamykała. W sumie taki jak przy otwieraniu bramy tylko że s powrotnymi współrzędnymi. Jednak to nie działa i nie wiem czemu. Ktoś wie jak jak to naprawić?