• 0
Screamer

ExileClient_gui_xm8_slide_territory_event_onRadiusButtonClick

Question

Hi,

I noticed some problem with XM8 territory radius marker function

ExileClient_gui_xm8_slide_territory_event_onRadiusButtonClick.sqf

At the same time few players had active function on territories level 10

In this time server simulated objects counter showed over 8000 objects

Server FPS drop down to 5 fps and Client side fps reduced 50% average.

Is the any chance to reduce numbers of those markers around ???

to like 1 red arrow every 10m , it will still showing your territory radius but it will

improve server performance a lot :)

code:

/**
 * ExileClient_gui_xm8_slide_territory_event_onRadiusButtonClick
 *
 * Exile Mod
 * www.exilemod.com
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_display","_territoryDropDown","_flagNetID","_flag","_radius","_flagPos","_objects","_i","_location","_object"];
disableSerialization;
_display = uiNameSpace getVariable ["RscExileXM8", displayNull];
_territoryDropDown = _display displayCtrl 4132;
_flagNetID = _territoryDropDown lbData (lbCurSel _territoryDropDown);
_flag = objectFromNetId _flagNetID;
["Show radius?", "Show", "Hide"] call ExileClient_gui_xm8_showConfirm;
waitUntil { !(isNil "ExileClientXM8ConfirmResult") };
if ((ExileClientXM8ConfirmResult) && !(_flag getVariable "ExileRadiusShown")) then
{
	_radius = _flag getVariable ["ExileTerritorySize", -1];
	_flagPos = getPos _flag;
	_objects = [];
	for "_i" from 0 to 360 step (270 / _radius) do 
	{
		_location = [(_flagPos select 0) + ((cos _i) * _radius), (_flagPos select 1) + ((sin _i) * _radius), 0];
		_object = createVehicle ["Sign_Arrow_F", _location, [], 0, "CAN_COLLIDE"];
		_objects pushBack _object;
		_i = _i +1;
	};
	_flag setVariable ["ExileRadiusObjects",_objects];
	_flag setVariable ["ExileRadiusShown", true];
	['apps', 1] call ExileClient_gui_xm8_slide;
}
else
{
	_objects = _flag getVariable "ExileRadiusObjects";
	{
		deleteVehicle _x;
	}
	forEach _objects;
	_flag setVariable ["ExileRadiusShown", false];
	['apps', 1] call ExileClient_gui_xm8_slide;
};

 

 

Share this post


Link to post
Share on other sites

0 answers to this question

There have been no answers to this question yet

Advertisement

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

  • Recently Browsing   0 members

    No registered users viewing this page.