Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

Можно ли через all.spawn сделать появляющийся только после определенного события level_changer? Или это можно как-то реализовать только через скрипты?

"Зло перестало быть слепой хаотичной силой. Сегодня Зло действует по праву закона - ибо у него теперь есть права. Оно действует в соответствии с заключенными мирными договорами, ибо о Зле подумали, заключая эти договоры. Геральт из Ривии, ведьмак."

Ссылка на комментарий

MgVolkolak, объекты класса 'level_changer' не обрабатываются логикой, т.е. они либо есть (заспавнены) либо их нет. Так что ни через all.spawn ни другим способом невозможно заставить переход появляться иль исчезать ...

Но(!) скриптами можно в зависимости от условий спавнить нужные переходы в нужных местах и/или удалять их. Это чуть посложнее, чем телепорты, но не на много.

 

Вампир35, читаем статьи/материалы про респавнеры и используем их свойства/логику. Проверка на 'день/ночь' вполне применима к респавнерам.

Или банально пиши скрипт спавна своих монстров с проверкой "а наступила ли ночь".

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Max_Plohih, а может быть стОит почитать факи/типики по данному впросу и в конце концов понять и запомнить, что понятие 'броня' для НПС никак не связана с теми предметами, которые для актора называются 'костюм/броник/экза'.

У НПС имеется визуал, в который входит все, т.е. и его морда и его ботинки и пр., а то, что актор якобы находит в трупах НПС - всего лишь предметы, которые туда заспанил некий модмейкер своим скриптом мародерства. Вот и 'доставай' того модмейкера, который скриптом рассовывает в трупы новенькие броньки ...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Лазил по системным файлам и нашел два файла: m_fraction.ltx и m_fracture.ltx

На сколько понял, fracture - это излом. Тогда кто такой fraction?

Мод: Народная Солянка + ООП

Ссылка на комментарий

Кто разбирал схему watcher_act (собирательство), у кого-нибудь получилось адаптировать схему под чистую игру? При моей адаптации (насколько я понял, правильной) происходит безлоговый вылет.

P.s. схему взял из Full AI pack. А если поставить скрипт из АМК, будет такой же вылет.

Изменено пользователем SkyLoader
Ссылка на комментарий

SkyLoader, хотя тебе уже давался совет о том, что для совмещения требуется анализ и внимание, но ...

 

1. Исходный файл xr_motivator.script, применяемый в схеме мародерства, имеет корни из патча 1.0004 и требуется при необходимости его адаптировать под 1.0005/6, что довольно легко сделать, добавив:

self.npc_script_version = alife():object(self.object:id()).script_version

dialog_manager.load(self.object, reader, self.npc_script_version)

 

2. В схеме watcher_act.script используется: local prop_idlecombat=xr_evaluators_id.state_mgr + 3

, т.е. использован дополнительный эвалуатор (evaluator_state_mgr_idle_alife), который кодерами АМК был введен в state_mgr.script. Вот именно в этом у тебя и загвоздка.

Вариант 1: закомментируй в watcher_act.script строки с prop_idlecombat

Вариант 2: доадаптируй state_mgr.script до АМК-варианта.

Изменено пользователем Artos
  • Спасибо 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos,

Посмотрел, чем отличаются файлы state_mgr в аи-паке и оригинале. Там был добавлен эвалуатор evaluator_state_mgr_idle_off и экшен act_state_mgr_to_off. Я адаптировал этот файл под оригинал, эвалуатор и экшен зарегистрировал в этом файле. Теперь вроде все работает нормально. Но как было лучше делать? Закомментировать строки в prop_idlecombat или использовать адаптированный state_mgr.script?

Ссылка на комментарий
SkyLoader, как было лучше делать?

Можно ответить по-разному ... т.к. критерий 'лучше' у каждого свой.

Вар-1: Лучше (ИМХО) делать так, как сделал 'я', переписав скрипты и схемы собирательства и стейт-менеджера так, как посчитал 'лучше' (см. в SIMBION'е).

 

Вар-2: Если разработчики АМК-мода добавили эвалуатор, то не нужно их считать чудаками, которым было делать нечего, как добавлять мусор в коды.

Добавленный эвалуатор (само его название говорит о назначении 'завершение перехода в свободное состояние') позволяет 'завершать' некие действия непися, если ему они были предписаны. Ему назначается состояние 'idle' и отключается озвучка, т.е. по сути он завершил некие действия и готов к другим.

Очевидно, что перед тем как выполнять действия предписанные схемой мародерства (идти к предмету и/или поднимать предмет) следует дождаться, чтобы НПС не занимался в это время иными действиями. В противном случае могут быть и коллизии и прерывание начатого ... Именно для этого в схеме мародерства вставлены условия на положительный ответ от доп.эвалуаторов.

 

Вар-3: Если иметь целью сделать максимально просто, быстро и совместимо с исходной игрой - то может быть "лучше" обойтись и без доп.эвалуатора. Как известно, любой код содержит хотя бы потенциальные ошибки ... Т.о. чем больше кода - тем больше вероятность ошибок/коллизий.

(Это конечно в общем случае, т.к. все зависит от каКчества кода и от того кто до(у)бавил)

 

А вообще, ответ должен быть таким: Модмейкер должен читать и понимать код(!), а не тупо использовать непонятные ему строки/символы. И только, понимая с чем работает и как 'это' работает, он сам может и должен решать как делать лучше.

Иначе вопрос превращается в "А как мне попроще использовать без фатальных последствий?"

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Добавляю новую локу в игру, добавил в алл.спавн алайф новой локи, way не добавлял.. собрал, и для проверки расспаковл, там оказался way файл с именем новой локи, и в нем секции, я проверил, таких секций больше ни в каком way файле нет, можно оставить в этом файле(way_новая лока), или нужо переплесать, что бы way файл с новой локой не появлялся..?

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

Ссылка на комментарий

Добрый день форумчане.У меня стоит мод "Тайные Тропы 2", и там при попадании в ГГ пуль или попадания ГГ в аномалию, возникает шатание экрана, иногда оружие вылетает из рук.Помогите пожалуйста как это отключить и поставить стандартную АМК'шную анимацию (красные треугольники)

 

Тебе сюда: http://www.amk-team.ru/forum/index.php?showtopic=11039

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Немного не в тему, но...нужна помощь.Вот такой вылет словил на радаре,около перехода на Припять.

 

FATAL ERROR

 

[error]Expression : e_entity

[error]Function : xrServer::Process_event_reject

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp

[error]Line : 12

[error]Description : entity not found. id_parent=10474 id_entity=10476 frame=65105

 

 

Что он от меня требует? Вылет произошел,когда я монолитовца убил, а он на колючую проволоку улетел.

Ссылка на комментарий

Gaz24, смотри следующие файлы: death_generic.ltx, death_items_by_communities.ltx, death_items_by_levels.ltx, death_items_count.ltx, которые находятся в папке:\Program Files\GSC World Publishing\S.T.A.L.K.E.R\gamedata\config\misc\

А вообще-то это азы.

 

Арбитр, правкой файлов отвечающих за диалоги.

Есть масса статей по созданию диалогов (смотрим шапку), не ленитесь, почитайте. Для начала

 

S.T.A.L.K.E.R-DOLG, Посмотри здесь

Изменено пользователем Гномик
Дождь не может идти вечно...
Ссылка на комментарий
Гномик, уже читал не раз,не нашёл ни слова о моей проблеме.При наводке на того же лидера военных на блокпосте не высвечивается кнопка "F".Поменял группировку его на другую(Одиночка) - всё пашет
Ссылка на комментарий

Арбитр, 'разговорные' схемы (xr_meet/xr_remark/...), как и схема раненого (xr_wounded) имеют фильтры, по которым "неподходящие" группировки отсеиваются. Вояки, как и зомбированные, как раз и отсекаются от возможнсти разговоров с ними.

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

И не нужно говорить, что нет статей о том, как "научить" вояк/бандитов/... разговорчивости. Покопайся в ФАКах/статьях повнимательнее.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Подскажите, в чем дело?

Сделал такой скрипт дин. новостей -

local freedom_list = {
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Да здравствует \"Свобода\"! Сделаем мир при помощи Зоны лучше!",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Вступайте в \"Свободу\"! Сделаем Зону по-настоящему свободной!",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Нужны опытные сталкеры для рейда за хабаром. С нас причитается.",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Чуваки, подсобите! Мы тут еле справляемся!",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Что-то слишком тихо. Ушами чую, не к добру это...",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Тааак! Опять по общей связи базарим! Щас Чехову скажу, будете знать! И на этот раз ящиком водяры не отделаться!",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Народ! В Темной Долине замечено большое скопление монстров! Всем быть начеку!",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Чуваки! Прикинь, трава, шо возле Трамплина - торкает нехило! Ха-ха-ха!!!\nСовсем сдурел? Какая трава?",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Океюшки, вас понял.",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Эх возьму я шашку в руки...",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Пацаны, где этот зеленый, по имени Макс?",
"%c[255,0,255,0]\"Свобода\"\\n%c[default]Блин, пиплы, занесите на блокпост нашим батарейки для рации, они что-то долго не отвечают..."
}

local stalker_list = {
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Сучья Зона...",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Мужики, помогите!Мутанты прут со всех сторон! бля, да есть тут кто нибудь!!!! мы тут ща все поляжем!!",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Че то воронье раскаркалось. Не к добру это...",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Куплю артефакт \"Душа\", предложения - в личку.",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Мужики, я слышал, что Сидорович цены сбросил, вроде как на большой Земле, это... как ево.. кризис, во! Надо будет заглянуть.",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Ребят, кто с нами за хабаром? Мы тут группу собираем.",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Сталкеры! Заходите к нам в бар, поговорим, пообщаемся!",
"%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Я где то слышал, что сталкер один нашелся, Стрелок кличка. Вроде как к центру Зоны собирается. Кто информацию про него какую знает, скиньте в личку."
}

local dolg_list = {
"%c[255,0,255,0]\"Долг\"\\n%c[default]Пятый квад, отзовитесь! Хмурый, для вас есть задание - нужно сопроводить ученых на Янтарь.",
"%c[255,0,255,0]\"Долг\"\\n%c[default]Всем постам на Свалке! Появилась информация, что бандюки готовят рейд! Всем быть на готове!",
"%c[255,0,255,0]\"Долг\"\\n%c[default]Сталкеры, вступайте в \"Долг\". Защитим планету от заразы Зоны!",
"%c[255,0,255,0]\"Долг\"\\n%c[default]Сталкеры! нужна помощь на Янтаре! Зомби прут со всех сторон, мы не справляемся! Быстрей!.",
"%c[255,0,255,0]\"Долг\"\\n%c[default]Черт, ну что за день сегодня такой, ни хабара, ни какого придатка, только пуль чуть в лоб не схлопотал....",
"%c[255,0,255,0]\"Долг\"\\n%c[default]Нужны опытные сталкеры для рейда на мутантское отродье. С нас хабар.",
"%c[255,0,0,0]\"Долг\"\\n%c[default]Петренко, а ну отвечай, мать твою! Что у вас с приватным каналом?! Опять упал?"
}

local time_res ={
10000,
20000,
30000,
40000,
50000,
60000,
70000,
80000,
90000 
}

time_news = 0

function show_news()
local time = time_global()
if db.actor:has_info("din_news_active") then
if time_news < time then
time_news = time + time_res[math.random(9)]
update()
end
end
end

function update()
local communites = math.random(1,3)
local texture = "ui_icons_obsh_chanel"
if communites==1 then
freedom()
end
if communites==2 then
duty()
end
if communites==3 then
stalker()
end
end

function freedom()
db.actor:give_game_news("Сообщение", freedom_list[math.random(12)], texture, 15*1000, 15*1000)
communites = math.random(1,3)
end

function duty()
db.actor:give_game_news("Сообщение", dolg_list[math.random(7)], texture, 15*1000, 15*1000)
communites = math.random(1,3)
end

function stalker()
db.actor:give_game_news("Сообщение", dolg_list[math.random(8)], texture, 15*1000, 15*1000)
communites = math.random(1,3)
end

 

поставил на апдейт в бинд_сталкер функцию show_news() .

Вылетает с логом -

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp

Line : 180

Description : <no expression>

Arguments : LUA error: .... - Shadow of Chernobyl\gamedata\scripts\bind_stalker.script:527: attempt to concatenate field '?' (a nil value)

 

 

 

https://www.youtube.com/embed/U0no-6tCxhU

Канал на "Трубе"

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

×
×
  • Создать...