You are not logged in.
Pages: 1
Всем привет, я начинающий скриптер (клео) и хотел бы создать хелсометр транспортного средства, т.е. красную полоску, отображающую здоровье машины. Размещение на экране не важно. Если кто-то может, напишите скрипт с подробными (ну, простейшее можно не объяснять ) комментариями каждой строки. Заранее спасибо.
Offline
я подробно описать не могу, так как скрипт не мой, но выложу
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
100 постов - 27 августа;
Offline
нафига ты начинающему такой сложный даёшь?)))
попроще дам:
{$VERSION 3.1.0027} //нужная фигня {$CLEO .cs} //нужная фигня 0000: NOP //нужная фигня thread 'CHEALBR' //обзываем поток(не обязательно) :def wait 0 if and 0256: player $PLAYER_CHAR defined //Проверка на созданность игрока 00DF: actor $PLAYER_ACTOR driving //Проверка на то что игрок за рулём 847A: not actor $PLAYER_ACTOR driving_bike //у великов здоровье не тратится 8241: not player $PLAYER_CHAR in_remote_mode //и у игрушек тоже jf @def 03C0: 0@ = actor $PLAYER_ACTOR car //заносим машину игрока в переменную :end wait 0 0227: 1@ = car 0@ health //получаем её здоровье 008F: 1@ = integer 1@ to_float //превращаем число из целого в десятичное 1@ /= 7.5 //это для ровности чисел....изначально у машины здоровье = 750 03E3: set_texture_to_be_drawn_antialiased 1 //это чтобы нарисованное на экране нормально отображалось 038E: draw_box_position 320.0 400.0 size 1@ 10.0 RGBA 255 0 0 255 //выводим красный прямоугольничег с заданной шириной 03F0: enable_text_draw 0 //убираем прямоугольничег if 80DF: not actor $PLAYER_ACTOR driving //проверка на то что игрок вылез из машины jf @end //если нет, снова и снова показываем здоровье 01C3: remove_references_to_car 0@ //освобождаем память от хендла машины jump @def //в начало
GIMS developer
Offline
А как сделать чтоб справа налево полоса уменьшалась?
Offline
Offline
Вах, спасибо всем)))
Ну я не совсем начинающий, уже несколько скриптов простеньких есть, в том числе и для сампа(угу, не говорите что клео не умеет определять игроков сампа ). Буду копить опыт, может со временем склею нечто действительно интересное))
EDIT______________________
сделал небольшой апдейт, по идее можно перемещать хелсбар нажатием H + стрелка вверх, вниз, влево, вправо, но чото непашет, в чем ошибка?
{$VERSION 3.1.0027} {$CLEO .cs} thread 'HP_meter' 1@ = 304477 //up, hi 2@ = 304478 //down, lo 3@ = 304478 //left, hi 4@ = 304479 //right, lo 6@ = 320.0 //iznachalno, x 7@ = 400.0 //iznachalno, y 8@ = 304538 //H, lo :hp wait 0 if and 0256: player $PLAYER_CHAR defined 00DF: actor $PLAYER_ACTOR driving 8241: not player $PLAYER_CHAR in_remote_mode jf @hp 03C0: 0@ = actor $PLAYER_ACTOR car :hp1 wait 0 0227: 5@ = car 0@ health 008F: 5@ = integer 5@ to_float 5@ /= 7.5 03E3: set_texture_to_be_drawn_antialiased 1 038E: draw_box_position 6@ 7@ size 1@ 10.0 RGBA 255 0 0 255 03F0: enable_text_draw 0 if 80DF: not actor $PLAYER_ACTOR driving jf @hp1 01C3: remove_references_to_car 0@ :hp2_up wait 10 if and &0(1@,1i) == 0x00FF0000 &0(8@,1i) == 0xFF jf @hp 7@ += 5 wait 10 :hp2_down if and &0(2@,1i) == 0xFF &0(8@,1i) == 0xFF jf @hp 7@ -= 5 wait 10 :hp2_left if and &0(3@,1i) == 0x00FF0000 &0(8@,1i) == 0xFF jf @hp 6@ -= 5 wait 10 :hp2_right if and &0(4@,1i) == 0xFF &0(8@,1i) == 0xFF jf @hp 6@ += 5 wait 100 jump @hp
Last edited by Wire (19-08-2009 20:52)
Offline
оххх, я бы рад, так если б он у меня работал)
0AB0: key_pressed 0 такаято - непашет(
Offline
Offline
в справке к СБ смотри CLEO-> список значений кнопок
и коды можно писать не только в HEX но и в decimal
что для меня проще
хотя различий нет
100 постов - 27 августа;
Offline
а как сделать черный ободок вокруг полоски?
нашел какойто опкод, нето?
0937: text_draw_box_cornerA 62@ 74@ cornerB 86@ 98@ GXT_reference 'DUMMY' style 0
Offline
Offline
я не понял, что здесь означают переменные)
Offline
а ты создавай черный кубик чуть больше хеалз бара и размещай влево и повыше, будет как ободок
100 постов - 27 августа;
Offline
а ты создавай черный кубик чуть больше хеалз бара и размещай влево и повыше, будет как ободок
Так и есть в первом скрипте)
Offline
я знаю
100 постов - 27 августа;
Offline
спасибо всем, и отдельное 3думеру за руководство по асе)))
сделал наконецто, вот кому нужно:
http://dump.ru/file/3271463
Offline
тебе надо у великов здоровье убрать, потому что велики неуязвимы
100 постов - 27 августа;
Offline
Pages: 1