Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archive

The Original Forum. Game archives, full of resources. How to open them? Get help here.
CantStoptheBipBop
advanced
Posts: 53
Joined: Sat Aug 27, 2016 9:43 am
Has thanked: 7 times
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by CantStoptheBipBop »

nasanhak wrote:They itended it to be like that. Problem is Smoke gains 15 points for each trigger when it should have been lower like 5.
That's what I mean though. Surely it would have made more sense for them to have it only trigger once per "stun-lock" loop with a larger value or a lower value multiple times like you're saying. That and I don't get why it would trigger while they're unconscious. It just seems like there was a lot of oversight surrounding when it should apply.
nasanhak wrote:Seriously check the mod files I pointed to on Nexus, it has everything in it. Sure I changed the revenge system a bit but it was very interesting work and will clear everything up for you.
I already know how it works. The "special snowflake" thing was more of just a cheeky comment about the somewhat convoluted way they calculate it compared to the rest. Though I appreciate all the help man. Your notes a page back on the npc guns should come in handy once I start messing with those.
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

nasanhak wrote:Also, just throwing it out there:
1. Know of a way to change existing MB staff data through code? Like changing existing staff params - or changing all staff to female.
2. Any way to change staff faceIds which will have the same effect as above
3. Any way to work with staff headers? vars.mbmStaffSvarsHeaders
Never bothered with those, I other stuff in mind.
nasanhak wrote: 4. Way to activate the chicken head caps?
5. Stealth triggering and maybe stealth not being removed if you bump into someone.

Code: Select all

svars.chickCapEnabled = true
Then restart from checkpoint. This will enable Chick hat, no idea how to turn on Chicken hat.
nasanhak wrote:I can build an all female army using the latter - not the best approach in the world but it works. But there are issues - like most of them having similar names.
Female names pool is quite small, even if you increase it, it will probably make issues with FOB guards.
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

@CantStoptheBipBop
Revenge points and level monitoring code, call the function from TppPlayer.Update. Will allow for real time monitoring based on your/NPC actions.

If the code doesn't work as is, you may have to change 'this.' to 'e.' if your working with vanilla game files. It should work just fine tho.

Code: Select all

this.monitorRevengeTable={
	["STEALTH"]={currentPoints=-1, currentLevel=-1}, --Stealth based stuff - check revengeDefine
	["NIGHT_S"]={currentPoints=-1, currentLevel=-1}, --Night Stealth - leads to NVGs
	["COMBAT"]={currentPoints=-1, currentLevel=-1}, --Combat based stuff - check revengeDefine
	["NIGHT_C"]={currentPoints=-1, currentLevel=-1}, --Night Combat - leads to Flashlights
	["LONG_RANGE"]={currentPoints=-1, currentLevel=-1}, --Snipers
	["VEHICLE"]={currentPoints=-1, currentLevel=-1}, --Missiles
	["HEAD_SHOT"]={currentPoints=-1, currentLevel=-1}, --Helmets
	["TRANQ"]={currentPoints=-1, currentLevel=-1}, --STRONG_NOTICE_TRANQ
	["FULTON"]={currentPoints=-1, currentLevel=-1}, --FULTON_HIGH, FULTON_SPECIAL
	["SMOKE"]={currentPoints=-1, currentLevel=-1}, --Gasmasks
	["M_STEALTH"]={currentPoints=-1, currentLevel=-1}, --Mission S
	["M_COMBAT"]={currentPoints=-1, currentLevel=-1}, --Mission C
}

function this.MonitorRevengePointsEtcEtc()
	
	for revengeTypeCode=0,TppRevenge.REVENGE_TYPE.MAX-1 do
		local revName = TppRevenge.REVENGE_TYPE_NAME[revengeTypeCode+1]
		local pointsForCurRev = gvars.rev_revengePoint[revengeTypeCode]
		local lvlForCurRev = TppRevenge.GetRevengeLv(revengeTypeCode)

		if this.monitorRevengeTable[revName] then
			if this.monitorRevengeTable[revName].currentPoints~=pointsForCurRev or this.monitorRevengeTable[revName].currentLevel~=lvlForCurRev then
				local pointsDelta=pointsForCurRev-this.monitorRevengeTable[revName].currentPoints
				this.monitorRevengeTable[revName].currentPoints=pointsForCurRev
				this.monitorRevengeTable[revName].currentLevel=lvlForCurRev
		    TppUiCommand.AnnounceLogView("RevengeName:"..tostring(revName)..", level:"..tostring(lvlForCurRev)..", points:"..tostring(pointsForCurRev)..", pointsDelta:"..tostring(pointsDelta))
			end
		end
  end
end
CantStoptheBipBop
advanced
Posts: 53
Joined: Sat Aug 27, 2016 9:43 am
Has thanked: 7 times
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by CantStoptheBipBop »

nasanhak wrote:@CantStoptheBipBop
Revenge points and level monitoring code, call the function from TppPlayer.Update. Will allow for real time monitoring based on your/NPC actions.
Sweet, thanks again dude. tbh my code was starting to become a bit too complex for my taste once I went beyond basic, universal, math functions for everything. Since every category would need max levels and points taken into account (so I guess more so a pita than complex). I'll try out your code in a copy and see how it compares. It looks like it should lower my stress levels by a few notches though :]

Edit: btw my workaround for not being able to put more than one table value in TppUiCommand.AnnounceLogViewLangId was what you suggested with AnnounceLogView. Throwing them into a single string might work as well but I haven't tried it yet. I was actually originally editing this to say I found a solution but my mind was playing tricks on me. Also for announcing LangIds: color 9 outputs green text and colors 6/8 output gold. I'm not sure about red or any others. I didn't see it mentioned anywhere so just doing so here.

Code: Select all

function rvngCalcRan()
[...]
e.rHsLv=e.GetRevengeLv(e.REVENGE_TYPE.HEAD_SHOT)
e.rHsPt=e.GetRevengePoint(e.REVENGE_TYPE.HEAD_SHOT)
rCurrentResponseLvPt(e.rHsPt,"Headshot",e.rHsLv,"rvng_type_name_hs")
[...]
ToolRanCheckRevenge=ToolRanCheckRevenge+1
end

function rCurrentResponseLvPt(catPt,catName,catLvl,catLangName)
local n
e.n=catPt
if e.n<=100 then e.n=100
else
e.n=e.n/100
e.n=math.floor(e.n)+1
e.n=e.n*100
end
if catPt==e.n-1 then
e.n=catLvl+1
TppUiCommand.AnnounceLogViewLangId("announce_rvng_lvl_max",catLangName,e.n)
else
e.n=("["..catName.." Response]: ".."lvl "..catLvl.." ("..catPt.."/"..e.n..")")
TppUiCommand.AnnounceLogView(e.n)
end
end
Some obvious limitations with it, of course.
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

unknown123 wrote: Then restart from checkpoint. This will enable Chick hat, no idea how to turn on Chicken hat.
Had figured it out before you posted :)

Code: Select all

First:
GameConfig.SetStealthAssistEnabled(true)

Followed by either:
TppPlayer.SetRetryFlag() --Normal chicken hat, yes contrary to what you'd think it's for :) - The give away was finally GameConfig.GetStealthAssistEnabled()
OR
TppPlayer.SetRetryFlagWithChickCap() --Lil' Chicken Hat this is it :)
When set at the right point during loading:
http://imgur.com/a/bqomg
unknown123 wrote: Female names pool is quite small, even if you increase it, it will probably make issues with FOB guards.
Well yeah, I was thinking that was it. Will test some more and get back to you.
Ashtails
beginner
Posts: 36
Joined: Sun Sep 20, 2015 8:57 pm

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Ashtails »

Would it be possible to replace the model of the chicken hat with one of the MGO hats? Like a crocodile cap to make it feel like snake eater?
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

Ashtails wrote:Would it be possible to replace the model of the chicken hat with one of the MGO hats? Like a crocodile cap to make it feel like snake eater?
It is possible, but there are issues.
First one: http://i.imgur.com/7FDyzQJ.png - hat will be rendered at your feet without proper textures. Probably solved by packing textures along with hat and editing model. (missing head is not related).
Second - Chicken hat (with big eyes) disappears after 3 alerts, so it leaves us with chick hat.
Third - you will be in chick-mode.
Tex
veteran
Posts: 89
Joined: Sat Aug 20, 2011 4:51 am
Has thanked: 21 times
Been thanked: 11 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Tex »

nasanhak wrote:

Code: Select all

Also order of records in these files seems to be strict meaning you can't insert the same number of records at the beginning or in the middle in both the Const and Flow files and expect it to work. The dev pages/chains break. Anything new has to go at the end.
How badly does it break things? Does reverting the order fix it again? I'm wondering, as unknown123 did, what might happen if Konami adds stuff.
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

Tex wrote:How badly does it break things? Does reverting the order fix it again? I'm wondering, as unknown123 did, what might happen if Konami adds stuff.
Missing weapons. Try adding a new weapon at the beginning of the file, it will either remove first weapon (wu pistol I think), or remove all weapons from development table completely. It doesn't affect your saves in any way, so reverting weapon tables back will fix everything.

As for new stuff - if new weapons' ids overlap with ours, then new weapons will be already developed locally. But server will be saying otherwise, so.. The only way to see what happens is to wait for new weapons with ids >= 900.
Tex
veteran
Posts: 89
Joined: Sat Aug 20, 2011 4:51 am
Has thanked: 21 times
Been thanked: 11 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Tex »

unknown123 wrote: so.. The only way to see what happens is to wait for new weapons with ids >= 900.
Given that the p00 ids in DevelopConst start at 1000 and increase it would seem to be less of an issue for entries added as they have been so far, but just brings the question why kjp started at 1000 and that your 900/901 isn't trampling on anything we can't see.

I also notice p50 in develop flow is sequential for entries, your dummies are at 0, I guess it's ok with that.
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

Tex wrote: I also notice p50 in develop flow is sequential for entries, your dummies are at 0, I guess it's ok with that.
p50 seems to be non important- just a numerical index for the number of rows in the file.

p00 Ids started at 1000 with the need to separate weapon groups and keep things maintainable. If the p00 is 3005 then you immediately know it's an assault rifle. That kind of thing.

We can wait for an update that adds more outfits/guns whatever and then try to append in more entries with those same p00 Ids and see what happens. But as unknown123 already knows, connecting to the servers downloads some files and client files are overwritten. So it may not lead anywhere.

Actually, it's not the files but rather the commands. The server calls the same function call again most likely, fixing any tampering from the player's end. Still doesn't explain why not all GMP costs go back to vanilla values, and resource values are never updated at all.
After connecting to the sever and having the costs updated correctly, I tried reloading the modules EquipDevelopConstSetting and EquipDevelopFlowSetting in between the game loads but did not find any change in deployment costs etc. Maybe I did it wrong.

Also, breaking the Const and Flow files and hence the dev trees/tabs/sortie menus doesn't mess up the save game, coz the game stores what weapons are developed by their id into the save file. So yeah, adding in new ids is likely messing with the save file. But I'd say it's a table based approach else the save file wouldn't work after additional weapons are removed - altho the save file size almost never changes. Probably hasn't changed since the game's release.
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

nasanhak wrote: Actually, it's not the files but rather the commands. The server calls the same function call again most likely, fixing any tampering from the player's end. Still doesn't explain why not all GMP costs go back to vanilla values, and resource values are never updated at all.
I'd say it is all about priorities: table with server values has more priority than local one. But why do you need to change values? I believe there are server checks, so developing a weapon with modified cost (lets say 1 online GMP) will still drain the regular amount of GMP (100 online GMP).

Command is called only once per game session - remember when Mirazh had low cost to deploy? Online message for patch that fixed deployment price said that you need to restart the game - so it is invoked somewhere between 'Connected to server' and title screen. Probably it is one of those - https://github.com/unknown321/mgsvdump/ ... anager.lua , or maybe something from TppNetworkUtil.lua.

Also there is a non-lua check function on FOBs that checks your equipment (CheckPlayerEquipmentServerItemCorrect) so allowing player who uses your mod to equip items not available for develompent may result in ban (if he equips it during online mission). I don't use my dummy slots on FOBs since I am not sure what exactly konami gets on their end and neither should you.
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

unknown123 wrote: I'd say it is all about priorities: table with server values has more priority than local one
That explains a lot, like why the online item GMP costs cannot be reduced to 0 even when you start the game offline. There is another offline table maintaining something somewhere.
unknown123 wrote: But why do you need to change values?
Only want to turn down GMP costs for online items to reasonable levels as I play offline mostly. Resources can be turned down to 0 but not GMP for some reason. Example - the Womhole Mine will have some 30K GMP cost even when u start the game offline and have the cost set to 0.
unknown123 wrote: I believe there are server checks, so developing a weapon with modified cost (lets say 1 online GMP) will still drain the regular amount of GMP (100 online GMP).
Yeah no way to turn down online item dev costs. But you can develop all online items through code but they reset on connecting to the servers(id you haven't developed them online yet that is).
unknown123 wrote:so it is invoked somewhere between 'Connected to server' and title screen. Probably it is one of those - TppServerManager.lua , or maybe something from TppNetworkUtil.lua.
It is invoked whenever you connect to the servers the very first time. I skip the connect during bootup and connect manually through the menus. Am pretty sure it's not a function in TppServerManager or TppNetworkUtil but something else that is called through them somewhere.

Also connecting online or going to FOBs loads new lua objects into memory. I ran an FOB inspect and found this to be true. I did it with my modded game so I'll do a vanilla dump soon.
unknown123 wrote: Also there is a non-lua check function on FOBs that checks your equipment (CheckPlayerEquipmentServerItemCorrect) so allowing player who uses your mod to equip items not available for develompent may result in ban (if he equips it during online mission). I don't use my dummy slots on FOBs since I am not sure what exactly konami gets on their end and neither should you.
Found this myself a few days ago, don't know what is checked for but I avoid playing modded on FOBs, unless I wanna try something like failed UAV testing.

Speaking of which, how's that going tex? Expecting something from you soon!
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

Can any good soul here (@morbidslinky maybe :D) please give me a tutorial on texture modding.

Let's say I want to edit the Sneaking Suit textures for Snake.
1. I extract plparts_venom.pftxs using GzsTool.
2. I go into the unpacked 'plparts_venom_pftxs' folder and check every ftexs file and then go into texture0 and find every single 2,3 ftexs file??! Oh my god! This is slow and painful as all hell.
3. Okay okay, after 30 minutes and using SearchEverything I managed to get all the 2,3 suffixed ftexs files I need and placed them on correct paths under the 'plparts_venom_pftxs' folder so that FtexTool does not give any errors.
4. I edit the DDS texture and save it.

Now come the part I need help with. I can now use the DDS file to create either 1 ftexs or the original number. So which approach do I use.

Q1: For example if I create only 1 ftexs, then I can repack it into the pftxs, add the pftxs to 00.dat and will that be enough to apply my texture edits? Will the existing textures in texture0 not cause conflicts?

@morbidslinky, I can see your black retuxture for Snake contains mostly 1 ftexs and only 2,3 for one particular texture so I assume you used the above route. But doesn't this approach remove mip-maps? Isn't that like a bad thing for visual fidelity?

Q2: If I create the original number of ftexs (let's say 3), then again I pack the 1st one into the pftxs, place the pftxs into 00.dat, and then place the 2,3 pftxs into 01.dat. Is this the correct way to do it?

@morbidslinky, When using this approach, mip-maps are present I guess and I can see the texture "fade" back to the original one in the sortie screen as I move the camera closer to Snake. What am I doing wrong then?

Q3: I read on one of the previous pages that the 1,2,3 ftexs can be directly placed into 00.dat provided the pftxs is empty. Can anybody explain this correclty. How do i create an empty pftxs file? Would a renamed blank text file be enough or should I remove all entries from the xml and repack an empty file that way? Does the file not have a shit tonne of textures for other stuff like effects etc etc as well? Where do those go?
viewtopic.php?f=10&t=12407&p=111921&hil ... ar#p111921
atvaark wrote:The pftxs part can probably be skipped if you replace the pftxs archive with an empty one and add them to 00.dat.
If you guys can help clear this up, I promise I'll document this for future reference! Even make a video on it!

I would tell you what I am trying to do and which textures I am getting at but since nobody has done it till now, I'm going to be a bit selfish.
Tex
veteran
Posts: 89
Joined: Sat Aug 20, 2011 4:51 am
Has thanked: 21 times
Been thanked: 11 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Tex »

nasanhak wrote:p50 seems to be non important- just a numerical index for the number of rows in the file.
Well with p50 set to 0 it doesn't show in the development tab for the item type. Only in the Development requirements met tab.
With it set to the next sequential it doesn't show in the dev-met tab but does show in its item tab. (but then that would conflict on any additions)
Post Reply