#1 16-06-2008 10:53

svetka
Registered: 29-12-2006
Posts: 222

Спидометр

Автор: Olegator.
Текстуры: FunGt.

Кардинальное редактирование (оптимизация скрипта [код сокращен на 43%], вывод информации о текущей передаче current_gear [в нижней части спидометра],  да и вообще куча мелких, но важных изменений): Seemann

Добавление проверки на возгорание авто, совмещение текстур с радаром, ночная подсветка: я, (Svetka)

{$CLEO}
0000:

:NONAME_2
wait 250 
   Player.Defined($PLAYER_CHAR)
   jf @NONAME_2    
if and
   Actor.Driving($PLAYER_ACTOR)
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
84A7:   not actor $PLAYER_ACTOR driving_boat 
jf @NONAME_2   
wait 250
03C0: 10@ = actor $PLAYER_ACTOR car 
0390: load_txd_dictionary "SPEED" 
038F: load_texture "STRELK" as 15 // Load dictionary with 0390 first 
038F: load_texture "CIF" as 16 // Load dictionary with 0390 first 
038F: load_texture "CIFN" as 17 // Load dictionary with 0390 first 
038F: load_texture "STRELKN" as 18 // Load dictionary with 0390 first 
gosub @NONAME_122 
0391: release_txd_dictionary  
jump @NONAME_2 

:NONAME_122
wait 0 
   Actor.Driving($PLAYER_ACTOR)
jf @NONAME_2   
0AA1: return_if_false  
8495:   not car 10@ burning  
0AA1: return_if_false 
00BF: 12@ = current_time_hours, 13@ = current_time_minutes 
if and
  12@ >= 6 
  21 > 12@ 
jf @NONAME_194 
8@ = 16 
9@ = 15 
jump @NONAME_208 

:NONAME_194
8@ = 17 
9@ = 18 

:NONAME_208
02E3: 2@ = car 10@ speed 
2@ *= 4.0 
03F0: enable_text_draw 1 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 8@ position 83.5 385.0 size 281.0 260.0 RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 9@ position 83.5 385.0 scale 281.0 260.0 angle 2@ color_RGBA 255 255 255 255 
0AB8: get_vehicle 10@ current_gear_to 11@ 
0340: set_text_draw_RGBA 231 225 29 255 
045A: draw_text_1number 85.5 428.2 GXT 'BJ_0' number 11@  // ~1~
jump @NONAME_122

Last edited by svetka (16-06-2008 13:02)

Offline

#2 16-06-2008 11:25

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: Спидометр

@svetka -
А зачем дважды 03F0: enable_text_draw 1 ??


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#3 16-06-2008 12:07

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

Здорово, мой спидометр модифицировали:D и снова без битого стекла:D
сейчас заценим=)

[large]Updated[/large]
Передачу лучше выводить текстурой, чтобы цыфра не перекрывала стрелку.

Last edited by flashTrash (16-06-2008 12:17)

Offline

#4 16-06-2008 12:17

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Capushon, сейчас мне трудно что-то сообразить. В голове 100 дел ) Позже отвечу )

flashTrash, так Olegator - это ты?
Заценивай и говори, как тебе? smile

Offline

#5 16-06-2008 12:18

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

2svetka.
Угу, он самый=)
Я его всё хотел переписать, но меня останавливало одно - это всплывающие надписи, которые наплывают на спидометр. Я сперва хотел найти адреса координат отображения названия зон, чтобы их переместить немного, но не нашел.

Текстурки бы перерисовать еще. Как насчет такой?
spyq8.th.jpg
Если нравится, то до делаю её.=)
И, еще  у меня спидометр как то приплюснутым выглядит, у всех так?

Last edited by flashTrash (16-06-2008 12:31)

Offline

#6 16-06-2008 12:28

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Спидометр

flashTrash, так Olegator - это ты?

Угу, он самый

Вау, вот это новость для меня. Я и не знал smile То-то я думал, кто это к нам с keiby.com пожаловал.. smile

По теме: @Capushon - верное замечание, второй enable_text_draw 1 конечно лишний. Убрал.

@flashTrash -

Передачу лучше выводить текстурой, чтобы цыфра не перекрывала стрелку.

Лучше сдвинуть ее (цифру) чуть правее, где стрелка не достанет

Last edited by Seemann (16-06-2008 12:32)

Offline

#7 16-06-2008 12:43

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

flashTrash, здорово! Так ведь ты и машины делаешь?
А по-поводу вывода текстур передач... А вот взял бы, да и дописал! smile  Cпидометр же твой )
Бьющийся спидометр - это здорово. Я и текстуру соответствующую сделала. Но вот только лично я наверное не самый лучший ездок. Стоит чуть кого-нибудь задеть, и езди потом с битым спидометром всю дорогу. А в покрасочную не накатаешься )  Поэтому я убрала это и из скрипта, и из txd.

*****
Спидометр приплюснут из-за радара. Радар не круглый, а слегка овальный ) Сначала я его круглым и делала. А мне даже наоборот нравится, что он слегка приплюснут.
А вот текстуры мне нравятся те, что сейчас. Хотя твой новый вариант тоже неплохой. Только черточек между цифрами бы прибавить )
А еще мне нравился спидометр, который был в папке возможных вариантов: gauge speedometer chart .

*****
Seemann, сейчас подвигаю цифры передачи )

*****
Подвинула. Цифры четко рядом со стрелкой.
Seemann, но ведь тогда придется установки для всех авто редактировать.

Last edited by svetka (16-06-2008 13:04)

Offline

#8 16-06-2008 13:00

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Спидометр

Стоит чуть кого-нибудь задеть, и езди потом с битым спидометром всю дорогу.

зависит от того, при каких повреждениях машины "бить" спидометр. если поставить проверку на жизнь машины в районе 600-700, то спидометр будет биться не сразу.

Offline

#9 16-06-2008 13:03

Worm
Registered: 10-06-2008
Posts: 25

Re: Спидометр

Уважаемые! Пожалуста измените текстуру, я не умею, пускай будет такая, которую дал flashTrash, только без рамки и вместо черного - прозрачность! И пожалуста уберите внизу спидометра цифры скоростей! А спидометр отличный! Это первый спид, из-за которого у меня игрушка не тупит! Ура! Только отредактируйте плиииз!

Offline

#10 16-06-2008 13:05

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

svetka
Машины я одно время моделил(вернее конвертировал), но давно это дело забросил, ибо не моё это.
Насчет битого стекла - мне и самому эта идея уже давно разонравилась.

А вот взял бы, да и дописал!

Допишу попозже, как текстуры сделаю=) .

Seemann

Лучше сдвинуть ее (цифру) чуть правее, где стрелка не достанет

можно и так, но текстурами можно сделать цифру любым шрифтом, в тон спидометру=)

Offline

#11 16-06-2008 13:10

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Спидометр

Seemann, но ведь тогда придется установки для всех авто редактировать.

ничего не придется. Стартовый показатель здоровья для каждой машины = 1000. ты проверяешь здоровье текущей машины, если оно меньше 600 - "бьешь" спидометр.

Offline

#12 16-06-2008 13:16

Worm
Registered: 10-06-2008
Posts: 25

Re: Спидометр

Спасите меня!:crazy:

Offline

#13 16-06-2008 13:23

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Worm, у меня нет слов ))  Собирай подписи в защиту своей просьбы, желательно на сторублевых банкнотах )

flashTrash,

Допишу попозже, как текстуры сделаю

Было бы очень здорово )

Seemann, вот видишь, ты как рыба в воде в этом скриптинге )

Offline

#14 16-06-2008 14:24

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Seemann,

Стартовый показатель здоровья для каждой машины = 1000. ты проверяешь здоровье текущей машины, если оно меньше 600 - "бьешь" спидометр.

Ё-мое. До меня только сейчас дошло. А ведь очень хорошая идея! smile  Просто что-то голова медленно соображает. Жара что ли ) Еле дошло до меня ))

Offline

#15 16-06-2008 18:55

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

Вот, отрисовка передачи текстурами и заготовка для отрисовки битого спидометра.

{$CLEO}
0000:
var
 0@ :Array 6 of Integer
 17@ :Integer
 14@ :Integer
end // var
const
 Gear = 0@
end // const

:NONAME_2
wait 250 
   Player.Defined($PLAYER_CHAR)
   jf @NONAME_2    
if and
   Actor.Driving($PLAYER_ACTOR)
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
84A7:   not actor $PLAYER_ACTOR driving_boat 
jf @NONAME_2   
wait 250
03C0: 10@ = actor $PLAYER_ACTOR car 
0390: load_txd_dictionary "SPEED" 
038F: load_texture "STRELK" as 15 // Load dictionary with 0390 first 
038F: load_texture "CIF" as 16 // Load dictionary with 0390 first 
038F: load_texture "CIFN" as 17 // Load dictionary with 0390 first 
038F: load_texture "STRELKN" as 18 // Load dictionary with 0390 first 
///////////
038F: load_texture "1" as 1 // Load dictionary with 0390 first 
038F: load_texture "2" as 2 // Load dictionary with 0390 first 
038F: load_texture "3" as 3 // Load dictionary with 0390 first 
038F: load_texture "4" as 4 // Load dictionary with 0390 first 
038F: load_texture "5" as 5 // Load dictionary with 0390 first
038F: load_texture "r" as 6 // Load dictionary with 0390 first
0@ = 6
1@ = 1
2@ = 2
3@ = 3
4@ = 4
5@ = 5
0209: 17@ = random_int_in_ranges 300 601 
///////////
gosub @NONAME_122 
0391: release_txd_dictionary  
jump @NONAME_2 

:NONAME_122
wait 0 
   Actor.Driving($PLAYER_ACTOR)
jf @NONAME_2   
0AA1: return_if_false  
8495:   not car 10@ burning  
0AA1: return_if_false 
00BF: 12@ = current_time_hours, 13@ = current_time_minutes 
if and
  12@ >= 6 
  21 > 12@ 
jf @NONAME_194 
8@ = 16 
9@ = 15 
jump @NONAME_208 

:NONAME_194
8@ = 17 
9@ = 18 

:NONAME_208
02E3: 7@ = car 10@ speed 
//14@ = Car.Health(10@)
7@ *= 4.0
03F0: enable_text_draw 1 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 8@ position 83.5 385.0 size 281.0 260.0 RGBA 255 255 255 255 
///////// отрисовка передачи
0AB8: get_vehicle 10@ current_gear_to 11@ 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture Gear[11@] position 83.5 428.2 size 67.5 60.0 RGBA 255 255 255 255 
/////////
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 9@ position 83.5 385.0 scale 281.0 260.0 angle 7@ color_RGBA 255 255 255 255   //1,125
//if and
//not 14@ >= 17@
//03C9:   car 10@ damaged
//jf @NONAME_122
//
// отрисовка битого стекла
//                          
jump @NONAME_122

И мой вариант расположения спидометра(АХТУНГ! текстуры названны подругому!) smile

{$CLEO}
0000:
var
 0@ :Array 6 of Integer
end // var
const
 Gear = 0@
end // const

:NONAME_2
wait 250 
   Player.Defined($PLAYER_CHAR)
   jf @NONAME_2    
if and
   Actor.Driving($PLAYER_ACTOR)
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
84A7:   not actor $PLAYER_ACTOR driving_boat 
jf @NONAME_2   
wait 250
03C0: 10@ = actor $PLAYER_ACTOR car 
0390: load_txd_dictionary "SPEED2"
038F: load_texture "1" as 1 // Load dictionary with 0390 first 
038F: load_texture "2" as 2 // Load dictionary with 0390 first 
038F: load_texture "3" as 3 // Load dictionary with 0390 first 
038F: load_texture "4" as 4 // Load dictionary with 0390 first 
038F: load_texture "5" as 5 // Load dictionary with 0390 first
038F: load_texture "r" as 6 // Load dictionary with 0390 first
038F: load_texture "sp" as 7 // Load dictionary with 0390 first 
038F: load_texture "spnight" as 8 // Load dictionary with 0390 first 
038F: load_texture "spar" as 9 // Load dictionary with 0390 first 
038F: load_texture "sparnight" as 10 // Load dictionary with 0390 first 
0@ = 6
1@ = 1
2@ = 2
3@ = 3
4@ = 4
5@ = 5
gosub @NONAME_122 
0391: release_txd_dictionary  
jump @NONAME_2 

:NONAME_122
wait 0 
   Actor.Driving($PLAYER_ACTOR)
jf @NONAME_2   
0AA1: return_if_false  
8495:   not car 10@ burning  
0AA1: return_if_false 
00BF: 12@ = current_time_hours, 13@ = current_time_minutes 
if and
  12@ >= 6 
  21 > 12@ 
jf @NONAME_194 
8@ = 7 
9@ = 9 
jump @NONAME_208 

:NONAME_194
8@ = 8 
9@ = 10 

:NONAME_208
02E3: 7@ = car 10@ speed 
7@ *= 3.7 
7@ += 40.0
03F0: enable_text_draw 1 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 8@ position 550.0 360.0 size 180.0 160.0 RGBA 255 255 255 255 
0AB8: get_vehicle 10@ current_gear_to 11@ 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture Gear[11@] position 550.0 406.2 size 67.5 60.0 RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 9@ position 550.0 360.0 scale 180.0 160.0 angle 7@ color_RGBA 255 255 255 255   //1,125
jump @NONAME_122

[large]Обновленно.[/large]

Last edited by flashTrash (16-06-2008 20:06)

Offline

#16 16-06-2008 19:30

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

flashTrash, я опробовала твой вариант (тот, что в sp3.rar )3 раза подряд. На сороковой секунде езды картинка застывает и игрушка вылетает (

Offline

#17 16-06-2008 19:54

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

Если вылетает на большой скорости, то потому, что я пятую передачу непридусмотрел. длин, а всё из-за того, что я езжу на четырёх ступенчатой...

Offline

#18 17-06-2008 07:13

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

flashTrash, теперь всё хорошо ) Но вот всплывающие названия зон... Да еще во время гонок текущее время висит на правой части спидометра.
А твои новые текстуры лучше оценивать в игре. Там они смотрятся конечно же по-другому. Мне понравились )

Offline

#19 17-06-2008 08:05

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

svetka
С названиями зон да, беда=(. А вот в гонках(для праворасположенного сп.), лоурайдерских соревнованиях и еще где-то(непомню где) спидометр надо отключать.
И потом хочу нарисовать текстуру для леворасположенного спидометра=)
Также неплохо бы решить какой коэфициэнт умножения нужен, чтобы переводить скорость непонятно в чем в километры(мили).

P.S.
Объясните тёмному, как работает эта конструкция?

0AA1: return_if_false  
8495:   not car 10@ burning  
0AA1: return_if_false

и почему 0AA1: до и после проверки?

Offline

#20 17-06-2008 12:18

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

flashTrash, почему надо отключать? Для эстетики восприятия?

И потом хочу нарисовать текстуру для леворасположенного спидометра

А почему ту, что есть не приспособить?

Также неплохо бы решить какой коэфициэнт умножения нужен, чтобы переводить скорость непонятно в чем в километры(мили).

Лично для меня это пока такой темный лес, что в глазах туман от одной только мысли о перспективах подобных изысканий ))

Объясните тёмному, как работает эта конструкция?

Эх... Seemann где-то ведь объяснял... Поискала по форуму - не нашла (

Offline

#21 17-06-2008 12:52

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

svetka, в соревнованиях лоурайдеров тоже используются текстуры из внешнего TXD, и текстуры от туда "затирают" текстуры спидометра. Да и играть он там мешает. В гонках можно оставить левый сп. , думаю несовместимостей у них не будет.
В остальных миссиях может и можно оставить, не знаю даже как лучше.

А почему ту, что есть не приспособить?

Если текстуру FunGt, то её надо подровнять слегка. Если ту, что я нарисовал, то там, если сделать дырку для радара и отмасштабировать сп, чтоб за края экрана не вылезал, то текстура будет либо закрывать часть радара, либо если, дырку увеличить, обрешутся цифры. Ну и стрелку надо нарисовать такую, чтобы не мешала.

Лично для меня это пока такой темный лес

Для меня лично тоже, т. к. не имею понятия в чем исчисляется скорость "в стандарте". И как высчитывается максимальная скорость у машины.

Offline

#22 17-06-2008 13:29

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Спидометр

Объясните тёмному, как работает эта конструкция?

В моем варианте это выглядело так:

0001: wait 0 ms 
00DF:   actor $PLAYER_ACTOR driving 
0AA1: return_if_false 
8495:   not car 10@ burning
0AA1: return_if_false

Т.е. здесь идут подряд 2 условия, только вместо jump_if_false используется return_if_false. 00D6 для одиночных условий можно пропускать.

В варианте из первого сообщения jf @NONAME_2 конечно лишнее.

Offline

#23 17-06-2008 14:25

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Спидометр

Offtop
Seemann.
Тоесть 0AA1: может работать и с простым gosub'ом 0050: ? Я то думал он только с 0AA0: работает...

Может.

Last edited by Seemann (17-06-2008 14:41)

Offline

#24 17-06-2008 16:24

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Спидометр

Также неплохо бы решить какой коэфициэнт умножения нужен, чтобы переводить скорость непонятно в чем в километры(мили).

Опкод 02E3 возвращает следующее число: скорость машины (velocity) * 50.0

Смотрим handing.cfg на предмет velocity:

; velocity in Km/h
; (N) TransmissionData.fMaxVelocity        [5.0 to 150.0]

Дальше думаем сами.

Offline

#25 17-06-2008 18:41

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Спидометр

Я тоже недавно написал спдметр...зацените http://webfile.ru/2027661
Писал сам, чтобы научиться)))

Last edited by 3Doomer (17-06-2008 19:08)


GIMS developer

Offline

Board footer

Powered by FluxBB