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