"Реальный" бензобак
На этом сайте уже есть несколько скриптов на тему бензина, но приведенный ниже скрипт отличается от них бОльшей реалистичностью.
Вот его возможности:
1. Каждый транспорт в игре будет иметь бензобак объемом 100 литров (кроме велосипедов, естественно).
2. Есть заправки (помечены машинкой). Полный бак бензина обойдется вам в 500$. Нужно просто вплотную подъехать к одной из бензокалонк (работают не все! так что ишите ту, что работает).
3. Если у вас кончился бензин, скорость машины будет постепенно снижаться (при этом заметны рывки, как и в реальной жизни), а потом движок глохнет. Это даст возможность самолетам плавно приземлиться, а не упасть камнем.
4. При выходе из авто, сведенья о бензине не удаляются, пока вы не сядете в другое авто.
5. Бензин тратится при условии, что вы давите на газ.
6. Ещё бензин тратится, если вы просто сидите в машине и никуда не Едите (двигатель ведь работает!). В этом случае расход бензина намного меньше, чем при езде.
7. Расход бензина зависит также от скорости движения авто, чем больше скорость, тем меньше расход.
Приятной езды, полетов ...и чего там ещё...!!!
:BENZIN_1
wait 0
if
Actor.Driving($PLAYER_ACTOR)
jf @BENZIN_1
if
not Actor.InCar($PLAYER_ACTOR, $MyCar)
jf @BENZIN_2
03C0: $MyCar = actor $PLAYER_ACTOR car
if 2
8137: NOT car $MyCar id == #BMX
8137: NOT car $MyCar id == #MTBIKE
8137: NOT car $MyCar id == #BIKE
jf @BENZIN_1
2@ = 200
3@ = 10001
0209: $BENZIN = random_int 2@ 3@
:BENZIN_2
wait 0
if
8119: not car $MyCar wrecked
jf @BENZIN_8
if 5
8100: not actor $PLAYER_ACTOR near_point_in_car 2205.4712 2470.1516 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -1684.6312 407.8672 7.1797 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2205.3982 2480.5466 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2199.3621 2480.4089 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -1671.7809 414.6198 7.1797 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2199.1409 2469.9216 9.8203 radius 5.0 5.0 5.0 sphere 1
jf @BENZIN_9
if 5
8100: not actor $PLAYER_ACTOR near_point_in_car 2640.0896 1103.14 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2640.0896 1103.14 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2645.2876 1109.4246 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2639.866 1109.4246 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2634.428 1109.1266 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2108.9958 923.1729 9.8203 radius 5.0 5.0 5.0 sphere 1
jf @BENZIN_9
if 5
8100: not actor $PLAYER_ACTOR near_point_in_car 2634.5811 1103.4642 10.813 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2115.1096 923.4273 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2120.8706 923.607 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2120.7622 917.1142 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2114.8164 917.1771 9.8203 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 2108.8584 916.7469 9.8203 radius 5.0 5.0 5.0 sphere 1
jf @BENZIN_9
if 5
8100: not actor $PLAYER_ACTOR near_point_in_car 384.9267 2602.614 15.4844 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 391.552 2569.1575 15.3672 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -342.7661 2678.0959 63.5189 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -927.9468 2664.6614 41.2364 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -1328.4524 2677.6138 50.0625 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 70.0441 1217.7223 18.8117 radius 5.0 5.0 5.0 sphere 1
jf @BENZIN_9
if 5
8100: not actor $PLAYER_ACTOR near_point_in_car -2407.6646 976.3728 45.2969 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -2029.2676 156.5764 28.8359 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -1605.3003 -2713.7961 48.5335 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car -87.203 -1163.811 2.2313 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 1939.4865 -1771.0599 13.3828 radius 5.0 5.0 5.0 sphere 1
8100: not actor $PLAYER_ACTOR near_point_in_car 1380.7777 462.3883 20.1031 radius 5.0 5.0 5.0 sphere 1
jf @BENZIN_9
if
not $BENZIN 4@
not $PACXOD == 1
jf @BENZIN_5
jump @BENZIN_3
:BENZIN_4
wait 1000
$PACXOD = 1
jump @BENZIN_5
:BENZIN_5
wait 200
if
8119: not car $MyCar wrecked
jf @BENZIN_8
if
Actor.Driving($PLAYER_ACTOR)
jf @BENZIN_6
if
Actor.InCar($PLAYER_ACTOR, $MyCar)
jf @BENZIN_1
0060: $BENZIN -= $PACXOD
008B: $BENZIN2 = $BENZIN
$BENZIN2 /= 100
04F7: status_text $BENZIN 0 line 2 'SPEEDO'
jump @BENZIN_2
:BENZIN_6
wait 50
if
8119: not car $MyCar wrecked
jf @BENZIN_8
02D4: unknown_turn_off_car $MyCar engine
if
not Actor.Driving($PLAYER_ACTOR)
jf @BENZIN_6
0151: remove_status_text $BENZIN2
jump @BENZIN_1
:BENZIN_7
wait 0
if
8119: not car $MyCar wrecked
jf @BENZIN_8
if
1@ >= 2.0
jf @BENZIN_6
wait 900
02E3: 1@ = car $MyCar speed
1@ -= 1.0
Car.SetMaxSpeed($MyCar, 1@)
04BA: set_car $MyCar speed_instantly 1@
jump @BENZIN_7