Guten Tag
Ich habe mir jetzt jede Beitrag hier im Scripting Base angeschaut und habe kein Dynamisches Wettersystem gefunden.
Daher bin ich auf der Suche/Hilfe für ein Dynamisches Wettersystem
Guten Tag
Ich habe mir jetzt jede Beitrag hier im Scripting Base angeschaut und habe kein Dynamisches Wettersystem gefunden.
Daher bin ich auf der Suche/Hilfe für ein Dynamisches Wettersystem
//--------------------------------------------------------------------[ Wetter System ]
new Weather[3];
new WetterRandomLS[] = {2,7,10,12,13,14,15};
new WetterRandomSF[] = {2,7,10,12,13,14,15};
new WetterRandomLV[] = {2,7,10,12,13,14,15};
if(IsPlayerConnected(i))
{
GetPlayerPos(i, xx, yy, zz);
if((xx > -992.5172 && xx < 4000.0000) && (yy < 528.0000 && yy > -4000.0000)) //Los Santos
{
SetPlayerWeather(i, Weather[0]);
//Los Santos
}
if((xx > -4000.0000 && xx< -992.5172) && (yy < 4000.0000 && yy > -4000.0000)) //San Fierro
{
SetPlayerWeather(i, Weather[1]);
//San Fierro
}
if((xx > -992.5172 && xx< 4000.0000) && (yy < 4000.0000 && yy > 528.0000)) //Las Venturas
{
SetPlayerWeather(i, Weather[2]);
//Las Venturas
}
Alles anzeigen
Ini Datei nicht vergessen
public SaveWeather()
{
new string3[32];
format(string3, sizeof(string3), "Wetter.ini");
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "WetterLS=%d\n",Weather[0]);fwrite(hFile, var);
format(var, 32, "WetterSF=%d\n",Weather[1]);fwrite(hFile, var);
format(var, 32, "WetterLV=%d\n",Weather[2]);fwrite(hFile, var);
fclose(hFile);
}
return 1;
}
Alles anzeigen
GetPlayerPos(i, xx, yy, zz);
if((xx > -992.5172 && xx < 4000.0000) && (yy < 528.0000 && yy > -4000.0000)) //Los Santos
{
SetPlayerWeather(i, Weather[0]);
//Los Santos
}
if((xx > -4000.0000 && xx< -992.5172) && (yy < 4000.0000 && yy > -4000.0000)) //San Fierro
{
SetPlayerWeather(i, Weather[1]);
//San Fierro
}
if((xx > -992.5172 && xx< 4000.0000) && (yy < 4000.0000 && yy > 528.0000)) //Las Venturas
{
SetPlayerWeather(i, Weather[2]);
//Las Venturas
Alles anzeigen
forward ChangeWeather();
public ChangeWeather()
{
Weather[0] = WetterRandomLS[random(sizeof(WetterRandomLS))];
Weather[1] = WetterRandomSF[random(sizeof(WetterRandomSF))];
Weather[2] = WetterRandomLV[random(sizeof(WetterRandomLV))];
SCMTA(COLOR_YELLOW," Bot: Es liegt eine Wetteränderung in ganz San Andreas vor.");
SaveWeather();
return 1;
}
Versuch mal dieses:
new WeatherLS[] = { 1,2,3,15 };
new WeatherSF[] = { 5,6,16 };
new WeatherLV[] = { 1,2,3,4,5,18 };
new second,minute,hour;
forward Second();
forward Minute();
forward Hour();
forward WeatherSystem();
forward SetWeatherSystem();
public Second()
{
second++;
if(second==60){Minute();second=0;}
SetWeatherSystem(); //Wetterupdate, damit für alle Spieler gleich und wenn der Admin das Wetter ändert dies sofort umgesetzt wird
return 1;
}
public Minute()
{
minute++;
if(minute==60){Hour();minute=0;}
return 1;
}
public Hour()
{
hour++;
if(hour==24){hour=0;}
switch(hour)
{
case 0,6,12,18:
{
WeatherSystem(); //Hier wird das Wetter alle 6 Stunden geändert
}
}
return 1;
}
public WeatherSystem()
{
//Wetter 0 = LS , Wetter 1 = SF , Wetter 2 = LV
Weather[0] = WeatherLS[random(sizeof(WeatherLS))];
Weather[1] = WeatherSF[random(sizeof(WeatherSF))];
Weather[2] = WeatherLV[random(sizeof(WeatherLV))];
}
public SetWeatherSystem()
{
new Float:xx, Float:yy, Float:zz;
for(new i=0; i< GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
GetPlayerPos(i, xx, yy, zz);
if((xx > -992.5172 && xx < 4000.0000) && (yy < 528.0000 && yy > -4000.0000)) //Los Santos
{
SetPlayerWeather(i, Weather[0]);
//Los Santos
}
if((xx > -4000.0000 && xx< -992.5172) && (yy < 4000.0000 && yy > -4000.0000)) //San Fierro
{
SetPlayerWeather(i, Weather[1]);
//San Fierro
}
if((xx > -992.5172 && xx< 4000.0000) && (yy < 4000.0000 && yy > 528.0000)) //Las Venturas
{
SetPlayerWeather(i, Weather[2]);
//Las Venturas
}
}
}
return 1;
}
public OnGameModeInit()
{
SetTimer("Second",1000,true); // Timer für alles(kann auch für PaydaySysteme genutzt werden, da dieser genau bleibt)
WeatherSystem(); //Random Wetter beim Start des Servers
return 1;
}
ocmd:weather(playerid,params[])
{
if(!PlayerAdmin(playerid,3))return SendClientMessage(playerid,COLOR_ORANGE,"((Info)) Du hast nicht die nötigen Rechte, dies zu tun!"); //Abfrage wegen Adminrechten
WeatherSystem();
SendClientMessage(playerid,COLOR_YELLOW,"((Info)) Wetter verändert!");
return 1;
}
Dieses System funktioniert ohne Probleme