Fehler im Geldsack

Bild: Goldmünzen

Hallo, wir haben heute einen Fehler im Geldsack gefixt. Über einen einfachen Trick war es möglich, negatives Geld im Sack zu erzeugen und überdies damit kostenlos in Kneipen und Läden einzukaufen, was natürlich nicht Sinn der Sache ist.

Alle Spieler werden deshalb beim nächsten Einloggen zwangsweise neu geladen, das tut aber nicht weh. 🙂

Sollte es zu Unstimmigkeiten oder zu Problemen in Zusammenhang mit Geld kommen, dann wendet Euch bitte an einen Gott Eurer Wahl.

LG, It@Efferdland

Währungen

Bild: Goldmünzen

Im Efferdland gibt es als Magier die Möglichkeit, verschiedene Währungen zu benutzen. Die STD-Währung im Efferdland ist der Kreuzer. Wenn man diesen benutzen will, muss man nichts machen. Für andere Währungen gilt: man muss sie explizit in Läden und Kneipen angeben.

Die Property für Währungen ist: P_CURRENCY, definiert in /sys/bank.h

Die gültigen Währungen sind ebenfalls in /sys/bank.h definiert. Momentan sind angeschlossen:

Weitere Währungen sind in Planung und können auch von jedem Magier beantragt werden (Bei It oder Torin).

Läden und Kneipen stellt man wie folgt auf eine neue Währung um:

#inherit "/std/laden"; // Für Kneipen: inherit /std/kneipe;

protected void create() {
  SetProp(P_CURRENCY,RUBEL); // Fortan nimmt der Laden / 
                             // die Kneipe nur noch Rubel an.
}

Möchte man feststellen, wie viel ein Spieler von einer bestimmten Währung bei sich hat, dann funktioniert das wie folgt:

int val;

// Heraus finden, wieviele Draktaler ein Spieler dabei hat:
val = this_player()->QueryMoney(DRAKTALER);

// Für Kreuzer genügt ein QueryMoney()

Um den Spieler nun seine Draktaler abzunehmen, benutzt man folgende Syntax:

this_player()->AddMoney(-val,DRAKTALER);

// Für Kreuzer genügt ein AddMoney(-val)

Man kann dem Spieler natürlich auch Geld einer bestimmten Währung geben:

// Gibt dem Spieler 1000 Dinare
this_player()->AddMoney(1000,DINARE);

// Für Kreuzer genügt ein AddMoney(1000);

Möchte man wissen, wie viel einer Währung in einer anderen Währung wert ist, dann kann man die Funktion ChangeCurrency() aus /std/bank.c benutzen:

// ChangeCurreny(menge, Quell Währung, Ziel Währung);

int x;

x = ChangeCurrency(1000,DRAKTALER,RUBEL);

// 1000 Draktaler werden in Rubel umgerechnet.

Mit dem obigen Beispielen könnte man z.B. einen Geldwechsler schreiben… Bitte aber wie immer vorher Prüfen: hat der Spieler überhaupt das Geld, das ich ihm abnehmen möchte? Kann er das Geld, das ich im geben möchte, überhaupt noch tragen? Ist der Spieler vielleicht sogar ein Geist? (…)

LG, It@Efferdland

Neuer Geldsack und neue Währungen

Bild: Geld

Hiho,

es gibt einen neuen Geldsack. Dieser kann mehr Geld aufnehmen als vorher. Zudem speichert er jetzt auch andere Währungen als Goldmünzen.

Zu erkennen ist der neue Sack daran, dass in der Beschreibung jetzt keine Rede mehr von “SEHR sicher” ist. (dennoch ist der Sack und sein Inhalt wie gehabt Rebootfest)

Apropos Währungen:

Natürlich stellt sich jetzt die Frage, was für Währungen es außer den Goldmünzen denn gibt… Nun, in der Wüste wurden jetzt Dinare eingeführt, mit ‘normalen’ Goldmünzen kann man dort also nicht mehr bezahlen.

Falls man Dinare benötigt, kann man diese bei Gudri Goldstück in Erahamn gegen andere Währungen eintauschen, oder man verkauft etwas in einem Laden in der Wüste.

Weitere Möglichkeiten zum Wechseln sind in Arbeit.

Gruß, It@Efferdland