You are not logged in.
Pages: 1
Всем привет,мне нужна ваша помощь,я делаю скрипт здоровье шин,вроде бы всё сделал,но почему-то цыфры выходят очень большие,в минусе,и одни цыфры наложены на другие,и в итоге получается не цыфры,а каша,сам проблему я не могу найти,прошу помогите,как сделать текст(цыфры) нормальным.
{$CLEO .cs} //-------------MAIN--------------- thread "HEALTH_TIRE" 33@ = 1000 :HEALTH_TIRE_23 wait 1 if Player.Defined($PLAYER_CHAR) else_jump @HEALTH_TIRE_23 if Actor.Driving($PLAYER_ACTOR) else_jump @HEALTH_TIRE_23 03C0: 5@ = actor $PLAYER_ACTOR car 03E4: enable_text_draw_align_right 1 033F: set_text_draw_letter_size 0.5 0.8 0340: set_text_draw_RGBA 180 25 29 255 081C: draw_text_outline 1 RGBA 0 0 0 55 045A: draw_text_1number 559.0 98.0 GXT 'NUMBER' number 33@ // ~1~ if 00E1: player 0 pressed_key 6 else_jump @HEALTH_TIRE_230 33@ -= 1 jump @HEALTH_TIRE_23 :HEALTH_TIRE_162 wait 0 if not Actor.Driving($PLAYER_ACTOR) else_jump @HEALTH_TIRE_162 03F0: enable_text_draw 0 Car.RemoveReferences(5@) 33@ = 1000 jump @HEALTH_TIRE_23 :HEALTH_TIRE_206 wait 0 Car.RemoveReferences(5@) 33@ = 1000 jump @HEALTH_TIRE_23 :HEALTH_TIRE_230 wait 0 if and 00E1: player 0 pressed_key 16 00E1: player 0 pressed_key 14 else_jump @HEALTH_TIRE_271 33@ -= 2 jump @HEALTH_TIRE_23 :HEALTH_TIRE_271 wait 0 0209: 19@ = random_int_in_ranges 0 10000 if 19@ == 5 else_jump @HEALTH_TIRE_23 33@ -= 1 jump @HEALTH_TIRE_23 :HEALTH_TIRE_317 wait 0 if not 33@ >= 300 else_jump @HEALTH_TIRE_317 066B: 24@ = attach_particle "PRT_SMOKE_HUGE" to_car 5@ with_offset 1.0 -1.0 0.0 flag 1 064C: make_particle 24@ visible 066B: 25@ = attach_particle "PRT_SMOKE_HUGE" to_car 5@ with_offset -1.0 -1.0 0.0 flag 1 064C: make_particle 25@ visible jump @HEALTH_TIRE_439 :HEALTH_TIRE_439 wait 0 if 33@ >= 300 else_jump @HEALTH_TIRE_439 0650: destroy_particle 24@ 0650: destroy_particle 25@ :HEALTH_TIRE_472 wait 0 if not 33@ >= 1 else_jump @HEALTH_TIRE_472 if 8496: not tire 3 on_car 5@ deflated else_jump @HEALTH_TIRE_472 0496: tire 3 on_car 5@ deflated jump @HEALTH_TIRE_526 :HEALTH_TIRE_526 wait 0 if 8496: not tire 4 on_car 5@ deflated else_jump @HEALTH_TIRE_526 0496: tire 3 on_car 5@ deflated jump @HEALTH_TIRE_472 :HEALTH_TIRE_562 wait 0 16@ = Car.Health(5@) if 16@ >= 1000 else_jump @HEALTH_TIRE_562 jump @HEALTH_TIRE_206
Offline
омг что за бред?)) зачем случайные числа, вычитание из 1000...у шин нет здоровья, шина или есть, или её нету...
код ужас...метки, метки, метки...
цифры большие, потому что написано херовато
я так понял, ты хочешь убавлять мнимое здоровье шин при езде/сильнее при пробуксовке, а потом взрывать их? ну, это можно было и попроще сделать...
и ещё, для взрыва шины лучше использовать не проверочный опкод 0496, а предназначенный для этого...не помню, какой, поищи по слову "tire" со словарём в руке)))
и имя потока задавать не обязательно, но если уж делаешь, оно не должно превышать 7 символов
и ещё, неплохо бы привязывать дым прямо к колёсам, а не тупо на шару +1 -1 от центра машины...хотя, надо будет из памяти их координаты читать, а это уже сложнее))
вот так бы сделал я...если что непонятно, спрашивай:crazy:
{$CLEO .cs} wait 1000 while true wait 100 while Player.Defined($PLAYER_CHAR) wait 100 while Actor.Driving($PLAYER_ACTOR) wait 100 1@=1000.0 5@=0 6@=0 03C0: 0@ = actor $PLAYER_ACTOR car if and 0496: tire 1 on_car 0@ deflated 0496: tire 3 on_car 0@ deflated then 1@=0 end while Actor.Driving($PLAYER_ACTOR) wait 0 gosub @drawtext while 00E1: player 0 pressed_key 6 wait 0 gosub @drawtext gosub @getspeed if 2@>20 then 1@-=1.0 end end if and 00E1: player 0 pressed_key 16 00E1: player 0 pressed_key 14 then gosub @getspeed if 2@<3 then 1@-=2.0 end end if and 6@==0 1@<1.0 then 04FE: deflate_tire 1 on_car 0@ 04FE: deflate_tire 3 on_car 0@ 6@=1 end if and 5@==0 1@<=300.0 then 066B: 3@ = attach_particle "prt_smokeII_3_expand" to_car 0@ with_offset 1.0 -1.0 -0.5 flag 1 066B: 4@ = attach_particle "prt_smokeII_3_expand" to_car 0@ with_offset -1.0 -1.0 -0.5 flag 1 064C: make_particle 3@ visible 064C: make_particle 4@ visible 5@=1 end if 6@==1 then 1@=0.0 end end //driving cycle if 5@==1 then 0650: destroy_particle 3@ 0650: destroy_particle 4@ end 064F: remove_references_to_particle 3@ 064F: remove_references_to_particle 4@ 01C3: remove_references_to_car 0@ end //in car end //pldef end //cycle :getspeed 02E3: 2@ = car 0@ speed 2@*=3.6 0092: 2@ = float 2@ to_integer return :drawtext 03E4: enable_text_draw_align_right 1 033F: set_text_draw_letter_size 0.5 0.8 0340: set_text_draw_RGBA 180 25 29 255 081C: draw_text_outline 1 RGBA 0 0 0 55 0092: 7@ = float 1@ to_integer 045A: draw_text_1number 559.0 98.0 GXT 'NUMBER' number 7@ 03F0: enable_text_draw 0 return
Last edited by 3Doomer (09-08-2010 19:58)
GIMS developer
Offline
Да чё тут спрашивать,что бы ты снова начал осуждать,и вообще я в скриптинге 1 мес и не знаю Then,end и т.п,и ещё я всё сам сделал,я поменял локальную переменную,на глобальную(и ещё пару вещей),и всё ок стало.
Offline
Ну всё равно,спасибо!Чё не получится,обращусь снова.
Offline
причём не только разработчику
Offline
Pages: 1