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

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


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

Вот и я так-же думаю, это вполне логично. Странно только, что во всех ЗП-конфигах присутствует именно 2-й способ. Ведь программисты GSC вроде не глупее нас? ;)

 

А по первому вопросу о "пулестойкости" не подскажите где крутить?

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

Все же выскажусь в "оправдание" программистов GSC:

Как правило, конфиги логики пишутся так, что сразу же включается (активизируется) некая секция с различными действиями и условиями, ну а далее - по алгоритму. Если говорить о начале игры, начале функционирования объекта в игре - то все вроде бы просто и логично, но...

А что происходит когда отработавшее свое логика (за'нил'енная) пишется в сэйв и с этого сэйва игра и объект вновь стартует?

А все тоже просто: в сэйв пишется параметр 'active_section' и в случае, если этот параметр отсутствует - пишется пустая строка.

Т.о. если объект имеет логику, которая отработала и встала на 'nil' - то в сэйв будет прописана пустая строка для активной секции... что при загрузке сэйва приведет к тому, что вновь(!!!) будет активизирована дефолтная [logic] active = ... и вновь начнется цикл действий/проверок/... При чем, все это на старте игры при выходе "кучки" различных объектов в онлайн, что уже создает лаги.

К чему могут приводить такие "стартовые повторы" циклов отработанной логики, к каким "взбрыкиваниям" иль коллизиям даже программистам писавшим логику просчитать порою не просто.

Способ, который избрали программисты GSC, хотя и несколько ресурсо-затратен, т.к. постоянно выполняется холостой апдейт пустой секции схемы (никаких проверок условий или действий!), но именно это и снижает "стартовое" взбрыкивание, когда ресурсов съедается гораздо больше на уже ненужные проверки и действия.

ИМХО, более правильно, писать логику таким образом, чтобы стартовала некая простенькая секция, которая минимальными проверками определяла бы необходимость запуска полного цикла логики или же вставать на "nil". Предполагаю, что 'пустая' секция от SGC - просто недоделка этой идеи.

А еще лучше - если объект отработал свою логику, то в более 90% случаев его (рестрикторы и т.п.) можно просто удалять из игры за ненадобностью. Так и ресурсы сохранятся и никакого гимора с отработанной логикой... ;-)

 

Nostrik, а по 1-му вопросу, почитай шапки тем топиков "Ковырялок", почитай факи и пр., где уже немало раз писАлось на тему "усилений" неписей. Обрати внимание на правки визуалов и файлов damages.ltx и immunities.ltx в папке \gamedata\configs\creatures\.

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

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

Artos, спасибо большое за объяснение, я и не знал, что все так запущенно :) Т.е. все-таки лучше делать переводом в пустую секцию?

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

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

Nostrik, неужели из моего ответа и твоих собственных размышлений на тему "не глупее нас" невозможно сделать простой вывод:

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

- да, во многих случаях правильнее 'нилить' логику.

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

- да/нет, или жертвуем расходами на холостые апдейты, или получаем лаги на старте игры и в игре точках вброса в онлайн объектов.

- вообще ни так ни так, а переписать и логику и схемы, чтобы ни лагов не было и ресурсы экономились!

- ...

Выбирай по-вкусу... :crazy:

 

Удалить же скриптом (из игры) из all.spawn'а ничего нельзя! А вот на старте игры (или в процессе) ничего не мешает это делать. Способов привеликое множество и даже в имеющихся модах, да и в соседнем топике по ТЧ не так уж давно был разговор.

Хотя бы, например, в той же пустой секции сделать вызов функции, которая и определит что за объект и удалит хоть сразу, хоть с задержкой.

И не путай конфиг логики или объект сам ничего не делает, а в любом случае делают что-то сторонние функции (хоть и из диалогов, хотя почему такая тяга к диалогам? Да еще и ... "диалог с рестриктором" - абсурд!)

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

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

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

Помогите пожалуста, какую нужно дать логику нпс чтобы он сидел на корточках и травил анекдоты? В ТЧ есть похожая логика kamp, но в ЗП она почему то не работает, мб есть другая?

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

Не доставай меня, а то врежу!

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

TORR, в ЗП, как и в ТЧ, за сидение на корточках и травлю анекдотов отвечает схема 'kamp'. Если у тебя не получается - разбирайся что не так делаешь.

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

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

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

Artos, честно говоря не знаю, работает ли именно kamp, не проверял, просто в ЗП это делается по-другому: травля анекдотов осуществляется в зоне специального спавн-элемента camp, который накрывает вей-поинты или анимпоинты с работами. А вот сидеть на корточках - нужно уже или вей-поинты с соответствующей анимацией ставить в зоне camp-а или анимпоинты (с одним НО - в чистом ЗП отсутствуют анимпоинты с анимашками sit_ass и sit_knee, нужно добавлять самому).

 

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

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

Clayman, схема 'kamp' в ЗП активна (см. в modules.script), вся система обвязки этой схемы сохранена и даже привязана к кострам (campfire), а не только к гулагам. Так что задействовать не сложно. Не могу сказать точно, требуют ли правок исходные коды (врядли), т.к. модифицировав в ТЧ - портировал и пробовал готовое.

Ты говоришь уже про третий вариант, который тоже вполне может быть задействован. Есть правда нюанс, т.к. в вопросе говориться о "сидеть и травить анекдоты", и если для kamp'а уже есть из ТЧ готовые рабочие наработки, то для camp'а еще придется поискать и/или покумекать как прикрутить анекдоты (jokes) и реакции на них...

Так что все зависит от того, что же захотелось сделать.

- для одиночки - и вполне remark'ом можно обойтись,

- если отдельные посиделки понадобились - то можно и kamp задействовать,

- ну а если всюду в игре - то предпочтительнее доработать camp, хотя что-то не встречал, чтобы кто-то sr_camp.script ковырял...

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

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

Просто в чистом ЗП все под camp-ом и сделано - и анекдоты травят и смеются и на гитаре-губной гармошке играют. Единственный нюанс - все это общение работает, если нпс занял анимпоинт, в зоне действия camp-а (смарт_animpoint_1 и.т.д.), будет ли он болтать на вей-поинте (работе) в зоне camp-а, не помню.

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

Clayman, вот как раз не 'просто'... ;-)

Да, в чистой ЗП все на camp перевели, но как не было анекдотов (jokes) даже в ТЧ (их там вырезали), так и и тут - только "рассказы" (story). Реакции на рассказанный анекдот тоже нет (смех иль еще чего...). В ТЧ все давно уже вернули и, как говорил, по готовому несложно в ЗП добавить.

Да и сам пишешь, сидеть приходится задавать самому во второй схеме (в путях), в отличии от kamp'а, в котором и сам сядет (где укажешь), да еще периодически меняет позу, пересаживается...

В общем три варианта даны, а уж какой "проще" для TORR'а (иль для кого другого) - пусть сам выбирает.

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

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

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

Ну честно говоря, мне тоже схема kamp из ТЧ больше нравится реализацией, насколько я помню, там один вей-поинт нужен и все. А для camp-а нужно кучу анимпоинтов ставить, что увеличивает трудозатраты по заселению локаций и раздувает allspawn.

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

А мне и та и другая не по душе ;-).

И kamp имеет изъяны: чтобы не горели неписи в кострах, приходя к ним в оффлайне - путей нужно два. Сам камп хоть и соответствует костру, но все же костер - отдельная точка (позиция объекта). Неписи конечно вольготно у костра себя ведут, но ... если у костра матрац иль подобное валяется - не видят разници сидеть на земле иль на матрасике.

Про camp ты уже написал заморочки, которые вроде решают минусы kamp'а, но лишают вольности поведения неписей и сидят как прописано, т.е. никакого AI.

По-хорошему, эти схемы срастить нужно, чтобы парой-тройкой доп.параметров можно было задавать иль вольное поведение иль усаживать в нужную точку. Примечание: Уже делал подобное (для ТЧ, но еще не публиковалось) и довольно неплохо получалось.

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

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

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

Так а зачем сделали в ЗП эту геморную схему camp`a, в которой нпс, не такие "живые", в добавок не дрыхнут ну и тп...(не припомню всех недочетов с тем, что было в ТЧ), и еще эти анимпоины, вей-поинты... бред...(кстати на анекдоты у них есть реакция и под этой схемой)

 

А схема kamp`a, норм пашет? ну в смысле, нпс реально спят(на схеме camp`a заставил их типо "спать" дописав анимку сна, но во сне можно с ними говорить)?

 

Artos

По-хорошему, эти схемы срастить нужно, чтобы парой-тройкой доп.параметров можно было задавать иль вольное поведение иль усаживать в нужную точку. Примечание: Уже делал подобное (для ТЧ, но еще не публиковалось) и довольно неплохо получалось.

 

Вообще да, согласен с этим :), было бы куда лучше(мб пробну, если будет время).

Изменено пользователем Viнt@rь
Ссылка на комментарий

Так а зачем сделали в ЗП эту геморную схему camp`a, в которой нпс, не такие "живые", в добавок не дрыхнут ну и тп...

 

ИМХО в ЗП при всех его достоинствах, очень много сделано конкретных ограничений на а-лайф, что полностью убивает атмосферу. Все достаточно линейно и предсказуемо, плюс жестко зафиксированно определенными правилами. Camp - один из примеров. С другой стороны, возможно благодаря этому - ЗП одна из самых стабильных и безбаговых игр серии.

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

Batment, поставить проверку условия (прекондишн) на "получения" инфопоршня... - это даже понять сложновато.

Если тебя интересует, как в диалоге проверить имеет ли актор какой-то конкретный инфопоршень (проверка наличия инфопоршня), то очень странно, что в уже готовых диалогах игры ты не увидел кучу интуитивно понятных строк типа:

<has_info>tutorial_wounded_help</has_info>

ну а для скриптового диалога применяется метод AddHasInfo("tutorial_wounded_help")

 

(читаем ФАКи!)

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

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

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

Я не правильно сформировал вопрос, мне надо чтоб после получения инфопоршня стал доступен диалог.

 

Научитесь, пожалуйста, пользоваться поиском. Вот здесь всё подробно описано: >>Click Me<<

ColR_iT

 

 

Вопрос снят.

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

Вопрос по ЗП.

Есть куча уроков как добавить и прописать уровень в скриптах. А может кто объяснить как убрать уровень из мода и при этом не нарваться на вылеты?

Какие секции и из каких файлов удалять? И если уровень останется в section4.bin - это как нибуть повлияет на стабильность? (спавн чистый - нету даже переходов)

47.gif

LXTwrBW.png
ukgXKMe.png

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

Какой утилитой можно запаковать файлы, чтобы ЗП нормально читала эти архивы?

Пробовал универсальным конвертором от бардака:

converter.exe -pack gamedata -xdb -out textures.xdb0

после чего файл textures.xdb0 перемещал в папку mods/

При запуске игры вылет:

Expression : 0

Function : CLocatorAPI::LoadArchive

File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp

Line : 340

Description : unsupported

 

 

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

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

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

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

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

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

Войти

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

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

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...