.NET Player Movement Part 1

thevisad

Moderator
Staff member
Due to a security concern and blatant IP theft, this software will be receiving an emergency update later today. All existing owners will receive an email on the steps to claim a new license. I apologize in regards to this, but due to the act of the individual listed below, this is a mandatory update.

License: This my own license. When you download this software you agree that you will eat a hot dog every once in a while. You also agree to use this software as it was intended and how it was intended. If you do not, you must agree to not ever eat hot dogs again and uninstall the software. Thanks!


One of the things we did with Unleashed was create a movement trigger that captures all of the players movements on the server in real time. Since this occurs on the MySQL server, there is little to no impact on the DayZ Server itself.

Once we had this data captured, we decided we needed to do something with that data. So I wrote this tool to work with the database, pull the data from it and then plot it on the map.


Use this for your own mod! We will be supporting more maps and providing tools to assist in converting your maps to this system.

----> Download Here <----

[Features]
Per user per day movement
Lightweight queries
Automatic patching system to keep you up to date.
Historical movement data for as long as you keep records
All User Movement, color coded by player for a particular day (see screen shot below)

[Known Issues]
Movement does not currently show start/stop locations
Movement is limited to daily activity, if activity starts in one day and proceeds to the next, then it will cut off the additional movements.

[Pending]
All User Starting locations
Lines indicating direction of player movement
Map support for all potential maps (currently only supports Napf)
Live movement monitoring (screen refresh)
Heat Maps

When first starting, you will get the error below edit UnleashedMovement.exe.config and put in your database details. This is typically installed in the C:\Program Files (x86)\Unleashed Movement folder.

"Unable to connect to any of the database servers. Contact administrator"

Edit UnleashedMovement.exe.config and put in your database details.

Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="UnleashedMovement.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <applicationSettings>
        <UnleashedMovement.Properties.Settings>
            <setting name="dbServer" serializeAs="String">
                <value>127.0.0.1</value>
            </setting>
            <setting name="dbUser" serializeAs="String">
                <value>dayzserver</value>
            </setting>
            <setting name="dbPassword" serializeAs="String">
                <value>dayzserver</value>
            </setting>
            <setting name="dbPort" serializeAs="String">
                <value>3306</value>
            </setting>
            <setting name="dbName" serializeAs="String">
                <value>dayz</value>
            </setting>
            <setting name="dbTable" serializeAs="String">
                <value>instance_movement</value>
            </setting>
        </UnleashedMovement.Properties.Settings>
    </applicationSettings>
</configuration>


Create your Instance_Movement table

Code:
DROP TABLE IF EXISTS `instance_movement`;
CREATE TABLE `instance_movement` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `characterID` varchar(55) DEFAULT NULL,
  `instanceID` int(11) DEFAULT NULL,
  `worldSpace` varchar(255) DEFAULT NULL,
  `changedon` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;


Create your trigger on your character_data table (this is the official hive setup) this will immediately begin filling the instance_movement table created above. This will potentially fill up with large amounts of data, so make sure to purge events every so often. The tool is lightweight and does not put a major strain on the database server.


Code:
CREATE TRIGGER `after_character_data_update` AFTER UPDATE ON `character_data`
FOR EACH ROW BEGIN
if old.worldspace != new.worldspace then
insert into instance_movement
SET characterID = OLD.PlayerUID,
instanceID = OLD.InstanceID,
worldspace= OLD.Worldspace,
changedon = NOW();
end if;
END;
 
Last edited:
Back
Top