В этой теме рассматриваются вопросы о реализации тех или иных решений на примерах из модификации "Тайные Тропы 2". Формат, в котором следует задавать вопрос, такой (для примера): "В модификации ТТ2 есть собака-поводырь Болотного Доктора, которая бежит и показывает ГГ тайную тропу. Как была сделана такая собака?"
Общие вопросы по ковырянию можно посмотреть, почитав Шпаргалку
FireFox, 1) Спавн собаки-поводыря весьма прост: создаём профиль собачки в файле antreg_spawn.ltx в папке \gamedata\config\creatures (файл может быть и другой, например, стандартный spawn_sections.ltx). Секция собачки вот такая: [dog_povodyr]:pseudodog_povodyr $spawn = "respawn\dog_povodyr" custom_data = scripts\new\dog_povodyr.ltx --это путь к файлу логики собаки-поводыря 2) Спавним поводыря простой функцией в любом скриптовом файле из папки \gamedata\scripts: function spawn_dog_povodyr() local obj=alife():create("dog_povodyr",vector():set(199.167,2.951,-24.184),1582523,3007) end 3) Создаём перварительно файл логики поводыря, который прописали в его савн_секции: идём по пути: \gamedata\config\scripts\new и там создаём файл: dog_povodyr.ltx Внутри этого файла прописан массив логики собаки-поводыря:
[smart_terrains] none = true
[logic] active = mob_camp@dog_povodyr
[mob_camp@dog_povodyr] --здесь прописана начальная логика поводыря, когда собака стоит на месте, смотрит в определённую точку и никого не трогает. path_home = dog_povodyr1_walk path_look = dog_povodyr1_look home_min_radius = 0 home_max_radius = 0 actor_friendly = true --вот условие, что актёра собака не трогает on_info = {+povodyr_start} mob_camp@dog_povodyr1--при получении определённго инфопоршня, собака переходит во вторую логику, при которой ждёт 3 секунды, прежде чем начать движение по заданному маршруту. [mob_camp@dog_povodyr1] --вот вторая логикическая схема, когда собака стоит там же и по истечении 3-х секунд побежит по маршруту. path_home = dog_povodyr1_walk path_look = dog_povodyr1_look home_min_radius = 0 home_max_radius = 0 actor_friendly = true on_timer = 3000 | mob_walker@dog_povodyr2 --задано условия ожидания 3 секунды и переход в следующую схему
[mob_walker@dog_povodyr2] --схема движения собаки path_walk = dog_povodyr2_walk --путь собаки. Прописывается в секции way нужной локации в аллспавне. path_look = dog_povodyr2_look --направление взгляда собаки в конечной точке пути. Прописывается в секции way нужной локации в аллспавне. actor_friendly = true --актёра не трогает, но если кто-то другой попадётся на пути то будет реагировать. on_signal = mestod | mob_camp@dog_povodyr3 %+povodyr_mesto% --при получении сигнала "mestod" (сигнал задаётся в конечной точке пути) собака переходит к следующей схеме и выдаётся инфопоршень povodyr_mesto. Это нам нужно, чтобы завершить квест - выдать (заспавнить) "Тайную Тропу" по факту прихода собаки в назначенную точку.
[mob_camp@dog_povodyr3] --последняя логика собаки. Она стоит на точке, в которую добежала и смотрит в заданную точку. Актёра не трогает. path_home = dog_povodyr3_walk path_look = dog_povodyr3_look home_min_radius = 0 home_max_radius = 0 actor_friendly = true
4) В аллспавне точки walk и look собаки, которые заданы в вышеприведённых схемах её логики, выглядят следующим образом:
[dog_povodyr1_look] --точка, куда стоящая на месте собака смотрит points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 81.306999206543,2.71499991416931,47.4300003051758 p0:game_vertex_id = 3004 p0:level_vertex_id = 1323958
[dog_povodyr1_walk] --точка пути, когда собака стоит на месте points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 199.167007446289,2.95099997520447,-24.1840000152588 p0:game_vertex_id = 3007 p0:level_vertex_id = 1582523
[dog_povodyr2_look] --точка, куда собака будет смотреть, когда добежит до последней точки points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -30.2999992370605,1.71200001239777,-251.486999511719 p0:game_vertex_id = 3000 p0:level_vertex_id = 1078617
[dog_povodyr2_walk] --маршрут собаки, состоящий из 4-х точек. Можно конечно задавать только одну точку - конечную, но тогда маршрут будет весьма непредсказуем. В нашем случае мы как бы помогаем собаке бежать так, как нам надо, чтобы на её пути сделать препятствие в нужном месте из злых кошаков. points = p0,p1,p2,p3,p4 p0:name = wp00 p0:position = 81.306999206543,2.71499991416931,47.4300003051758 p0:game_vertex_id = 3004 p0:level_vertex_id = 1323958 p0:links = p1(1)
p4:name = wp04|sig=mestod --вот как раз тот самый сигнал, который прописали в логике собаки p4:flags = 0x1 p4:position = -34.6300010681152,2.18499994277954,-251.02799987793 p4:game_vertex_id = 3000 p4:level_vertex_id = 1069462
5) Впоследствие, собаку можно удалить или отправить обратно по новому маршруту. Функция удаления по имени выглядит следующим образом: function del_povodyr() for a=10,65635,1 do local obj=alife():object(a) if obj and string.find(obj:name(),"dog_povodyr") then alife():release(obj,true) end end end 6) Ещё можно поставить метку на собаку, а потом, когда собака придёт на место, метку можно удалить. Функция установки метки на собаку по её имени: function set_povodyr() for a=1,65534 do local obj = alife():object(a) if obj then if obj:section_name()=="dog_povodyr" then amk.add_spot_on_map(obj.id,"blue_location","Поводырь")--на миникарте будет отображаться кружок на собаке return end end end end Функция удаления метки (можно вызвать откуда угодно, либо из диалога, либо из инфопоршня): function remove_metka_povodyr() for a=1,65534 do local obj = alife():object(a) if obj then if obj:section_name()=="dog_povodyr" then level.map_remove_object_spot(obj.id,"blue_location") break end end end end
DeleteD, Хороший вопрос, прямо и жаль раскрывать секрет, но он прост... Костолому прописывается в секцию хит функция спавна на его координате чего-угодно. В данном случае мини-паучков. Т.е. при каждом нанесении "хита" данному монстру, спавнится один паук. Чем больше пуль в него всаживаем (по неосторожности), тем больше паучков появляется. Секция логики Костолома (doctor_kostolom.ltx) - раздел: [mob_hit] on_info = %=antreg.spider_kostolom_spawn%
Привет. Делаю свой сюжет по одной книжке. Очень интересует 3 вопроса:
1) Реально ли, довести НПС до ЧАЭС , почти что от Кордона? (Не считая их убиваемость, вообще, технически?)
2) Как делать по логике, что бы НПС шел между локациями? (Как Лесник тот же)
3) Ну и 3-ий, финальный: Как вообще сделать, что бы НПС шли по путям? Время от времени проигрывали анимки, разговоры, появлялись новые диалоги? (Опять же. брать Лесника)
Ответьте пожалуйста. Надеюсь Вас не затруднил. Спасибо.
Добавлено (30.03.2011, 00:10) --------------------------------------------- ^ в дополнение к выше сказанному:
4) Как пустить НПС по пути, после определенного события? Ну пока я не поговорю с ним, не пойдет.
5) Как заставить группу идти по этому пути, без диалога с ними?
6) И как, их заставить таки стоять на месте спавна и не расходиться по карте! Просто они начинают убивать зомби, и расходятся по карте. Привзяывать пробывал, ни как. Из-за этого поговорить не получается.
Все это есть в вашем моде, хотелось бы ответа.
Извините за столкьо вопросов.
Сообщение отредактировал HellRatz - Среда, 30.03.2011, 00:13
HellRatz, Во-первых, все вопросы не в тему, так как здесь предложено задавать вопросы про КОНКРЕТНЫЕ моменты реализации того или иного в данной модификации, а не как сделать свой мод. Отвечу коротко по пунктам. 1) Реально. 2) Двумя способами: либо создавать смарттеррейны на разных локациях и по условию (инфопоршни, например) направлять НПС в нужный смарттеррейн. Либо создавать на каждой новой локации нового НПС с тем же профилем, а старого удалять. В этом случае будет как бы один и тот же НПС для игроков, но разный, с точки зрения программы (Так, например, сделан Лесник). 3) Это всё делается в файле логики НПС и в аллспавне, в секциях way, где задаётся маршрут и действия в каждой точке маршрута по выбранному условию. 4) Пункт 3-й (тоже самое). С помощью выдачи инфопоршней, меняется логика НПС. Когда нужно, он идёт и не говорит, когда нужно - стоит и говорит, спит, пьёт, ест и т.д. 5) Тоже самое, что и предыдущие два пункта - в логику НПС из группы прописываются все необходимые действия. 6) Опять тоже самое - нужно либо создавать для выбранных НПС свой смарт-террейн с назначением количества НПС в нём, либо без смарт-террейна со своей индивидуальной логикой и обязательно путями, прописанными в аллспавне в секциях way.
Обо всё этом есть прекрасный ресурс Stalker-Wiki, где всё разложено и разжёвано очень подробно. Огромный труд для мододелов: http://stalkerin.gameru.net/wiki....2%D1%8B По ссылке прочитай вначале несколько статей: Настройка логики (4 части), Смарттеррейны и гулаги, Работа с аллспавн и Анимации НПС. И ещё: чуть выше я показал разбор реализации собаки-поводыря с подробным описанием её логики поведения. Для НПС по сути тоже самое, просто команды в логике несколько отличаются.
Насколько я понял, несмотря на вроде бы как простой способ спавна собаки-поводыря, кое-что все равно нужно делать через аллспавн. 1.Можно ли заспаунить монстра каким-нибудь другим способом через скрипт(имею ввиду и отличным от описанного в соседней ветке)? Например что-бы спаун вызывался из диалога, например при взятии квеста. 2. Нужно ли прописывать мутанта в xr_statistic.script? Я заметил, что поводыря там нет(хотя может достаточно того, что там есть pseudodog_normal. И последний вопрос - а нельзя ли перезалить программку для снятия координат?
Конечно можно спавнить только через скриптовую функцию. Вызывать эту функцию спавна можно откуда угодно, хоть из диалога, хоть из инфопоршня и т.д. Так и сделано большинство НПС и монстров в ТТ2, в том числе и поводырь. В аллспавне прописываются только точки пути. Новая игра в этом случае не требуется. Никуда мутанта прописывать больше не надо, так как используется стандартная секция pseudodog_normal. Спасибо! Кстати и за ссылку на статьи от xStream. Очень толковые...Сегодня таки наспавнил себе зомбаков в МГ. Правда почему-то он обещал вылет при обыске
Quote
Все верно – игра не знает, какую иконку нам показывать для зомби
А у меня этого вылета нет. Опять где-то накосячил... Упс...А если у моих зомбаков не прописаны пути в аллспавне, то они насколько понимаю просто будут бесцельно бродить по локе - или это чем-то чревато? Ничем не чревато - просто будут бродить по локации.
Добавлено (01.04.2011, 01:46) --------------------------------------------- Возникла вот такая проблема...Прописал новых зомбаков в энциклопедию, все по шпаргалке - вылетов нет. Но смотрю в ПДА, а там их нет. Кстати нет и гражданских зомби, хотя они прописаны изначально, есть только зомби-призраки. С чем это может быть связано?
Сообщение отредактировал antreg - Четверг, 31.03.2011, 12:33
antreg, приветствую! не можешь помочь мне нужно изображение рубиновой батарейки можешь скинуть можно со свойствами Обычная батарейка, только яркомалинового цвета. В свойствах - средне радиоактивна и есть небольшие положительные характеристики.
Сообщение отредактировал antreg - Пятница, 10.06.2011, 19:54
Здраствуите уважаемый antreg, в вашем моде много переходов...прочитал ваш небольшой гайд как их создавать, но не все понятно. Не могли бы вы на примере показать скриптовый спаун создания лвл чангера с ЧАЭС 2 на Припять, и 2) как вы отключили мертвую зону в ЧАЭС 2?(землетрясения и радиацию). Спасибо за ответы 1) Посмотри файл: y_level.script Там прописан нетпакет и далее, сами переходы. Делай поаналогии. 2) Этот вопрос стар как мир. Даже отвечать не буду. Найдёшь сам. Тем более, что мы его не отключали, его отключили другие люди много лет назад.
Сообщение отредактировал antreg - Четверг, 30.06.2011, 10:08
Эм, а каким макаром можно убрать постэффект попадания из оружия? У меня ещё с АМК это, всё сильно вертится перед глазами и при попадании, и при пробуждении ото сна, ив самом начале ТТ2 такое было... С такой-то убойностью пушек мне не нравится эта болтанка - я иногда выдерживаю попадание пули, но из-за болтанки через пару секунд гибну - даже не видно, куда я иду
Erman, в файле gamedata\config\gg_kick.ltx, где параметр enabled, поставь вместо "1.0" "0.0" Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
Добрый день. Являюсь фанатом ТТ2. На старой машинке игра шла практически безукоризненно. Взял новый ASUS CROSSHAIR IV FORMULA с поддержкой CrossFireX, 2 видюхи HIS Radeon HD 6950. При запуске игры (в режиме CrossFire) комп тупо выключается. С одной видюхой работает превосходно. ??? Подскажите пожалуйста умную мысль, в каком направлении обдумывать эту тему.
Видимо, игруха сильно нагружает видяху. Соответственно, температура растёт и срабатывает защита - комп вырубается. Могу только посоветовать снести ПОЛНОСТЬЮ весь Сталкер, почистить на компе все хвосты и установить внимательно всё по-новому, соблюдая инструкции.
Сообщение отредактировал Cation - Вторник, 28.06.2011, 10:46
у меня один вопрос : поддержка EAX ? Вообще как вы писали звук, в принципе я правила знаю, но почему файлы звука в консоли игры прописываются красным шрифтом все, помогите разобраться, кодеки менял, звуковые карты пробовал разные, но увы.Заранее блпагодарен И.Н.
Ругань красным в консоли НЕ из-за самих файлов .ogg, а ввиду отсутствия нужных комментариев к ним.
Сообщение отредактировал Cation - Вторник, 28.06.2011, 10:48
а как вы дистанцию в тт2 уменьшели без меню Вначале научись писАть предложения с большой буквы и ставить знаки препинания, а так же изъяснять свои мысли понятно, потом поговорим.
Сообщение отредактировал antreg - Четверг, 30.06.2011, 10:04
у меня один вопрос : поддержка EAX ? Вообще как вы писали звук, в принципе я правила знаю, но почему файлы звука в консоли игры прописываются красным шрифтом все, помогите разобраться, кодеки менял, звуковые карты пробовал разные, но увы.Заранее блпагодарен И.Н.
Ругань красным в консоли НЕ из-за самих файлов .ogg, а ввиду отсутствия нужных комментариев к ним.
Сообщение отредактировал Cation - Вторник, 28.06.2011, 10:48 Тогда мне интересно, а как исправмть? Ничего исправлять не надо. Это абсолютно некритично и не имеет никакого значения.
Сообщение отредактировал antreg - Четверг, 30.06.2011, 10:03
Уважаемый antreg, можно ли где-нибудь прописать рецепты артмодификаций в ПДА что они как бы есть(некоторые пропустил безвозвратно)? А куда мне податься "по адресу"? Извини, но это не тема для "ковыряния" ТТ2. Лень - двигатель прогресса!
Сообщение отредактировал kiryushka - Суббота, 09.07.2011, 16:54
Подскажите пожалуйста как сделать чтобы экран при начале новой игры шатался как-будто ГГ встаёт с земли. У вас в начале игры так, в автобусе. При старте новой игры сразу запускаем вот такую нехитрую функцию: function start_effect() level.add_cam_effector("camera_effects\\prison_1.anm", 25, false, "") level.add_pp_effector("yantar_underground_psi.ppe", 2007, false) level.add_pp_effector("total_recall.ppe", 2008, false) local snd_obj = xr_sound.get_safe_sound_object([[new\start_affect]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\hit_back_left.anm", 26, false, "") end Вот, собственно, и всё. Запускаются несколько анимаций, партиклов и проигрывается звук учащённого дыхания.
Спасибо!
Сообщение отредактировал Realism - Понедельник, 18.07.2011, 17:09
Подскажите плиз, как вырезать ролик с рекламами THQ, GSC, ASUS и NVidia в начале игры?
На рабочем столе щёлкнуть на ярлык запуска игры правой кнопкой мыши и в меню выбрать "свойства". В свойствах в поле "Объект" в конце текста через пробел добавить-nointro Приношу добро людям.....терабайтами.
Сообщение отредактировал Cation - Понедельник, 18.07.2011, 17:48