Перейти к содержанию
Авторизация  
Dmitriy Toporov

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

Рекомендуемые сообщения

Dmitriy Toporov

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

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

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

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

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

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; }

Автор

Изменено пользователем #Flexo.A
Убрал автора, даю сутки на исправление автора!
  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Николай)

Нужная вещь) +

Изменено пользователем Николай)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vlad_Miroshnicov

Нужная вещь) +

Согласен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vlad_Miroshnicov

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

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

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

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

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

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; }

Автор : Dmitriy_Toporov

Молоток лови +

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Эталон быдлокода.
- Зачем десять условий if, когда по факту можно обойтись двумя?
- Зачем после всех условий недостижимый вообще возврат единицы?
 

public UpdateSleep(playerid) {
   if (psleep[playerid] < 10)
   {
      psleep[playerid]++;
      if (psleep[playerid] > 7) SendClientMessage(playerid, -1, "Внимание! У вас мало сил, вы очень устали! Вам нужно поспать!");
   }
   else
   {
      SendClientMessage(playerid, -1, "От усталости вы упали и уснули."); 
      psleep[playerid] = 0;
   }
   return 1;
}

Как думаете, чей код занимает меньше места и меньше тактов процессорного времени?

И SetTimer использован неверно. Функция UpdateSleep имеет один входной параметр playerid, который через SetTimer не передается. Поскольку сейчас нет под рукой компилятора, возможны два варианта:

- компилятор просто вывалится с ошибкой о несоответствии количества параметров;

- компилятор выдаст вареник о несоответствии количества параметров, функция выполняться будет, но только для playerid = 0.

Для этих случаев есть SetTimerEx:

 

SetTimerEx ("UpdateSleep", 300000, true, "d", playerid);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rustyk

 

 

Автор : Dmitriy_Toporov

Я не уверен в этом. Такие уроки есть и на других порталах 2012-2014 годов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy Toporov

 

 

 

Автор : Dmitriy_Toporov

Я не уверен в этом. Такие уроки есть и на других порталах 2012-2014 годов.

 

я из своего мода вырезал !

который пишу с 0 

(Сорри оффтоп)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
st1vka

Из самповского Connected RP..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Flaymeek

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Фоня

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Flaymeek

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Фоня

 

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

 

Не я точно знаю что он из своего мода это вырезал!

Может быть в моде был этот код!

который ты скинул.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

 

 

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

 

Не я точно знаю что он из своего мода это вырезал!

Может быть в моде был этот код!

который ты скинул.

 

Ну, тогда мод у ТСа точно не с нуля, как тот утверждает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Karpyha

Автор не ты ибо я видел это все на скриптах.
Прошу убрать его с Авторов, дабы это не он автор, а можете убедиться пользоваться поиском по гуглу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rustyk

 

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

 

Хочу сказать , это считается за рекламу других игровых порталов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Flaymeek

 

 

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

 

Хочу сказать , это считается за рекламу других игровых порталов.

 

Извиняюсь конечно за оффтоп,но это было предоставлено как доказательство,реклама тут не причём,я был вынужден доказать что не н автор,вот и всё.Просто это уж совсем глупо,когда чужую работу присвоить себе.  

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Karpyha

 

 

 

 

Прошу выдать предупреждение за копипастинг!Автор не он!Тем более тема где-то уже была на форуме,по ищите и найдёте.  

Тема действительно есть вот она :

http://gsgames.ru/forum/topic/8730-potrebnost-sna/?hl=потребность

 

Но там совсем по другому всё.

 

Нашёл на другом портале.http://[ссылка стороннего ресурса].ru/index.php/topic/305-potrebnost-sna/ (не реклама)

 

Хочу сказать , это считается за рекламу других игровых порталов.

 

Извиняюсь конечно за оффтоп,но это было предоставлено как доказательство,реклама тут не причём,я был вынужден доказать что не н автор,вот и всё.Просто это уж совсем глупо,когда чужую работу присвоить себе.  

 

Полностью согласен с вами!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.