#601 22-08-2008 02:14

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

Re: Один вопрос

flashTrash wrote:

@Seemann
Я решил написать новый скрипт бензомода, и хочу чтобы у каждого авто был свой объём бензобака, который будет записан в .ini-файле, а для этого я использую Quick Opcode Alexander'а, так как по другому не умею работать с .ini sad . А QO работает только с 0@v и не в какую не хочет работать с 0@s.
Конечно можно выкрутиться, но мне интересно - можно или нет.

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

1
123

в файл benzo.ini. Потом открываешь файл через CLEO как байтовый. Читаешь первый байт (это будет 0x31). Отнимаешь 0x30 (перевод текста в число) и получаешь в переменной цифру 1. Это объем первой модели (400). У модели 401 объем будет 2. И т.д. Кроме цифр 1..9 можно использовать буквы. Или сделать бинарный файл с идущими подряд байтами, значение которых определяет объем бака (от 1 до 255).

Примерно так. Но я возможно не заморачивался бы на такие детали, какая в общем-то разница у кого какой бак.

Offline

#602 22-08-2008 10:12

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

Re: Один вопрос

А зачем такие сложности с ини файлом?

чтобы можно было легко менять настройки для каждого авто отдельно, не прибегая к правке кода.

[large]Добавлено.[/large]
@Seemann - Спасибо, выручил=)

Last edited by flashTrash (25-08-2008 23:16)

Offline

#603 22-08-2008 11:13

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

Re: Один вопрос

Ну опять-таки, тебе вряд ли нужно делать 200 баков разных объемов. Потребуется не больше десятка. Можно менять объем бака в зависимости от модели машины - для грузовиков одно, для катеров другое и т.д. Не вижу никакой необходимости в такой тонкой настройке.

Если все же необходимо, то конвертировать строку очень просто, достаточно использовать другой постфикс для переменной (не @v, а @s). Т.е. читаем с ини, используя 0@v, потом в скрипте используем 0@s. Главное, чтобы длина строки была не больше 7 символов.

Offline

#604 23-08-2008 07:41

Noob
Registered: 28-06-2008
Posts: 44

Re: Один вопрос

Народ я уже спрашивал насчет трупов, ну когда убиваешь, он так и будет валяться долго. Труп остается актером, и если сех на улице перебить, то народу больше не станет, так мне объяснил Seemann. А что если использовать этот скрипт в SAMP? Ведь там нет педов, и когда игрока убьешь, бот будет валяться долго. Ну вот поэтому прошу вас, уважаемых профессионалов, написать такой скрипт, чтобы когда убиваешь, труп не исчезал, а валялся минут 8, за исключением если подъедут медики и не вылечат.

Offline

#605 23-08-2008 09:33

grand
Registered: 10-06-2008
Posts: 38

Re: Один вопрос

Как правильно оформлять чекпоинты? Ну что бы он "смотрел" стрелкой на следующий, и проверкой проехал ли игрок?

Offline

#606 23-08-2008 14:49

Marg
Registered: 23-08-2008
Posts: 2

Re: Один вопрос

А как машину заправлять то, не пойму? Какие кнопки нажимать на заправке? У меня "save all 4.2"

Offline

#607 23-08-2008 19:28

grand
Registered: 10-06-2008
Posts: 38

Re: Один вопрос

Marg wrote:

А как машину заправлять то, не пойму? Какие кнопки нажимать на заправке? У меня "save all 4.2"

Нужно просто встать в нужное место и ничего не нажимать!

Last edited by grand (24-08-2008 11:46)

Offline

#608 26-08-2008 20:59

Marg
Registered: 23-08-2008
Posts: 2

Re: Один вопрос

Да, действительно...
Кстати, если я в вертолете, преследующий полицейский вертолет не стреляет по мне, может есть скрипт заставляющий стрелять?

Offline

#609 27-08-2008 12:34

Stallion
Registered: 15-08-2008
Posts: 5

Re: Один вопрос

Centrino Duo wrote:

Можна грузить тока с  .txd файлов.В справке ес

Что подгружается это из .txd я знаю прекрасно, но я не знаю команды, которая выводит эти самые изображения из txd-архивов. Всю справку я облазил, а этого не нашел, поэтому и спросил.
Выводить на экран комиксы было бы гораздо выгоднее, нежели пользоваться стандартной и весьма кривой анимацией...

Offline

#610 29-08-2008 18:09

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

Re: Один вопрос

странно ты искал...

038D
074B


GIMS developer

Offline

#611 30-08-2008 10:43

Stallion
Registered: 15-08-2008
Posts: 5

Re: Один вопрос

Спасибо! wink

Offline

#612 30-08-2008 12:10

Noob
Registered: 28-06-2008
Posts: 44

Re: Один вопрос

Я где-то видел один скрипт с таким описанием: Можно делать фотографии, будто из камеры, но не имея при себе фотоаппарата. Я сначала на него махнул рукой, а вот теперь найти не могу. Народ кто знает напишите его плиз!

Offline

#613 30-08-2008 12:51

grand
Registered: 10-06-2008
Posts: 38

Re: Один вопрос

grand wrote:

Как правильно оформлять чекпоинты? Ну что бы он "смотрел" стрелкой на следующий, и проверкой проехал ли игрок?

Поможете?

Offline

#614 31-08-2008 09:52

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Один вопрос

Почитай статью Создание маркеров, сфер и корон.

AriaMan on Missions.GTAMaps.net wrote:

Сейчас рассмотрим наиболее интересную команду для создания маркера, этой же командой мы сможем создать корону! Этот опкод чаще всего используется в гоночных миссиях, так как ему можно присвоить, аж целых 10 значений, все мы сейчас и рассомотрим! Итак сначала команда:
06D5: $mar1 = create_racing_checkpoint_at [X] [Y] [Z] point_to [X2] [Y2] [Z2] type 0 radius 5.0
Теперь выясним, что значит каждая цифра:
0 - тип маркера
X Y Z - координаты маркера
X2 Y2 Z2 - вторые 3 цифры, используются только в одном случае, если первй параметр 0, так как это маркер со стрелкой внутри, а эти цифры указывают куда направлена стрелка!
5 - диаметр сферы/короны
$mar1 - переменная сферы/короны
Далее, посмотрим все значения, которые можно поставить. (Я всё протестировал)
Параметры сфер:
0 - со стрелкой внутри
1 - с финишным флагом
2 - пустой
3 - корона (при приближении игрока убирается, потом опять появляется)
4 - корона
5 - корона (кривая)
6 - ярко-красная корона, при прохождении через неё исчезает
7 - подвижная корона (летает вверх вниз)
8 - то же, что и 7, только при прохождении через неё, она останавливается, а потом опять летает
Убрать такую сферу/корону можно командой:
06D6: disable_racing_checkpoint $mar1
Переместить можно командой:
07F3: move_racing_checkpoint $mar1 to 0.0 0.0 0.0

Для проверки нахождения игрока есть опкоды:

00EC:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0
00ED:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0 on_foot
00EE:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0 in_car
00EF:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0 stopped
00F0:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0 stopped_on_foot
00F1:   actor $PLAYER_ACTOR sphere 0 near_point 0.0 0.0 radius 4.0 4.0 stopped_in_car
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0
00FF:   actor $PLAYER_ACTOR sphere 0 in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0 on_foot
0100:   actor $PLAYER_ACTOR in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0 sphere 0 in_car
0101:   actor $PLAYER_ACTOR in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0 sphere 0 stopped
0102:   actor $PLAYER_ACTOR in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0 sphere 0 stopped_on_foot
0103:   actor $PLAYER_ACTOR in_sphere 0.0 0.0 0.0 radius 4.0 4.0 4.0 sphere 0 stopped_in_car

Также советую пользоваться Opcode Search Tool (Сервис/Инструменты/Поиск опкодов...)


[small][/small]

Offline

#615 31-08-2008 11:32

grand
Registered: 10-06-2008
Posts: 38

Re: Один вопрос

VcSaJen
Большое спасибо!

Offline

#616 31-08-2008 13:27

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Один вопрос

Как сделать так, что-бы актёр стрелял длинными очередями? А то слишком экономит бесконечные пули.


[small][/small]

Offline

#617 31-08-2008 13:48

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

Re: Один вопрос

@VcSaJen -
Может меткость ему уменьшить, тогда он будет вынужден стрелять дольше grin


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

Offline

#618 02-09-2008 07:08

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Один вопрос

Как заполучить хэндл объекта карты, я что-то потерял опкод, всё время переименовывают?

@Capushon - Я имею ввиду актёр стреляет по пол секунды, когда в магазине ещё полно патронов. В оригинальных миссиях актёры стреляли без задержек.
[---]
Edit:
Допустим, я перехватил объект карты INTERCEPTOR'ом, и теперь как освободить корректно переменную?
Никак не освобождать или использовать RemoveReferences?

Last edited by VcSaJen (02-09-2008 08:40)


[small][/small]

Offline

#619 02-09-2008 09:03

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

Re: Один вопрос

RemoveReferences

Не освобождать чревато


GIMS developer

Offline

#620 02-09-2008 09:33

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

Re: Один вопрос

@VcSaJen - ничего не нужно. Interceptor не меняет референсы объектов, поэтому и трогать ничего не надо.

Offline

#621 04-09-2008 04:44

Noob
Registered: 28-06-2008
Posts: 44

Re: Один вопрос

Скрипт камеры от первого лица:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// 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 'CAM'
1@ = 0
2@ = 0
0000: NOP
3@ = 0.0
4@ = 0.0
5@ = 0.0
 
:CAM_57
wait 0
6@ = 0.0
7@ = -0.1
8@ = 0.69
if
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_398
if
  1@ == 1
else_jump @CAM_132
jump @CAM_268
 
:CAM_132
if and
0AB0:   key_pressed 67
0AB0:   key_pressed 17
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_57
jump @CAM_163
 
:CAM_163
1@ = 1
0059: 6@ += 3@ // (float)
0059: 7@ += 4@ // (float)
0059: 8@ += 5@ // (float)
067C: put_camera_on_actor $PLAYER_ACTOR with_offset 6@ 7@ 8@ rotation 0.0 90.0 0.0 0.0 2
2@ = 0
if
0AB0:   key_pressed 17
0AB0:   key_pressed 88
else_jump @CAM_57
wait 500
jump @CAM_57
 
:CAM_268
if and
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
else_jump @CAM_323
if
  2@ == 1
else_jump @CAM_438
2@ = 0
jump @CAM_163
 
:CAM_323
if
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle
else_jump @CAM_57
Camera.Restore
09AD: set_vehicle_camera_mode 0
2@ = 1
jump @CAM_57
 
:CAM_359
if
0AB0:   key_pressed 17
0AB0:   key_pressed 88
else_jump @CAM_57
Camera.Restore_WithJumpCut
09AD: set_vehicle_camera_mode 2
1@ = 0
jump @CAM_57
 
:CAM_398
if
  1@ == 1
else_jump @CAM_57
Camera.Restore
09AD: set_vehicle_camera_mode 2
Camera.SetBehindPlayer
1@ = 0
jump @CAM_57
 
:CAM_438
wait 0
jump @CAM_449
 
:CAM_449
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 103
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_490
5@ += 0.1
jump @CAM_163
 
:CAM_490
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 105
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_531
5@ -= 0.1
jump @CAM_163
 
:CAM_531
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 104
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_572
4@ += 0.1
jump @CAM_163
 
:CAM_572
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 98
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_613
4@ -= 0.1
jump @CAM_163
 
:CAM_613
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 100
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_654
3@ -= 0.1
jump @CAM_163
 
:CAM_654
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 102
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_695
3@ += 0.1
jump @CAM_163
 
:CAM_695
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 101
   Actor.Driving($PLAYER_ACTOR)
else_jump @CAM_359
03C0: 9@ = actor $PLAYER_ACTOR car
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
0730: car 9@ damage_component 4 // versionA
jump @CAM_163
end_thread

Я хочу сделать так, чтобы в машине можно было крутить башкой, тоесть вращать эту камеру. Нашел в справке опкод:
0936: set_camera 0.0 90.0 0.0 position_to 0.0 2 0.0 time 90.0 drop_mode 0.0
Но ведь он только кидает камеру в заданные координаты, а как к игроку прицепить камеру, которую можно вращать?


не надо материться

Last edited by Seemann (04-09-2008 11:55)

Offline

#622 10-09-2008 16:04

Skaarj[ZR]
Registered: 25-07-2008
Posts: 3

Re: Один вопрос

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

Offline

#623 10-09-2008 20:21

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Один вопрос

Skaarj[ZR] wrote:

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

currentPlayerPed->pIntelligence.vehicleScanner.entities - массив указателей на ближайшие машины
currentPlayerPed->pIntelligence.vehicleScanner.count - количество элементов в массиве

все адреса и смещения есть в последней базе.

Offline

#624 11-09-2008 07:38

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Один вопрос

Можно как-нибудь изменить список объектов во время игры? (object.dat)


[small][/small]

Offline

#625 11-09-2008 14:55

Skaarj[ZR]
Registered: 25-07-2008
Posts: 3

Re: Один вопрос

listener wrote:

все адреса и смещения есть в последней базе.

Какая база имеется ввиду?

И ещё вопрос. Где найти все hex коды клавиш, которые проверяются с помощь key_pressed?

Offline

Board footer

Powered by FluxBB