Ich habe ein Video gefunden, welches relativ gut erklärt, wie man ohne Skripts/Plugins ein Hunger/Durst/Schlaf-System einbaut.
Hier mal das Video (sind 3 Teile).
Ich hab das alles so nachgebaut (na gut, fast - den Schlaf brauch ich nicht) und es funktioniert auch alles so, wie es soll.
Problem ist nur, dass ich das ganze um eine Kleinigkeit erweitern möchte und dafür müsste ich wissen, wie das ganze denn nun überhaupt funktioniert . Ich sehe, DASS es funktioniert, aber mir will nicht in den Kopf, WIE das geht
Mal am Beispiel vom Hunger. Hier werden folgende Variablen erstellt:
Als Common Event wenn die Map beim Spielstart geladen wird:
Hunger Defizit Maximal = -288 (nicht wundern, in dem Video ist es weniger, aber mein Balken ist größer)
Schritte Hunger = Schritte (Spieldaten)
Dann im Common Event als paralleler Prozess, während das Spiel also läuft:
Differenz Hunger = Schritte (Spieldaten)
Differenz Hunger - = Schritte Hunger
Differenz Hunger /= 1 (nur für Testzwecke auf 1, soll eigentlich auf 4 oder sowas, damit der Balken nicht so schnell sinkt)
Hunger = Hunger2
Hunger - = Differenz Hunger
Und dann natürlich noch die Abfragen, damit der Hunger nicht über 0 und nicht unter -288 kommt.
Was passiert hier genau? Warum funktioniert das?
Theoretisch müssten doch die Variablen "Schritte Hunger" und "Differenz Hunger" permanent auf dem gleichen Wert sein? Das Spiel zählt im Hintergrund meine gelaufenen Schritte. Sind es 10, sind beide Variablen 10. Wenn ich 20 Schritte gelaufen bin, haben beide Variablen den Wert 20.
Wenn ich aber nun ingame F9 drücke und mir die Werte angucke, dann sind die Schritte immer auf 0.
Und woher bekommen eigentlich "Hunger" und "Hunger2" ihre Werte? Ich stelle "Hunger = Hunger2", aber es existiert keine Variable "Hunger2", also müsste das doch auch 0 sein. Also ist Hunger dann auch 0 und davon subtrahiere ich dann die Differenz, das ist ja schön und gut, aber was macht dann der Hunger2....
Irgendwie steh ich hier voll auf dem Schlauch
Mein Ziel ist eigentlich folgendes: Wenn Hunger oder Durst auf 0 gesunken sind (hoppla, -288 meine ich natürlich, also wenn der Balken leer ist), soll nicht gleich das Game Over kommen, sondern die HP sollen dann langsam bis auf 0 runtergezogen werden. Ich habe das gesamte Hunger-System kopiert und entsprechend abgewandelt mit einer neuen Lebens-Variable und soweit funktioniert das auch. Ich habe nun eine Variable "Differenz Leben" (nach dem gleichen Muster wie oben), die ich nun von den aktuellen HP abziehen möchte. Nun macht der Maker das aber natürlich 60x pro Sekunde und ich bin ruckzuck tot. Wie umgehe ich das? Die HP sollen ja auch nur dann abgezogen werden, wenn ich laufe, so wie es mit Hunger und Durst ja auch funktioniert.
Jemand ne Idee?