Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Делаем потребность сна /sleep

Статус
В этой теме нельзя размещать новые ответы.

[Dr.Zero]

К переменным

PHP:
new psleep[MAX_PLAYERS]; // Создаёт каждому игроку счётчик Энергитических очков... 
forward UpdateSleep(playerid); // Для паблика апдейта очков энергии...
Далее создаём publik самого апдейта очков энергии (отбираем очки энергии):
PHP:
public UpdateSleep(playerid) { // Паблик апдейта очков энергии 
          psleep[playerid]++; 
          switch(psleep[playerid]) 
          { 
                  case 7 .. 9: 
                  { 
                        SendClientMessage(playerid, -1, "(( Вы устали, вам нужно поспать! ))"); 
                  } 
                  case 10: 
                  { 
                        SendClientMessage(playerid, -1, "(( Вы уснули. (Проснуться - /unsleep). ))"); 
                        TogglePlayerControllable(playerid, 0); 
                        SetPVarInt(playerid,"SLEEP",gettime()+120); 
                        ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1); 
                        ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1); 
                  } 
          } 
return 1; }
в public OnGameModeInit вставляем:
PHP:
SetTimer("UpdateSleep",300000,1);
Создаём команду что бы проснуться. Добавляем в public OnPlayerCommandText(playerid, cmdtext[]):
PHP:
if (strcmp(cmd, "/unsleep", true) == 0) { 

if(GetPVarInt(playerid,"SLEEP") > gettime()) { 
SendClientMessage(playerid,-1,"(( Вы ещё не выспались... ))"); 
return 1; } 

      TogglePlayerControllable(playerid, 1); 
      SendClientMessage(playerid,-1,"(( Вы выспались... ))"); 
      psleep[playerid] = 0; 

return 1; }
И ко всем командам
PHP:
if (strcmp(cmd, "/sleep", true) == 0) { 

       if (!PlayerToPoint(3.0, playerid, X,Y,Z) { // X,Y,Z - Координаты кровати 
          SendClientMessage(playerid,-1,"(( Вы не на кровати! ))"); 
      return 1; } 

      if (psleep[playerid] <= 3) { 
          SendClientMessage(playerid,-1,"(( Вы не устали, что-бы спать! ))"); 
      return 1; } 

      TogglePlayerControllable(playerid, 0); 
      SendClientMessage(playerid,-1,"(( Вы легли спать... (1 минута) (Что-бы проснуться /unsleep) ))"); 
      SetPVarInt(playerid,"SLEEP",gettime()+60); 
      ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1); ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1); 

return 1; }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу