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

Народная 2010 разработка


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

"Что у нее внутри, и как это сделать лучше". Для тех, кто уже разбирается в скриптах, конфигах, текстурах и "других страшных словах" ©, и имеет желание и время действительно делать их лучше.
См. подробности в первом посте.

Тема НЕ является ни столом заказов, ни службой техподдержки, ни справочным бюро.

Изменено пользователем Dennis_Chikin
  • Нравится 2
  • Полезно 1
Ссылка на комментарий

proper70, что за КЛ?

Вылеты только при динамическом освещении и только на этих локациях (Неразведанная Земля и Болото). Версия пока тестовая, требует доработки.

Мерцающий, попробуй с этой штукой пройти этот момент на Болоте (кидать в levels\marsh). Будет ли вылет, есть ли изменения в картинке?

Изменено пользователем dimos
Цензура ограничивает творчество © by me
Ссылка на комментарий
Мерцающий, играю тоже на полной динамике, но на НЗ вылетов насколько я помню не было. Часто были вылеты при переходе на НЗ по аут оф мемори, но тогда у меня Скайграфикс мод стоял, который как я выяснил недавно съедал у меня почти 40 процентов производительности видюхи (к сожадению не могу найти пост с точной цифрой - похоже потерли).

AMD Ryzen 5 3600 Box, MB Asus Prime B450-Plus, 2x8 Gb Kingston DDR4-3200, MSI GeForce GTX 1060 3GB, SSD Samsung 840 EVO 120GB, Kingston A400 120 Gb, Samsung HD103SJ SATA2, Samsung HD502HJ SATA2

 

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

[smart_terrain] unregister_npc, npc.id: 47122

Dennis_Chikin, да, интересно будет посмотреть, только надо немного дополнить строки лога, потому что по логу не везде понятно, откуда он выводится (имя функции) и (в цитате) лучше все-таки выводить obj:name(), т.к. в нём и id, как правило, есть (исключая, правда, персонажей, у которых прописан story_id в all.spawn). Вот здесь, например, это чётко видно:

info, [smart_terrain] get_smtrid, obj: fracture_strong47122(id: 47122, clsid: 109)

 

Ага! После объяснения смысла значков "больше" - "меньше" в логах - уже чуть понятнее :)

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

;)

 

 

Виталий Зверь, какие именно функции имелись в виду? Удаления переходов?

 

Dennis_Chikin, если оглянуться немного назад и посмотреть, какие вылеты были причиной ковыряния в смарт_террейне и хр_гулаге, то мне кажется, что общими усилиями мы все дыры заткнули. Все, что может - отрегивается правильно, что не может - тоже отрегивается, вылетов нет. Так что надо либо для проверки взять еще сейвик-другой с непроходимым вылетом и глянуть, что на нём будет (кстати, не факт, еще, что сейв, сделанный на старых версих скриптов эта правка сможет "вылечить"). А вообще - можно, я думаю, на этом пока и остановиться, закомментив дебаг.

PS: на ToDo смотрел уже. Там, конечно, много чего осталось просто в воздухе висеть.

PPS: насчет побитых сейвов (по причине зависаний неписей) - была уже (в целом успешная) попытка, во-первых, запретить запись некорректных данных в пстор неписям, во-вторых, удаление при загрузках тех, у кого кривые псторы уже имеют место. Второе - скорее как переходный процесс, поскольку ставилось и тестилось это всё "на лету" в середине игры.

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

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

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

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

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

(Отдельным постом, для ясности.)

 

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

Для тех, кто готов править скрипты руками или осуществлять еще более осмысленную деятельность - нужны на самом деле diff'ы.

 

На самом деле мне жаль темы "ваши правки" - именно как отладочной - если бы там бы еще грамотно фид-бэк организовать.

 

Ну, это я как человек, испорченный нарзаном - той же pr-базой, мейл-листами и csup того же, скажем, freebsd.org, говорю. Понятно, что сложившийся в модмейкерстве стиль работы - мягко говоря, перпендикулярен.

 

Лог - это для другого. Он для привлечь внимание к сути странного, или например подтвердить отсутствие тех или иных изменений. Это как раз то, что приведено. И то, что выложенным набором скриптов сгенерировано именно что НЕ будет. Суть же неправильности в том, что отрегистрация монстов началась сразу после входа на локацию, и то, что сообщения про отрегистрацию оказались внутри сообщений о работе уборщика. Причем он сам уборщик в это время только еще сталкеров крутит, а до монстов добраться не успел.

 

Впрочем, правильная отработка события там выглядит так:

! Cannot find saved game ~dc~: >>>>> [smart_terrain] on_death, obj_id: 45912
! Cannot find saved game ~dc~: >>>>> [smart_terrain] get_smtrid, obj_id: 45912
! Cannot find saved game ~dc~: info, [smart_terrain] get_smtrid, obj: fracture_normal45912(id: 45912, clsid: 109)
! Cannot find saved game ~dc~: info, [smart_terrain] get_smtrid, strn_id: 16484
! Cannot find saved game ~dc~: <<ok<< [smart_terrain] get_smtrid, strn: mil_monster(id: 16484)
! Cannot find saved game ~dc~: >>>>> [xr_gulag] gulag(mil_monster):clear_dead, obj_id: 45912
! Cannot find saved game ~dc~: >>>>> [xr_gulag] get_smtrid, obj_id: 45912
! Cannot find saved game ~dc~: info, [xr_gulag] get_smtrid, obj: fracture_normal45912(id: 45912, clsid: 109)
! Cannot find saved game ~dc~: info, [xr_gulag] get_smtrid, strn_id: 16484
! Cannot find saved game ~dc~: <<ok<< [xr_gulag] get_smtrid, strn: mil_monster(id: 16484)
! Cannot find saved game ~dc~: >>>>> [smart_terrain] se_smart_terrain(mil_monster):unregister_npc, obj: fracture_normal45912
! Cannot find saved game ~dc~: >>>>> [smart_terrain] get_smtrid, obj_id: 45912
! Cannot find saved game ~dc~: info, [smart_terrain] get_smtrid, obj: fracture_normal45912(id: 45912, clsid: 109)
! Cannot find saved game ~dc~: info, [smart_terrain] get_smtrid, strn_id: 16484
! Cannot find saved game ~dc~: <<ok<< [smart_terrain] get_smtrid, strn: mil_monster(id: 16484)
! Cannot find saved game ~dc~: >>>>> [xr_gulag] gulag(mil_monster):removeobject, obj_id: 45912
! Cannot find saved game ~dc~: >>>>> [xr_gulag] get_smtrid, obj_id: 45912
! Cannot find saved game ~dc~: info, [xr_gulag] get_smtrid, obj: fracture_normal45912(id: 45912, clsid: 109)
! Cannot find saved game ~dc~: info, [xr_gulag] get_smtrid, strn_id: 16484
! Cannot find saved game ~dc~: <<ok<< [xr_gulag] get_smtrid, strn: mil_monster(id: 16484)
! Cannot find saved game ~dc~: info, [xr_gulag] gulag(mil_monster):removeobject, strn = 16484(mil_monster)
! Cannot find saved game ~dc~: <<ok<< [xr_gulag] gulag(mil_monster):removeobject, self.population = 8, non_exclusive = 8
* Log file has been saved successfully!
! Cannot find saved game ~dc~: <<ok<< [smart_terrain] se_smart_terrain(mil_monster):unregister_npc, removed fracture_normal45912 from gulag type=mil_monster, strn_id=65535
! Cannot find saved game ~dc~: <<ok<< [xr_gulag] gulag(mil_monster):clear_dead
! Cannot find saved game ~dc~: <<ok<< [smart_terrain] on_death, strn: mil_monster
* Log file has been saved successfully!

Расшифровка: излом был нормально зарегистрирован, сдох, и благополучно отовсюду вычищен - предупреждений нет, ошибок нет, расхождений в индексах и именах нет, независимо от способа и места их получения, все вызванные функции отработали полностью.

 

Shadowman, посмотри комментарии todo. Это и старых багов с битыми сэйвами касается.

Плюс я еще хочу проверить: все ли везде на месте с емкостью гулагов и количеством работ. Есть невнятные подозрения. А пока - тупо тестируем и ищем в логах предупреждения и ошибки.

 

upd: последний набор и результат его работы: http://gettyfile.ru/672060/

Я в ужасе. Требуется помощь коллективного разума.

 

WhatAbout, ужас в том, что я не понимаю, как оно работало раньше. ;) Я даже не Солянку имею в виду.

 

А так еще сюда же atp_fabrika_bandit - где их явно ненормальное количество, и пресловутая химера, которая в лучшем случае жрет производительность.

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

 

P.S. А вооще я неправильно ставлю вопрос. На самом деле правильный - такой: если куча всякого разрегистрируется при переходе между локациями, а следовательно, очевидно пытается регистрироваться при загрузке - зачем оно это делат, если находится НЕ на текущей локации ?

Где-то изначальный глюк в проектировании всей системы. Все остальное - следствия.

 

WhatAbout, ID без гулагов - посмотри хвост лога.

 

Чую, нагорит нам за этот чат, но вдруг кто из Великих Древних успеет увидеть, и сказать что-нибудь полезное - что, типа, так и задумано. ;)

 

Бандюков явно кто-то разрегистрирует по нехватке чего-то. Сколько-то последних ведь остается ? И по-моему ровно столько, сколько работ прописано в скрипте. Хотя если верить комментариям в скриптах и статьям на вики - должен быть немедленный и бежалостный вылет.

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

 

P.P.S. Обрати внимание еще на такой момент: в конце игры у части отрегистрируемых id смарта - честные 65535 - я таких отфильтровываю. Остались именно те, у которых гулаг внезапно перестал существоать.

 

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

Dennis_Chikin,

C емкостью гулагов и количеством работ не все на месте

Это те, что точно не бьют.

Смарты generators_flesh1, generators_tushkano, generators_snork работы в load_job (gulag_escape.script)

Смарт atp_flesh1 работы в load_job (gulag_new.script, здесь еще, по-моему может вылезти atp_dog1)

При формировании таблиц для этих смартов table.insert(sj, t) делается не для всех работ.

А в gulag:load_jobs() рассчитывается общая capacity -> capacity_non_exclusive.

Добавление недостающих insert-ов количества выравнивает, отрицательный capacity_non_exclusive не вылазит.

 

С живностью проще, а вот:

sak_lager - емкость в all.spawn прописана 3, но 4 ексклюзива

bar_visitors - 10 емкость, 12 ексклюзивов

warlab_svobodovzu - 19 емкость, 20 ексклюзивов ???

 

От сего получается:

1. gulag:load_jobs() [xr_gulag.script]

-- загрузка работ, подсчет gulag.capacity

...

self.capacity_non_exclusive = self.capacity

...

 

2. se_smart_terrain:preserve_exclusives() [smart_terrain.script]

local e = exclusives[self:name()]

if e then

...

self.exclusives = e

...

self.gulag.capacity_non_exclusive = self.gulag.capacity_non_exclusive - e < 0 !

 

И еще 3. Вызов gulag:load_jobs() из se_smart_terrain:remove_gulag после уничтожения гулага и создания нового

self.gulag:load_jobs()

self.gulag_working = false

self.gulag.capacity_non_exclusive = self.gulag.capacity_non_exclusive - self.exclusives < 0 !

 

 

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

 

Dennis_Chikin,

Еще надо разбираться с гулагами, у которых ID есть, а самих - нет.

Это какие и где ловятся?

Хвост лога? Так это, имхо, нормально. Просто гулаги в этот момент уже не существуют. Проверял на выбор часть strn_id, у которых при закрытии/переходе no smart terrain, во время игры - эти гулаги существуют и работают. Может не все проверил - так при закрытии записей no smart terrain тьма...

 

atp_fabrika_bandit - 24 емкость : 24 работы (по крайней мере со старта)? Может здесь в другом трабл...

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

Компьютер: Intel CoreDuo E8200 2,66GHz, GeForge 9800 GT 1024 mb, 4 Gb ОЗУ, Windows 7 64 bit.

Солянка: Народная Солянка от 19.04.2010, 14.08.10 + 3.09.10 + широкий монитор + 18.11.10

 

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

По следам оптимизации...

Новый (для меня) вариант функции trim():

function trim(s)
  return s:match'^%s*(.*%S)' or ''
end

дает от 2-х до 10-и-кратное ускорение в зависимости от того, что ему скормить, в сравнении со "старым" амк-м. Результаты взяты из игры, а не редактора.

P.S. "Старый" амк-й str_explode с новым trim и локализацией внешних функций тоже существенно ускоряется, но всё же отстает от варианта Artos-Gun12

 

Shadowman, запросто может быть, что и люди те строки писали напрямую и в хвосте и начале пробелов с табами наоставляли. Ну и что быстрее в чистом виде - не проверял. Разные функции, разные шаблоны... Главное - результат. Я теоретических изысканий не проводил, а грязно попользовался уже готовыми отсюда. :russian_ru:

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

sapsan, может, ересь скажу, но с трудом представляю, какие именно строки с пробелами могут вообще туда попадать.

Ведь разбираются строки, первоначально собранные также скриптами. И что, где-то предусмотрено, что упакованная строка - с пробелами?

А что, и правда, string:match настолько быстрее string.gsub ? Хотя, и шаблон чуть другой... в принципе то же самое: уборка пробелов в начале строки, шаблон для возвращаемых символов, уборка пробелов в конце.

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

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

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

Shadowman

gsub сначала ищет, а затем производит замену, а match - просто ищет по шаблону(и никаких лишних действий - ничего ниоткуда не убирается, просто игнорируется, если не подходит) - отсюда и разница.

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

Извиняюсь, если оффтоп, но писать в другие темы еще более странно.

 

Для будущей допы Солянки:

1. Странность:

Заметил сегодня в ящике возле Борова (трупа Борова) 1200 патронов к АК, 6 аптечек и 6 ПСО-1. Подозреваю, что ассортимент дополняется с каждого входа в Темную долину. Это я выношу базу Борова каждый раз, когда надо там побывать, а если кто с ними задружился, то получает на халяву патроны и аптечки, что не совсем верно. Если не сложно, поправьте пожалуйста.

 

2. Предложение:

Почему бы не сделать квест с привязкой к конкретному времени суток? Например, в 03.00 часа ночи в Красном лесу будет сходняк персов, необходимо к этому времени "навострить туда лыжи". Пришел в 03.15 - квест провален. Ну и например, во время выполнения квеста запретить пользоваться огнестрельным оружием, допустим надо совсем тихо "снять" главаря какой-нибудь банды. Вот ГГ и получает установку (далее речь давателя квеста): "В 03.00 часа ночи в Красном лесу надо "снять" сталкера Пупкина, по-тихому, без стрельбы. Я слышал у Бармена в продаже есть арбалет с ПНВ, думаю как раз для этих целей сойдет. Охотники мне сказали, что один такой арбалет тебе подогнали недавно. Вот и пришло время его использовать. Да, и не опаздывай, а то Пупкин свалит куда-нибудь и ищи его потом "ветром в поле".

 

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

 

Пост на усмотрение Модератора и Куратора конечно.

Выхожу один я на дорогу, АКМ при мне — и слава Бoгу!

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

С выбросом будет все не так. Сейчас - под старый, делать нецелесообразно. Вообще правок всего и вся будет очень много. Кто хочет помочь - подключайтесь непосредственно к разработке, берите интересующий вас кусок, и пытайтесь с ним что-то сделать.

 

Единственное но: сейчас вылезло очень много проблем, идущих даже с оригинала. Все те вылеты, которые "ни кто не знает: почему" и прочее. По многим уже знаем. Так вот прежде чем добавлять что-то новое надо таки поправить старое. Чтобы в кои-то веки уже нормально заработало.

 

И, да. То, что код всего накопившегося за годы - ужасен - все как бы в курсе. То, что сама логика этого кода заведомо глючная - тоже в курсе. То есть, "мы тут у себя написали маленький безглючный модик, отсоединив 2 скрипта от таймеров - зацените наш крутой скриншот", и с намерением потыкать пальцем в лохов, которые эти 2 скриптика еще не отсоединили - как-то тоже не требуется. Сделали - молодцы. Давайте будем интегрироватьс тем, что есть. Если по ходу дела еще 10 скриптов и 50 конфигов исправите - все будут только рады.

 

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

Dennis_Chikin, Обратите внимание на Ч.У. Неплохо поправить его. Часто бывают только спец эффекты , несостоялся спавн зачем они. И спавн врагов на территорию Бара нужно исправлять. Круто слишком когда в у входа в Бар десяток воинов или зомбарей. Было даже прямо в штаб Воронина. Интересно , но чревато гибелью нужных персон.

Играю с твоими правками , особых нареканий нет.

 

Мерцающий.Ящик в кабинете Борова , это с Оригинала. Я на это барахло даже не обращаю внимание. В игре всего с избытком.

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

Молод ты еще сталкер со мной по Зоне бегать.Вот когда из шестерок вырастешЬ, тогда поговорим.

А о моих подвигах после войны , тоже расскажешь.

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

Увидел в опросе Нет - не слышу топота тушканов... По идее знал как исправить, попробовал так и есть, метод правильный.

Вбил в поиск слово "топот", были такие что говорили что исправили, говорили про конфиги и т.д. но метода так и не назвали.

Короче много слов, вот как это сделать:

Открываем модельку монстра который топает, смотрим его материал (у меня был creatures/small). Заходим в Материал Паир смотрим звуки (степ саунд) контакта с землей и другими поверхностями (у меня были звуки прописаны только в дефаулт), убираем их и сохраняем. Все топота не будет ;)

Если уже писалось извиняюсь не нашел. Пост под снос.

Мой архив

Сталкером не занимаюсь.

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

amik, что-то сложно очень уж как-то... А затычку вместо назначенного саунда - не проще ?

ЗЫ: понятно, что кривенько, но не всякий знает как и имеет чем модельки ковырять ;)

Не по теме.

А чего ж? Ну разве что в баги было бы совсем уж к месту... Но только вот косяк - явно ПЫС-овский.

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

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

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

Shadowman Да нет там проще простого, просто возможно закрутил в описании :blush: .

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

А затычку, ну а что еще она (затычка) уберет? Походу этот же звук (степ_саунд) использует актор и другие нпс, просто у них шажки боле короткие и звук успевает отыграться полностью в отличии от коротконогих.

Вот давненько писал про SEditor

http://www.amk-team.ru/forum/index.php?s=&...st&p=536974

Короче если что пишите подправлю.

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

Мой архив

Сталкером не занимаюсь.

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

Открываем: \gamedata\config\creatures, там смотрим конфиг нужного монстра, например крысы: m_rat.ltx, или тушкана: m_tushkano.ltx

Изменяю параметр: material = creatures\small ---- это топают

на такой:

material = creatures\medium ----- больше не топают.

Вы ленивы, следовательно - вы изобретательны. © граф Де Гиш

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

Забавно. По логике должно быть наоборот. Путаница со звуками ?

 

Но вообще топот, да и ряд других звуков - нужны. Музон во время боя - нет.

P.S. Кстати, топот кошаков, если ориентироваться на тех, что были у меня - вполне соотвествует, когда они галопом скачут.

 

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

Dennis_Chikin А он и будет. Это от дин.муз. не должно зависеть. Кстати я кошака и правил.

romale Рассмотрел и этот вариант.

Дело в том что все m_rat.ltx, m_tushkano.ltx и m_cat были вырезаны из финалки поэтому звуки и не настроены в материалах. А надо было-бы.

Даже не знаю почему все работает если так сделать (я не проверял). К каждой косточке у каждого "профиксенного" монстра проставлен материал objects\monster_body а не creatures\medium или creatures\smoll так что и вам советую его прописывать в конфиг если что.

В creatures\medium и creatures\smoll не проставлены партиклы крови, и многие другие звуки, терки монстров об кусты и т.д. если проставить будет атмосферней. Обратите внимание, если что, не следы крови а именно партиклы вылета кровки, их не должно быть у кота и других монстриков я сегодня попробую тоже проверить...

Недостаток в том что маленькие монстры не должны издавать звуков при передвижении в отличии от средних :russian_ru: . Все равно считаю правильней сделать как я написал выше.

Да и вообще штука пока не познана мной((

Сделал новый материал, назначил его монстру и в конфиге и в каждой косточке. Убрал блоод_марки (текстуры сами). А все равно они остаются на стене хоть убей((

Мой архив

Сталкером не занимаюсь.

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

Кстати, насчет конкретно тушканов, если конфиги от оригинала остались или там звуки не правились, то там по умолчанию на топот стоит звук da2-beep. Я хорошо слышал пикание вместо топота в ориг. игре с восст. тушканами и даже в NLC6 - не удосужились это пофиксить.

New Level Changer 5.08: Раритеты

ReapeR build 3: Раритеты

 

Я на YouTube: Vincent Vega

Ссылка на комментарий
Гость
Эта тема закрыта для публикации сообщений.
  • Недавно просматривали   0 пользователей

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