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

СОЛЯНКА v.2.8 (ЗП)


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

 

 

4. Теперь врагов можно лечить (кроме зомбей и Монолита). Автор: Моддер.
а есть в чистом виде? Можешь поделится этой функцией?
Ссылка на комментарий

Лечение врагов

 

в чистом виде

https://yadi.sk/d/1K24mLF0kzVDf
Автор: Моддер

 


Так называемая "версия мода с ванильным оружием и погодой" обновилась.
1. Решён вылет:
stack trace:

 

0023:099D0CC3 xrGame.dll, CDialogHolder::CDialogHolder()
Огромные спасибы @НаноБот за это мудрое решение :)
2. Добавлен минималистичный оружейный пак (без бампов) отсюда: GSC Weapons Remake Разработчик: LoopinG.
Я исправил отображение прицельных сеток на всех рендерах, а также конфигурационные правки под мой мод.
3. Удалены многие не столь необходимые модели НПС и куча текстур.
4. Исправлены ошибки. В частности вылет за отсутствием "actor_hud_08".
5. Добавлено Weather for DX10-11. Автор Chriotmao.

• Увеличена дальность видимости в солнечную погоду.


• Уменьшена дальность видимости в пасмурную \ туманную погоду.
• Увеличена дальность видимости ночью, например для ПНВ.
• Включены лучи солнца в любое время, при его наличии.
• Оптимизировнана погода map \ indoor.


Кому не надобно, просто удаляем папку \gamedata\configs\environment
Ссылка прежняя.

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

Оптимизировал скрипт rx_ff.script

 

 

---- Rulix aka Bak --- 29.7.2009
---- Доработка НаноБот		23.12.2015
---- оптимазация по памяти и быстродействию
---- для xrGame.dll XRay-Extensions rev233

function printf(s,...)
--	rx_ai.printf("ff:"..s,...)
--	get_console():execute("flush")
end

local ff_ini = ini_file("misc\\rx_ff.ltx")
local ff_sets = {forbiddens = {factions = {}, npcs = {}},
				check_prd = rx_utils.read_from_ini(ff_ini, "main","check_period", 200),
				enabled = rx_utils.read_from_ini(ff_ini, "main","enabled", true, 0)}

local good_acts = {[xr_actions_id.smartcover_action] = true,[xr_actions_id.smartcover_action+2] = true}

function init()
	ff_sets.forbiddens.factions = rx_utils.parse_list(ff_ini, "main","forbidden_factions", true)
	ff_sets.forbiddens.npcs = rx_utils.parse_list(ff_ini, "main","forbidden_npcs", true)
	ff_sets.inited = true
	ff_ini = nil
end

class "evaluator_dont_shoot" (property_evaluator)
function evaluator_dont_shoot:__init(npc,name,storage) super (nil,name)
	self.st = storage
--self.tm_id = timing_scripts.register_binder("rx_ff", nil)
end
function evaluator_dont_shoot:evaluate()
	local npc = self.object
	if good_acts[npc:motivation_action_manager():current_action_id()] then
--timing_scripts.binder_update_end("rx_ff", self.tm_id)
		return false
	end
	local enemy = npc:best_enemy()
	local res = false
	if enemy and npc:see(enemy) and not xr_wounded.is_wounded(enemy) then
		local enemy_id = enemy:id()
		if rx_knife and rx_knife.targets[enemy_id] and rx_knife.targets[enemy_id] ~= npc:id() then
			local hunter = level.object_by_id(rx_knife.targets[enemy_id])
			if hunter and npc:relation(hunter) ~= game_object.enemy and npc:see(hunter) then
				local n_dist = npc:position():distance_to(enemy:position())
				local h_dist = hunter:position():distance_to(enemy:position())
				if h_dist < 3.5 and h_dist < n_dist then
					res = true
					self.st.vdist = 5
				end
			end
		else
--			timing_scripts.binder_update_start("rx_ff", self.tm_id)
			local f, d = friends_on_fire_line(npc)
--			timing_scripts.binder_update_end("rx_ff", self.tm_id)
--			printf("eva[%s]:%s",npc:character_name(),tostring(f))
			res = f
			self.st.vdist = d
		end
	end
--	printf("enemy[%s]: %s",npc:character_name(),tostring(enemy~=nil))
	return res
end

class "action_verso" (action_base)
function action_verso:__init (npc,action_name,storage) super (nil,action_name)
	self.st = storage
end
function action_verso:initialize()
	action_base.initialize(self)
	local npc = self.object
	npc:set_desired_position()
	npc:set_desired_direction()
	npc:set_mental_state(anim.danger)
	npc:set_item(object.aim1, npc:active_item())
	local enemy = npc:best_enemy()
	if enemy then
		npc:set_sight(look.fire_point,rx_utils.safe_bone_pos(enemy))
	end
	self.vertex = get_vertex(npc, self.st.vdist)
	self.timer = time_global()+800*self.st.vdist
--	printf("act2[%s]:init vertex = %s, vdist = %s",npc:character_name(),tostring(self.vertex),self.st.vdist)
	state_mgr.set_state(npc,"assault")
end
function action_verso:execute()
	action_base.execute(self)
	local npc = self.object
	local enemy = npc:best_enemy()
	if enemy then
		npc:set_sight(look.fire_point, rx_utils.safe_bone_pos(enemy))
	end
	npc:set_item(object.aim1, npc:active_item())
	if self.vertex then
		npc:set_dest_level_vertex_id(self.vertex)
	end
	if not self.vertex or npc:level_vertex_id() == self.vertex or self.timer < time_global() then
--		printf("act2[%s]:vertex re",npc:character_name())
		self.vertex = get_vertex(npc, self.st.vdist)
		self.timer = time_global()+700*self.st.vdist
	end
end
function action_verso:finalize()
    action_base.finalize(self)
--	printf("act2[%s]:fin",self.object:character_name())
end

evid_dont_shoot = rx_ai.base_id+25
actid_dont_shoot = evid_dont_shoot

function add_to_binder(npc, ini, scheme, section,storage)
	if not ff_sets.inited then
		init()
	end
	local manager = npc:motivation_action_manager()
	if not (ff_sets.enabled and not ff_sets.forbiddens.factions[npc:character_community()] and not ff_sets.forbiddens.npcs[npc:name()]) then
		manager:add_evaluator(evid_dont_shoot,property_evaluator_const(false))
		return
	else
		manager:add_evaluator(evid_dont_shoot,evaluator_dont_shoot(npc,"eva_dont_shoot",storage))
	end
	local action = action_verso(npc,"act_dont_shoot",storage)
	action:add_precondition(world_property(stalker_ids.property_alive,true))
	action:add_precondition(world_property(xr_evaluators_id.sidor_wounded_base,false))
	if rx_bandage then
		action:add_precondition(world_property(rx_bandage.evid_bandage,false))
	end
	if rx_gl then
		action:add_precondition(world_property(rx_gl.evid_gl_reload,false))
	end
	if rx_facer then
		action:add_precondition(world_property(rx_facer.evid_facer,false))
	end
	if rx_knife then
		action:add_precondition(world_property(rx_knife.evid_knife_attack,false))
	end
	if xrs_grenade and xrs_grenade.evid_aaa_grenade then
--		action:add_precondition(world_property(xrs_grenade.evid_crazy_grenadier,false))
		action:add_precondition(world_property(xrs_grenade.evid_aaa_grenade,false))
	end
	if blowout_scheme and blowout_scheme.evid_outside then
		action:add_precondition(world_property(blowout_scheme.evid_outside,false))
	end
	action:add_precondition(world_property(evid_dont_shoot,true))
	action:add_effect(world_property(evid_dont_shoot,false))
	manager:add_action(actid_dont_shoot,action)
	action = manager:action(stalker_ids.action_combat_planner)
	action:add_precondition(world_property(evid_dont_shoot,false))
--	action = manager:action(xr_actions_id.alife)
--	action:add_precondition(world_property(evid_dont_shoot,false))
end

function get_vertex(npc,dist)
	local rnd1, ang = math.random(100)
	if rnd1 < 43 then
		ang = math.random(50,60)
	elseif rnd1 < 58 then
		ang = math.random(160,200)
	else
		ang = math.random(300,310)
	end
	local dir = vector_rotate_y(npc:direction(), ang)
	return npc:vertex_in_direction(npc:level_vertex_id(), dir, dist)
end

function npc_update(npc)
end

function set_scheme(npc,ini,scheme,section)
	local st = xr_logic.assign_storage_and_bind(npc,ini,scheme,section)
end

function disable_scheme(npc, scheme)
	local st = db.storage[npc:id()][scheme]
	if st then
		st.enabled = false
	end
end

function friends_on_fire_line(npc)
	local st = rx_ai.get_storage(npc:id(), "friends_on_fire_line")
	if (st.wait or 0) >= time_global() then
		return st.f, st.d
	end
	st.wait = time_global() + ff_sets.check_prd
	st.f = false
	st.d = 4
	local npc_pos = npc:bone_position("bip01_l_finger02")
	local dir_vrag = npc:best_enemy():center():sub(npc_pos)
	local vrag_dist = dir_vrag:magnitude()
	if vrag_dist > 2 then
		for o in npc:memory_visible_objects() do
			local obj = o:object()
			if obj and obj:alive() and obj:id() ~= npc:id() and obj:is_stalker() and npc:relation(obj) ~= game_object.enemy then
				local dir_friend = obj:bone_position("bip01_spine"):sub(npc_pos)
				local friend_dist = dir_friend:magnitude()-0.5
				if friend_dist < vrag_dist then
					local vec_e = dir_vrag:set_length(friend_dist)
					local vec_f = dir_friend:set_length(friend_dist)
--					log1(string.format("vec_e=%s, vec_f=%s", rx_utils.vec_to_str(vec_e), rx_utils.vec_to_str(vec_f)))
					local er = 1
					if friend_dist < 1.6 then
						er = 0
					end
					if vec_f:similar(vec_e, er) == 1 then
						st.f = true
						st.d = 4*vrag_dist/(vrag_dist-friend_dist)
						if st.d > 25 then
							st.d = 25
						end
						break
					end
				end
			end
		end
	end
    return st.f, st.d
end
 

 

 

Вылеты прекратились, немного быстрей начал работать.

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

В этой солянке все текстуры убиты! возможно этой софтиной Optimizer Textures. 

Добавлено warwer,

Скрины в студию.

Чего голословно жаловаться? Может автор так задумал...

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

Если используете xrGame.dll из мода, то в файле rx_ff.script метод obj:is_stalker() смените на оригинальный IsStalker(obj), или используйте ревизию 238, за одно про тестируете мою ревизию.

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

Доброго вечера всем! Начинал был играть в предыдущую версию этого мода, вот вижу вышло обновление, решил сыграть. Есть пара вопросов, у оружия не показывается точность в параметрах когда наводишь на него в инвентаре, это так задумано или у меня глюк. И в чем задумка если что объясните пожалуйста?
Вроде как разброс пуль стал очень сильный, я правда только с АКСУ стрелял в самом начале, может другое оружие получше стреляет. 


Взял на Лесопилке Абакан с оптикой и еще парочку автоматов, таки да, на дистанции 50 метров, с оптикой, надо раза 10 выстрелить что бы попасть. Я не говорю что надо с первого раза попадать, ну это чересчур сильный разброс.

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


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

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

Вопрос отпал, люди в личку разъяснили  по поводу точности, оказывается чем больший износ оружия, тем больше разброс пуль, я не знал, теперь понятно.
Удалите пожалуйста все эти посты за вчера и этот!

Изменено пользователем rallod
Добавлено warwer,

Стоит ли удалять?

Потом, опять, будут подобные вопросы, а тут уже ответ есть.

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

Поставил на чистую ЗП 1.6.02 последнюю фуловую версию(из шапки), поставил фикс, всё прекрасно работало... пока не начались постоянные безлоговые вылеты, при быстром сохранении и загрузки, а так же частенько при переходе на другие локации. 

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

@NicK1992, так только в сказе бывает, что ссыпал всё в кучу и оно само срослось. Перечисленные тобой моды, при сборке, требуют серьёзной адаптации...

Ссылка на комментарий
что поверх чего ставить?

Ну, возможно, прокатит и так:

SWTC + OWR3 + Pure Waters 1.3 + Ai Add

Возможно...

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

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

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...l.k.e.r. - Зов Припяти\gamedata\scripts\rx_ai.script:74: attempt to call field 'net_spawn' (a nil value)
Пробовал менять рендер и директ 10 и полное динамическое, ничего не помогает.
Система виндовс 10, 64 бит.
 

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

Переустановил игру, без обязательного фикса на лечение какого то вылета, игра запустилась, может в нем проблема?
Фикс смотрю обновлен на Яндекс диске в 2015 году, а сам мод обновлен 2016, может фикс не актуален?
 

Добавлено warwer,

Нет данных. Пробуй. Если получится - отпиши результат.

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

@rallod Судя по логу проблема в схеме АИ пака.
Попробуй перекачать мод по ссылке из этого поста: http://www.amk-team.ru/forum/topic/13184-solyanka-v28-zp/?do=findComment&comment=978897

Тех.поддержки на данный мод уже давно нет.

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

@rallod Судя по логу проблема в схеме АИ пака.
Попробуй перекачать мод по ссылке из этого поста: http://www.amk-team.ru/forum/topic/13184-solyanka-v28-zp/?do=findComment&comment=978897

Тех.поддержки на данный мод уже давно нет.

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

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

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

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