Da gibts so viele verschiedene Möglichkeiten, wie du Ideen haben kannst. Du sagst leider nicht, wodurch der Buff ausgelöst werden soll, deswegen sag ich dir einfach mal, was das vorhandene Item-System
ohne Änderung am Code für dich tun kann. Vielleicht reicht das schon.
- Flüche:
Flüche können bei der Hexe gekauft und einem anderen Spieler aufgehext werden.
Um einen neuen Fluch zu erstellen, benutzt du den Item-Editor in der Admingrotte und erstellst ein neues Item der Klasse "Fluch.Prot". Die Wirkungsdauer in Spieltagen gibst du bei "hvalue" (versteckter Wert) ein. Wirkung (Buff), Name und Beschreibung nach Belieben.
- Zauber:
Zauber können in der Akademie gekauft und im Wald oder in der Arena vom Spieler eingesetzt werden. Die Klasse "Zauber" muss nicht unbedingt ein Zauber sein! Es können auch Beschwörungen, Gift, Heiltränke und Luftangriffe als "Zauber" erstellt werden.
Um einen neuen Zauber zu erstellen, benutzt du den Item-Editor in der Admingrotte und erstellst ein neues Item der Klasse "Zaub.Prot". Die Haltbarkeit in Spieltagen gibst du bei "hvalue" (versteckter Wert) ein. 0 bedeutet unbegrenzt haltbar, bzw. so lange, bis alle Ladungen aufgebraucht sind. Wie oft der Zauber pro Tag verwendet werden kann, muss bei Wert 2 rein. Wert 1 muss identisch sein und enthält die Ladungen, falls hvalue 0 ist. Wirkung, Name und Beschreibung nach Belieben.
Beide Arten lassen dein Beispiel zu, nur der Auslöser ist jeweils ein anderer.
Neben diesen beiden Klassen gibt es noch die fertige Klasse
Geschenk, die Buffs über einen Zeitraum wirken kann. Allerdings musst du Items der Klasse "Geschenk" im Code der newgiftshop.php oder an anderer Stelle erst selbst definieren. Der Item-Editor hilft hier nicht weiter. Sobald ein Spieler das erstellte Item der Klasse "Geschenk" im Inventar hat, wirkt der Buff. Auslöser bei "Geschenk" und "Fluch" ist also das Ereignis "neuer Tag", bei "Zauber" löst der Spieler selbst im Wald aus.
Hinweise zur Benutzung der vorhandenen Klassen findest du in der invhandler.php. Dort solltest du auch alle Klassen eintragen, die du selbst erstellst, damit du (und andere) auch später noch wissen, wie die Klasse zu verwenden ist.
Ansonsten kannst du auch eigene Klassen erstellen, die aber Änderungen am Code benötigen würden. Oder du programmierst die Ereignisse, die Buffs auslösen, direkt in den Code. Beispiele, wie es funktioniert, gibt es genug. Füge einfach deinen Buff in die bufflist ein. (Siehe: Ale, Tier, Fertigkeiten, Klo, Liebhaber, ...)