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

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


n6260

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

Во-первых, антивирь при тестах на скорость желательно таки выключать. Он тормозит весьма конкретно.

 

Athlon 64 x2 6100/4/500. То есть, винт - новый, да.

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

 

Да, повторная загрузка без выхода - это не по тому, что win7, а по тому, что графика кэшируется движком. Звуки и, на самом деле, конфиги - тоже. Именно по этому "скриптовое" кэширование ситуацию не улучшает, а ухудшает. Проблема только в том, что прежде чем что-то закэшировать, движок должен это прочитать. Когда мы побегали по локе, и снова загрузили сэйв той же локи - оно в памяти есть.

 

P.S. Да, а вот с предварительно загрузкой звуков что-то не получается. То есть, оно целых 40 секунд что-то делает, но при входе неписей в онлайн результата не наблюдаю. 8( Если следующий непись читает тот же звук, что запиханы в предыдущих - лага нет. Если новый - лаг.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Кэширование - это не предварительное чтение. Это запоминание прочитанного.

Поэтому, многократное программное кэширование не может дать лучший результат, чем однократное - только наоборот.

То есть, если движок сам запоминает прочитанное - получаются только лишние операции.

 

То есть, в норме мы делаем так:

local ini = ini_file( "наш_конфиг" )

local s1, s2, s3, и еще много строчек

if ini:section_exist( sect ) then

s1 = ini:line_exist( sect, l1 ) and ini:r_string( sect, l1 )

и еще сколько надо

end

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

 

Если строка нам требуется 1 раз - получаем проигрыш в n раз. Если у нас файл с 1000 строк, и каждая из строк нужна по одному разу - вот тут мы и получаем те самые 10 секунд на несчастных 70 килобайтах.

 

Вот если мы бы ЗАРАНЕЕ очень быстро прочитали те 1000 строк, да они еще и требовались бы многократно - да, получим выигрыш в сколько-то раз.

Проблема в том, что вот как раз с возможностью предварительной загрузкой в сталкере все плохо.

 

Или я что-то не то делаю, или оно не работает. По крайней мере на 1.0006

 

Попробуйте кто-нибудь на 1.0004 и дайте лог. Устроит сразу после загрузки. В лагере новичков на Кордоне - вполне. Можно в баре.

 

https://dl.dropbox.com/u/27871782/sound_theme.7z

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

В общем, скрипт можно не проверять - не работает.

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

 

 

Да, к вопросу об "обеднении игры": 6 абсолютно идентичных копий одной и той же окуджавы общим весом в 100 мегабайт, +50 мег пьяной гитарной лажи (зато в 192kbps) + 21 копия балалайки - это, простите, несколько перебор. Мне так кажется. Ну и гармошки в неисчислимых количествах, тоже одинаковые - явно не шедевр.

 

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

Короче, резать и резать. А оставшееся - еще раз проверять, и пережимать.

 

P.S. И таки из соображений экономии памяти исключительно (тормоза здесь только на самом первом неписе) - для уникальной озвучки надо бы таки проставить sidы.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Уже неактуальна.

Пересобирается с очень большими изменениями.

 

Кстати, фиксы по прицелам и звукам вообще кто-нибудь тестировал ? На чистой соли ?

 

Меня в частности интересуют бои на АТП и с немниками. Ни кто ни каких изменений (или проблем) не замечал ?

 

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

https://dl.dropbox.com/u/27871782/%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F.7z

 

Всего-то каких-то жалких 40 секунд загрузки.

 

Дефолтные коэффициенты крутить в system.ltx

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

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

Поделиться этим сообщением


Ссылка на сообщение

О звуках опять:

 

Ну, анекдоты и реакции на анекдоты - еще понятно. Там реально размеры немаленькие.

А вот время загрузки всяких characters_voice\human_*\*\help\,

особенно, wounded_heavy\help_, wounded_psy\psy_, not_wounded\help_ - по сравнению с историями вроде и быстро, но соотношение время/размер какое-то не очень адекватное. Imho.

 

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

 

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

 

P.S. И, да, БТР, которому как звук двигателя грузится балалайка - возможно, это и смешно. Было. Тому кто делал.

  • Нравится 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

SergeT, если он где-то спавнится - да, там будет балалайка. Чем изучать весь allspawn и все простыни диалогов на предмет этого БТР с балалайкой мне лично оказалось проще сам БТР поправить (в порядке истребления балалайки как предмета).

 

dtyz8, там надо не столько увидеть/услышать, а именно прослушать, идентичные "по источнику" (скажем, у вояк, долга, свободы и сталкеров обоих видов (и по 3 варианта каждого - музыка практически полностью идентична, и кто именно играет - на слух сказать нельзя))- собрать в один каталог, и прописать в конфиге признак, что брать именно оттуда. Ну а дубликаты (скажем, stalker и woman отличаются форматом, а звук абсолютно одинаков), соответственно, убрать.

 

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

Поделиться этим сообщением


Ссылка на сообщение

Я, пожалуй, в этом оффтопике тоже поучаствую. В познавательных, так сказать, целях.

 

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

Если на страницу назад, то там будет про то, что вся загрузка даже для первого запуска игры может быть доведена до 20-30 секунд.

 

Вопрос первый: что именно хотелось бы сделать с ПДА/инвентарем за эти 20 секунд ?

Вопрос второй: да, ПДА и инвентарь на самом деле можно получить где-то с 10-й или 15-й секунды. Ну, за счет некоторого увеличения общего времени загрузки. Это действительно надо ?

 

Ну и вопрос третий, риторический: когда у нас перестанет игнорироваться то, что уже есть, и писаться про проблемы, решенные месяц-год-3 года назад ?

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Несколько слов по поводу пропажи оружия у неписей:

основная причина - отнюдь не аддон Бака, а вовсе даже кривой amk_offline_alife.script

 

Исправленное исправлено все одним большим куском, и просто так ни на старую соль, ни на ООП и прочее не налезет. По принципу "спасение утопающих - дело рук самих утопающих" проще всего либо истребить отовсюду всех вызовов amk_offline_alife.process_trade(), либо (хуже, но проще) оставлением от самой функции огрызка

function process_trade() end

где дальше идет следующая function чего-то_там()

 

С какой именно строки начинается истребляемое, и на какой заканчивается - зависит от версии скрипта.

 

Глюк с "я без оружия" останется (вот он как раз в rx_*.script), но само оружие пропадать будет значительно реже.

 

P.S. Да, если кто-то чувствует желание попробовать себя в адаптации исправлений (по факту - переписанная полностью офлайн-торговля+уборшик+переодевание) под все 100500 версий имеющихся в обращении солянок - плиз в личку.

 

 

upd:

Внезапно, опять про время загрузки, лаги и кэширование ;)

 

Кто владеет, поиграйтесь с кодом в xr_logic:

local string_find, string_sub = string.find, string.sub
local ini_cache = {}
function get_customdata_or_ini_file( obj, fn )	-- можно и серверный и game object
	if fn == "<customdata>" then return obj:spawn_ini() or ini_file( [[scripts\dummy.ltx]] )
	elseif string_sub( fn, 1, 1 ) == "*" then	-- динамический ltx
		local p = string_find( fn, "*", 2 )
		return gulag_tasks.loadLtx( string_sub( fn, 2, p - 1 ), string_sub( fn, p + 1 ) )
	end
	--local pt = profile_timer()
	--pt:start()
	--local i
	--if ini_cache[fn] then i = ini_cache[fn]
	--else i = ini_file( fn ); ini_cache[fn] = i
	--end
	--pt:stop()
	--log( "info", "get_customdata_or_ini_file 3: " .. pt:time() .. " f: " .. fn )
	--return i
	local i = ini_cache[fn]
	if i then return i end
	i = ini_file( fn )
	ini_cache[fn] = i
	return i
end

 

Вот здесь кэширование таки нужно. Только не чтения файла, а "открытия". Которое собственно и есть "чтение". Ага. 10 неписей - пол секунды тормозов.

 

P.S. Модераторы, кто-нибудь может растащить пост в 2 разных по смыслу ?

Изменено пользователем Dennis_Chikin
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Вообще-то я там это и правил. Внезапно. И даже не год, а ровно 2 года назад.

Вот только те правки в старую не пойдут. Слишком много к чему привязано.

 

P.S. Вообще, Сергей, я Вашим постам удивляюсь периодически.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Требуется помощь зала.

У кого если вдруг есть коллекция солянок разных версий, закинуть файлики, загрузиться хоть с НИ, хоть с сэйвов, выйти, и ...

 

Все, разобрался. На самом деле просто надо какую-нибудь солянку чем древнее, тем лучше, и из нее файлик gamedata\config\misc\artefacts.ltx

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

Поделиться этим сообщением


Ссылка на сообщение

Гм. А посмотрите, кому не лень, в своих солянках файлики bind_monster.script

 

На предмет строчек function generic_object_binder:reload

Они там в одном экземпляре, или в двух ?

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Чудесное (из amk_mod.script):

 

if sini:line_exist ("respawn", "creature_binded_logic") == true then
local cfg_name = utils.cfg_get_string(sini, "respawn", "creature_binded_logic", false, false, false, "")
local t = amk.read_monster_params(obj)
t.custom = "[logic]\ncfg = scripts\\amk\\"..cfg_name..".ltx"
amk.write_monster_params(t, obj)
end

 

Ага, вот такой вот файл замечательный пытаемся читать: scripts\amk\.ltx

 

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

Изменено пользователем Dennis_Chikin
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

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

 

Надо распаковать полностью ресурсы оригинала и солянки, чтобы получить ветку 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.

Изменено пользователем Dennis_Chikin
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

И хотелось бы высказаться, так сказать, по порядку ведения:

 

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

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

 

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

Соответственно, топик - фиксы и патчи, любые, временные или финальные.

 

Также вполне обсуждаемо и всячески желаемо что-либо новое, что не порождает явной несовместимости, не ухудшает играбельность, не накладывает на кого-либо каких-то дополнительных требований. Только не в виде "а вот сделайте мне это", а уже в готовом (как это выкладывается в "народном творчестве"), но с учетом обеспечения некоего единства всего, что делается. Либо, например, в форме "вот, у меня есть такой код, которые делает так вот и так, давайте вместе подумаем, как и куда его лучше вставить." Или, даже, в исключительных случаях, "я попытался сделать нечто новое которое должно исправить проблему/внести вот такие вот улучшения, но оно почему-то не работает, помогите".

 

То есть, сделать солянку лучше собственными силами всех, кто в этом заинтересован.

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

 

Хороший пример - см. ссылки в шапке темы.

Или тот же файл с уменьшенными иконками инвентаря, которые много кто делал, но "окончательный релиз" так и не вышел. ;)

 

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

 

Вот как-то так это хочется все видеть.

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Ответы:

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

 

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

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

 

Теперь что касается пресловутых 18 секунд:

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

Я проверял это на кордоне на удалении от бункера (это гарантированно  быстрее как минимим на 5-10 секунд, чем у бункера (замер по таймерам) и на АС, где в это время вообще все неписи были в офлайне).

 

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

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

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

 

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

 

В общем, все это надо проверять на разных машинах, и в разных ситуациях. Тем не менее, разница  после ликвидации заведомо медленного кода и всех остальных мер действительно есть, и значительная. Сократить фазу "синхронизаци" до нескольких секунд с  минуты и более, как 14.08 - реально. Также реально сокращение времени и остальных фаз, но они сами по себе сейчас занимают гораздо меньше времени, чем синхронизация.  От выяснения подробностей: что, при каких конкретно условиях, сколько именно - меня - увольте. Мне есть чем заняться. Конкретно - довести это все хотя бы до очередной работающей тестовой сборки. А там уже у кого сколько получится - столько и получится.

 

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

Про те же таймеры в этой теме много чего написано.

 

Это была техническая часть.

Что до личного - очень плохо, когда "проверка" делается без малейшей попытки разобраться в том, что именно проверяется, комментированием первой попавшейся строки. Или "я этого не видел, по этому не может быть", когда русским языком написано, что ЭТО может выглядеть как угодно. Или апелляцией к неким авторитетам, которые просто не могут ошибаться. Хотя размер многочисленных "техподдержек" прямо свидетельствует об обратном.

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

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

Изменено пользователем Dennis_Chikin
  • Нравится 1
  • Не нравится 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

А вот кто файлик потестит ? https://dl.dropboxusercontent.com/u/27871782/se_stalker_test.7z

Если в модах и паках его не меняли (и если я с обратной адаптацией не намудрил), должен работать во всех солянках.
Особенно интересует на АС и Радаре побегать, в частности, как себя будет вести кэп у барьера, и что там с вылетами при повторной загрузке.

Сохранность и совместимость сэйвов туда/сюда/обратно не обещаю, но вопрос тоже интересен.

Изменено пользователем Dennis_Chikin
  • Не нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Поправил, перезалил. Или можно руками в se_stalker.script поиск/замена 2-х строчек (57 и 67) с "if force_offline[self.id] =="

на "if amk.convert_npc[self.id] =="

 

Водрузил себе ко всему прочему еще и "чистую", проверил.

Однако, отвык я на загрузку минутами медитировать, да.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

А теперь еще просьба, независимо от предыдущих:

У кого стоит мой фикс по смарттеррэйнам, в котором в лог пишутся смарттеррэйны убиваемых, и есть под рукой сэйв на АС - убейте кого-нибудь из свободовцев на барьере (кроме Кэпа), и дайте строчки с покойником.

Ну или если у кого при разборке с монолитовцами/зверьем трупы свободовцев образовались - тоже  годится.

 

Версия соли значения не имеет - лишь бы лог писался.

 

В качестве заметок на полях шляпы:

Мелочь, конечно, но, по моему, task_manager c конструкцией

 

local parse_condlist = xr_logic.parse_condlist

и в цикле if ini:line_exist( id, "condlist" ) then t.condlist = parse_condlist( nil, nil, nil, ini:r_string( id, "condlist" ) ) end

в function CRandomTask:__init()

 

и, соответственно, в function CRandomTask:check_task_props( task_id ):

if self.active_task_by_type[ t.complex_type ]    -- Проверка по активным заданиям данного типа у вендора
or ( t.condlist and not pick_section( db.actor, db.actor, t.condlist ) ) then    -- Проверка по кондлисту
t.enabled_props = false; return
end

- вполне работоспособен. (Ну, у кого там что вместо t и id)

 

Кстати, в parse_condlist() первые 3 параметра не нужны ни зачем, и в части случаев туда и передается nil, или еще какая ахинея. Которая в совершенно невозможном случае вызова abort() таки даст скорее вис без лога, чем что-то осмысленное.

Правильнее, наверное, сделать рядом функцию типа parse_condlist1() с одним параметром, и везде использовать ее.

А старую - переделать под отладочные цели, и, кстати, туда же контроль секций логики на дубликаты сразу воткнуть

 

 

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

 

af_rusty_thorn1305, af_rusty_kristall1307,  av_pesh_tornado2, amk_zone_mincer_average_122, amk_zone_buzz_average_127, amk_zone_fountain_average_128, af_ameba_slug11714, af_blood12302, amk_zone_mincer_average_270, af_rusty_thorn16358, af_rusty_thorn16360, amk_zone_mosquito_bald_strong_313, amk_zone_witches_galantine_347, skelet45_0000, af_rusty_thorn24669, af_rusty_thorn24671, af_rusty_thorn25139, af_ameba_mica26687, af_ameba_slime26689, af_rusty_thorn26694, red_psy_dog_phantom

 

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Аномалии с двойными именами, скелет и собака с кривыми координатами - находятся поиском по allspawn.

 

Мда, арты я где-то зевнул: похоже, скриптом создаются. Так что их имена могут быть другие, и выносить надо из скрипта.

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

 

Так, посмотреть арты пока не могу, поскольку застопорился на совершенно дивно-чудной логике Крота:

[smart_terrains]
none={-agr_find_gunslinger_cache_found}
sak_lager={+agr_find_gunslinger_cache_found}
Изменено пользователем Dennis_Chikin

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

По артам проверил список с НИ: имена те же самые. Да, можно заносить на удаление, вместе с аномалиями и прочими скелетами.

 

 

Еще на тестирование: https://dl.dropboxusercontent.com/u/27871782/se_stalker_test2.7z

Вот понятия не имею, кто такой Борман (Бармена - знаю), и что он делает в Лиманске (кстати, что ?), но интересно, что изменится в этом самом Лиманске после наката файлов.

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

Поделиться этим сообщением


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

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

AMK-Team.ru

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