Jump to content
code34

iniDBI2 - Save and Load data to the server or your local computer without databases!

Recommended Posts

On 7/13/2018 at 4:35 PM, reggaeman007jah said:

Hello folks, 

 

Firstly, I want to thank code34 for this mod. It has opened up so many possibilities for me, and I am so keen to get it working on my server. Also, thank you to gokitty1199, your videos made the impossible possible for me, and I could not have achieved what I have so far without your tutorials. I have learned a lot, so thank you!

 

Next, I want to apologise if the solution to what I am asking is completely obvious. I am by all accounts a very novice scripter, so perhaps the answer to my problem is right in front of my eyes and I just am too blind to see it.

 

I am trying to build a pilot's diary, simply to record the time spent in the heli. Now, using gokitty1199's tuts, and some googling, I have got something that works. Well, most of the time. The problem I am having is with the initial load of the DB info into the script. 

 

On first load into the server (and in case it matters, I am testing in the editor, using the MP option), the script does not work. My debug hints that trigger when you get in and out of the heli show that the data is not being passed into the script as it should on first accessing the server (i.e. when the DB is created initially). However, when I respawn and try again, it works completely fine. So, not a critical problem, but it's really doing my head in not understanding why X)

 

Could someone please explain where I am going wrong here? How do I get the flight data loaded correctly on first load of the server? I hope I have explained this properly..

 

My files:

 

init.sqf

  Hide contents


_clientID = clientOwner;
_UID = getPlayerUID player;
_name = name player;

checkForDatabase = [_clientID, _UID, _name];
publicVariableServer "checkForDatabase";

"loadMasterData" addPublicVariableEventHandler
{
        private ["_data"];
        _data = (_this select 1);
        _name = (_data select 0);
        _mins = (_data select 1);

};

execVM "heli.sqf";

 

 

initServer.sqf

  Reveal hidden contents


"checkForDatabase" addPublicVariableEventHandler
{
        private ["_data"];
        _data = (_this select 1);
        _clientID = (_data select 0);
        _UID = (_data select 1);
        _playerName = (_data select 2);
        _mins = (_data select 3);

        _inidbi = ["new", _UID] call OO_INIDBI;
        _fileExist = "exists" call _inidbi;
        
        if (_fileExist) then
        {
            hint format ["WELCOME BACK %1 - YOUR PROFILE HAS BEEN LOADED SUCCESSFULLY", _playerName]; 
            null = [_UID, _clientID] execVM "getData.sqf";
        }
        else
        {
            hint format ["WELCOME TO THE SERVER %1 - YOUR PROFILE HAS BEEN CREATED", _playerName]; 
            null = [_clientID, _UID, _playerName, _mins] execVM "createDatabase.sqf";
        };
};    

"saveFlightMins" addPublicVariableEventHandler 
{
        private ["_data"];
        _data = (_this select 1);
        _UID = (_data select 0);
        _minsFlown = (_data select 1);

        _inidbi = ["new", _UID] call OO_INIDBI;
        
        ["write", ["Pilot Data", "Minutes Flown", _minsFlown]] call _inidbi;    

};
 

 

createDatabase.sqf

  Reveal hidden contents

 

_clientID = (_this select 0);
_UID = (_this select 1);
_playerName = (_this select 2);
 

_inidbi = ["new", _UID] call OO_INIDBI;

["write", ["Player Info", "Name", _playerName]] call _inidbi;
["write", ["Pilot Data", "Minutes Flown", 0]] call _inidbi; // 

 

 

getData.sqf

  Reveal hidden contents

 

_UID = (_this select 0);
_clientID = (_this select 1);

_inidbi = ["new", _UID] call OO_INIDBI;

_name = ["read", ["Player Info", "Name", []]] call _inidbi;
_mins = ["read", ["Pilot Data", "Minutes Flown", []]] call _inidbi;

loadMasterData = [_name, _mins];
_clientID publicVariableClient "loadMasterData";

 

 

heli.sqf

  Hide contents


pilotRank = 1; // not relevant, will be used to control who will have the diary feature

 

"loadMasterData" addPublicVariableEventHandler
{
        private ["_data"];
        _data = (_this select 1);
        _name = (_data select 0); 
        _mins = (_data select 1);
        loadedPilotMinutes = _mins;
        loadedName = _name;
};

 

player addEventHandler ["getInMan", {
    if (pilotRank == 1) then {
    flightStart = time;
    hint format ["Welcome back %1, your current flight time (in minutes) is: %2", loadedName, loadedPilotMinutes];    
    };
}];


player addEventHandler ["getOutMan", {
    if (pilotRank == 1 && alive player) then {
    flightEnd = time;
    totalPilotSeconds = round (flightEnd - flightStart);
    totalPilotMinutes = round (totalPilotSeconds / 60);

    _UID = getPlayerUID player;
    _mins = totalPilotMinutes + loadedPilotMinutes;
    saveFlightMins = [_UID, _mins];
    publicVariableServer "saveFlightMins";

    hint format ["Last Flight (mins) --- %1 Total Flight Time (mins) --- %2", totalPilotMinutes, _mins];
        
    };
}];

 

 

 

I have tried to resolve this on my own, and for the life of me I cannot get this to work on the first time the DB loads. 

 

@gokitty1199 @code34 Any advice gratefully appreciated!

 

PS. I have another blocker with load values, but I wanted to tackle my problems one at a time ;)

 

 

 

 

create a global variable and assign it to 0, run this when the player loads into the mission such as in the initPlayerLocal area. then check if the player has a database, if he does then assign the value to the flight time variable, somewhat like this for example

timeSpentInHeli = 0;
//do your check and call either depending on if the player has a DB
if (_hasDB) then
{
	loadClientData = clientOwner;
	publicVariableServer "loadClientData";
} else
{
	createClientData = clientOwner;
	publicVariableServer "createClientData";
};

//on the server just read from the database and use publicVariableClient with the id that is passed to the servers public event handler
//on the client just have the public event handler to assign the variables as needed
"assignVariables" addPublicVariableEventHandler
{
	(_this select 1) params ["_fTime", "_otherCrap"];
	timeSpentInHeli = _fTime;
};

then to increment the flight time, since you already have a way to trigger if the player is in the heli, just run a simple loop on a delay of a second, make a control variable that will cause the loop to end when the client exits the heli and turns back to true when he enters the heli. sorry im short on time and cant help much atm until later tonight

inHeliFnc =
{
	while {isInHeli} do
	{
		timeSpentInHeli = timeSpentInHeli + 1;
		sleep 1;
	};
};

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Hey guys- I posted this on the forum for oo_pdw since I'm using that framework, but I think my issue is actually in inidbi2 and I haven't gotten any answers on that board after a few days now. I have been working on persistence functions for my missions. I can save players info no problem but am having trouble creating save zones that record objects, vehicles and inventories within a marker. oo_pdw has functions for this and I can actually currently save everything in zones no issue, the problem is the next time I save them, I dupe the items. I've added a counter to the database key so it increments 1 every time, and I've got it set so that it writes to a new section every time, and yet its somehow keeping track of all previous entries. The example below shows how every time it auto saves it creates one additional copy of the vehicle even though every time I call 'save' it is writing to a new key and section in the DB.

 

Quote


[Situational Awareness_3pdw_objects]
Situational Awareness_3pdw_objects="-1"

 

[Situational Awareness_4pdw_object_objects_0]
Situational Awareness_4pdw_object_objects_0="["rhsusf_m1025_w_mk19",[1305.27,18088.9,-0.0197868],0,0,[["rhs_weap_m4_carryhandle","rhs_weap_M136_hedp"],[2,2]],[["rhs_m136_hedp_mag","rhs_mag_30Rnd_556x45_M855A1_Stanag","rhsusf_100Rnd_556x45_soft_pouch","rhs_mag_M441_HE","rhs_mag_m714_White","rhs_mag_m662_red","rhs_mag_m67","rhs_mag_m18_green","rhs_mag_m18_red","rhs_mag_an_m8hc"],[2,20,8,16,4,2,4,2,2,4]],[["FirstAidKit"],[4]],[["rhsusf_falconii"],[2]]]"
[Situational Awareness_4pdw_objects]
Situational Awareness_4pdw_objects="0"

 

[Situational Awareness_5pdw_object_objects_0]
Situational Awareness_5pdw_object_objects_0="["rhsusf_m1025_w_mk19",[1305.27,18088.9,-0.0197868],0,0,[["rhs_weap_m4_carryhandle","rhs_weap_M136_hedp"],[2,2]],[["rhs_m136_hedp_mag","rhs_mag_30Rnd_556x45_M855A1_Stanag","rhsusf_100Rnd_556x45_soft_pouch","rhs_mag_M441_HE","rhs_mag_m714_White","rhs_mag_m662_red","rhs_mag_m67","rhs_mag_m18_green","rhs_mag_m18_red","rhs_mag_an_m8hc"],[2,20,8,16,4,2,4,2,2,4]],[["FirstAidKit"],[4]],[["rhsusf_falconii"],[2]]]"
[Situational Awareness_5pdw_object_objects_1]
Situational Awareness_5pdw_object_objects_1="["rhsusf_m1025_w_mk19",[1305.27,18088.9,-0.0197868],0,0,[["rhs_weap_m4_carryhandle","rhs_weap_M136_hedp"],[2,2]],[["rhs_m136_hedp_mag","rhs_mag_30Rnd_556x45_M855A1_Stanag","rhsusf_100Rnd_556x45_soft_pouch","rhs_mag_M441_HE","rhs_mag_m714_White","rhs_mag_m662_red","rhs_mag_m67","rhs_mag_m18_green","rhs_mag_m18_red","rhs_mag_an_m8hc"],[2,20,8,16,4,2,4,2,2,4]],[["FirstAidKit"],[4]],[["rhsusf_falconii"],[2]]]"
[Situational Awareness_5pdw_objects]
Situational Awareness_5pdw_objects="1"

 

Does anyone know any commands in PDW, or INIDBI itself that can clear the old data out before writing back to log? Or has anyone had this issue before and found a work around? At this point my best guess at how to accomplish this is to just keep creating an entirely new database file EVERY time I call a save, the problem here though is that oo_pdw is hard coded to save the database name to 'oo_pdw' every time and I'm a bit of a novice and not 100% sure how script that off the top of my head, and I'm kind of hoping there's just a delete function in inidbi2 that I've missed.

Share this post


Link to post
Share on other sites

hi TheVigil7,

 

just answered on the PDW thread.

  • Like 1

Share this post


Link to post
Share on other sites

Hi i have few questions.

- ini files are usually used by Windows right? Is iniDBI2 working on linux servers aswell?

-Where are those ini files stored?

Share this post


Link to post
Share on other sites
1 hour ago, Bayern_Maik said:

Hi i have few questions.

- ini files are usually used by Windows right? Is iniDBI2 working on linux servers aswell?

-Where are those ini files stored?

 

hi

yes inidbi2 works only on windows cause it s a microsoft api. Files are in directory of mod.

 

  • Like 1

Share this post


Link to post
Share on other sites

Heya!

 

I have a problem and yet not found any solution to this. Maybe i dont see something but here's the problem first:

 

I create a database to save all the weapons, that i want/have in unlimited amount for the ace arsenal. And i write it down into the database like this:

for [{_loop=0}, {_loop<_weaponnames}, {_loop=_loop+1}] do
{
_weaponamount = (_itemarray select 1) select _loop;
_weaponname = (_itemarray select 0) select _loop;
	if (_weaponamount > unlimited) then 
		{
			[merc_arsenal_box, [_weaponname]] call ace_arsenal_fnc_addVirtualItems;
			_seperator = ",";
			_readoldweapons = ["read", ["Merc Arsenal", "Unlimited"]] call _inidbi;
			_newmercweapons = _readoldweapons + _seperator + _weaponname;
			["write", ["Merc Arsenal", "Unlimited", _newmercweapons]] call _inidbi;
			
		}
		else
		{
			weapon_cache_temp addWeaponCargo [_weaponname,_weaponamount];

		};
};

 

In the ini file it is saved like this:

 

[Merc Arsenal]
Unlimited=""arifle_MXC_F,srifle_DMR_05_hex_F""

 

For ACE i need it like this: "weapon1","weapon2","weapon3" and so on.

 

I cant figure out how i can achieve to save all the currently unlocked ace-arsenal unlocks, to make them completely permanent throughout the campaign. Any solution?

 

Thanks in advance for your help.

 

Narsiph.

 

Edit:

Problem solved with the splitString command i was not aware of :)

Share this post


Link to post
Share on other sites
4 hours ago, Narsiph said:

Heya!

 

I have a problem and yet not found any solution to this. Maybe i dont see something but here's the problem first:

 

I create a database to save all the weapons, that i want/have in unlimited amount for the ace arsenal. And i write it down into the database like this:


for [{_loop=0}, {_loop<_weaponnames}, {_loop=_loop+1}] do
{
_weaponamount = (_itemarray select 1) select _loop;
_weaponname = (_itemarray select 0) select _loop;
	if (_weaponamount > unlimited) then 
		{
			[merc_arsenal_box, [_weaponname]] call ace_arsenal_fnc_addVirtualItems;
			_seperator = ",";
			_readoldweapons = ["read", ["Merc Arsenal", "Unlimited"]] call _inidbi;
			_newmercweapons = _readoldweapons + _seperator + _weaponname;
			["write", ["Merc Arsenal", "Unlimited", _newmercweapons]] call _inidbi;
			
		}
		else
		{
			weapon_cache_temp addWeaponCargo [_weaponname,_weaponamount];

		};
};

 

In the ini file it is saved like this:

 

[Merc Arsenal]
Unlimited=""arifle_MXC_F,srifle_DMR_05_hex_F""

 

For ACE i need it like this: "weapon1","weapon2","weapon3" and so on.

 

I cant figure out how i can achieve to save all the currently unlocked ace-arsenal unlocks, to make them completely permanent throughout the campaign. Any solution?

 

Thanks in advance for your help.

 

Narsiph.

 

Edit:

Problem solved with the splitString command i was not aware of :)

Why you dont simply save the weapons as array instead of a string ?

Share this post


Link to post
Share on other sites
On 7.11.2018 at 11:47 PM, DeathF0X said:

Why you dont simply save the weapons as array instead of a string ?

 

Heyho.

 

I tried it, maybe wrong, but it did not save properly, for me, as array. Even then, i have to put everything into a command for ace. The way i did it was, in the end, very easy and quick, actually. Any clue for me, how i can save a proper array in the inidbi and getting it back as one? To know something would help in the future i guess, maybe you can give me an example of the idea of saving and loading arrays please :3

 

 

Stay crunchy.

 

 

Edit:

Figured out how to save an array in inidbi ^^ Actually, i have to write the exact same amount of code to create/check/delete stuff, so in case of code-writing, there is no real advantage, yet its still awesome to learn things and how you can make use of so many stuff. Awesome.

 

The Problem on my side was that i created the database beforehand as a empty string. To use arrays i have to initialize the specific database as array (or with nothing at all).

Share this post


Link to post
Share on other sites

Hey,

 

iam at ngz-server and i finally uploaded my mission to test. Offline with the 'Play in Multiplayer' over Eden-Editor, everything works out just perfect, exactly how i scriptet it. But as soon i put everything up on the gameserver, no database files are created. I tried to initialize it locally, globally, on the server, over the headless client. Not in a single case the database works. NGZ-Support Helper told me it should work, since the dll has all necessary rights, yet there was no developement update in over 2 years, maybe something does not work out anymore?

 

Or do i miss something eventually? Where can i go to figure out whats wrong, where should i start? What files, eventually, you guys would like to see? I got very familliar with inidbi and i got the message from the support-helper that i should use extdb, since that works (His word like "We have multiple altis life servers hostet that use extdb, they work just fine").

 

Should i change or try to find the error?

 

Looking forward to any help and thank you all in advance.

 

Stay crunchy.

 

 

Edit:

Solved the problem, which was in the server-mods. Instead of "@inidbi2" there was "@inidb2". Looking for days for this little "i" ... horrible -.-" Everything works just fine now and every other problem is just my poor mp-scripting knowledge that gets better and better with every line of code i write :3

  • Haha 1

Share this post


Link to post
Share on other sites

hello beautiful people, Im still learning a few things so i would like to ask one main question if I may?

Would this work on a dedicated server, run as a server mod? 
finally would this save everyones player location, inventory and zeus objects put down from previous op? 
I had the idea that it could help with doing linked missions or a campaign for a milsim group.
Or do i need to fiddle around with anything? 
If i need to do a wipe save how would i do this? 

Thanks!! and happy 2019 for all.

Share this post


Link to post
Share on other sites

Hello everyone and congratulations for the work done.
I am recently using this database mod.
I have a problem with jip.
If a player enters the mission after the start, the repositioning of the player does not work. Notice that I performed the tutorial on youtube step by step. Thanks in advance for your reply.

 

 

I add other info

I noticed that when entering the jip it writes a default file and inside it is written

[Player info]
Name = "" Error: No vehicle ""
Location = "[0,0,0]"
[Player Gear]
Gear = "[]"

evidently create this file and then throw the jip at coordinates 0,0,0

update hour 14;42
 

I believe the problem arises here ...

 

"checkForDataBase" addPublicVariableEventHandler
{

private ["_data"];
_data = (_this select 1);
_clientID = (_ data select 0);
_UID = (_data select 1);
_playerName = (_data select 2);

_inidbi = ["new", _ UID] call OO_INIDBI;
_fileExist = "exists" call _inidbi;

if (_fileExist) then {

null = [_ UID, _clientID] execVM "getData.sqf";

} Else {

null = [_ clientID, _UID, _playerName] execVM "createdatabase.sqf";

};
};

 

does not recognize _UID and creates a new file called default.ini

 

update  hour 16;15

 

further developments.

I went back to the code

 

_UID = getPlayerUID player;

 

present in the init.sqf

 

_UID is "" for the jip. this seems to be the problem

 

 

Share this post


Link to post
Share on other sites
7 hours ago, Grenadier ITF said:

Hello everyone and congratulations for the work done.
I am recently using this database mod.
I have a problem with jip.
If a player enters the mission after the start, the repositioning of the player does not work. Notice that I performed the tutorial on youtube step by step. Thanks in advance for your reply.

its been a very long time since ive touched arma 3, but try adding a delay for the JIP player, so after maybe a second or so have it run the script to load the necessary info for the player.

  • Like 1

Share this post


Link to post
Share on other sites
11 hours ago, gokitty1199 said:

its been a very long time since ive touched arma 3, but try adding a delay for the JIP player, so after maybe a second or so have it run the script to load the necessary info for the player.

 

What do you mean to add a delay for the JIP player?
where to apply it?

Share this post


Link to post
Share on other sites

hi all,

 

I have just a little problem in my code, between init.sqf and initserver.sqf.

 

Savedata work fine, i have :

 

[INFO]

name="test2019";

[OBJ]

obj="[["donnees A","donnees B","donnees C",[ "array_A","array_B","array_C"],"données D"]];

 

in intserver.sqf , for reading datas (only obj values) :

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  if (_databasefind) then {
  "récuperation" remoteExec ["hint"];
 
    _data_obj = ["read", ["OBJ", "obj", []]] call _inidbiUN;  

 

   DATABASE_LOAD = _data_obj;

 

    publicVariableServer "DATABASE_LOAD";
  };

 

on init.sqf :

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

"DATABASE_LOAD" addPublicVariableEventHandler {
private ["_data_load"];

 

_data_load = _this select 1;

 

 WPR_OBJ_Handler =_data_load ;
        
};

 

but  WPR_OBJ_Handler is empty ....

 

I would like to retrieve the string of characters contained in db and create a array :

 

//---------db---------------------------------------------------------------------------------------------------------------------------

obj="[["donnees A","donnees B","donnees C",[ "array_A","array_B","array_C"],"données D"]];

 

//-----------------------WPR_OBJ_Handler----------------------------------------------------------------------------------

WPR_OBJ_Handler=["donnees A","donnees B","donnees C",[ "array_A","array_B","array_C"],"données D"];

 

Thx for help

 

 

 

Share this post


Link to post
Share on other sites

Hello everyone

 

I managed to get the Player Gear Saved but the Player name doesn't get saved.

 

Perhaps the answer is obvious but I am verry new to programing and I can't find the Error.

 

Also the Gear from the Data Base doesn't get loaded in but I think thats due to the missing client name.

 

Quote

INIT.sqf

 

_clientID = clientOwner;
_UID = getPlayerUID player;
_name = name player;
checkForDatabase = [_clientID, _UID, _name];
publicVariableServer "checkForDatabase";

player addAction ["save data",
{
    _UID = getPlayerUID player;
    _gear = getUnitLoadout player;
    saveData = [_UID, _gear];
    publicVariableServer "saveData";
}];

"loadData" addPublicVariableEventHandler
{
    _gear = (_this select 1);
    
    player setUnitLoadout _gear;
};

 

Quote

SERVERINIT.sqf

 

"checkForDatabase" addPublicVariableEventHandler
{
    private ["_data"];
    _data = (_this select 1);
    _clientID = (_data select 0);
    _UID = (_data select 1);
    _playerName = (_data select 2);
    
    _inidbi = ["new", _UID] call OO_INIDBI;
    _fileExist = "exists" call _inidbi;
    
    if (_fileExist) then
    {
        hint "FILE DOES EXIST, GETTING DATA";
        null = [_UID, _clientID] execVM "getData.sqf";
    }
    else
    {
        hint "FILE DOES NOT EXIST, CREATING DATABASE";
        null = [_clientID, _UID, _playerName] execVM "createDatabase.sqf";
    };
};

"saveData" addPublicVariableEventHandler
{
    private ["_data"];
    _data = (_this select 1);
    _UID = (_data select 0);
    _gear = (_data select 1);
    
    _inidbi = ["new", _UID] call OO_INIDBI;
    
    ["write", ["Player Gear", "Gear", _gear]] call _inidbi;
};

Quote

GETDATA.sqf

_UID = (_this select 0);
_clientID = (_this select 1);

_inidbi = ["new", _UID] call OO_INIDBI;

_gear = ["read", ["Player Gear", "Gear", []]] call _inidbi;

loadData = _gear;

_clientID publicVariableClient "loadData";

Quote

CREATEDATABASE.sqf

_clientID = (_this select 0);
_UID = (_this select 1);
_playerName = (_this select 2);

Share this post


Link to post
Share on other sites

Hey guys, for everyone who want this to work on Linux servers: I went through the troubles of reimplementing the inidbi2.dll extension in C++: https://github.com/cmd-johnson/inidbi2-linux/

Just add @inidbi2 as usual, place the inidbi2.so inside the @inidbi2 folder and rename the "Addons" directory to "addons" (the Arma 3 server on Linux doesn't like the uppercase Addons folder).

 

That's it!

 

Running fine on my own Linux powered server for about a day now.

 

It's a quick & dirty implementation, but it works. Also it's the first extension I ever implemented. Please open up an issue on GitHub if you find anything missing / not working as expected.

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

hi  cmd_johnson


Nice stuff that will help linux administrators 🙂

 

There was a big work of porting inidbi to another language where you are certainly more comfortable.

 

In philosophy, even if porting in C ++ was not mandatory, the interface has been respected and it's a cool, usefull work & pratice to do it as first extension.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

@cmd-johnson

 

nice!

 

I switched back to linux and realize that this mod is not for linux.
Your work saves me!
Thank you for your work!

 

 

edit:

I can not get the mod to work.
copied your files into @ inidbi2 and renamed "Addons" in "addons".

 

"_inidbi = ["new", "test"] call OO_INIDBI; _version = "getVersion" call _inidbi; diag_log format ["Inidbi version: %1", _version];"

there is no issue

 

My Linux:

Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.144-3.1 (2019-02-19)

 

rwxrwxr-- (774)

brought no other result

 

 

mod is loaded by the server:

13:25:13                                           @inidbi2 |             @inidbi2 |      false |      false |             GAME DIR | da39a3ee5e6b4b0d3255bfef95601890afd80709 |  11fdd19c | /home/LoOni3r/Gameserver/Arma3/serverfiles/mods/@inidbi2
13:25:13 ==========================================================================================================================================================================================================

 

edit2:

problem solved

 

@inidbi2 must be in the main folder.
"mods\@inidbi2" does not work!

Share this post


Link to post
Share on other sites

Hey.

 

The following is not working:

 

    Function: setDbName
    Usage : ["setDbName", "newdbname"] call _inidbi;
    Output : nothing

 

I have this here:

private _dbArs = ["new", "Merc Arsenal"] call OO_INIDBI;
["setDbName", "yeahSo"] call _dbArs;

 

If anyone has any clue, that would be neat. The (enormous!) workaround i have to do is ridiculous.

Share this post


Link to post
Share on other sites

hi,

 

what do you want to do ? what is the result that you expect ?

 

how did you check if it works or not ?

Share this post


Link to post
Share on other sites

hi

 

Following the request of CommandoKain, I just release the new version 2.06 version of Inidbi2

 

change logs:

- Add "getKeys" method to retrieve all keys in a section

- add bool return for "setSeparator" method

- Fix bug return with "getSections" method

- manage somes exceptions with encode&decode base64

- update with last oop.h version

- update documentations

 

https://www.dropbox.com/s/3qiatpgrb83hqyw/%40inidbi2.zip?dl=0

 

I also published it to steam workshop.

  • Like 2

Share this post


Link to post
Share on other sites

Hello,

I thought after reading this over and over again I would finally understand what to do, however I am completely stumped. I wanted a system that would save mission progress so that the next time the server played the mission, it would start where the players last left off. I am not too overly concerned with saving player's loadouts. One particular mission I want this to work on is a warlords style mission that I am working on. I was wondering if saving mission progress is possible with iniDBI2? Does it do it automatically?

Thank you!

Share this post


Link to post
Share on other sites

the database is designed precisely for this and provides a great help to create files where the information is saved.
But you have to know that inidb2 is the starting base ba the rest you have to create it by code. If you need to save the position of an object, a vehicle or something else you have to script it to make sure that everything is saved at the right time and reloaded the next time. It is a huge job and always depends on what you want to do.

Sorry for my english

Share this post


Link to post
Share on other sites

I have worked with scripts before, I am very much an amateur. However, I personally can't find any information on saving the mission with iniDB2. I did find a lot of information on saving client and character information, which isn't too much of a concern for me. Is saving character/client information similar to saving mission information?

Do I have to use the profileNamespace in order to save the mission? or is that a different method separate from iniDB2? 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×