-
Число публикаций
6 272 -
Регистрация
-
Последнее посещение
-
Дней в топе
33 -
AMKoin
551 [Подарить AMKoin]
Весь контент пользователя Dennis_Chikin
-
Капрал Хикс, а он регистрируется ? Лог вывести ? Возможно, это таки другой класс, и другой скрипт, а не se_item. Ну и task_manager.ltx еще раз проверить, тоже выводом в лог же. P.S. А вообще мне этот механизм не нравится принципиально. Ибо - жрет. Сюжетные квесты - еще куда не шло, а серийные - найти бы кого, разбирающегося в гуе, и переделать по типу торговли: заказ на предмет через новости (и протухание по времени, без каких-либо последствий), а сдача квеста - по типу торговли (покупка по повышенной цене в обмен на специальный ассортимент по сниженным ценам). Типа, вот, выбирай на полученную сумму. После закрытия окна остаток денег просто плюсуется к общим деньгам. Смысл - убрать поршни и регулярные проверки на "есть квест/выполнен/провален", и дурацкие диалоги с вопросами ("я буду, я не буду, я отказываюсь, да нет. не отказываюсь...").
-
Из странного, но пожалуй, добавлю: [error]Arguments : LUA error: ... bad argument #1 to 'tonumber' (value expected)Порождается конструкцией вида: local function f() end; tonumber( f() ) В отличии от local function f() return nil end; tonumber( f() ) Возможно целое семейство, связанное с тем, что function () ... end возвращает не nil, в некое 'no value'. Самое поганое, что в тех местах, в которых чаще всего может встретиться, не падает с логом, а тихо повисает. Добавлю к: Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to call global 'qwe' (a nil value) Возможно, "повис" весь скрипт при трансляции или первом запуске. Что нибудь типа лишних скобок в каком-нибудь local v = val() вне тела функции, или эквивалента t[nil] = v.
-
К предыдущему посту: 1. А где, собственно, вопрос ? 2. Вопросы непосредственно по внутреннему устройству именно Солянки - вполне имеют смысл здесь. По крайней мере Артос в свое время аргументировал это достаточно убедительно (Ковыряние/скриптование - скорее про оригинал, в соли есть некоторые нетривиальные изменения, и вопрос про чисто соляночный файл там могут или вообще не понять, или ответ будет бесполезен.). Но, да, хотелось бы, чтобы интерес был не чисто спортивным, а из него что-то следовало. 3. Если это вопрос про se_respawn, и чисто соляночный (а не какой-то другой), то simMaxCount в нем в начтоящее время не используется ни как. idle_spawn_preset - это не функция, а таблица. Так же, как и simMaxCount, кстати. По записи вида 60*60*48 (ну или что там в последнем множителе), очевидно, что это секунды. Очевидная связь с game.get_game_time() говорит о том, что секунды - игровые. 4. И, да, вопрос по уровню не совсем для этой темы. С такими (и прочими типа "вот я изменил строчку, которая сам-не -знаю что делает") - действительно, по приведенной ссылке. Здесь крайне желательно в этом уже разбираться.
-
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
Капрал Хикс, для квестов на уники они должны регистрироваться. se_item.script -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
Еще странное и загадочное: НИ, "создание", "загрузка"... лог: Это движок при создании дернул какую-то скриптовую функцию типа xr_gulag:beginjob(), которая успела выставить для какого-то непися Object_begin_job в true, после чего благополучно повисла, а гулаг так и сохранился ? -
По артам проверил список с НИ: имена те же самые. Да, можно заносить на удаление, вместе с аномалиями и прочими скелетами. Еще на тестирование: https://dl.dropboxusercontent.com/u/27871782/se_stalker_test2.7z Вот понятия не имею, кто такой Борман (Бармена - знаю), и что он делает в Лиманске (кстати, что ?), но интересно, что изменится в этом самом Лиманске после наката файлов.
-
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
Вообще я сейчас готов поверить даже в то, что наличие пустых строк может иметь какое-то сакральное значение. 8( -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
И что это даст, если в секции smart_terrains читаются куски от logic, а секция logic не видится вообще ? И даже просто тупо строка с logic не видится ? Сделал копипасту из allspawn в скрипт, перезаписал custom_data "руками", нетпакетом - из ini все стало читаться правильно. Бред какой-то. 7.9, нечтение из .xml - это, пожалуй, все-таки другое. Я заметил, что он весьма чувствителен к пробелам/табуляциям/комментариям. Почему-то. -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
ColR_iTНу держи тогда, может пригодиться: https://dl.dropboxusercontent.com/u/27871782/smarts.7z Обрашения к global namespace понятно в куда, а так кое-чего разобрано, и общую картину создает, э-эээ, концептуальную. Из резервов - очевидно, что npc_info надо запонять в se_stalker/se_monster, а из smart_terrains вынести все инициализации/проверки clsid. Ну и повторные пересчеты лишние уже хорошо видны. С нечтением секции забавно то, что кроме непрочитавшейся вообще ни как секции логики, там дальше считались обственно секции как строки. А вообще началось с того, что начал смотреть, чего там xr_logic разбирает. Был потрясен целой кучей, как говорится, открытий чудных. upd: строчку с [logic] не видит вообще ни как. -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
Я чего-то не понимаю, или одно из двух ? код: результат: Или это с allspawn чего-то не того ? -
Аномалии с двойными именами, скелет и собака с кривыми координатами - находятся поиском по allspawn. Мда, арты я где-то зевнул: похоже, скриптом создаются. Так что их имена могут быть другие, и выносить надо из скрипта. Только найти, какого. Странно, поскольку у меня ищутся и грохаются раньше, чем их в принципе кто-то может успеть создать... Так, посмотреть арты пока не могу, поскольку застопорился на совершенно дивно-чудной логике Крота: [smart_terrains] none={-agr_find_gunslinger_cache_found} sak_lager={+agr_find_gunslinger_cache_found}
-
А теперь еще просьба, независимо от предыдущих: У кого стоит мой фикс по смарттеррэйнам, в котором в лог пишутся смарттеррэйны убиваемых, и есть под рукой сэйв на АС - убейте кого-нибудь из свободовцев на барьере (кроме Кэпа), и дайте строчки с покойником. Ну или если у кого при разборке с монолитовцами/зверьем трупы свободовцев образовались - тоже годится. Версия соли значения не имеет - лишь бы лог писался. В качестве заметок на полях шляпы: Мелочь, конечно, но, по моему, task_manager c конструкцией И еще (про вылеты, включая в лабиринтовый), вот список того, что можно вписать сразу в удаление глючных предметов:
-
Поправил, перезалил. Или можно руками в se_stalker.script поиск/замена 2-х строчек (57 и 67) с "if force_offline[self.id] ==" на "if amk.convert_npc[self.id] ==" Водрузил себе ко всему прочему еще и "чистую", проверил. Однако, отвык я на загрузку минутами медитировать, да.
-
А вот кто файлик потестит ? https://dl.dropboxusercontent.com/u/27871782/se_stalker_test.7z Если в модах и паках его не меняли (и если я с обратной адаптацией не намудрил), должен работать во всех солянках. Особенно интересует на АС и Радаре побегать, в частности, как себя будет вести кэп у барьера, и что там с вылетами при повторной загрузке. Сохранность и совместимость сэйвов туда/сюда/обратно не обещаю, но вопрос тоже интересен.
-
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
Что-то не пойму: как и чем определяется то, какие картинки и надписи будут выведены при загрузке ? Ну там всякие "загрузка объектов", "загрузка текстур", "синхронизация", смена мини-скринов с лок... Это скрипт, или движок по какому-то xml'у выдает ? Если второе - а убрать картинку, и вместо нее какой скриптик дернуть - типа, действительно, менюшки - ни как не получится ? А то level.start_stop_menu() вроде как отрабатывает, если, например, из net_spawn() актора вызвать, но менюшка появляется только после исчезновения веселых картинок. 8( Saruman, не получается поиском. seq - это в куда ? P.S. Кстати, чтоб 2 раза не вставать: в ui_amk_options.script function amk_options:on_quit() строка self:GetHolder():start_stop_menu( self.owner, true ) у меня self.owner там почему-то nil. Ну и что она тогда делает ? И там же не пойму смысл консольной команды main_menu off -
Ответы: То, что ни кто больше, ну, кроме еще RUS_D, не заинтересовался возможностями ускорить загрузку соли - это плохо, да. Да, действительно, кроме медленного и печального выжимания миллисекунд из кода, есть другие методы, совокупность которых позволяет сделать даже нагруженную всяким и разным соль - наравне и даже быстрее оригинала, поскольку ряд решений изначально довольно сомнителен. Например, первоначальные инициализации смерти неписей, торговли и диалогов неписей, тайников, и т.д. А также доработка явно недоделанных звука и графики. И опять же плохо, что из тех, кто может адаптировать найденные решения к уже выпущенным версиям, опять же практически ни кому кроме 2-х или 3-х человек, которые сделали, что могли, в доступных им областях, не интересно. А это в общем-то 5 скриптов со значительными изменениями, и много мелочи, где надо тупо искать и менять по 2-3 строчки. Теперь что касается пресловутых 18 секунд: Это я сам только недавно выяснил, и описал выше: при загрузке около бункера сидоровича в это время входит загрузка графики и звуков нескольких видов сталкеров-нейтралов. Плюс разнообразный шмот. Я проверял это на кордоне на удалении от бункера (это гарантированно быстрее как минимим на 5-10 секунд, чем у бункера (замер по таймерам) и на АС, где в это время вообще все неписи были в офлайне). Вот здесь стоило бы проверить время загрузки на разных локациях и в разных точках, хоть с оптимизациями, хоть без. А также - на одной и той же машине, в одной и той же точке, но с разных НИ. При повторной загрузке, не выходя из программы, когда звуки, графика, конфиги уже считаны и обработаны - да, время еще уменьшается. Здесь, кстати, тоже есть резервы за счет изменения порядка обработки разных функций и входа тех же неписей в онлайн тогда, когда играющий ничего не делает, но это уже задача на перспективу, и это все надо проверить. Кроме того, разница в измерениях возможна за счет особенностей w7, поскольку у меня, например, время запуска сталкера (не только загрузки собственно игры, но и именно запуска, вообще до появления меню), сильно изменяется от раза к разу. В общем, все это надо проверять на разных машинах, и в разных ситуациях. Тем не менее, разница после ликвидации заведомо медленного кода и всех остальных мер действительно есть, и значительная. Сократить фазу "синхронизаци" до нескольких секунд с минуты и более, как 14.08 - реально. Также реально сокращение времени и остальных фаз, но они сами по себе сейчас занимают гораздо меньше времени, чем синхронизация. От выяснения подробностей: что, при каких конкретно условиях, сколько именно - меня - увольте. Мне есть чем заняться. Конкретно - довести это все хотя бы до очередной работающей тестовой сборки. А там уже у кого сколько получится - столько и получится. Желание проверить - это похвально, но пора уже осваивать какой-то технический минимум, позволяющий разобраться в том, как проверяемое работает, внести изменения грамотно, и сделать замеры опять же внутренними средствами измеряемого. А также попробовать определить, чем эта разница результатов реально может быть вызвана. Про те же таймеры в этой теме много чего написано. Это была техническая часть. Что до личного - очень плохо, когда "проверка" делается без малейшей попытки разобраться в том, что именно проверяется, комментированием первой попавшейся строки. Или "я этого не видел, по этому не может быть", когда русским языком написано, что ЭТО может выглядеть как угодно. Или апелляцией к неким авторитетам, которые просто не могут ошибаться. Хотя размер многочисленных "техподдержек" прямо свидетельствует об обратном. Еще хуже, когда опять же без малейшей попытки разобраться идет ссылка на те же авторитеты в чисто технических вопросах, которые этих авторитетов никогда вообще не интересовали в принципе. И совсем плохо, это обвинять кого-либо в плагиате, от него же и получив n лет назад то самое, в краже чего теперь обвиняем. Да, это я про пост о пропадании оружия, например. Или про еще более ранние.
-
И хотелось бы высказаться, так сказать, по порядку ведения: Вот как-то так это хочется все видеть.
-
А ни кто не хочет заняться долгим, нудным, бесперспективным, и нафиг ни кому не нужным делом ? Ну, типа той правки файлов торговли ? Надо распаковать полностью ресурсы оригинала и солянки, чтобы получить ветку gamedata\sounds\characters_voice\*, по всем подветкам проверить (прослушать ушами) файлы на идентичность по смыслу (то есть, если там нет чего-то принципиально разного, а есть неполные наборы, двуязычность, отличия по качеству формату для C gamedata\sounds\characters_voice\human_01\, human_02\, human_03\, и в них соответственно для веток bandit\, dolg\, ecolog\ и т.д., и слить все в один каталог gamedata\sounds\characters_voice\human_01\stalker (образец: https://dl.dropboxusercontent.com/u/27871782/sounds_sample.7z - это я для музыки все сделал), лишнее - поудалять, оставив затычки. После чего закинуть себе файл https://dl.dropboxusercontent.com/u/27871782/sounds_scripts.7z, найти в нем соответствующую строку (для музыки из примера это ["guitar"] = { ["rnd"] = { ["stalker"] = { 1, [[music\guitar_]] } } }, и ["harmonica"] = { ["rnd"] = { ["stalker"] = { 1, [[music\harmonica_]] } } }, ) и поменять в нем цифру 1 на 2. Начать желательно с gamedata\sounds\characters_voice\*\*\help и gamedata\sounds\characters_voice\*\*\states\idle. Ну а потом посмотреть на то, что станет с лагами и временем загрузки. Да, одна ветка даст изменение весьма небольшое, так что смотреть надо будет после хотя-бы упомянутых help и states. P.S. Если найдется несколько желающих (в чем я весьма сомневаюсь), распределите между собой. UPD: там, где я писал про замену 0 на 2 читать 1 на 2.
-
Чудесное (из amk_mod.script): Ага, вот такой вот файл замечательный пытаемся читать: scripts\amk\.ltx Кстати к вопросу о вылетах по стеку: получил устойчивый вылет именно по повисанию респавнеров. Любая ошибка в любой вызываемой из него функции. Разумеется, вылет в итоге на абсолютно любом скрипте и в абсолютно любой строчке - что чаще дергается, на том чаще и вылетает.
-
Гм, еще уточняю: А сама строка function generic_object_binder:reinit() end - вот именно в таком виде, вообще нужна, или это, все-таки, мусор ? Ну и прочие save(), load(), update() ? И, кстати, чудесное, аж из самого оригинала: function generic_object_binder:reload(section) object_binder.reload(self, section) end function generic_object_binder:reload(section) object_binder.reload(self, section) end - ага, два раза в одном классе. Это у нас переопределение, или 2 вызова ?
-
Бр-р... Стало еще непонятнее. Вот конкретные примеры были: из bind_monster и из se_artefacts. Эти приведенные куски кода - они там зачем ? Если эти методы НЕ переопределяются - они ведь по дефолту как-то работают ?
-
Гм. А посмотрите, кому не лень, в своих солянках файлики bind_monster.script На предмет строчек function generic_object_binder:reload Они там в одном экземпляре, или в двух ?
-
Что-то как-то не понял по object_binder (и про скрипт для серверного объекта тоже): В части имеющихся изначально или в модах скриптов прописаны методы типа: function generic_object_binder:reinit() object_binder.reinit( self ) endили, соответственно,function se_artefact:can_switch_offline() return cse_alife_item_artefact.can_switch_offline( self ) end То есть, они ничего нового заведомо не делают, но тем не менее явно прописаны. В других скриптах эти методы отсутствуют (то есть, очевидно, просто тупо наследуются, если есть от чего, и там все, что надо, очевидно, есть. Вопрос: эта разница она зачем-то, или это остался мусор от чего-то, или я чего-то не понимаю ? То есть, если вот такое вот отовсюду поубирать - какие эффекты следует ожидать ?
-
Требуется помощь зала. У кого если вдруг есть коллекция солянок разных версий, закинуть файлики, загрузиться хоть с НИ, хоть с сэйвов, выйти, и ... Все, разобрался. На самом деле просто надо какую-нибудь солянку чем древнее, тем лучше, и из нее файлик gamedata\config\misc\artefacts.ltx
-
Я понимаю, что заканчиваем, но утверждения про рэйды с блокпоста таки не соответствуют действительности. Логка там проста до примитивности: если кто-нибудь из вояк видит какого угодно врага, начинается рэйд и продолжается до исчезновения врага + 5 минут игрового времени. Это с оригинала так. Врагом может быть: сам актор, кабаны, собаки, крысы, бандиты-богомольцы (те, которые в церковь на болотах идут)... В общем, кто угодно. Что делать: или поправить скрипт, или вовремя отстреливать живность (можно и сам блокпост, если вертолетов и десанта не боимся), или перезаход на локацию, если зашли неудачно. Да, если до разборок вояк с нейтралами не дошло, можно быстро-быстро добежать до моста, и выждать эти самые 5 минут. Vic333, Ну внимательнее же ! Бандюки идут на болота. Ну вот путь у них такой, мимо деревни и военных патрулей. Вот так их тела на дороге и оказываются. Зачем идут - ну, значит, там место есть свободное. Возможно, там кто-то умер. Или изначально не заполнена. Руки пока не дошли тщательно с болотом разбираться. То есть, значит, до деревни надо доходить несколько медленнее, или, наоборот, быстрее. А если изначальный бандитский трупик - который у ящиков с медузой - это кабанчики затащили. Бывает с ними такое.
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ