Full concept MODIFICATION of S.T.A.L.K.E.R. Call of Pripyat that touches every game aspect including textures, sfx, music, weapons, A.I., items, weather, mutants, difficulty and much much more!

Forum Thread
  Posts  
Yasti's Gameplay Tweak Compendium (Games : S.T.A.L.K.E.R.: Call of Pripyat : Mods : MISERY : Forum : Mod optimization : Yasti's Gameplay Tweak Compendium) Post Reply
Thread Options 1 2 3 4
Aug 25 2013 Anchor

UPDATE: MOST OF THE FIXES HERE ALREADY INCLUDED IN THE 2.1 BETA. THESE FILES HERE SHOULD ONLY CURRENTLY BE USED IN 2.0.2, WITH SOME EXCEPTIONS. PLEASE SEE Moddb.com FOR WHAT THESE EXCEPTIONS ARE



UPDATED 10/11/2013
Figure I'd throw all my tweaks into 1 thread so they're easier to keep track of. I'll post it as code, for the more script savvy of you, and also explain the values where possible, and also as a download that you extract or copy/paste into your CoP install directory. It is recommended to use Notepad++ if you want to tinker with the files yourself, but remember to BACK THEM UP FIRST


User.ltx tweaks:
These are the luminosity/tonemap value's I use in conjuction with gamma turned down 1 notch in game. You can add these in console or adjust the values directly in User.ltx

r2_sun_lumscale_amb 0.4 ; original 0.1
r2_sun_lumscale_hemi 0.7 ; original 0.6
r2_tonemap_adaptation 2.3 ; original 0.2
r2_tonemap_amount 0.7 ; original 1
r2_tonemap_lowlum 0.29 ; original 0.4
r2_tonemap_middlegray 1.3 ; original 1.1

Allow Backpacks to be dropped in base:
This tweak allows you to place the backpacks you buy from traders in-base..Makes it easier to sort through all your crap :)

file: itms_manager.ltx
location: gamedata\configs\plugins\
Note: it is also located in gamedata\class_diversity\class\gamedata\configs\plugins\

Under [backpack_stash], adjust the value of "allow_in_base" from false to true

Closed Suit\Mask Breathing Tweak
This tweak adjusts the breathing sound while wearing closed masks so it soft when you are at full stamina and increases in volume as you get more worn out. Not entirely realistic but a little easier on the ears

File: actor_effects.script
Location: gamedata\scripts

actor_effects.script Vanilla Misery Code:(Starts at line 433)

		if opt.helmet_no_respi[current_helmet] then
			hud_no_mask()
		elseif tg>snd_tg then
			gas_play = gas_play+1
			if gas_play > 8 then gas_play = 1 end
			local snd = sound_object("actor\\gas_breath_"..tostring((db.actor.health > 0.2) and math.ceil((1.01-db.actor.power)*3+actor_speed_time/8) or 8).."_"..gas_play)
			snd_tg = tg+snd:length()*1.25
			snd:play(db.actor,0,sound_object.s2d)


Tweaked actor_effects_script:

		if opt.helmet_no_respi[current_helmet] then
			hud_no_mask()
		elseif tg>snd_tg then
			gas_play = gas_play+1
			if gas_play > 8 then gas_play = 1 end
			breath_check = (1.01-db.actor.power)*3+actor_speed_time/8
			local snd = sound_object("actor\\gas_breath_"..tostring((db.actor.health > 0.2) and math.ceil((1.01-db.actor.power)*3+actor_speed_time/8) or 8).."_"..gas_play)
			snd_tg = tg+snd:length()*1.25
			snd:play(db.actor,0,sound_object.s2d)
			if breath_check < 0.5 then	
				snd.volume = 0.2
			elseif breath_check >= 0.5 and breath_check < 1.5 then
				snd.volume = 0.4
			elseif breath_check >= 1.5 and breath_check < 2.7 then
				snd.volume = 0.6
			else
				snd.volume = 0.9
			end


Code Explanation:
The sound effect volume is controlled by the the variable in snd.volume, where 0 is mute and 1 is full. My tweak adds the variable "breath_check", which calculates how much stamina you have between values 0 and 3 (0 = full, 3 = empty). I then added if statements to adjust the snd.volume as the bar decreases (if you removed the if statements and just added snd.volume underneath snd:play(db.actor,0,sound_object.s2d), the breathing volume is whatever you set it to no matter what your stamina is). You can adjust the if statments and snd.volume values to whatever suits you.


Helmet Condition HUD Degradation Tweak
This tweak adjusts the Helmet Conditions values so that your HUD first starts to degradate at 90%, then again at 81%, 72%, etc. It was requested on the Forum as Vanilla Misery has it start @ 98% and goes downhill from there

File: actor_effects.script
Location: gamedata\scripts
actor_effects Vanilla misery code: (starts at line 417)

		cond = math.floor(11*(1.17-cond))
		if current_helmet~=helmet_name or cond~=helmet_cond then
			if helmet_name then
				hud:RemoveCustomStatic(helmet_name..helmet_cond)
			end
			if suitfirstrun == false and cond > helmet_cond and current_helmet==helmet_name then
				local snd_obj = sound_object("material\\glass\\glass_fall03hl")
				snd_obj:play(db.actor,0,sound_object.s2d)
			elseif current_helmet~=helmet_name then
				level.remove_pp_effector(3000)
				use_item(current_helmet)
			end
			helmet_name = current_helmet
			helmet_cond = cond
			hud:AddCustomStatic(helmet_name..helmet_cond)
		end


tweaked actor_effects code:

		cond = math.floor(11*(1.09-cond))
		if cond < 0 then
			cond = math.abs(cond)
		end
		if cond < 1 then
			cond = 1
		end
		if current_helmet~=helmet_name or cond~=helmet_cond then
			if helmet_name then
				hud:RemoveCustomStatic(helmet_name..helmet_cond)
			end
			if suitfirstrun == false and cond > helmet_cond and current_helmet==helmet_name then
				local snd_obj = sound_object("material\\glass\\glass_fall03hl")
				snd_obj:play(db.actor,0,sound_object.s2d)
			elseif current_helmet~=helmet_name then
				level.remove_pp_effector(3000)
				use_item(current_helmet)
			end
			helmet_name = current_helmet
			helmet_cond = cond
			hud:AddCustomStatic(helmet_name..helmet_cond)


Code Explanation:
A bit higher up in actor.effects.script it sets the helmet condition to 1 (helmet_c>

Then @ line 417 it sets another variable (cond), which basically converts the float value of the helmets current condition (for 95% it calculates 11*(1.10-0.95)) into an integer value rounded down ( 11*(1.10-.95) = 1.65 = 1).
The script then compares that value to the original, does a couple of other things, then sets the hud to the proper texture based on condition (hud:AddCustomStatic(helmet_name..helmet_cond)) where helmet_name = helmet's name and helmet_c "cond" value.

So for example if you are using battle helmet and it is @ 85% condition:
helmet_name = helm_battle
helmet_c = 2.75 = 2
Therefore hud:AddCustomStatic(helmet_name..helmet_cond) = hud:AddCustomStatic(helm_battle2) = gamedata\textures\ui\helm_battle2.dds

The if statements where added because it would cause the game to crash if you set the value used in "cond" to lower then 1.10, because math floor rounds to 0 if the helmets condition is at 100% (E.g 1.09 - 1 = .09 * 11 = 0.99 = 0). If the "cond" calculation ends up lower then 0 (which can happen if you adjust the value to < 1) it converts the negative number to a positive (math.abs).The second if statement checks if the value is less then 1, and converts it to 1 if it is.

You can tweak the 1.17/1.09 value to whatever you like. The lower it gets the more of a beating your helmet can take before the HUD changes.


Yasti's Main Menu Quick-Hard Save 4/9/2013
This tweak allows you create an Automatic Hard Save Containing your class, level, in game date, and in game time, by pressing F5 in the main menu. It then exits the menu and returns you to the game

File: ui_main_menu.scriptLocation: gamedata\scripts
vanilla misery code: (starts at line 339)

	if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
		if dik == DIK_keys.DIK_ESCAPE then
			if level.present() and
				(	((db.actor ~= nil)and(db.actor:alive())) or
					(false==IsGameTypeSingle())
				) then
				self.OnButton_return_game()                      --' xStream 02.2008
				-- console:execute("main_menu off")							   --' xStream 02.2008
			end
		end

--		if dik == DIK_keys.DIK_S then
--			self:OnButton_load_spawn()

--		else
		if dik == DIK_keys.DIK_Q then
			self:OnMessageQuitWin()
		end


tweaked code:

	if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
		if dik == DIK_keys.DIK_ESCAPE then
			if level.present() and
				(	((db.actor ~= nil)and(db.actor:alive())) or
					(false==IsGameTypeSingle())
				) then
				self.OnButton_return_game()                      --' xStream 02.2008
				-- console:execute("main_menu off")							   --' xStream 02.2008
			end
		end
		if dik == DIK_keys.DIK_F5 then
			if level.present() and (db.actor ~= nil) and db.actor:alive() then
				local console = get_console()
				local Y, M, D, h, m
				Y, M, D, h = game.get_game_time():get(Y, M, D, h)
				local s_level = level.name()
				local actor_class = axr_misery.ActorClass
				m = level.get_time_minutes()
				if m <= 9 then
					m = ("0"..m)
				end
				console:execute("main_menu off")
				console:execute("save "..actor_class.." "..s_level.." "..string.format("%d.%d.%d %d-%d", D, M, Y, h, m))
			end
		end

--		if dik == DIK_keys.DIK_S then
--			self:OnButton_load_spawn()

--		else
		if dik == DIK_keys.DIK_Q then
			self:OnMessageQuitWin()

This can be used in any current version of Misery 2.0+. While this file is included in every patch, the only thing it updates currently is the version number that is displayed on the main menu. The file i've included in the download is from Quickfix 2.02 B but again it will work no matter which version atm


"One Shot" Mission Dialog Crash Fix 25/9/2013
If you are experiencing a Crash while talking to Kovalski after the 1 shot mission this is a fix to get past the dialog

-Okay firstly I'd try going back to saves prior and doing the mission again. From the looks of it something didn't go right there or didn't trigger properly

-If that fails you can go open gamedata\configs\gameplay\dialogs_pripyat.xml (preferrably using Notepad++), finding "pri_b35_task_end" (should be line 1568) and changing "hasinfo" on the front and back to "giveinfo" (BACKUP THE FILE FIRST). That will get the dialog to continue without crashing

NOTE: While this will allow the game to continue i'm not 100% certain if this causes problems with alife not spawning down the track (zombies i believe spawn there when the task is finished)

Edited by: Yastiandrie

Aug 25 2013 Anchor

I love you, man :)

The backback at bases and helmet degradation fixes are godsent!

na1340572769
na1340572769 Floyd
Aug 25 2013 Anchor

Great work Yestiandrei!! I'll be using these for sure

Aug 25 2013 Anchor

Note to self..fix the grammatical errors I made

Aug 25 2013 Anchor

When I press F1 I get a crash.

Aug 25 2013 Anchor

Danikovov wrote: When I press F1 I get a crash.


Are you trying it before you have a character loaded and playing? I'm not at home atm but will take a look at it when I can

Aug 25 2013 Anchor

Sorry,my fault,forgot to extract the second folder into the game directory,Thank you for this!!

Only one thing,I can't find the functional Head Lamp in the spawn menu.

Aug 25 2013 Anchor

Danikovov wrote: Sorry,my fault,forgot to extract the second folder into the game directory,Thank you for this!!

Only one thing,I can't find the functional Head Lamp in the spawn menu.


The spawn mod was done by Measly_Twerp and is from this thread. I suspect that the headlamp's name itself was changed in a patch. I'll have a look into it

EDIT: Open ui_mm_spawn_dialog.script (in gamedata\script's) and search for "device_torch_dummy". Remove the "--" from in front of it but make sure it is still in its original column. That's the proper headlamp.

Edited by: Yastiandrie

Aug 26 2013 Anchor

Great job Yastian, these mods should be integrated into Misery officially.

Aug 27 2013 Anchor

Wow thanks, Yastiandrie. These tweaks and fixes are awesome. Thanks for also sharing the code in the forum. I made the changes directly to the source file, you know trying to understand modding instead of just replacing the files.

Aug 27 2013 Anchor

eco1127 wrote: Wow thanks, Yastiandrie. These tweaks and fixes are awesome. Thanks for also sharing the code in the forum. I made the changes directly to the source file, you know trying to understand modding instead of just replacing the files.


No probs. I hope the explanations made sense :)

Aug 27 2013 Anchor

Do you happen to know the code to change the repair price. Like cardan's repair price. I had not long ago but deleted the game and re-installed v2.2
I know is here somewhere in the forums, still looking thanks :)

Found it!! on old stiivais repair price tweak... modifying the files now.

gamedata\configs\misc\inventory_upgrades.ltx (cost_factor)
gamedata\scripts\inventory_upgrades.script (local repair_cost_factor)

Ok, made the changes from:
cost_factor = 3.45
local repair_cost_factor = 3.3

to new changes of:
cost_factor = 2.1
local repair_cost_factor = 2.1

*Always back up your original files prior to editing.

Edited by: mrburke

Aug 28 2013 Anchor

*UPDATE* 28/8/2013

Added Misery 2.0.2 QF Trader Optimization Lite

eco1127 wrote: Do you happen to know the code to change the repair price. Like cardan's repair price. I had not long ago but deleted the game and re-installed v2.2
I know is here somewhere in the forums, still looking thanks :)


I'm not really dealing with those sorts of changes

trojanuch
trojanuch Gameplay lead
Aug 28 2013 Anchor

Someone wrote: Misery 2.0.2 QF Trader Optimization Lite 28/8/2013


Wow, thx for that Yasti. This will be included by default in next update.

--

Aug 28 2013 Anchor

trojanuch wrote:

Someone wrote: Misery 2.0.2 QF Trader Optimization Lite 28/8/2013


Wow, thx for that Yasti. This will be included by default in next update.


Oh I forgot to mention I only changed the traders, trade_general is still vanilla. I was worried it might delete the inventory of normal stalkers..(damn autocorrect on phone)

Edited by: Yastiandrie

na1340572769
na1340572769 Floyd
Aug 28 2013 Anchor

Yestiandrie wrote: Misery 2.0.2 QF Trader Optimization Lite 28/8/2013
This tweak adjusts the traders so they behave more like Vanilla. Pretty much all the items that the trader doesn't normally sell in his inventory are immediately removed from their inventory when you sell it. Unfortunately this doesn't remove low condition weapons if the trader sells that weapon type normally E.g Beard and rusty weapons.


I'm not sure I understand this and how it's a good thing - you mean if I sold some ammo to Beard, all the rest of the ammo would disappear from his inventory?

Since trojanuch is clearly impressed by it, I think I must be missing something...

Aug 28 2013 Anchor

na1340572769 wrote:

Yestiandrie wrote: Misery 2.0.2 QF Trader Optimization Lite 28/8/2013
This tweak adjusts the traders so they behave more like Vanilla. Pretty much all the items that the trader doesn't normally sell in his inventory are immediately removed from their inventory when you sell it. Unfortunately this doesn't remove low condition weapons if the trader sells that weapon type normally E.g Beard and rusty weapons.


I'm not sure I understand this and how it's a good thing - you mean if I sold some ammo to Beard, all the rest of the ammo would disappear from his inventory?

Since trojanuch is clearly impressed by it, I think I must be missing something...

Depends on if that particular ammo is listed in Beards supply list in his trader file

It works like this:

Currently everything you sell gets stuck in a traders inventory until the game goes through its predetermined trader update cycle. What i've done is gone through every traders ltx file and set it not to trade anything you sell to them that they don't actually stock, which removes the items immediately from their inventory. If it is in the file that the trader sells a particular item at any point in the game, it doesn't get removed.

E.g Beard only ever sells rusty and worn type weapons. If you come back from a raid hauling 20 odd guns to sell, any of them that aren't classed as rusty or worn get automatically removed from his inventory when you sell them. Same goes for anything else. It also removes things like faction patches, junk, mutant parts, rubles, wet underwear, etc.

Edited by: Yastiandrie

na1340572769
na1340572769 Floyd
Aug 28 2013 Anchor

I'm with you, nicely done once again

kcs123
kcs123 Just Kcs123
Aug 28 2013 Anchor

Yastiandrie wrote:
E.g Beard only ever sells rusty and worn type weapons. If you come back from a raid hauling 20 odd guns to sell, any of them that aren't classed as rusty or worn get automatically removed from his inventory when you sell them. Same goes for anything else. It also removes things like faction patches, junk, mutant parts, rubles, wet underwear, etc.


That's could be solution. Making Beard to not sell any kind of weapon, just he should be able to buy all crapy weapons from you.
Btw, I'm looking for the way how to make trader to sell you weapons/outfits in 60-80% condition state instead of brand new 100% condition.
Is it possible to tweak those settings in scripts or *.ltx ?

Also thanks for this "Yasti's Main Menu Quick-Hard Save" - it should be included in the next release so you will not have to wory about versions in file :)

Edited by: kcs123

--

Aug 28 2013 Anchor

DISREGARD POST.

Edited by: terminator6267

mp5lng
mp5lng The Gunsmith
Aug 28 2013 Anchor

kcs123,...
Can you tell me how i can make a trader to sell a special weapon ? i started over playing as Recon and i want to buy the vsk94 but i believe it won't be available soon, so i want the trader to sell it right away along side some other stuff, so giving me a little tip is very helpfull & i'll be very thankfull,.
Between,...your latest tweaks updates are AWESOME !

Edit :
I just tried your hard quicksave+ spawn menu & trader auto remove, and all of them are AWESOME as always,.

P.S : can you please answer my other post ? :-) ^^^^^

Edited by: mp5lng

--


Due to continuous support we've given you the "Forum Dolphin" title!
- [TZP] LoNer1
Misery : The Armed Zone
Misery's Official website
Misery's Moddb page
Aug 29 2013 Anchor

kcs123 wrote:

Yastiandrie wrote:
E.g Beard only ever sells rusty and worn type weapons. If you come back from a raid hauling 20 odd guns to sell, any of them that aren't classed as rusty or worn get automatically removed from his inventory when you sell them. Same goes for anything else. It also removes things like faction patches, junk, mutant parts, rubles, wet underwear, etc.


That's could be solution. Making Beard to not sell any kind of weapon, just he should be able to buy all crapy weapons from you.
Btw, I'm looking for the way how to make trader to sell you weapons/outfits in 60-80% condition state instead of brand new 100% condition.
Is it possible to tweak those settings in scripts or *.ltx ?

Also thanks for this "Yasti's Main Menu Quick-Hard Save" - it should be included in the next release so you will not have to wory about versions in file :)


It would have to be a script and i'd say its certainly possible. Off the top of my head and some quick half-pseudocode it would look something like this:

if trader zat_a2_barmen then
	iterate_inventory(condition_outift, npc)

function condition_outfit(npc, item)
	if alun_utils.is_outfit(item)
		if item:condition() == 1 then
			item:setcondition(math.random(0.6, 0.8))
	else
		return

mp5lng wrote: kcs123,...
Can you tell me how i can make a trader to sell a special weapon ? i started over playing as Recon and i want to buy the vsk94 but i believe it won't be available soon, so i want the trader to sell it right away along side some other stuff, so giving me a little tip is very helpfull & i'll be very thankfull,.
Between,...your latest tweaks updates are AWESOME !

Edit :
I just tried your hard quicksave+ spawn menu & trader auto remove, and all of them are AWESOME as always,.

P.S : can you please answer my other post ? :-) ^^^^^


gamedata\configs\misc\trade\trade_zat_b30_stalker_trader.ltx --(owl)

under [trade_generic_sell] change the value of wpn_vsk94 so it reads 1, 1

under [supplies_generic] add wpn_vsk94 = 1, 0.66

Edited by: Yastiandrie

mp5lng
mp5lng The Gunsmith
Aug 29 2013 Anchor

Yastiandrie,......
thank you buddy ! I'll try it soon, it doesn't need a new game if i'm right, right ?
Thank you again,.

--


Due to continuous support we've given you the "Forum Dolphin" title!
- [TZP] LoNer1
Misery : The Armed Zone
Misery's Official website
Misery's Moddb page
Aug 29 2013 Anchor

mp5lng wrote: Yastiandrie,......
thank you buddy ! I'll try it soon, it doesn't need a new game if i'm right, right ?
Thank you again,.


No new game required mate

kcs123
kcs123 Just Kcs123
Aug 29 2013 Anchor

@mp5lng , sorry, I'm just come home, couldn't answer earlier, but Yastiandrie did it instead.

Actualy, you do not need to change values under [trade_generic_sell] , all items are already included there.
wpn_vsk94 is at line 1018, all you need to change is that you add line under [supplies_generic] , for easier finding use my easteregg tweak and search for comment:
; ------- KCS add for test purpose -----------
wpn_vsk94 = 1, 0.66 ; - 0,66 is chances how often Owl will have this weapon to sell
wpn_vsk94 = 1, 1 ; if you write numbers like this Owl will always have 1 weapon to sell

Under [trade_generic_sell] section you have to add lines only if they are not already included

Btw, I'm glad that you like my modifications. I did'nt altered it much last time, just provided more info about them.

Edited by: kcs123

--

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.