Hello,
I am currently working on a method to make it possible for admins (or maybe even donators) to spawn in the skin of their choice.
But I've run into a wall here. I get weird errors that make no sense whatsoever.
private ["_isInfected","_doLoop","_hiveVer","_isHiveOk","_playerID","_playerObj","_primary","_key","_charID","_playerName","_backpack","_isNew","_inventory","_survival","_model","_mags","_wpns","_bcpk","_config","_newPlayer"]; AdminNewspawn = ["10419590","94149318"]; _playerID = _this select 0; _playerObj = _this select 1; _playerName = name _playerObj; if (_playerName == '__SERVER__' || _playerID == '' || local player) exitWith {}; 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 = []; _survival = [0,0,0]; _isInfected = 0; _model = ""; if (_playerID == "") then {_playerID = getPlayerUID _playerObj;}; if ((_playerID == "") || (isNil "_playerID")) exitWith {diag_log ("LOGIN FAILED: Player [" + _playerName + "] has no login ID");}; diag_log ("LOGIN ATTEMPT: " + str(_playerID) + " " + _playerName); //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 || !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 < 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"; }; }; //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 _key = format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]]; _key call server_hiveWrite; }; }; //diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj) + " at location: " + (getPosATL _playerObj)); _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 ((getPlayerUID player) in AdminNewspawn) then { if ((_model = "Survivor2_DZ") && (_playerID = "10419590")) then {_model = "BAF_Soldier_Officer_MTP";}; if ((_model = "Survivor2_DZ") && (_playerID = "94149318")) then {_model = "UN_CDF_Soldier_Officer_EP1";}; }; dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer,_isInfected]; (owner _playerObj) publicVariableClient "dayzPlayerLogin";
Down in line #83 "if (_playerID in AdminNewspawn) then {" , the RPT file gives out an error stating expression error its apparently missing an ")" though the if-statement is just as it should be.
I was able to make Adminloadouts using the same method without ANY errors.
Would be much apprechiated if someone could test this on their server, and see if it happens to produce an error.