Jump to content

Unofficial XML Fixes


Clockwork Orange

Recommended Posts

They just need to completely rework the whole wedges / slope / ramp thing there are too many different "shapes" that are the same shape but use different ways to achieve it and different rotation schemes.

 

They could easily free up a few block ID's in doing this too I think.

 

They did fix the cobblestone ramp ---> cobblestone wedge upgrade but they didn't finish fixing it when it came to upgrading it to concrete.

 

So I had to remove the ramps entirely and change the wedges to match the concrete.

 

The lazy way for TFP to fix this is to simply go in and make sure all the rotation schemes are in the same order so they all match.

Link to comment
Share on other sites

7 Day feral horde Spawning issue:

 

I have a theory on how to fix the spawning of 7 day hordes that needs to be tested.

 

Based off of this information given by Doctor3D:

 

("As far as I'm aware the day value is required for it to work properly. The day value is a rule the game looks for - it won't do anything if it doesn't find an answer to the rule.

 

I've messed around a lot with the spawning system in this game over the past year or two. From my experience, what I believe happens after day 49 is the game properly wraps back to the base numerical 7 for days. In this case, day 56 is when the game SHOULD read the <day value="7"> instead of <day value="*"> -

 

But the game at this point is no longer looking for a specific value - it's not looking for '56' in the rule. It's looking for a numerical continuation based on the 'reset today' time and based on the point at which that was executed.

 

This is where things get out of sync. When this was originally put in the game - the game ran at I think 40 minute days by default (iirc).

 

You start the game Day 1 7:00 and finish Day 49 at 'random time finished' - This is the problem. The game 'resets today' but you finish the horde on day 50 at a random time based on how fast the horde died. It's not until the console reads (paraphrasing) "NightHorde Finished All Waves Spawned")

 

I am thinking that since the horde is 300 zombies large that it will continue to spawn into the next day thus getting out of sync, so therefor I am thinking that if you set the horde <property name="TotalAlive" value="100" /> to the same value as set to the <property name="TotalPerWave" value="100" />

 

That way when the horde spawns it spawns all of the zombies and as soon as it finishes spawning all of the zombies for that horde it will trigger "NightHorde Finished All Waves Spawned" and that way it will not go out of sync.

 

I have updated the spawning file to use the vanilla spawning file with these changes:

 

<entityspawner name="NightHorde" dynamic="true" wrapMode="wrap"> <!-- these are feral hordes who will find the player for sure -->
	<day value="*">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesNight" />
		<property name="DelayBetweenSpawns" value="1" />
		<property name="TotalAlive"         value="0" />
		<property name="TotalPerWave"       value="0" />
	</day>
	<day value="7">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="50" />
		<property name="TotalPerWave"       value="50" />[/color]
	</day>		
	<day value="14">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="75" />
		<property name="TotalPerWave"       value="75" />[/color]
	</day>
	<day value="21">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesWastelandNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="75" />
		<property name="TotalPerWave"       value="75" />[/color]
	</day>	
	<day value="28">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesWastelandNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="75" />
		<property name="TotalPerWave"       value="75" />[/color]
	</day>
	<day value="35">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesWastelandNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="80" />
		<property name="TotalPerWave"       value="80" />[/color]
	</day>
	<day value="42">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesWastelandNight" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="80" />
		<property name="TotalPerWave"       value="80" />[/color]
	</day>
	<day value="49">
		<property name="ResetToday"         value="true" />
		<property name="EntityGroupName"    value="ZombiesWastelandNight2" />
		<property name="DelayBetweenSpawns" value="1" />
		[color="#FFFF00"]<property name="TotalAlive"         value="85" />
		<property name="TotalPerWave"       value="85" />[/color]
	</day>														
</entityspawner>

 

i set them to be lower than 100 for now just to test it since some servers have there max zombie count set to 100.

Link to comment
Share on other sites

You should contact Chaosocks about this spawning stuff.

 

Ok I will send him a message, I would test this myself but I just dont have the time and I have someone with a server that has contacted me saying he can test some files for a bit.

 

I have already made a version that is working 100% but it is an extended version that extends the days up to 511 and every day after 511 you get small 20 zombie feral horde.

 

But for now I need to test to see if I can get the wrap mode working so that it stays in sync and I am pretty confident that with this new idea it will work, the only problem is horde size will have to suffer due to server settings.

 

Plus having 300 zombies funnel in 30 at a time is much different then having 50 zombies spawning all at once so it will need even more testing to not make them too small but not make them too large either.

 

But yeah i will see if Chaosocks has anything to add. Thanks Valmar.

Link to comment
Share on other sites

Anyone have an issue were in game sound will stop working? IE when you open a box or other things to search?

 

The latest update has screwed up some sound stuff like the airplane and the menu music so I would not doubt it that there are others like the one you are describing. However if you simply restart your game it should fix that issue. I myself have not yet experienced this issue though.

Link to comment
Share on other sites

Damage value listed twice for <block id="704" name="reinforcedMetalTrunkPineTip">

 

<block id="704" name="reinforcedMetalTrunkPineTip">

<property name="Class" value="Damage" />

<property name="Damage" value="7" />

<property name="Damage_received" value="15" />

<property name="Material" value="metal" />

<property name="Shape" value="Cone" />

<property name="Texture" value="380" />

<property name="Damage" value="5" />

<property name="IsTerrainDecoration" value="true" />

 

 

<property name="Damage" value="5" /> is correct as upgradeblock <block id="1432" name="scrapIronSpike"> has Damage 6. Probably has no effect as the second Damage is likely the one applied.

 

Thx.

Link to comment
Share on other sites

Update (1/10/16)

 

+BLocks

 

<block id="704" name="reinforcedMetalTrunkPineTip"> Fixed removed duplicate <property name="Damage" value="7" /> property

 

 

+Spawning

 

Fixed 7 day feral hordes, I have simply extended the horde code to go up to day 756 and uses the vanilla horde sizes and spawning meathod of 30 zombies at a time.

 

Each 7 day horde will alternate between ZombiesWastelandNight and ZombiesWastelandNight2

 

This does not wrap and instead it will spawn a horde every 7 days up until day 756 then on day 757 you will get a nightly horde that spawns every night that is currently set to 50 and they all spawn at once this number can be adjusted and the days can always be further extended.

Link to comment
Share on other sites

Why not just put your changelog in the git commit message? That is what it is there for, after all.

 

Its easier for me to go and change things and add things in google docs, that way I can push an update and work on adding the changes to the changelog later. Plus I have stuff that I am still adding to the changelog currently that is already been fixed.

 

You dont even understand the sheer amount of stuff i have had to fix.

 

Plus I do want as much information as I can squeeze in on the main page as well. :)

Link to comment
Share on other sites

Need Weight Fix

 

<block id="389" name="ladderMetal">

<property name="Class" value="Ladder" />

<property name="Material" value="metal" />

<property name="Shape" value="BillboardSingleOnWall" />

<property name="Mesh" value="cutout" />

<property name="Texture" value="313" />

<property name="Place" value="Torch" />

<drop event="Destroy" name="scrapIron" count="1,2" prob="1" />

<property name="Group" value="Building" />

<property class="RepairItems">

<property name="forgedIron" value="3" />

</property>

</block>

 

 

 

<block id="385" name="metalTrussing">

<property name="Material" value="metal_medium" />

<property name="Shape" value="CubeCutoutBackFaces" />

<property name="Mesh" value="cutout" />

<property name="Texture" value="310" />

<property name="Collide" value="movement,rocket,melee" />

<property class="RepairItems">

<property name="forgedIron" value="5" />

</property>

<drop event="Destroy" name="scrapIron" count="1,2" prob="1" />

<drop event="Fall" name="scrapMetalPile" count="1" prob="1.0" stick_chance=".75" />

<property name="Group" value="Building" />

</block>

 

I suggest putting <property name="Weight" value="16" />

 

Players Can exploit each ladder & metalTrussing would give 100 units in the forge.

 

<block id="907" name="painting02">

<property name="Material" value="glass" />

<property name="Shape" value="Plate" />

<property name="Texture" value="336,335,335,335,335,335" />

<property name="CanPickup" value="true" />

<drop event="Destroy" name="brokenGlass" count="1,2" />

</block>

 

<block id="277" name="painting01">

<property name="Material" value="glass" />

<property name="Shape" value="Plate" />

<property name="Texture" value="334,335,335,335,335,335" />

<property name="CanPickup" value="true" />

<drop event="Destroy" name="brokenGlass" count="1,2" />

<property name="CanMobsSpawnOn" value="false" />

</block>

 

Being broke they give 5 weight in the forge has broken glass

 

In the forge as a Painting Block they give 100....

 

I suggest <property name="Weight" value="5" />

If this was fixed i am sorry Just thought i would point it out to avoid exploit of infinite Ressources

Link to comment
Share on other sites

Update (1/10/16)

 

+Blocks

 

metalTrussing Added <property name="Weight" value="16" /> to fix infinite scrap exploit

 

ladderMetal Added <property name="Weight" value="16" /> to fix infinite scrap exploit

 

+Items

 

forgedIron Added <property name="Weight" value="10" />

 

shortmetalpipe Added <property name="Weight" value="5" /> to fix infinite scrap exploit

Link to comment
Share on other sites

Thanks for posting GMLCrafTing, let me know if you find anything else. There are probably a lot of exploit stuff with the forge still, due to weight values of things. Soon as you mentioned the trussing and the ladders it made me think to check the forged iron and short metal pipes, before I just made this fix, you could cook 1 short metal pipe and get 10 unit iron then make 1 forged iron then craft 2 short metal pipe with 1 forged iron. rinse repeat.

Link to comment
Share on other sites

Update (1/11/16)

 

+Blocks

 

<block id="277" name="painting01"> Fixed changed <property name="Weight" value="10" /> ---> from 100

 

<block id="907" name="painting02"> Fixed changed <property name="Weight" value="10" /> ---> from 100

 

Sorry I missed this the other day, paintings have the chance of dropping 1-2 broken glass per painting so I went with a full painting being = to 2 broken glass in weight.

Link to comment
Share on other sites

 

Fixed 7 day feral hordes, I have simply extended the horde code to go up to day 756 and uses the vanilla horde sizes and spawning meathod of 30 zombies at a time.

 

Each 7 day horde will alternate between ZombiesWastelandNight and ZombiesWastelandNight2

 

This does not wrap and instead it will spawn a horde every 7 days up until day 756 then on day 757 you will get a nightly horde that spawns every night that is currently set to 50 and they all spawn at once this number can be adjusted and the days can always be further extended.

 

Regarding the Hordes and the day getting out of sync you mentioned earlier. Don't know if it helps at all (very new to this), but something I've noticed, regardless of whether a horde spawns or not on a 7th night, the moon is still red, yet isn't on the other nights.

 

I altered my spawning.xml to increase zombies, I also added a few extra 7th nights that weren't on actual 7th nights (we didn't want to wait to test our defenses) and noticed that while the 7th night hordes turned up on these nights, the moon wasn't red.

 

I've got our days set to 120 and we are currently on night 98, a 7th night hence we have a red moon.

 

My point being, something in the game correctly works out when a 7th night is, regardless of how many days has passed, and turns the moon red. If that same trigger could be used to kick off a 7th night hoard, the spawning will be fixed?

 

Thinking out loud here, I could of course be talking crap (wont be the first time)

Link to comment
Share on other sites

Yeah the blood moon is cyclical and will come around every 7 days no matter what, however the horde system is set to spawn a large amount of zombies (up to 300) and they do not spawn all at once and there is a trigger in the game that resets the horde for the next 7 days once all zombies get spawned.

 

The main issue is that if that trigger is not met because someone does not kill the horde fast enough or if they simply run away, then the horde does not reset on the proper day if at all.

 

Also the wrap code is not functioning correctly for whatever reason so the only way to fix the hordes is to extend the days like I have done in this fix, I have been testing the wrap method trying to get the hordes to work properly but something is not working with the wrap.

 

They definitely need to change how hordes reset and how they get triggered. doing it in a cyclical method like you have mentioned I think would work a lot better. They need some way to reset and be triggered regardless of other zombies or hordes that may or may not be present, if too many zombies are clogging up the system and causing lag then there simply needs to be a way for spawning hordes to simultaneously despawn any necessary zombies in order to do so.

Link to comment
Share on other sites

hello, i don't quite understand where i see the differences when i use the CoreFilling XMLDiff.... the red is what? and the green is what? thx ! :)

 

https://www.corefiling.com/opensource/xmldiff.html

 

Depends on what file you loaded first, for eg, if you loaded the original file as the first file and then loaded my new fixed file as the second file you will see for eg this.

 

<block id='16' name='gravel'>
     <property name='Material' value='gravel' />
     <property name='Shape' value='Terrain' />
     <property name='Mesh' value='terrain' />
     <property name='Texture' value='11' />
[color="#FF0000"]-     <property name='Weight' value='100' />[/color]
[color="#006400"]+     <property name='Weight' value='20' />[/color]
     <property name='DropScale' value='2' />
     <property name='Group' value='Resources' />
     <property name='Map.Color' value='158,139,124' />
     <drop count='1' event='Fall' name='gravel' prob='1.0' stick_chance='.25' />
   </block>

 

The red is showing you what is in the original file, in this case it is showing us that the weight value is 100, the green is showing you what is in the new fixed file in this case weight value 20.

 

So you can easily see that I have changed the weight from 100 to 20.

 

Another example is that you will see something like this.

 

<block id='151' name='solidWoodFrameWedge60'>
     <property name='Extends' value='woodFrameWedge60' />
[color="#006400"]+     <property class='RepairItems'>
+       <property name='wood' value='10' />
+     </property>[/color]
     <property name='CanPickup' value='false' />
   </block>

 

In this example you only see green simply because this is something that was added by me since it was missing in the original file and you do not see any red.

 

In this example below you will see that woodDebris was changed to scrapIron.

 

<block id='155' name='scrapIronFrameWedge60'>
     <property name='DescriptionKey' value='scrapFrameGroupDesc' />
     <property name='Material' value='metal' />
     <property name='Shape' value='Wedged60Full' />
     <property name='Mesh' value='cutout' />
     <property name='Texture' value='357' />
     <property name='Collide' value='movement,rocket,melee' />
     <property name='FuelValue' value='100' />
     <property name='CanPickup' value='true' />
     <drop count='1,2' event='Destroy' name='scrapIron' prob='1' />
     <property name='CanMobsSpawnOn' value='false' />
[color="#FF0000"]-     <drop count='1' event='Fall' name='woodDebris' prob='1.0' stick_chance='.75' />[/color]
[color="#006400"]+     <drop count='1' event='Fall' name='scrapIron' prob='1.0' stick_chance='.75' />[/color]
     <property class='UpgradeBlock'>
       <property name='ToBlock' value='scrapIronWedge60' />
       <property name='Item' value='scrapIron' />
       <property name='ItemCount' value='10' />
       <property name='UpgradeHitCount' value='4' />
     </property>
     <property class='RepairItems'>
       <property name='scrapIron' value='10' />
     </property>
     <property name='Group' value='Building,Basics' />
   </block>

 

And now for something a bit more tricky: Below you will see the red and the green shows the name of the block as something almost similar but something has to be different otherwise it would not show you a color difference, this is an example of a simple spelling fix where you will see that I have removed the "e" in solide, and then you see more green below from me adding the repair value that did not exist in the original file.

 

[color="#FF0000"]-   <block id='156' name='solidescrapIronFrameWedge60'>[/color]
[color="#006400"]+   <block id='156' name='solidscrapIronFrameWedge60'>[/color]
     <property name='Extends' value='scrapIronFrameWedge60' />
[color="#006400"]+     <property class='RepairItems'>
+       <property name='scrapIron' value='10' />
+     </property>[/color]
       <property name='CanPickup' value='false' />
   </block>

 

Last example is this: Where in which you only see something in red, in this case I have simply removed something that should not belong and have not added anything new to it.

 

<block id='162' name='reinforcedConcreteWedge60Broke03'>
     <property name='Material' value='concrete_reinforced' />
     <property name='Shape' value='Wedged60Full' />
     <property name='Texture' value='406' />
     <property class='UpgradeBlock'>
       <property name='ToBlock' value='reinforcedConcreteWedge60Broke02' />
       <property name='Item' value='concreteMix' />
       <property name='ItemCount' value='10' />
       <property name='UpgradeHitCount' value='4' />
     </property>
[color="#FF0000"]-     <property name='DowngradeBlock' value='reinforcedConcreteWedge60Broke03' />[/color]
     <drop count='0' event='Destroy' name='destroyedStone' />
     <property name='CanMobsSpawnOn' value='false' />
     <drop count='1' event='Fall' name='destroyedStone' prob='1.0' stick_chance='.75' />
     <property class='RepairItems'>
       <property name='concreteMix' value='2' />
     </property>
   </block>

 

It is important to note that you pay attention to the + and - symbols on the far left hand side to show you that something has been added or something has been removed.

Link to comment
Share on other sites

So I've been writing a library to load, modify, and regenerate the XML files (starting with blocks.xml specifically, since my main use case is to fix forge/repair/upgrade balance). (It also pretty-prints them!) Right now I'm working on a graphical app to let you bulk edit blocks. Since implementing extending blocks, I've found the following duplicate properties. I'm not sure if you already have any of these included, but here's the diff:

 

@@ -89,7 +89,6 @@
    <property name="Texture" value="6,6,6,6,6,6" />
  </block>
  <block id="10" name="clay">
-    <property name="DropScale" value="2" />
    <property name="Extends" value="dirt" />
    <property name="Texture" value="301" />
    <drop event="Destroy" count="10" name="clayLump" />
@@ -1793,7 +1792,6 @@
  </block>
  <block id="283" name="panelingBurntWedge">
    <property name="Extends" value="woodRamp" />
-    <property name="Material" value="wood" />
    <property name="Texture" value="303" />
  </block>
  <block id="284" name="cabinWoodShakes60">
@@ -5464,7 +5462,6 @@
  </block>
  <block id="718" name="WedgedCornerFullOldWood">
    <property name="Extends" value="woodOutsideCorner" />
-    <property name="Texture" value="241" />
  </block>
  <block id="719" name="WedgedInnerFullDrywall">
    <property name="Extends" value="woodInsideCorner" />
@@ -5483,7 +5480,6 @@
    <property name="Texture" value="217" />
  </block>
  <block id="722" name="dropCeiling2RoofAsphalt">
-    <property name="CanMobsSpawnOn" value="false" />
    <property name="Extends" value="concrete" />
    <property name="Texture" value="10,391,10,10,10,10" />
  </block>
@@ -5760,7 +5756,6 @@
    <drop event="Fall" count="1" name="destroyedStone" stick_chance="0.75" />
  </block>
  <block id="779" name="concreteBlock">
-    <property name="CanMobsSpawnOn" value="false" />
    <property name="Extends" value="concrete" />
    <property name="Texture" value="8,8,12,12,12,12" />
  </block>
@@ -5847,7 +5842,6 @@
  </block>
  <block id="791" name="wedgeOldWoodShinglesOld">
    <property name="Extends" value="woodRamp" />
-    <property name="Shape" value="Wedged" />
    <property name="Texture" value="192,241,241,241,241,241" />
  </block>
  <block id="792" name="wedgeAwning1">
@@ -5992,14 +5986,10 @@
  <block id="819" name="bridgeConcrete">
    <property name="Extends" value="concrete" />
    <property name="Material" value="bridge_concrete" />
-    <property class="RepairItems">
-      <property name="concreteMix" value="10" />
-    </property>
  </block>
  <block id="820" name="bridgeOldWood">
    <property name="Extends" value="oldWood" />
    <property name="Material" value="bridge_wood" />
-    <property name="Texture" value="241" />
  </block>
  <block id="821" name="concreteTrimTanDrywall">
    <property name="Extends" value="concrete" />
@@ -6910,12 +6900,10 @@
    <drop event="Destroy" count="0" />
  </block>
  <block id="978" name="roofAsphalt">
-    <property name="CanMobsSpawnOn" value="false" />
    <property name="Extends" value="concrete" />
    <property name="Texture" value="10" />
  </block>
  <block id="979" name="dropCeilingRoofAsphalt">
-    <property name="CanMobsSpawnOn" value="false" />
    <property name="Extends" value="concrete" />
    <property name="Texture" value="10,342,10,10,10,10" />
  </block>
@@ -7166,7 +7154,6 @@
  </block>
  <block id="1035" name="wedge60EndShinglesAsphaltYellow">
    <property name="Extends" value="woodWedge60" />
-    <property name="Shape" value="Wedged60Full" />
    <property name="Texture" value="229,54,53,53,53,53" />
  </block>
  <block id="1036" name="wedge60EndShinglesAsphaltTan">
@@ -7183,16 +7170,12 @@
  </block>
  <block id="1039" name="asphaltSlope">
    <property name="Extends" value="concreteSlope" />
-    <property name="Material" value="concrete" />
-    <property name="Shape" value="Wedged" />
    <property name="Texture" value="10,10,10,10,10,10" />
    <drop event="Destroy" count="1" name="destroyedStone" />
    <drop event="Fall" count="1" name="destroyedStone" stick_chance="0.75" />
  </block>
  <block id="1040" name="gravelSlope">
    <property name="Extends" value="concreteSlope" />
-    <property name="Material" value="concrete" />
-    <property name="Shape" value="Wedged" />
    <property name="Texture" value="11,11,11,11,11,11" />
    <drop event="Destroy" count="1" name="destroyedStone" />
    <drop event="Fall" count="1" name="destroyedStone" stick_chance="0.75" />
@@ -7291,7 +7274,6 @@
  </block>
  <block id="1056" name="insideCornerWedgeOldWood">
    <property name="Extends" value="woodInsideCorner" />
-    <property name="Texture" value="241" />
  </block>
  <block id="1057" name="gableFlagstone">
    <property name="CanMobsSpawnOn" value="false" />

Link to comment
Share on other sites

To be honest I am a little scared to remove duplicate code form extended blocks until the next update due to the fact that the extend value may or may not be extending everything properly. For eg, the repair values do not get extended so you can not remove them from the extended blocks. I know that this has been fixed for the next update so I will definitely be making sure to clean up the code as best as possible after that is released.

 

This may also be the case for <property name="CanMobsSpawnOn" value="false" /> since I have not added those to the extended blocks those were added by TFP.

 

And so I would suggest leaving the <property name="DropScale" value="2" /> and <property name="Texture" value="241" /> etc. as well just to be on the safe side. Unless its a duplicate copy and paste happening within the exact same block (Which I think I have removed all of those.) I would leave it as it is at least until the next update and we can see if the extended property is fully extending everything.

Link to comment
Share on other sites

https://www.corefiling.com/opensource/xmldiff.html

 

Depends on what file you loaded first, for eg, if you loaded the original file as the first file and then loaded my new fixed file as the second file you will see for eg this.

[...]

It is important to note that you pay attention to the + and - symbols on the far left hand side to show you that something has been added or something has been removed.

 

Thanks very helpful I understand this clearly now :) !

Link to comment
Share on other sites

I was playing earlier when I noticed that Goggles (item ID 409) lack any kind of insulation; I get that shades are cooling, and aviators do nothing for temperature, but I expected the the Ski Goggles (that's what they look like to me) to provide some protection from the cold, but they do not. It's far from a broken feature, but it does seem like an omission to me.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...