#26 17-06-2008 20:18

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

Re: Спидометр

3Doomer
Покажи пожалуйсто код. Исходник.

Добавленно.
3Doomer
А исходник выложить слабо?

Last edited by flashTrash (17-06-2008 22:53)

Offline

#27 17-06-2008 20:21

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

Re: Спидометр

А декомпильнуть слабо было?


// This file was decompiled using SASCM.INI published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'SPDMETR' 
wait 1000 

:SPDMETR_16
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @SPDMETR_16 
2@ = 600.0 
0390: load_txd_dictionary 'SPDMETR' 
038F: load_texture "REVERSE" as 20 // Load dictionary with 0390 first 
038F: load_texture "1" as 21 // Load dictionary with 0390 first 
038F: load_texture "2" as 22 // Load dictionary with 0390 first 
038F: load_texture "3" as 23 // Load dictionary with 0390 first 
038F: load_texture "4" as 24 // Load dictionary with 0390 first 
038F: load_texture "5" as 25 // Load dictionary with 0390 first 
038F: load_texture "5" as 26 // Load dictionary with 0390 first 
038F: load_texture "STRELKO" as 27 // Load dictionary with 0390 first 
038F: load_texture "SPDMRDM" as 28 // Load dictionary with 0390 first 
038F: load_texture "SPDBASE" as 29 // Load dictionary with 0390 first 
wait 1000 

:SPDMETR_156
wait 0 
if and
   Actor.Driving($PLAYER_ACTOR)
84A7:   not actor $PLAYER_ACTOR driving_boat 
   not Actor.DrivingPlane($PLAYER_ACTOR)
84A9:   not actor $PLAYER_ACTOR driving_heli 
847A:   not actor $PLAYER_ACTOR driving_bike 
else_jump @SPDMETR_156 
08D4: 10@ = create_panel_with_title 'DUMMY' position 585.0 327.0 width 50.0 columns 1 interactive 0 background 0 alignment 0 
08DB: set_panel 10@ column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 
03C0: 0@ = actor $PLAYER_ACTOR car 

:SPDMETR_365
wait 0 
0AB8: get_vehicle 0@ current_gear_to 3@ 
3@ += 20 
02E3: 1@ = car 0@ speed 
1@ *= 2.5 
1@ += -22.5 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 29 position 565.0 376.0 scale 150.0 150.0 angle 180.0 color_RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 27 position 560.0 386.0 scale 150.0 150.0 angle 1@ color_RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 3@ position 565.0 376.0 scale 150.0 150.0 angle 180.0 color_RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 28 position 572.5 2@ scale 150.0 150.0 angle 180.0 color_RGBA 255 255 255 255 
02E3: 11@ = car 0@ speed 
11@ *= 2.5 
008C: 11@ = float 11@ to_integer 
08EE: set_panel 10@ column 0 row 0 text_1number GXT 'NUMBER' number 11@  // ~1~
03F0: enable_text_draw 0 
2@ = 600.0 
if 
8185:   not car 0@ health >= 500 
else_jump @SPDMETR_679 
2@ = 387.0 

:SPDMETR_679
if 
   not Actor.Driving($PLAYER_ACTOR)
else_jump @SPDMETR_365 
08DA: remove_panel 10@ 
Car.RemoveReferences(0@)
03F0: enable_text_draw 0 
wait 250 
0391: release_txd_dictionary 
wait 250 
jump @SPDMETR_16 
0A93: end_custom_thread

GIMS developer

Offline

#28 17-06-2008 22:34

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

Re: Спидометр

All -

08D4: 10@ = create_panel_with_title 'DUMMY' position 585.0 327.0 width 50.0 columns 1 interactive 0 background 0 alignment 0 
08DB: set_panel 10@ column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

Зачем для вывода картинки спидометра на экран использовать панель???
А если подъехать на машине куда-нибудь где ещё выводися панель (макдрайв, миссия гонок и пр.),
что тогда будет? 2 панели уживутся на эране без глюков???


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

Offline

#29 17-06-2008 22:52

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

Re: Спидометр

В целом не плохо, но использовать панели - это не для этих целей. Также есть некоторое ощущение "незаконченности", наверно из-за рисунка шасси. А чем тебе неугодили байки?

0A93: end_custom_thread

после безусловново перехода ненужен.

Last edited by flashTrash (17-06-2008 22:52)

Offline

#30 18-06-2008 17:27

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

Re: Спидометр

@svetka -

:NONAME_157
0001: wait 0 ms 
00DF:   actor $PLAYER_ACTOR driving 
004D: jump_if_false @NONAME_2 
0AA1: return_if_false

http://sannybuilder.com/forums/viewtopi … 3860#p3860

Offline

#31 21-06-2008 21:09

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

Re: Спидометр

@svetka
488574_bigthumb.jpg
Такие пропорции подойдут?=)

Offline

#32 22-06-2008 05:07

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Относительно радара - да. Но если мой спидометр был приплюснут сверху и снизу, то твой теперь по бокам. Или это эффект фотографии? И сам радар у тебя выглядит абсолютно круглым, в отличии от моего. У меня в игре он слегка эллипсовидный.
А текстура очень симпатичная, аккуратная )

Offline

#33 22-06-2008 06:17

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

Re: Спидометр

@svetka -

Но если мой спидометр был приплюснут сверху и снизу, то твой теперь по бокам.

Пропорции зависят от конкретных мониторов, я уже подымал такой вопрос в теме о мультимоде.


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

Offline

#34 22-06-2008 06:26

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Да, Capushon, я помню. А у тебя какой радар, круглый или эллипсовидный?

Offline

#35 22-06-2008 17:54

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

Re: Спидометр

@svetka -

у тебя какой радар, круглый или эллипсовидный?

Если на текстуре окружность идеально круглая - радар будет круглым на "правильных" мониторах 4x3, на прочих вытянутым по вертикали. Хотя скриптами можно менять пропорции текстуры радара при старте игры, но как проверить тип монитора юзера ...


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

Offline

#36 22-06-2008 18:38

svetka
Registered: 29-12-2006
Posts: 222

Re: Спидометр

Capushon, у меня твой спидометр идеально круглый. А мой радар всё равно элиипсовидный )) Хотя его текстура абсолютно круглая.
Проверять тип монитора?  Эх-х...  Задачка))  Никак, наверное )

Offline

#37 23-06-2008 10:40

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

Re: Спидометр

Вот вобщем склёпал smile . Зацениваем. Правим.

{$CLEO}
var
 0@ :Array 6 of Integer
end // var
const
 Gear = 0@
 AutoSchoolThreadRunning = 23@
 BikeSchoolThreadRunning = 24@
 LowriderThreadRunning = 25@
end // const

0000:

:Noname_2
0001: wait 250 ms 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @Noname_2 
00D6: if and
00DF:   actor $PLAYER_ACTOR driving 
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
84A7:   not actor $PLAYER_ACTOR driving_boat 
004D: jump_if_false @Noname_2 
0AAA: 23@ = thread 'DSKOOL' pointer
0AAA: 24@ = thread 'BSKOOL' pointer
0AAA: 25@ = thread 'LOWR' pointer
if and
AutoSchoolThreadRunning == 0
BikeSchoolThreadRunning == 0
LowriderThreadRunning == 0
jf @NONAME_2
0001: wait 250 ms 
03C0: 10@ = actor $PLAYER_ACTOR car 
0390: load_txd_dictionary "SPEED" 
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 "arrow" as 7 // Load dictionary with 0390 first 
038F: load_texture "tablo" as 8 // Load dictionary with 0390 first 
038F: load_texture "arrown" as 9 // Load dictionary with 0390 first 
038F: load_texture "tablon" as 10 // Load dictionary with 0390 first 
038F: load_texture "1n" as 11 // Load dictionary with 0390 first 
038F: load_texture "2n" as 12 // Load dictionary with 0390 first 
038F: load_texture "3n" as 13 // Load dictionary with 0390 first 
038F: load_texture "4n" as 14 // Load dictionary with 0390 first 
038F: load_texture "5n" as 15 // Load dictionary with 0390 first
038F: load_texture "rn" as 16 // Load dictionary with 0390 first
0050: gosub @Noname_157 
0391: release_txd_dictionary 
0002: jump @Noname_2 

:Noname_157
0001: wait 0 ms 
00DF:   actor $PLAYER_ACTOR driving 
0AA1: return_if_false 
8495:   not car 10@ burning 
0AA1: return_if_false 
00BF: 12@ = current_time_hours, 13@ = current_time_minutes 
if and
0029:   12@ >= 6 
001B:   21 > 12@ 
004D: jump_if_false @Noname_236 
0@ = 6
1@ = 1
2@ = 2
3@ = 3
4@ = 4
5@ = 5
8@ = 8 
9@ = 7 
jump @Noname_250 

:Noname_236
0@ = 16
1@ = 11
2@ = 12
3@ = 13
4@ = 14
5@ = 15
8@ = 10 
9@ = 9 

:Noname_250
02E3: 7@ = car 10@ speed 
0013: 7@ *= 4.0 
7@ += 40.0
03F0: enable_text_draw 1 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 8@ position 87.2 381.7 size 270.0 249.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 87.2 434.2 size 67.5 60.0 RGBA 255 255 255 255 
03E3: set_texture_to_be_drawn_antialiased 1 
074B: draw_texture 9@ position 87.2 381.7 scale 270.0 249.0 angle 7@ color_RGBA 255 255 255 255      //281.0 260.0 old size
0002: jump @Noname_157

Last edited by flashTrash (23-06-2008 10:41)

Offline

#38 28-06-2008 19:55

Centrino Duo
Registered: 08-05-2008
Posts: 99

Re: Спидометр

Ночю классно

Last edited by Centrino Duo (28-06-2008 19:55)

Offline

#39 28-06-2008 20:05

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Спидометр

Проверять тип монитора?  Эх-х...  Задачка))  Никак, наверное )

Но ведь exe проверяет...на том же радаре

Offline

#40 03-08-2008 13:54

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Спидометр

Сорри за офф, но

Seemann wrote:

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

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

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

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

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

Откуда циферка 50.0 ?
по тестам коэфициэнт приблизительно = 3
MaxVelocity с handing.cfg исполузуеться редко, так как только не некоторых машинах стоит флаг "Use Max Speed"
Макс скорость через 02E3 гдето около 50-60
Что кто скажет по этому поводу? Хотелось бы точно знать smile

Offline

#41 03-08-2008 14:25

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

Re: Спидометр

Откуда циферка 50.0 ?

Она из .EXE smile

Offline

#42 03-08-2008 14:45

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Спидометр

Может я конечно чтото не понимаю, но все же, какой коеф надо использовать? rolleyes

Offline

#43 03-08-2008 15:05

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

Re: Спидометр

Насколько знаю одного точного коэфициэнта нет. Я остановился на 3.7
Умножай то значение, которое вернёт 02E3

Offline

#44 03-08-2008 15:39

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Спидометр

Я тож юзал 3,7 smile
Ок, спс

Offline

#45 03-08-2008 15:44

Fess
Registered: 29-04-2008
Posts: 62

Re: Спидометр

А я думал что опкод 02E3 возращает скорость в м/с.

Offline

#46 03-08-2008 16:00

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Спидометр

Да, всё сходиться, только коєф тогда 3,6 clap

Last edited by Yarik (03-08-2008 16:00)

Offline

#47 18-03-2010 06:45

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Спидометр

Интересная идея насчёт спидометра вокруг радара, вот только стрелка заслоняет...

Offline

#48 06-08-2010 13:59

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Спидометр

мне казалось что узнать скорость машины в км\ч нужно скорость полученную опкодом 02E3 (я так понял тут метры в секунду) умножить на 3600 и разделить 1000, короче говоря умножить на 3.6 - чисто математический способ перевести м\с в км\ч...если я не прав - поправьте меня, самому интересно)


userbar.png

Offline

#49 06-08-2010 18:50

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Спидометр

Да, так и есть. Я делал так же точно.

Offline

#50 17-10-2010 11:43

reute70
From: Средняя Волга
Registered: 22-08-2009
Posts: 182

Re: Спидометр

Нашёл мод Vice City Analog Speedometer Mod by spookie - 29th September 2004,
решил перенести текстуру на радар и сделать полупрозрачной, в милях получилось более-менее, с километрами не очень,
одинаковые названия текстур тому способствовали...
кто что может посоветовать (может как d3d8.dll раздербанить или что-то в speedo.cfg прописать)?

Last edited by reute70 (17-10-2010 11:45)

Offline

Board footer

Powered by FluxBB