shape1
shape2
shape3
shape4
shape7
shape8

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

  • Автор темы compan
  • Дата начала

C

compan

Гость
Гость
Без комментариев. Код только выровнить.

1. В начале мода ко всем new добавляем:

new psleep[MAX_PLAYERS]; // переменная отвечающая за сессию игрока

2. Создаём forward для будующего паблика (требует таймер):

forward UpdateSleep(playerid); // наш форвард (для паблика)

3. Создаём наш public, вне других public'ов:

public UpdateSleep(playerid) { // паблик упдейта потребностей
                if(psleep[playerid] == 0) { psleep[playerid] = 1; return 1; }
                if(psleep[playerid] == 1) { psleep[playerid] = 2; return 1; }
                if(psleep[playerid] == 2) { psleep[playerid] = 3; return 1; }
                if(psleep[playerid] == 3) { psleep[playerid] = 4; return 1; }
                if(psleep[playerid] == 4) { psleep[playerid] = 5; return 1; }
                if(psleep[playerid] == 5) { psleep[playerid] = 6; return 1; }
                if(psleep[playerid] == 6) { psleep[playerid] = 7; return 1; }
                if(psleep[playerid] == 7) { SendClientMessage(playerid, -1, "Внимание! У вас мало сил, вы очень устали! Вам нужно поспать!"); psleep[playerid] = 8; return 1; }
                if(psleep[playerid] == 8) { SendClientMessage(playerid, -1, "Внимание! У вас мало сил, вы очень устали! Вам нужно поспать!"); psleep[playerid] = 9; return 1; }
                if(psleep[playerid] == 9) { SendClientMessage(playerid, -1, "Внимание! У вас мало сил, вы очень устали! Вам нужно поспать!"); psleep[playerid] = 10; return 1; }
                if(psleep[playerid] == 10) { SendClientMessage(playerid, -1, "От усталости вы упали и уснули."); psleep[playerid] = 0; return 1; }
return 1; }
4. В public OnGameModeInit вставляем наш таймер:

SetTimer("UpdateSleep",300000,1); // Каждые пять минут добавляет 1 пункт усталости

5. Создаём места для сна

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) { // условие, если кол-во очков сна меньше или равно 3, то игрок не будет спать!
SendClientMessage(playerid,-1,"Вы недавно спали, приходите позже!");
return 1; }

SendClientMessage(playerid,-1,"Вы поспали Можете идти");
psleep[playerid] = 0; // сброс кол-ва очков усталости

return 1; }

Автор: SanStar. 

 
Последнее редактирование:

LHTTD

Темная сторона Форума
Пользователь
08.10.2014
325
43
0
GodFather !К CR:MP отношения не имеет

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 513
3
550
0
27
definehost.ru
Скриптер
GodFather !К CR:MP отношения не имеет
Причем здесь GodFather? Система хоть и не доделана, но работать будет. Главное что в коде не используются функции связанные с samp 0.3z

 

vasya2015

Молодой холостяк.
Пользователь
10.01.2015
644
30
0
25
Тупо анимации некакой нету. Типа он ложиться в кровать потом встаёт. Просто вводиш команду и сразу же пишет вы поспали.

Сделал бы хотябы на 1минуту затухает екран и потом уже пишет вы поспали!

 

vasya2015

Молодой холостяк.
Пользователь
10.01.2015
644
30
0
25
Всё всё)) Я уже сделал)) И анимацию и на 60секунд спать))

 

peter

Эх По скорей бы лето.
Пользователь
23.09.2015
161
7
0
24
f (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) { // условие, если кол-во очков сна меньше или равно 3, то игрок не будет спать!
SendClientMessage(playerid,-1,"Вы недавно спали, приходите позже!");
return 1; }

SendClientMessage(playerid,-1,"Вы поспали Можете идти");
psleep[playerid] = 0; // сброс кол-ва очков усталости

return 1; }

можете перевести эту команду на то CMD: sleep  ну я не знаю как называется  это система.

 
A

Amfy

Гость
Гость
@peter, просто меняешь шапку команды.

Это:

if (strcmp(cmd, "/sleep", true) == 0)

На это:

Код:
CMD:sleep(playerid, params[])