You are not logged in.
Нужно для одной миссии, чтоб особняк Мэд Дога был в полной темноте. Темноту сделал опкодом 0924:, он делает изображение темнее. Но при этом видно, что огни в особняке всё ещё горят. Можно их как-то отключить? В дневное время они выключаются, но тогда окна становятся светлее.
Хочу кое-что уточнить. Работаю с Decision Maker, устанавливаю одним педам храброе поведение, а другим - трусливое. Но результат получается обратный. Во всех справках написано, что DM 3 - храброе поведение, а DM 4 - трусливое, но на практике получается, что наоборот. Например, устанавливаю педу DM 4, и если его ударить, он начинает драться. Если же установить DM 3 - после удара он убегает.
Кто-нибудь ещё с этим сталкивался?
Можно ли проверить, что игрок стоит на земле, а не на крыше машины, к примеру? Я находил номер события, что актёр стоит на крыше машины, но почему-то такая проверка не срабатывает.
И ещё - как заставить автомобиль ехать по неопределённому пути, но чтоб он не выезжал за пределы города?
Помните, возле дома Торено припаркован Washington? Я пытался найти его парковочный генератор, но поиск вообще не находит такой машины в мэйне. Как так? Или парковочные генераторы создаются ещё где-то помимо мэйна?
Я имею ввиду что 0638 используется для актеров в тачке.
Для тачки вот такой опкод есть:
0526: set_actor 65@ stay_in_car 1
Опкод 0638 вроде применяется для тачки,
Не, для актёров. Проверено, работает как надо.
а опкод 099f зачем используешь?
Он убирает ограничение в дальности стрельбы. У каждого оружия есть своя дистанция для выстрелов, и если актёр стоит слишком далеко от цели, он не стреляет. С этим опкодом дистанция не имеет значения.
И ещё вопрос. Можно проверить, что актёр целится в игрока или атакует его?
Я создал педов для миссии, и почему-то на них не действует 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а. Если тут ничего не исправить, то можно ли как-то по-другому проверить, что был убит выстрелом в голову?
Я тут обнаружил ошибку.
05C5: AS_actor 1@ cower 1000 ms
Заставить актера 1@ пятиться назад в течении 1000 (ms)
На самом деле этот опкод заставляет актёра присесть и прикрыть голову руками.
DK22Pac, спасибо, всё работает.
Ещё вопрос. Я отключил читы
0A8C: write_memory 0x0053BFB8 size 4 value 0x90909090 virtual_protect 1 0A8C: write_memory 0x0053BFBC size 1 value 0x90 virtual_protect 1
и после этого 0ADC: тоже перестал действовать. Можно это исправить?
2) если речь об обычных игровых клавишах, то можно сделать так:
- обнулить таймер 32@
- создать флаг (не)нажатия //если есть решение получше, можно и без него, например, сделать условный gosub с циклом
- в цикле for проверять, нажата ли одна из клавиш (номер клавиши = счётчик цикла), если да, делаем провал условия.
Хорошо, но может, есть какая-то специальная проверка, что игрок ничего не делает в течение определённого времени? В оригинальной СА ведь такое есть - если не нажимать ничего в течение одной минуты, камера отправляется в свободное плавание. Я вот сейчас работаю с мэйном, убрал оттуда оригинальные потоки, и теперь это не происходит. Значит, там был скрипт, в котором это было прописано.
Пара вопросов:
1. Как проверить, что актёру установлен иммунитет к выстрелам?
2. Можно ли проверить, что ни какие кнопки не нажимались в течение определённого времени, к примеру, одной минуты?
Заранее спасибо.
Ещё вот такие вопросы.
1. Можно ли перед тем, как загрузить специального актёра, сделать проверку, содержится ли такая модель в img архиве?
2. Допустим, я хочу добавить в игру новое оружие, не заменяя старого. Я знаю, в каких файлах папки data его нужно прописать. Но как узнать номер этого оружия, чтобы использовать его в скриптах?
"С клео в мэйне" - это в каком понятии? Я клео вообще презираю, потому что он не всегда работает, а значит, что и игра не будет с таким скриптом работать вообще. Вспоминаем Мушрумию, которая у 90% игроков вылетает сразу после первой части. У остальных 10 вылетает в начале второй))
Так может проблема в моде, а не в клео? Какая разница, сделать скрипт отдельно для клео или прописать его в мэйне? Если он с ошибками, так он хоть где будет вылетать.
Но если всё же проблема в клео, то я рекомендую использовать версию не выше 4.1, остальные версии действительно работают нестабильно.
0A8C: write_memory 0x588BE0 size 1 value 0xC3 virtual_protect 1
0A8C: write_memory 0x588BE0 size 1 value 0xA0 virtual_protect 1
Спасибо
Можно записать 0xC3 (ret) в начало функции показа боксов 0x588BE0
Чтобы вернуть возможность показа бокса, записать туда же 0xA0 (оригинальное значение)
Я плохо разбираюсь в работе с памятью. Тут нужен опкод 0AA5: или 0A8C:? Или вообще какой-то другой?
По второму вопросу: можно либо отключить все боксы вообще (в том числе и скриптовые), либо отключить конкретные сообщения. Например, для сообщения про машину
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
Спасибо. А как отключить все боксы вообще? И если отключить, то будут ли выводиться те, которые я сам захочу вывести через скрипт? Если нет, то как боксы вернуть?
Пара вопросов.
1. Можно ли отключить коллизию актёру, но чтоб он при этом мог двигаться? Я в адресах памяти находил такое свойство игрока, но проблема в том, что он при этом ещё и проваливается под землю, а это никуда не годится.
2. Можно ли отключить боксы, которые выводит сама игра? Например тот, который выходит при новой игре, когда в первый раз садишься в машину - "Чтобы не дать Карлу сесть в машину, нажмите то-то и то-то". Или такие - "Уровень владения М4 достигнут такой-то, теперь вы можете то-то и то-то". И тому подобные.
Спасибо, вроде удалось более менее реализовать как хотел.
Должно быть значение типа float, если я правильно понял вопрос.
Нет, я про конкретное число. Чему оно должно быть равно? Находил этот опкод в мэйне, но там почему-то значение ещё и умножается на какое число.
Можно. Вот опкоды:
Второй опкод срабатывает сразу, хотя актёр не стреляет. Видимо, это просто проверка, что актёр держит в руках огнестрельное оружие.
Ещё хотел спросить. Если машина, созданная в миссии, взрывается, можно сделать так, чтобы она не исчезала до конца миссии?
Попробуйте это использовать:
Actor.StorePos($PLAYER_ACTOR, 160@, 161@, 162@) 0855: get_actor -1 noise_level_at 160@ 161@ 162@ store_to 166@В переменную 166@ будет записан уровень шума
А какое должно быть значение переменной при шуме?
И это всё проверки на шум от самого игрока. А если он, скажем, бросит гранату или выстрелит из ракетницы, как проверить, что враги услышали взрыв?
Ну и в таком духе. Главное включить фантазию а там сгенерируется практически любая проверка
Если бы всё было так просто. Эти способы ведь не позволяют проверить, видит ли актёр труп.
Я вот попробовал такой способ, но он не действует. Даже не знаю, что здесь может быть не так.
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
По поводу проверки, заметил ли игрока кто-то из врагов. Можно ли проверить, что актёр стреляет или хотя бы целится в игрока? Это вполне бы сошло за проверку, что игрок обнаружен.
Кстати, я нашёл вот такой опкод
06FF: any_ped_near_actor 0@ in_range 20.0
Не пробовал, но, возможно, его можно использовать вместо того, чтобы перебирать пул.
Теперь такой вопрос. Делаю миссию, в которой игрок должен убить несколько врагов, причём желательно по-тихому. Т.е. он должен убивать их незаметно, без шума - ножом или пистолетом с глушителем. Если же кто-то из врагов его увидит или услышит звуки выстрелов, он поднимет тревогу.
Так вот, как сделать проверку на то, что актёр заметил игрока или услышал звуки выстрелов? Знаю, есть опкод 0364:, но он работает вообще не так как надо. Он срабатывает просто если между актёром и игроком нет препятствий, даже если актёр стоит спиной к игроку и никак не может его увидеть. Слышимость звуков пробовал проверять через событие актёра (номер 61 - актёр слышит громкий звук), но это почему-то не работает.
Также хотелось бы сделать так, чтобы враги поднимали тревогу, если обнаружат труп. Пробовал проверку 0480:, но тоже не работает. Можно как-то проверить, что актёр обнаружил труп?
1. IMHO, ток смотреть в исходники (ты ж об уединении со шлюхами?)
Нет, идея такая. Игрок снимает и надевает маскировочный костюм, но делает это в укромном месте, чтобы его никто не видел. Там же он оставляет костюм. Не оставлять же его посреди дороги.
2. Изменение decision maker'а уже пробовал?
Я не знаю адреса нужной задачи.
а зачем для этого делать 2 скрипта? не будет ли лучше помечать и проверять актеров в одном скрипте?
Мне для мэйна надо. Хочу прицепить внешний скрипт к нескольким актёрам, и эта проверка нужна для того, чтобы определить, какие именно из всех прописанных в этом скрипте действий должен выполнять конкретный актёр. Можно было бы для каждого актёра прописать свой внешний скрипт, но тогда их будет довольно много. С одним было бы удобнее, тем более некоторые действия являются общими для некоторых актёров.
Здесь ещё кто-нибудь есть? У меня такие вопросы.
1. Можно ли проверить, игрок находится в уединённом месте?
2. Как сделать так, чтобы если выкинуть актёра из машины, он не садился обратно, не атаковал игрока, не убегал, а просто шёл как ни в чём не бывало?
3. Можно ли как-то пометить актёра? Чтобы в одном скрипте я его пометил, а в другом проверил, как именно я его пометил.