Перейти к контенту
Дормидонт

СОЛЯНКА 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
Ссылка на комментарий

Оптимизировал скрипт 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
Ссылка на комментарий

@NicK1992, Если не ошибаюсь там не 3 атмосфер, а 2.

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

- Пролетарии всех стран, соединяйтесь!

 

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

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

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

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

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

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

Версия 2к17.
Мод: 
https://yadi.sk/d/_751loL93Q8qnp 

Скриншоты: 
https://yadi.sk/d/ZbB68WSf3Q8oYo

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

- Пролетарии всех стран, соединяйтесь!

 

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

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

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

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

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

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

Войти

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

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

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

  • Куратор(ы) темы:

AMK-Team.ru

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