В теме 11 сообщений

Гость stibs
Новичок

Как понятно из названия, данная система позволит вам устанавливать рандомную погоду каждые N-минут, при этом будет оповещать жителей города о предстоящей смене погоды.


В начало мода (можно просто new):

enum E_WEATHER_DATA
{
        weather_name[15],
        weather_id,
        weather_degrees
};
 
new weather[][E_WEATHER_DATA] =
{
        {"ясная погода", 18, 22},
        {"туман", 9, 15},
        {"гроза", 8, 17},
        {"ясная погода", 3, 21},
        {"ясная погода", 1, 23}
};

В OnGameModeInit

SetTimer("SetRandomWeather", 60000, false);

В конец мода:

forward SetRandomWeather();
public SetRandomWeather()
{
        new fmt_msg[55];
        new rand = random(sizeof weather);
 
        SendClientMessageToAll(0x3399FFFF, "[Прогноз погоды]");
 
        format(fmt_msg, sizeof fmt_msg, "В области ожидается %s {99CC00}(+%d °С)", weather[rand][weather_name], weather[rand][weather_degrees]);
        SendClientMessageToAll(-1, fmt_msg);
 
        SetWeather(weather[rand][weather_id]);
        return 1;
}

Автор: Barxan01

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


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

А как сделать, что бы каждый PayDay ( час ) погода менялась? Или уже так сделано?

 

Хелп )

new.pwn(53330) : error 017: undefined symbol "weather"
new.pwn(53334) : error 017: undefined symbol "weather"
new.pwn(53334) : warning 215: expression has no effect
new.pwn(53334) : error 001: expected token: ";", but found "]"
new.pwn(53334) : error 029: invalid expression, assumed zero
new.pwn(53334) : fatal error 107: too many error messages on one line

 

И кстати, как сделать, что бы новость и смене погоды - была не в общий чат, а каждому игроку отдельно? Ну как информация о PayDay?

Отредактировано пользователем HAPKOMAH

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


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

@HAPKOMAH к new добавьте то, что написано в начале темы. Из-за этого ошибки. 

34 минуты назад, HAPKOMAH сказал:

А как сделать, что бы каждый PayDay ( час ) погода менялась? Или уже так сделано?

Если каждый час, то в OnGameModeInit (строке) замените: 

SetTimer("SetRandomWeather", 1000*60*60, true);

 

36 минут назад, HAPKOMAH сказал:

И кстати, как сделать, что бы новость и смене погоды - была не в общий чат, а каждому игроку отдельно? Ну как информация о PayDay?

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

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


Ссылка на сообщение
Поделиться на другие сайты
20 часов назад, DEST сказал:

 к new добавьте то, что написано в начале темы. Из-за этого ошибки. 

Я уже говорил. Внимательней пост читайте. 

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


Ссылка на сообщение
Поделиться на другие сайты
Только что, DEST сказал:

@HAPKOMAH Вы ждали целый час после запуска мода и ничего не произошло, так? Или вы просто дождались пей дея? 

Ой, я просто дождался 22:00 ( а сам зашел в 21:40 вроде )

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


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

@HAPKOMAH Если хотите чтобы он срабатывал в каждый пейдей, значит из OnGameModeInit строку с таймером снести, а в код срабатывания PayDay добавить: 
 

SetRandomWeather();

 

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


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

@DEST Сделал, вот часть кода ( P.S. Строка которую ты дал с самого низу )

	SendClientMessage(i, COLOR_WHITE, "---------------{FFFF00}[Áàíêîâñêèé ÷åê]{FFFFFF}---------------");
			if(pInfo[i][pAdmin])
			{
			    new AdminSalary = 1000*(pInfo[i][pAdmin]+1);
				GiveBankMoney(i, AdminSalary, "AdminSalary");
		    	format(string, sizeof(string), "- Çàðïëàòà àäìèíèñòðàòîðà: {FF9900}%d$", AdminSalary);
				SendClientMessage(i, COLOR_WHITE, string);
			}
			format(string, sizeof(string), "- Çàðïëàòà: {FF9900}%d$", (pInfo[i][pPayCheck]>0)?(pInfo[i][pPayCheck]):(50));
			SendClientMessage(i, COLOR_WHITE, string);
			GiveBankMoney(i, (pInfo[i][pPayCheck]>0)?(pInfo[i][pPayCheck]):(50), "PayDay");
			format(string, sizeof(string), "- Òåêóùèé áàëàíñ ñ÷¸òà: {FF9900}%d$", pInfo[i][pBank]);
			SendClientMessage(i, COLOR_WHITE, string);
			SendClientMessage(i, COLOR_WHITE, "-----------------------------------------------------------");
			pInfo[i][pPayCheck] = 0;
			if(pInfo[i][pZakon] < 100)
			SetRandomWeather();
			{

 

12 минут назад, DEST сказал:

@HAPKOMAH Если хотите чтобы он срабатывал в каждый пейдей, значит из OnGameModeInit строку с таймером снести, а в код срабатывания PayDay добавить: 
 


SetRandomWeather();

 

Не работает, сделал сам PayDay + дождался ровно 23:00, не робит

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


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

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

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

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

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


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

Войти

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


Войти

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

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

  • Похожий контент

    • Korochansky
      От Korochansky
      Я рад объявить о выпуске первой публичной версии современной IDE с открытым исходным кодом под лицензией GPLv3 для разработки open.mp и SA-MP, которая отличается интеграцией с SAMPCTL, управлением зависимостями и встроенной поддержкой Git.
       
      Особенности:
      • Разработано специально для open.mp и SA-MP разработки.
      • Встроенная интеграция с SAMPCTL для создания, запуска и управления проектами.
      • Менеджер зависимостей для удобной установки и обновления серверных пакетов и компонентов.
      • Встроенная поддержка Git с индикаторами состояния репозитория и историей коммитов.
      • Маркеры истории изменений для отслеживания измененных и сохраненных строк.
      • Автоматическое сопоставление и выделение скобок
      • Предварительный просмотр цвета для значений RGBA и HEX прямо в редакторе.
      • Интеграция инструмента выбора цвета для быстрой вставки цветов в код Pawn.
      • Режим 'Разделенный редактор кода' для одновременной работы с несколькими файлами.
      • Дерево проекта, оптимизированное для крупных проектов.
      • Интегрированные панели вывода результатов сборки и консоли сервера.
      • Автоматический мониторинг и обновление файлов проектов.
      • Портативная версия (установка не требуется).
       
      В репозитории: https://github.com/daniilkorochansky/spawn
    • Margiela
      От Margiela
      устал от vs code + он часто конфликтует с маками, конкретно с версией M3(как у меня).
      имеются ли аналоги pawno на mac?