Вы задаёте интересующий вас вопрос и тот, кто может вам на него ответить, пишет свой ответ. Правила темы:
1. Прежде чем задать вопрос, желательно прочитать все предыдущие страницы темы. Даже если вы не найдете там нужного ответа - я уверен, вы узнаете много нового. Второй вариант - воспользоваться поиском по ключевому слову.
2. Вы можете задавать вопросы, только непосредственно касающиеся создания модификаций и редактирования файлов игры
3. Личные вопросы не допускаются
4. Отвечать на вопросы желательно достаточно развернуто, задевая все аспекты касающиеся конкретного вопроса
5. Отвечать вы можете только в том случае если уверены в правильности ответа, если не знаете - просто не отвечайте. Авторы неправильных, вводящих в заблуждение ответов будут наказываться.
6.Соблюдайте грамотность и правильность построения вопросов и ответов, во избежание их удаления. "Спасибо / пожалуйста / не знаю" и прочие односложные и не несущие смысловой нагрузки сообщения, будут удаляться немедленно, а их авторы - наказываться.
Основная цель темы - помочь новичкам-модостроителям, второстепенная - свести на нет тенденцию создания новых тем по каждому интересующему новичков вопросу.
Друзья, возникло пару проблем. 1.Создал снайперов на новой локе, на мосту с логикой в аллспавне:
[logic] active=camper
[camper] sniper = true def_state_campering = threat def_state_campering_fire = threat_sniper_fire radius = 150 path_walk = ds_sn2_walk ; - тут она точка. path_look = ds_sn2_look ;- тут две точки (сектор обстрела)
[smart_terrains] none = true END
Вот только бывают моменты когда снайперы мои срываются с места и спрыгивают с моста, можно ли как-то пригвоздить их к месту. Вокруг много аномалий и они тупо гибнут. 2. Пытаюсь подключить новую локу. Сперва были проблемы с аллспавном, но тут разобрался - все запаковалось. А теперь такой вылет:
Expression : fatal error Function : CInifile::r_section File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp Line : 342 Description : <no expression> Arguments : Can't open section 'l22_hiding_road'
Вроде все ltx-ные файлы совместил, не пойму в чем может быть прблема? Где и что не прописал?
butrikA, неверно установлен параметр radius. Параметр отвечает за следующее. Если враг находится за пределами радиуса, то выполняется схема снайпер. Если враг внутри радиуса, то схема снайпер отменяется и нпс переходит в движковый combat. У вас установлен радиус 150 метров, вот нпс и срывается с места. Установите радиус метров 10 и тогда он будет срываться при ближнем бое. Если хотите, чтобы сидел до победного - установите радиус 0.
Ребят, играю в Lost World Troops Of Doom (3.5 патча). Там для использования патронов,гранат,подствольников необходимо помещать их на пояс. Хочу сделать чтобы подствольник,гранаты использовались так же с пояса,а патроны из рюкзака. Пробовала править скрипт Ammo_ctrl,но получилось до 2й перезарядки,однако. P.S.мои знания скриптов минимальны.
Всем привет. Кто может помочь подсобите))). Суть проблемы, созданный мною торговец, выдает определенный ствол ГГ, потом после выполнения задания, должен забрать ствол назад. Но он этого не делает... Дает и забирает ствол, через акцион в диалогах.
--дает--
function money_give_rom3(first_speaker, second_speaker) dialogs.relocate_money(first_speaker, 1000, "in") dialogs.relocate_item_section(first_speaker,"medkit_army", "in") dialogs.relocate_item_section(first_speaker,"wpn_svu", "in") end
--забирает--
function pereday_privet(first_speaker, second_speaker) dialogs.relocate_item_section(first_speaker,"wpn_svu", "out") end
С чем это может быть связано?
Спасибо что откликнулись, очень выручили!!!
Сообщение отредактировал Giznyhvatit - Суббота, 05.10.2013, 18:53
MivlaDa, перед внесением исправления нужно было выложить все патроны из инвентаря. Купи новые и проверь, только перед покупкой выложи старые(по типу б/п).
Друзья, всем привет. Меня интересует такой вопрос - как создать мирного монстрика, по принципу Дружка из солянки. Как я понимаю, нужно сделать отдельную секцию и в ней проставить параметры нейтральности? Или же его нужно прописывать в game_relations?
butrikA, одного единственного мирного монстра можно сделать через изменение отношений в гейм_релашн только если больше в игре не будет подобных ему тварей. Тут ясно, что меняем отношение в таблице и имеем дружелюбный к ГГ вид и агрессию к другим. Однако, это не вариант. А потому заново прописываем какого-нить монстра по всем файлам со своими индивидуальными конфигами (может и моделями/текстурами) и вводим в игру как новый вид, но бегать будет у нас в единственном экземпляре. Вот под него, соответственно, и погонишь таблицу отношений. Наиболее простой вариант выцепить все файлы, отвечающие за "работу" какой-нибудь животины и сделать точно по подобию лишь изменив названия и допрописав новую тварь.
А еще проще, в нужную схему вставить нужный оверрайд и не прописывать в куче файлов лишнее. Выглядят оверрайды для монстров так: actor_friendly = true/false - если true, то монстр не атакует актера, до первой атаки на него. npc_friendly = true/false - если true, то монстр не атакует сталкеров и монстров, до первой атаки на него. friendly = true/false - если true, то монстр не атакует никого до первой атаки на него. braindead = true/false - если true, то монстр игнорирует любые атаки.
Frankenshtayn, Андрей, а этот оверрайд для отдельного монстра или для всей разновидности? И еще, можно ли сделать монстра по типу сталкера, со своим характером и логикой. Понятно, что всучивать ствол ему в лапы и одевать броньку - просто смешно, но логику сделать, например посидел у костра, пошел спать на матрас и т.д. Или сдесь необходимо модель создавать на скелете сталкера?
Понятно, что всучивать ствол ему в лапы и одевать броньку - просто смешно, но логику сделать, например посидел у костра,
Андрей, ты не забывай про "классы". Монстры - это монстры, сталкеры - это сталкеры. Там куча тонкостей с их регистрацией в конфигах и "съедобностью" для движка. Если и есть примеры использования визуалов "прямоходящих" монстров в качестве сталкеров (люде-подобных) , то это - просто "натягивание" визуала монстра на скелет сталкера со всеми сопутствующими "геммороями" по костям, capture и прочему. Ну, как ты натянешь собаку на скелет сталкера без бубна с шаманством? Это ещё надо такой "бубен" найти и "шамана" такого. В интернете есть примеры "очеловеченных" монстров или "омонстренных " сталкеров - как то: снорки, зомби, кровососы, контролёры. Естественно, для их применения по пожеланиям надо создавать свою группировку, да бы в "базаре" с таким чучелом у него под аватаркой не светилось - "военный, одиночка и етс", как и сама аватарка соответствовала.
Андрей, а этот оверрайд для отдельного монстра или для всей разновидности?
Привет, Андрей. Конечно это можно использовать как для одного монстра(у которого в логике прописаны эти параметры), так и для множества прописав их в логике этих монстров. Все делается так же, как и для сталкеров - назначаешь логику и в ней делаешь то, что тебе нужно, настроики логики практически идентичны, вот посмотри:
взято с Вики Схемы для монстров
[править]Схема mob_walker
Работает аналогично схеме обычного walker. Но есть некоторые отличия: [mob_walker] path_walk = <имя_пути> - путь перемещения. path_look = <имя_пути> - путь обзора. no_reset = true/false - не сбрасывать action предыдущей схемы (если нужно сохранить, например, звук). По умолчанию false. Примечание: У кровосососов можно управлять невидимостью, для этого необходимо указать параметр state: state = invis/vis - включить/выключить невидимость. Пример использования схемы: [mob_walker] path_walk = x18_snork_walk_1 path_look = x18_snork_look Файл: gamedata\scripts\mob_walker.script [править]Схема mob_eluder
Монстр перемещается по точкам патрульного пути (не учитывая связи между точками), держась на расстоянии от игрока, при этом придерживаясь своего пути, выходя из под схемы при слишком близком приближении к игроку, и возвращаясь обратно, когда расстояние увеличиться. [mob_eluder] path = <имя_пути> - работает как обычно path_walk. Набор точек патрульного пути. time_capture = - время, которое монстр находится под этой схемой. По умолчанию – 10 секунд. time_release = - время, которое монстр находится под универсальной схемой. По умолчанию – 10 секунд. min_dist = - если расстояние до врага меньше этого, то он переходит под универсальную схему. По умолчанию – 5 метров. max_dist = - если расстояние до врага больше этого, то он переходит под eluder. По умолчанию – 10 метров. Примечание: работает нестабильно. Пример использования схемы: [mob_eluder] path = dar_way_checker Файл: gamedata\scripts\mob_eluder.script [править]Схема mob_remark
Ремарковая схема, только не для сталкеров, а для монстров. [mob_remark] state = <параметр> - специфическое состояние данного конкретного монстра (для кровососов - невидимость). dialog_cond = {+info, =func, -info, !func ~number} - условия для открытия окна диалога. anim = <название_анимации> - анимации монстра, перечисляются через запятую. anim.head = <название_анимации> - анимации головы монстра, перечисляются через запятую. tip = <параметр> - какой значок под светится, при наведении на него курсора. snd = <название_звуковой_темы> - какой звук издает. time = - время проигрывания анимаций, используется только для отладки. Пример использования схемы: [mob_remark@hold] anim = stand_idle_0 time = 50000 Файл gamedata\scripts\mob_remark.script [править]Схема mob_jump
Схема mob_jump служит для задания прыжков монстров без каких либо проверок и ограничений (расстояние, углы и т.д.). Указывается позиция с помощью патрульного пути, смещение относительно этой позиции и физический фактор прыжка. [mob_jump] path_jump = <имя_пути> - путь, с помощью которого мы задаем 1 целевую точку прыжка (с нулевым индексом). Реальная точка учитывает позицию path_jump[0] + смещение, заданное с помощью offset. ph_jump_factor = - влияет на время прыжка. Визуально с помощью него задается кривизна траектории полёта. Чем он больше, тем прыжок более острый, быстрый (меньше дуга). По умолчанию 1.8. offset = - смещение по осям x, y, z соответственно, с помощью которого задается реальная точка в пространстве (может не находится на аи-ноде). С помощью данной схемы можно делать: перепрыгивание со здания на здание, выпрыгивание из окна, перепрыгивание высоких ограждений и др. Примечание: фактически mob_jump - это не состояние, а разовое действие. При переходе в него монстр разворачивается в сторону прыжка и прыгает, поднимая сигнал jumped. Т.е. on_signal = jumped | имя_схемы_или_nil – является обязательным параметром в схеме, чтобы знать куда переходить дальше. При выборе позиции используется первая точка патрульного пути (0-вой индекс). Пример использования схемы: [mob_jump] path_jump = aes_snork_jump1 ph_jump_factor = 1.8 offset = 0,0,0 on_signal = jumped | mob_walker2 Файл: gamedata\scripts\mob_jump.script [править]Схема mob_camp
Свойства схемы: Сидит на позиции, смотрит в точку; Можно задать несколько позиций и время смены позиции; Перемещается между позициями бегом; При виде врага переходит под универсальную схему (комбат/паника и т.д); Задаются минимальная и максимальная дистанции от врага до текущей camp-позиции; Если враг уходит далеко - монстр возвращается на позицию; [mob_camp] path_home = <имя_пути> - путь, состоящий из точек, в которых будет находиться монстр. path_look = <имя_пути> - путь, состоящий из точек, в которые будет смотреть монстр. time_change_point = - время изменения текущей camp-точки. По умолчанию - 10000 миллисекунд. home_min_radius = - минимальный радиус от врага до camp-точки. По умолчанию - 30 метров. home_max_radius = - максимальный радиус от врага до camp-точки. По умолчанию - 40 метров. skip_transfer_enemy = true/false – управляет передачей врагов от друзей. Если установлено в true и видит дружественного монстра, то его враги также становятся врагами.(для этого нужно всех монстров в разные group разнести). Минимальный и максимальный радиус необходимы для игнорирования врага, если он убежал далеко и для возврата на текущую позицию. Учитывается дистанция от врага до текущей позиции. Если дистанция меньше home_min_radius - атакуем врага, пока враг не исчезнет или дистанция не будет больше home_max_radius. Две дистанции необходимы для того, чтобы избежать ситуации, когда игрок стоит на границе радиуса действия и входит/выходит в зону и монстр бегает то в свою camp-позицию, то на врага. Выбор текущей позиции производится случайным образом. Индексы точек пути для path_home и path_look должны совпадать (т.е. монстр сидит во второй точке path_home и смотрит во вторую точку path_look). Единственным необходимым параметром является path_look. Если не установлен path_home, в качестве камперской точки учитывается позиция и нода объекта при спауне. Для того чтобы монстр смотрел в разные точки на кампер-позиции, path_look может состоять из нескольких точек. Примечание: обязательные требованием является: home_min_radius < home_max_radius; Количество точек путей path_look и path_home должно быть равным. P.S. mob_camp можно использовать как альтернативу к монстрам под рестрикторами. Пример использования схемы: [mob_camp] path_home = aes2_snork_walk3 path_look = aes2_snork_look3 home_min_radius = 10 home_max_radius = 15 Файл: gamedata\scripts\mob_camp.script [править]Схема mob_home
Схема является ещё одним решением по замене рестрикторов. Рекомендую все следующие гулаги монстров делать на mob_home, а старые гулаги постепенно переводить на mob_home. У кого рестрикторы работают хорошо и красиво, их можно не трогать. [mob_home] path_home = <имя_пути> - точка, вокруг которой будут держаться монстр. home_min_radius = - минимальный радиус от врага до path_home точки. По умолчанию - 20 метров. home_max_radius = - максимальный радиус от врага до path_home точки. По умолчанию - 40 метров. aggressive_home - в назначенную точку path_home монстры бегут а не идут. Описание: Монстры держатся вокруг точек пути path_home. В атаке бросаются на врага, если враг внутри home_min радиуса, иначе прячутся в укрытия. Отсюда следует, что home_min_radius желательно делать таким, чтобы внутри было достаточно каверов. В айдле тоже обычно расходятся по каверам. home_max_radius сделан по принципу большого рестриктера в схеме mob_camp. Примечание: добавлена возможность задания минимального и максимального радиусов для схемы mob_home в флагах первой точки пути (path_home). Для этого введены флаги minr и maxr. В случае, если радиусы заданы и в секции и во флагах, то значение радиуса берется из секции. Если не задано ни там, ни там, то берутся дефолтные значения. Пример использования схемы: [mob_home@gar_boars_nest] path_home = home home_min_radius = 25 home_max_radius = 50 aggressive_home Файл: gamedata\scripts\mob_home.script [править]Схема mob_fake_death
Появилась схема mob_fake_death для зомби. Необходимо для сценок, когда игрок идёт, а вокруг него начинают подниматься зомби. [mob_fake_death] При входе в схему зомби падает, при выходе из схемы встает. Пример использования схемы: [mob_fake_death] on_actor_dist_le = 5 | nil Файл: gamedata\scripts\mob_fake_death.script [править]Секции для монстров
[править]Секция mob_combat
Секция работает аналогично схеме combat для NPC. on_combat = mob_combat [mob_combat] on_info = {+info -info =func !func ~number}%+info -info =func% - эффекты, которые вызываются когда монстр уходит в бой. Вызываются при каждом апдейте. Пример использования секции: [logic@val_sos_bs] ... on_combat = mob_combat
Секция работает аналогично схеме death для NPC. on_death = mob_death [mob_death] on_info = {+info -info =func !func ~number} %+info -info =func% - эффекты, которые вызываются при смерти монстра. Пример использования секции: [logic@gar_boars_nest_rush] ... on_death = mob_death@gar_boars_rush
[mob_death@gar_boars_rush] on_info = {=killed_by_actor} %=inc_counter(gar_boars_counter)% Файл: gamedata\scripts\mob_death.script [править]Оверрайды для монстров
actor_friendly = true/false - если true, то монстр не атакует актера, до первой атаки на него. npc_friendly = true/false - если true, то монстр не атакует сталкеров и монстров, до первой атаки на него. friendly = true/false - если true, то монстр не атакует никого до первой атаки на него. braindead = true/false - если true, то монстр игнорирует любые атаки. [править]Общая секция spawner
Эта секция, которая присутствует как у NPC, так и у монстров, спавнит их по определенному условию (выводит в онлайн). Для того, чтобы они появились в данной точке, им надо поставить в настройках в Level editor флажок no_move_in_offline и отключен can_switch_offline. Спавнер прописывается в custom_data объекта перед секцией logic. [spawner] cond = {+info -info =func !func ~number} - условия для спавна. Если условия спавна не будет выполняться, то объект не заспавниться, а если он заспавнился и условие перестает выполняться, то объект будет спавнером уведен в оффалйн. После того, как объект заспавнился, его берет под управление скрипт Logic. Пример использования секции: [spawner] cond = {+esc_boar_dogs_restrictor} Файл: gamedata\scripts\xr_spawner.script [править]Спавн монстров дневных и ночных
[spawner] cond = {=is_day} – спавнить монстра только днем (если надо ночью, то пишем {!is_day}) check_distance = true – проверка на наличие персонажа рядом. min_distance = 100 – если игрок ближе указанной дистанции, то монстр не заспавниться (по дефолту 150 метров, но на самом деле это много).
Вот малюсенький пример: Есть у нас монстр, например кабан, и у него прописана например такая логика
Код
[smart_terrains] none = true
[logic] active = mob_walker ;--это наша активная схема
[mob_walker] path_walk = walk@big ;--ходим по пути, например по кругу по трем точкам actor_friendly = true ;-- если мы не трогаем монстра, он на нас не нападет!
Отсюда видно, что именно этот кабан нас трогать не будет, пока гг не нанесет ему хит
Точно также можно подружить кстати монстра и сталкера - например сделать домашнего псевдопса/кровососа и т.д Как уже выше написал Андрей - достаточно добавить в логику пару строк. Ну а сталкеру, чтобы он не атаковал монстра - придется поставить иммунитет к дэнжеру (об этом уже тут писалось). Что из этого может выйти? Можно посмотреть например тут (время от 07:12 и далее). Ну и можно совершать всякие интересные штуки - заставить кровососа стать невидимым, вынудить снорка прыгнуть куда нам нужно и т.д
Блин, не знаю , можно ли здесь задать этот вопрос, но не знаю где можно: вообщем на 8-ку ТЧ ставится или нет, у меня не получается. Пишет: --ЦИТАТА--- Ошибка при доступе или попытке внесения изменений в системный реестр. Для активации используйте приложение интерфейса защиты с параметром командной строки "/lic:activate", запустив его с правами администратора. Данное приложение можно найти в инсталляционной папке продукта ---КОНЕЦ ЦИТАТЫ--- Гуглил пару часов, но чёткого ответа нигде нет.
— Опасные мутанты, анархисты и бандиты не остановят «Долг», когда за «Долгом» гонится сталкер Петров.
Сообщение отредактировал КАРДАМОН - Четверг, 10.10.2013, 20:46
Я ноут на днях купил , уже с 8-ой, и пока ничего не понимаю , где все эти строки , реестры и т.п.
Добавлено (10.10.2013, 23:20) --------------------------------------------- volazar, То есть , мне теперь нужна нервотрёпка с переустановкой, я ж не сисадмин (((
— Опасные мутанты, анархисты и бандиты не остановят «Долг», когда за «Долгом» гонится сталкер Петров.
КАРДАМОН, Увы, тут без вариантов. Я тоже ноут купил с восьмеркой, удалил и поставил XP, мне для обучения в СДК надо. На компе стоит семерка, там сталк идет нормально, но не работает СДК. По восьмерке сам в инете искал, как сталка одаптировать, так и не нашел. Меняй, ничего страшного нет, единственное денег жалко за систему.
Сообщение отредактировал butrikA - Пятница, 11.10.2013, 07:50
Собрал стволы В.О.В. как дополнение к ОП+К+МА и прописал их Бандитам в Т.Д., как говорил " Ворон",что они там раскопали склад с трафеями, в каком фаиле дополнить обмен этих стволов у него, на арты? ,можно в личку