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

Вылеты И Проблемы Солянки II


vlad_all

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

миха, немного не так. Ты ведь один ствол в итоге удалил, а второй-нет. И по нему вылет и схлопотал.

Надо было, наверное, так:

function actor_binder:update(delta)
local se_obj = alife():object("wpn_lr30031245")
local se_obj2 = alife():object("wpn_lr30052483")
if se_obj then
alife():release(se_obj, true)
end
if se_obj2 then
alife():release(se_obj2, true)
end

 

ну и далее ничего не трогаем. Просто добавляем релиз второго объекта точно так же, как и первого.

 

Я дико извиняюсь, но попытался поискать по этому вылету что конкретно сделать - и не нашел (ни в старой теме, ни в новой). То, что находил - только что удалил, конкретного там ничего нет. А что искать в геймдате clock_vergas... вот как я понял, чего делать:

Поэтому, думаю, нужно сделать следующее:

файл gamedata\config\ui\ui_custom_msgs.xml

удалить строку

<texture>ui_hud_frame_clock_vergas</texture>

файл gamedata\config\ui\ui_hud.xml

удалить строку

<texture id="ui_hud_frame_clock_vergas" x="1060" y="920" width="86" height="23" />

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

 

 

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

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

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


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

Logo583,

в конеце файла gamedata\config\misc\outfit.ltx

есть такое:

[sect_monolit_black_outfit_plus_immunities]
burn_immunity                = 0.03        ;коэффициенты иммунитета самого костюма
strike_immunity                = 0.01
shock_immunity                = 0.03
wound_immunity                = 0.015
radiation_immunity            = 0.00
telepatic_immunity            = 0.00
chemical_burn_immunity        = 0.03
explosion_immunity            = 0.03
fire_wound_immunity            = 0.01

?

 

 

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

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


Ссылка на сообщение
По неписям вышла правка. Советую поставить

Arhara, это то, что Дэн вчера выкладывал для rx_ai.script?

Chimaera, подствольник ни при чём. Это по-моему граната, которой нычка минируется. Есть в 3-х файлах:

quest_items.ltx

marsh_havan_restr.ltx

prov_ruk.ltx

На болотах был?

Попробуйте ей прописать этот праметр в квест айтемс.

А вот этого - не надо. История действительно на подствольники похожа по логике вылета. И прописывание одного этого параметра не поможет. Скорее всего, буде вылет по остальным, которых тоже нет.

Chimaera, а гранату из нычки Калмыка доставал?

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

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

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


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

Monnoroch, ну да, а что человеку сейчас посоветовать? Можно, конечно, читспавнером удалить объект.

Кстати!

При таком раскладе:

FATAL ERROR

[error]Expression : fatal error
[error]Function : CInifile::r_string
[error]File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
[error]Line : 352
[error]Description : <no expression>
[error]Arguments : Can't find variable ammo_mag_size in [grenade_rgd5_new]

Chimaera, делаем так:

в скрипте bind_stalker.script найди строку function actor_binder:update(delta)

и пропиши туда такое в начало:

function actor_binder:update(delta)
for a=1,65535 do
    local obj = alife():object(a)
    if obj and string.find(obj:name(),"grenade_rgd5_new") then
       alife():release(obj,true)
    end
end

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

 

Chimaera только что + поставил - сработало, наверное :D

 

--колбэк на взятие предмета в инвентарь ГГ
function on_item_take(obj)
  if obj:section() == "grenade_rgd5_new" then
   alife():release(obj,true)
  end
gps_habar.on_item_take(obj) -- Idler ++--
    escape_dialog.have_a_art()
flamethrower.have_a_fire_kolobok()
flamethrower.have_a_trubki()
flamethrower.have_a_manometr()
flamethrower.have_a_vodko()
flamethrower.have_a_gorelka()
  remove_spot_from_map(obj:id(),"red_location")
  mod_call("check_usable_item",obj)

end

 

Мон, вписал твой вариант с именем секции.

Вот только сейчас подумал: а не помешает ли это удаление ей взорваться?

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

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

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


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

Arhara, По поводу проблемы, описанной здесь: если грузануть инфопоршень agr_help_krot_done - это поможет Кроту выбраться из здания и начать наконец делать, что положено (название поршня накопал в разобранном оригинале)?

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

 

Odavid, а какая версия Солянки?

function checking_droped_item10 - это Архара забыл от хлебчика остатки убрать :)

 

По скриптам в 03.08 - exit_dt10 есть только в том же spawn_level_changer.script и он закомментирован.

        elseif rnd == 73 then
            --exit_dt10()    
            --alife():release(alife():object(obj:id()))
        --elseif rnd == 74 then
            exit_dt11()
            alife():release(alife():object(obj:id()))

так что вариантов 2: либо что-то правилось руками, либо вызов функции в аллспавне.

да, и в строке 1109 (из лога) - вообще вот это:

             exit_dt6()

так что этот скрипт, возможно, из какого-то патча. Т.е. нужно видеть именно его скрипт (и версию НС уточнить, кстати).

 

Сообщение от администратора _And_
Ответ от Архары:

Вернее - не так. Я Крота не правил и не собирался. Пока тестил новую модель Адреналина - он работал исправно. Не вижу особого смысла ковырять файлы ПЫС, если они не правились.

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

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

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


Ссылка на сообщение
Так вот как раз --exit_dt10() требуется раскомментировать

Odavid, не поможет. Это вызов функции, которй нет. Пока не увидим, что на самом деле в той геймдате, на которой вылет - не о чем говорить. Лог говорит о том, что там он как раз скорее всего раскомментирован. Скрипт spawn_level_changer.script из геймдаты с вылетом - в студию!

 

grekos, кстати, а в какой момент вылет (игровая ситуация)? Я так понимаю, что при использовании hand teleport?

И геймдаты "одним файлом" у меня нет. Раскомментировав строку, ты ничего не добьешься. В скрипте ведь нет function exit_dt10() ? Или в твоем есть?

Если бы твой скрипт совпадал со скриптом от 03.08, то там было бы что-то больше подходящее к логу вылета, а там - exit_dt6() :blink:

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

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

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


Ссылка на сообщение
удалось разобраться с Кротом

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

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

 

exLeft, а версия Солянки? и у тебя такой файл: gamedata\scripts\lootmoney.script есть?

function lootmoney(npc)
if monnoroch_options.mone == 0 then return end
    if npc ~= nil and not string.find(npc:section(),"arena") and npc:character_community()~="arena_enemy" then
        local money = npc:money()
        if money ~= nil and money ~=0 then
                local deadmoney = money
if monnoroch_options.money_real == 1 then
                                local npc_rank
        npc_rank = ranks.get_obj_rank_name(npc)
        if npc_rank ~= nil then
            if npc_rank == "novice" and deadmoney >=70 then deadmoney=math.random(25,70)    
            elseif npc_rank == "experienced" and deadmoney >=150 then deadmoney=math.random(50,150)  
            elseif npc_rank == "veteran" and deadmoney >=220 then deadmoney=math.random(100,220) 
            elseif npc_rank == "master" and deadmoney >=300 then deadmoney=math.random(200,300)  
                          end
                          end
                end
                local news_texti = "\\n%c[255,255,0,0]Мёртвый сталкер: %c[default]"..npc:character_name().."\\n%c[255,255,0,0]Обнаружено денег: %c[default]"..game.translate_string(tostring(deadmoney).."руб.")
                db.actor:give_game_news(news_texti, "ui\\ui_iconsTotal", Frect():set(0,0,83,47), 1, 4000)
                db.actor:give_money(deadmoney)
                game_stats.money_quest_update(deadmoney) 
                npc:give_money(-money)
                game_stats.money_quest_update(-money)
            end
        end
end

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

 

 

 

мардин, по вылету

meceniy_work.script:48: attempt to call global 'create_level_changer' (a nil value)

В скрипте gamedata\scripts\meceniy_work.script

create_level_changer(97011, vector():set(-256.66232299805,-22.116565704346,248.25448608398),78671,1786,

меняем на такую:

spawn_level_changer.create_level_changer(97011, vector():set(-256.66232299805,-22.116565704346,248.25448608398),78671,1786,

 

Я описывал аналогичный вылет здесь. Надо было в старой теме по вылетам пошарить. Между прочим, в шапке темы про это написано :)

Лечение - аналогичное тому, что по ссылке.

 

Arhara,

, да понятно все. Спасибо, я знаю, как проверять (без батона, прямым выполнением скрипта научился. Читерить - так уж читерить :) ). Но начинать НГ принципиально не хочу. Все равно обязательно где-то, да заглючит :)

У меня еще ни разу не было, чтоб все было нормально. Да и времени снова начало проходить нет - час-полтора в день - потолок.

 

Ну убили спецназовцы Крота - и фиг с ним. Тайник есть, инфа по тайнику в случае убийства Крота - автоматом выдается (это я про свой прошлый косяк, что Ворон не заспавнился :) ), а без ППШ - как-нибудь обойдусь.

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

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

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


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

Arhara, можешь меня поздравить: теперь Сидор не вкуривает, что я доки с агропрома бармену сдал :(

Агропром прошел (кейс вояк+тайник Стрелка в подземке НИИ) -> кейс вояк бармену отдал -> на х-18 задание у него получил, прихожу на кордон, а у Сидора так и висит - "Какие спецзадания, когда еще с предыдущим не справился!". С уверенностью, что это задание на кейс с блокпоста, иду туда, беру кейс, а не пиликает. Как я понимаю, у остальных с этим нормально всё, иначе бы уже кто-то написал про это...

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

 

IIPAIIOP, в этом посте я давал код для удаления двух конкретных объектов. Полистал твои последние посты - не увидел по этому вопросу никакого лога от тебя - поэтому сам пропиши тот объект, который в логе вместо тех, что в посте по ссылке.

 

Сообщение от администратора _And_
Ответ от Архары:

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

 

Arhara, мне тут подсказывают такое:

Задание на блокпост Сидор даст сразу как х-18 пройдете. После х-18, облава военных и Сидор предлагает уходить через Южные ворота, заходим на Кордон и он с радостью сообщает чтоб ГГ заглянул к нему на огонек, мол есть разговор. Вот этот разговор пойдет о доках с блокпоста.
Может, таки после х-18 новое спецзадание на доки с блокпоста?

ЗЫ: С Кротом когда был глюк - играл вообще с нетронутой твоей геймдатой. Не прикасался ни к одному байту.

Потом пару конфигов трогал, но те же, что и всегда, - никогда от этого квесты и диалоги не летели.

 

Кстати, с "килобайтом" тебя :D

 

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

 

krot32, переигрывай до гибели Фаната. И "вылеты и проблемы" тут причём?

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

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

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


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

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

 

Вылет, когда жмешь "хорошо, помогу" или раньше? Если когда спавнятся наемники, то в них и проблема, а не в Фанате.

Не справляется - имел в виду, - что объективно, - например, между вагончиком и трактором, где их спавнят - аномалия. Тогда просто выброса подожди, а потом с Фанатом говори. Ну или сходи и посмотри, нет ли там аномалий сначала. Хотя, тогда был бы лог, наверное, про пути и вертексы...

 

Timoha, держи поправленный rx_ai.script (по рекомендациям Dan на предмет лечения binder zavis[####])

http://www.sendspace.com/file/9mimxf

ифы потрял :)

 

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

Пытался играться с инфопоршнями - но ПЫСы так там намутили, что сам черт ногу сломит - не получилось ничего. По-видимому, с самого начала игры что-то там на агро не заладилось, т.к. переигрывал с заходом с сейва на свалке раз 15 - и ничего. Так что НГ только может от этого помочь.

 

ArturKa, что-то твой случай с Павликом очень что-то мне напоминает... с Кротом та же непонятка. Не нравится мне это...

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

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

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


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

napalm75, "Уменьшение дальности освещения" - это немного не то, "дальность видимости" нужно уменьшать.

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

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

И еще: Архара как-то советовал шейдерный модик от сообщества мапперов для болот на статике - вот, попробуйте:

marsh_and_shaders_fix_mixed_r1+r2.rar

На динамике тоже нормально работает.

38c3b6254f23t.jpg 67eecca894adt.jpg 091b95b254det.jpg

 

 

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

Arhara, тут вот одесситы чуток потестировали такой еще мод:

DRW+AAO 1.8 (ivar):

Сам мод (48Мб):

http://ifolder.ru/12848342

и адаптация под 08.08 (63Кб):

http://ifolder.ru/13549861

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

Камрад VPCH выложил даже сборку Солянки с этим модом на тру. И вроде как народ на вылеты на болотах не жалуется.

По-моему, можно брать на вооружение.

24325bbdbb6bt.jpg 72f409412759t.jpg 0519a95a3e66t.jpg

 

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

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

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


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

Arhara, Дэн нашел в диалоге Звездочета спавн aver_hunter_stalk_4 с сидом 9975. Но сида такого больше нигде не нахожу.

[794]
; cse_abstract properties
section_name = stalker_sakharov
name = aver_hunter_stalk_4
position = -121.693054199219,17.6894550323486,-68.2417907714844
direction = 0,0,0
 
; cse_alife_trader_abstract properties
character_profile = aver_hunter_stalk_4
 
; cse_alife_object properties
game_vertex_id = 2894
distance = 6.80000019073486
level_vertex_id = 660733
object_flags = 0xffffffbf
custom_data = <<END
[spawner]
cond = {+zvezdochet_aver_talk_start}
 
[smart_terrains]
aver_hunter = true
END
story_id = 9975

 

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

Витамин не появляется после взятия задания у Лукаша

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

Я так покопался - вроде правильно все.

<dialog id="lukash_pechatka_vernul"> 
<precondition>arhara_dialog.proverim_pseudo</precondition>
<dont_has_info>lukash_pechatka_nayti_done</dont_has_info>
<has_info>bar_kluk_say_start</has_info>
<phrase_list>
<phrase id="0">
<text>lukash_pechatka_vernul_0</text>
<next>1</next>
</phrase> 
<phrase id="1">
<text>lukash_pechatka_vernul_1</text>
<next>2</next>
</phrase> 
<phrase id="2">
<text>lukash_pechatka_vernul_2</text>
<give_info>lukash_pechatka_nayti_done</give_info>
<next>3</next>
</phrase> 
<phrase id="3">
<text>lukash_pechatka_vernul_3</text>
<action>arhara_dialog.lukash_pechatka_nayti_done</action>
<action>arhara_dialog.spawn_aver_art2</action>
<action>arhara_dialog.pant_zveri_sms</action>
</phrase> 
</phrase_list>
</dialog>

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

 

 

 

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

 

Arhara, я понял, спасибо. Правка диалога все же нужна, наверное, тому кто спрашивал. Цитата этого диалога выше. Ткни, пожалуйста, носом, куда этот экшен со спавном витамина переносить.

--' убираем кидалу
function delete_kidalo()
local se_obj = alife():object("esc_kidalo")
  if se_obj then
    alife():release(se_obj, true)
  end
end

 

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

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

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


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

Arhara, просвети, пожалуйста, что это за костюмчики?

update_outfit_sakharov_304

update_outfit_sakharov_305

update_outfit_sakharov_306

Просто текстовых описаний к ним нет, а у Сахарова в диалоге установки апдейтов - есть :)

c533d3564828t.jpg

304 - нанозащитного костюма, с установленным ПНВ

305 - нанозащитного гравикостюма, с установленным ПНВ

306 - нанозащитного лечебного костюма, с установленным ПНВ

в stable_dialogs_wawka.xml

После

    <string id="update_outfit_sakharov_303">
        <text>Боевой костюм эколога...</text>
    </string>

попробуйте прописать:

    <string id="update_outfit_sakharov_304">
        <text>Нанозащитный костюм...</text>
    </string>
    <string id="update_outfit_sakharov_305">
        <text>Нанозащитный гравикостюм...</text>
    </string>
    <string id="update_outfit_sakharov_306">
        <text>Нанозащитный лечебный костюм...</text>
    </string>

по-моему, так надо.

 

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

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

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


Ссылка на сообщение
Description : Invalid vertex for object

Arguments : tushkano_normal_hell47880

Region57, попробуй тот же метод, что используется при удалении стволов.

Region57, ищи по словам Invalid vertex и вставь в скрипт свой "tushkano_normal_hell47880".

Region57, ну я же сказал, что искать. Внизу всей темы - текстовое поле и кнопка "Найти в этой теме"

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

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

 

_Призрак_, выложи сейв куда-нибудь и кинь ссылочку. Соль без рангов? Ничего не навешивал больше?

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

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

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


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

ivar, Только что глянул сейв Призрака. К сожалению, твоя правка не помогла... :(

Да и не в той функции, которая правлена - вылет...

 

_Призрак_, DrAlexsandrov

По вылету

gamedata\scripts\rx_wmgr.script:695: attempt to index a nil value

Вставляем условие в скрипт rx_wmgr.script:

function weapon_manager:return_items(id)
    if not self.npc then
        printw("return_items:not self.npc")
        return
    end
  if has_alife_info("boss_talk_start") then 
    if self.npc:name()=="bodi_pantera2" or self.npc:name()=="bodi_pantera1" or self.npc:name()=="pantera" then 
      return 
    end 
  end

Вот последние 5 приведенных строчек - то что я добавил. Все, вылета нет.

Начинается, правда, такое... Но так задумано разработчиком :D

Да, и еще: ставить можно с начала игры. И потом можно не убирать: этих неписей в игре уже нет.

 

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

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

Просто чуть обождать, потом нажать. Вылета, по идее, тоже быть не должно.

Кстати, кто внимательно читает диалоги - на этот вылет не нарвется и без правки :D

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

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

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

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


Ссылка на сообщение
правку Shadowman от 30.4.2009

DrAlexsandrov, а в Солянку какую играешь? Не в апрельскую ведь? Тот вылет, по которому эта моя правка - поправлен давно в следующих версиях. А то, что ты привел как лог вылета - отладочная строка, вовсе не лог вылета. И говорит лишь о том, что заглючила логика у непися. Лог должен начинаться с "FATAL ERROR:".

Я бы посоветовал для начала switch_distance поставить поменьше в alife.ltx.

 

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

 

В скрипте gamedata\scripts\bind_stalker.script в функции function actor_binder:update(delta)

попробуй поставить так:

function actor_binder:update(delta)
    for id,obj in pairs(db.creatures) do
        local text="agr_factory_defence_stalker5"  --здесь секция непися (или часть секции)
        local stalker=IsStalker(obj)
        if (stalker) and obj:alive() and string.find(obj:name(),text) then
        local sobj=alife():object(obj:id())
        alife():release(sobj, true)
        end
    end

свич_дистанс ставь, как был = 140. Грузишь сейв этой правкой, смотришь, не вылетает ли.

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

Если все нормально - делаешь сейв, правку удаляешь (или комментишь все кроме строки фанкшн). Грузишь сейв.

 

 

 

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

ЗЫ: Никаким боком к биосканеру правка не относится. Удаление объектов делается повсеместно другими аналогичными игровыми скриптами - и ничего.

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

дошел до лагеря новичков без всяких каких признаков вылетов

Ну, то есть рэнодом оказался? Или я неверно понял?

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

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

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


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

monolit312, универсального нет, есть более удобное :)

Камрад mangust давал, (только в теме я что-то не нашел):

local bad_object_names = {"wpn_g3654337", "wpn_lr30045670", "wpn_g3645672", }

local i, se_name, se_obj

for i, se_name in ipairs(bad_object_names) do
  se_obj = alife():object(se_name)
  if se_obj then
    alife():release(se_obj, true)
  end
end

Удаление списком: просто код проще, и нужно заполнить только имена в начале в массиве bad_object_names ("wpn_g3654337", "wpn_lr30045670", "wpn_g3645672" - список ваших стволов с неверными вертексами на удаление).

Имеет смысл только если несколько стволов одновременно удалять (т.е. удалил один - вылетел с другим).

Юзаем ранговые сейвы на без ранговой игре (или наоборот).

Скорее все-таки первое, потому что если загрузить безранговый сейв на геймдате с рангами - то все нормально "подхватывается" (не считая того, что некоторые ранги "с нуля" начинают считаться, больше проблем никаких это не вызывает). ;) А еще скорее - адаптация какого-то аддона (возможно, погодного, т.к. именно погодные затрагивают скрипт amk_mod, в котором то, на что ругательство в логе) - к безранговой НС установлена

[spoiler=цитирую ранговый amk_mod.script:]

function check_af_transform_rank(reqrank)
  if reqrank == 0 then
    return true
  end
  local res = has_alife_info("ecolog_freeplay_reward_task_"..reqrank.."_start")
  if not res then
    amk.send_tip(game.translate_string("ecolog_freeplay_transformation_"..reqrank))
  end
  return res
end

 

 

а у maxval этой ф-ции нет (как и еще много чего другого) от рангов. Скорее всего, как-то так ;)

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

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

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


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

FATAL ERROR

 

[error]Expression : no_assert

[error]Function : CXML_IdToIndex<class CInfoPortion>::GetById

[error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h

[error]Line : 112

[error]Description : item not found, id

[error]Arguments : marsh_dan_umer_newsinfo4

 

Делаем следующее:

Смотрим, есть ли такое в gamedata\config\gameplay\info_way.xml:

<info_portion id="esc_dan_umer_newsinfo1"></info_portion>

 

<info_portion id="esc_dan_umer_newsinfo2"></info_portion>

 

<info_portion id="esc_dan_umer_newsinfo3"></info_portion>

 

<info_portion id="esc_dan_umer_newsinfo4"></info_portion>

 

и меняем ВСЕ esc на marsh. Чтобы стало marsh_dan_umer_newsinfo<цифра>

Грузим сейв перед диалогом. Проверяем. Должно получиться.

 

Arhara, поправь меня, пожалуйтса, если ошибся :blush:

Правка, собственно, нужна тем, кто оказался редким "счастливцем" и у него убили Дэна. Вроде ж как Дэн - бессмертен...

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

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

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


Ссылка на сообщение
там должны быть круглые числа типа 5,10,15,20.... Если не ошибаюсь.

n6260

Там СУММА всех цифр в КАЖДОМ наборе внутри {} должна равняться 100. А круглые они или квадратные - пофиг: вероятность в %.

вот так:

--'****************************************************************************
***
--'   **   **   **   **   **    **   **   **       DYNWEATHERS       **   **   **   **   **    **   **   **   
--'****************************************************************************
***
dynweathers={
    clear={
        clear=15,
        pasmurno=85,
        rain=0,
        groza=0
    },
    pasmurno={        
        clear=40,
        rain=0,
        groza=0,
        pasmurno=60    
    },
    rain={
        clear=20,
        groza=0,
        pasmurno=80,
        rain=0
    },
    groza={
        clear=5,
        rain=0,
        pasmurno=95,
        groza=0    
    }
}

 

 

Neptun, круглые цифры там необязательны, обязательно, чтобы сумма равнялась 100.

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

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

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


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

по проблеме

Arguments : LUA error: ...mes\s.t.a.l.k.e.r\gamedata\scripts\xr_wounded.script:29: attempt to index local 'sobj' (a nil value)

LogruS, можно поробовать так:

[spoiler=в скрипте xr_wounded.script:]

 if sobj ~= "nil" then
  if npc.health>0.95 and self.a.regen and tostring(xr_logic.pstor_retrieve(self.object, "wounded_state")) ~= "nil" then
    sobj.wounded=false
    self.a.wound_manager:hit_callback()
  elseif tostring(xr_logic.pstor_retrieve(self.object, "wounded_state")) == "nil" and sobj.wounded then
  -- amk.mylog("hitcall for "..self.object:name())
    self.a.wound_manager:hit_callback()
  end
end

первую и последнюю строчку добавил - просто проверка на "нил".

 

 

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

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

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


Ссылка на сообщение
гадский папа, в Народном творчестве я видел какую-то фишку как раз по твоему вопросу (удаление/спавн аномалий, в смысле). Изменено пользователем Shadowman

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

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


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

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