Search the Community
Showing results for tags 'inidbi2'.
Found 5 results
-
INIDBI2 Lastest Version : 2.06 by Code34 Direct Download from Dropbox Direct Download from Armaholic Github: https://github.com/code34/inidbi2 Steamworkshop: https://steamcommunity.com/sharedfiles/filedetails/?id=1768992669 Like to Donate ? Donate with paypal inidbi2 is a rebuild from scratch of inidbi project with C# and SQF++ for windows client/server Major improvements: New architecture oriented object support improve differents methods preload addon README DOCUMENTATION You can save and load data persistently for your mission. Save money for players, inventories, etc. This is meant for servers but it could be used for clients, too. Have fun 🙂 You can also find video tutorials from gokitty1199 on this page:
- 337 replies
-
- 23
-
Issues using inidbi2 for persistent saves
BeaniePope. posted a topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
I started using inidbi2 to hold persistent player data on a server my friends want to run. I have 4 sqf files, following a tutorial I watched, for using inidbi2 to get this done init.sqf _clientID = clientOwner; _playerUID = getPlayerUID player; _playername = name player; checkDatabaseEntry = [_clientID, _playerUID, _playername]; publicVariableServer "checkDatabaseEntry"; player addAction ["Save Data", { _playerUID = getPlayerUID player; _playerInventory = getUnitLoadout player; _saveData = [_playerUID, _playerInventory]; publicVariableServer "saveData"; }]; "loadData" addPublicVariableEventHandler { //private "_data"; //_data = [_this select 1]; _playerInventory = [_this select 1]; player setUnitLoadout _playerInventory; }; initServer.sqf "checkDatabaseEntry" addPublicVariableEventHandler { private "_data"; _data = [_this select 1]; _clientID = [_data select 0]; _playerUID = [_data select 1]; _playerName = [_data select 2]; _inidbi = ["new", _playerUID] call OO_INIDBI; _entryExists = "exists" call _inidbi; if (_entryExists) then { hint "Database Entry Found, Acquiring Data"; null = [_playerUID, _clientID] execVM "getDatabaseEntry.sqf"; } else { "Database Entry does not exist, creating Entry"; null = [_clientID, _playerUID, _playerName] execVM "createDatabaseEntry.sqf"; }; }; "saveData" addPublicVariableEventHandler { private "_data"; _data = [_this select 1]; _playerUID = [_this select 0]; _playerInventory = [_this select 1]; _inidbi = ["new", _playerUID] call OO_INIDBI; ["write", ["Player Inventory", "Inventory", _playerInventory]] call _inidbi; } getDatabaseEntry.sqf _playerUID = [_this select 0]; _clientID = [_this select 1]; _inidbi = ["new", _playerUID] call OO_INIDBI _playerInventory = ["read", ["Player Inventory", "Inventory", []]] call inidbi loadData = _playerInventory; _clientID publicVariableClient "loadData"; createDatabaseEntry.sqf _clientID = [_this select 0]; _playerUID = [_this select 1]; _playerName = [_this select 2]; _inidbi = ["new", _playerUID] call OO_INIDBI; ["write", ["Player Info", "Name", _playerName]] call _iniddbi Despite, my best efforts, I cannot get the scripts to work. Strangely, whenever I load in, despite following the tutorial to a T, Arma 3 seemingly skips over the checkDatabaseEntry event, and never runs it, as I never get the hint to pop up. I am running this with inidbi2 on a Armahosts server, any help would be GREATLY appreciated Thank you, Queen -
Arma 3 scripting tutorials from gokitty1199/IM SORRY BUFFALO(both me)
gokitty1199 posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Last content update: 6/13/2018 showing how to use the radius for addAction, using params instead of select, adding to arrays with various commands, altering arrays with various commands, get/setUnitLoadout Last content update: 6/10/2018 going through config files and getting details to sort what you want, using radius with addAction, params, and altering arrays with resize, pushBack, pushBackUnique, set, and append and going over to assist with resize count. Last content update: 5/27/2018 added GUI tutorial for how to make a weapon selector using cfgWeapon Last content update: 5/24/2018 added sector control tutorial Last content update: 5/21/2018 This is my arma 3 scripting tutorial series which is aimed to help both people getting into making their own scripts with fairly detailed simple tutorials as well as for the intermediate person looking to create their own features for their missions. The plans for this series is to almost fully cover everything behind the arma 3 missions that people play on a daily basis and have enough content provided in the videos where people can go off and make their own vision for their mission with the knowledge gained. Most of these videos are made on the fly at 1AM-4AM without any pretesting which should give someone the idea of what goes into finding syntax errors and narrowing down a bug that's causing your feature to not function properly. It is also an excuse for you to cut me some slack if you see mistakes :) . A lot of these tutorials are made with multiplayer in mind since I think most people want to play their missions online with their friends(which is why publicVariable has been utilized so much so new people can get a good grasp on the power those commands have). New videos are added to the playlist almost every day so if your stuck with something, maybe it has been covered in a video. If you have any requests on what you would like to see made then please suggest it here. topics covered so far Scripting tutorial playlist Database tutorials with INIDBI2 playlist GUI/Dialog tutorials playlist- 23 replies
-
- 19
-
The inidbi2 public variable is overwritten!
LONG QI posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I used the example in http://www.armaholic.com/forums.php?m=posts&q=35771 but it is normal when I go in, but when new players enter the server, they will all remove the equipment and cycle through the equipment. How to solve this? After the player enters, all players are naked! How can I solve this problem? initserver.sqf waitUntil {time > 0}; // --------------------------------------------------------------------checking the database----------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- "un_database_check" addPublicVariableEventHandler { private ["_packet"]; _packet = _this select 1; _dataplayrowner = _packet select 0; _dataplayrname = _packet select 1; _dataplayruid = _packet select 2; _datanamearray = format ["%1_%2_mycustommissionname", _dataplayrname, _dataplayruid]; _databasename = _datanamearray; _inidbiUN = ["new", _databasename] call OO_INIDBI; _databasefind = "exists" call _inidbiUN; // ------------------------------------------------------cant find the database saveing new players name and uid--------------------------------------------------- if (!_databasefind) then { ["write", ["INFO", "Name", _dataplayrname]] call _inidbiUN; ["write", ["INFO", "UID", _dataplayruid]] call _inidbiUN; "welcome new spawn" remoteExec ["hint"]; }; // --------------------------------------------------------found the database now loading data to send to player--------------------------------------------------- if (_databasefind) then { "found the database" remoteExec ["hint"]; _readpos = ["read", ["POSITION", "Position", []]] call _inidbiUN; _readdir = ["read", ["POSITION", "Direction", ""]] call _inidbiUN; _readdamage = ["read", ["INFO", "Health", ""]] call _inidbiUN; _readloadout = ["read", ["GEAR", "Loadout", []]] call _inidbiUN; un_database_load = [_readpos, _readdir, _readdamage, _readloadout]; _dataplayrowner publicVariableClient "un_database_load"; }; un_database_check = nil; }; // --------------------------------------------------player sent save game data to server - saving it to database-------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- "un_database_save" addPublicVariableEventHandler { private ["_packet"]; _packet = _this select 1; _datanamearray = format ["%1_%2_mycustommissionname", _packet select 0, _packet select 1]; _databasename = _datanamearray; _inidbiUN = ["new", _databasename] call OO_INIDBI; ["write", ["INFO", "Name", _packet select 0]] call _inidbiUN; ["write", ["INFO", "UID", _packet select 1]] call _inidbiUN; ["write", ["POSITION", "Position", _packet select 2]] call _inidbiUN; ["write", ["POSITION", "Direction", _packet select 3]] call _inidbiUN; ["write", ["INFO", "Health", _packet select 4]] call _inidbiUN; ["write", ["GEAR", "Loadout", _packet select 5]] call _inidbiUN; "Progress Saved" remoteExec ["hint"]; }; // MrJizz - Factionfinderdotcom initplayerlocal.sqf waitUntil {time > 10}; // -------------------------------------------------------send name and uid to server to check for database-------------------------------------------------------- if (!isNil "un_database_check") then { un_database_check = nil; }; sleep 1; if (isNil "un_database_check") then { _dataplayrowner = clientOwner; _dataplayrname = profileName; _dataplayruid = getPlayerUID player; un_database_check = [_dataplayrowner,_dataplayrname,_dataplayruid]; publicVariableServer "un_database_check"; }; // ------------------------------------------------------server found database and now sent us the data to load---------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- "un_database_load" addPublicVariableEventHandler { private ["_ppacket"]; _ppacket = _this select 1; _readpos = _ppacket select 0; _readdir = _ppacket select 1; _readdamage = _ppacket select 2; _readloadout = _ppacket select 3; _passtheparcel = [_readpos, _readdir, _readdamage, _readloadout]; _Null = _passtheparcel call FN_loaddata; }; // -----------------------------------------------applying the data sent to player - magazine loaded work around------------------------------------------------- FN_loaddata = { params ["_readpos", "_readdir", "_readdamage", "_readloadout"]; hint "all your shit has loaded"; // Clear player gear removeAllAssignedItems player; removeAllItems player; clearAllItemsFromBackpack player; removeBackpack player; removeUniform player; removeVest player; removeHeadgear player; removeGoggles player; removeAllWeapons player; removeAllPrimaryWeaponItems player; removeAllHandgunItems player; cash = 0; killcount = 0; // Add player gear player setPosATL _readpos; player setDir _readdir; player setDamage _readdamage; player setUnitLoadout _readloadout; un_database_load = nil; publicVariable "un_database_load"; }; // ---------------------------------------------------------request to save game - send data to server------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- UN_savedata = { _dataplayrname = profileName; _dataplayruid = getPlayerUID player; _dataplayrpos = getPosATL player; _dataplayrdir = direction player; _dataplayrdamage = damage player; _dataplayrloadout = getUnitLoadout player; un_database_save = [_dataplayrname, _dataplayruid, _dataplayrpos, _dataplayrdir, _dataplayrdamage, _dataplayrloadout]; publicVariableServer "un_database_save"; hint "saveing game"; }; // ------------------------------------------------------------addaction to player to save data-------------------------------------------------------------------- player addAction ["<t color='#38BAFF'>Save Game</t>", {[] call UN_savedata;}]; // MrJizz - Factionfinderdotcom -
Hello, I'm trying to use inidbi2 to save the progress of my server, because the mission I'm doing is very long (domination by xeno), and I have no way to leave the server on all the time, but I'm very inexperienced creating servers, so I do not understand how to put this tool on my server, could someone help me? inidbi2: