Variable ändert sich automatisch nach bestimmer Zeit

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
O_Say
User
Beiträge: 1
Registriert: Freitag 10. September 2021, 11:23

Ich stelle die Frage sehr spezifisch damit man versteht, was ich meine.
Ich programmiere grade ein Spiel und bin noch ziemlicher Anfänger im programmieren. In diesem Spiel kann man unter anderem auch gegen Monster kämpfen. Um zu berechnen wie viel Schaden der Spieler dem Monster macht gibt es eine Variable, welche aus verschiedenen Sachen berechnet werden. Vor einem Kampf wird diese Variable*Bonusschaden gerechnet. Dieser Bonusschaden ist standartmäßig 1. Also quasi bleibt der Schaden gleich. Wie schaffe ich es, dass dieser Bonusschaden für genau eine Stunde 2 beträgt? Das würde dann passieren in dem man sich z.B. einen Trank des Schadens oder so ähnlich kauft, der bewirken soll das sich der Schaden in diesem Zeitraum verdoppelt. Wie die Rechnung gemacht werden muss versteh ich natürlich, aber wie ich für genau eine Stunde diesen Wert auf 2 erhöhe und er danach wieder auf 1 runterfällt, aber man trotzdem gleichzeitig andere Sachen tun kann leider nicht. Das ganze Spiel ist in einer dauerhaften while Schleife und wenn man einen Befehl eingibt, je nach dem was man tun will, versteht er mit if-elif befehlen, was der Spieler tun möchte. Ich hoffe ich hab meinen Code ausreichend erklärt.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Besser ist immer den Code zu zeigen. Ohne den zu sehen, kann man immer nur so mittelgut helfen.

Ein Weg sowas zu machen besteht in der Anlage einer Eigenschaft des Spielers, die nicht nur aus dem von dir besprochenen Faktor besteht. Sondern auch aus einer zweiten Größe, nämlich einem Verfallsdatum. Wenn man also zuschlägt, prüft man, ob der Boost noch gültig ist, und nur dann gilt er.

Man kann das auf verschiedene Arten modellieren. Zb kann dein Spieler eine Liste von aktivierten Tränken haben, und bei der Schadensberechnung läufst du da durch, und sammelst diese Faktoren auf. Und danach gibt es eine Phase, in der du prüfst, ob diese Tränke noch wirken. Wenn nicht, schmeißt du sie aus der Liste.
Antworten