#1 Re: Вопросы по скриптингу » Один вопрос » 22-06-2017 16:27

d88

Нужно для одной миссии, чтоб особняк Мэд Дога был в полной темноте. Темноту сделал опкодом 0924:, он делает изображение темнее. Но при этом видно, что огни в особняке всё ещё горят. Можно их как-то отключить? В дневное время они выключаются, но тогда окна становятся светлее.

#2 Re: Вопросы по скриптингу » Один вопрос » 14-06-2017 12:23

d88

Хочу кое-что уточнить. Работаю с Decision Maker, устанавливаю одним педам храброе поведение, а другим - трусливое. Но результат получается обратный. Во всех справках написано, что  DM 3 - храброе поведение, а DM 4 - трусливое, но на практике получается, что наоборот. Например, устанавливаю педу DM 4, и если его ударить, он начинает драться. Если же установить DM 3 - после удара он убегает.
Кто-нибудь ещё с этим сталкивался?

#3 Re: Вопросы по скриптингу » Один вопрос » 02-06-2017 21:00

d88

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

И ещё - как заставить автомобиль ехать по неопределённому пути, но чтоб он не выезжал за пределы города?

#4 Re: Вопросы по скриптингу » Один вопрос » 20-05-2017 14:58

d88

Помните, возле дома Торено припаркован Washington? Я пытался найти его парковочный генератор, но поиск вообще не находит такой машины в мэйне. Как так? Или парковочные генераторы создаются ещё где-то помимо мэйна?

#5 Re: Вопросы по скриптингу » Один вопрос » 19-05-2017 11:15

d88
mfisto wrote:

Я имею ввиду что 0638 используется для актеров в тачке.

Для тачки вот такой опкод есть:

0526: set_actor 65@ stay_in_car 1 

#6 Re: Вопросы по скриптингу » Один вопрос » 18-05-2017 19:14

d88
mfisto wrote:

Опкод 0638 вроде применяется для тачки,

Не, для актёров. Проверено, работает как надо.

mfisto wrote:

а опкод 099f зачем используешь?

Он убирает ограничение в дальности стрельбы. У каждого оружия есть своя дистанция для выстрелов, и если актёр стоит слишком далеко от цели, он не стреляет. С этим опкодом дистанция не имеет значения.

#7 Re: Вопросы по скриптингу » Один вопрос » 18-05-2017 05:49

d88

И ещё вопрос. Можно проверить, что актёр целится в игрока или атакует его?

#8 Re: Вопросы по скриптингу » Один вопрос » 17-05-2017 16:40

d88

Я создал педов для миссии, и почему-то на них не действует headshot. Они умирают от выстрела в голову, но сама голова остаётся на месте. Меня бы это устроило, но проблема в том, что не срабатывает проверка 09A8:, а мне это нужно.
При создании педов использую такие опкоды:

$GUARD_1 = Actor.Create(Mission1, #BMYBOUN, -2634.5, 1408.329, 906.4609)
Actor.Angle($GUARD_1) = 90.5344
0245: set_actor $GUARD_1 walk_style_to "PLAYER" 
060B: set_actor $GUARD_1 decision_maker_to 32 
07FE: set_actor $GUARD_1 fighting_style_to 7 6 
01B2: give_actor $GUARD_1 weapon 24 ammo 500 // Load the weapon model before using this 
0860: link_actor $GUARD_1 to_interior 3 
06AB: set_actor $GUARD_1 all_weapons_hidden 1 
0638: AS_actor $GUARD_1 stay_put 1 
Actor.WeaponAccuracy($GUARD_1) = 85
099F: unknown_actor $GUARD_1 flag 1 
077A: set_actor $GUARD_1 acquaintance 3 to_actors_pedtype 0 // see ped.dat 

Вроде ничего не должно влиять на иммунитет от headshotа. Если тут ничего не исправить, то можно ли как-то по-другому проверить, что был убит выстрелом в голову?

#9 Re: Справочная информация » Новый сайт БД Опкодов » 06-04-2017 08:49

d88

Я тут обнаружил ошибку.

05C5: AS_actor 1@ cower 1000 ms
Заставить актера 1@ пятиться назад в течении 1000 (ms)

На самом деле этот опкод заставляет актёра присесть и прикрыть голову руками.

#10 Re: Вопросы по скриптингу » Один вопрос » 22-01-2017 10:30

d88

DK22Pac, спасибо, всё работает.

#11 Re: Вопросы по скриптингу » Один вопрос » 20-01-2017 06:32

d88

Ещё вопрос. Я отключил читы

0A8C: write_memory 0x0053BFB8 size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x0053BFBC size 1 value 0x90 virtual_protect 1

и после этого 0ADC: тоже перестал действовать. Можно это исправить?

#12 Re: Вопросы по скриптингу » Один вопрос » 19-01-2017 14:26

d88
Vital wrote:

2) если речь об обычных игровых клавишах, то можно сделать так:
- обнулить таймер 32@
- создать флаг (не)нажатия //если есть решение получше, можно и без него, например, сделать условный gosub с циклом
- в цикле for проверять, нажата ли одна из клавиш (номер клавиши = счётчик цикла), если да, делаем провал условия.

Хорошо, но может, есть какая-то специальная проверка, что игрок ничего не делает в течение определённого времени? В оригинальной СА ведь такое есть - если не нажимать ничего в течение одной минуты, камера отправляется в свободное плавание. Я вот сейчас работаю с мэйном, убрал оттуда оригинальные потоки, и теперь это не происходит. Значит, там был скрипт, в котором это было прописано.

#13 Re: Вопросы по скриптингу » Один вопрос » 14-01-2017 15:32

d88

Пара вопросов:
1. Как проверить, что актёру установлен иммунитет к выстрелам?
2. Можно ли проверить, что ни какие кнопки не нажимались в течение определённого времени, к примеру, одной минуты?

Заранее спасибо.

#14 Re: Вопросы по скриптингу » Один вопрос » 23-02-2016 14:24

d88

Ещё вот такие вопросы.
1. Можно ли перед тем, как загрузить специального актёра, сделать проверку, содержится ли такая модель в img архиве?
2. Допустим, я хочу добавить в игру новое оружие, не заменяя старого. Я знаю, в каких файлах папки data его нужно прописать. Но как узнать номер этого оружия, чтобы использовать его в скриптах?

#15 Re: Вопросы по скриптингу » Добавить музыкальное сопровождение к каждой миссии » 23-02-2016 14:20

d88
DromeoStalker wrote:

"С клео в мэйне" - это в каком понятии? Я клео вообще презираю, потому что он не всегда работает, а значит, что и игра не будет с таким скриптом работать вообще. Вспоминаем Мушрумию, которая у 90% игроков вылетает сразу после первой части. У остальных 10 вылетает в начале второй))

Так может проблема в моде, а не в клео? Какая разница, сделать скрипт отдельно для клео или прописать его в мэйне? Если он с ошибками, так он хоть где будет вылетать.

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

#16 Re: Вопросы по скриптингу » Один вопрос » 22-02-2016 15:57

d88
Seemann wrote:

0A8C: write_memory 0x588BE0 size 1 value 0xC3 virtual_protect 1
0A8C: write_memory 0x588BE0 size 1 value 0xA0 virtual_protect 1

Спасибо  smile

#17 Re: Вопросы по скриптингу » Один вопрос » 22-02-2016 09:16

d88
Seemann wrote:

Можно записать 0xC3 (ret) в начало функции показа боксов 0x588BE0
Чтобы вернуть возможность показа бокса, записать туда же 0xA0 (оригинальное значение)

Я плохо разбираюсь в работе с памятью. Тут нужен опкод 0AA5: или 0A8C:? Или вообще какой-то другой?

#18 Re: Вопросы по скриптингу » Один вопрос » 19-02-2016 15:37

d88
Seemann wrote:

По второму вопросу: можно либо отключить все боксы вообще (в том числе и скриптовые), либо отключить конкретные сообщения. Например, для сообщения про машину

0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0

Спасибо. А как отключить все боксы вообще? И если отключить, то будут ли выводиться те, которые я сам захочу вывести через скрипт? Если нет, то как боксы вернуть?

#19 Re: Вопросы по скриптингу » Один вопрос » 18-02-2016 10:23

d88

Пара вопросов.
1. Можно ли отключить коллизию актёру, но чтоб он при этом мог двигаться? Я в адресах памяти находил такое свойство игрока, но проблема в том, что он при этом ещё и проваливается под землю, а это никуда не годится.
2. Можно ли отключить боксы, которые выводит сама игра? Например тот, который выходит при новой игре, когда в первый раз садишься в машину - "Чтобы не дать Карлу сесть в машину, нажмите то-то и то-то". Или такие - "Уровень владения М4 достигнут такой-то, теперь вы можете то-то и то-то". И тому подобные.

#20 Re: Вопросы по скриптингу » Один вопрос » 24-11-2015 13:47

d88

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

#21 Re: Вопросы по скриптингу » Один вопрос » 19-11-2015 14:49

d88

Должно быть значение типа float, если я правильно понял вопрос.

Нет, я про конкретное число. Чему оно должно быть равно? Находил этот опкод в мэйне, но там почему-то значение ещё и умножается на какое число.

Можно. Вот опкоды:

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

Ещё хотел спросить. Если машина, созданная в миссии, взрывается, можно сделать так, чтобы она не исчезала до конца миссии?

#22 Re: Вопросы по скриптингу » Один вопрос » 18-11-2015 11:02

d88
wmysterio wrote:

Попробуйте это использовать:

Actor.StorePos($PLAYER_ACTOR, 160@, 161@, 162@)
0855: get_actor -1 noise_level_at 160@ 161@ 162@ store_to 166@

В переменную 166@ будет записан уровень шума

А какое должно быть значение переменной при шуме?

И это всё проверки на шум от самого игрока.  А если он, скажем, бросит гранату или выстрелит из ракетницы, как проверить, что враги услышали взрыв?

wmysterio wrote:

Ну и в таком духе. Главное включить фантазию а там сгенерируется практически любая проверка

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

04C4: store_coords_to 802@ 803@ 804@ from_actor 201@ with_offset 0.0 23.0 0.0 
0AE1: 801@ = random_actor_near_point 802@ 803@ 804@ in_radius 24.0 find_next 1 pass_deads 0 //IF and SET 
if 
   Actor.Defined(801@)
else_jump @MISSION20_4779 
if 
   Actor.Dead(801@)
else_jump @MISSION20_4779 
actor.StorePos(201@, 805@, 806@, 807@)
actor.StorePos(801@, 808@, 809@, 810@)
if 
06BD:   no_obstacles_between 805@ 806@ 807@ and 808@ 809@ 810@ solid 1 car 1 actor 0 object 1 particle 0 
else_jump @MISSION20_4779 

По поводу проверки, заметил ли игрока кто-то из врагов. Можно ли проверить, что актёр стреляет или хотя бы целится в игрока? Это вполне бы сошло за проверку, что игрок обнаружен.

#23 Re: Вопросы по скриптингу » Один вопрос » 16-11-2015 16:38

d88

Кстати, я нашёл вот такой опкод

06FF:   any_ped_near_actor 0@ in_range 20.0

Не пробовал, но, возможно, его можно использовать вместо того, чтобы перебирать пул.

Теперь такой вопрос. Делаю миссию, в которой игрок должен убить несколько врагов, причём желательно по-тихому. Т.е. он должен убивать их незаметно, без шума - ножом или пистолетом с глушителем. Если же кто-то из врагов его увидит или услышит звуки выстрелов, он поднимет тревогу.
Так вот, как сделать проверку на то, что актёр заметил игрока или услышал звуки выстрелов? Знаю, есть опкод 0364:, но он работает вообще не так как надо. Он срабатывает просто если между актёром и игроком нет препятствий, даже если актёр стоит спиной к игроку и никак не может его увидеть. Слышимость звуков пробовал проверять через событие актёра (номер 61 - актёр слышит громкий звук), но это почему-то не работает.

Также хотелось бы сделать так, чтобы враги поднимали тревогу, если обнаружат труп. Пробовал проверку 0480:, но тоже не работает. Можно как-то проверить, что актёр обнаружил труп?

#24 Re: Вопросы по скриптингу » Один вопрос » 07-11-2015 15:01

d88

1. IMHO, ток смотреть в исходники (ты ж об уединении со шлюхами?)

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

2. Изменение decision maker'а уже пробовал?

Я не знаю адреса нужной задачи.

а зачем для этого делать 2 скрипта? не будет ли лучше помечать и проверять актеров в одном скрипте?

Мне для мэйна надо. Хочу прицепить внешний скрипт к нескольким актёрам, и эта проверка нужна для того, чтобы определить, какие именно из всех прописанных в этом скрипте действий должен выполнять конкретный актёр. Можно было бы для каждого актёра прописать свой внешний скрипт, но тогда их будет довольно много. С одним было бы удобнее, тем более некоторые действия являются общими для некоторых актёров.

#25 Re: Вопросы по скриптингу » Один вопрос » 04-11-2015 16:19

d88

Здесь ещё кто-нибудь есть? У меня такие вопросы.

1. Можно ли проверить, игрок находится в уединённом месте?

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

3. Можно ли как-то пометить актёра? Чтобы в одном скрипте я его пометил, а в другом проверил, как именно я его пометил.

Board footer

Powered by FluxBB