SetPlayerTimeSkin - скин на время
Доброго времени суток, Ув. пользователи Pro-Pawn.Ru!
На досуге пришла идея реализовать функцию, которая будет выдавать скин игроку на время.
Собственно, не долго думая, я решил это сделать.
SetPlayerTimeSkin(playerid, skinid, time);
playerid - id игрока;
skinid - id скина;
time - время(в секундах);
Код функции:
Открыть/закрыть
PHP код:
stock SetPlayerTimeSkin(playerid, skin, time)
{
// умножаем time на 1000, т.е.
// переводим в секунды
time = time*1000;
// в переменную old_skin записываем
// нынешний id скина (дабы его потом вернуть игроку)
new old_skin = GetPlayerSkin(playerid);
// таймер
SetTimerEx("OnTimeToSkinFinished", time, false, "ii", playerid, old_skin);
// в итоге выдаем указанному игроку
// указанный скин
return SetPlayerSkin(playerid, skin);
}
forward OnTimeToSkinFinished(playerid, old_skin);
public OnTimeToSkinFinished(playerid, old_skin)
{
// спустя указанное время - возвращаем
// игроку старый скин
SetPlayerSkin(playerid, old_skin);
}
Пример использования (команда /setskin):
Открыть/закрыть
PHP код:
CMD:setskin(playerid, params[])
{
new targetid, // переменная ID игрока
skin, // переменная ID нового скина
time; // переменная времени
// если не введен один из параметров - выводится текст
if(sscanf(params, "ddd", targetid, skin, time))
return SendClientMessage(playerid, -1,
!"Введите: /setskin [ID игрока] [ID скина] [время в секундах]");
// в итоге выдаем указанному игроку указанный скин на указанное время.
SetPlayerTimeSkin(targetid, skin, time);
return true;
}
Жду адекватной критики.
Автор:
Alanchick.
Большое спасибо за помощь в реализации:
Untonyst.