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

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

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

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

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

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

Shadowman, меня интересует как двиг игры "знает" что координаты которые указаны в конфигах, надо брать в файле ui_icon_equipment.dds.

Старые видеокарты не в состоянии загрузить текстуру размером 4096х4096 пикселей целиком
они не могут загрузить такое количество пикселей, или такой размер файла ( 16Мб)?

"Пикселей" sapsan

Сообщение от модератора n6260
Есть интересная папочка (gamedata\config\ui) с конфигурационными файлами, изучайте ;)

 

Добавлено через 228 мин.:

Разобрался. Максимальный размер поддерживаемых текстур зависит от текстурного блока видеокарты, и если этот размер 2048х2048, то соответственно текстура 4096х4096 туда не влезает.

Дальше мне нужна помощь. Возможно ли использовать два файла с иконками, например ui_icon_equipment_1.dds и ui_icon_equipment_2.dds?

 

зы: хочу сделать фикс иконок.

зыы: у меня видео 9800GT, поэтому мне этот фикс не нужен, но хочется помочь людям.

Изменено пользователем n6260
Не прошло и 2,5 года.
Ссылка на комментарий
Возможно ли использовать два файла с иконками, например ui_icon_equipment_1.dds и ui_icon_equipment_2.dds?

boboz, нет. Только замена основного.

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

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

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

Зарегистрировал и немного уже настроил хранилище на subversion для Солянки. Создал в расчете на совместную работу над самой Солянкой и для мододелов под Солянку.

Оно открыто всем на чтение.

Линк хранилища: svn://svn.opensvn.ru/narodnaya_solyanka

Линк трака: http://trac.opensvn.ru/narodnaya_solyanka

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

- раскомментировать строку enable-auto-props = yes;

- добавить в секции [auto-props] следующие строки:

*.script = svn:eol-style=native;svn:mime-type="text/x-lua;charset=windows-1251"
*.ltx = svn:eol-style=native;svn:mime-type="text/xml;charset=windows-1251"
*.xml = svn:eol-style=native;svn:mime-type="text/xml;charset=windows-1251"

Это для корректного отображения виндовой кирилицы в траке.

 

Настройку, логическое распределение и заливку уже существующих правок ещё не закончил.

В нём не представлены самые тяжелые папки так как нет уверенности, что Солянку оттуда не выкинут, если всю её туда залить :)

Если есть предложиния и замечания - в личку.

 

P.S. Системы контроля версий - очень удобный инструмент для любого разработчика. Инофрмации по ним полно.

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

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

 

Добавил.

 

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

 

Могу дать доступ на запись в хранилище для создания своей ветки. sapsan

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

malandrinus, есть вопрос: параметр restrictor_type в аллспавн. Видел варианты 0,2,3.

Нашел только для restrictor_type = 2 - "эти рестрикты запрещают сталкерам ходить по кострам."

3 - вроде как какой-то экшен можно задать при попадании ГГ в него. С какой частотой запускается и как, например, её изменить - непонятно. Или только радиусом можно управлять? 0 - что значит и как работает не нашел ничего (кроме примеров в аллспавн :)).

Смотрел на Вики, форумам по Сталкеру - разрозненно, все больше "как сделать то-то".

Ты не мог бы прокомментировать, если нетрудно?

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

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

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

Рестрикторы с логикой обрабатываются в actor_binder:update

    -- обновление рестрикторов, которые под логикой, срабатывает через интервалы времени
    if self.next_restrictors_update_time < time then
        bind_restrictor.actor_update(delta)

        self.next_restrictors_update_time = time + 200 -- Частота 5 раз в секунду. Меняется здесь :)

        task_manager.actor_update()
    end

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

Kolmogor, спасибо, понятно. Не знал. :good2:

5 раз в секунду, значит...

Kolmogor, нашел скрипт ressurect.script - твой ("артефакт для воскрешения НПСов")?

Попробовал через апдейт оживление - не пашет. Трупик на секунду пропадает, потом снова появляется. И вижу по отладке, что в условии:

    local obj = level.object_by_id(id)
    if obj == nil then
        --dbg.log("RES: real move offline")
    else
        --dbg.log("RES: wait offline")
        return
    end

всегда срабатывает "wait offline". Вообще убрал эту проверку - заработало :)

Запускал, правда, используя oAmkLauncher:AddFunc. И без предмета - просто нахожу под ногами труп, беру его id, и его амк-скриптами того...

Что интересно, что вообще без пропускания через апдейт срабатывает. Иногда, правда, не с первого раза. Респект!

 

BUKER,

Увеличение точек неписей на миникарте:

 

Вот тут ссылка есть: http://www.amk-team.ru/forum/index.php?sho...st&p=432068

 

V92, способ не мой. Я проверил у себя - дал как вариант :)

Если оставить текстуру и изменить только размер - будет не то?

---------

я проверил, прежде чем давать - ничего не сбито, все отображается :beee:

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

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

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

Shadowman, еслиобъединить с тем что ты привел будет НЕнормально, ибо твой способ заменяет текстуру и размер метки на оригинальную из ТЧ. Я уже выложил специально для тех кто стандартные точки не видит небольшое приложение (сам посмотри). Вот его можно спокойно с правкой ставить.

 

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

 

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

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

 

Мой музыкальный аддон для ОП-2 + Музыкальные флешки для плеера - для тех, кому не нравится оригинальная музыка. Более 150 новых треков различных направлений и исполнителей, каждый найдёт музыку на свой вкус. Апдейт 1.1 от 30.03.2015 - в плеер добавлены записи реальных радиостанций + наиболее подходящие миксы. Торрент.
Пак измененных локаций из ОГСЕ 0.6.9.3 для ОП-2. Скачать можно здесь.

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

Мысли о кражах из тайников с замками.

Просматривал я скрипты и нашел вот что - неписи в оффлайне пробуют достать из тайников, которые были добавлены в список тайников на уровне (off_npcs[map].inv_boxes) при заполнении списка тайников. А заполнение списка происходит либо при загрузке вызовом amk_offline_alife.update_npc_tables() либо через 3 часа! игрового времени в amk_offline_alife.update() "мягким" способом (каждый объект из 65535 штук обрабатывается по очереди при каждом апдейте актора, а не за раз все 65535).

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

Предлагаю варианты исправление "памяти" неписей:

- при установке/снятии замка принудительно вызывать update_tables(lname) для текущего уровня;

- период мягкого обновления таблиц уменьшить до 15 минут игрового времени.

 

P.S. "Мягкий" способ работы со всеми 65535 объектами можно применить в других местах. В данный момент это актуально для взрывчатки.

 

Shadowman, по уборщику - можно попробовать как ты говоришь. Вполне может пройти :)

В геймдату был включен и Thumbs.db, и старый jpg, и папка с асфальтом...

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

sapsan, это фактически никогда :crazy:

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

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

И еще: в геймдату одним файлом почему-то включён уборщик из адаптации под 1.0006 :blink:

 

по уборщику - можно попробовать как ты говоришь

sapsan, попробовал и через апдейт и за а-лайфом. В первом случае не убирает нифига, во втором - вылетает в хр_мотиваторе на той строке, что как раз есть адаптация к 1.0006 (self.npc_script_version = alife():object(self.object:id()).script_version) :(

 

------------

Короче, по уборщику на патче 1.0006: пока выхода не вижу. Убирать будет все локи, кроме текущей - и точка.

Если категорически не подходит - играем на 1.0004 + уборщик от Соли 17.04. Все, что мог придумать - проверил, не работает иначе.

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

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

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

Говорил с Архарой, он сказал что респавн атров после выброса не трогал, и что проблема с их непоявлением появилась после правок по скриптам от Сапсана. Никоим образом ни на что не намекаю, но судя по всему именно в этих правках проблема. Нужно выброс посмотреть. Вергас вроде взялся, но ни слуху ни духу от него.

 

Спавн артефактов я не трогал. Правил только спавн аномалий. Сам я подозреваю правки, которые были внесены по фриплею в коде выбросов. sapsan

 

Возможно там и собака зарыта. Что ж, всем форумом будем ждать фикса.

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

 

Мой музыкальный аддон для ОП-2 + Музыкальные флешки для плеера - для тех, кому не нравится оригинальная музыка. Более 150 новых треков различных направлений и исполнителей, каждый найдёт музыку на свой вкус. Апдейт 1.1 от 30.03.2015 - в плеер добавлены записи реальных радиостанций + наиболее подходящие миксы. Торрент.
Пак измененных локаций из ОГСЕ 0.6.9.3 для ОП-2. Скачать можно здесь.

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

Господа скриптеры, несколько наблюдений по артам, может поможет.

Соль последняя на шестом патче, ставил сразу со всеми правками, через пару часов игры - патч по ФПС. Сначала(первые два-три выброса) спавн был нормальный, потом - как обрезало.

Интереса ради увеличил спавн в 100 раз, проспал несколько выбросов, и прочесал все доступные локи(Кордон, Свалку, Агро, ЗЛ, Бар) частой гребенкой с детектором. Результат - куча черных энергий. Ни одной самой завалящей медузы. Насколько я понимаю, они спавнятся разными функциями.

Пробовал курить скрипты, но моих знаний не хватает...

 

Кстати, изменение количества аномалий там же в AMK_ANOMS.SCRIPT работает исправно.

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

Стрельбу по движущимся мишеням начинать только с разрешения администрации,
В случае попадания боеприпасов в тело - обращаться к Богу!

 

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

Shadowman,

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

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

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

Прислали сохранение перед сейфом на Радаре. Если туда положить замок с последними правками, то получаю вылет:

FATAL ERROR

[error]Expression    : I != levels().end()
[error]Function      : GameGraph::CHeader::level
[error]File          : e:\stalker\sources\trunk\xr_3da\xrgame\game_graph_inline.h
[error]Line          : 171
[error]Description   : there is no specified level in the game graph : 224


stack trace:

Из этого следует, что вылетает эта строка:

alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id()

из функции:

function update_tables(level)
     off_npcs[level]={monsters={},stalkers={},weapons={},artefacts={}, inv_boxes={}}
     local obj
     for a=1,65534 do
          obj = alife():object(a)
          if (obj and alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id())==level) then
               add_fresh_meat(obj)
          elseif (obj and obj.parent_id ~= nil) then
               local p_obj = alife():object(obj.parent_id)
               if (p_obj) then
                    local p_map = alife():level_name(game_graph():vertex(p_obj.m_game_vertex_id):level_id())
                    if (p_map == level) then
                         add_fresh_meat(obj)
                    end
               end
          end
     end     
end

 

Если же перед ней проверять на game_graph():valid_vertex_id(obj.m_game_vertex_id), то вылета нет. А такой "работы" с game_graph без предварительной проверки валом. В том числе и в аддоне Бака по подстволам ;)

 

Ещё мысль:

Если в add_fresh_meat(obj) и в место, где наполняется таблица items вставить проверку на протектед_итем, то большая часть проблем с собранными неписями квестовыми предметами уйдет. Потом ещё найти, где они в онлайне поднимают предметы.

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

game_graph():valid_vertex_id(obj.m_game_vertex_id)

sapsan, если перед размещением объекта проверять такое - то наверное таки да, будет толк.

А вот у уже существующего - к сожалению не проходит - вылетает с ругательством на тот же вертекс (это я про попытку отловить предмет с кривым вертексом, который уже есть на локе). Понятие вертекс для объекта, как я понял, существует только когда сам ГГ на этой локе.

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

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

sapsan,

Этих сейфов по локам - не один и не два :) Один - в тайнике дока на Припяти, где снайперка, там вообще нет вертексов :) Разница лишь в том, что моделька другая. Могу путать, но тот сейф спавнили в НЛС5. Можно убрать - всё равно путь загораживает на Варлаб.

 

sapsan

Поставить можно. Но этот ящик надо удалить - давно хотел

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

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

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

sapsan,

amk.spawn_item("m_inventory_seif",vector():set(306.47,-39.39,-26.22),1930,69058)

вот этот сейф в sak.script.

надо глянуть, что в нём спавнится да закоментить. А, пустой...

d485c648c16db9937ef92aede79b829e5f1ed855751301.jpg

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

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

Ссылка на комментарий
Arhara За всё время игры в этом сейфе ничего не спавнится, ну или наводку на него не давал никто.

Относись к людям так, как хочешь чтобы они относились к тебе.

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

Мысли по ходу:

использование math.random() нужно заменить на random_number() так как в последнем перед вызовом math.random() вызывается math.randomseed(device ():time_global()), что даст действительно случайный результат, а то, например, у игроков и у меня часто ЧУ не начинается подряд много раз...

[spoiler=random_number() из _g.script]

function random_number (min_value, max_value)
    math.randomseed (device ():time_global ())
    if min_value == nil and max_value == nil then
      return math.random ()
    else
      return math.random (min_value, max_value)
    end
end

 

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

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

AMK-Team.ru

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