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

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

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

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

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

Всех приветствую, решил поставить вот такой скрипт на сервер для кика в лобби игроков, использующих Глобальный голосовой чат:

private ["_seconds","_maxSeconds","_countdown"];
 
//CONFIG
_maxSeconds = 5; //how many seconds players can talk on side channel before they get kicked to lobby
_msg = "ГЛОБАЛЬНЫЙ ГОЛОСОВОЙ ЧАТ ЗАПРЕЩЁН!"; //message to be displayed to the user
_countdown = true; //show countdown in chat
//CONFIG END
 
_seconds = 0;
while {true} do {
waitUntil {(!isNull findDisplay 55) and (!isNull findDisplay 63) and (ctrlText ((findDisplay 63) displayCtrl 101) == localize "STR_CHANNEL_SIDE")};
//wait until microphone icon is showing (IDD 55) and channel label is displayed (IDD 63) and channel label says "Side channel"
 

hint _msg;
taskHint [_msg, [1,0,0.1,1], "taskFailed"];
if(_countdown) then {
player setDamage 0.1;
cutText [format["Возврат в лобби через: %1 сек.", _maxSeconds - _seconds],"WHITE IN"]; //notify user
systemChat format["Возврат в лобби через: %1 сек.",_maxSeconds - _seconds]; //countdown in chat
};
 
if (_seconds >= _maxSeconds) then {
endMission "LOSER"; //return to lobby
};
 
_seconds = _seconds + 1;
sleep 1;
};

Первый вопрос: вывод цветного большого текста доступен только через taskHint? Просто при использовании taskHint нужно обязательно указывать иконку, а я бы не хотел её использовать.

Второй вопрос: какая-то сволочина блокирует мой setDamage 0.1

Скорее всего infiSTAR, но ничего в нём откопать не смог. Персонаж орёт, в голове дырка появляется, но 12к крови никуда не убывают. Ставил значения 0.5, 0.9, 1

Сработало только 1. ОЧ СТРАННО

 

Буду благодарен, если кто может помочь

Изменено пользователем TheLinsus (история изменений)

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


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

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

  • 0

Да будет с тобой дюперы с таким файлом )

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


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





  • 0

Да будет с тобой дюперы с таким файлом )

Если setDamage налажу, то в кике смысла не будет

Знаешь как сделать?

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


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

Если setDamage налажу, то в кике смысла не будет

Знаешь как сделать?

_uid = getPlayerUID player;
_adminlist = ["6158340","0","0","0","0","0"];
if (_uid in _adminlist) exitWith {};
[] spawn {
	disableSerialization;
	DS_really_loud_sounds = {[60,15] call fnc_usec_pitchWhine;for "_i" from 1 to 15 do {playSound format ["%1",_this select 0];};};
	DS_double_cut = {1 cutText [format ["%1",_this select 0],"PLAIN DOWN"];2 cutText [format ["%1",_this select 0],"PLAIN"];};
	DS_slap_them = {_randomnr = [2,-1] call BIS_fnc_selectRandom;(vehicle player) SetVelocity [_randomnr * random (4) * cos getdir (vehicle player), _randomnr * random (4) * cos getdir (vehicle player), random (4)];};
	while {true} do {
		waitUntil {sleep 1;((!isNull findDisplay 63) && (!isNull findDisplay 55))};
		
			if (ctrlText ((findDisplay 63) displayCtrl 101) == localize "str_channel_side") then {
				[] spawn {
					if (isNil "reset_timer") then {
						reset_timer = true;
						sleep 90;
						disconnect_me = nil;
						warn_one = nil;
						warn_two = nil;
						warn_three = nil;
						warn_last = nil;
						reset_timer = nil;
					};
				};
				if (isNil "disconnect_me") then {disconnect_me = 0;} else {disconnect_me = disconnect_me + 1;};
				if (disconnect_me == 0) then {
					if (isNil "warn_one") then {
						warn_one = true;
						systemChat ("Просьба не разговаривать в общем чате, это первое предупреждение.");
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_inpain = true;
						r_player_blood = r_player_blood - 500;
					};
				};
				if (disconnect_me == 1) then {
					if (isNil "warn_two") then {
						warn_two = true;
						systemChat ("Просьба не разговаривать в общем чате, это второе предупреждение...");
						[] spawn DS_slap_them;
						["z_scream_3"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 3000;
					};
				};
				if (disconnect_me == 2) then {
					if (isNil "warn_three") then {
						warn_three = true;
						systemChat ("ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!");
						systemChat ("ВЫ БУДЕТЕ ОТКЛЮЧЕНЫ!");
						[] spawn DS_slap_them;
						["z_scream_4"] spawn DS_really_loud_sounds;
						["ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 4500;
						//_selection = ""legs"";
				        //player setHit[_selection,1];
						
					};
				};
				if (disconnect_me >= 3) then {
					if (isNil "warn_last") then {
						warn_last = true;
						playMusic ["PitchWhine",0];
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["ВАС предупреждали..."] spawn DS_double_cut;
						1 fademusic 10;
						1 fadesound 10;
						disableUserInput true;
						startLoadingScreen ["ОТКЛЮЧЕНИЕ", "DayZ_loadingScreen"];
						progressLoadingScreen 0.2;sleep 2;
						progressLoadingScreen 0.4;sleep 2.25;
						progressLoadingScreen 0.6;sleep 2;
						progressLoadingScreen 0.8;sleep 2.25;
						progressLoadingScreen 1.0;sleep 2;
						endLoadingScreen;sleep 0.5;
						disableUserInput false;
						endMission "LOSER";
					};
				};
			};
		};
		sleep 2;
	
};

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


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

 

_uid = getPlayerUID player;
_adminlist = ["6158340","0","0","0","0","0"];
if (_uid in _adminlist) exitWith {};
[] spawn {
	disableSerialization;
	DS_really_loud_sounds = {[60,15] call fnc_usec_pitchWhine;for "_i" from 1 to 15 do {playSound format ["%1",_this select 0];};};
	DS_double_cut = {1 cutText [format ["%1",_this select 0],"PLAIN DOWN"];2 cutText [format ["%1",_this select 0],"PLAIN"];};
	DS_slap_them = {_randomnr = [2,-1] call BIS_fnc_selectRandom;(vehicle player) SetVelocity [_randomnr * random (4) * cos getdir (vehicle player), _randomnr * random (4) * cos getdir (vehicle player), random (4)];};
	while {true} do {
		waitUntil {sleep 1;((!isNull findDisplay 63) && (!isNull findDisplay 55))};
		
			if (ctrlText ((findDisplay 63) displayCtrl 101) == localize "str_channel_side") then {
				[] spawn {
					if (isNil "reset_timer") then {
						reset_timer = true;
						sleep 90;
						disconnect_me = nil;
						warn_one = nil;
						warn_two = nil;
						warn_three = nil;
						warn_last = nil;
						reset_timer = nil;
					};
				};
				if (isNil "disconnect_me") then {disconnect_me = 0;} else {disconnect_me = disconnect_me + 1;};
				if (disconnect_me == 0) then {
					if (isNil "warn_one") then {
						warn_one = true;
						systemChat ("Просьба не разговаривать в общем чате, это первое предупреждение.");
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_inpain = true;
						r_player_blood = r_player_blood - 500;
					};
				};
				if (disconnect_me == 1) then {
					if (isNil "warn_two") then {
						warn_two = true;
						systemChat ("Просьба не разговаривать в общем чате, это второе предупреждение...");
						[] spawn DS_slap_them;
						["z_scream_3"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 3000;
					};
				};
				if (disconnect_me == 2) then {
					if (isNil "warn_three") then {
						warn_three = true;
						systemChat ("ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!");
						systemChat ("ВЫ БУДЕТЕ ОТКЛЮЧЕНЫ!");
						[] spawn DS_slap_them;
						["z_scream_4"] spawn DS_really_loud_sounds;
						["ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 4500;
						//_selection = ""legs"";
				        //player setHit[_selection,1];
						
					};
				};
				if (disconnect_me >= 3) then {
					if (isNil "warn_last") then {
						warn_last = true;
						playMusic ["PitchWhine",0];
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["ВАС предупреждали..."] spawn DS_double_cut;
						1 fademusic 10;
						1 fadesound 10;
						disableUserInput true;
						startLoadingScreen ["ОТКЛЮЧЕНИЕ", "DayZ_loadingScreen"];
						progressLoadingScreen 0.2;sleep 2;
						progressLoadingScreen 0.4;sleep 2.25;
						progressLoadingScreen 0.6;sleep 2;
						progressLoadingScreen 0.8;sleep 2.25;
						progressLoadingScreen 1.0;sleep 2;
						endLoadingScreen;sleep 0.5;
						disableUserInput false;
						endMission "LOSER";
					};
				};
			};
		};
		sleep 2;
	
};
Какой-то жестокий скрипт)) Поставлю, попробую.

Но всё-таки почему в моём скрипте не работает setDamage?

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


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

 

_uid = getPlayerUID player;
_adminlist = ["6158340","0","0","0","0","0"];
if (_uid in _adminlist) exitWith {};
[] spawn {
	disableSerialization;
	DS_really_loud_sounds = {[60,15] call fnc_usec_pitchWhine;for "_i" from 1 to 15 do {playSound format ["%1",_this select 0];};};
	DS_double_cut = {1 cutText [format ["%1",_this select 0],"PLAIN DOWN"];2 cutText [format ["%1",_this select 0],"PLAIN"];};
	DS_slap_them = {_randomnr = [2,-1] call BIS_fnc_selectRandom;(vehicle player) SetVelocity [_randomnr * random (4) * cos getdir (vehicle player), _randomnr * random (4) * cos getdir (vehicle player), random (4)];};
	while {true} do {
		waitUntil {sleep 1;((!isNull findDisplay 63) && (!isNull findDisplay 55))};
		
			if (ctrlText ((findDisplay 63) displayCtrl 101) == localize "str_channel_side") then {
				[] spawn {
					if (isNil "reset_timer") then {
						reset_timer = true;
						sleep 90;
						disconnect_me = nil;
						warn_one = nil;
						warn_two = nil;
						warn_three = nil;
						warn_last = nil;
						reset_timer = nil;
					};
				};
				if (isNil "disconnect_me") then {disconnect_me = 0;} else {disconnect_me = disconnect_me + 1;};
				if (disconnect_me == 0) then {
					if (isNil "warn_one") then {
						warn_one = true;
						systemChat ("Просьба не разговаривать в общем чате, это первое предупреждение.");
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_inpain = true;
						r_player_blood = r_player_blood - 500;
					};
				};
				if (disconnect_me == 1) then {
					if (isNil "warn_two") then {
						warn_two = true;
						systemChat ("Просьба не разговаривать в общем чате, это второе предупреждение...");
						[] spawn DS_slap_them;
						["z_scream_3"] spawn DS_really_loud_sounds;
						["Запрещено говорить в Глобалчате"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 3000;
					};
				};
				if (disconnect_me == 2) then {
					if (isNil "warn_three") then {
						warn_three = true;
						systemChat ("ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!");
						systemChat ("ВЫ БУДЕТЕ ОТКЛЮЧЕНЫ!");
						[] spawn DS_slap_them;
						["z_scream_4"] spawn DS_really_loud_sounds;
						["ЗАПРЕЩЕНО говорить в Глобалчате! Это последнее предупреждение!"] spawn DS_double_cut;
						r_player_blood = r_player_blood - 4500;
						//_selection = ""legs"";
				        //player setHit[_selection,1];
						
					};
				};
				if (disconnect_me >= 3) then {
					if (isNil "warn_last") then {
						warn_last = true;
						playMusic ["PitchWhine",0];
						[] spawn DS_slap_them;
						["beat04"] spawn DS_really_loud_sounds;
						["ВАС предупреждали..."] spawn DS_double_cut;
						1 fademusic 10;
						1 fadesound 10;
						disableUserInput true;
						startLoadingScreen ["ОТКЛЮЧЕНИЕ", "DayZ_loadingScreen"];
						progressLoadingScreen 0.2;sleep 2;
						progressLoadingScreen 0.4;sleep 2.25;
						progressLoadingScreen 0.6;sleep 2;
						progressLoadingScreen 0.8;sleep 2.25;
						progressLoadingScreen 1.0;sleep 2;
						endLoadingScreen;sleep 0.5;
						disableUserInput false;
						endMission "LOSER";
					};
				};
			};
		};
		sleep 2;
	
};

Спасибо за скрипт, взял нужные строки себе)))

Теперь в принципе вопрос в setDamage отошёл на второй план, хотя интересно всё-таки почему блочится дамаг.

Остался последний вопрос: как выводить цветной текст в самый верх экрана не taskHint?

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


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

Попробуй

 

 

    if ( (getPlayerUID player) in ["76561198108791460","76561198155016649","76561198039299041","76561198041993024"]) exitWith {}; // Вместо 123, 456 и т.д. вписать UID тех кому разрешено говорить в общий канал связи.
    private ["_maxSeconds", "_seconds"];
    _maxSeconds  =    5; // Сколько секунд игроку разрешено говорить в общий чат до убийства.
    _seconds     =    0;
    while {true} do
        {
            waitUntil {(!isNull findDisplay 55) and (!isNull findDisplay 63) and (ctrlText ((findDisplay 63) displayCtrl 101) == localize "STR_CHANNEL_SIDE")};
            cutText ["НЕ ГОВОРИТЕ В ОБЩИЙ КАНАЛ СВЯЗИ!", "PLAIN"];
            systemChat format["При повторном разговоре в общий канал, Вы будете убиты через: %1 сек.", (_maxSeconds - _seconds)];
            if (_seconds >= _maxSeconds) then
                {player setDamage 1;};  
            _seconds    =    _seconds + 1;
            sleep 1;
        };

 

 

Изменено пользователем Evgeniy1983 (история изменений)

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


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

Попробуй

 

 

if ( (getPlayerUID player) in ["76561198108791460","76561198155016649","76561198039299041","76561198041993024"]) exitWith {}; // Вместо 123, 456 и т.д. вписать UID тех кому разрешено говорить в общий канал связи.

private ["_maxSeconds", "_seconds"];

_maxSeconds = 5; // Сколько секунд игроку разрешено говорить в общий чат до убийства.

_seconds = 0;

while {true} do

{

waitUntil {(!isNull findDisplay 55) and (!isNull findDisplay 63) and (ctrlText ((findDisplay 63) displayCtrl 101) == localize "STR_CHANNEL_SIDE")};

cutText ["НЕ ГОВОРИТЕ В ОБЩИЙ КАНАЛ СВЯЗИ!", "PLAIN"];

systemChat format["При повторном разговоре в общий канал, Вы будете убиты через: %1 сек.", (_maxSeconds - _seconds)];

if (_seconds >= _maxSeconds) then

{player setDamage 1;};

_seconds = _seconds + 1;

sleep 1;

};

 

 

Ну setDamage 1 работает исправно. Больше ничего выдающегося не вижу в коде, цветных сообщений нет.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: DarkShy
      Приветствую! 
      Купил  мод. При подписи ошибок не возникает, если его одного использовать - все ок, но если добавить еще один мод в addons, то при входе клиента на сервер вываливается ошибка, что мол подписи не совпадают.
      Ключ один использовал, ключ в "ключах" лежит. 
      "Клиентский PBO не является частью сервера. Убедитесь, что мод установлен правильно, и вы не добавили новых PBO. Попробуйте восстановить мод через средство запуска."
    • Автор: mrDante
      Всем привет,первая Тема от меня..
      вопрос заключается в следующем,как отключить постройки статичные колонок с водой чистой(условно)?
      а зачем!?
      ну такова задумка,по сценарию...что бы игроки на PVE кипятили воду сами..
      в mpmissions я все cfg*****.xml комментировал имена и позиции, с ними, как положено <!--***-->..все map********.xml пересмотрел,перепроверил..
      стоят моды : @AdvancedBanking;@Airdrop-Upgraded;@CF;@Code Lock;@CJ187-Cars;@CJ187-MoreCrashsites;@GraveCross;@KillFeed;@MedicalAttentionUpdated-DepHelper-Vanilla;@MedicalAttentionUpdated-Core;@MedicalAttentionUpdated;@LessLessAnimalMeat;@No-Vehicle-Damage;@PartyMe;@ToxicZone;@Trader;@TraderFix_v2;@VanillaPlusPlusMap;@VPPAdminTools....
      но они всё равно на карте имеются...то есть,я на сервере их вижу и могу с ними контактировать...
      куда рыть?
      спасибо...
      P.S.
      прошу не угарать,надо мной,я не профи-скриптер,самоучка,которому пригорело ставить свой Сервер для народа...
      спасибо!
    • Автор: Pinya
      Добрейшего времени суток товарищи. Намечается полноценный ПРОЕКТ с некоторым числом серверов и блаблабла, это никому не интересно. Дело в том, что в процессе реализации возникли "небольшие" трудности. Прошу помочь тех, кто реально занимался proxmox, в курсе матчасти Linux'а или тех кто уже сталкивался с этим.

      Суть проблемы:
      Имеется Proxmox для виртуализации машинок. Discord bot'a, Windows Server для запуска серверов DayZ и т.д. Дело в том, что запуская .bat на виртуалке, сервер просто не ищется в списке лаунчера, но если поменять DMZ на адрес этой машины - всё работает, но теряется удаленный доступ к Proxmox (об этом позже).

      Вот что нужно знать понимания ситуации в будущем:
      IP адреса следующие:
      Роутер (Шлюз) - 145.254
      Proxmox - 145.250
      Windows Server (Dayz) - 145.245 - VM
      DMZ настроен на - 250

      Что имеем в итоге:
      Выставив в роутере DMZ на 245 - Можно запускать сервак любой игры с любым портом и он будет виден по внешнему (белому) IP. НО доступ к вебморде proxmox'а - не будет, т.к. пакетики идут на 245.
      Костыль: Сделать RDP на 245 и через него гулять на 250 - не годится!

      Далее выставив DMZ на 250 - Сервер любой игры доступен НЕ будет! НО доступ к вебморде proxmox'a - появится. Однако если вручную прокинуть порт того же Minecraft (самое простое что нашёл, простите) через rinetd - то он работает. с DayZ такое не прокатывает.

      В интернете пишут про правила iptables и firewall, но ничего из этого не помогло. DayZ использует зачастую рандомные порты по udp и создавать здоровенный список правил в rinetd - это минус к отклику сервера а также безопасности.

      Может кто сталкивался с любым поднятием сервера на Linux и в курсе этой темы - подскажите как решали. Неделя отчаянной работы уже заставляет краем глаза посматривать на кошелёк чтобы это сделал хоть кто-то более шарящий в этом деле, но желательно всё же объяснил. Заранее спасибо всем кто откликнется - жду всех на обсуждение. В случае успеха можно будет написать статейку по настройке на форум.
    • Автор: Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • Автор: akklin
      Привет. 
      Я сделал несколько
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Наш выбор

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

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

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