Jump to content

Bag drop mod


Deccypher

Recommended Posts

I'll take a crack at this later tonight. I'm keen to get this one working. I'm going to roll back to vanilla, then add the five blocks only and see if that throws an error. Assuming that is fine, I'm then going to change just one zombie in entityclasses (zombieBoe) to drop just one of those new blocks and set it to loot item 15. Just that one zombie. I'll then hunt zombieBoe like a man posessed (pun intended) and see if I can get that to work. If I can, I'll then expand technique to other zombies one at a time. Process of elimination - I hope to work this one out soon enough.

 

I want this THAT bad. :)

 

Edit: So - the problem is definately the model:

 

<property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/>

 

I can make backpacks and purses drop - and I can loot them - but I can't use the above corpse model when they fall. Small thing really - I'm happy for them to all turn into purses.

 

Real life will stop me from finishing this tonight, but I wanted to say that the model referenced in BLOCKS.XML is causing the problem. If anyone is brave, they can change the five model lines to look the same as the purse block and see if that works. I'll work on a more robust solution tomorrow.

Link to comment
Share on other sites

So I have a working solution that is based off Deccyphers mod but ISNT his mod. I have play tested everything except feral and snow zombies.

 

I'd like to share this with the community but I want to give Dec and his helpers credit. I'll even give Dec the xml so he can update the first post, but I've noticed he hasn't replied in a while (a few days in rl means forever in game terms lol).

 

I guess I'll give him some time to catch up and see what he thinks.

Link to comment
Share on other sites

Work around for those that are keen:

 

In entityclasses.xml:

 

Look inside all the zombie entities. You should find 9 different zombie entries:

 

<entity_class name="zombie01" >

<entity_class name="zombieferal" extends="zombie01">

<entity_class name="zombieArlene" extends="zombie01">

...

...

etc

 

For each of the 9 entries, you need to edit - or add, the "corpseblock" value but different zombies will have different values. Add or set these values (note that zombie01 has a "TimeStayAfterDeath" value):

 

 

 

<entity_class name="zombie01" >

<property name="CorpseBlock" value="cntcorpsenormzombie01"/>

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

 

<entity_class name="zombieferal" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsezombieferal"/>

 

<entity_class name="zombieArlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieScreamer" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieDarlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieMarlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="snowzombie" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsesnowzombie"/>

 

<entity_class name="zombieNurse" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsezombieNurse"/>

 

<entity_class name="fatzombiecop" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsefatzombiecop"/>

 

 

 

 

And while you're at it - in those 9 sections, remove the "LootListOnDeath" value. It's not needed. Example:

<!-- <property name="LootListOnDeath" value="24" /> commenting this out for each of the 9 zombie types -->

 

Save and close entities.xml

 

Open blocks.xml and paste in six new blocks. If you run other mods then make sure these ID's are unique. You can change the ID to any unique number if you need to:

 

 

 

<block id="1914" name="cntcorpsenormzombie01">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

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

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1915" name="cntcorpsefatzombiecop">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="17"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1916" name="cntcorpsezombieNurse">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="21"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1917" name="cntcorpsenormzombie02">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="38"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1918" name="cntcorpsezombieferal">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="61"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1919" name="cntcorpsesnowzombie">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="66"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

 

 

 

Save and close blocks.xml

 

Open loot.xml. You need to add one value. Locate the following containers:

 

<lootcontainer id="15"

<lootcontainer id="17"

<lootcontainer id="21"

<lootcontainer id="38"

<lootcontainer id="61"

<lootcontainer id="66"

 

And add this value:

destroy_on_close="true"

 

An example:

<lootcontainer id="15" count="0,2" size="4,3" sound_open="UseActions/open_corpse" sound_close="UseActions/close_corpse" loot_quality_template="baseTemplate">

 

becomes:

 

<lootcontainer id="15" count="0,2" size="4,3" destroy_on_close="true" sound_open="UseActions/open_corpse" sound_close="UseActions/close_corpse" loot_quality_template="baseTemplate">

 

Save and close loot.xml. Play the game and profit!!!

 

Some notes:

 

- due to the ragdoll effect, some bags will fall to the ground get destroyed on impact. It is quite rare so just consider that as one of those things - no loot for you.

- I couldn't get the gore effect to work. I'll think about the best way to do that.

- The returns on harvesting and destroying the bag/loot are all the same and don't match vanilla. Since I don't do that (can't imagine who would!!) it is a lesser priority. Important:

 

the LOOT works as per vanilla, but the harvesting of the loot is not. Before, you could harvest a corpse for meat and bones, you can still do that with bags (but - why?!)

- IMPORTANT: The loot bag will be destroyed once you close it. Don't open a loot bag if you have a full inventory - you will lose the loot when you close the bag. This is necessary to

 

stop empty bags from litering the landscape. Kill zombie, open bag, take goodies, close and destroy bag.

- Hornets and dogs don't drop bags. Hornets probably should - as they have loot. Will consider.

- Fat cops that explode won't drop a bag. This is by design.

 

Thanks to deccyper and all those that helped him make this possible. :)

Link to comment
Share on other sites

Work around for those that are keen:

 

In entityclasses.xml:

 

Look inside all the zombie entities. You should find 9 different zombie entries:

 

<entity_class name="zombie01" >

<entity_class name="zombieferal" extends="zombie01">

<entity_class name="zombieArlene" extends="zombie01">

...

...

etc

 

For each of the 9 entries, you need to edit - or add, the "corpseblock" value but different zombies will have different values. Add or set these values (note that zombie01 has a "TimeStayAfterDeath" value):

 

 

 

<entity_class name="zombie01" >

<property name="CorpseBlock" value="cntcorpsenormzombie01"/>

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

 

<entity_class name="zombieferal" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsezombieferal"/>

 

<entity_class name="zombieArlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieScreamer" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieDarlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="zombieMarlene" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsenormzombie02"/>

 

<entity_class name="snowzombie" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsesnowzombie"/>

 

<entity_class name="zombieNurse" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsezombieNurse"/>

 

<entity_class name="fatzombiecop" extends="zombie01">

<property name="CorpseBlock" value="cntcorpsefatzombiecop"/>

 

 

 

 

And while you're at it - in those 9 sections, remove the "LootListOnDeath" value. It's not needed. Example:

<!-- <property name="LootListOnDeath" value="24" /> commenting this out for each of the 9 zombie types -->

 

Save and close entities.xml

 

Open blocks.xml and paste in six new blocks. If you run other mods then make sure these ID's are unique. You can change the ID to any unique number if you need to:

 

 

 

<block id="1914" name="cntcorpsenormzombie01">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

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

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1915" name="cntcorpsefatzombiecop">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="17"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1916" name="cntcorpsezombieNurse">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="21"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1917" name="cntcorpsenormzombie02">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="38"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1918" name="cntcorpsezombieferal">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="61"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

<block id="1919" name="cntcorpsesnowzombie">

<property name="Extends" value="cntBackpack01" />

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

<!-- <property name="Model" value="Entities/LootContainers/corpse_loot01Prefab" param1="main_mesh"/> -->

<property name="LootList" value="66"/>

<drop event="Harvest" name="rottingFlesh" count="2"/>

<drop event="Destroy" name="femur" count="1"/>

</block>

 

 

 

 

Save and close blocks.xml

 

Open loot.xml. You need to add one value. Locate the following containers:

 

<lootcontainer id="15"

<lootcontainer id="17"

<lootcontainer id="21"

<lootcontainer id="38"

<lootcontainer id="61"

<lootcontainer id="66"

 

And add this value:

destroy_on_close="true"

 

An example:

<lootcontainer id="15" count="0,2" size="4,3" sound_open="UseActions/open_corpse" sound_close="UseActions/close_corpse" loot_quality_template="baseTemplate">

 

becomes:

 

<lootcontainer id="15" count="0,2" size="4,3" destroy_on_close="true" sound_open="UseActions/open_corpse" sound_close="UseActions/close_corpse" loot_quality_template="baseTemplate">

 

Save and close loot.xml. Play the game and profit!!!

 

Some notes:

 

- due to the ragdoll effect, some bags will fall to the ground get destroyed on impact. It is quite rare so just consider that as one of those things - no loot for you.

- I couldn't get the gore effect to work. I'll think about the best way to do that.

- The returns on harvesting and destroying the bag/loot are all the same and don't match vanilla. Since I don't do that (can't imagine who would!!) it is a lesser priority. Important:

 

the LOOT works as per vanilla, but the harvesting of the loot is not. Before, you could harvest a corpse for meat and bones, you can still do that with bags (but - why?!)

- IMPORTANT: The loot bag will be destroyed once you close it. Don't open a loot bag if you have a full inventory - you will lose the loot when you close the bag. This is necessary to

 

stop empty bags from litering the landscape. Kill zombie, open bag, take goodies, close and destroy bag.

- Hornets and dogs don't drop bags. Hornets probably should - as they have loot. Will consider.

- Fat cops that explode won't drop a bag. This is by design.

 

Thanks to deccyper and all those that helped him make this possible. :)

 

Glad you got it working. But i gonna wait for deccypher

Link to comment
Share on other sites

managed to find a cause of the null refs in the blocks at the end of the mod it had <!-- END Deccyphers Bag Drop Mod ---> instead of <!-- END Deccyphers Bag Drop Mod --> i couldnt replicate it because i always remove comments anyway. so while i was at it i adjusted the blocks to utilize the new extend feature. -- pasted the new blocks here will test tonight more. and make sure all issues are gone

 

you only need 5 not 9 containers because sevral entities use the same lootlist :)

 

<!-- used for fatzombiecop -->

<block id="1917" name="cntcorpsefatzombiecop">

<property name="Extends" value="cntcorpsenormzombie01" />

<property name="LootList" value="17" />

<property name="Model" value="Entities/LootContainers/corpse_loot02Prefab" param1="main_mesh" />

</block>

<!-- used for zombieNurse -->

<block id="1918" name="cntcorpsezombieNurse">

<property name="Extends" value="cntcorpsenormzombie01" />

<property name="LootList" value="21" />

</block>

<!-- used for zombieMoe zombieArlene zombieScreamer zombieDarlene And zombieMarlene -->

<block id="1919" name="cntcorpsenormzombie02">

<property name="Extends" value="cntcorpsenormzombie01" />

<property name="LootList" value="38" />

<property name="Model" value="Entities/LootContainers/corpse_loot02Prefab" param1="main_mesh" />

</block>

<!-- used for zombieferal -->

<block id="1920" name="cntcorpsezombieferal">

<property name="Extends" value="cntcorpsenormzombie01" />

<property name="LootList" value="61" />

</block>

<!-- used for snowzombie -->

<block id="1921" name="cntcorpsesnowzombie">

<property name="Extends" value="cntcorpsenormzombie01" />

<property name="LootList" value="66" />

<property name="Model" value="Entities/LootContainers/corpse_loot02Prefab" param1="main_mesh" />

</block>

 

basically extending the first contianer switching between corpse_loot02Prefab and corpse_loot01Prefab models and changing the lootlist.

Link to comment
Share on other sites

Sorry, I am NOT someone who understands code or anything of that sort. How do I install this mod? Do I simply get both XML files and overwrite my existing ones?

 

I would hold of another day got quest a few messages on steam saying it not working for people. bags not lootable or null refs, trying to replicate the werrors and make sure it works for everyone.

 

ill re-do the first page with better install instruction also for you.

Link to comment
Share on other sites

Deccypher... Im using this on single player, and I noticed I started getting NRE errors if I close the containers without looting them by pressing "e". Was curious if you or anyone else had experienced the same thing?

Link to comment
Share on other sites

Deccypher... Im using this on single player, and I noticed I started getting NRE errors if I close the containers without looting them by pressing "e". Was curious if you or anyone else had experienced the same thing?

 

the container will destroy on close i there somethign in there it should dump it on the ground, admitdly i didnt test not looting them the point was to get al the loots :) i will fire it up on sp in a few hours need some sleep now:) and get back to you with what i find.

Link to comment
Share on other sites

Every time I loot a body, when it breaks I get a NullReferenceException error. It's too unplayable like this because I have to manually close the console after that happens every time

 

*EDIT* I solved the error by changing it so it only breaks if I hit with a tool, and not if I loot it. But I want to know about that stability thing mentioned, because I'm losing too much loot when zombies start dying on eachother and their loot corpses break

Link to comment
Share on other sites

Every time I loot a body, when it breaks I get a NullReferenceException error. It's too unplayable like this because I have to manually close the console after that happens every time

 

*EDIT* I solved the error by changing it so it only breaks if I hit with a tool, and not if I loot it. But I want to know about that stability thing mentioned, because I'm losing too much loot when zombies start dying on eachother and their loot corpses break

 

Open materials.xml.

open blocks.xml

locate the section pertaining this mod in blocks.

Find the material they use.

Go to materials.xml

find the material the deadcorpse uses

Look for stability_glue

Change to 400+

Then find mass

Change to 20.

Link to comment
Share on other sites

Deccypher... Im using this on single player, and I noticed I started getting NRE errors if I close the containers without looting them by pressing "e". Was curious if you or anyone else had experienced the same thing?

 

strangely enough it works perfectly on my mp server. so dont know what caused the issues in sp

Link to comment
Share on other sites

strangely enough it works perfectly on my mp server. so dont know what caused the issues in sp

 

I havent received any nre since installing the latest download. Havent tried to close the container without looting it yet tho myself I generally loot everything lol

 

- - - Updated - - -

 

Wait. Did you do everything you did for the dedi server side did you do also to the sp side

Link to comment
Share on other sites

Just checking up on the state of this mod.

 

Waiting, anxiously, for it. =D It's gonna be great!

 

Maybe for now adding stability and making it so you have to destroy the bag wouldn't be so bad.

At least it would be viable.

 

I really need anything to help with lag.

 

So is it ready to test out?

 

 

Also, I don't want to replace my Classes,XML. [Too many changes in there.]

 

Deccypher, perhaps you could let us know what's been changed to we can do it manually?

[err... nvm I'll just poke around till I figure it out. I really want to use this today.]

Link to comment
Share on other sites

Just checking up on the state of this mod.

 

Waiting, anxiously, for it. =D It's gonna be great!

 

Maybe for now adding stability and making it so you have to destroy the bag wouldn't be so bad.

At least it would be viable.

 

I really need anything to help with lag.

 

So is it ready to test out?

 

 

Also, I don't want to replace my Classes,XML. [Too many changes in there.]

 

Deccypher, perhaps you could let us know what's been changed to we can do it manually?

[err... nvm I'll just poke around till I figure it out. I really want to use this today.]

 

Its working now no nres or errors.

Link to comment
Share on other sites

Just checking up on the state of this mod.

 

Waiting, anxiously, for it. =D It's gonna be great!

 

Maybe for now adding stability and making it so you have to destroy the bag wouldn't be so bad.

At least it would be viable.

 

I really need anything to help with lag.

 

So is it ready to test out?

 

 

Also, I don't want to replace my Classes,XML. [Too many changes in there.]

 

Deccypher, perhaps you could let us know what's been changed to we can do it manually?

[err... nvm I'll just poke around till I figure it out. I really want to use this today.]

 

i dichted the extend method, not sure what wasnt working right but seamed to be a cause bunch of the errors.

one thiing i have done on my server jsut because people actualyl like the death ragdol is give it a 3 second delat after death quicte an easy change if you want to give this to your server too.

 

open entityclasses.xml

on zombie01 find

<property name="TimeStayAfterDeath"

cange the value to 3

 

that will give the anamation of the ragdoll effect enough time to happen before turning into a zbag

Link to comment
Share on other sites

I installed last night, ran fine for me for a while, then locked the dedi up after a while. Just want to know if I'm alone on this (which means I screwed up and will investigate) or if this is happening to others (which means I'll wait).

 

Not looking for tech support, just validation. :)

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...