#1 14-02-2008 12:04

Agenzvell
From: Windows/system32
Registered: 28-08-2007
Posts: 109
Website

Ошибка в механизме отключения двигателя авто.

Вобщем, так.

При низком уровне жизней у авто должен выключаться двигатель. В моему случае, если жизни ниже половины.

Но когда я сажусь в автомобиль игра выходит с ошибкой. Лично я ошибку не нашел.

{$CLEO}

:ENOFF
wait 100
thread 'EnOff'
0000: NOP

:ENOFF2
wait 200
if
Player.Defined($PLAYER_CHAR)
jf @ENOFF2
if
Actor.Driving($PLAYER_ACTOR)
jf @ENOFF2
03C0: 1@ = actor $PLAYER_ACTOR car

:ENOFF3
wait 500
0227: 2@ = car 1@ health 
if
801C: not 2@ >= 500.0
jf @ENOFF3
3@ = 5000.0
4@ = 6000.0
5@ = 2000.0
6@ = 4000.0
0209: 7@ = random_int_in_ranges 3@ 6@
wait 7@
02D4: car 1@ turn_off_engine

:ENOFF4
wait 100
Car.RemoveReferences(1@)
jump @ENOFF2

В чем может заключаться ошибка?

Offline

#2 14-02-2008 12:34

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Ошибка в механизме отключения двигателя авто.

Здоровье машины и время целые, а не дробные величины.

Для прверки жизней существует опкод:

0185:   car 73@ health >= 700
8185:   not car $SWEET_CAR health >= 250
{$CLEO}

0000:

while true
    wait 0
    if
        Player.Defined($PLAYER_CHAR)
    then
        if
            Actor.Driving($PLAYER_ACTOR)
        then
            03C0: 0@ = actor $PLAYER_ACTOR car
            while true
                wait 0
                if
                   not Actor.InCar($PLAYER_ACTOR, 0@)
                then
                    Car.RemoveReferences(0@) 
                    Break
                end
                if
                    8185:   not car 0@ health >= 500
                then
                    0209: 1@ = random_int_in_ranges 1000 5000
                    wait 1@ 
                    02D4: car 0@ turn_off_engine
                    Car.RemoveReferences(0@) 
                end 
            end 
        end
    end
end

Last edited by Sanchez (14-02-2008 12:36)

Offline

Board footer

Powered by FluxBB