Jump to content
  • 0

PublicVariable


Cherdenko

Question

Spoiler

Value Restriction #0 "remExField" = [<NULL-object>,<NULL-object>,"loc","spawn",["Noob","From: RookieRanger\n\nJij bent echt een noob"],{
_Title = _this select 0;
_PM = _this select 1;

JTS_PM_ARRAY_TITLE set [count JTS_PM_ARRAY_TITLE, _Title];
JTS_PM_ARRAY_SUBJECT set [count JTS_PM_ARRAY_SUBJECT, _PM];

hint parsetext "<t align='center'><img image='JTS_PM\icons\Message.paa' size='2' shadow='false'/></t><br/><br/><t size='1.5'>You have a new personal message</t>";

if (alive player && dialog && JTS_DLPM < 1) then
{
{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]
}

else
{
closedialog 0;
closedialog 0
};
}]

@theduke @ebayShopper

you guys have an idea what needs to be whitelisted to prevent getting kicked?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

@salival how would i do it in here? ive never worked with toString/toArray

Spoiler

//ALL FUNCTIONS MADE BY JTS

waitUntil {!isNull player}; // Do not remove that


// EDITABLE VARIABLES (BEGIN)

JTS_MSG_STR = "STK-MSG";		// Text, which will be displayed in action menu
JTS_ALLOW_PM = 1; 				// if 0 - receiving of personal messages on mission start is allowed. If 1 - receiving of personal messages on mission start is prohibited
JTS_SIDES = 0; 				// if 0 - list for player will be filled with all players, no matter on which side they are. If 1 - list for player will be filled only with players on the same side
JTS_MSG_COLOR = "#980000";			// Color of the text in action menu. The colors you can find here: http://www.w3schools.com/html/html_colors.asp

// EDITABLE VARIABLES (END)

player setVariable ["JTS_PM_STAT",JTS_ALLOW_PM,true];

JTS_DLPM = 0;
JTS_SUBJECT = 0;
JTS_PM_ARRAY_TITLE = [];
JTS_PM_ARRAY_SUBJECT = [];
JTS_RECEIVER_PM = name player;

if (JTS_SIDES > 0) then {JTS_ALLOWED_SIDES = {(side _x == side player)}} else {JTS_ALLOWED_SIDES = true};

JTS_FNC_PM =
{
	private ["_Find","_Receiver"];

	JTS_PM_UNP = playAbleUnits - [player];
	JTS_DLPM = 1;

	lbClear 00002;
	lbClear 00003;
	lbClear 00005;

	ctrlEnable [00002, false];
	ctrlEnable [00003, false];
	ctrlEnable [00005, false];
	ctrlEnable [00008, false]; // here
	ctrlEnable [00009, false];
	ctrlEnable [00010, false];
	ctrlEnable [00011, false];

	_i = 0;
	_c = count JTS_PM_ARRAY_TITLE;

	while {_i < _c} do
	{
		_Variable = lbAdd [00002, (JTS_PM_ARRAY_TITLE select _i)];
		lbSetData [00002, _Variable, (JTS_PM_ARRAY_SUBJECT select _i)];
		_i = _i + 1;
	};

	_Find = 0;
	{
     		if (!isNull _x) then
     		{
          		if (alive _x && isPlayer _x && JTS_ALLOWED_SIDES) then
          		{

               		lbAdd [00003, name _x];
               		lbSetValue [00003, (lbSize 00003) - 1, _Find];
        		};	_Find = _Find + 1;
     		};
	} forEach JTS_PM_UNP;

	_Receiver = call JTS_FNC_FIND;

	lbsetcursel [00002, (lbSize 00002)];
	lbsetcursel [00003,  _Receiver];

	ctrlEnable [00002, true];
	ctrlEnable [00003, true];
	ctrlEnable [00005, true]; // maybe these
	ctrlEnable [00009, true];
	ctrlEnable [00010, true];
	ctrlEnable [00011, true];

	ctrlsettext [00007, Format ["Inbox: %1", lbSize 00002]];

	JTS_DLPM = 0;
};

JTS_FNC_SENT =
{
	_Title = _this select 0;
	_PM = _this select 1;

	JTS_PM_ARRAY_TITLE set [count JTS_PM_ARRAY_TITLE, _Title];
	JTS_PM_ARRAY_SUBJECT set [count JTS_PM_ARRAY_SUBJECT, _PM];

	hint parsetext "<t align='center'><img image='JTS_PM\icons\Message.paa' size='2' shadow='false'/></t><br/><br/><t size='1.5'>You have a new personal message</t>";

	if (alive player && dialog && JTS_DLPM < 1) then
	{
		{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]
	}

	else
	{
		closedialog 0;
		closedialog 0
	};
};

JTS_FNC_SEND =
{
	private ["_Size","_Title","_Message","_PM","_Receiver","_Validating","_Verify"];

	_Size = count (toArray (ctrltext 00006));
	_Title = ctrltext 00006;
	_Message = ctrltext 00004;
	_PM = Format ["From: %1\n\n%2", name player, _Message];
	_Receiver = JTS_PM_UNP select (lbValue [00003, lbCursel 00003]);
	_Verify = 0;

	if (_Size > 15 || lbSize 00003 < 1) then
	{
		ctrlsettext [00007, "Error sending PM"];
		{ctrlsettext [_x, ""]} foreach [00004, 00006];
	}

	else
	{
		if (!(_Receiver call JTS_FNC_VALID)) then
		{
			ctrlsettext [00007, "Player doesn't respond"];
			{ctrlsettext [_x, ""]} foreach [00004,00006];
		}

		else
		{
			if (count (toArray _Title) < 2) then
			{
				ctrlsettext [00007, "Title is too small"];
			}

			else
			{
				if (_Receiver getVariable "JTS_PM_STAT" > 0) then
				{
					ctrlsettext [00007, "Player does not receive PM's"];
				}

				else
				{
					_Validating = toArray _Title;

					for "_i" from 0 to count _Validating do
					{
						if (_Validating select _i == 32) then
						{
							_Verify = _Verify + 1
						}
					};

					if (_Verify == count _Validating) then
					{
						_Title = Format ["No subject [%1] [%2]", name player, JTS_SUBJECT];
						JTS_SUBJECT = JTS_SUBJECT + 1;
					};

					ctrlsettext [00007, Format ["PM sent to %1", name _Receiver]];

					// ARMA 3: [[_Title, _PM],"JTS_FNC_SENT",_Receiver,false] spawn BIS_fnc_MP;

					 [objnull, _Receiver, "loc", rSPAWN, [_Title, _PM], JTS_FNC_SENT] call RE;

					{ctrlsettext [_x, ""]} foreach [00004, 00006];
				};
			};
		};
	};				[] spawn {JTS_DLPM = 1;ctrlEnable [00009, false];ctrlEnable [00011, false];sleep 3;ctrlEnable [00009, true];ctrlEnable [00011, true];JTS_DLPM = 0;if (alive player && dialog) then {{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]}}
};

JTS_FNC_FIND =
{
	private ["_i","_c","_v","_Receiver"];

	_i = 0;
	_c = lbSize 00003;
	_v = 0;

	while {_i < _c} do
	{
		if (lbText [00003, _i] == JTS_RECEIVER_PM) then {_Receiver = _i;_v = 1;_i = lbSize 00003} else {_i = _i + 1};
	};

	if (_v < 1) then {_Receiver = 0};

	_Receiver
};

JTS_FNC_PM_ENABLED =
{
	{lbAdd [00005, _x]} foreach ["Enabled","Disabled"];
	{lbSetValue [00005, (lbSize 00005) - 1, _x]} foreach [(lbSize 00005) - 1];
	lbsetcursel [00005, player getVariable "JTS_PM_STAT"];
};

JTS_FNC_STATUS =
{
	while {alive player && dialog} do
	{
		_sz = count (toArray (ctrltext 00006));
		ctrlsettext [00008, Format ["%1/15", _sz]];
		sleep 0.1;
	};
};


JTS_FNC_VALID =
{
	if (isNull _this ||!alive player) then 
	{
		false
	}

	else
	{
		if (!alive _this || _this == player || !isPlayer _this || !alive player) then
		{
			false
		}

		else
		{
			true
		}
	}
};

JTS_FNC_PM_DELETE =
{
	private ["_Data","_Subject"];

	if (lbSize 00002 < 1) then
	{
		ctrlsettext [00007, "Your inbox is empty"];
	}

	else
	{
		_Data = lbData [00002, lbCursel 00002];
		_Subject = lbText [00002, lbCursel 00002];
		JTS_PM_ARRAY_TITLE = JTS_PM_ARRAY_TITLE - [_Subject];
		JTS_PM_ARRAY_SUBJECT = JTS_PM_ARRAY_SUBJECT - [_Data];
		lbClear 00002;
		{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]
	};
};

 

 

 

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...