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

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

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

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

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

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

Начало разговора - здесь

 

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

 

В смысле, что именно "выдавать", задания ? Если ты имеешь в виду, что спавнить нового непися с новым набором диалогов, по результатам предварительной проверки, был ли выдан поршень на смерть, то это адская работа. Это фактически будут уже "дублёры".

В оживлении Сяка не учтён только момент этих поршней на смерть.

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

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

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

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

Shadowman,

То, что не учтено Сяком - и есть самый большой недостаток. Но у него был другой мотив оживления - просто оживить, сделать хорошее и доброе дело, вернуть друзей... У нас мотив тот же, но шире - сделать не только доброе дело, но ещё и сдать-взять задания. Сколько оживляемых? 24 или25, точно не помню. Из них - примерно половина, чьи квесты важны и интересны, остальные - пусть оживают куклами. У оставшихся 12 - не более чем по 10 квестов. Ну, у кого меньше, у кого больше. Первые квесты - можно опустить. А это значит, что надо около сотни профилей. И всё. Да, это займёт пару дней, но что мы поимеем:

Возврат любых заданий. Любое место спавна непися - вот тебе и квесты - типа ожил - поди, поищи. Любая логика, любой путь, любые действия - а значит, и разнообразие. Ожил Лис в Мёртвом Городе - вперёд его оттуда вытаскивать.... :)

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

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

<infoportion_fail>esc_stalker_fanat_umer</infoportion_fail>условие провала задания,не является обязательным,почистить таски от этих строчек,дело получаса,так же как и логику от инфо на смерть НПС,пробема может возникнуть если диалоги на сид завязаны как то ,оживленный НПС-дублер ведь не может быть с тем же сидом(просто по ожибке делал два одинаковых ИД игра вылетала)

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

Кстати тот же Волк удаляется на Кордоне и спавнится на складах и диалоги остаются,оживление ведь по этому принципу сделано,так что должны диалоги после него остатся

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

gruber, да, именно это я и имею в виду.

malandrinus, я это делал "ручками" (ну, почти :) )

Есть табличка с именами профилей. Из аллспавн вытаскиваем номера их секций и стори-ид. Дальше - как у Сяка.

Табличка имеет вид:

-- формат: имя секции = {номер секции, сид}
atp_kalinin = {255, 9971},
generators_prizrak = {1380, 9984},
esc_wolf = {2148, 6}

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

 

...делал два одинаковых ИД игра вылетала...

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

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

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

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

Ранее я здесь написал, что в биндере save вызывается всегда, а load только после первого save. Перепроверил сейчас. Всё выглядит сложнее. load не вызывается при первом переходе в онлайн после создания объекта. Далее при переходе в онлайн вызывается всегда. Логика работы save пока для меня выглядит необъяснимой: вызывается всегда в момент сохранения, а при выходе в оффлайн не вызывается. Кроме того, я уже не уверен, что так работает всегда. Возможно есть параметры и функции, которые на этот механизм влияют. Проверял для аптечки. И, честно говоря, тогда не понимаю уже логики этого механизма. Может кто может объяснить? Как тогда сохраняются мои данные при выходе в оффлайн, если я не сохранялся специально?

 

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

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

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

 

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

Shadowman,

Это в НЛС идёт оживление по номеру в алл спавне и СИДу. Мой пробный вариант - оживление Мухи в Госпитале - по имени. И ничего, оживает. Там сделано на основе варки артов - и ни к сидам, ни к номерам в алл спавне не привязано. Ладно, доделаю допу - может займусь. Хотя - МГ надо заселять... Кстати - с новым артмодификатором не будет ли запарки на последний рецепт - с использованием Камня Удачи? Если он будет вариться через трансмутатор - оживлению Мухи - кранты. Его надо бы как-то в исключения. Да и варку из Сердца полтергейста самого Камня Удачи - тоже.

 

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

Monnoroch,

Одев масхалат :)

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

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

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

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

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

 

Если он будет вариться через трансмутатор - оживлению Мухи - кранты

Arhara, почему? Поясни, пожалуйста.

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

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

исправить несложно.

В скрипте amkII_transmutator.script в ф-ции CAmkTransmutacion:CreateAtrefact вместо строки

local info            = iInfo

пишем

local info                = aRecipts[iInfo]["info"]

Проверил, работает. Выдача рецепта "на халяву" теперь не сработает, но варить без рецепта трансмутатор не перестанет.

Внутри рецепта должен быть прописан поршень в виде

        info = "spawn_kamen_udachy"

 

Monnoroch, а разве биндер только у актора?

---------

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

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

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

Ссылка на комментарий
Но никакого перевода в оффлайн нету.Ну я не видел.

Да ведь шутка это была насчёт маскхалата, смайл там стоит =)

Если серьёзно, актор переходит в оффлайн при выходе из игры или при смене уровня. Делает это последним из всех объектов (как и в онлайн первый). Вероятно потому, что у него нулевой id.

 

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

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

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

 

Ссылка на комментарий
шутка это была насчёт маскхалата, смайл там стоит =)

malandrinus, молодца! Я подколол - Мон повёлся :crazy:

 

Monnoroch, надеюсь, не обидел? Извини, если что :blush:

 

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

Нетпакетный ПДА на этом построен. Если бы что-то не так было - фиг бы мы смогли метки тайников увидеть, например

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

 

хз, как оно работает... но работает ведь!

 

Это поршен, который должен выдаваться при " ручной" варке (хотя он, очевидно, выдастся и в трансмутаторе) он и нужен для оживления или иного действия

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

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

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

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

Shadowman,

Нет, наверно. Тот инфопоршен, что выставлен в таблице ниже рецепта - есть в единичных рецептах. Это поршен, который должен выдаваться при " ручной" варке (хотя он, очевидно, выдастся и в трансмутаторе) он и нужен для оживления или иного действия. Выдача его - обязательна и он не играет роли в самой варке. И выдаваться ( в случае с Мухой) - он должен однократно - неизвестно, чем закончится многократная выдача поршня на оживление одного непися с индивидуальным СИДом.

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

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

Arhara, там инфопорция выдаётся только если её ещё нет у ГГ:

    -- даём инфопорцию, если есть
    if params.info and db.actor:dont_has_info(params.info) then
        db.actor:give_info_portion(params.info)
    end

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

sapsan,

А как иначе? :) Есть поршен на рецепт. Варим. При активации варки выдаётся ещё один поршен. Естественно, раньше он не выдавался, раз идёт "просьба" его выдать. И выдать его надо в обязалово.

 

Arhara, причём тут варка артов?

Это я о трансмутаторе ещё... О том, что в части варок помимо самих варок должен ещё и выдаваться инфопоршен.

 

Да, заняться есть чем. Но - кто-то делает геймплей, и говорит, что всё классно - вот он... Но - даже самый увлекательный геймплей без фич - это не геймплей. И наоборот, одни фичи - это не геймплей. Будем держаться середины, делая и то и то, не забывая, что фичи должны быть обоснованы. В соли - это не всегда так... А тут - обоснование есть. А реплики тех, что у вас не геймплей - вежливо пропустим мимо ушей. :ny_ph34r_1: Пока меня более всего интересует проблемы с игровой памятью... Или - это мои ошибки? Хотя - я сносил полностью генераторы - ничего не поменялось. Впрочем. меня эти вылеты не достают - потому как крайне редки.

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

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

Ссылка на комментарий
Надо не только выбранный. Нодо ещё отсеить использованные поршни, чтобы не было повторялки заданий и выдать не только те, что выданы, а ещё и восстановить те, что будут выданы в последующих квестах. Этому, кроме того, мешают поршни на провалы заданий при смерти непися.

Допустим сдох непись и в момент смерти имел некий набор инфорпоршенов. Я создаю такого же с тем же набором. Что ещё может влиять на ситуацию? Можно предположить, что инфопоршены актора, инвентарь непися. Что-то мне подсказывает, что вряд-ли в диалогах с неписем как-то учитываются инфопоршены о смерти этого самого непися. Инвентарь при смерти удаляется, но квестовые предметы вроде как остаются. Что ещё?

Т.е. скорее всего, если я восстановлю непися с его инвентарём и предсмертным набором инфопоршенов, то скорее всего при разговоре с воскресшим я получу те же диалоги, что и у старого.

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

Честно говоря, я бы вместо этого делал передачу квеста при смерти квестоносителя. Вроде как это даже было сделано, или обсуждалось как минимум. А неписи пусть воскресают "с амнезией" =)

 

Знает ли кто как проиграть звук на перемещающемся объекте

Думаю, это можно сделать так же, как играется речь. Сначала звук надо к неписю добавить

npc:add_sound()

затем играть

npc:play_sound()

 

с использованием этих функций признаться не до конца разобрался. Вот вроде как рабочий пример:

cobj:add_sound("script_replics\\radio\\commander\\radio_finish_", 
    30, snd_type.talk, 2, 2, xr_sounds_id.zmey_bodyguard_base + 2)
cobj:play_sound(
    xr_sounds_id.zmey_bodyguard_base + 2, 
    1, 0, 1, 0, 
    4)

 

 

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

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

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

 

Ссылка на комментарий
сдох непись и в момент смерти имел некий набор инфорпоршенов

malandrinus, инфопоршены вроде только для ГГ, т.е. имею в виду, что неписям никаких поршенов не выдаётся :blink:

Может, ГГ имел некий набор поршенов, относящихся к этому неписю?

Насчёт диалогов у оживлённого - совершенно согласен.

для квестовых неписей досконально сохранять информацию об их квестах

Проблема ещё в том, что квест, проваленный в момент смерти квестодателя, уже не вернёшь. Не уверен, - может быть можно отбирать у ГГ соответствующие поршни о сметрти и провале заданий - но записи в журнале о провале квестов - уже не удалить.

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

 

далеко не во всех диалогах есть проверки на нужные условия

Arhara, логичнее выло бы отрихтовать в диалогах по выдаче / принятии квестов, чтобы не было нескладушек, чем шаманить при оживлении. Просто неважно, оживлён непись, или заспавнен нормальным путём - если в диалогах нет нужных проверок, работать будет одинаково неправильно что у оживлённого, что у оригинального :)

 

Виталий Зверь, а никто и не говорит, что не должно работать. Наоборот, проверки на смерть в основном у сюжетных квестовиков от ПЫС.

 

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

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

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

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

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

V92, Shadowman, посмотрел как было раньше. Раньше удалялась аномалия в лоб без правильного отключения её в amk_anoms.script. Сейчас она правильно отключается и тут же в лоб удаляется. После чего моментально перестаёт отображатся на детекторе. Похоже, что отображение аномалии, как и писк детектора, это что-то движковое + колбек самих аномалий.

 

Shadowman, аномалии удаляются этим кодом:

    -- удаляем аномалию, если нужно и она не в исключениях
    -- код взят из amk_anoms.turn_off_all()
    if params.remove_anomaly then
        local sobj = alife():object(params.remove_anomaly_id)
        if sobj then
            local map = alife():level_name(game_graph():vertex(sobj.m_game_vertex_id):level_id())
            if not amk_anoms.check_exclusion(sobj, map) then 
                local status = amk_anoms.get_anomaly_status(sobj)
                if status == "on" then
                    amk_anoms.set_anomaly_status(sobj, "del")
                end
                alife():release(sobj, true)
            end
        end
    end

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

qwertyuiop, да, есть такая проблема и такого кода в скриптах валом:

game_minutes = level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes()

Из-за этой "особенности" может зависать в игре что угодно (квесты, погода...).

Стоит в том же amk.script сделать глобальную переменную time_minutes и обновлять её один раз за апдейт, а во всех остальных скриптах только обращатся к ней через amk.time_minutes.

 

А что amk.StartTime равен nil - так это потому, что в amk.script он объявлен как локальная переменная.

Monnoroch, есть там все end-ы.

 

:offtopic:

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

Shadowman, видать тыкают пальцем, мол глючит, много всего без толку (сам не раз читал такое). А жизнь - она ведь не линейная и очень разнообразная. И сюжетов в ней параллельных валом. Мне игры с единственной сюжетной линией уже не интересны...

 

Ray, ну вот все выражения

= level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes()

и нужно переделать в

= amk.time_minutes

и прописать код обновления значения time_minutes в апдейтере amk.script и месте первого старта игры.

Код обновления где-то в amk.script:

time_minutes = math.floor(game.get_game_time():diffSec(StartTime) / 60)

P.S. Доделаю работу - сделаю на скрипты Солянки от 26.01 и на тестовые скрипты от допы.

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

Написал тут по просьбе Valerich-а функцию по нанесению поражения ГГ и защите перчатками при взятии артефакта (впрочем как и любого другого предмета :rolleyes: ):

function hit_by_art(obj)
    -- для каждого вида артефактов сила, импульс и тип поражения
    -- возможные типы поражения: hit.burn, hit.chemical_burn, hit.dummy, hit.explosion, 
    -- hit.fire_wound, hit.radiation, hit.shock, hit.strike, hit.telepatic, hit.wound
    local art_hit = {
        ["af_gravi"]        = {["power"] = 0.1, ["impulse"] = 0.1, ["type"] = hit.strike},
        ["af_gold_fish"]    = {["power"] = 0.15, ["impulse"] = 0.15, ["type"] = hit.explosion}
    }
    
    -- для каждого вида перчаток коэфициент пропуска силы поражения, которая останется от изначальной
    local perchatki_propusk = {
        ["normal"]            = 0.7,
        ["good"]            = 0.5,
        ["absolute"]        = 0.0
    }
    
    if obj then
        local sect = obj:section()
        if sect and art_hit[sect] then
            local propusk = 1
            local perchatki = db.actor():item_in_slot(0)
            if perchatki and perchatki_propusk[perchatki:section()] then
                propusk = perchatki_propusk[perchatki:section()]
            end
            
            local h = hit()
            h.draftsman = db.actor
            h.direction = vector():set(0,0,0)
            h.impulse = art_hit[sect]["impulse"]
            h.type = art_hit[sect]["type"]
            h.power = art_hit[sect]["power"] * propusk
            db.actor:hit(h)
        end
    end
end

 

Arhara, если нужно - просто вставь её вызов в actor_binder:on_item_take()

 

P.S. В живую не проверял :russian_ru: , но отзыв не за горами :D

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

Всем - здрасте! Установлена адаптация Солянки под 1.0006 патч, прошел Кордон, Агропром, Бар, Т.Д., х-18 - все без единого вылета, играл с кряком. Установки самые высокие, ФПС колебалось от 25 до 65, картинка и всамом деле симпатичней выглядит чем с 1.0004-м патчем, а может и кажется :)

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

Снижал настройки, ставил статику, переходил на оригинальный XR_3DA_.exe - безполезно :(

Вот, если что, окончания логов с кряком и без:

***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).

Reduce pixel density (worse) or use more vertex lighting (better).

* phase time: 1222 ms

* phase cmem: 328112 K

Клиент: Синхронизация...

* phase time: 13 ms

* phase cmem: 328112 K

* [win32]: free[1166600 K], reserved[138984 K], committed[791504 K]

* [ D3D ]: textures[202824 K]

* [x-ray]: crt heap[328110 K], process heap[306598 K], game lua[43901 K], engine lua[144 K], render[0 K]

* [x-ray]: economy: strings[11227 K], smem[0 K]

sv destroy object [4348][amk_zone_witches_galantine_average:amk_zone_witches_galantine_average4348

] [8302]

sv destroy object [18707][amk_zone_sakbuzz_weak:amk_zone_sakbuzz_weak18707] [8302]

sv destroy object [18708][amk_zone_zavesa_average:amk_zone_zavesa_average18708] [8302]

sv destroy object [18752][amk_zone_sphere_average:amk_zone_sphere_average18752] [8302]

sv destroy object [18753][amk_zone_buzz_strong:amk_zone_buzz_strong18753] [8302]

sv destroy object [18756][amk_zone_buzz_average:amk_zone_buzz_average18756] [8302]

sv destroy object [18757][amk_zone_sphere_weak:amk_zone_sphere_weak18757] [8302]

sv destroy object [18758][amk_zone_sphere_weak:amk_zone_sphere_weak18758] [8302]

sv destroy object [18759][amk_zone_zharka_static_average:amk_zone_zharka_static_average18759] [8302]

sv destroy object [18760][amk_zone_smallrain_average:amk_zone_smallrain_average18760] [8302]

sv destroy object [18761][amk_zone_zharka_static_weak:amk_zone_zharka_static_weak18761] [8302]

sv destroy object [18764][amk_zone_gravi_zone_weak:amk_zone_gravi_zone_weak18764] [8302]

sv destroy object [18765][amk_zone_witches_galantine_average:amk_zone_witches_galantine_average187

65] [8302]

sv destroy object [18766][amk_zone_gravi_zone_strong:amk_zone_gravi_zone_strong18766] [8302]

sv destroy object [18767][amk_zone_buzz_average:amk_zone_buzz_average18767] [8302]

sv destroy object [18768][amk_zone_buzz_strong:amk_zone_buzz_strong18768] [8302]

sv destroy object [18769][amk_zone_witches_galantine_average:amk_zone_witches_galantine_average187

69] [8302]

sv destroy object [18770][zone_ice:zone_ice18770] [8302]

sv destroy object [18771][amk_zone_sakbuzz_strong:amk_zone_sakbuzz_strong18771] [8302]

 

и ниже еще 200 строчек в таком-же духе...

* MEMORY USAGE: 391228 K

sv destroy object [1861][ammo_12x70_buck:ammo_12x70_buck] [11925]

sv reject. id_parent [0][actor:single_player] id_entity [1861][ammo_12x70_buck:ammo_12x70_buck] [11925]

sv destroy object [50949][ammo_12x70_buck:ammo_12x70_buck50949] [11925]

sv reject. id_parent [0][actor:single_player] id_entity [50949][ammo_12x70_buck:ammo_12x70_buck50949] [11925]

cl setDestroy [1861][11925]

cl setDestroy [50949][11925]

sv destroy object [54835][separator:separator54835] [11927]

sv reject. id_parent [0][actor:single_player] id_entity [54835][separator:separator54835] [11927]

cl setDestroy [54835][11927]

sv reject. id_parent [24982][stalker:nebo_exit1] id_entity [24990][wpn_mp5:wpn_mp524990] [11953]

sv ownership id_parent [47392][inventory_box:inventory_box47392] id_entity [24990][wpn_mp5:wpn_mp524990] [11953]

sv reject. id_parent [28774][prov_ruk:prov_ruk28774] id_entity [28775][grenade_rgd5_new:grenade_rgd5_new28775] [12561]

sv ownership id_parent [0][actor:single_player] id_entity [28775][grenade_rgd5_new:grenade_rgd5_new28775] [12561]

sv destroy object [28774][prov_ruk:prov_ruk28774] [12563]

sv destroy object [55855][separator:separator55855] [12563]

sv reject. id_parent [0][actor:single_player] id_entity [55855][separator:separator55855] [12563]

cl setDestroy [28774][12563]

cl setDestroy [55855][12563]

stack trace:

 

001B:0418C591 xrGame.dll

 

 

С чем это может быть связано?

 

Попробуй с правленным xrGame.dll, а потом сразу с родным xrGame.dll sapsan

 

sapsan, спасибо! С оригинальным xrGame.dll игра пошла :)

 

Это хорошо и плохо одновременно. Хорошо, что нашли и устранили причину :), плохо, что это стоило fn2000 Палача :(

Причём только оригинал нормально ругается. Таблетка же - молчит, а то, что выводит - всего лишь отладочная информация.

Получается, что любые неквалифицированные модификации вылезают боком :(sapsan

 

Да и наплевать на Палач :) Я с ним и не играл никогда, только для проверки его использовал в начале (о чем в предыдущем посте писал)... Лишь-бы дальше все нормально было...

А о каких неквалифицированных модификациях речь?

 

Это я о таблетках кривоватых sapsan

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

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

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

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

Сообщение от модератора n6260
1. Отрисовка и связь координат - по координатам (координаты начинаются с нуля от верхнего левого угла файла, и считаются по ячейкам сетки, размер ячейки 50х50 пикселей) и альфа-каналу.

2. Видеокарта не поддерживает размер холста иконок (Тирекс с год назад подробно все расписывал в какой-то теме).

З.Ы. Видеокарты не "слабые", а, если быть точнее, "морально устаревшие". Это в основном простенькие и относительно старые по дате рождения ДжиФорсы.

Строгое предупреждение от модератора n6260
А вопрос к теме "разработки" имеет весьма слабое отношение. Примите к сведению.
Не прошло и 2,5 года.
Ссылка на комментарий

boboz, скачайте STALKER Icon Editor (SIE) - здесь на АМК (в редакторе уже все сделано для удобного редактирования файлов с текстурами иконок). В конфигах предметов прописаны координаты иконок, заданные из расчета квадрата 50х50 пискелей в файле ui_icon_equipment.dds. Старые видеокарты не в состоянии загрузить текстуру размером 4096х4096 пикселей целиком, потому и криво отображают иконки.

 

n6260, а отчего такое предпочтение GeForce-то? Любая видяха старого образца так себя поведёт :)

Сообщение от модератора n6260
Ну это на основе "исследований" Тирекса - он про джиФорсы писал ;)
Изменено пользователем n6260

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

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

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

AMK-Team.ru

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