new climasValidos[]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,30,31};
public OnFilterScriptInit()
{
SetTimer("Climas",10000, true);
return 1;
}
forward Climas(playerid);
public Climas(playerid)
{
new test = random(12);
new Random = random(sizeof(climasValidos));
if(test == 0)
{
SetPlayerWeather(playerid, climasValidos[Random]),IsPlayerInLSS(playerid);
SendClientMessageToAll(-1, "| INFO | Mudanзa de Tempo Prevista Para Los Santos!");
return 1;
}
......
//regioes
stock IsPlayerInLSS(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
if(x >= -28.857421 && y >= -2853.619140 && x <= 2953.142578 && y <= 604.380859) return 1;
else return 0;
}
if(IsPlayerInLS(playerid)) {
SetPlayerWeather(playerid, climasValidos[Random]);
SendClientMessageToAll(-1, "| INFO | Mudanзa de Tempo Prevista Para Los Santos!");
}
stock IsPlayerInLS(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls > 0 && yls < 0) return 1;
return 0;
}
stock IsPlayerInSF(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls < 0) return 1;
return 0;
}
stock IsPlayerInLV(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls > 0 && yls > 0) return 1;
return 0;
}
olha, se nгo me falha a memуria o clima seta й no mapa inteiro e nгo em uma sу cidade
|
new ClimaCidades[3]; // Armazena o id do clima em cada espaзo do vetor.
//нndice 0 - corresponde a LS
//нndice 1 - corresponde a LV
//нndice 2 - corresponde a SF
public OnGameModeInit()
{
SetTimer("MudaClima",1000 * 1 * 60 * 60,true);
return 1;
}
public OnPlayerConnect(playerid)
{
SetTimerEx("VerificaCidade", 1000, true, "i", playerid);
return 1;
}
forward MudaClima();
public MudaClima()
{
for(new i = 0; i < sizeof(ClimaCidades); i++)
ClimaCidades[i] = random(31) + 1;
}
forward VerificaCidade(playerid);
public VerificaCidade(playerid)
{
if(IsPlayerInSF(playerid))
SetPlayerWeather(playerid,ClimaCidades[0]);
else if(IsPlayerInLV(playerid))
SetPlayerWeather(playerid,ClimaCidades[1]);
else if(IsPlayerInSF(playerid))
SetPlayerWeather(playerid,ClimaCidades[2]);
else
SetPlayerWeather(playerid,1);
}
IsPlayerInLS(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls > 0 && yls < 0) return 1;
return 0;
}
IsPlayerInSF(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls < 0) return 1;
return 0;
}
IsPlayerInLV(playerid) {
new Float:xls,Float:yls,Float:zls;
GetPlayerPos(playerid,xls,yls,zls);
if(xls > 0 && yls > 0) return 1;
return 0;
}
Veja se isso resolve seu problema mano.
PHP код:
|