Перейти к содержимому


Фотография

скрипт резервирование слота


Лучший Ответ Schatten , 02 August 2019 - 14:40

TopDen, тогда вставь в начало только функции AZM_SLOTS этот код:

if (isNil "s1") exitWith {};
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 01 August 2019 - 20:00

Здравствуйте парни. Такой вопрос: есть скрипт резервирование слота по айди.

AZM_SLOTS = {
	["7656*************", S1] call AZM_RESERVED_SLOT;
};

AZM_RESERVED_SLOT = {
	[_this select 0, _this select 1] spawn {
		params ["_uidd","_slot"];
		waitUntil {!isNull player || player == player};
		if (_slot == player) then {
			if ((getPlayerUID player) == _uidd) then {
				hint format ["Это %1 ? Ваш %2 допуск подтвержден",name player, getPlayerUID player];
			} else {
				for "_sec" from 5 to 1 step -1 do {
					_kickvar = format ["<t size='3' color='#ff0000'>ЭТО СЛОТ ДЛЯ....!!!</t>"];
					 titleText [_kickvar, "BLACK IN", -1,true,true];
						
										
					playSound "FD_CP_Not_Clear_F"; playSound "FD_CP_Not_Clear_F"; playSound "FD_CP_Not_Clear_F";
					sleep 1;	
				};

				diag_log format ["ВНИМАНИЕ>> %1 >> %2 ---- %3 ПЫТАЛСЯ ЗАНЯТЬ СЛОТ",time,getPlayerUID player,name player];
				sleep .1;
				["RESSLOT",false,.1] call BIS_fnc_endMission;
			};	
		};
	};
};
[] call AZM_SLOTS;

т.е есть два слота S1 и S2.  S1 резерв. если за него зайти, то скрипт работает и тебя выкинет если не совпадает айди.
НО, если зайти за свободный слот S2, то дает ошибку

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Можно как-то подправить это или может у кого-то есть более простой\надежный вариант? Спасибо
  


Сообщение отредактировал TopDen: 01 August 2019 - 20:00

  • 0

#2 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 01 August 2019 - 21:11

А можно ошибку из rpt ?

P.S Судя по скрину, он не знает что такое S1


Сообщение отредактировал nIkRon: 01 August 2019 - 21:19

  • 0

#3 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 02 August 2019 - 02:27

22:31:31 Error in expression <"AZM_SLOTS = {["**************", s1] call AZM_RESERVED_SLOT;};AZM_RESE>
22:31:31   Error position: <s1] call AZM_RESERVED_SLOT;};AZM_RESE>
22:31:31   Error Неопределенная переменная в выражении: s1
22:31:31 File mpmissions\__CUR_MP.Takistan\addons\Reservedslots.sqf, line 
222:31:31 Error in expression <isNull player || player == player};if (_slot == player) then {if ((getPlayerUI>
22:31:31   Error position: <_slot == player) then {if ((getPlayerUI>
22:31:31   Error Неопределенная переменная в выражении: _slot
22:31:31 File mpmissions\__CUR_MP.Takistan\addons\Reservedslots.sqf, line 9

да. просто не пойму почему он срабатывает если занимаешь любой другой слот, который НЕ S1 . и почему при занятии другого любого слота он пишет что переменная не определена.


Сообщение отредактировал TopDen: 02 August 2019 - 13:34

  • 0

#4 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 02 August 2019 - 04:18

Он срабатывает там, где вы его пропишите.

В идеале переписать всю эту систему, она не очень хорошо написана.


Сообщение отредактировал nIkRon: 02 August 2019 - 04:22

  • 0

#5 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 02 August 2019 - 04:43


В идеале переписать всю эту систему, она не очень хорошо написана.

 


Можно как-то подправить это или может у кого-то есть более простой\надежный вариант? Спасибо

  • 0

#6 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 02 August 2019 - 10:56

TopDen, вставь в начало функции AZM_RESERVED_SLOT этот код:

params ["", "_slot"];

if (isNil "_slot") exitWith {};

  • 0

#7 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 02 August 2019 - 14:17

Schatten, к сожалению тоже самое. если занимаешь любой другой слот идет этот скрипт с ошибкой :sad:

13:15:25 Error in expression <qf"
AZM_SLOTS = {
["*********", s1] call AZM_RESERVED_SLOT;
};

AZM_RE>
13:15:25   Error position: <s1] call AZM_RESERVED_SLOT;
};

AZM_RE>
13:15:25   Error Неопределенная переменная в выражении: s1
13:15:25 File C:\Users\ddd\Documents\Arma 3 - Other Profiles\[ATP]%20TopDen\mpmissions\res_slot.VR\Reservedslots.sqf, line 2

  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 02 August 2019 - 14:40   Лучший Ответ

TopDen, тогда вставь в начало только функции AZM_SLOTS этот код:
if (isNil "s1") exitWith {};

Сообщение отредактировал Schatten: 02 August 2019 - 14:41

  • 1

#9 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 02 August 2019 - 16:09

да спасибо) только подумал об этом)) спасибо Schatten,


Сообщение отредактировал TopDen: 02 August 2019 - 16:10

  • 0

#10 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 02 August 2019 - 17:47

if (isNil "s1") exitWith {};

Если будет не только s1, то этот вариант не поможет, а если будет только один "резервный слот", то смысл строить такую цепочку.
А если же использовать костыли, тогда лучше тогда так:
 

AZM_SLOTS = {
	if !(isNil "s1") then
	{
		["7656*************", S1] call AZM_RESERVED_SLOT;
	};
	if !(isNil "s2") then
	{
		["7656*************", S2] call AZM_RESERVED_SLOT;
​ 	};
};

  • 0

#11 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 02 August 2019 - 18:29

да, спасибо вам. планировал только один-два слота так использовать. взял на заметку)


  • 0




Яндекс.Метрика