Jump to content

Startloadout "default.sqf"!?


Sporny

Recommended Posts

Hey guys,

 

i think the default Loadout is set in cache/players/default.sqf!?

 

here is mine

["PASS",false,"1",[],[["8Rnd_9x18_Makarov","8Rnd_9x18_Makarov","ItemBandage","ItemPainkiller"],["ItemMap","ItemCompass","ItemRadio","Makarov","ItemSodaCoke","FoodbeefCooked"]],["DZ_Patrol_Pack_EP1",[],[]],[0,0,0],"Survivor2_DZ",0.96,0]

 

but iam starting with:

 

ItemSodaCoke

FoodbeefCooked

ItemGPS

ItemWatch

 

any ideas whats wrong?

Link to comment
Share on other sites

If all you want is a default loadout, put this in your mission init.sqf : 

// NewSpawn Loadout
DefaultMagazines = ["8Rnd_9x18_MakarovSD","8Rnd_9x18_MakarovSD","ItemBandage","ItemBandage","ItemMorphine","FoodCanFrankBeans","ItemSodaPepsi"];
DefaultWeapons = ["ItemToolbox","ItemGPS","ItemRadio","Binocular","ItemWatch","MakarovSD"];
DefaultBackpack = "DZ_ALICE_Pack_EP1";
DefaultBackpackWeapon = "";

just under dayz_fullMoonNights = true; and edit it to your liking.

Link to comment
Share on other sites

Initially devd did it so that the default configuration for loadout is at the beginning of writer.pl.

With something I've changed (not sure if it was Gender Select...need to have a look) it was then possible to do it in init.sqf.

If I remember correctly using init.sqf was not possible in an unchanged A2OA Linux server.

 

 

EDIT: yes, it was here (fix to make Gender Select and Play as Zombie possible). With these changes as a side effect Custom Loadout via init.sqf was working for me.

Link to comment
Share on other sites

Okay... ive got the coins script so your tutorial is not correct for me (i think)... and the loadout in the writer.pl also dont work..... there is a makarov.... but i start with nothing else as a cola and cooked meet :/

Link to comment
Share on other sites

It is this part in 'server pbo'/compile/server_playerLogin.sqf which is responsible for getting the default loadout setup in init.sqf.

I don't know how that looks for you.

 

//Record initial inventory only if not player zombie (values defined in init.sqf)
    if(_isInfected != 1) then {
        _config = (configFile >> "CfgSurvival" >> "Inventory" >> "Default");
        _mags = getArray (_config >> "magazines");
        _wpns = getArray (_config >> "weapons");
        _bcpk = getText (_config >> "backpack");

        if(!isNil "DefaultMagazines") then {
            _mags = DefaultMagazines;
        };
        if(!isNil "DefaultWeapons") then {
            _wpns = DefaultWeapons;
        };
        if(!isNil "DefaultBackpack") then {
            _bcpk = DefaultBackpack;
        };
        //_randomSpot = true;
    
        //Wait for HIVE to be free
        diag_log format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]];
    };

The problem here is to get the value for __isInfected (zombie or man)

Enter a ' _isInfected = 0; ' before the if condition for testing.

 

 

This is in my init.sqf:

DefaultMagazines = ["ItemBandage","ItemBandage","ItemSodaCoke","FoodCanBakedBeans","ItemPainkiller"];
DefaultWeapons = ["ItemCompass","ItemRadio","ItemToolbox","ItemMachete","ItemMap"];
DefaultBackpack = "DZ_TerminalPack_EP1";
DefaultBackpackItems = [""];

 

I still have this in my writer.pl:

INVENTORY => '[["ItemMap","ItemMachete","ItemCompass","ItemToolbox","ItemRadio"],["ItemBandage","ItemPainkiller","ItemBandage","ItemSodaCoke","FoodCanBakedBeans"]]',
BACKPACK  => '["DZ_TerminalPack_EP1",[],[]]',
MODEL     => '"Survivor2_DZ"'

 

Thought I did delete this, hm. It's too long ago. But I remember that without changing server_playerLogin.sqf it was not possible via init.sqf.

Link to comment
Share on other sites

private ["_characterID","_playerObj","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_lastinstance","_friendlies","_randomSpot","_position","_debug","_distance","_hit","_fractures","_score","_findSpot","_pos","_isIsland","_w","_clientID","_spawnMC","_namespace"];



//diag_log ("SETUP: attempted with " + str(_this));

_characterID = _this select 0;
_playerObj = _this select 1;
_playerID = getPlayerUID _playerObj;
_playerName = name _playerObj;

if (isNull _playerObj) exitWith {
    diag_log ("SETUP INIT FAILED: Exiting, player object null: " + str(_playerObj));
};

//Add MPHit event handler
// diag_log("Adding MPHit EH for " + str(_playerObj));
_playerObj addMPEventHandler ["MPHit", {_this spawn fnc_plyrHit;}];

if (_playerID == "") then {
    _playerID = getPlayerUID _playerObj;
};

if (_playerID == "") exitWith {
    diag_log ("SETUP INIT FAILED: Exiting, no player ID: " + str(_playerObj));
};

private["_dummy"];
_dummy = getPlayerUID _playerObj;
if ( _playerID != _dummy ) then {
    diag_log format["DEBUG: _playerID miscompare with UID! _playerID:%1",_playerID];
    _playerID = _dummy;
};

//Variables
_worldspace =     [];

_state =         [];
//Soul start: SC Edit >>> initialize variables in main scope (helps avoiding scope issues within the file and avoids undeclared variable errors in rpt, aswell they server as default values if anything goes wrong)
_cashMoney = 0;
_bankMoney = 0;
//Soul end: SC Edit

//Do Connection Attempt
_doLoop = 0;
while {_doLoop < 5} do {

    _key = format["CHILD:102:%1:",_characterID];
    diag_log (_key);
    _key = format["\cache\players\%1\%2-char.sqf", MyPlayerCounter, toLower(_playerID)];
    diag_log ("LOAD CHARACTER: "+_key);
    _res = preprocessFile _key;
    diag_log ("CHARACTER CACHE: "+_res);

    if ((_res == "") or (isNil "_res")) then {
        _key = format["\cache\players\%1\%2-char.sqf", (MyPlayerCounter - 1), toLower(_playerID)];
        diag_log ("BACKLOAD CHARACTER: "+_key);
        _res = preprocessFile _key;
        diag_log ("CHARACTER CACHE: "+_res);
    };

    if ((_res == "") or (isNil "_res")) then {
        _res = preprocessFile "\cache\players\default-char.sqf";
        diag_log ("CHARACTER DEFAULT CACHE: "+_res);
        if ((_res == "") or (isNil "_res")) then {
            _primary = ["PASS",[],[0,0,0,0],[],[],2500,1,0];
        } else {
            _primary = call compile _res;
        };
    } else {
        _primary = call compile _res;
    };
    _res = nil;

    if (count _primary > 0) then {
        if ((_primary select 0) != "ERROR") then {
             _doLoop = 9;
        };
    };
    _doLoop = _doLoop + 1;
};

if (isNull _playerObj || !isPlayer _playerObj) exitWith {
    diag_log ("SETUP RESULT: Exiting, player object null: " + str(_playerObj));
};

//Wait for HIVE to be free
//diag_log ("SETUP: RESULT: Successful with " + str(_primary));

_medical =        _primary select 1;
_stats =        _primary select 2;
_state =        _primary select 3;
_worldspace =     _primary select 4;
_humanity =        _primary select 5;
_lastinstance =    _primary select 6;
//Soul start: SC Edit >>> loading player cash into variable / overwriting default 0 value with returned value.
_cashMoney =     _primary select 7;
//Soul end: SC Edit

//Set position
_randomSpot = false;
_lastinstance = dayZ_instance;

diag_log format["_characterID: %1", _characterID];
diag_log format["_cashMoney:%1:", _cashMoney]; // Shows that cashMoney is pulled from database

//Set position
_randomSpot = false;

diag_log ("WORLDSPACE: " + str(_worldspace));

if (count _worldspace > 0) then {

    _position = _worldspace select 1;
    if (count _position < 3) then {
        //prevent debug world!
        _randomSpot = true;
    };
    _debug = getMarkerpos "respawn_west";
    _distance = _debug distance _position;
    if (_distance < 2000) then {
        _randomSpot = true;
    };
    
    _distance = [0,0,0] distance _position;
    if (_distance < 500) then {
        _randomSpot = true;
    };
    
    // Came from another server force random spawn
    if (_lastinstance != dayZ_instance) then {
        _randomSpot = true;
    };

    //_playerObj setPosATL _position;
} else {
    _randomSpot = true;
};

diag_log ("LOGIN: Location: " + str(_worldspace) + " doRnd?: " + str(_randomSpot));

//set medical values
if (count _medical > 0) then {
    _playerObj setVariable["USEC_isDead",(_medical select 0),true];
    _playerObj setVariable["NORRN_unconscious", (_medical select 1), true];
    _playerObj setVariable["USEC_infected",(_medical select 2),true];
    _playerObj setVariable["USEC_injured",(_medical select 3),true];
    _playerObj setVariable["USEC_inPain",(_medical select 4),true];
    _playerObj setVariable["USEC_isCardiac",(_medical select 5),true];
    _playerObj setVariable["USEC_lowBlood",(_medical select 6),true];
    _playerObj setVariable["USEC_BloodQty",(_medical select 7),true];
    _playerObj setVariable["unconsciousTime",(_medical select 10),true];
        
    //Add Wounds
    {
        _playerObj setVariable[_x,true,true];
        //["usecBleed",[_playerObj,_x,_hit]] call broadcastRpcCallAll;
        usecBleed = [_playerObj,_x,_hit];
        publicVariable "usecBleed";
    } count (_medical select 8);
    
    //Add fractures
    _fractures = (_medical select 9);
    _playerObj setVariable ["hit_legs",(_fractures select 0),true];
    _playerObj setVariable ["hit_hands",(_fractures select 1),true];
    
    if (count _medical > 11) then {
        //Additional medical stats
        _playerObj setVariable ["messing",(_medical select 11),true];
    };
    
} else {
    //Reset Fractures
    _playerObj setVariable["hit_legs",0,true];
    _playerObj setVariable["hit_hands",0,true];
    _playerObj setVariable["USEC_injured",false,true];
    _playerObj setVariable["USEC_inPain",false,true];
    _playerObj setVariable["messing",[0,0],true];
};
    
if (count _stats > 0) then {    
    //register stats
    _playerObj setVariable["zombieKills",(_stats select 0),true];
    _playerObj setVariable["headShots",(_stats select 1),true];
    _playerObj setVariable["humanKills",(_stats select 2),true];
    _playerObj setVariable["banditKills",(_stats select 3),true];
    _playerObj addScore (_stats select 1);
    _playerObj setVariable["moneychanged",0,true];    
    _playerObj setVariable["bankchanged",0,true];    
    _playerObj setVariable["AsReMixhud", true,true];
    
    //Save Score
    _score = score _playerObj;
    _playerObj addScore ((_stats select 0) - _score);
    
    //record for Server JIP checks
    _playerObj setVariable["zombieKills_CHK",(_stats select 0)];
    _playerObj setVariable["headShots_CHK",(_stats select 1)];
    _playerObj setVariable["humanKills_CHK",(_stats select 2)];
    _playerObj setVariable["banditKills_CHK",(_stats select 3)];
    if (count _stats > 4) then {
        if (!(_stats select 3)) then {
            _playerObj setVariable["selectSex",true,true];
        };
    } else {
        _playerObj setVariable["selectSex",true,true];
    };
} else {
    //Save initial loadout
    //register stats
    _playerObj setVariable["zombieKills",0,true];
    _playerObj setVariable["humanKills",0,true];
    _playerObj setVariable["banditKills",0,true];
    _playerObj setVariable["headShots",0,true];
    _playerObj setVariable["friendlies",[],true];
    _playerObj setVariable["AsReMixhud", true,true];
    
    //record for Server JIP checks
    _playerObj setVariable["zombieKills_CHK",0];
    _playerObj setVariable["humanKills_CHK",0,true];
    _playerObj setVariable["banditKills_CHK",0,true];
    _playerObj setVariable["headShots_CHK",0];
};

if (_randomSpot) then {
    private["_counter","_position","_isNear","_isZero","_mkr"];
    if (!isDedicated) then {
        endLoadingScreen;
    };
    
    //Spawn modify via mission init.sqf
    if(isnil "spawnArea") then {
        spawnArea = 1500;
    };
    if(isnil "spawnShoremode") then {
        spawnShoremode = 1;
    };
    
    //
    _spawnMC = actualSpawnMarkerCount;

    //spawn into random
    _findSpot = true;
    _mkr = "";
    while {_findSpot} do {
        _counter = 0;
        while {_counter < 20 && _findSpot} do {
            // switched to floor
            _mkr = "spawn" + str(floor(random _spawnMC));
            _position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos);
            _isNear = count (_position nearEntities ["Man",100]) == 0;
            _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
            //Island Check        //TeeChange
            _pos         = _position;
            _isIsland    = false;        //Can be set to true during the Check
            for [{_w=0},{_w<=150},{_w=_w+2}] do {
                _pos = [(_pos select 0),((_pos select 1) + _w),(_pos select 2)];
                if(surfaceisWater _pos) exitWith {
                    _isIsland = true;
                };
            };
            
            if ((_isNear && !_isZero) || _isIsland) then {_findSpot = false};
            _counter = _counter + 1;
        };
    };
    _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
    _position = [_position select 0,_position select 1,0];
    if (!_isZero) then {
        //_playerObj setPosATL _position;
        _worldspace = [0,_position];
    };
};

diag_log ("SETUP WORLDSPACE: " + str(_worldspace));

//Record player for management
dayz_players set [count dayz_players,_playerObj];

//record player pos locally for server checking
_playerObj setVariable["CharacterID",_characterID,true];
_playerObj setVariable["humanity",_humanity,true];
_playerObj setVariable["humanity_CHK",_humanity];
_playerObj setVariable["lastPos",getPosATL _playerObj];
//Soul start: SC Edit >>> assigning player new variable for cashmoney and bankMoney
_playerObj setVariable ["cashMoney",_cashMoney,true];
_playerObj setVariable ["cashMoney_CHK",_cashMoney];
//Soul end: SC Edit
dayzPlayerLogin2 = [_worldspace,_state];

// PVDZE_obj_Debris = DZE_LocalRoadBlocks;
_clientID = owner _playerObj;

if (!isNull _playerObj) then {

    _clientID publicVariableClient "dayzPlayerLogin2";
    
    if (isNil "PVDZE_plr_SetDate") then {
        //call server_timeSync;
            diag_log ("TIME SYNC ERROR!");
            PVDZE_plr_SetDate = date;
            publicVariable "PVDZE_plr_SetDate";
    };
    _clientID publicVariableClient "PVDZE_plr_SetDate";
};
//record time started
_playerObj setVariable ["lastTime",time];
//_playerObj setVariable ["model_CHK",typeOf _playerObj];

//Do Connection Attempt
_doLoop = 0;
while {_doLoop < 5} do {

    _key = format["CHILD:298:%1:", _playerID];
    diag_log (_key);
    _key = format["\cache\players\%1\%2-bank.sqf", MyPlayerCounter, toLower(_playerID)];
    diag_log ("LOAD BANK: "+_key);
    
    // This is an artificial sleep function since Arma won't actually allow sleep here.
    // This loop is necessary in order to give the writer.pl enough time to update the bank cache before this function "preprocessFile" loads it...
    // Increase the number if your players BankSaldo does not update correctly after logging in.
    // Don't ask...
    _sleep_loop = 0;
    while {_sleep_loop < 300} do {
        _sleep_loop = _sleep_loop + 1;
    };
    
    _res = preprocessFile _key;
    diag_log ("BANK CACHE: "+_res);

    if ((_res == "") or (isNil "_res")) then {
        _key = format["\cache\players\%1\%2-bank.sqf", (MyPlayerCounter - 1), toLower(_playerID)];
        diag_log ("BACKLOAD BANK: "+_key);
        _res = preprocessFile _key;
        diag_log ("BANK CACHE: "+_res);
    };

    if ((_res == "") or (isNil "_res")) then {
        _res = preprocessFile "\cache\players\default-bank.sqf";
        diag_log ("BANK DEFAULT CACHE: "+_res);
        if ((_res == "") or (isNil "_res")) then {
            _primary = ["PASS",0];
        } else {
            _primary = call compile _res;
        };
    } else {
        _primary = call compile _res;
    };
    _res = nil;

    if(count _primary > 0) then {
        if((_primary select 0) != "ERROR") then {
            _bankMoney = _primary select 1;
            _playerObj setVariable["bankMoney",_bankMoney,true];
            _playerObj setVariable["bankMoney_CHK",_bankMoney];
            _doLoop = 9;
        } else {
            _playerObj setVariable["bankMoney",0,true];
            _playerObj setVariable["bankMoney_CHK",0];
        };
    } else {
        _playerObj setVariable["bankMoney",0,true];
        _playerObj setVariable["bankMoney_CHK",0];
    };
    _doLoop = _doLoop + 1;
};

//diag_log ("LOGIN PUBLISHING: " + str(_playerObj) + " Type: " + (typeOf _playerObj));

PVDZE_plr_Login = nil;
PVDZE_plr_Login2 = nil;

Link to comment
Share on other sites

oops :D

 

private ["_isInfected","_doLoop","_hiveVer","_isHiveOk","_playerID","_playerObj","_primary","_key","_charID","_playerName","_backpack","_isNew","_inventory","_survival","_model","_mags","_wpns","_bcpk","_config","_newPlayer"];



#ifdef DZE_SERVER_DEBUG
diag_log ("STARTING LOGIN: " + str(_this));
#endif

_playerID = _this select 0;
_playerObj = _this select 1;
_playerName = name _playerObj;

if (_playerName == '__SERVER__' || _playerID == '' || local player) exitWith {};

if (isNil "sm_done") exitWith {
#ifdef DZE_SERVER_DEBUG
    diag_log ("Login cancelled, server is not ready. " + str(_playerObj));
#endif
};

if (count _this > 2) then {
    dayz_players = dayz_players - [_this select 2];
};

//Variables
_inventory =    [];
_backpack =     [];
_survival =        [0,0,0];
_isInfected =   0;
_model =        "";

if (_playerID == "") then {
    _playerID = getPlayerUID _playerObj;
};

if ((_playerID == "") || (isNil "_playerID")) exitWith {
#ifdef DZE_SERVER_DEBUG
    diag_log ("LOGIN FAILED: Player [" + _playerName + "] has no login ID");
#endif
};

#ifdef DZE_SERVER_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];
    diag_log (_key);
        _key = format["\cache\players\%1\%2.sqf", MyPlayerCounter, toLower(_playerID)];
        diag_log ("LOAD PLAYER: "+_key);
        _res = preprocessFile _key;
        diag_log ("PLAYER CACHE: "+_res);

        if ((_res == "") or (isNil "_res")) then {
            _key = format["\cache\players\%1\%2.sqf", (MyPlayerCounter - 1), toLower(_playerID)];
            diag_log ("BACKLOAD PLAYER: "+_key);
            _res = preprocessFile _key;
            diag_log ("PLAYER CACHE: "+_res);
        };
        if ((_res == "") or (isNil "_res")) then {
            _res = preprocessFile "\cache\players\default.sqf";
            diag_log ("PLAYER DEFAULT CACHE: "+_res);
            if ((_res == "") or (isNil "_res")) then {            
            _primary = ["PASS",false,"1",[],[["ItemFlashlight","ItemMap","ItemGPS"],["ItemBandage"]],["DZ_Patrol_Pack_EP1",[],[]],[0,0,0],"Survivor2_DZ",0.96];
            } else {  
                _primary = call compile _res;
            };
        } else {
            _primary = call compile _res;
        };
        _res = nil;
    
        MyPlayerCounter = MyPlayerCounter + 1;
        diag_log format["CHILD:11:%1:", MyPlayerCounter];

    if (count _primary > 0) then {
        if ((_primary select 0) != "ERROR") then {
            _doLoop = 9;
        };
    };
    _doLoop = _doLoop + 1;
};

if (isNull _playerObj || !isPlayer _playerObj) exitWith {
#ifdef DZE_SERVER_DEBUG
    diag_log ("LOGIN RESULT: Exiting, player object null: " + str(_playerObj));
#endif
};

if ((_primary select 0) == "ERROR") exitWith {
#ifdef DZE_SERVER_DEBUG
    diag_log format ["LOGIN RESULT: Exiting, failed to load _primary: %1 for player: %2 ",_primary,_playerID];
#endif
};

//Process request
_newPlayer =     _primary select 1;
_isNew =         count _primary < 7; //_result select 1;
_charID =         _primary select 2;

#ifdef DZE_SERVER_DEBUG
diag_log ("LOGIN RESULT: " + str(_primary));
#endif

/* 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 in AllPlayers)) then {
        _model = "Survivor2_DZ";
    };
    
} else {
    if (DZE_PlayerZed) then {
        _isInfected = _primary select 3;
    } else {
        _isInfected = 0;
    };
    _model =        _primary select 4;
    _hiveVer =        _primary select 5;
    
    if (isNil "_model") then {
        _model = "Survivor2_DZ";
    } else {
        if (_model == "") then {
            _model = "Survivor2_DZ";
        };
    };

    _isInfected = 0;
    //Record initial inventory only if not player zombie
    if(_isInfected != 1) then {
        _config = (configFile >> "CfgSurvival" >> "Inventory" >> "Default");
        _mags = getArray (_config >> "magazines");
        _wpns = getArray (_config >> "weapons");
        _bcpk = getText (_config >> "backpack");

        if(!isNil "DefaultMagazines") then {
            _mags = DefaultMagazines;
        };
        if(!isNil "DefaultWeapons") then {
            _wpns = DefaultWeapons;
        };
        if(!isNil "DefaultBackpack") then {
            _bcpk = DefaultBackpack;
        };
        //_randomSpot = true;
    
        //Wait for HIVE to be free
        diag_log format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]];
    };
};

#ifdef DZE_SERVER_DEBUG
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj) + " at location: " + (getPosATL _playerObj));
#endif

_isHiveOk = false;
if (_hiveVer >= dayz_hiveVersionNo) then {
    _isHiveOk = true;
};

if (worldName == "chernarus") then {
    ([4654,9595,0] nearestObject 145259) setDamage 1;
    ([4654,9595,0] nearestObject 145260) setDamage 1;
};
if (_isNew) then {
    diag_log format["Player %1 Character %2 is NEW", _playerID, _charID];
    [_charID, _playerID, _playerObj] call server_changePlotsOwner;
};
dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer,_isInfected];
(owner _playerObj) publicVariableClient "dayzPlayerLogin";

Link to comment
Share on other sites

Hm, so the only difference is that you have these lines additionally at the end of playerLogin:

 

if (_isNew) then {
    diag_log format["Player %1 Character %2 is NEW", _playerID, _charID];
    [_charID, _playerID, _playerObj] call server_changePlotsOwner;
};

But I guess this has nothing to do with the loadout.

 

I also did some changes to writer.pl (and in my video description I remark that the fixed writer.pl (with JSON fixes) is needed from denisios Arma2oa Linux Server GitHub page.

But I think if you use single currency, they did also changes to writer.pl.

 

You can also send me that (writer.pl) but I think now it's getting complicated to understand for me what they've changed for single currency.

I use one of the columns (infected) in the character cache files to see if player is infected or not (or added it there). Column infected was NOT used by devd in the linux port in mysql table character_data.

So, I've added this to have it the same as in the windows version. And if I remember correctly they also added a new column to character_data for single currency.

 

Devd did not add my gender/zombie changes to his GitHub Linux server version for whatever reason or he did not see my request. Would have been easier if additional scripts could be developed and added to a more consolidated version (and gender select or play as a zombie is not a new extension...it's part of the standard epoch). That leads to what we have here: scripts and changes individually done do not fit together anymore unfortunately.

 

This will be possible to check/fix, but I cannot test anything.

If you can provide a screenshot or something how the column names in character_data look like in your server (maybe with an example data row), your writer.pl and a player cache file...maybe I can find a fix/workaround.

 

Or maybe DeanReid has an idea here if he is still around. He helped with the single currency changes for Linux.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...