PDA

Просмотр полной версии : [Вопрос] Проверка на погоду



Sobolev
24.03.2014, 17:40
if(SetWeater == 9){SCM(playerid,"Погода под номером9");}
Пытался :D но не вышло,как сделать чтобы если погода на сервере под ID 9,то в чат пишется сообщение.

L0ndl3m
24.03.2014, 17:57
Перемещено.


if(GetServerVarAsInt("weather") == 1) SCM(playerid, "Погода под номером 9");

Но если стоит много проверок на ID погоды, то лучше использовать if, else if, или switch.

Например:



switch(GetServerVarAsInt("weather"))
{
case 0: SCM(playerid, "Погода под номером 0");
case 1: SCM(playerid, "Погода под номером 1");
case 2: SCM(playerid, "Погода под номером 2");
case 3: SCM(playerid, "Погода под номером 3");
case 4: SCM(playerid, "Погода под номером 4");
case 5: SCM(playerid, "Погода под номером 5");
}


Или так:



new weatherid = GetServerVarAsInt("weather");

if(weatherid == 0) SCM(playerid, "Погода под номером 0");
else if(weatherid == 1) SCM(playerid, "Погода под номером 1");
else if(weatherid == 2) SCM(playerid, "Погода под номером 2");
else if(weatherid == 3) SCM(playerid, "Погода под номером 3");
else if(weatherid == 4) SCM(playerid, "Погода под номером 4");
else if(weatherid == 5) SCM(playerid, "Погода под номером 5");


А можно и так:



new str[24];
format(str, 24, "Погода под номером %d", GetServerVarAsInt("weather"));
SCM(playerid, str);

Sobolev
24.03.2014, 18:34
Я так понгимаю в паблик погоды сувать?)

L0ndl3m
24.03.2014, 18:38
Туда, где вы хотите вывести сообщение в чат, в команду например.

Sobolev
24.03.2014, 18:45
Туда, где вы хотите вывести сообщение в чат, в команду например.

Ну а если мне нужно чтобы автоматически?Вот поменялась погода на 9 ид,и в чат сообщение.

L0ndl3m
24.03.2014, 18:48
Значит вставляете туда, где погода меняется. Только добавлять после смены погоды.

Sobolev
24.03.2014, 18:52
public SetRandomWeather()
{
new rand = random(sizeof(gRandomWeatherIDs));
SetWeather(gRandomWeatherIDs[rand]);
if(GetServerVarAsInt("weather") == 9)SendClientMessageToAll(COLOR_WHITE, "229");
}
Не хочет :(

L0ndl3m
24.03.2014, 18:53
А вы уверены, что рандомно выпавший ID погоды: 9?

Sobolev
24.03.2014, 18:58
Я через команду сменил погоду на 9.

L0ndl3m
24.03.2014, 19:08
Команду покажите, может там что не так.

Sobolev
24.03.2014, 19:14
if (strcmp("/set", cmdtext, true, 10) == 0)//
{
SetWeather(9);
return 1;
}

L0ndl3m
24.03.2014, 19:38
При вводе команды ничего не будет писать это и так ясно.

У вас каждый раз когда срабатывает паблик SetRandomWeather - устанавливается новая погода. Покажите массив gRandomWeatherIDs.

Sobolev
24.03.2014, 19:43
new gRandomWeatherIDs[] = {7,8,9,10,11,12,13,14,15,16};

L0ndl3m
24.03.2014, 19:48
public SetRandomWeather()
{
new r = random(sizeof(gRandomWeatherIDs));
SetWeather(gRandomWeatherIDs[r]);
new str[24];
format(str, 24, "Погода под номером %d", gRandomWeatherIDs[r]);
SendClientMessageToAll(-1, str);
}

Sobolev
24.03.2014, 20:23
public SetRandomWeather()
{
new r = random(sizeof(gRandomWeatherIDs));
SetWeather(gRandomWeatherIDs[r]);
new str[24];
format(str, 24, "Погода под номером %d", gRandomWeatherIDs[r]);
SendClientMessageToAll(-1, str);
}


А как сделать чтобы только при погоде 9 ID писалась в чат?

L0ndl3m
24.03.2014, 20:27
public SetRandomWeather()
{
new r = random(sizeof(gRandomWeatherIDs));
SetWeather(gRandomWeatherIDs[r]);
if(gRandomWeatherID[r] == 9) SendClientMessageToAll(-1, "Погода под номером 9");
}

Salvacore
24.03.2014, 22:32
Нашли решение?

Sobolev
25.03.2014, 15:07
Да,спасибо.Можно закрыть.