Custom loadouts?

ok Im lost is this server_playerLogin.sqf thats in the dayz_server.pbo or inside the dayz_code.sqf cause the one is dayz_code doesnt look nothing like this
 
hi. very, VERY new to all of this. can anyone please explain in relative layman's terms how to edit custom player loadouts for my overwatch server? thank you very much. any feedback would be much appreciated.

i.e. I've tried to make a custom loadout and load it into the cutom loadout profile and i get this error message: SQL query: Edit
INSERT INTO `dayz_reality_hive_trevors`.`cust_loadout_profile` (
`cust_loadout_id` ,
`unique_id`
)
VALUES(
'5', '113833862'
)

MySQL said:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`dayz_reality_hive_trevors`.`cust_loadout_profile`, CONSTRAINT `cust_loadout_profile_ibfk_2` FOREIGN KEY (`unique_id`) REFERENCES `profile` (`unique_id`))
 
You ave to create a loadout in the cust_loadout table, then insert a new player id and choose the custom loadout id from the drop down.



@hawkeye, yes the one in dayz_server pbo
 
thank you. i did create one. can it have any weapon, say an xmr2010? and where/how do i insert the player id? sorry, i have like no experience with this type of stuff. if someone could walk me through it etc. i tried the xstream gaming walkthrough and that's how i got that error.
 
for example, where i believe i put the player id, do i choose char from the dropdown bar or do i just put in the player id? example: 113833862


INSERT INTO `dayz_reality_hive_trevors`.`cust_loadout_profile` (
`cust_loadout_id` ,
`unique_id`
)
VALUES(
'3', '113833862'
)

MySQL said:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`dayz_reality_hive_trevors`.`cust_loadout_profile`, CONSTRAINT `cust_loadout_profile_ibfk_2` FOREIGN KEY (`unique_id`) REFERENCES `profile` (`unique_id`))
 
so, apparently there's an idssue with my server architechture. can anyone help me or point me in the right direction for this kind of isse?
 
What server hosts are you using at the moment? Like HFB, Xstream Gaming? Cause I would like to get a dayz overwatch server but still be able to make custom loadouts.

running a dedicated server. IDK about any of the slot based hosts.
 
FIXED IT!!!
Hambeast, I re-did your fix with the player_login snippets of code.. I'll copy my exact code and you can use it.

Code:
private["_botActive","_int","_newModel","_doLoop","_wait","_hiveVer","_isHiveOk","_playerID","_playerObj","_randomSpot","_publishTo","_primary","_secondary","_key","_result","_charID","_playerObj","_playerName","_finished","_spawnPos","_spawnDir","_items","_counter","_magazines","_weapons","_group","_backpack","_worldspace","_direction","_newUnit","_score","_position","_isNew","_inventory","_backpack","_medical","_survival","_stats","_state"];
//Set Variables
 
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"
 
#ifdef LOGIN_DEBUG
diag_log ("STARTING LOGIN: " + str(_this));
#endif
 
_playerID = _this select 0;
_playerObj = _this select 1;
_playerName = name _playerObj;
_worldspace = [];
 
if (_playerName == '__SERVER__' || _playerID == '' || local player) exitWith {};
 
// Cancel any login until server_monitor terminates.
// This is mandatory since all vehicles must be spawned before the first players spawn on the map.
// Otherwise, all vehicle event handlers won't be created on players' client side.
if (isNil "sm_done") exitWith { diag_log ("Login cancelled, server is not ready. " + str(_playerObj)); };
 
 
if (count _this > 2) then {
    dayz_players = dayz_players - [_this select 2];
};
 
//Variables
_inventory =    [];
_backpack =    [];
_items =        [];
_magazines =    [];
_weapons =        [];
_medicalStats =    [];
_survival =        [0,0,0];
_tent =            [];
_state =        [];
_direction =    0;
_model =        "";
_newUnit =        objNull;
_botActive = false;
 
if (_playerID == "") then {
    _playerID = getPlayerUID _playerObj;
};
 
if ((_playerID == "") or (isNil "_playerID")) exitWith {
    diag_log ("LOGIN FAILED: Player [" + _playerName + "] has no login ID");
};
 
//??? endLoadingScreen;
#ifdef LOGIN_DEBUG
diag_log ("LOGIN ATTEMPT: " + str(_playerID) + " " + _playerName);
#endif
 
//Do Connection Attempt
_doLoop = 0;
while {_doLoop < 5} do {
    _key = format["CHILD:101:%1:%2:%3:",_playerID,dayZ_instance,_playerName];
    _primary = _key call server_hiveReadWrite;
    if (count _primary > 0) then {
        if ((_primary select 0) != "ERROR") then {
            _doLoop = 9;
        };
    };
    _doLoop = _doLoop + 1;
};
 
if (isNull _playerObj or !isPlayer _playerObj) exitWith {
    diag_log ("LOGIN RESULT: Exiting, player object null: " + str(_playerObj));
};
 
if ((_primary select 0) == "ERROR") exitWith { 
    diag_log format ["LOGIN RESULT: Exiting, failed to load _primary: %1 for player: %2 ",_primary,_playerID];
};
 
//Process request
_newPlayer =    _primary select 1;
_isNew =        count _primary < 6; //_result select 1;
_charID =        _primary select 2;
_randomSpot = false;
 
//diag_log ("LOGIN RESULT: " + str(_primary));
 
/* PROCESS */
_hiveVer = 0;
 
if (!_isNew) then {
    //RETURNING CHARACTER     
    _inventory =    _primary select 4;
    _backpack =    _primary select 5;
    _survival =        _primary select 6;
    _model =        _primary select 7;
    _hiveVer =        _primary select 8;
 
    if (_model == "") then {
                _key = format["CHILD:999:select replace(cl.`inventory`, '""', '""""') inventory, replace(cl.`backpack`, '""', '""""') backpack, replace(coalesce(cl.`model`, 'Survivor2_DZ'), '""', '""""') model from `cust_loadout` cl join `cust_loadout_profile` clp on clp.`cust_loadout_id` = cl.`id` where clp.`unique_id` = '?':[%1]:",str(_playerID)];
                _data = "HiveEXT" callExtension _key;
 
                //Process result
                _result = call compile format ["%1", _data];
                _status = _result select 0;
 
                if (_status == "CustomStreamStart") then {
                        if ((_result select 1) > 0) then {
                                _data = "HiveEXT" callExtension _key;
                                _result = call compile format ["%1", _data];
                                _inventory = call compile (_result select 0);
                                _backpack = call compile (_result select 1);
                                _model = call compile (_result select 2);
                        };
                };
        };
 
    if (!(_model in ["SurvivorW2_DZ","Survivor2_DZ","Sniper1_DZ","Soldier1_DZ","Camo1_DZ","BanditW1_DZ","Bandit1_DZ","Survivor3_DZ"])) then {
        _model = "Survivor2_DZ";
    };
 
} else {
    _model =        _primary select 3;
    _hiveVer =        _primary select 4;
    if (isNil "_model") then {
        _model = "Survivor2_DZ";
    } else {
        if (_model == "") then {
            _model = "Survivor2_DZ";
        };
    };
 
    //Record initial inventory
    _config = (configFile >> "CfgSurvival" >> "Inventory" >> "Default");
    _mags = getArray (_config >> "magazines");
    _wpns = getArray (_config >> "weapons");
    _bcpk = getText (_config >> "backpack");
    _randomSpot = true;
 
    //Wait for HIVE to be free
    _key = format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]];
    _key call server_hiveWrite;
 
};
#ifdef LOGIN_DEBUG
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj));
#endif
 
_isHiveOk = false;    //EDITED
if (_hiveVer >= dayz_hiveVersionNo) then {
    _isHiveOk = true;
};
//diag_log ("SERVER RESULT: " + str("X") + " " + str(dayz_hiveVersionNo));
 
//Server publishes variable to clients and WAITS
//_playerObj setVariable ["publish",[_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer],true];
 
dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer];
(owner _playerObj) publicVariableClient "dayzPlayerLogin";


Also, the main fix, was I replaced the HiveExt.dll with a hiveext.dll from my previous reality private server for DayZ 1.7.7.1. It is 1,407kb instead of 1,409kb, and it works like a charm.

Custom loadouts work, and instance table loadout works for players without custom loadouts.

If you have questions, just ask.
Have everything done as it should and used the hiveext.dll you used but im getting an error once the hive opens server_toggle_debug or something? any ideas
 
I just commented out the one line up top and it seems to be working great untill the server gets these Hiveext errors "Error Exectuing Child 306
Error Exectuing Child 305"

dono what the hell that is but ive been getting it before the CustomLoadout changes.


Great working addon for overwatch!
 
I have a question, I've replaced the server_playerLogin.sqf with the above code. I created the cust_loadout and cust_loadout_profile and also replaced the hiveEXT.dll. However it still gives me the standard loadout. Is there something else I'm missing?

Thanks
 
i have a question, how must look the cust_loadout and cust_loadout_profile. Maybe someone can provide me a .sql file ? Would be awesome :)

thanks in advance,
barci
 
I cant get this working on overwatch 2.2 I Edited my dayz_server.pbo\compile\Server_playerlogin.sqf\ to the code above.
I forgot to mention I had to modify the script to work with 2.1

here is the current working script: http://pastebin.com/ssDdT3Wg
And I Have the correct .dll file. Im hosted with HFB i asked if they could upload it for me and they said my server already has that .dll. And I have assigned a loadout to my PUID in my database.
Any help would be appreciated.
 
  • Like
Reactions: Bio
Back
Top