Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

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

 

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

["<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;
	};
};

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: thessend
      Собственно..за несколько минут у меня кикает с сервера, но вот сообщения в меню не выдается никакое, объясните, как выводить его что сервер рестартится? И последующие при повторном подключении?
    • Автор: 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 }  
    • Автор: ZigoFrend
      Как сделать что бы онлайн писался с новой строки . И можно ли как то поменять цвет сообщений ?

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

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.