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


Фотография

Ограниченное число возрождений


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

#1 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 22 September 2024 - 21:28

Всем привет,короче нужно сделать ограниченное число возрождений на сторону(в данном случае west).тобишь как я это понимаю:Умирает игрок у стороны отбирается одно очко возрождения. Естественно когда очков будет ноль,миссия завершается неудачей. 

в description написано.

respawnOnStart = 0;
respawn = "Base";
respawndelay = 20;
respawnTemplates[] = {"MenuPosition","EndMission",};
 
P.s пролистал много зарубежных форумов и знаю что в respawnTemplates[] нужно вписывать еще билет,но как я не пробовал все работало не корректно.То при числе билетов в 1 меня,игрока(так как тестил пока один)перебрасывало в режим наблюдателя.Либо же билеты(число возрождений)вовсе не отнимались,тобишь до бесконечности.Либо же мой код в initPlayerLocal на сохранение экипировки после смерти и при возрождении не работал(Тобишь возрождался не с тем с чем умер,а с чем был при старте).Прошу кто знает как решить это.Как ограничить число возрождений.Прошу помощи так как уже второй день бьюсь над этим.

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 сообщений

Отправлено 28 September 2024 - 00:43

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

 -- шаблон Tickets.


Сообщение отредактировал Schatten: 28 September 2024 - 20:51

  • 0

#3 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 28 September 2024 - 23:02

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

 -- шаблон Tickets.

сделал так в initServer вписал это 

[west, 3] call BIS_fnc_respawnTickets;

 

в initPlayerLocal

addMissionEventHandler ["EntityRespawned", {
params ["_newEntity", "_oldEntity"];
_side = side group _newEntity;
if (local _newEntity) then {
[_side, -1] call BIS_fnc_respawnTickets; 
};
}];
 
так же поставил два триггера один следит за количеством билетов.Когда билеты достигают нуля и все игроки мертвы срабатывает триггер и миссия проваливается.Второй поставил когда билеты так же равны нулю то удаляются все точки респауна через BIS_fnc_removeRespawnPosition; так как в дискрипшен в respawnTemplates[] отключил tiket оставил так respawnTemplates[] = {"MenuPosition"}; если включить тикет в дискрипшен то билеты отнимаються при смерти а мне нужно было чтобы отнимались после респауна.В принципе работает,хоть как я и понимаю это костыль.Лишь один раз был что точки респа не удалились и хотя билетов было 0 то игроки моглм возрождаться,но это думаю проблемма запуска скрипта так как команда BIS_fnc_removeRespawnPosition; находиться в файле sqf и запускаеться через триггер.Но это вроде решил.Может конечно есть другой способ решения но пока только такэ

  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 сообщений

Отправлено 28 September 2024 - 23:09

в initPlayerLocal
addMissionEventHandler ["EntityRespawned", {
params ["_newEntity", "_oldEntity"];
_side = side group _newEntity;
if (local _newEntity) then {
[_side, -1] call BIS_fnc_respawnTickets; 
};
}];

Это тоже должно быть в initServer.sqf, без никаких local.


  • 0

#5 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 29 September 2024 - 00:45

 

в initPlayerLocal
addMissionEventHandler ["EntityRespawned", {
params ["_newEntity", "_oldEntity"];
_side = side group _newEntity;
if (local _newEntity) then {
[_side, -1] call BIS_fnc_respawnTickets; 
};
}];

Это тоже должно быть в initServer.sqf, без никаких local.

 

тобиши это должно быть в и там и там?


  • 0

#6 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 сообщений

Отправлено 29 September 2024 - 01:54

Только в initServer.sqf.


  • 0

#7 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 01 October 2024 - 14:02

Только в initServer.sqf.

если убираю local то игра выдает ошибку на if (l_newEntity) then  


Только в initServer.sqf.

если убираю local то игра выдает ошибку на if (l_newEntity) then  


  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 сообщений

Отправлено 01 October 2024 - 14:29

Конечно,

if (_newEntity) then

Если объект _newEntity, то... что? Бред.

Я имел ввиду убрать if полностью.


  • 0

#9 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 04 October 2024 - 11:03

Конечно,

if (_newEntity) then

Если объект _newEntity, то... что? Бред.

Я имел ввиду убрать if полностью.

спасибо понял.Только мне интереснго почему это работало и в плауерлокал?


  • 0

#10 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 сообщений

Отправлено 04 October 2024 - 12:26

Из-за проверки на локальность.


  • 0

#11 OFFLINE   11Varan11

11Varan11

    Ефрейтор

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

Отправлено 08 October 2024 - 13:34

Из-за проверки на локальность.

Спасибо за разъяснения 


  • 0




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