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
TheLinsus

Помощь по скрипту

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

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. ОЧ СТРАННО

 

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

Edited by TheLinsus (see edit history)

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts




  • 0

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

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

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

Share this post


Link to post
Share on other sites
  • 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;
	
};

Share this post


Link to post
Share on other sites
  • 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?

Share this post


Link to post
Share on other sites
  • 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?

Share this post


Link to post
Share on other sites
  • 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;
        };

 

 

Edited by Evgeniy1983 (see edit history)

Share this post


Link to post
Share on other sites
  • 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 работает исправно. Больше ничего выдающегося не вижу в коде, цветных сообщений нет.

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 DarkShy
      Приветствую! 
      Купил  мод. При подписи ошибок не возникает, если его одного использовать - все ок, но если добавить еще один мод в addons, то при входе клиента на сервер вываливается ошибка, что мол подписи не совпадают.
      Ключ один использовал, ключ в "ключах" лежит. 
      "Клиентский PBO не является частью сервера. Убедитесь, что мод установлен правильно, и вы не добавили новых PBO. Попробуйте восстановить мод через средство запуска."
    • By 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.
      прошу не угарать,надо мной,я не профи-скриптер,самоучка,которому пригорело ставить свой Сервер для народа...
      спасибо!
    • By 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 и в курсе этой темы - подскажите как решали. Неделя отчаянной работы уже заставляет краем глаза посматривать на кошелёк чтобы это сделал хоть кто-то более шарящий в этом деле, но желательно всё же объяснил. Заранее спасибо всем кто откликнется - жду всех на обсуждение. В случае успеха можно будет написать статейку по настройке на форум.
    • By Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • By akklin
      Привет. 
      Я сделал несколько
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • 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.