Jump to content

GeneralTragedy

Member
  • Posts

    54
  • Joined

  • Last visited

Posts posted by GeneralTragedy

  1. So, this is just a bit of a "rant" post, with some well deserved kudos added in for the devs...

     

    It's pretty disgusting how quickly the "illegal" server files have propagated, and how many unscrupulous folks there are that would take a team of developers' hard work and private intellectual property with no respect for or consideration of what has gone into the effort.  In SIX today, there are well over 40 servers currently listed running the Epoch server.  

     

    On the flip side and a more positive note, many of those 40+ servers are pretty full.. I'd guess there are 1000+ people playing the new Epoch currently.  This really shows the demand for this mod, and the huge following the team has created with this exceptional concept and the results of their hard work.  Which leads me to the better point, and that is a HUGE amount of KUDOS to the development team for producing what is already a fantastic mod for ARMA 3, and what will truly set the bar for other mods to follow.  I can't wait to see and experience the finished product (or rather future iterations, as it will likely never be truly "finished"), because what you've created already is fantastic!

     

    Thank you Devs!

     

    GeneralTragedy

  2. 40-something lone survivor who loves long walks on the Iraklia beach, sunsets over Pefkas Bay, hiking through the NW forest, and rummaging through trash piles at the dump for hidden gems.  Former Arma 2 Epoch admin, modder and forum contributor, whitelisted Arma 3 Epoch active player, tester and bug reporter.  Would love to have access again to help make this already fantastic mod even better. I can be reached through these forums, GitHub, or send me a message and I can provide my direct email.

     

    Thanks!

    GT

  3. It's not clear on the site, so does anyone have details on what the "Submission Deadline" really means in terms of completeness?  I guess what I'm getting at is whether submissions can be "enhanced" or "further developed" beyond that date, or if that deadline is a "hard stop" for the development of submissions.  It would make sense if it is, since otherwise it might give an unfair advantage to those submissions that are evaluated/reviewed later in the process.  This would also lead me to believe that A3 Epoch would need to have a semi-polished version by then, which in turn might mean "beta" availability at that point?  Maybe?  :)

     

    GT

  4. Hi there,

     

    on our server we, too, have the problem that after 24 days basebuilding objects disappear regardless of our maintenance related settings.

     

    Looking at the DB events I found that removeObjectEmpty reads

    DELETE FROM `object_data` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') )

    To my knowledge this would not only delete "abandoned storage objects and vehicles" but anything that has an inventory string '[]'. This holds for _any_ object, cinderwalls, ladders, ...

     

    So, misunderstanding on my part or bug?

     

    You're understanding it correctly, but it sounds like your maintenance isn't working properly.  Performing maintenance on an object should update both LastUpdated and Datestamp for that object to the current timestamp.  Once a building object is placed, it doesn't update (generally speaking) unless maintenance is performed, so if your script for applying damage to objects so maintenance is required isn't set correctly, you could definitely lose objects.

     

    More detail in this thread:

     

    GT

  5. Here's another update (or addition, however you want to look at it) to the "point to repair" functionality.  Basically, this is an adaptation from AxeCop's Service Point Refuel/Repair/Rearm script, so most of the credit goes to him. :)  This script will make repairs permanent, rather than temporary.

    // Adapted from Vehicle Service Point (Repair) by Axe Cop, minor adaptions by GeneralTragedy
    
    private ["_vehicle","_args","_costs","_repairTime","_type","_name","_hitpoints","_allRepaired"];
    
    _vehicle = cursorTarget;
    
    _type = typeOf _vehicle;
    _name = getText(configFile >> "cfgVehicles" >> _type >> "displayName");
    
    _hitpoints = _vehicle call vehicle_getHitpoints;
    _allRepaired = true;
    {
            private ["_damage","_selection"];
            _damage = [_vehicle,_x] call object_getHit;
            if (_damage > 0) then {
                _selection = getText(configFile >> "cfgVehicles" >> _type >> "HitPoints" >> _x >> "name");
    	[_vehicle,_selection,0] call object_setFixServer;
    		};
    } forEach _hitpoints;
    
    if (_allRepaired) then {
            _vehicle setDamage 0;
    	_vehicle setFuel 1;
    	_vehicle setVehicleAmmo 1;
            _vehicle setVelocity [0,0,1];
            titleText [format["%1 repaired, refuelled and rearmed. Point to repair successful.", _name], "PLAIN DOWN"];
    };
    

    Cheers,

    GT

  6. From what I understand by looking at the maintenance functions, the "setDamageOnAge" SQL statement actually doesn't really clean up or "delete" anything the way it is currently written.  What it does is set the damage to 10%, which allows the maintenance option to show up, and also by default should update the "LastUpdated" field because, well, it's doing an update.  It also doesn't make the damage cumulative, meaning it always sets it to 10%, and just keeps overwriting the same value.  This change to "LastUpdated" should keep items from being deleted by the other procedures, which have "LastUpdated" as one of the criteria for deletion.  (with the exception, I believe, of the "CleanupPlacedAfterDays" internal function....) 

     

    I have a longer explanation (again, my interpretation) on how these all work together here:

     

    On the servers I manage, I have actually turned off the "CleanupPlacedAfterDays" (by setting it to -1), and re-written "setDamageOnAge" so that the damage is actually cumulative.  So, in my scenario, every 3 days it adds 10% damage, resulting in 100% damage (Damage of 1) after 30 days.  Once the damage reaches 1, it will then get cleaned up by the "removeDamagedVehicles" procedure.  (also I should note that I have indestructible bases turned on, as these are PVE servers and allowing damage really only benefits griefers...) To me, this represents true "decay"... I will note that this would have the effect of making built objects weaker over time, again more "realistic".  On a PVP server without indestructible bases, this might be too much.

     

    Another important thing to note is that there's a very small subset of objects that are currently included in maintenance (which seems to be changing with the 1.0.5 update).  For example, items like sandbags, lightpoles, etc. are currently not included in maintenance, and so whether you perform maintenance or not, these items will still disappear based on your other procedure time settings.  I talk about this, as well as where to find the objects included in my other post as well.

     

    Hope this helps,

    GT 

  7. So there is no way for me to import the backup I have, because when I tried to roll the server back it reset all the tables to default so my server is as if knowone has played on it before...

     

    You could try this...

     

    - Install mySql on your local computer (if it's not already)

    - Restore your databases locally

    - EXPORT the data to a SQL file

    - Import the data using the import function of the phmyadmin control panel on your HFB server

     

    or

     

    - EXPORT the data and structure to a SQL file

    - Run the SQL statement which will create the tables and data

     

    These are just a couple of options for getting data into your SQL database, besides a "restore".

     

    GT

  8. You're not going to get "super" rights from HFB... the response is going to be it's a security issue.  You might try to create a new table and copy the data from your backup into it (or stop your server, delete everything from the existing table, and use it...), rather than trying to use the restore process.  Moving forward, you'd be better off using the mechanism I do for managing this.

     

    What I do is create events that run every hour to copy the table data to backup tables.  Then when you need to do a rollback, you just delete the current table and rename the backup table you want to use to the proper name.  I also have an event that runs and cleans up the old backup tables after a period of time (I have it set for 2 days...).  Here's the SQL I use for the key tables...

     

    Character Data:

    DROP EVENT IF EXISTS character_data_backup;


    DELIMITER $$
    CREATE EVENT character_data_backup
    ON SCHEDULE EVERY 1 HOUR
    STARTS Now()
    COMMENT 'Backs up character data'
    DO
    BEGIN
    SET @vCurrentTime := (DATE_FORMAT(now(),'%Y_%m_%d_%H_%i_%s'));
    SET @vMyTablename := CONCAT("`user-XXXX`.`character_data_backup_",@vCurrentTime,"`");
    SET @vMyCreateTable := CONCAT("CREATE TABLE ", @vMyTablename, " ( `CharacterID` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,",
    " `PlayerUID` varchar( 20 ) CHARACTER SET latin1 NOT NULL DEFAULT '0',",
    " `InstanceID` int( 11 ) NOT NULL DEFAULT '0',",
    " `Datestamp` datetime DEFAULT NULL ,",
    " `LastLogin` datetime NOT NULL ,",
    " `Inventory` longtext CHARACTER SET latin1,",
    " `Backpack` longtext CHARACTER SET latin1,",
    " `Worldspace` varchar( 128 ) CHARACTER SET latin1 NOT NULL DEFAULT '[]',",
    " `Medical` varchar( 300 ) CHARACTER SET latin1 NOT NULL DEFAULT '[]',",
    " `Alive` tinyint( 3 ) unsigned NOT NULL DEFAULT '1',",
    " `Generation` int( 11 ) unsigned NOT NULL DEFAULT '1',",
    " `LastAte` datetime NOT NULL ,",
    " `LastDrank` datetime NOT NULL ,",
    " `KillsZ` int( 11 ) unsigned NOT NULL DEFAULT '0',",
    " `HeadshotsZ` int( 11 ) unsigned NOT NULL DEFAULT '0',",
    " `DistanceFoot` int( 11 ) NOT NULL DEFAULT '0',",
    " `Duration` int( 11 ) NOT NULL DEFAULT '0',",
    " `CurrentState` varchar( 200 ) CHARACTER SET latin1 NOT NULL DEFAULT '[]',",
    " `KillsH` int( 11 ) unsigned NOT NULL DEFAULT '0',",
    " `Model` varchar( 50 ) CHARACTER SET latin1 NOT NULL DEFAULT '",'"Survivor2_DZ"',"',",
    " `KillsB` int( 11 ) unsigned NOT NULL DEFAULT '0',",
    " `Humanity` int( 11 ) NOT NULL DEFAULT '2500',",
    " `Infected` tinyint( 3 ) DEFAULT '0',",
    " `last_updated` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ,",
    " PRIMARY KEY ( `CharacterID` ) ,",
    " KEY `PlayerUID` ( `PlayerUID` ) USING BTREE,",
    " KEY `Alive` ( `Alive` ) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
    PREPARE stmt1 FROM @vMyCreateTable;
    EXECUTE stmt1;

    SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

    SET @vMyInsertData := CONCAT("INSERT INTO ",@vMyTablename," SELECT * FROM `user-XXXX`.`character_data`;");
    PREPARE stmt2 FROM @vMyInsertData;
    EXECUTE stmt2;

    DEALLOCATE PREPARE stmt1;
    DEALLOCATE PREPARE stmt2;
    END $$

     

    Object Data:

    DROP EVENT IF EXISTS object_data_backup;


    DELIMITER $$
    CREATE EVENT object_data_backup
    ON SCHEDULE EVERY 1 HOUR
    STARTS Now()
    COMMENT 'Backs up object data'
    DO
    BEGIN
    SET @vCurrentTime := (DATE_FORMAT(now(),'%Y_%m_%d_%H_%i_%s'));
    SET @vMyTablename := CONCAT("`user-XXXX`.`object_data_backup_",@vCurrentTime,"`");
    SET @vMyCreateTable := CONCAT("CREATE TABLE ", @vMyTablename, " ( `ObjectID` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,",
    " `ObjectUID` bigint( 24 ) NOT NULL DEFAULT '0',",
    " `Instance` int( 11 ) unsigned NOT NULL ,",
    " `Classname` varchar( 50 ) CHARACTER SET latin1 DEFAULT NULL ,",
    " `Datestamp` datetime NOT NULL ,",
    " `LastUpdated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,",
    " `CharacterID` int( 11 ) unsigned NOT NULL DEFAULT '0',",
    " `Worldspace` varchar( 128 ) CHARACTER SET latin1 NOT NULL DEFAULT '[]',",
    " `Inventory` longtext CHARACTER SET latin1,",
    " `Hitpoints` varchar( 512 ) CHARACTER SET latin1 NOT NULL DEFAULT '[]',",
    " `Fuel` double( 13, 5 ) NOT NULL DEFAULT '1.00000',",
    " `Damage` double( 13, 5 ) NOT NULL DEFAULT '0.00000',",
    " PRIMARY KEY ( `ObjectID` ) ,",
    " KEY `ObjectUID` ( `ObjectUID` ) USING BTREE,",
    " KEY `Instance` ( `Instance` ) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
    PREPARE stmt1 FROM @vMyCreateTable;
    EXECUTE stmt1;

    SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

    SET @vMyInsertData := CONCAT("INSERT INTO ",@vMyTablename," SELECT * FROM `user-XXXX`.`object_data`;");
    PREPARE stmt2 FROM @vMyInsertData;
    EXECUTE stmt2;

    DEALLOCATE PREPARE stmt1;
    DEALLOCATE PREPARE stmt2;
    END $$

     

    Trader Data:

    DROP EVENT IF EXISTS traders_data_backup;


    DELIMITER $$
    CREATE EVENT traders_data_backup
    ON SCHEDULE EVERY 1 DAY
    STARTS Now()
    COMMENT 'Backs up traders data'
    DO
    BEGIN
    SET @vCurrentTime := (DATE_FORMAT(now(),'%Y_%m_%d_%H_%i_%s'));
    SET @vMyTablename := CONCAT("`user-XXXX`.`traders_data_backup_",@vCurrentTime,"`");

    SET @vMyCreateTable := CONCAT("CREATE TABLE ",@vMyTablename," ( `id` int( 8 ) NOT NULL AUTO_INCREMENT ,",
    " `item` varchar( 255 ) CHARACTER SET latin1 NOT NULL COMMENT '[Class Name,1 = CfgMagazines | 2 = Vehicle | 3 = Weapon]',",
    " `qty` int( 8 ) NOT NULL COMMENT 'amount in stock available to buy',",
    " `buy` varchar( 255 ) CHARACTER SET latin1 NOT NULL COMMENT '[[Qty,Class,Type],]',",
    " `sell` varchar( 255 ) CHARACTER SET latin1 NOT NULL COMMENT '[[Qty,Class,Type],]',",
    " `order` int( 2 ) NOT NULL DEFAULT '0' COMMENT '# sort order for addAction menu',",
    " `tid` int( 8 ) NOT NULL COMMENT 'Trader Menu ID',",
    " `afile` varchar( 64 ) CHARACTER SET latin1 NOT NULL DEFAULT 'trade_items',",
    " PRIMARY KEY ( `id` ) ,",
    " UNIQUE KEY `item` ( `item` , `tid` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
    PREPARE stmt1 FROM @vMyCreateTable;
    EXECUTE stmt1;

    SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

    SET @vMyInsertData := CONCAT("INSERT INTO ",@vMyTablename," SELECT * FROM `user-XXXX`.`traders_data`;");
    PREPARE stmt2 FROM @vMyInsertData;
    EXECUTE stmt2;

    DEALLOCATE PREPARE stmt1;
    DEALLOCATE PREPARE stmt2;
    END $$

     

    Player Data:

    DROP EVENT IF EXISTS player_data_backup;


    DELIMITER $$
    CREATE EVENT player_data_backup
    ON SCHEDULE EVERY 1 HOUR
    STARTS Now()
    COMMENT 'Backs up player data'
    DO
    BEGIN
    SET @vCurrentTime := (DATE_FORMAT(now(),'%Y_%m_%d_%H_%i_%s'));
    SET @vMyTablename := CONCAT("`user-XXXX`.`player_data_backup_",@vCurrentTime,"`");
    SET @vMyCreateTable := CONCAT("CREATE TABLE ",@vMyTablename," (`PlayerUID` varchar(20) CHARACTER SET latin1 NOT NULL DEFAULT '0',"," `PlayerName` varchar(128) NOT NULL DEFAULT 'Null',"," `PlayerMorality` int(11) NOT NULL DEFAULT '0',"," `PlayerSex` tinyint(3) unsigned NOT NULL DEFAULT '0',"," PRIMARY KEY (`PlayerUID`)) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
    PREPARE stmt1 FROM @vMyCreateTable;
    EXECUTE stmt1;

    SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

    SET @vMyInsertData := CONCAT("INSERT INTO ",@vMyTablename,"SELECT * FROM `user-XXXX`.`player_data`;");
    PREPARE stmt2 FROM @vMyInsertData;
    EXECUTE stmt2;

    DEALLOCATE PREPARE stmt1;
    DEALLOCATE PREPARE stmt2;
    END $$

     

    Old Table Cleanup:

    DROP EVENT IF EXISTS table_backup_cleanup;


    DELIMITER $$
    CREATE EVENT table_backup_cleanup
    ON SCHEDULE EVERY 3 HOUR
    STARTS Now()
    COMMENT 'Cleans up old table backups'
    DO
    BEGIN
    SET SESSION group_concat_max_len = 500000;
    SELECT GROUP_CONCAT(table_name) FROM INFORMATION_SCHEMA.TABLES
    WHERE table_name LIKE '%backup%'
    AND DATE_ADD(CREATE_TIME, INTERVAL 2 DAY) < now() INTO @myVar;

    SET @vDropQuery := CONCAT("DROP TABLE ", @myVar,";");
    PREPARE stmt FROM @vDropQuery;
    EXECUTE stmt;

    DEALLOCATE PREPARE stmt;

    END $$

     

    A few things to note... you will need to change the value user-XXXX to whatever your DB username is.  Also, you can tweak the frequency of the jobs by adjusting the schedule parameter set in the event (i.e. "ON SCHEDULE EVERY 1 HOUR" can be "ON SCHEDULE EVERY 30 MINUTE" or whatever).  And, if your table names are different case (i.e. some databases use "Character_DATA" instead of "character_data", as the mixed case is the SQL the devs provide), you will need to adjust the scripts because case does matter. Finally, you'll probably notice some tables are missing.  That's because they don't store any data that actually changes, just reference data.  So, you can just reload these using the default Epoch scripts if you need to.

     

    Hope that helps,

    GT

  9.  

    Well,

     

    thats my line for starting the Server

     

    export LD_LIBRARY_PATH=.:/usr/lib32:$LD_LIBRARY_PATH;
    ./epoch -server -mod="@dayz_epoch;@dayz_epoch_server;"
    -config="cfgdayz/server.cfg"
    -cfg="cfgdayz/basic.cfg"
    -port=2302 -beta="expansion/beta;expansion/beta/expansion"
    -noSound
    -noPause
    -world=Chernarus
    -profiles=cfgdayz
    -name=cfgdayz
    -cpucount=4
    -exThreads=3
    -showscripterrors
    -pid=2302.pid 2>&1 | ./writer.pl
     

     

  10. The latest Epoch SQL has a function (FindVehicleKeysCount) that identifies vehicles without keys anywhere in the database (player inventories, safes, etc.).  It is used by either another function (DeleteNonKeyVehicles) that then deletes these vehicles, or a scheduled job (UnlockNonKeyVehicles) that converts it.  You can find the SQL here:

     

    https://github.com/vbawol/DayZ-Epoch/blob/master/Server%20Files/SQL/add_recommended_mysql_events.sql

     

    With that said, unfortunately on my hosting provider I can't create functions, so I can't use either of them currently.  Hopefully you can...

     

    GT

  11. Here's a more definitive answer (based on how I interpret the various functions work... if anyone knows of anything in this that is incorrect, please correct me)...
     
    Install (run) this script to create database "events" (basically scheduled jobs) in your database.  Be aware that case does matter for database table and field names, so if your database names are different from what is in the script you will need to modify the scripts appropriately... otherwise, the jobs won't work.:
     
     
    Here's what the ones that are most pertinent to your question do. (Note they are all set up to run once a day.):
    -- ----------------------------
    -- Event structure for removeDamagedVehicles
    -- ----------------------------
    DROP EVENT IF EXISTS `removeDamagedVehicles`;
    DELIMITER ;;
    CREATE EVENT `removeDamagedVehicles` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes damaged vehicles' DO DELETE FROM `Object_DATA` WHERE Damage = 1
    ;;
    DELIMITER ;
    
    

    Removes any object in the database (not just vehicles) that has been destroyed (i.e. has a damage of "1", or 100%).  (This also provides a "catch-all" for objects that the server cleanup function didn't remove for whatever reason...)

    -- ----------------------------
    -- Event structure for removeObjectEmpty
    -- ----------------------------
    DROP EVENT IF EXISTS `removeObjectEmpty`;
    DELIMITER ;;
    CREATE EVENT `removeObjectEmpty` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes abandoned storage objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') )
    ;;
    DELIMITER ;
    
    
    Basically removes anything with an empty inventory that has not been "touched' in some way within the past 14 days, and is older than 24 days.  Although this says storage objects and vehicles, the way it is written would also cause it to remove all constructed objects that match the date filters if you don't have the setDamageOnAge event running.  (more on this later...)
    -- ----------------------------
    -- Event structure for removeObjectOld
    -- ----------------------------
    DROP EVENT IF EXISTS `removeObjectOld`;
    DELIMITER ;;
    CREATE EVENT `removeObjectOld` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes old objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 42 DAY)
    ;;
    DELIMITER ;
    
    
    This removes ALL objects in your database that have not been "touched" in 24 days and are older than 42 days.  This INCLUDES vehicles, safes, lockboxes, gun racks, etc. with items stored in them, not just items with empty inventory (which the prior job excludes).
    -- ----------------------------
    -- Event structure for setDamageOnAge
    -- ----------------------------
    DROP EVENT IF EXISTS `setDamageOnAge`;
    DELIMITER ;;
    CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') )
    ;;
    DELIMITER ;
    
    

    Now, here's the "magic" one.  What this does is looks for all objects in your database that are older than 3 days.  It then sets the damage on those objects to .1 (10%) so that it will trigger the "maintenance" code invoked by using the plot pole maintenance function.  As a side effect, by setting the damage on an object, it also updates the LastUpdated field for that object in the database, which prevents those objects from being deleted by other jobs.  That is why it's critical that this job is in place.

     

    Relative to the other settings:
     
    "DZE_BuildingLimit" determines the number of items that can be built in the radius of a plot pole.
     
    "DZE_PlotPole" determines the radius a plot pole covers, and the radius of the restriction on placing other plot poles. 
     
    "DZE_DamageBeforeMaint" determines how much damage is required before the maintenance option will be displayed.
     
    "DZE_requireplot" determines whether a plot pole is required to build, and if true prevents building by others within the restriction range.
     
    "DZE_GodModeBase" determines whether built objects take damage from external factors, such as players, vehicles, etc.  Important to note is that this doesn't affect the `setDamageOnAge`  job, it will still add damage to built objects.
     
    "DZE_maintainClasses" determines which objects require that maintenance be paid and the `setDamageOnAge` job affects. In order to set this, you have to override the default value with a custom variables.sqf file.  (it's good to know what is in this however, as it appears the items that will require maintenance will be increasing with Epoch 1.0.5).
     
    "CleanupPlacedAfterDays" determines how many days placed objects will last before they are deleted by the system.  I am unclear whether this uses the 'LastUpdated'  or `Datestamp` field from the database for an object as the value it refers to when it looks for items to clean up.  (If anyone could shed light on this, that would be awesome!)  I always set this to -1 to disable it, and this setting is fairly common.  If you set this to a different value, there is a chance it may end up overriding your scheduled event jobs in the database (based on the time intervals you specify in the different jobs).
     
    Hope this provides clarification on what things can be "tuned" (both the variables settings, as well as the times, in number of days, contained in the various database jobs) in order to meet your goals for your server object lifetimes and building maintenance.
     
    GT
  12. I've tried finding the answer to this in both the code and the forums, but can't seem to locate a clear answer.  What is the actual formula used to compute base maintenance costs when you maintain using a plot pole?  (I understand how it is determined "what" needs to be maintained, etc.).  Also, if you post a response please provide the source.  Finally, is this formula configurable in any way?  (If not, that would be a GREAT feature...)

     

    Thanks!

     

    GT

  13. As an additional reference, here's the error that gets generated:

     

    •  Error: 1419 SQLSTATE: HY000 (ER_BINLOG_CREATE_ROUTINE_NEED_SUPER)

      Message: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

    This issue exists with both HFBServers and with Dayz.st.

     

    Thanks!

    GT

  14. Cleanup placed after days is located in your hiveext.ini file. just look for the line you have above and set the number to what you want. 

     

    As for the no maintenance after days I don't really know how to work that. But I'm pretty sure that there are a few things you can try to work out what you want.

     

    what I know works is if you add this under your Epoch Config secion in your init.sqf:

    DZE_GodModeBase = true;
    
    
    

    This way players do not have to worry about maintaining their stuff but I do not know how that will conflict with the cleanupplacedafterdays.

     

    Pretty sure all this flag does is make it immune to external damage from players, vehicles, etc...  Don't think it gets around the CleanupPlacedAfterDays setting and definitely doesn't affect the maintenance queries if they are installed in the DB and running.

  15. I'd LOVE to use this function, but it seems with shared hosting I don't have the appropriate rights to create this function.  Any hints how to do it within the scheduled tasks that use it?  I DO have rights to create the scheduled tasks.  

     

    Thanks!

    GT

  16. Alright Vampire and scripies.  I want to start customizing and creating my own missions. Maybe one day they will be good enough to post on here for some to try out.  I get some of the basics how these scripts operate but right now I'm at a level of copy pasting and changing a few things and seeing if it goes ok from there.

     

    Your mission scripts seem to be set up very neatly for copypaste customizing although there are still many things I do not understand If I want to make my own and I have a few questions if I may.

     

    So first off, how the hell do I get the correct coordinates for positions, how do you do it? If I wanted to add a crate I simply add a digit and cross my fingers.

     

    How do you set up the scenery so its like prebuilt and just plopped down perfectly? like how you setDir.

     

    Is there a way to set mission AI behavior?

     

    lastly I need a tutorial.

     

    Use the Arma 2 map editor, you can get info on it from the Bohemia Interactive forums. (http://community.bistudio.com/wiki/Main_Page).  You'll end up with an SQF file when you save the mission, and you can pull all the coordinates for the objects from that.  This is also a way to create custom map additions that you can add into either your mission or server PBO.

     

    GT

  17. They were added and then removed from Epoch because they were buggy.  We found they had a ridiculous radius for damage if they exploded, not sure what other buggy effects they have...

×
×
  • Create New...