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

Ковыряем ОП-2


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

То есть, на всех новых патчах по прежнему достаточно xrs_utils.getStartTime(StartTime) - для актора, а все остальные файлы кидаются в путь ярлыка\gamedata\, и ни каких проверок "при использовании перчаток" и т.д. не появилось, так ?

То есть, все подобные посты просто сразу в мусор ?

Вставлю и свои 5 копеек... Я не сильно разбираюсь во "внутренностях" Сталкера, но умею мыслить логически и кое-что понимаю в азах программирования. Мои наблюдения (не претендую на 100% истину):

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

     1.1. В патче 2.6.5 (может чуть раньше) появились "письма", находимые в трупах. При попытке загрузки сейва (сделанного на "чистом" патче) в правках, в которых изменяется items.ltx получаем вылет по невозможности открытия секции "письма", т.к. в данном файле она отсутствует.

     1.2. Патч тот же - появилась новая ветка квестов по "дружбе с животными". В сборках правок не работает кнопка "действие". Разгрузился, снял лишнее с пояса, разрядил правленные стволы, убрал правки. Прошел момент квеста с кнопкой "действие". Накатил правки - вылет. Причина - отсутствие описание ствола, который спавнится в тайнике по ходу квеста (квест "Друг человека"). Ладно, добавил его описание в игровые файлы. Прошел квест, пытаюсь выйти с АТП на кордон - вылет (причины и решения не нашел). Загрузка автосейва - опять вылет, но без описания. Перешел на другую локацию, иду по "длинному пути" на Кордон, при подходе в ДН - похожий вылет. решил забить на ветку "дружбы с животными". Пока полет нормальный.

 

Пробовал поставить п.2.07 - сейвы с него уже не пойдут при возврате на п. 2.06.5. Даже если не двигались с места, а просто загрузились/сохранились/откатились/загрузились. Пытался добавить секции, на которые ругается лог вылета (в частности аномалию на колесе обозрения в Припяти), но заметил, что некоторых содержимое файлов кардинально изменено. А настолько глубоко копнуть, чтобы разобраться с новой структурой, у меня пока не хватает знаний. Может быть в этом и есть причина всех тех криков о "новой защите", что попробовали одно, потом другое, потом вернулись, а оно уже не работает... 

  • Согласен 1

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


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

ВСЕ правки совместимы с патчами и фиксами. И авторы этих правок всегда ! указывают под какой конкретно патч и фикс сделана та или иная правка.

...

Только игроку надо конкретно указать пост-источник, что он делал и что получилось. Если в нововышедшем патче есть какие то новые строки или непонятные изменения, то здесь есть люди, у которых ПРЯМЫЕ руки и которые делают ПРАВЫЕ правки  (пардон за тавтологию).

Стоит патч 2.06 фикс 5.

Правки брал отсюда:

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

 

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

Патч и фикс один и тот же ?

Да! Тогда разницы не может быть в принципе, согласно всё той же логике.

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

Правка идет одним файлом (gamedata.dbb), так что о некорректности установки можно не говорить. Могу сейв выложить, попробуете сами.

На чистой 2.06.ф5 загружается нормально, с gamedata.dbb идет вылет с логом:

Забираю всё из "papa_autosave.sav"...

* Loading spawn registry...

* 15658 spawn points are successfully loaded

* Loading objects...

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CInifile::r_section

[error]File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp

[error]Line : 342

[error]Description : 

[error]Arguments : Can't open section 'letter'

 

 

Плюс все ранее_описанное мною по квестам...

А играть бы хотелось на любой стабильной сборке... Я вообще играл на чистом ОП-2, пока сохраняться игра не перестала. Пришлось правки ставить. Начал ставить уже с 2.06.ф5

Изменено пользователем Eugen81
убрал ненужное
  • Согласен 1

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


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

Вопрос по отключению гниения трупов - достаточно ли для избавления от этого процесса закомментить все содержимое функции function actor_binder:rotting() в файле , оставив только последний end, или нужно поковыряться где-то еще? Что будет если закоментить "-- self:rotting()" в секции "function actor_binder:update(delta)".
 
-- self:rotting()  - и это - правильное решение ! dc

Изменено пользователем Eugen81
убрал лишнее

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


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

Всем привет! Завис квест от Адреналина на спасение Агропрома от военных. Вроде и три БТР взорвал, и военных покосил в округе и даже планшетку нашел по квесту Свиблова в трупе военного, а квест не защитался и Адреналин молчит. А с Агропрома уже ушел далеко (в ПДА копался и зависший квест увидел). Что можно сделать?

...

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

 

Инфопоршен на выполнение этого квеста:

db.actor:give_info_portion("adrenalin_oborona_have")
Евген. Изменено пользователем Eugen81

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


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

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

Подробней: играюсь с настройками разных телепортаторов, в частности прототипа телепортатора. Сделал его многоразовым, бесплатным, и корректирую места отправки. Но! Игра реагирует на изменения скриптов/конфигов только после её перезагрузки. (Вроде даже загрузка сейва не помогает. Только полный выход). Вот и приходится после каждого изменения перезапускать всю игру...

 

И в догонку - если в meceniy_intellectual.script закомментировать "лишние для меня" секции local tabl_changers_by_level, то не получится ли, что он перестанет меня телепортировать из закомментированных локаций. Т.е. его принцип работы - телепортация только между  локациями, описанными в указанной таблице?

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

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


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

Там же комментарий даже имеется: ..нету уровня - нету телепорта туда! Туда! А не "оттуда"

Это я понимаю, а где тогда описаны секции, откуда можно​ телепортироваться? Я просто думал, что они берутся из этой же таблицы. А то я бы их (откуда можно) тоже расширил чуток, а куда можно - сократил... Надоело  на Агропром через Янтарь бегать, а на ТД, Свалку - через кордон, АС. Ну и т.п.

 

...

Правильно думал. Если закомментировать это, телепортация будет с любой локи:

 

elseif not tabl_changers_by_level[level.name()] then soobj() return

Eugen81.

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

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


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

Кстати, @Eugen81, в "метках" на версию 2.06-5 не срабатывает метка на взносы по "контролерам" и по "спринту". Это так и должно быть или просто не спавнятся тайники? Т.к. беглым осмотром по территории ДН тайников не нашел и сталкеры никуда не спешат, ничего не обыскивают... Так бы хоть за ними проследил...

 

...

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

Eugen81

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

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


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

Ну и получить соответственно

А вот это уже называется "оптимизация"! Т.е., то, что один человек закодил, другой завсегда оптимизировать сможет (почти как в "Формуле люби").

Хотелось бы уточнить - имеют ли значения одинарные/двойные кавычки? (Это очепятка или так и нужно?).

И, наконец, конечный вид должен быть такой?:

function add_spot_to_item_parent()
    local obj = alife():object(xr_logic.pstor_retrieve(db.actor, "Здесь_пишем_что_ищем_из_allspawn", "Здесь_пишем_желаемое_описание_при_наведении_на_тайник?"))
    if obj then
        parent = obj.parent_id
        if parent then
            level.map_add_object_spot_ser(parent, "red_location", "Описание") -- метка
        end
        break
    end
end
Чувствую где-то натупил... Изменено пользователем Eugen81

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


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

 

 

должно быть "Здесь_пишем_имя_той_переменной_которую_сохраняли_в_pstor_store"

Не очень силен в программировании, поэтому прошу прощения, если вопрос глуп - а как узнать, под каким именно именем нужный мне предмет хранится в  pstor_store? И что это за хранилище такое? И что будет, если предмет не уникален - поиск идет до первого совпадения?

 

 

И еще вопросик родился - запямятовал процесс поднятия тайников Стрелка и упал с дерева в Припяти. И побежал дальше. И далеко убежал. А теперь после поднятия первого бонусного тайника в Припяти следующий не генерится. Как можно заставить игру забыть мое падение с дерева и "отменить" его?

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


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

Как сделать многоразовыми черепа-телепорты(ЧАЭС 2)

 

 

spawn_level_changer.script

Добавить строку 

keep = true,
в секцию ["arhara_tele"]. Запятая в конце обязательно. А добавив строку
autosave = "l12_stancia_2",
Мы еще и автосейв при активации создадим.
Должно получиться как-то так:

 

 

["arhara_tele"] = {

                           keep = true,
                           autosave = "l12_stancia_2",
                           goto_func = {
                                               "exit_to_stancia21"
                                                }
                            },

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

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

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


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

кувалда почти разбита

Файл repair_check.script функция repair_can_be_done(obj)

Как сделать: комментируем (ставим --[[ в начале первой строки и символы ]] в конце последней). Либо просто стираем указанные в спойлере строки кода из файла. И будут ремкомплекты ремонтировать холодное оружие.

 

Для ремонта во время боя/опасности:

if not danger.actor_not_in_danger() then
	amk.spawn_item_in_inv(section)
	return false
end

 

Для ремонта ножей и др. холодного оружия

if db.actor:active_slot() ~= 1 and db.actor:active_slot() ~= 2 then
	repair_error("Можно отремонтировать только огнестрельное оружие.", section)
	return false
end

 

Для ремонта сильно поврежденного оружия

if cond < rep_cond_wpn then
	repair_error("Оружие слишком сильно повреждено. Ремкомплектом не починить.", section)
	return false
end

 

Для ремонта сильно поврежденной брони

if cond < rep_cond_armor then
	repair_error("Броня слишком сильно повреждена. Ремкомплектом не починить.", section)
	return false
end

 

Минуя вышеописанное, для износа холодного: kostya_dialog.script

 

-- Износ холодного оружия
if active_slot == 0 then
	wpn:set_condition(wpn:condition()-level.get_game_difficulty()*0.001) -- "0.001" - добавить пару нолей после точки - увеличится "износостойкость"; просто "0" - не изнашивается.
end

 

alen_fantom.

...

Если холодное оружие портится сразу до нуля, как только оказалось в руках, - это несоответствие версий игры и правок. Читать здесь.

Изменено пользователем Eugen81
Объединил посты.
  • Полезно 1

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


Ссылка на сообщение
(изменено)
Как заспавнить Француза на Армейских Складах или его ПДА, или что-то там нужное для выполнения квеста?

Если бандиты на базе Свободы спавнились и на 2 этаже трупа нету, то:

Вариант 1 - в меню-опции-игра выбрать пункт "купить квестовый предмет" и вписать туда pda_francuz

Вариант 2 - в ui_main_menu.script дописать его появление в рюкзаке по нажатию какой-нибудь кнопки.

 

В файле ui_main_menu.script

 

amk.spawn_item_in_inv("pda_francuz")
вставить после строки

elseif dik == DIK_keys.DIK_A then
чтобы получилось:

elseif dik == DIK_keys.DIK_A then
amk.spawn_item_in_inv("pda_francuz")
В игре в главном меню нажать А (англ.)

Делать все это на АС.

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

Труп оттуда ни куда не сбежит. 

Уборщик его прекрасно убирает, если с локации уйти. Вместе с ПДА. Самому пришлось спавнить.

Изменено пользователем Eugen81
добавил код
  • Спасибо 1
  • Нравится 1
  • Согласен 1

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


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

Кто сейчас проходит "яйцевые" квесты и вообще, если имеется проблема с СМС, сделайте как пишет alen_fantom, и отпишитесь здесь о результатах.

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

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

Изменено пользователем Eugen81
  • Спасибо 1

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


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

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

AMK-Team.ru

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