Forum Jump :

Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#1 Posted at 2015-07-14 21:26        
     
Welcome All!

I am working on creating a modular mod that allow players create their own mods by providing the groundwork for a persistent server. There will be four modules that I plan on writing. PersistentPlayer, PersistentVehicles, PersistentBuildings + Crafting, and PersistentVendors + Banking. These will be 4 standalone modules that will make up the entire mod. Each module can be used individually or together.

I made a demonstration video of the different modules. To view it click the link below:
Demonstration Video

Module 1: PersistentPlayer - version 1.0.3
PersistentPlayer allow server owners to enable player saving when players enter and exit the server. It is a standalone mod that has no mod prerequisites and is all encompassing. The scripts can be performed all server-side and require no user side downloads, other than through the mission file.

Installation
1. Copy @PersistentPlayer to the root of your arma3server folder.
2. Copy the mpmissions to the root of your arma3server.
3. Configure your config.cfg to configure the server to launch server.Altis.
- You do not have to use Altis, just use a map of your choosing with your own descriptions.ext and mission.sqm
4. Install MySQL on the server.
5. Copy "@PersistentPlayer\Databases.txt" to "%AppData%\..\Local\Arma2NETMySQL"
6. Edit "Databases.txt" to look like this:
mysql,persistentPlayer,localhost,3306,USER,PASSWORD
*Change USER and PASSWORD*
6. Open a MySQL Editor and create a Database named persistentPlayer.
7. Make the persistentPlayer the default database.
8. Copy the contents of "PersistentPlayer.sql" to the SQLEditor and run the SQL commands.
-- This will create the required tables
9. add @PersistentWorld to your -mod=
10. Start server and enjoy

Download: https://drive.google.com/file/d/0B90Un0wUV4P7UlN6ZXEzU3ZyTFE/view?usp=sharing

Change Log
1.0.2
Improvements to saving and functionalities
1.0.1
Fixed some event handlers
Some player side changes to allow PersistentVehicles to work with PersistentPlayer.



Module 2: PersistentVehicles - version 1.1.1
PersistentVehicle allow server owners to enable vehicle saving on server restarts.

Optional addon to this module is PersistentVehicleKeys. This adds key items that players get upon spawning in vehicles. The holder of the key to the vehicle allows the vehicle to be locked or unlocked. There is a client side download that is required. Edit the init.sqf in the mission file to turn off PersistentVehicleKeys.

Installation Instructions:
1. Copy @PersistentVehicles to the root of your arma3server folder.
2. Copy the mpmissions to the root of your arma3server.
3. Configure your config.cfg to configure the server to launch server.Altis.
- You do not have to use Altis, just use a map of your choosing with your own descriptions.ext and mission.sqm
4. Install MySQL on the server.
5. Copy @PersistentVehicles\Databases.txt" to "%AppData%\..\Local\Arma2NETMySQL"
6. Edit "Databases.txt" to look like this:
mysql,persistentVehicle,localhost,3306,USER,PASSWORD
*Change USER and PASSWORD*
6. Open a MySQL Editor and create a Database named persistentVehicle.
7. Make the persistentVehicle the default database.
8. Copy the contents of "PersistentVehicle.sql" to the SQLEditor and run the SQL commands.
-- This will create the required tables
9. Start server and enjoy

Download: https://drive.google.com/file/d/0B90Un0wUV4P7SEpxdXBHeVBzRzA/view?usp=sharing
Client Download (optional): https://drive.google.com/file/d/0B90Un0wUV4P7U015VzBobHBPTUk/view?usp=sharing




Module 3: PersistentBuilding + Crafting - version 1.0.0
This module will allow players to craft and build structures and will enable saving them for after a server restart. There will be a snapping feature to allow players to precisely connect building pieces together. This is a server-side only mod, unless you want to add user created objects such as walls, weapons, etc. Then it would require the client to have the mod that contains those models.


Installation Instructions:
1. Copy @PersistentBuilding to the root of your arma3server folder.
2. Copy the mpmissions to the root of your arma3server.
3. Configure your config.cfg to configure the server to launch server.Altis.
- You do not have to use Altis, just use a map of your choosing with your own descriptions.ext and mission.sqm
4. Install MySQL on the server.
5. Copy @PersistentBuilding\Databases.txt" to "%AppData%\..\Local\Arma2NETMySQL"
6. Edit "Databases.txt" to look like this:
mysql,persistentVehicle,localhost,3306,USER,PASSWORD
*Change USER and PASSWORD*
6. Open a MySQL Editor and create a Database named persistentBuilding.
7. Make the persistentBuilding the default database.
8. Copy the contents of "PersistentBuilding.sql" to the SQLEditor and run the SQL commands.
-- This will create the required tables
9. Start server and enjoy

Download: https://drive.google.com/file/d/0B90Un0wUV4P7b2Q3cktfN3l3Tlk/view?usp=sharing




Module 4: PersistentVendors + Banking
This module will allow for players to create a vendor to sell items at. There will be an graphical interface for other players to purchase items from. The vendor owner (some player) will be required to stock it with the items they find/craft/steal. Additionally, I plan to implement a banking system that will allow players to store money inside a bank as well on their character.

MORE INFORMATION TO COME



Arma2NET Prerequisites
.NET Framework 4 Client Profile: http://www.microsoft.com/download/en/details.aspx?id=24872
Microsoft Visual C++ 2010: http://www.microsoft.com/en-us/download/details.aspx?id=8328


Arma2NET MySQL Prerequisites
MySQL Connector for .NET: http://www.mysql.com/downloads/connector/net/

This post was edited by blckeagls (2015-07-17 22:10, ago)


Author Message


Posts: 20635
Rank:


Level: Super Admin

Country: nl
Location: The Netherlands
Occupation:
Age: 43
In-game name: Foxhound

 
#2 Posted at 2015-07-15 07:26        
     
Thanks for releasing this here on our forums :-)
I have written some news about it and you can find our mirror here:




Please note the archive includes some dll and exe files which seem to trigger some virusscanners. I added a note to our page informing the user.

Visit my family webshop desteigerhoutshop.nl.

Advertisement


Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#3 Posted at 2015-07-15 14:14        
     
The DLL's are from Arma2NET and Arma2NETMySQL

Arma2NET: http://forums.bistudio.com/showthread.php?131325-Arma2NET
Arma2NETMySQL: http://arma2netmysqlplugin.readthedocs.org/en/latest/


Author Message


Posts: 20635
Rank:


Level: Super Admin

Country: nl
Location: The Netherlands
Occupation:
Age: 43
In-game name: Foxhound

 
#4 Posted at 2015-07-15 14:32        
     
Ok, so these warnings actually come with the version from the original author already as well. But nevertheless I leave the warnings on the page as I dont want people to accuse us of carelesness ;-)

Visit my family webshop desteigerhoutshop.nl.

Author Message


Posts: 2
Rank:


Level: Member

Country: uk
Location:
Occupation:
Age:
In-game name:

 
#5 Posted at 2015-07-15 16:49        
     
May i suggest using extdb as it is cross platform and probably faster than arma2net. Also if you want to write extensions in C#, there is no need for arma2net :)

http://maca134.co.uk/tutorial/write-an-arma-extension-in-c-sharp-dot-net/


Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#6 Posted at 2015-07-15 18:30        
     
Updated PersistentPlayer to version 1.0.1 (Change log in OP)

Released PersistentVehicles version 1.0.0
- Planned to create a VehicleKey addon to this module. This will be optional if you want a vehicle key system to lock and unlock vehicles. You can use your own system aswell. Vehicle locking is saved in the database. If a vehicle is unlocked on restart, it will remain unlocked when server starts back up. Same as with locked vehicles.

Added 2 minutes later:

# maca134 : May i suggest using extdb as it is cross platform and probably faster than arma2net. Also if you want to write extensions in C#, there is no need for arma2net :)

http://maca134.co.uk/tutorial/write-an-arma-extension-in-c-sharp-dot-net/

Thanks Maca.. I wanted to make this mod for normal scripters to use. People who do not know C# may not be able to write custom Database queries. From my testing with Arma2NetMySQL it seems to perform well.

By using Arma2NET MySQL, people can see how I am issue the database commands and learn from it so they can build their own persistent worlds without having to write separate code.


Author Message


Posts: 2
Rank:


Level: Member

Country: uk
Location:
Occupation:
Age:
In-game name:

 
#7 Posted at 2015-07-15 19:08        
     
What about extdb so you are not limiting the mod to windows only?

Extdb is a mysql extension that can be used in windows and linux and queries have to be added to a config.


Author Message


Posts: 20635
Rank:


Level: Super Admin

Country: nl
Location: The Netherlands
Occupation:
Age: 43
In-game name: Foxhound

 
#8 Posted at 2015-07-15 19:40        
     
So, is this supposedto be one package or are all "Persistent" standalone and need their own page and their own archives?

Visit my family webshop desteigerhoutshop.nl.

Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#9 Posted at 2015-07-15 20:33        
     
# Foxhound : So, is this supposedto be one package or are all "Persistent" standalone and need their own page and their own archives?

You can put them all in one page. This is one "mod" that consists of different stand-alone modules.

I wanted people to be able to use or not use certain aspects of the mod to build their own mod to their liking.

So if someone wanted PersistentPlayer and PersistentVehicles but not PersistentBuilding, they could easily do that.


Author Message


Posts: 20635
Rank:


Level: Super Admin

Country: nl
Location: The Netherlands
Occupation:
Age: 43
In-game name: Foxhound

 
#10 Posted at 2015-07-15 21:38        
     
Ok, thanks for the info :-)
New version has been frontpaged and you can find the updated mirror here:




** all-in-one archive

Visit my family webshop desteigerhoutshop.nl.

Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#11 Posted at 2015-07-16 03:05        
     
Updated PersistentPlayer to 1.0.2
Updated PersistentVehicles to 1.1.0 which includes the PersistentVehicleKeys addon to enable vehicle locking and unlocking with keys. Client Side download required for PersistentVehicleKeys


Author Message


Posts: 20635
Rank:


Level: Super Admin

Country: nl
Location: The Netherlands
Occupation:
Age: 43
In-game name: Foxhound

 
#12 Posted at 2015-07-16 08:25        
     
Updated version frontpaged and you can find the updated mirror here:




** all-in-one archive

Visit my family webshop desteigerhoutshop.nl.

Author Message

Senfo  



Posts: 2
Rank:


Level: Member

Country: 00
Location:
Occupation:
Age:
In-game name:

 
#13 Posted at 2015-07-16 11:15        
     
Nice addon, but there is one thing:

Everytime you setup a task for the SQL extension arma 3 will stop doing anything else.
As I have seen in your file structure, nearly any field has its own task to be called.
You should consider if it was more performant to call them at least in groups to reduce the amount of extension calls to a minimum, otherwise you will get the same problems as Atlis life had:

The more players, the more extension calls causing mini lags and a huge amount of desync.

Another thing that is nice to have is a call lock, so every new call has to wait till the extension is free to use again. This prevents task overloads and again, if many players are connected, it will prevent a lot of data loss :)

Greetz,
Senfo


Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#14 Posted at 2015-07-16 14:49        
     
Thanks for the Info Senfo. I will look into combining some of the updating to the databases in groups rather than individual fields.

I took the method to enable saving based upon events rather than constantly looping through everything to save. Saving is only performed when:
Object is damaged
Inventory is accessed
On fire
Vehicle in entered
Vehicle is exited
Vehicle is locked/unlocked
+ a couple others.

This method will only send a Database update when needed rather than a constant polling of updates through loops.

This post was edited by blckeagls (2015-07-16 14:57, ago)


Author Message


Posts: 30
Rank:


Level: Member

Country: us
Location:
Occupation:
Age:
In-game name:

 
#15 Posted at 2015-07-17 21:41        
     
- Released v1.0.0 of PersistentBuilding

- Add a demonstration video of the three modules

- Released v1.1.1 of PersistentVehicles
Integrates functionality with PersistentBuilding

- Released v1.0.3 of PersistentPlayer
Integrates functionality with Persistent Building