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


Фотография

Таймер и выход из него


Лучший Ответ Schatten , 09 September 2019 - 20:22

Karp1989, а вот это решение:
-- условие активации:

this and { (stance player) == "STAND" }

-- при активации:

call {
    _scriptHandle = [] spawn {
        for "_t" from 5 to 0 step -1 do {
            sleep 1;

            hintSilent (format ["Вы на прицеле снайпера %1", _t]);
        };

        player setHitPointDamage ["hitHead", 1];
    };

    thisTrigger setVariable ["scriptHandle", _scriptHandle];
};

-- при деактивации:

call {
    _scriptHandle = thisTrigger getVariable ["scriptHandle", scriptNull];

    terminate _scriptHandle;
};
Перейти к сообщению


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

#1 OFFLINE   Karp1989

Karp1989

    Ефрейтор

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

Отправлено 09 September 2019 - 03:31

Всем привет, вот мне умные люди на форуме подсказали, как отловить момент когда игрок встал в полный рост, но как мне отменить таймер, когда он сел обратно, что бы его не убивало по истечении таймера?

if (stance player == "STAND") then {
time = 5;
while {time>0} do {sleep 1; time= (time-1); hint format ["Вы на прицеле снайпера %1",time]};
player setDamage [1,true];
};

  • 0

#2 OFFLINE   nIkRon

nIkRon

    Сержант

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

Отправлено 09 September 2019 - 06:13

Можно было и в той теме это написать, ну да ладно.
Во первых,

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

не может быть переменной так как это комманда. Во вторых, просто когда наносите урон после истечения времени,сделайте так-же как вы сделали в самом начале кода, только замените STAND.


  • 0

#3 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 10:43

Karp1989,

timerScriptHandle = scriptNull;

if ((stance player) == "STAND") then {
    timerScriptHandle = [] spawn {
        for "_t" from 5 to 1 step -1 do {
            sleep 1;

            hint (format ["Вы на прицеле снайпера %1", _t]);
        };

        player setDamage 1;
    };
} else {
    terminate timerScriptHandle;
};

Сообщение отредактировал Schatten: 09 September 2019 - 10:44

  • 0

#4 OFFLINE   Karp1989

Karp1989

    Ефрейтор

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

Отправлено 09 September 2019 - 14:15

Всё, разобрался.
 
timerScriptHandle = scriptNull;


if ((stance player) == "STAND") then {
    timerScriptHandle = [] spawn {
        for "_t" from 5 to 0 step -1 do {
            sleep 1;


            hintSilent (format ["Вы на прицеле снайпера %1", _t]);
        };
if ((stance player == "CROUCH") or (stance player == "PRONE")) then {
        
} else {
player setHitPointDamage ["hitHead", 1];
};
    };
} else {
    terminate timerScriptHandle;
};
 

Сообщение отредактировал Karp1989: 09 September 2019 - 14:26

  • 0

#5 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 14:22

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

И как мне эта инфа поможет? Настройки бы триггера лучше привёл.


Сообщение отредактировал Schatten: 09 September 2019 - 14:23

  • 0

#6 OFFLINE   Karp1989

Karp1989

    Ефрейтор

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

Отправлено 09 September 2019 - 18:43

 

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

И как мне эта инфа поможет? Настройки бы триггера лучше привёл.

 

Данный скрипт делает своё дело, но он активируется когда входишь в триггер солдатом в полный рост(стоя), (стоит триггер с активацией любым игроком, и в активации прописан запуск данного скрипта: execVM "checkStance.sqf";), но если вставать и садиться внутри зоны триггера, то ни чего не происходит.

timerScriptHandle = scriptNull;


if ((stance player) == "STAND") then {
    timerScriptHandle = [] spawn {
        for "_t" from 5 to 0 step -1 do {
            sleep 1;


            hintSilent (format ["Вы на прицеле снайпера %1", _t]);
        };
if ((stance player == "CROUCH") or (stance player == "PRONE")) then {
        
} else {
player setHitPointDamage ["hitHead", 1];
};
    };
} else {
    terminate timerScriptHandle;
};

Сообщение отредактировал Karp1989: 09 September 2019 - 18:44

  • 0

#7 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 20:02

Данный скрипт делает своё дело, но он активируется когда входишь в триггер солдатом в полный рост(стоя)

Логично, в нём же указано условие

(stance player) == "STAND" 

стоит триггер с активацией любым игроком, и в активации прописан запуск данного скрипта: execVM "checkStance.sqf";

Условие активации триггера какое? this? Тогда неудивительно, почему

если вставать и садиться внутри зоны триггера, то ни чего не происходит

-- игрок вошёл, "скрипт" запустился, и всё, ведь никакой логики на его повторный запуск нету.


  • 0

#8 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 20:22   Лучший Ответ

Karp1989, а вот это решение:
-- условие активации:

this and { (stance player) == "STAND" }

-- при активации:

call {
    _scriptHandle = [] spawn {
        for "_t" from 5 to 0 step -1 do {
            sleep 1;

            hintSilent (format ["Вы на прицеле снайпера %1", _t]);
        };

        player setHitPointDamage ["hitHead", 1];
    };

    thisTrigger setVariable ["scriptHandle", _scriptHandle];
};

-- при деактивации:

call {
    _scriptHandle = thisTrigger getVariable ["scriptHandle", scriptNull];

    terminate _scriptHandle;
};

  • 0

#9 OFFLINE   PomaST

PomaST

    Рядовой

  • Пользователи
  • 4 сообщений
  • Откуда:Ufa
  • Отряд:SKAT

Отправлено 09 September 2019 - 22:46

Дабы не создавать тему, спрошу касательно таймера тут.

Мне нужно, чтобы триггер молния через определенное время активировалось. Что прописывать нужно? 

Примерно через 4-5 секунд


  • 0

#10 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 22:50

PomaST, ничего прописывать не надо -- в настройках триггера задержка настраивается.


  • 0

#11 OFFLINE   PomaST

PomaST

    Рядовой

  • Пользователи
  • 4 сообщений
  • Откуда:Ufa
  • Отряд:SKAT

Отправлено 09 September 2019 - 23:00

PomaST, ничего прописывать не надо -- в настройках триггера задержка настраивается.

Нету :(

Скрытый текст


  • 0

#12 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 23:11

PomaST, так это же не триггер!


  • 1

#13 OFFLINE   PomaST

PomaST

    Рядовой

  • Пользователи
  • 4 сообщений
  • Откуда:Ufa
  • Отряд:SKAT

Отправлено 09 September 2019 - 23:17

Schatten, сори, не правильно тогда написал. Тем не менее, можно ли выставить таймер чтобы молния ударило через пару секунд? 


  • 0

#14 OFFLINE   Schatten

Schatten

    Лейтенант

  • Пользователи
  • 1265 сообщений
  • Откуда:Минск, Беларусь

Отправлено 09 September 2019 - 23:44

PomaST, к сожалению, не подскажу -- не работал с модулями (молния ей является). 


  • 0




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