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

Новичок

Как понятно из названия, данная система позволит вам устанавливать рандомную погоду каждые 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 пользователей онлайн

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

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

    • От xDetik
      Приветствую.
      Сделал небольшой островок на некотором расстоянии от карты Сан-Андреса, хотел поставить там пикап, добавил пикап в мод, и после того как приехал на остров, пикап не видно. Но если на этом же пикапе поменять координаты на те, которые находятся на карте Сан-Андреса, то он становится виден. В чем может быть проблема?
    • От Daf
      Здравствуйте, знатоки Pawn. У меня возникла такая проблема, сейчас попробую расписать ее подробно:
      Я решил добавить в игру Real cars. Всё сделал правильно: подключил инклуд, знаю принцип добавление реал кара. Захожу в игру и вижу машину. Добавляю вторую — она тоже есть. Добавляю третью — снова всё нормально. Но когда я пытаюсь добавить четвёртую, игра крашится при входе.
      Не важно, какой ид авто я ставлю, менял модельки, переделал всё, но проблема остаётся. Думаю, вы сможете подсказать, как её решить.
      Include - m_custom_sync 1.0.0
      CreateVehicleVEx(npoType, npoId, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = 180, addsiren = 0, tc_veh = 0) {     new vehicle, custom_id = -1;     if(!(400 <= modelid <= 20000))     {         custom_id = GetSlotVehicleModelSync(modelid);         if(custom_id == -1) return print("daf top");         modelid = customVehModels[custom_id][ModelID];     } #include <m_custom-sync> #define M_CUSTOM_CustomForPlayers 1 #define M_CUSTOM_CustomForActors 1 #define M_CUSTOM_CustomForVehicles 1 public OnGameModeInit() {     AddVehicleSyncModel(560, 12500); // беха     AddVehicleSyncModel(560, 12600); // порш     AddVehicleSyncModel(579, 12700); // хамер     AddVehicleSyncModel(560, 19929); // чирик