Währung - Kupfer, Silber, Gold

Hier könnt ihr Unterstützung holen für euere Script Probleme, und Fragen rund um das Scripten.
Antworten
Nachricht
Autor
doomie

Währung - Kupfer, Silber, Gold

#1 Beitrag von doomie » 28 Nov 2006 22:53

Hallo,


Ich würde gerne neue Währungen hinzufügen (Kupfer, Silber, Platin, whatsoever), weiß aber zur Zeit nicht genau, wie ich dies anstellen soll, da es doch in den Vendoren oder beim Hauskauf hardgecoded zu sein scheint. Hat einer von euch damit Erfahrung oder weiß, wie es prinzipiell geht? Ich würde mir sonst einfach eine eigene CustomVendor-Klasse schreiben und es dort einbauen, dass alle Währung akzeptiert werden, doch finde ich das doch sehr umständlich. :)


Vielen Dank für eure Hilfe,


Philipp (doomie)

Sotho Tal Ker

#2 Beitrag von Sotho Tal Ker » 28 Nov 2006 23:43

Es ist eigentlich ganz einfach:
Überlege dir, was du als Grundeinheit nehmen willst, z.b. Kuper.
Dann machst du neue Münzen, geht ja schnell.
Danach legst du irgendwo fest, dass 1 Gold = 100 Silber = 10000 Kupfer ist z.B.
Dann brauchst du nur noch die ganzen Skripte bearbeiten, dass er nicht nur nach "Gold" als Itemtyp sucht, sondern auch nach "Silber" und Kupfer.
Jetzt findet er 1 Gold und 20 Silber um Rucksack - das wandelst du in die Grundeinheit um (das alles intern und nicht für die Spieler sichtbar):
1*100*100+20*100 = 12000
Somit sieht der Server intern nur die Währung Kupfer, während die Spieler Gold, Silber, Kupfer sehen.
Kosten ein item jetzt etwa 9090 Grundeinheiten, so stellst kannst du das in deine Währungen umrechnen:
9090 / 10000 = 0 Gold
9090 / 100 = 90 Silber, dann 9090 - 90*100 = 90
90 / 1 = 90 Kupfer
Das kannst du dann so auch im Vendor anzeigen. (Muss natürlich erst geschrieben werden ^^)
Kauft der Spieler jetzt den Gegenstand von seinen 12000 (1 Gold und 20 Silber, so nimmt der Vendor das 1 Gold und packt dafür das Item sowie 9 Silbermünzen und 10 Kupfermünzen in den Rucksack.

Du wirst natürlich nicht drumrumkommen, die Vendoren zu modifizieren. Aber da RunUO open source ist, kann man in dem falle nicht von "hardcoded" sprechen. ;)

Benutzeravatar
Dieb
Silber Mitglied
Beiträge: 387
Registriert: 15 Mär 2004 14:08

#3 Beitrag von Dieb » 28 Nov 2006 23:57

dachte run uo baut auf c#?
gibts da kein %-Operator?
Ich höre es, und ich vergesse es.
Ich sehe es, und ich erinnere mich.
Ich tue es, und ich habe es verstanden.

doomie

#4 Beitrag von doomie » 29 Nov 2006 00:06

Ja, RunUO "baut auf" C# auf und wenn, dann sollte man wohl auch Modulo in Kombination mit ganzzahliger Division ("/") benutzen.

Das "hardcoded" bezog sich darauf, dass es keine Klasse "Currency" oder ähnliches gibt, in der man soetwas komfortabel hinzufügen kann. Sowas werde ich mir dann wohl anlegen (müssen). :)

Vielen Dank erstmal.

Sotho Tal Ker

#5 Beitrag von Sotho Tal Ker » 29 Nov 2006 04:35

Warum sollte es sowas auch geben? Auf OSI gibts ja nur Gold :)

Rob Cole

#6 Beitrag von Rob Cole » 29 Nov 2006 15:07

Auf runuo.com gab es mal ein echt gutes Währungsscript (fand ich), in dem im Grunde nur die "Bezahl" Funktionen fertig geschrieben waren.
Die konnte man dann problemlos in jegliche andere Scripte implementieren.

Antworten