global func KKatastrophen(skatastrophe, istaerke,idauer) // istaerke sollte von 1 bis 10, schwach bis stark gewählt werden. idauer die dauer in Frames
{
var aKatastrophen = ["Erdebeben","Meteoriten","Blitze","Vulkan","Eissturm","Gewitter"]; // bei blitze kommen unr blitze. Bei Gewitter erscheint eine Gewitterwolke, sofern Wolken erlaubt. Ansonsten auch nur Blitze
if(skatastrophe=="Zufall")
{
skatastrophe=aKatastrophen[RandomX(0,5)];
}
var dauer;
var staerke = istaerke;
if(!idauer) dauer = 1000; // wenn nicht angegeben, dann immer 1000 Frames lang (ca. 30 sekunden)
else dauer = idauer;
if(skatastrophe=="Gewitter")
{
if(FindObject(WOL_)) // wenn keine wolken erlaubt, dann nur Blitze und regen
{
ScheduleCall(0,"lBlitze",1,dauer,staerke*5); // wenn staerke 1, dann kommt jede sekunde ein blitz mit chance von 5%. wenn staerke 10, dann kommt jede sekunde ein blitz mit 50% chance
ScheduleCall(0,"Regenxyz",1,dauer,staerke*2); // jeden Frame kommen staerke*2 tropfen iwo auf der landschaft
}
else
{
Regenwolkexyz(staerke*10,dauer,staerke*20);
}
}
else if(skatastrophe=="Blitze")
{
ScheduleCall(0,"lBlitze",1,dauer,staerke*5); // wenn staerke 1, dann kommt jede sekunde ein blitz mit chance von 5%. wenn staerke 10, dann kommt jede sekunde ein blitz mit 50% chance
}
else if(skatastrophe=="Erdbeben")
{
ScheduleCall(0,"lErdbeben",1,dauer,staerke*2);
}
else if(skatastrophe=="Vulkan")
{
ScheduleCall(0,"lVulcan",1,dauer,staerke*3);
}
else if(skatastrophe=="Meteoriten")
{
ScheduleCall(0,"lMeteoriten",1,dauer,staerke*5);
}
else if(skatastrophe=="Eissturm") // Eissturm, mit eismeteoriten
{
var temp = GetTemperature(); // die vorherige temperatur speichern und hinterher wieder setzen
SetTemperature(-79); // mache es eiskalt (temperatur setzt sich langsam von alleine wieder zurück auf den richtigen wert)
Eismeteoritenxyz(staerke);
ScheduleCall(0,"Regenxyz",1,dauer,staerke*2);
ScheduleCall(0,"SetTemperature",200,dauer/200,-79); // die temperatur fuer die dauer immer wieder neu setzen
ScheduleCall(0,"Entferneeismeteoritenxyz",dauer); // nach dauer frames alle eismeteoriten entfernen
ScheduleCall(0,"SetTemperature",dauer,0,temp);
}
}
func global lBlitze(ichance)
{
if(RandomX(1,3700)<=ichance) Blitzexyz(); // 3700, weil es pro sekunde mit einer chance von ichance Prozent gemacht werden soll, es aber jeden frame aufgerufen wird und eine sekunde ca 37frames sind.
}
func global lErdbeben(ichance)
{
if(RandomX(1,3700)<=ichance) Erdbebenxyz(); // diese xyz Funktionen sind ebenfalls globale funktionen. Jeder aufruf erzeugt hier 1 erdbeben.
}
func global lVulcan(ichance)
{
if(RandomX(1,3700)<=ichance) Vulcanxyz();
}
func global lMeteoriten(ichance)
{
if(RandomX(1,3700)<=ichance) Meteoritenxyz();
}
var string1 = "Hallo ";
var string2 = "Welt!";
var stringalleszusammen = Format("%s%s", string1, string2);
Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill