Код нитро
by ScrewBoy
Wednesday 16 June 2004 - 07:08:32
Итак, тут я решил написать примеры таких кодов, какие очень часто используются. Например, спидометр, нитро-ускорение. Комментировать каждую строчку не буду, но если буду вопросы - на форум. Начнем, для начала код нитро:
:Nitro
0001: wait 50 ms
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false ЈЈNitro
00D6: if 0
00E0: player $PLAYER_CHAR driving
004D: jump_if_false ЈЈNitro
00D6: if 21
80E1: NOT key pressed 0 5
80E1: NOT key pressed 0 7
004D: jump_if_false ЈЈNitro
00D6: if 1
00E1: key pressed 0 19
00E1: key pressed 0 16
004D: jump_if_false ЈЈNitro
03C1: 0@ = player $PLAYER_CHAR car
00D6: if 0
81F3: NOT car 0@ airborne
004D: jump_if_false ЈЈNitro
02E3: $7 = car 0@ speed
00D6: if 0
0018: $nitro > 2 ;; integer values
004D: jump_if_false ЈЈNitro
0011: $7 *= 1.3 ;; floating-point values
0009: $7 += 1.0 ;; floating-point values
000C: $nitro -= 10 ;; integer values
0340: set_text_draw_color 255 128 0 255
0003: shake_camera 100
04BA: set_car 0@ speed_instantly $7
00AA: store_car 0@ position_to 3@ 4@ 5@
000F: 5@ -= .9 ;; floating-point values
0437: scatter_particle 27 .5 at 3@ 4@ 5@ 0 0 .0000005
0437: scatter_particle 12 .5 at 3@ 4@ 5@ 0 0 .0000005
0002: jump ЈЈNitro
Общий принцип действия таков. Проверяется существует ли игрок, за рулем ли он. Далее проверка на нажатие клавиш. В моем случаем это ГАЗ+ПОДМИССИЯ, но никто не мешает вам назначить свои. После этого смотриться, не "летит" ли машина и есть ли еще нитро в баках. Для данного кода у меня есть исходник, так сказать, ре-нитро, который постепенно восстанавливает нитро до 100%. Ну а дальше берется скорость машины и увеличивается в 1.3 раза, трясется камера и выдается огонь из-под машины. Все. А вот и код ре-нитро:
:ReNitro
0001: wait 0 ms
00D6: if 0
001A: 100 > $nitro ;; integer values
004D: jump_if_false ЈЈReNitro
0008: $nitro += 5 ;; integer values
0001: wait 1000 ms
0002: jump ЈЈReNitro