Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
RedLink

Сообщение вверху экрана

В общем уже сломал себе всю голову.

 

Есть код, в котором должно выводится сообщение вверху экрана о том, кто и когда дичь.

["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;

Собственно сам код через консоль инфистара работает и сообщение показывает. Однако когда его вписываешь в файл - нифига.

В логах чисто (сервер-клиент).

 

У кого какие думки?

 

 

_aliveTimeToWin 		= 	20; 		//Сколько времени Цель должна жить чтобы выиграть? (В минутах)
_updateMark 			= 	100;		//Через какое обновить маркер на цели (В секундах)
_maxTimeNearPlot 		= 	0.15;		//Максимальное время для беглеца, чтобы выжить (Награды не будет!) если он находиться у Строй. столба (30м плот) или у Безопасной зоны (В проценте от _aliveTimeToWin)
_onPlotCheckFrequency 	        = 	20;			//Время проверки беглеца от позиций Строй. столба (30м Плот) и Безопасных зон (В секундах)
_circleSize 			= 	300;		//Радиус маркера на цели (В метрах)
_minPlayersToRun 		= 	1;			//Минимальное количество игроков для запуска скрипта
_runTimeInter 			= 	20;			//Через какое время запустить скрипт после завершения предыдущего (В минутах)
_firstRunDelay 			= 	5;			//Через какое время запустить скрипт первый раз (То бишь после рестарта).
 
//Награды для беглеца: ТИП: [Время в минутах чтобы выполнить код (В последовательности),Сообщение о награде,Код награды. Где _this - это беглец]
_fugitiveRewards = 
[
	[4,"Беглец получил MK 48 и боеприпасы.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"Беглец получил мотоцикл.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"Беглец получил ряд предметов.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"Беглец видит врага.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
];
 
//Безопасные зоны (Готовые для Черно!)
_safezones = 
[];
//Радиус от Безопасной зоны
_safezonesRad = 100;
 
//UID АДМИНОВ (Чтобы не выполнялся скрипт на Админов)
_admins = ["0","0","0","0"];
 
 
 
 
donn_fugitiveChoose = 
{
	_fugitive = objNull;
	_maxSumDist = -1;
	{
		_p = _x;
		
		if (damage _p < 0.2 && vehicle _p == _p) then 
		{
			if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then 
			{
				_pUID = getPlayerUID _p;
				
				if !(_pUID in _admins) then 
				{
					_sumDist = 0;
					{
						_sumDist = _sumDist + (_p distance _x);
					} forEach playableUnits;
					
					if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;};
				};
			};
		};
	} forEach playableUnits;
	_fugitive
};
 
_aliveTimeToWin 	= 	round (_aliveTimeToWin*60);
_runTimeInter 		= 	round (_runTimeInter*60);
_firstRunDelay 		= 	round (_firstRunDelay*60);
_lastTimeConclude 	= 	time-_runTimeInter+_firstRunDelay;
 
while {true} do 
{
	waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter};
	_fugitive = call donn_fugitiveChoose;
	
	if (!isNull _fugitive) then 
	{
		diag_log "[MOSTWA] Запуск скрипта!";
		
		_fugitiveName 		= 	name _fugitive;
		_aliveTimeStart 	= 	time;
		_aliveTimePassed 	= 	0;
		_timeCell 			= 	2;
		_sleepAMark 		= 	round(_updateMark/_timeCell);
		_slepBIndex 		= 	0;
		_sleepBMark 		= 	-1;
		
		if !(_slepBIndex == count _fugitiveRewards) then 
		{
			_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
		};
		
		_sleepCMark 	= 	round(_onPlotCheckFrequency/_timeCell);
		_sleepDMark 	= 	round (10/_timeCell);
		//_sleepA = _sleepAMark;
		
		_sleepA 	= 	0;
		_sleepB 	= 	0; 
		_sleepC 	= 	0;
		_sleepD 	= 	0;
		
		_txt = ((name _fugitive)+" дичуган! Убейте его и получите свою награду. "+(name _fugitive)+", нужно выжить " +(str(round(_aliveTimeToWin/60)))+" минут, чтобы выиграть свою награду.");
		
		_timeInPlot = 0;
		
		while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin} do 
		{
			if (_sleepA >= _sleepAMark) then 
			{
				_txt = _txt + ((name _fugitive)+" метка обновлена. "+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" минут осталось.");
				
				_sleepA 	= 	0;
				_fPos 		= 	position _fugitive;
				_error	 	= 	(_circleSize*2)/sqrt(2);
				_fPosBlur 	= 	[(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0];
				
				if (_aliveTimePassed > 0) then 
				{
					deleteMarker "DONN_FUGITIVE";
					deleteMarker "DONN_FUGITIVE_DOT";
				};
				
				createMarker ["DONN_FUGITIVE",_fPosBlur];
				"DONN_FUGITIVE" setMarkerColor "ColorYellow";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize];
				
				createMarker ["DONN_FUGITIVE_DOT",_fPosBlur];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "ДИЧЬ!!!";
			};
			
			if (_sleepB == _sleepBMark) then 
			{
				_nearPlotPole 	= 	_fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe 		= 	false;
				{
					if (_fugitive distance _x < _safezonesRad) exitWith 
					{
						_inSafe = true;
					};
				} forEach _safezones;
				
				if (count _nearPlotPole == 0 && !_inSafe) then 
				{
					_txt = _txt + "Время награды! " + (_fugitiveRewards select _slepBIndex select 1);
					_code = _fugitiveRewards select _slepBIndex select 2;
					_fugitive call _code;
				} 
				else 
				{
					_txt = _txt + " Время награды! Не, не будет награды... беглец находиться в безопасной зоне или в радиусе 30м плот.";
				};
				
				_sleepB 		= 	0;
				_slepBIndex 	= 	_slepBIndex + 1;
				_sleepBMark 	=	-1;
				
				if !(_slepBIndex == count _fugitiveRewards) then 
				{
					_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
				};
			};
			
			if (_sleepC == _sleepCMark) then
			{
				_nearPlotPole 	=	 _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe 		=	 false;
				{
					if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};
				} forEach _safezones;
				
				if (count _nearPlotPole > 0 || _inSafe) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell};
				_sleepC = 0;
			};
			
			if (_sleepD == _sleepDMark) then 
			{
				if (vehicle _fugitive == _fugitive) then 
				{
					_sleepAMark = round(_updateMark/_timeCell);
				} 
				else 
				{
					if (vehicle _fugitive isKindOf "Air") then 
					{
						_sleepAMark = round ((_updateMark/_timeCell)*0.25);
					} 
					else 
					{
						_sleepAMark = round ((_updateMark/_timeCell)*0.5);
					};
				};
				_sleepD = 0;
			};
			
			if (_txt != "" && _txt != "Время награды! ") then 
			{
//				[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;
				["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;
		// возможно вместо вначале ' ставить "
				};
			uiSleep _timeCell;
			
			_txt 		= 	"";
			_sleepA 	= 	_sleepA + 1;
			_sleepB 	= 	_sleepB + 1;
			_sleepC 	= 	_sleepC + 1;
			_sleepD 	= 	_sleepD + 1;
			_aliveTimePassed = (time - _aliveTimeStart);
		};
		
		deleteMarker "DONN_FUGITIVE";
		deleteMarker "DONN_FUGITIVE_DOT";
		
		if (!isNull _fugitive) then 
		{
			if (alive _fugitive) then 
			{
				if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then 
				{
//					[nil,nil,rTitleText,((name _fugitive)+", время вышло! Ты выиграл! Получи свои призы прямо перед собой."),"PLAIN",7.5] call RE;
					_txt = (name _fugitive)+", время вышло! Ты выиграл! Получи свои призы прямо перед собой.";
					["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;
					_veh = createVehicle ["CSJ_GyroC",[position _fugitive select 0,position _fugitive select 1,0],[],10,'NONE'];
					_veh setVariable ["ObjectID","0",true];
					_veh setVariable ["ObjectUID",str round random 9999999,true];
					_fugitive reveal [_veh,4];
					_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
					_holder addMagazineCargoGlobal ["ItemBriefCase100oz",1];
					_fugitive reveal [_holder,4];
				} 
				else 
				{
//					[nil,nil,rTitleText,("Охота за беглецом завершена! "+(name _fugitive)+", ты был слишком близко к безопасной зоне или 30м плот. За это никакой награды не будет."),"PLAIN",10] call RE;
					_txt = (name _fugitive)+", ты слишком близко к безопасной зоне или 30м плот. За это никакой награды не будет.";
					["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;
				};
				diag_log "[MOSTWA] Конец выполнения скрипта! Беглец победил!";
			} 
			else 
			{
//				[nil,nil,rTitleText,((name _fugitive)+", был убит! Вся награда находиться в его трупе! Метка обновлена и остается еще 45 секунд..."),"PLAIN",10] call RE;
				_txt = (name _fugitive)+", был убит! Вся награда находиться в его трупе! Метка обновлена и остается на карте еще 45 секунд...";
				["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;
				
				createMarker ["DONN_FUGITIVE",position _fugitive];
				"DONN_FUGITIVE" setMarkerColor "ColorRed";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [100,100];
				
				createMarker ["DONN_FUGITIVE_DOT",position _fugitive];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Труп ДИЧИ...";
				_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
				_holder addMagazineCargoGlobal ["ItemBriefCase100oz",1];
				_fugitive reveal [_holder,4];
				uiSleep 45;
				
				deleteMarker "DONN_FUGITIVE";
				deleteMarker "DONN_FUGITIVE_DOT";
				
				diag_log "[MOSTWA] Конец выполнения скрипта! Беглец был убит.";
			};
			_lastTimeConclude = time;
		} 
		else 
		{
//			[nil,nil,rTitleText,("Охота за "+_fugitiveName+" прекращена... "+_fugitiveName+" просто вышел с сервера."),"PLAIN",5] call RE;
			_txt = "Охота за "+_fugitiveName+" прекращена... "+_fugitiveName+" просто вышел с сервера.";
			["<t size='0.55' font='Zeppelin32' color='#0eff00'>"+(_txt)+"</t>",    safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079] spawn bis_fnc_dynamicText;
			
			_lastTimeConclude = time-_runTimeInter*0.75;
			
			diag_log "[MOSTWA] Беглец отключился от сервера. Охота прекращена...";
		};
	} 
	else 
	{
		diag_log "[MOSTWA] Не могу обнаружить беглеца...";
		
		_lastTimeConclude = time-_runTimeInter*0.75;
	};
};

 

 

 

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts




  • 0

Вопрос решен. Тему можно закрывать.

расскажи хоть как решил

Share this post


Link to post
Share on other sites
  • 0

принцип как у килл сообщений в левом верху экрана с иконками оружия.

Share this post


Link to post
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

  • Similar Content

    • By thessend
      Собственно..за несколько минут у меня кикает с сервера, но вот сообщения в меню не выдается никакое, объясните, как выводить его что сервер рестартится? И последующие при повторном подключении?
    • By Alex39
      Прописал скрипт, серверные сообщение, вроде как работают, но есть косяки, может кто подскажет в чем проблема,
      override void OnInit() { GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(NumPlayersOnServer, 30000, true); // 30 seconds } void NumPlayersOnServer() { ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); int numPlayers = players.Count(); for( int i=0; i < players.Count(); ++i ) { Man player = players.Get(i); if( player ) { string messPlayers = "Players on the server: " + numPlayers.ToString(); Param1<string> m_MessageParam = new Param1<string>(messPlayers); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_MessageParam, true, player.GetIdentity()); } } }
       
      Проблема пропадание трейдера, админ тулз из за этого скрипта
       
      override void OnInit() { GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(NumPlayersOnServer, 30000, true); // 30 seconds }  
    • By ZigoFrend
      Как сделать что бы онлайн писался с новой строки . И можно ли как то поменять цвет сообщений ?

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By Димас
      Каким образом можно сделать выравнивание иконок на экране по примеру иконок банковской системы?
      Сам пытался понять как работает команда align = "right"; и как её внедрить. Зашёл в тупик.
      Экран 1366х768. Если настрою местоположение иконок точно под это разрешение, то на большем будет не красиво. Аналогично и с размером интерфейса.
      gui_config_noRscTitles.sqf
      updateGui.sqf
      Буду очень благодарен за помощь! С меня плюсик и 100р на шоколодку 
    • By Miduznya
      Всем доброго вечера друзья!
       
      Собственно вопрос мой ясен - как убрать лого экрана 1337 dayzmod arma 2
       
      На днях мой знакомый попросил собрать ему сервер dayzmod arma 2 и тут я столкнулся с такой проблемой.
       
      Когда заходишь на сервер, на экране слева внизу отображаются цифры 1337 
       
      все мои поиски в интернете не обвенчались успехом и сам я тоже так и не смог найти где этот скрин лежит.
       
      Подскажите где он есть или это в файле прописано где????
       
      Заранее спасибо!
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.