Если поставить несколько команд enable_text_draw, игра что-то глючила (не устанавливала нормально этот флаг).
Если поставить enable_text_draw 0 в цикле, это будет подобно enable_text_draw 1, но ты подумал об остальных скриптах? например, во время скрипта татуировки ты включаешь свой скрипт. Пока всё нормально, т. к. твой скрипт пока очищает экран. Но при выключении твоего скрипта игра через несколько секунд вылетит. Проверено мной. Скомпили этот скрипт:
thread 'Zavis' {$CLEO} wait 3500 :begin var 0@: Float // Переменная в процентах, 100.0 - max 1@: Float 2@: Float //X 3@: Float //Scale X end while 8AB0: not key_pressed 0x42 // 'B' key wait 0 end 0@ = 100.0 while 0@ >= 0.1 0@ -= 0.1 // Сколько процентов отнимается за один раз 3@ = 0@ 3@ /= 100.0 3@ *= 250.0 // Масштаб по X 2@ = 3@ 2@ /= 2.0 2@ += 209.0 // X координата левого края 03F0: enable_text_draw 0 038E: draw_box_position 334.0 409.27 size 254.0 14.0 RGBA 0 0 0 255 038E: draw_box_position 334.0 409.27 size 250.0 8.4 RGBA 4 0 157 255 038E: draw_box_position 2@ 409.27 size 3@ 8.4 RGBA 139 136 255 255 if 0AB0: key_pressed 0x4E // 'N' key then Break end wait 0 end jump @begin
Теперь зайди в тату-салон, выбери какую-нибудь татуировку (чтоб на экране была её рисунок).
Теперь включи скрипт, нажав клавишу B. Всё работает. Теперь выключи скрипт, нажав клавишу N. Через секунду игра зависнет.
Теперь замени enable_text_draw 0 на enable_text_draw 1. Всё будет работать.
]]>@gooser -
пример вывода полоски:
var 0@: Float // Переменная в процентах, 100.0 - max 1@: Float 2@: Float //X 3@: Float //Scale X end 0@ = 100.0 while 0@ >= 0.1 0@ -= 0.1 // Сколько процентов отнимается за один раз 3@ = 0@ 3@ /= 100.0 3@ *= 250.0 // Масштаб по X 2@ = 3@ 2@ /= 2.0 2@ += 209.0 // X координата левого края 03F0: enable_text_draw 1 038E: draw_box_position 334.0 409.27 size 254.0 14.0 RGBA 0 0 0 255 038E: draw_box_position 334.0 409.27 size 250.0 8.4 RGBA 4 0 157 255 038E: draw_box_position 2@ 409.27 size 3@ 8.4 RGBA 139 136 255 255 wait 0 end
Реальный пример вывода полоски (отображение здоровья машины):
thread 'CarWr' {$CLEO} wait 3500 :Begin var $PLAYER_CHAR: Player $PLAYER_ACTOR: Actor 0@: Float // Переменная в процентах, 100.0 - max 1@: Float 2@: Float //X 3@: Float //Scale X 5@: Integer 6@: Integer 7@: Integer 8@: Integer 10@: Car end 0@ = 100.0 while true if $PLAYER_CHAR.Defined then if $PLAYER_ACTOR.Driving then 03c0: 10@ = actor $PLAYER_ACTOR car while $PLAYER_ACTOR.InCar(10@) 0@ = 10@.Health {0@ -= 1 10@.Health = 0@} 0093: 0@ = integer 0@ to_float 0@ -= 250.0 if 0@ < 0.0 then 0@ = 0.0 end if 0@ >= 750.0 then 0@ = 749.9 end 3@ = 0@ 3@ /= 750.0 3@ *= 250.0 // Масштаб по X 2@ = 3@ 2@ /= 2.0 2@ += 209.0 // X координата левого края 0@ /= 2.9411764705882352 0092: 7@ = float 0@ to_integer if 7@ > 127 then 8@ = 255 7@ -= 127 7@ *= -2 7@ += 255 0513: show_text_box_1number 'NUMBER' number 7@ else 8@ = 7@ 8@ *= 2 7@ = 255 end 5@ = 7@ 6@ = 8@ 5@ *= 0.5 6@ *= 0.5 03F0: enable_text_draw 1 038E: draw_box_position 334.0 409.27 size 254.0 14.0 RGBA 0 0 0 255 038E: draw_box_position 334.0 409.27 size 250.0 8.4 RGBA 5@ 6@ 0 255 038E: draw_box_position 2@ 409.27 size 3@ 8.4 RGBA 7@ 8@ 0 255 wait 0 end //While 10@.RemoveReferences end // if Driving end // if Def wait 0 end
EDIT: Извиняюсь, скрипт вывода здоровья машины был с ошибкой, сейчас подправлено
]]>процесс не ускоришь, а вот замедлить можно путём увеличения интервала
]]>если не проверил, не спорь :Р это бесполезно)))))
]]>