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

Ковыряемся в файлах ОП 2.1

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

@IIIGooGLuKIII,  Когда-то, в более другой теме, писали именно про то, какие фрагменты кода, как и для чего следует изменить.

Но, тема НА СТОЛЬКО всем мешала, что в итоге все-таки пришлось закрыть.

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

 

@Alexander_Vesker, От меня что требуется? С нуля заново переписать мод? У меня для этого более другой есть, и там есть чем заняться, хотя все работает, и никаких айвенгов там никто не убивает за их отсутствием. Более того, исправления всех сцен в ТД для соли выкладывались 8 лет назад, ни тогда, ни за все это время они оказались никому не нужны, за исключением требований все это удалить, как нарушающие аффтырьские права всех, кого попало. Не собираюсь делать все заново, и не обязан.

 

Кстати, да, если уж на столько припекло - game_relations.ltx, attitude_neutal_threshold = -9900,

0 для human на всех строках и столбцах в [monster_relations], и получаем щасте, потом вертаем взад.

 

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

 

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
2 часа назад, Alexander_Vesker сказал:

как помирить квад долга и можно как то удалить рестрикторы в ТД где остановка перед входом в лабу х-18.

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

 

Что касается рестрикторов - смотрим на карте по меткам, как называются, и удаляем обычным

local obj = alife():object( "имя" )

if obj then alife():release( obj, true ) end

желательно - находясь на другой локации.

Опять же не представляю, зачем это надо и что получится в результате. Например, может получиться как с той антенной Кленова или еще нечто в том же духе. Проверяйте.

 

И вот код для убиения врагов, ПОКА ЕЩЕ независимый от всех правок и патчей:

Скрытый текст

 


function kill_em_all()
	local actor = db.actor()
	if not actor then return end	-- еще не загрузилась игра

	local max_dist = 70 * 70	-- 70 - максимальная дистанция, за которой не трогаем

	local t = {}

	for k, v in pairs( {	-- вписываем классы
		clsid.bloodsucker_s,
		clsid.boar_s,
		clsid.dog_s,
		clsid.flesh_s,
		clsid.pseudodog_s,
		clsid.burer_s,
		clsid.cat_s,
		clsid.chimera_s,
		clsid.controller_s,
		clsid.fracture_s,
		clsid.poltergeist_s,
		clsid.gigant_s,
		clsid.zombie_s,
		clsid.snork_s,
		clsid.tushkano_s,
		clsid.psy_dog_s,

		clsid.script_stalker,
		} ) do t[v] = true	-- заполняем так на случай, если кто-то переименует
	end

	local t_exlusive = {	-- часть имени, с которым не трогаем
	"controller_mini",
	"quest_venom",
	"boar_child",
	"chimera_quest",
	"dog_quest",
	"kontrik_electro",
	"cat_quest",
	"tank_zasada",
	"quest_karlito",
	}

	local pos = actor:position()

	for k, v in pairs( db.creatures ) do	-- что есть в онлайне
		if t[v:clsid()]	-- подходит по классу
		  and v:alive()	-- живое
		  and ( ( v:story_id() == 4294967296 ) or ( v:story_id() == -1 ) )	-- не уникальное
		  and v:position():distance_to_sqr( pos ) < max_dist	-- подходит по расстоянию
		then
			for ii, vv in ipairs( t_exlusive ) do	-- не в исключениях
				if string.find( v:name(), vv ) then v = false; break end
			end

			if v then	-- прошло все проверки
				if v:clsid() == clsid.script_stalker then	-- непись
					if v:relation( actor ) == game_object.enemy then	-- враг
						v:kill( actor )	-- убиваем
					end
				else v:kill( actor )	-- монстр, убиваем
				end
			end
		end
	end
end

 

Впрочем, подозреваю, что таким он и пару часов не останется. Я в людей верю - найдут, как сделать нерабочим.

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

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

Добавлено JAPAN,

@volkodav37

  Спавн уменьшить (Скрыть)

Вот совет от многоуважаемого Stariy

"

есть в файле se_respawn.script такие строки  

        -- частый респаун
        idle_time:setHMSms( math.random(10, 12), 0, 0, 0)
    else
        -- стандартный респаун
        idle_time:setHMSms( math.random(20, 24), 0, 0, 0)

 

Попробуй изменить 20, 24 на например 30, 36 "

volkodav37.gif

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

Изменил у себя в cycle_task.script

function CCycleTask:has_cond_target(task_desc)
	local cnt = db.actor:ruck_item_condition_count(task_desc.target,task_desc.target_cond[1]/1000 ,task_desc.target_cond[2]/10)
	--' Смотрим, сколько у нас есть подходящего
	return cnt >= task_desc.target_count
end

и

function CCycleTask:out_cond_target(task_desc)
	local target_items = {}
	--' Смотрим, что у нас есть подходящего
	db.actor:iterate_inventory_simple(function (item) 
		if item:section() == task_desc.target --and between(item:condition()*100, task_desc.target_cond[1], task_desc.target_cond[2]) 
		then
			table.insert(target_items, {id = item:id(), cond = item:condition()})
		end
	end)

После этого по всем, даже уже взятым заданиям, неписи берут предметы с любым износом

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

@Nightshade2,     if true then ...

вообще-то

Пусть меняют, что хотят.

 

Хотя да,  я уверен, что в следующих патчах и еще половину команд вырежут, чтобы только поорать про "читеров криворуких".

"stranger"  - ну, не заметил, что его там было, вписал еще раз. Это то самое, которое "мир с бандитами" и прочими Химерами.

arhara_dialog.friend_community() и тому подобное.

 

P.S. Кстати, я бы, в целях "борьбы с читерами" еще бы и все буквы во всех операторах  LUA местами переставил - благо, прецедент с перестановкой местами всех аргументов в функциях и изменением типа аргументов в более другом моде уже был - чтобы сделать несовместимым код с кодом того, у кого собственно и был взят.

 

  • Нравится 2
Ссылка на комментарий

Ребята, кто нибудь знает, как называется зажигалка для Шуры Гинеколога?

Добавлено JAPAN,

@Сергей Гусаров, Вроде так: zajigalka

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

У кого есть правка от красного экрана x17?

Добавлено JAPAN,

у шапки темы есть.

Добавлено JAPAN,

@oggycoc

  buusty_dialog.script (Скрыть)

 level.store_ppe_effect("fire_hit.ppe", 2010, true,true) 

поменяй на

 level.store_ppe_effect("fire_hit.ppe", 2010, false,false)

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

Написал тут правку на ПРОПИСЫВАНИЕ ПОРШНЕЙ ВМЕСТО ПОКУПКИ КВЕСТОВЫХ ПРЕДМЕТОВ В МЕНЮ

 

Опечаток в названии прописываемого поршня не переваривает. Не знаю как сделать проверку валидности поршня. При неверном имени выкидывает [error]Line          : 128         ERROR Infoportion [shit] not found in configs!

 

Вот это

Скрытый текст

-- ТОЛКАЛКА ПОРШНЕЙ
function buy_quest_item()
    if not game_is_running() then return end
    local buy_item = ui_mm_opt_creator.getter_user_param("buy_item","nil")
    
        disable_info("mm_opt")
        give_info(buy_item)

        console:execute("buy_item ".."nil")

end

вставить вместо всей функции function buy_quest_item(). От имени до начала следующей функции. Файл ui_mm_opt_add.script по адресу \gamedata\scripts\ui

 

@JAPAN, Я не знаю как. Там Караван делал и у него наверняка, для совместимости, с исходными файлами игры связь минимальная, кроме того он делал некий интерфейс, и, наверняка, уже к нему свои функции привязывал. Здесь же привязка к исходному интерфейсу (и вообще просто удалил всё, что не нужно и написал одну строчку, лол).

Я, конечно, могу файлик готовый скинуть, но совместимость? Если в этом файле что то критичное поменяют, то игра падать будет при новых патчах. А так, для любых версий. Берёшь свой файл - copy-paste-profit

Изменено пользователем Kakos
Добавлено JAPAN,

это сложно всё, проще может порезать каравановский спавнер и оставить там только поршни?  

  • Полезно 1
Ссылка на комментарий
33 минуты назад, mason888 сказал:

как называются аккумуляторы для различных экзоскелетов

У меня есть такие:

ekza_akkumul
akkumulytor
acumm

дальше ищем по аналогии.

И да, список лута нужен.

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

@Vasya Glotov, в конфигах нужного оружия правишь параметр: slot = 0. При этом оружие не должно быть в оружейном слоте, иначе будет вылет.

Скрытый текст

scripts\binders\ bind_actor.script

--monster_parts.on_part_take(obj)

 

  • Полезно 1

Найди покой в своей душе, всё остальное само найдёт тебя.

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

@tihik, прикольно. Только забавно, как ты будешь митинг зомби разгонять с пистолета? Как в RE?:biggrin:

Без хорошей дубинки никак. ХОТЯ, идея. Можно оружию прописать урон вместо wound (или как там огнестрельный называется) на strike. Параметр hit_type. Наверное.

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

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

Но в этом смысла особо нет, можно просто hit_power = 99999.

@tihik, ну ты гришь не по душе тебе холодное оружие, тебе горячее подавай:biggrin:

Изменено пользователем Kakos
  • Смешно 2
Ссылка на комментарий

Раньше была правка на время выброса ЧАЭС на 2 часа, где она? Куда пропала? Может кто нибудь сделать или скинуть?

Добавлено lexa.3012,

config\scripts\aes\aes_start_death_timer.ltx

start_value = 3600000 --пару нулей допиши

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

Прописывание поршней вместо покупки предметов в опциях.

https://yadi.sk/d/UbEoDooGcysA0w

Там же полный список поршней (в файле, в игре смысла его делать нет)

 

Проверку на валидность введёного поршня прикрутил, теперь не выкидывает.

 

Вопрос к знатокам: встроенный уборщик мусора удаляет же таблицу поршней после выхода из функции поиска? Там 5к строк, в отдельный файл вынести не смог. По идее, ссылок на неё не остаётся, но я не знаю. Этот язык вообще название имеет? Или это просто си c изменённым синтаксисом и свистелками?

 

А нахзачем разрабы дырку в заборе у ворот со двора в сторону саркофага на чаэс1 заделали?

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

Народ, писали сюда, поиском воспользовался - не нашёл, хотя было...

Какой там параметр за "длину рук" гг отвечает?

Добавлено JAPAN,

@Mehdeck, в system.ltx параметр take_dist = (рекомендую не более 2.5)

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

Ради интереса добавил в спавнер naxac выдачу инфопорций(ПОРШНИ)

Ставить поверх вашего спавнера naxac

https://yadi.sk/d/bNf8m26tdlqmog

Ссылка на комментарий
2 часа назад, Александр Сабен сказал:

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

В шапке в мелких правках есть прыжок на 30 и 5 метров попробуй. А если у тебя скрипт ui_main_menu занят другими правками то найди эту секцию в правке и вставь в свой скрипт в конце.

elseif dik == DIK_keys.DIK_SPACE then
                        db.actor:set_actor_position(device().cam_pos:add(device().cam_dir:mul(5.0)))
                get_console():execute("main_menu off")
                
                elseif dik == DIK_keys.DIK_E then
                        db.actor:set_actor_position(device().cam_pos:add(device().cam_dir:mul(30.0)))
                get_console():execute("main_menu off")

Ссылка на комментарий
2 часа назад, кирилл колесников сказал:

Всем привет!! Где-то тут гуляла правка на циклические задания, а найти никак не могу. Может скинет кто-нибудь?

cycle_task.script self.task_time = 0 -- (с) время выполнения всех заданий, 2 недели self.idle_time = 24*9000 -- (игровые часы) время между выдачами задания повторно, 5 игровых дней

 

 

Мне так сказали сделать. Всё хорошо. Времени выполнения нет

  • Нравится 2
Ссылка на комментарий
9 часов назад, kubutum сказал:

правка, позволяющая менять ассортимент и цены у торговцев?

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

Скрытый текст

gamedata-config-trade

Здесь все торговцы

[trader_generic_buy] - это цена покупки

[trader_start_sell] - цена продажи

[trader_after_fabric_sell] - есть секции после определённого события, это после спасения Шустрого. Так же и других торговцев есть другие секции после выполнения каких либо заданий.

[supplies_start]

[supplies_after_fabric] - Это уже товар, здесь указывается сколько штук, и шанс выпадения.

Не у всех торговцев одинаковые секции по названиям

[freedom_sell_after_pavlik] - это у Скряги после стукача Павлика когда с ним разберёмся.

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

 

  • Спасибо 1
  • Согласен 2

Всем Привет с Чукотки

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

Если вдруг понадобится - Мириться с Шерстюком.

Правка была выложена ан STALKER GAMERS, ник Andewil

Скрытый текст

Мириться с Шерстюком.

 

В gamedata\scripts\ui_main_menu.script

ищем строку:

--elseif dik == DIK_keys.DIK_M then self:matants()

вместо нее пишем:

elseif dik == DIK_keys.DIK_M then
npc_drug()

 

Далее в самый конец файла добавляем:

function npc_drug() -- Делаем непися другом
local npc = level_object_by_sid(9506) -- ( ... ) сюда писать story_id из алл.спавна. 9506 - это Шерстюк.
if npc and npc:alive() then
npc:set_relation(game_object.friend, db.actor)
end
end

 

Вызов из главного меню игры клавишей М.


Но лучше, в случае с Шерстюком, не делать его другом, а просто избавиться от его злопамятности.

 

В том же ui_main_menu.script

 

ищем строку:

--elseif dik == DIK_keys.DIK_M then self:matants()

вместо нее пишем:

elseif dik == DIK_keys.DIK_M then
db.actor:disable_info_portion( "sherstuk_enemy" )

Вызов из главного меню игры клавишей М


Я  же в ui_main_menu.script ставил после -

 

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
                       CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
--                    local bind = dik_to_bind(dik)
    
                      if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
                        if dik == DIK_keys.DIK_ESCAPE then
                         if game_is_running() then
                          ui_mm_opt_add.check_options()
                            console:execute("main_menu off")

                               archievements.mm_opt()

                end


                elseif dik == DIK_keys.DIK_S then
                self:OnButton_load_spawn()


                elseif dik == DIK_keys.DIK_L then

                self:OnButton_last_save()

               

                elseif dik == DIK_keys.DIK_Q then
                 self:OnMessageQuitWin()

 

                        (ВОТ СЮДА!!!)

 

Только что попробывал - Все Отлично

 

Добавлено JAPAN,

 А для Сяка такого нету?) Ибо он мне врагом стал.

В мирилке вместо  9506 напишите 9501- это Сяк.

  • Нравится 1

Боюсь я,батюшка,что ты зубом цыкать станешь.

Не стану я зубом цыкать-я спать буду...

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

Помогите пожалуйста! Как сделать прицел на  Танковый Корд? В параметрах w_kord.itx в самом последнем для него есть прицел (scope_status = 0, поставил на 1), но при когда в игре я прицеливаюсь, то у меня белая текстура и ничего больше. 

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

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

AMK-Team.ru

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