IConomy

Aus Nitradopedia
Wechseln zu: Navigation, Suche
iConomy6
Pluginlogo-iconomy6.png
Servermod: Bukkit‎
Kategorie: Wirtschaft
Entwickler: Nijikokun
Entwicklerwebsite: ico.nexua.org
Was bewirkt es? Führt ein Geldsystem mit Konten ein.
Besonderheiten: Dieses Plugin führt ein Geldsystem ein,
welches von vielen anderen Plugins
genutzt wird um eine richtige
Wirtschaft ins Spiel zu bringen.
Download: Link


Wichtiger Hinweis

Einige der Hier angegebenen Informationen beziehen sich möglicherweise bereits auf Version 7.x des Plugins.
Dieses hat einige neue Feature (Multiworld etc.) und ist mit der aktuellen Bukkit Version kompatibel.


Was ist iConomy ?

iConomy ist ein Plugin für Bukkit, welches euch die Möglichkeit gibt, euren Server mit einer Spielwährung zu versehen. Zu iConomy gibt es einige Erweiterungen, z.B. das Plugin iConomyChestShop, mit dem Plugin könnt ihr die Spielwährung verwenden könnt, um Items zu kaufen/verkaufen.

Alternativen

Eine der besten Alternativen ist Essentials. In Essentials befinden sich alle Funktionen welche IConomy auch hat. Plugins wie Chestshop ist es egal, ob sie Iconomy oder Essentials verwenden. Hauptsache ein Plugin in welchem sich die Iconomy Funktionen ( Ingame - Geld ) befinden.

Installation

Herunterladen kannst du iConomy im Bukkitforum.


1. Ihr müsst den Server Stoppen (im Webinterface)

2. verschiebt die iConomy.jar in euer Plugin-Verzeichnis !

3. Server Starten (im Webinterface)

Nun müssten im Plugin-Verzeichnis der Ordner iConomy sein. Praktisch ist da System mit der Spielwährung eigentlich schon einsatzbereit aber mann muss noch ein paar Kleinigkeiten umändern !

Konfiguration

Ihr geht jetzt in den iConomy Ordner und öffnet die Config.yml

Der Währungs Name :

       Currency:
           Major: [ 'Euro', 'Euro' ]  <<-- Diesen Eintrag bestimmt wie euere Spielwährung heißt, z.b. Euro        
           Minor: [ 'Cent', 'Cent' ]  <<-- Hier kommt der "Cent-Betrag" hin : z.b. wen man die frühere Währung Mark nimmt schreibt 
                                           man Minor: [ 'Pfennig', 'Pfennig' ]

Der Start-Betrag wen ein neuer Player auf den Server kommt:

       Account:
           Holdings: 130.0  <<-- Diese Zahl bestimmt den Anfangs-Betrag von neuen Konten

Geld für Onlinezeit :

       Interest:
           Enabled: true             <<-- Auf true setzten damit Spieler Geld bekommen wen sie online sind
           Online: true              <<-- Auf true setzten wen Player nur Geld bekommen sollen wen sie auch Online sind                   
       Announce:
           Enabled: false    
       Interval:
           Seconds: 60               <<-- Der Player bekommt mit dieser einstellung alle 60 sec. Geld 
       Amount:
           Cutoff: 0.0                               
           On: 'Players'                            
           Percent: 0.0                              
           Maximum: 2                <<-- Maximum und Minimum müssen den gleichen Betrag haben damit jeder Player immer                
           Minimum: 2                <<-- nach 60 sec den gleichen Betrag bekommt. Die Zahl 2 anpassen un zu bestimmen wieviel G                               
                                          Geld der Player noch 60 sec. Online-Zeit bekommen soll 

Das war es schon mit dem Konfigurieren von Config.yml im iConomy Ordner!


(Ich habe manche einstellungen übersprungen/nicht erwähnt diese einfach standert lassen !)


Wichtigste Befehle/Permission-Nodes

Hier habe ich die Wichtigsten befehle von iConomy + iConomyChestShop aufgelistet !

<Player> = Der Name des Player

<Betrag> = Eine bestimmte zahl


Befehl Permission-Node Effekt
/money iConomy.holdings / iConomy.holdings.others Zeigt euch an, wieviel Geld ihr habt.
Admin Befehl: /money [Player] zeigt an wieviel Geld ein Spieler hat
/money ? iConomy.help Zeigt die iConomy hilfe an.
/money pay <Player> <Betrag> iConomy.payment Überweist einen bestimmten Betrag auf das Konto eines anderen Spielers.
/money top iConomy.top Zeigt euch die 5 Spieler an, die am meisten Geld haben.
Alternative: Anzeige der Daten auf der Website (siehe unten)
/money give <Player> <Betrag> iConomy.accounts.give (Admin-Befehl) Gibt einem Spieler eine Anzahl an Geld auf sein Konto.
/money take <Player> <Betrag> iConomy.accounts.take (Admin-Befehl) Zieht einem Spieler eine Anzahl an Geld von seinem Konto ab.
/money empty iConomy.accounts.empty (Admin-Befehl) Löscht alle Geld Daten aus der Datenbank.
/money purge iConomy.accounts.purge (Admin-Befehl) Löscht alle User aus der Datenbank die den Standardbetrag an Geld haben.
/money create <Player> iConomy.accounts.create (Admin-Befehl) Löscht alle Geld Daten aus der Datenbank.
/money remove <Player> iConomy.accounts.remove (Admin-Befehl) Setzt den Account eines Spielers zurück. (bis version 6.x /money reset <Player>)

Dies sind die wichtigsten befehle!(restliche befehle mit /money ?)

<spoiler text="Beispiel für die Permissions">

groups:
  Owner:
    permissions:
    - iConomy.*
  Admins:
    permissions:
    - iConomy.*
  Moderator:
    permissions:
    - iConomy.holdings
    - iConomy.holdings.others
    - iConomy.help
    - iConomy.payment
    - iConomy.status
    - iConomy.top
  Supporter:
    permissions:
    - iConomy.holdings
    - iConomy.holdings.others
    - iConomy.help
    - iConomy.payment
    - iConomy.status
    - iConomy.top  
  VIP:
    permissions: 
    - iConomy.holdings
    - iConomy.help
    - iConomy.payment
    - iConomy.top 
  Spieler:
    permissions:
    - iConomy.holdings
    - iConomy.help
    - iConomy.payment
  Gaeste:
    permissions:
    - iConomy.holdings
  
users:

</spoiler>

Hinweis: iConomy.holdings muss erst in der config aktiviert werden

Einrichtung von MySQL für iConomy

Warum MySQL?
Vorteile:
- Zugriff von Website möglich
- Schneller bei sehr grossen Datenmengen (Viele Spieler)
Nachteile:
- Bei Ausfall des MySQL Servers kann nicht auf die Daten zugegriffen werden
- Bei wenigeren Daten ist Flatfile oft schneller als MySQL (bei wenigen Spielern).

Bei iConomy ist es etwas schwieriger, die MySQL Datenbank richtig zu konfigurieren, daher gibt es hier ein genaueres Tutorial.
Als Erstes empfehle ich dir, die folgende Anleitung zu lesen: Plugins einrichten, die eine MySQL Datenbank benötigen[1]
Wie richte ich MySQL für iConomy ein?
1.) Verbinde dich über FTP auf deinen Server und navigiere zur config.yml (/minecraftbukkit/plugins/iConomy)

2.) Öffne diese Datei (im FileZilla mit "Ansehen/Bearbeiten")

Herunterladen der config.yml


3.) Scrolle im sich öffnenden Fenster runter bis zum Punkt "Database". Du wirst hier folgenden Code finden, mit mehreren Kommentaren versehen:

 Database:
    Type: 'mysql'
    MajorItem: 266
    MinorItem: 265
    Table: 'iConomy'
    URL: 'mysql://localhost:3306/nixxxxxDB'
    Username: nixxxx_DB
    Password: HierDeinPW
    Conversion:
      Enabled: false
      Type: 'MySQL'
      Table: 'iConomy'
      URL: 'mysql://localhost:3306'
      Username: 'root'
      Password: ''
      All: true

Ich habe die Kommentare der Übersicht halber entfernt, und erkläre dir nun im einzelnen die Teile der config:

 Database:
    Type: 'mysql'

Hier legt ihr den Typ der Datenbank fest, bei Nitrado ist das "mysql".
Weitere mögliche, aber nicht unbedingt von Nitrado unterstützte Werte sind:
Flatfile, FF, mini, minidb, item, items, inventory, inventoryDB, xp, exp, orb, xpdb, expdb, orbdb, mysqldb, sqlite, sqlite2, sqlite3, sqlitedb, postgre, postgreSQL und postgreDB.

   MajorItem: 266
    MinorItem: 265

Werden nur bei dem Typ "InventoryDB" benötigt und können daher beim Standard Wert belassen werden.

 Table: 'iConomy'

Hier legt ihr den Namen der Tabelle an, in der die Daten gespeichert werden, am besten lasst ihr es genau so, damit ihr später keine Konflikte mit anderen Plugins bekommt.

   URL: 'mysql://localhost:3306/nixxxxxDB'
    Username: nixxxx_DB
    Password: HierDeinPW

Bei URL tragt ihr statt nixxxxxDB den Namen eurer Datenbank ein, welchen ihr im Nitrado WebInterface findet.

Hier findet ihr den Namen eurer Datenbank


Bei Passwort müsst ihr logischerweise das Passwort eingeben, welches ihr auf der selben Seite findet.

     Conversion:
      Enabled: false
      Type: 'MySQL'
      Table: 'iConomy'
      URL: 'mysql://localhost:3306'
      Username: 'root'
      Password: ''
      All: true

Diesen Teil benötigt man nur, wenn man von der veralteten Version 5.x zu neueren Versionen wie 6.x Updaten möchte. Wenn ihr die alten Daten noch nicht in einer MySQL Tabelle hattet, könnt ihr diesen Abschnitt getrost überspringen.

Einbindung der Geld-HighScores auf die eigene Website

Klicke zum Download des PHP Skripts hier
..und danach erneut auf Download
Die Datei wurde heruntergeladen und kann geöffnet werden
Öffnet sie in einem Programm wie WinRar
und ladet die Bilder dann auf euren Webspace hoch.
Verbindet euch per FTP auf den Webspace und bearbeitet die Datei config.php
Die config.php sollte ungefähr so aussehen.

Eine interessante Funktion von MySQL ist es, dass man Daten auch auf einer Website anzeigen lassen kann.
Ein Beispiel wie das aussehen kann sieht man hier: BlockSpot Minecraft Server[2]
Wenn ihr sowas auch wollt, folgt der folgenden Anleitung:

Was brauche ich um diese Daten auf der Website anzeigen zu lassen?
- Webserver mit PHP, welcher Zugriff auf externe Datenbanken erlaubt
- Das PHP Skript von hier[3](Siehe Unten)

Was muss ich dafür tun?
- Gehe auf die Seite des PHP Skripts [4] und Lade dir das .zip Archiv herunter.
Solltest du dabei Hilfe benötigen schaue dir Rechts die Bildergalerie an. - Kopiere die Dateien aus dem Archiv auf deinen Webserver
- Öffne die Datei config.php

  <?php
   $connect_error = 'Could not connect to the database!';
   $mysql_host = '85.131.238.248';
   $mysql_user = 'nixxxxx_1_DB';
   $mysql_pass = 'HierStehtDeinPasswort';
   $mysql_db = 'nixxxxx_1_DB';
   //Shouldn't have to change this one!
   $mysql_table = 'iConomy';
   if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass)||!mysql_select_db($mysql_db)) {
	    die($connect_error);
   }
   ?>

In dieser Datei gebt ihr eure MySQL Daten an.

  $mysql_host = '85.131.238.248';

Bei Host müsst ihr die IP Adresse eures Minecraft Servers eintragen.

  $mysql_user = 'nixxxxx_1_DB';

Bei User müsst ihr nun euren MySQL Usernamen eintragen.
Es sind alles die selben Daten wie die, die ihr schon oben in der config.yml eingetragen habt.

  $mysql_pass = 'HierStehtDeinPasswort';

Passwort denke ich ist selbsterklärend, einfach Passwort eingeben.

  $mysql_db = 'nixxxxx_1_DB';

Bei DB müsst ihr euren MySQL Usernamen erneut eingeben, denn dieser entspricht den Namen eurer Datenbank.

  //Shouldn't have to change this one!
   $mysql_table = 'iConomy';

Bei mysql_table müsst ihr den Namen der Tabelle eintragen, wenn ihr ihn, wie ich euch oben empfohlen habe, bei iConomy gelassen habt, braucht ihr nichts ändern.

  if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass)||!mysql_select_db($mysql_db)) {
	    die($connect_error);
   }
   ?>

Der Restlich Code ist PHP, welchen das Programm benötigt, und nicht geändert werden sollte.

Sprache und Design der Website anpassen
Wie ihr vielleicht schon bemerkt habt ist diese Beispielseite auf Englisch, es wäre also eine tolle Idee die Sprache anzupassen.
Und auch das Design passt so vielleicht nicht zu deiner Website.
Um diese Änderungen vorzunehmen braucht ihr bereits kleinere Kentnisse in HTML, wobei es nicht allzu schwierig ist.
Den Hauptteil der Sprach und Design Einstellungen findet ihr in der Datei index.php
Um die Sprache zu ändern fixieren wir uns auf folgenden Teil des Codes:

   <center>
      <h1>
        <u>Statistiken</u></h1>
            <strong style="font-family: verdana, geneva, sans-serif; font-size: 18px; color: rgb(255, 215, 0); ">~GELD~</strong>
    <table border="0" cellpadding="3" cellspacing="10" id="minimalist">
    <tr>
    <td width="50"><strong>Avatar</strong></td>
    <td width="30"><strong>Username</strong></td>
    <td width="30"><strong>Geld</strong></td>
    <td width="30"><strong>Rang</strong></td>
    </tr>
    <?php 
    while($data = mysql_fetch_assoc($sql)) {
        //Loops data and displays it in a table.
        echo '<tr>';

Hier seht ihr die einzelnen Spaltenbeschriftungen, welche ihr nach Belieben ändern könnt.
Ich habe mich im Beispiel dafür entschieden, zwei Überschriften einzufügen, auch ein Begrüssungstext wäre möglich.
Wenn ihr das Hintergrund Bild ändern möchtet müsst ihr im unterordner "images" die Datei "bg.gif" austauschen.
Solltet ihr dabei Hilfe benötigen googlet einfach mal oder schreibt eure Frage ins Forum.

Auch der PHP Code kann verändert werden
...wobei ich dies nur erfahreneren Programmieren oder PHP-Kenner empfehle.

   <?php
    require ('config.php');
    //Connects to the database and the specified table.
    $handle = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die($connect_error);
    mysql_select_db($mysql_db, $handle) or die($connect_error);
    $sql = mysql_query('SELECT username, balance FROM '.$mysql_table.' ORDER BY balance DESC');
    //Define first rank.
    $rank = 1;
    ?>

So kann man beispielsweise im oberen Bereich der index.php die Sortierung umstellen,
Geld/Username - Auf/Absteigend,
indem man die folgende Zeile entsprechend ändert:

   ORDER BY balance DESC

Statt "balance" kann man "username" eintragen, und statt "DESC" "ASC", also aufsteigend.

Datenbank Konvertieren Flatfile -> MySQL

Um eure Bestehende Flatfile Datenbank (Standard) weiterhin beibehalten wollt, könnt ihr euch ein einfaches PHP Skript schreiben, welches die alten Daten konvertiert und in die MySQL Datenbank einträgt.
Wem das zu kompliziert klingt kann ja einfach googlen oder mal im Forum fragen.
Wem auch das zu kompliziert ist, oder es nicht für notwendig hält kann mithilfe des Befehls

  /money give [Username] [Betrag]

Den Usern neues Geld überweisen.

Weitere Infos zu MySQL / Highscore auf Website

- Wundere dich nicht, wenn in der HighScore Liste einige User nicht angezeigt werden, iConomy löscht automatisch alle User die den Standardgeldbetrag haben aus der Datenbank, um Speicherplatz zu sparen.

Über diesen Artikel

Dieses Tutorial basiert auf der Plugin-Version 7.0
Dieses Tutorial wurde erstellt durch: Phiwa Dieses Tutorial wurde erstellt am: 05.09.2011
Zuletzt bearbeitet durch: Erik1707 Letzte Aktualisierung am: 22.06.2012