|
Post by mary on Mar 11, 2021 19:49:47 GMT 10
Excuse me, can you let Chris's chase play Carla's perspective?
|
|
Posts: 10
|
Post by ioory777 on Mar 25, 2021 9:31:40 GMT 10
XFS support was recently added to arctool which makes editing enemies MUCH easier than before, and also makes it possible to edit other XFS files (used as scripts and for a lot of stuff in the game). Use latest version of arctool and add the "-xfs" option to enable conversion of XFS files. It'll create an XML file you can edit. There's also a text file with struct information for the XML, but you'll want to that leave alone unless you really know what you're doing. If you extract s1205soft.arc (mercenaries stage), and look at s1205_em00.lot.xml you'll see an entry for each enemy in that file looking something like this: <classref type="1637199632"> <s32 name="mID" value="0"/> <string name="mInfoClass" value="cSetInfoEm5000"/> <string name="mUnitClass" value="uEm5400"/> <classref name="mpInfo" type="770731279"> <string name="mName" value="Ҍ"/> <u32 name="mOrder" value="4"/> <vector3 name="mPosition" x="4403.687988" y="-250.000000" z="11775.092773"/> <vector3 name="mAngle" x="0.000000" y="3.141593" z="0.000000"/> <vector3 name="mScale" x="1.000000" y="1.000000" z="1.000000"/> <class name="mFSM" type="732046243"> <class name="mData" type="1897090369"> <bool name="mAutoDelete" value="false"/> <classref name="mpArray"/> </class> </class> <vector3 name="mUserPos"/> <array name="mUserS32" type="s32" count="4"> <s32 value="0"/> <s32 value="0"/> <s32 value="0"/> <s32 value="0"/> </array> <array name="mSetInfoFreeS32" type="s32" count="4"> <s32 value="0"/> <s32 value="0"/> <s32 value="0"/> <s32 value="0"/> </array> <array name="mSetInfoFreeF32" type="f32" count="4"> <f32 value="0.000000"/> <f32 value="0.000000"/> <f32 value="0.000000"/> <f32 value="0.000000"/> </array> <bool name="mSetEmStatus" value="false"/> <u32 name="mEmStatus" value="0"/> <bool name="MotionCalcOff" value="false"/> <u32 name="PatternNo" value="0"/> <u32 name="mLife" value="600"/> <bool name="isScrAdjSleep" value="false"/> <bool name="isObjAdjSleep" value="false"/> <bool name="mInAir" value="false"/> <bool name="mNoLimitCheck" value="false"/> <u32 name="mModelType" value="0"/> <u32 name="mMontageNo" value="4"/> <u32 name="mSearchType" value="0"/> <f32 name="mSearchForward" value="2000.000000"/> <f32 name="mSearchCircle" value="190.000000"/> <f32 name="mViewAngle" value="0.000000"/> <f32 name="mViewHigh" value="0.000000"/> <f32 name="mViewLow" value="0.000000"/> <bool name="mbViewHitCheck" value="true"/> <u32 name="mAreaKeepType" value="0"/> <f32 name="mAreaKeepDist" value="0.000000"/> <bool name="mIsFindPL" value="true"/> <bool name="mIsGoto" value="false"/> <bool name="mIsGotoAng" value="false"/> <vector3 name="mGotoPos" x="0.000000" y="0.000000" z="0.000000"/> <vector3 name="mGotoAng" x="0.000000" y="0.000000" z="0.000000"/> <bool name="mIsNoDead" value="false"/> <bool name="mIsNoDropItem" value="false"/> <bool name="mIsForNet" value="true"/> <f32 name="mLookAddCount" value="1.000000"/> <bool name="mIsScrHitOff" value="false"/> <bool name="mbForceMoveFSM" value="false"/> <bool name="mbForceTarget" value="false"/> <bool name="mbLefty" value="false"/> <s32 name="mWeaponId" value="459008"/> <u32 name="mMovePattern" value="0"/> <u32 name="mNpcStatus" value="0"/> <u32 name="mBreakPartsBit" value="0"/> <u32 name="mThinkBit" value="67641344"/> <s32 name="mRSFNo" value="-1"/> <f32 name="mHearingLength" value="1000.000000"/> <f32 name="mHearingHigh" value="0.000000"/> <f32 name="mHearingLow" value="0.000000"/> <f32 name="mFreeParam" value="0.000000"/> <u32 name="mTargetBit" value="0"/> <s32 name="mCoverType" value="0"/> <s32 name="mShellCount" value="-1"/> <f32 name="mAttackRangeL" value="-1.000000"/> <s32 name="mCapNo" value="-1"/> <s32 name="mCoverGroup" value="-1"/> <f32 name="mBombTimer" value="120.000000"/> <s32 name="mStickType" value="-1"/> <s32 name="mBloodType" value="-1"/> <s32 name="mAppearType" value="-1"/> <s32 name="mHelmetType" value="-1"/> <s32 name="mChangeAIAction" value="-1"/> <f32 name="mTurboRunRange" value="-1.000000"/> <s16 name="mBloodLife" value="1200"/> <f32 name="mMotionSpeed" value="0.000000"/> </classref> There's a lot of variables there, but the most important ones are pretty straightforward. "mLife" is the health for the enemy. "mUnitClass" is the actual enemy type (refer to this for a partial list of enemy types: www.fluffyquack.com/RE6/txt/enemies.txt ). "mbLefty" is whether or not the enemy is left handed. "mPosition" is the spawn position for that enemy. "mAngle" is the direction the enemy looks in when spawning. "mScale" is the physical scale of the enemy, so you could make them tiny or large. Some enemy types would have unique variables attached to them, so if you want a different enemy type into a stage where he usually wouldn't exist, you would have to use an XFS from another stage as template (remember to copy over both the TXT and XML files when doing that). Note that because of how shaders work in RE6, certain enemy types will not render correctly in certain stages. If you like the idea of messing with structs, you could even edit the TXT file directly and add new variables to it (that's definitely for advanced users though, and I haven't even messed with it myself, but it should work in theory if edited correctly). It's worth repeating that there are a lot of XFS files in RE6, and they define a lot of various information. I've only looked at a few of them, so I'm sure there's a lot of stuff which is editable which I'm not even aware of. In theory, one could edit the various scripts in stages to remove all the forced walking, camera cuts, and similar. I personally recommend using notepad++ for editing XML files, but any text editor would do.
|
|
Posts: 10
|
Post by ioory777 on Mar 25, 2021 9:31:57 GMT 10
Quantity of enemies and how they spawn is defined in scripts in the FSM folder. It's not something I've really looked into, so I have no idea how difficult it is to change. If you're doing it for mercenaries, note that the kill limit is hardcoded.
|
|
Posts: 10
|
Post by ioory777 on Mar 25, 2021 9:32:28 GMT 10
Im used your tool for RE6 ps3 but it seems not to work since it gives error when decompressing the arc files
|
|
Posts: 33
|
Post by heatboy077 on Nov 16, 2021 12:41:10 GMT 10
  first of all: Thank you so much {Fluffy Quack} Maaan.. you are awesome the best modder i mean my master i learned a lot of stuff from you, you are the best i mean second: can you plz tell us how can we display the codes for re6 in real time i mean every single code that is working in re6 Engine, cuz i want some more codes like change limit of enemy kills or Character's loadout about their ammo and their codes for sounds and more, i am so much grateful to you, man you are my master 💝💝💝💝💝
|
|
|
Post by go98de on Nov 22, 2021 5:01:51 GMT 10
Douglas
|
|
|
Post by lordazrael on Sept 14, 2022 6:46:45 GMT 10
I'm trying to find a way to swap an enemy to an ally NPC Yes, i know that this is possible trought mod manager by sectus, but in my case I want to do that on Resident Evil Revelations 2 Game files are the same so I believe the process is the same But first I need to find the NPC code All the codes I find are referring to the game's enemies... not allies (in RE6 case, would be Leon/Helena, for example - when you play with Leon, Helena will be the NPC) In RErev2 its Moira (and you play with Claire)
|
|
|
Post by 123456dfhj on Oct 9, 2022 20:27:19 GMT 10
can I use cheat engie to change agent hunt player Javos clothes?
|
|
|
Post by lizi2021 on Oct 13, 2022 11:09:00 GMT 10
Add here -xfs
arctool -re6 -texRE6 -alwayscomp -pc -v 7 %1 %2 %3 %4 %5 %6 %7 %8 %9 -xfs
|
|
Posts: 8
|
Post by screion on Nov 2, 2022 10:47:53 GMT 10
Every now and then i come back to work on some files, to understand the logic behind them better. I can say with certainty that these files are not actual scripts but rather call pre-defined code and functions and change their values, much like an API, that the outcome is a literal script to control events. It is likely what is left after you set up a flow graph. I even think some of the values inside are actual leftovers from the editor and how individual elements are placed and colored inside a editors window. What i keep finding are references to something called RSF. I assume these RSF are actual coded scripts specifically written for all kind of situations, but could not find any of them. Unlike lua scripts in the Fox Engine for example RSF remains to be a mystery. But messing with their calls causes complex events to not trigger and effectively halt the games state. What makes this so difficult is the fact that elements point at each other, but without a visual representation from an editor we are limited to engine object IDs that are a widespread use to optimize calls internally when the system runs. Which goes as far as an element inside an array referencing to another element in another array of another file. This ultimately means that we are limited to what we have. And the realization that i cannot ask aynbody for help makes this a really tough one.
|
|
Posts: 8
|
Post by screion on Nov 4, 2022 15:11:53 GMT 10
a couple additions from my analysis:
mIsFindPL sets the awareness of the enemy. If true the enemy spawns and knows immeditately where the PCs are. mTargetBit is an interesting value as it sets the enemies target. This is most likely used to avoid conflicts with pathing when PCs are seperated or to add some variety to combat. A value of 1 makes it ignore Helena and go after Leon. 2 Makes it ignore Leon and go after Helena. mAppearType defines how an enemy spawns. 0 seems to create a pop out animation used on the graveyard. mIsGoto is a simple setting if an enemy after spawn should move to the mGotoPos. mBloodType sets if a zombie turns into a Bloodshot. Where mBloodLife seems to be the second health after it turned. But if the Bloodshot model is not part of the level it will be invisible. mIsNoDead is interesting as it makes gunfire and melee harmless. If set true an enemy will react to gunfire but never die to it. Even crits are ignored. However powerful grapple moves still kill. It is likely intended only to be used on enemies that spawn ouside of the reach of the PC, but could make some interesting difficulty mod for campaign or mercs. mMotionSpeed is a crazy value. It seems to affect certain, but not all animations. If higher than 0 an enemy will simply move faster. This is some absurd Silent Hill horror value and breaks the game.
|
|
Posts: 11
|
Post by kariyajr on Nov 4, 2022 19:19:55 GMT 10
I always love any analysis. XML base scripts have so many possibilities to do. I'll try that silent hill creepy motion. looks fun!
|
|
|
Post by lizi2021 on Nov 7, 2022 19:17:47 GMT 10
What happened when the enemy didn't move
|
|
|
Post by lizi2021 on Nov 7, 2022 19:18:32 GMT 10
Big Brother Niubi
|
|
|
Post by lizi2021 on Nov 7, 2022 19:24:15 GMT 10
The enemy is not action?
|
|