Просмотр полной версии : [Вопрос] Анимации и таймеры
Как сделать так:
Игрок вызвал функцию, у него началась проигрываться анимация и начал отсчет 15 секунд таймер.
По окончанию таймера, анимация прекращается, и об этом пишет в общий чат допустим.
Кто ответит - получит плюс
underwoker
31.05.2014, 23:53
Игрок не может вызвать функцию, он может ввести команду, которая вызовет функцию.
Создаем саму анимацию:
http://wiki.sa-mp.com/wiki/ApplyAnimation_RU
Делаем таймер в 15000:
http://wiki.sa-mp.com/wiki/SetTimerEx_RU
И замораживаем игрока
http://wiki.sa-mp.com/wiki/Function:TogglePlayerControllable
Ну и по окончанию таймера размораживаем игрока той же функцией, а так же выводим сообщение в чат
http://wiki.sa-mp.com/wiki/SendClientMessageToAll
C примером SetTimerEx пожалуйста
C примером SetTimerEx пожалуйста
http://pro-pawn.ru/showthread.php?4680-SetTimerEx%28funcname-interval-repeating-const-format-Float-_-%29&highlight=SetTimerEx
underwoker
01.06.2014, 00:18
timeanim[playerid] = SetTimerEx("timeanim1",15000,false,"i", playerid);
forward timeanim1(playerid);
public timeanim1(playerid)
{
//код с остановкой анимки ClearAnimations и разморозкой игрока
}
Массив сам создашь.
timeanim[playerid] = SetTimerEx("timeanim",15000,false,"i", playerid);
forward timeanim(playerid);
public timeanim(playerid)
{
//код с остановкой анимки ClearAnimations и разморозкой игрока
}
Массив сам создашь.
1) Для чего там массив? Таймер не зациклен и останавливать его какой-либо функцией не нужно.
2) Почему у массива и функции одинаковые названия? Случится казус же :)
underwoker
01.06.2014, 08:42
1) Для чего там массив? Таймер не зациклен и останавливать его какой-либо функцией не нужно.
2) Почему у массива и функции одинаковые названия? Случится казус же :)
Массив, я думал убивать таймер при отключении игрока, в случае отключения его от сервера во время действия таймера.
Но если это не нужно, то извиняюсь.
Да, с названием казус)
Массив, я думал убивать таймер при отключении игрока, в случае отключения его от сервера во время действия таймера.
Но если это не нужно, то извиняюсь.
Ну если уж очень страшен тот факт, что функция сработает для игрока в оффлайне - можно в саму функцию вставить проверку, типа
if(!IsPlayerConnected(playerid)) return 1;
А если страшен тот факт, что для нового игрока, подключённого в тот же слот, сработает функция - вставляем туда же функцию на проверку авторизации и всё. За 15 секунд вряд ли новый игрок успеет авторизироваться.
В общем, по-моему, тут можно и без массива обойтись :)
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot