The loot spawning on my server will respawn or cycle right infrnt of you if you move more than 5m away or if someone else near you moves 5ft away. I check player_spawncheck.sqf and it looks fine.
player_spawncheck.sqf
//player_spawncheck.sqf
private ["_isWreck","_maxControlledZombies","_looted","_zombied","_doNothing","_spawnZedRadius","_serverTime","_age","_nearbyBuildings","_position","_speed","_radius","_maxlocalspawned","_maxWeaponHolders","_currentWeaponHolders","_maxtoCreate","_inVehicle","_isAir","_isLand","_isSea","_Controlledzeddivided","_totalcrew","_nearby","_type","_config","_canSpawn","_dis","_checkLoot","_islocal","_bPos","_zombiesNum"];
_age = -1;
//_nearbyBuildings = [];
_position = [player] call fnc_getPos;
_speed = speed (vehicle player);
_radius = 200; //150*0.707; Pointless Processing (106.5)
_spawnZedRadius = 20;
/*
//Tick Time
PVDZ_getTickTime = player;
publicVariableServer "PVDZ_getTickTime";
*/
//Total Counts
_maxlocalspawned = round(dayz_spawnZombies);
_maxControlledZombies = round(dayz_maxLocalZombies);
_maxWeaponHolders = round(dayz_maxMaxWeaponHolders);
_currentWeaponHolders = round(dayz_currentWeaponHolders);
//Limits (Land,Sea,Air)
_inVehicle = (vehicle player != player);
/*
_isAir = vehicle player iskindof "Air";
_isLand = vehicle player iskindof "Land";
_isSea = vehicle player iskindof "Sea";
if (_isLand) then { } else { };
if (_isAir) then { } else { };
if (_isSea) then { } else { };
*/
_doNothing = false;
if (_inVehicle) then {
_Controlledzeddivided = 0;
//exit if too fast
if (_speed > 25) exitwith {_doNothing = true;};
//Crew can spawn zeds.
_totalcrew = count (crew (vehicle player));
if (_totalcrew > 1) then {
_Controlledzeddivided = 2;
//Dont allow driver to spawn if we have other crew members.
if (player == driver (vehicle player)) exitwith {_doNothing = true;};
} else {
_Controlledzeddivided = 4;
};
if (_Controlledzeddivided > 0) then {
_maxControlledZombies = round(_maxControlledZombies / _Controlledzeddivided);
r_player_divideinvehicle = _Controlledzeddivided;
};
};
if (_doNothing) exitwith {};
/*if ("ItemMap_Debug" in items player) then {
deleteMarkerLocal "MaxZeds";
deleteMarkerLocal "Counter";
deleteMarkerLocal "Loot30";
deleteMarkerLocal "Loot120";
deleteMarkerLocal "Agro80";
_markerstr = createMarkerLocal ["MaxZeds", _position];
_markerstr setMarkerColorLocal "ColorYellow";
_markerstr setMarkerShapeLocal "ELLIPSE";
_markerstr setMarkerBrushLocal "Border";
_markerstr setMarkerSizeLocal [_radius, _radius];
_markerstr1 = createMarkerLocal ["Counter", _position];
_markerstr1 setMarkerColorLocal "ColorRed";
_markerstr1 setMarkerShapeLocal "ELLIPSE";
_markerstr1 setMarkerBrushLocal "Border";
_markerstr1 setMarkerSizeLocal [_radius+100, _radius+100];
_markerstr2 = createMarkerLocal ["Agro80", _position];
_markerstr2 setMarkerColorLocal "ColorRed";
_markerstr2 setMarkerShapeLocal "ELLIPSE";
_markerstr2 setMarkerBrushLocal "Border";
_markerstr2 setMarkerSizeLocal [80, 80];
_markerstr2 = createMarkerLocal ["Loot30", _position];
_markerstr2 setMarkerColorLocal "ColorRed";
_markerstr2 setMarkerShapeLocal "ELLIPSE";
_markerstr2 setMarkerBrushLocal "Border";
_markerstr2 setMarkerSizeLocal [30, 30];
_markerstr3 = createMarkerLocal ["Loot120", _position];
_markerstr3 setMarkerColorLocal "ColorBlue";
_markerstr3 setMarkerShapeLocal "ELLIPSE";
_markerstr3 setMarkerBrushLocal "Border";
_markerstr3 setMarkerSizeLocal [120, 120];
diag_log ("LocalZombies: " +str(dayz_spawnZombies) + "/" +str(dayz_maxLocalZombies));
//Logging
diag_log (format["%1 Local.Agents: %2/%3, NearBy.Agents: %8/%9, Global.Agents: %6/%7, W.holders: %10/%11, (radius:%4m %5fps).","SpawnCheck",
_maxlocalspawned, _maxControlledZombies, _radius, round diag_fpsmin,dayz_currentGlobalZombies,
dayz_maxGlobalZeds, dayz_CurrentNearByZombies, dayz_maxNearByZombies, _currentWeaponHolders,_maxWeaponHolders]);
};*/
// nearObjects is faster than nearestObjects when sorting by distance isn't needed
// "Building" includes House and all of its child classes (Crashsite, IC_Fireplace1, IC_Tent, etc.)
_nearby = _position nearObjects ["Building",_radius];
_maxlocalspawned = _maxlocalspawned max floor(_maxControlledZombies*.8);
if (_maxlocalspawned > 0) then { _spawnZedRadius = _spawnZedRadius * 3; };
//Spawn Zeds & loot in buildings
{
_type = typeOf _x;
_config = missionConfigFile >> "CfgLoot" >> "Buildings" >> _type;
_canSpawn = isClass (_config);
if (_canSpawn) then {
_dis = _x distance player;
_checkLoot = (count (getArray (_config >> "lootPos"))) > 0;
_islocal = _x getVariable ["", false]; // object created locally via TownGenerator.
//Make sure wrecks always spawn Zeds
_isWreck = _x isKindOf "CrashSite";
//Loot
if (getNumber(_config >> "lootChance") > 0) then {
if (_currentWeaponHolders < _maxWeaponHolders) then {
//Basic loot check
if ((_dis < 125) and (_dis > 30) and !_inVehicle and _checkLoot) then {
_serverTime = serverTime;
_looted = (_x getVariable ["looted",_serverTime]);
_age = _serverTime - _looted;
//Building refresh rate
if (_age == 0 or (_age > getNumber(_config >> "lootRefreshTimer"))) then {
_x setVariable ["looted",_serverTime,!_islocal];
_x call building_spawnLoot;
if (!(_x in dayz_buildingBubbleMonitor)) then {
dayz_buildingBubbleMonitor set [count dayz_buildingBubbleMonitor, _x];
};
//diag_log [ diag_tickTime, "new loot at",_x,"age:", _age, "serverTime:", _serverTime];
}/*
else {
diag_log [ diag_tickTime, "won't spawn loot at",_x,"age:", _age, "serverTime:", _serverTime];
}*/;
};
};
};
//Zeds
if (getNumber(_config >> "zombieChance") > 0) then {
if (_dis > _spawnZedRadius) then {
_serverTime = serverTime;
_zombied = (_x getVariable ["zombieSpawn",_serverTime]);
_age = _serverTime - _zombied;
if ((_age == 0) or (_age > 300)) then {
if (!_isWreck) then {
if ((dayz_spawnZombies < _maxControlledZombies) and (dayz_CurrentNearByZombies < dayz_maxNearByZombies) and (dayz_currentGlobalZombies < dayz_maxGlobalZeds)) then {
_bPos = getPosATL _x;
_zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
if (_zombiesNum == 0) then {
_x setVariable ["zombieSpawn",_serverTime,!_islocal];
if (!(_x in dayz_buildingBubbleMonitor)) then {
//add active zed to var
dayz_buildingBubbleMonitor set [count dayz_buildingBubbleMonitor, _x];
};
//start spawn
[_x] call building_spawnZombies;
};
//diag_log (format["%1 building. %2", __FILE__, _x]);
};
} else {
_bPos = getPosATL _x;
_zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 30)]);
//Should be a wreck
if (_zombiesNum == 0) then { [_x,_isWreck] call building_spawnZombies; };
};
};
};
};
};
} forEach _nearby;
At first I thought it was a respawn timer issue or something like that but if you don't move the loot will stay, you have to back away from it or someone else has to get within range and its not like you have to run away for this to happen, you can just back up a few steps and watch the loot change right infront of you. I have been playing around with it just trying to see if i can figure it out but if anyone knows what i should do or can at least point me in the right direction it would be a huge help.
Welcome Messages
Credit Style Messages When a player Spawns in
Install Instructions:
If not done already, create a blank init.sqf in your mission root.
In your Init.sqf
Add this line to the very bottom
// Welcome Credits by Gr8
[] execVM "custom\welcome.sqf";
Make a Custom Folder in your mission file
Make a file called Welcome.sqf in your Custom Folder
Add this into your Welcome.sqf
if(isDedicated) exitWith {};
_sizeTitle = 0.55; // Font Size of the Title Messages
_sizeSubText = 0.45; // Font Size of the SubTitle Messages
_colorTitle = "#0969ee"; // HTML Color Code of the Title Messages (must start with '#' )
_colorSubText = "#1cee09"; // HTML Color Code of the SubTitle Messages (must start with '#' )
_alignTitle = "left"; // Alignment of the Title Message (right or left)
_alignSubText = "right"; // Alignment of the SubTitle Message (right or left)
_fontTitle = "PuristaSemibold"; // Font Type Of Title Messages
_fontSubText = "PuristaLight"; // Font Type Of SubTitle Messages
_Delay = 10; // Wait in seconds before the credits start after player IS ingame
_FadeIn = 3; //how long one role should stay on screen. Use value from 0 to 10 where 0 is almost instant transition to next role
_IntroMusic = true; // Welcome Intro Song During the credits (true or false)
_posDefault = [0.3,0.55,0.5]; // Defualt Positions of all Credits
_title = "Welcome Survivor";
_shorttext = "Arma 3 Epoch By MyServer";
_posText = [0.8,0.5,0.4];
_title2 = "Website";
_shorttext2 = "www.my-site.com";
_posText2 = [0.8,0.5,0.25];
_title3 = "Teamspeak 3";
_shorttext3 = "ts.my-site.com";
_posText3 = [0.8,0.5,0.25];
_title4 = "Donate";
_shorttext4 = "Support the server and Help it stay up";
_posText4 = [0.8,0.5,0.28];
_title5 = "Custom Scripts";
_shorttext5 = "Welcome Messages <br />AI Missions<br />Custom Traders<br /> ";
_posText5 = [0.8,0.5,0.335];
_title6 = "Play Fair And Enjoy";
_shorttext6 = "Admins are Always Active";
_posText6 = [0.8,0.5,0.4];
/***********************************************************************************************************************************************/
/***********************************************************************************************************************************************/
/* /!\ DO NOT EDIT BELOW THIS LINE. DO NOT REMOVE CREDITS /!\
/*
/* SCRIPTING BY: GR8 [GhostzGamerz.com]
/* VERSION: 2.1
/* DATE: 21 December 2014
/*
/***********************************************************************************************************************************************/
/***********************************************************************************************************************************************/
_ms = [];
for "_i" from 1 to 50 do
{
_t = if (_i!=1) then { format["_title%1",_i] } else { "_title" };
_s = if (_i!=1) then { format["_shorttext%1",_i] } else { "_shorttext" };
_p = if (_i!=1) then { format["_postext%1",_i] } else { "_postext" };
if (!isNil _t or !isNil _s) then
{
_at = if (!isNil _t) then { call compile _t } else { "" };
_as = if (!isNil _s) then { call compile _s } else { "" };
_ap = if (!isNil _p) then { call compile _p } else { _posDefault };
_ms = _ms + [[_at,_as,_ap]];
}
};
waitUntil {!isNuLL(uiNameSpace getVariable ["EPOCH_loadingScreen",displayNull])};
waitUntil {isNuLL(uiNameSpace getVariable ["EPOCH_loadingScreen",displayNull])};
sleep _Delay;
if (_IntroMusic) then { playMusic "intro";};
player enableSimulation true;
{
_t = _x select 0;
_s = _x select 1;
_pX = _x select 2 select 0;
_pY = _x select 2 select 1;
_pW = _x select 2 select 2;
_m = format ["<t size='%1' color='%2' align='%3' font='%4'>%5<br /></t>", _sizeTitle, _colorTitle, _alignTitle, _fontTitle, _t];
_m = _m + format ["<t size='%1' color='%2' align='%3' font='%4'>%5<br /></t>", _sizeSubText, _colorSubText, _alignSubText, _fontSubText, _s];
_tm = round (count toArray (_t+_s) / 6 / 2) + 3;
[ _m, [_pX * safeZoneW + safeZoneX, _pW], [_pY * safezoneH + safezoneY, 1 * safezoneH + safezoneY], _tm, _FadeIn ] spawn BIS_fnc_dynamicText;
sleep (_tm+_FadeIn+4);
} forEach _ms;
Download this Intro Song and put it in your mission root.
Note : You can always use your own music. Just make sure its in .ogg format
In your Description.ext add this at the bottom:
class cfgMusic{
class intro {
name = "intro";
sound = {"IntroSong.ogg", db+1,1};
};
};
Modify Your BattlEye Filters
Go to your Config folder (By Default called SC) / BattlEye and open Scripts.txt
Then Then find the line 2 which looks like this:
7 "BIS_fnc_dynamictext" !", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;" !", 0, 0.4, 5, 2, 0, 2] spawn bis_fnc_dynamictext;" !"snil '_fnc_scriptName') then {_fnc_scriptName}"
and add following to the end of the line:
"sleep (_onScreenTime) spawn bis_fnc_dynamictext;"
Then in same file find line 21 which looks like this:
7 exec !="<execute expression=" !"RscDebugConsole_execute" !"execFSM" !"_executeStackedEventHandler" !"fn_execVM" !"fn_moduleExecute" !"fn_execRemote" !"fn_MPexec" !"bis_fnc_moduleExecute_activate" !"fn_tridentExecute" !"randomize_civ1" !"executed from" !"EPOCH_DebugGUI_exec" !"_handle = [_display] execVM _script;" !"execVM \"\A3\Structures_F\scripts" !="execVM \"\A3\Structures_F_EPC\Civ\PlayGround\scripts\Carousel_spin.sqf\""
and add following to the end of the line (modify this if you need to):
!="execVM \"\MPMissions\epoch.altis\scripts\welcome.sqf\""
CLICK HERE TO SHOOT ME A LIKE
[Fixed] Vests and Headgear now populate with correct epoch variants in the spawn menu.
[Fixed] Item spawning now will add the items to a vehicle if target is in one.
[Fixed] Disable SteamAPI VAC ban calls for now as it was reported to cause CPU high load, it will be renabled in a future patch.
[Fixed] Group invite not working.
[Added] Extra logging of player connects and disconnects.