Jump to content
  • 0

1.0.6 Maintenance not removing Doors and Plotpoles


Jim90

Question

In 1.0.6 the doors and plotpoles are not being removed by the maintenance system. Walls and ceilings look to be getting removed properly. The "setDamageOnAge" Database event included with the 1.0.6 server install is adding the 0.1 damage but the doors and plotpoles are still not being removed. This looks to be the same issue that happens on 1.0.5.1 only when a  name has been added to the door or plotpole, even with the 0.1 damage added. Since 1.0.6 automatically adds the player ID to the Inventory column of doors and plotpoles, I suspect this is happening to all of them now. If there is a fix for this could we get it added to 1.0.6.1?

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
1 hour ago, lwbuk said:

Is this not because the sql event is checking if the item has inventory, which a plotpole or door with a Uid will have if I am correct in how the Uids are stored. 

I suspect your right on the checking for inventory but it is not done by a Database event. I have so far not been able to find it in the code.

Link to comment
Share on other sites

  • 0

Yes I am using that exact event, and the doors and plotpoles are getting the 0.1 damage,  but just like in 1.0.5.1 where I have also added the 0.1 damage, the doors and plotpoles are left standing after the rest of the base has been removed. Here are 2 of the lines from my DB where the base is gone except for the doors and plotpole. (My maintenance is set to 14 days)

312    313    11    Plastic_Pole_EP1_DZ    2016-12-04 00:18:24    2016-12-07 05:54:41    16    [123.752,[11952.896,14051.6,0],"76561198081XXXXXX",[[0.831,-0.556,0],[0,0,1]]]    [["76561198081XXXXXX",[83,116,97,99,101,121,39,115,32,77,111,109]]]    []    0    0.1    0
370    371    11    CinderWallDoorLocked_DZ    2016-12-04 01:14:35    2016-12-07 05:54:41    838    [124.823,[11958.07,14051.173,0.173],"76561198081XXXXXX",[[0.821,-0.571,0],[0,0,1]]]    [["76561198081XXXXXX",[83,116,97,99,101,121,39,115,32,77,111,109]]]    []    0    0.1    0

Link to comment
Share on other sites

  • 0

Surely you have another event that actually removes the stuff though, the set damage only adds damage for maintenance purposes.  The remove old items event will need to be told the plotpole can be removed even though it has inventory.  Or does the plot pole inventory get updated occasionally for any reason, which would cause the delete old items to not work? 

Link to comment
Share on other sites

  • 0

I let "CleanupPlacedAfterDays = 14" in the HiveExt.ini and adding the 0.1 damage with a DB event take care of removing things. Works good except for Doors and plotpoles.

I found this worked in 1.0.5.1 as long as the door/plotpole inventory was empty, but in 1.0.6 the inventory is never empty.  Another event could be written to remove these items by name similar to the new setDamageOnAge,  but I was hoping there was a way to do it in the program.

Link to comment
Share on other sites

  • 0

While this could be useful, the db objects he posted already have a damage set to 0.1. I think what he is trying to bring to light is an issue caused by having data in the inventory of doors and plotpoles. Modular objects will not be completely removed after the "setDamageOnAge" time has expired if that object has data within the inventory. Perhaps an appendage to the dll would eliminate additional manual database events, thereby reducing potential user error or corruption. Why not reference a variable in the cfg that will allow additional classnames or add the following to the dll?

 OR (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ')) ) 

 

Link to comment
Share on other sites

  • 0

CleanupPlacedAfterDays works as intended, it's not hard-coded, however, if undefined it will default to 6. Setting it to -1 does disable cleanup.

 

I'll probably end up adding a variable that is configurable, until then damage can be set to 1 via modifying the even to increment damage, or just run the sql manually as a new event between server restarts.

Link to comment
Share on other sites

  • 0
Quote

I'll probably end up adding a variable that is configurable, until then damage can be set to 1 via modifying the even to increment damage, or just run the sql manually as a new event between server restarts.

@icomradeDo you mean one in the Hiveext.ini? It'd be nice to be able to configure the items to exclude/include for the dll maintenance stuff if that's what you mean

Quote

So it will never work for plot poles or locked doors with UIDs in there.

@ebaydayzOr user built mods like virtual garage etc

Link to comment
Share on other sites

  • 0
1 hour ago, salival said:

Do you mean one in the Hiveext.ini? It'd be nice to be able to configure the items to exclude/include for the dll maintenance stuff if that's what you mean

 

It sounds like that is precisely the plan. This little thread may have eliminated one of the many hurdles modders and server owners have endured for many years. Excellent community input @Jim90! :)

Link to comment
Share on other sites

  • 0

Will be nice when this is added to the dll, but until then this new event seems to be working for 1.0.6. Just change the 14 to whatever number of days your maintenance is set to. 

This should also work with 1.0.5.1.   after changing the plotpole Class name to  30m_plot_kit.

Correction:  1.0.5.1 uses the same built Plotpole in the database as 1.0.6.  It's only the plotpole kit name that is different.  So below will work as is in 1.0.5.1.

-- ----------------------------
-- Event structure for Plotpole_and_Door_Maintenance
-- ----------------------------
DROP EVENT IF EXISTS `Plotpole_and_Door_Maintenance`;
DELIMITER ;;
CREATE EVENT `Plotpole_and_Door_Maintenance` ON SCHEDULE EVERY 1 DAY COMMENT 'Plotpole_and_Door_Maintenance' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND  Damage > 0.09 AND (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ'))
;;
DELIMITER ;

 

Edited by Jim90
1.0.5.1 Plotpole name correction
Link to comment
Share on other sites

  • 0
4 hours ago, icomrade said:

Updated the HiveExt.dll, updated the server package, re-download to get the new .DLL http://epochmod.com/a2dayzepoch.php

The server PBO has not changed. See https://github.com/EpochModTeam/DayZ-Epoch/commit/fc9b01e91cf4d8b6a62843df9758ca9f93af4283 for more info regarding the new maintenance variable in HiveExt.ini

Wow that is perfect, and completed within a few days of the original post! You are the man @icomrade!

Link to comment
Share on other sites

  • 0

so do we need to add :

-- ----------------------------
-- Event structure for Plotpole_and_Door_Maintenance
-- ----------------------------
DROP EVENT IF EXISTS `Plotpole_and_Door_Maintenance`;
DELIMITER ;;
CREATE EVENT `Plotpole_and_Door_Maintenance` ON SCHEDULE EVERY 1 DAY COMMENT 'Plotpole_and_Door_Maintenance' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND  Damage > 0.09 AND (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ'))
;;
DELIMITER ;

as posted by jim90.....?

i have ran the sql event listed in:    recommended_mysql_events.sql#L94

but i see no event listed for plot poles and door maintenance

also do i need to change anything else to have a 30 day maintenance period ?

Link to comment
Share on other sites

  • 0
4 hours ago, [email protected] said:

so do we need to add :


-- ----------------------------
-- Event structure for Plotpole_and_Door_Maintenance
-- ----------------------------
DROP EVENT IF EXISTS `Plotpole_and_Door_Maintenance`;
DELIMITER ;;
CREATE EVENT `Plotpole_and_Door_Maintenance` ON SCHEDULE EVERY 1 DAY COMMENT 'Plotpole_and_Door_Maintenance' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND  Damage > 0.09 AND (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ'))
;;
DELIMITER ;

as posted by jim90.....?

i have ran the sql event listed in:    recommended_mysql_events.sql#L94

but i see no event listed for plot poles and door maintenance

also do i need to change anything else to have a 30 day maintenance period ?

I'm almost positive I posted the release of this new HiveExt.dll in this thread, apparently the post is no longer here...?

 

Anyway, please re-download the server package and replace your HiveExt.dll - please see the changes here: 

 

 

Link to comment
Share on other sites

  • 0

Swap the hiveext.dll, and replace your hiveext.ini with the new version, of course update its details with yours.

also change the sql event for setdamageonage

UPDATE `Object_DATA` SET `Damage`=0.11 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ')) )

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...