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

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

посмотрел на предмет "! Cannot find saved game ~~~ watchdog 100.reason autosave Тайник Старого Жила - завершено" и иже с ними.

 

Мда. Похоже, это не лечится. Точнее, лечится, но не наскоком.

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

 

Короче, надо разгребать все, что наваяно в таймерах - то есть, вообще все подряд, и переписывать.

 

 

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

+ к этому - стандартное: брать минимальное количество квестов, минимальное количество ремкомплектов, не варить по нескольку артов сразу и т.д.

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

 

Такие дела...

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

kassyyan, не верно...

 

[error]Description   : item not found, id

[error]Arguments     : kartech_otdal_done

Именно патч и решает эту проблему...

 

поставил фикс и патч 2.03, при стрельбе по монолитовцам стал вылетать

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

 

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

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

 

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

Давно предлагалось отключать "Автосохранение...", но увы. Это бы в шапке написать, да кто её читает...

...

Пост для справочника вылетов. Не удалять. /Евген/

Изменено пользователем Eugen81
Ссылка на комментарий
Мне не важна логика игры,

Нужно найти поршень который отключает(скорее удаляет рестриктор пси-поля) и запустить его принудительно...Можно начать искать от диалога с Призраком, после мнимого отключения поля Боцманом...

=======================

игорь 77,ничего сложного, если умеешь пользоваться поиском.

Готовые коды (arhara_dialog):

 

 

--' удаляем таймер базы на Генераторах

function del_baza_doza_timer(story_id)

local se_obj = alife():story_object(17017)

if se_obj then

alife():release(se_obj)

news_manager.send_tip(db.actor, "Смертельная зона защиты базы дезактивирована", nil, nil, 30000)

end

end

--' удаляем таймер подстанции на Генераторах

function del_podstanziy_doza_timer(story_id)

local se_obj = alife():story_object(17018)

if se_obj then

alife():release(se_obj)

news_manager.send_tip(db.actor, "Смертельная зона защиты подстанции базы дезактивирована", nil, nil, 30000)

end

end

 

 

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

snp.script:

	elseif section == "wpn_ognemet" then
		if not (has_alife_info("fli_have_3") or has_alife_info("dimak_toolkit_done")) then
			obj:set_condition(0.01)
		end

	elseif section == "wpn_vihlop" then
		if not (has_alife_info("bar_deactivate_radar_done") or has_alife_info("izumrud_electra_done")) then
			obj:set_condition(0.01)
		end

	elseif section == "wpn_vintorez" then
		if not has_alife_info("escape_meceniy_start") then
			obj:set_condition(0.01)
		end

- нафиг

...

Поломка огнемет, "Выхлоп", "Винторез".

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

snp.script

elseif section == "wpn_ognemet" then

if not (has_alife_info("fli_have_3") or has_alife_info("dimak_toolkit_done")) then

obj:set_condition(1)

end

 

elseif section == "wpn_vihlop" then

if not (has_alife_info("bar_deactivate_radar_done") or has_alife_info("izumrud_electra_done")) then

obj:set_condition(1)

end

 

elseif section == "wpn_vintorez" then

if not has_alife_info("escape_meceniy_start") then

obj:set_condition(1)

end

 

elseif section == "wpn_fn2000_paratrooper" then

if not has_alife_info("vasily_chertez_fn") then

obj:set_condition(1)

end

 

http://s020.radikal.ru/i710/1407/d2/6c417d42b7f8.jpg

 

 

...

Поломка огнемет, "Выхлоп", "Винторез", "Десантник".

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

Не делайте мне больно, господа...

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

Прошу помощи в продолжение вопроса.

Не вывод СМС на экран происходит по-разному. Для меня этот сбой критичен в случае смерти НПС, т.к. я стараюсь сохранять в игре жизнь некоторым НПС (оригинальным, таким как Барин, Демон Гусаров и т.п., которых лечил и пр.).

В одном случае на экране СМС нет, но его можно прочитать в ПДА. В этом случае вроде бы помогают правки, учитывающие формат монитора.

В другом случае СМС нет ни на экране ни в ПДА. Есть только звук.

Для этого случая, хочу попробовать решить эту проблему с помощью принудительного двойного или может тройного вывода СМС.

В связи с этим прошу помощи. По теме прочел это сообщение и это. Как реализовано в ОП-2 эта процедура я не могу разобраться.

Прошу тех, кто понимает в скриптах, посмотреть скрипт gamedata\scripts\xr_motivator.script функцию function motivator_binder:death_callback

function motivator_binder:death_callback(victim, who)


if self.object == nil then return end
if xrs_ai then xrs_ai.npc_death_callback(self.object) end
if rx_ai then rx_ai.npc_death(self.object,who) end
if who:id() == db.actor:id() then
xr_statistic.addKillCount(self.object)
if bind_soul_cube then
bind_soul_cube.add_soul()
end
end

if self.st.death then
xr_logic.issue_event(self.object, self.st.death, "death_callback", victim, who)
end
if self.st.active_section then
xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "death_callback", victim, who)
end
sr_territory.issue_event(self.object, "death_callback", victim, who)

sr_light.check_light(self.object)

smart_terrain.on_death( self.object:id() )

-- added by xStream for AMK miniSDK
amk.on_death(victim, who)
amk_utils.npc_death(victim, who)
-- end of addition

 

Есть ли там вывод СМС, можно ли его там прописать неоднократно?

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

amk.on_death(victim, who):

 

function on_death(victim, who)

if (news_main and news_main.on_death) then

news_main.on_death(victim, who)

end

 

...

function on_stalker_death(victim_, killer_)

...

if (rnd() < 0.5) then -- слишком часто приходят смс о смерти

do_news(m_string, "Погиб сталкер:", rnd(timer_stalker_death, timer_stalker_death * 3), 10, "death", nil, 1)

end

if (rnd() < prob) then ...

 

и т.д.

 

Но вот если это изменить, то см. выше про автосэйвы. 8(

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

@Dennis_Chikin, спасибо за пояснения, но дайте пожалуйста пару ключевых комментариев, или отошлите к учебнику,

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

1. Откуда код, я понял что это не файл xr_motivator.script (функция function motivator_binder:death_callback)?

2. Зачем он в ОП-2 если есть xr_motivator.script?

3. Где в коде вывод на печать смс о смерти?

4. Что означает эта функция if (news_main and news_main.on_death) then news_main.on_death(victim, who)

как я это понимаю, это означает: если в игре произошло событие А и Б, то запустить событие Б с переменными (victim, who)  - не понял смысл.

5. Что такое "if (rnd() < 0.5)"?

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

amk.on_death() - строчка как раз из мотиватора.

Смотрим amk.script - там вызов news_main.on_death(), так что смотрим news_main.script

В нем добираемся до function on_stalker_death(), и там будут строчки с if rnd() ...  - как раз показывать или не показывать.

 

В общем, по ссылке была правильная мысль: сделать списки, и показывать по ним. Осталось только эти самые списки сделать, и проверку поменять.

 

 

Мда, но я бы отключил amk_offline_alife (см. пост про ограбление тайников и прочу ересь), и сделал бы бессмертие неписям в онлайне.

  • Спасибо 1
Ссылка на комментарий

death_manager.script:

 

после 486 строки:    if check_item_dependence(self.npc, k) == true then

добавить: if count_by_level[k] then

после create_items(self.npc, k, number, v)

добавить: else abort( "death_manager, invalid entry: %s", tostring(k) ) end

 

при вылете напишет, что ему не нравится в конфигах.

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

Добрый вечер.

Пара вопросов:

1. В этой теме 

как включить "Распознавание НПС" в опциях на уровне "реализм" в ОП-2



Примерно так - в файле: \gamedata\scripts\ui_mm_opt_main.script
находим в самом низу:
-- отключение на мастере распознавания НПС и дистанции
ниже комментируем двойным тире строки:
self.check_tips:SetCheck(false)
self.check_tips:Enable(false)

чтоб было так:
--self.check_tips:SetCheck(false)
--self.check_tips:Enable(false)

Сохраняем, загружаем игру, радуемся работающему пункту меню "распознавания" :)

Там же, ниже этих строк, можно закоментировать блокировку "дистанции до цели".

 

Попробовал - работает, но немного некорректно.

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

Вопрос:

Может можно как то поправить это, чтобы включение не "слетало" при загрузке-перезагрузке ?

self.check_tips:SetCheck(false)

self.check_tips:Enable(false)

ну а true поставить ?

2. Я включил у себя частый респаун. Но очень уж он частый - бывает новые монстры или НПС спавнятся чуть ли не под носом ГГ после отстрела старых.

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

Вопрос:

Какие значения есть у респауна ?

Может можно выбрать что то среднее между частым и по умолчанию ?

http://www.amk-team.ru/forum/index.php?showtopic=12839&p=856305

Это называется "читал" ? dc

Спасибо за ответ!

Как я понял, надо не комментировать эти строки, а поменять false на true ?

да

По респауну:

Время можно ставить любое ?

Или есть какие то определённые значения ?

Время в часах. dc

К сожалению если убрать закоментированность и поменять false на true, то в опциях игры включение не слетает, но само распознование НПС перестаёт работать.
Видимо надо сделать что то другое.

 

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

Денис, ты случайно не разбирался с кодом в wawka_dialog.script?

 

А что там можно сделать ? Сидеть, и тупо вычищать весь мусор и весь бред. Начиная с самой первой функции

local function v_have_good_wpn(itm)

    return db.actor:object(itm) and db.actor:object(itm):condition() and db.actor:object(itm):condition() > v_wpn_cond

itm = db.actor:object(itm)

if itm and itm.condition then return itm:condition() >= v_wpn_cond end  -- минимально разрешенная исправность

return false

end

 

и заканчивая последними

function give_af_armor_4(first_speaker, second_speaker)

    sak.out_item_namber("af_armor_4", 1)

end

function have_af_armor_4()

    return sak.have_item_namber("af_armor_4",1) ~= false

end

 

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

 

Такие дела...

 

1. Немерянное количество левых СМС, в том числе и откровенная самореклама

amk_mod.script:

function show_news()

оставить:

news_main.on_news()

amk.g_start_timer("show_news",0,0,math_random(30,60))

end

 

Кстати, и сэйвы биться реже будут.

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

Для Dennis_Chikin

1.

function show_news()

news_main.on_news()
amk.g_start_timer("show_news",0,0,math_random(30,60))
end

или

function show_news()
if (news_main and news_main.on_news) then
news_main.on_news()
end
amk.g_start_timer("show_news",0,0,math_random(30,60))
end

 

2. Если сделать как вы написали, то останутся ли важные сообщения о гибели сталкеров, и сообщения о каких то критичных для ГГ событиях ?

 

Первый вариант. Останутся. Здесь снесена только реклама. dc

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

Leviathan, вот прям от туда, можно было почитать и дальше про отмену ограничений по обмену у торговцев...

dialogs.script:

-- проверка лимита. возвращает true если все поршни выданы.
function dialog_is_enough(portion, count)
--[[
    local pname = ""
    for i=1,count do
        pname = portion..tostring(i)
        if not has_alife_info(pname) then
            return false
        end
    end
]]
    return false
end
По сути это работает так:

function dialog_is_enough(portion, count)
    return false
end
ПРЕДУПРЕЖДЕНИЕ: в сюжете на поиск тайников Стрелка, а именно - с наводкой на "три звезды" (Генераторы), временно "правку" не использовать (вернуть в прежнее состояние). Или "мудрить" - http://www.amk-team.ru/forum/index.php?showtopic=12839&p=874522 Изменено пользователем Eugen81
  • Нравится 2
Ссылка на комментарий

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

Просто делаю правки при которых артефакты и части мутантов предметы не стабильные и регулярно пропадают.

 

arc*.script, но вообще не советую. dc

 

Небольшая правка к lootmoney, чтобы иногда выпадало много денег. Типа этот сталкер только что удачно поторговал или кого-то обобрал.

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()

local deadmoney

if money ~= nil and money ~=0 then

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 >=150 then deadmoney=math.random(100,150)

elseif npc_rank == "experienced" and deadmoney >=300 then deadmoney=math.random(200,300)

elseif npc_rank == "veteran" and deadmoney >=450 then deadmoney=math.random(380,450)

elseif npc_rank == "master" and deadmoney >=600 then deadmoney=math.random(500,600)

end

end

end

 

-- Ищем миллионера

local shans = math.random(0,100)

if shans < 5 then

deadmoney = math.random(10000, 50000)

elseif shans < 20 then

deadmoney = math.random(3000, 10000)

elseif shans < 50 then

deadmoney = math.random(500, 3000)

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)

end

 

 

С деньгами станет значительно легче.

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

Спасибо за подсказку. Подскажите еще.

obj = artlist[c]

if obj then

alife():create(obj, vector(), 0, 0, 0)

end

 

 

 

Вопрос, как получить игровое имя obj ? Чтоб на экран вывести не "af_medusa" а именно "Медуза"

т.е. применро так?

local ini = system_ini()

if ini:section_exist("af_medusa") then

if ini:line_exist("af_medusa", "inv_name") then

local inv_name = ini:r_string("af_medusa", "inv_name")

 

 

 

PS Да именно так, все получилось, спасибо

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

Вушп, всем салют.

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

Как починить ? Спасибо.
 
Похоже, чьи-то шаловливые ручки удалили пост из темы. 8(
в сэйвах должны быть файлы типа
"autochange_difficulty.ltx",
"dynamic_bioradar.ltx",
"autosave_enable.ltx"
"pause_on_load.ltx",
"animations.ltx",
"autograb_body.ltx",
"new_sms.ltx",
"fast_respawn.ltx",
"transparent_treasure.ltx",
и обязательно - game_setup.ltx
содержание - любое.

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

Всем привет. Установлен патч 2.03 + фикс от 1 августа + правка по Акиму(торговля).  Проблема - данная правка  не наделяет Акима несметными богатствами...

Необходимая строчка в профиле НПС имеется, остаётся за малым - переспавнить объект:

function perespawn() 
 local obj 
        for i=1,65534 do 
          obj = alife():object(i) 
            if obj and obj:name() == "esc_akim" then -- имя секции из аll.spawn 
              alife():release(obj) 
          break 
            end 
        end 
 alife():create(3768) -- номер секции из аll.spawn 
 end

Вам лишь остаётся найти инфу, как сие запустить или в л\с...

 

Вопрос: может кто истолковать разницу в исполнении между этими двумя

<money min="2000" max="5000" infinitive="0"></money>

и

<money min="2000" max="5000" infinitive="0"/>

..?

 

 

Перестали сохранятся настройки биорадара, автолута, паузы после загрузки и т.д. после удаления папки stalker-shoc из Документов.

в сэйвах должны быть файлы типа ... и обязательно - game_setup.ltx содержание - любое.

Немного дополню: даже после потери папки "STALKER-SHOC" и не начиная НИ, а с чужого сейва, все опциональные настройки игры в ОП-2, прекрасно восстанавливаются...

Изменено пользователем Eugen81
поправил номер секции, был 3322 неправильный.
  • Спасибо 1
Ссылка на комментарий

Как изменить расстояние взятие какого-либо предмета или тайника?

actor - pickup_info_radius

inventory_sect - take_dist

 

Новый фикс вышел:

http://stalker-worlds.ru/forum/topic/2933-fiksy/

 

- Правка рандомных теней по краям экрана, r2_sun_near_border 1 устанавливается автоматически при любом лоаде.

- Немного изменен ассортимент у Сахарова.

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

- В Напоминания по клавише "U" добавлена информация о необысканных тайниках на локации.

- Шуруп за 30 штук заряжает полный огнемет.

- Для предотвращения проваливания некоторых квестовых предметов и совпадения мест некоторых тайников изменены места спавна:

1. кувалда на АТП в Г-образном здании

2. записка с рецептом в Х-16 (доступно с НИ)

3. тайник Фотографа на АС

4. тайник Вируса в Х-16

5. инструменты для Долговязого под крыжей гаража на АТП Кордона

6. тайник по квесту "Резервный схрон"

- Записки контролёров по сюжету "Охота на контролёров" не обязательны для сдачи квеста Захару.

- По квесту "Договор с военными" Кузнецову теперь нужно принести Mauser Red 9 под патрон 9х19. Он теперь лежит в раритетных тайниках, его выдаёт Димак за видик и Воронин за сбор документов.

- В награду за некоторые квесты будут выдаваться рандомные тайники.

- В квесте "Журнал полётов" изменены к-ты рестриктора в подземке Агропрома, обойти по туннелю с аномалией не получится.

 

Фикс ставить только на Патч 2.03 (см пост выше) !

 

 

будет ли сборка правок от karavan150 под последний патч

Под последний фикс, ты хотел сказать? НЕТ. До выхода глобального патча. Эти игры в догонялки мне надоели. Изменено пользователем Dennis_Chikin
  • Спасибо 1

Не делайте мне больно, господа...

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

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