#601 22-08-2008 02:14

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

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

flashTrash wrote:

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

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

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,155

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: 350
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,155

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

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

Offline

#621 04-09-2008 04:44

Noob
Registered: 28-06-2008
Posts: 44

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 '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