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

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

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

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

Потребность сна

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

SanStar

Изучающий
Пользователь
Регистрация
4 Окт 2011
Сообщения
221
Лучшие ответы
0
Репутация
84
Потребность сна.
Данной фишкой вы сможете удивить своих игроков, и улучшить качество РП на своём сервере.

Итак, первым шагом будет создание переменных:
PHP:
new psleep[MAX_PLAYERS]; // Создаёт каждому игроку счётчик Энергитических очков (О_о)...
forward UpdateSleep(playerid); // Для паблика апдейта очков энергии...
Второй шаг, это создание паблика того самого апдейта очков энергии (отбираем очки энергии):
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; }
Последним 5ым шагом, делаем "кровати для сна":
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; }
Если я что-то забыл дописать или у вас выбивает ошибки при компиляции, обязательно напишите в этой теме!

Автор данного урока (мануала): SanStar (тобишь Я).
Если вам понравился урок, можете сказать спасибо ну или поставить плюс. (Если не хотите не ставте).
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу