Posts by Blacky1004

A new update is now available, introducing seasons and more!
Latest hotfix: 0.8.0.1 (2024-12-20)

    Hallo Oberoth,


    das obige Plugin funktioniert nicht mehr mit der aktuellen Version von Rising World.

    Derzeitig überarbeite ich das komplette Plugin, was aber noch einige Zeit in Anspruch nehmen wird.


    Liebe grüße und bleib bitte Gesund


    Blacky1004

    Hallo Patrick,


    in der derzeitigen Fassung der PluginApi,gibt es schon Methoden,mit dem man deine Problematik
    schon lösen kann.


    hierbei zähle ich die Events:

    An meinem RPGSystem, bei demich nun endlich wieder Zeit habe zu arbeiten, gibt es ähnliche Sachen,so gibt es Gebiete die nicht betreten oder durchflogen werden dürfen.
    hierbei habe ich eigens ein Protectionsystem entwickelt, welches zumindestens Datenbanktechnich auf das Areaprotection aufsetzt. Somit müssen nicht alle
    bereits auf unserem Server gesicherten Gebiete(welche bei uns mittlerweile unzählbar sind) von Hand neu gemacht werden.
    In der neuen Datenbank gibt es nun mehr 2 neue Felder ("canEnter" und "canFly").
    Sobald nun ein Spieler in einer dieser Area kommt (Auftreten des Events PlayerEnterAreaEvent) prüfe ich nun nach ob dies eine Gesicherte Area ist und
    frage dann die entsprechenden Werte ab (true oder false). Bis jetzt ist es so, das der Spieler im Falle des fliegens genau 3 Sekunden Zeit hat (Timer) das Area zu verlassen
    anderen Falls (nach ablauf des Timers) wird er an den Spawnpunkt teleportiert.
    Was Du auch machen kannst wenn das Area eine Flugverbotszone ist, dir den Event PlayerChangeBlockPosition zunutze zu machen, somit kannst Du dann wenn die
    Function "getNewBlockPosition()" des Events sich innerhalb der Area befindet, so setzt du innerhalb dieses Events setCanceled(true). Somit kommt der Spieler erst gar nicht mehr
    in die Area rein.... Hat halt nur so einen unschönen nebeneffekt wenn man die Taste "W" nicht loslässt.. man denkt das das Spiel "zittert" lol.


    Das mit der getGroud() MEthode ist ne gute idee, zumal hier der Vector3f völlig ausreichen würde. Dies selbst zu realisiern ist meiner bescheidenen Meinung nach
    gar nicht oder gar sehr schwierig zu realisieren,da ich entweder dieMöglichkeit haben müsste den Collider des TerrainMeshes abzufragen, bzw. den Block des Chunks in dem sich
    "der Grund" befindet.




    Gruß Jens (Blacky1004)

    das sollte man so halten wie es in vielen anderen Spielen gemacht wird.
    a) entweder man definiert einen festgelegten Punkt (Vector3f im Falle von RW)
    oder
    b) man bedient sich der Methode "getDefaultSpawnPosition()" vom Interface Server (getServer())


    beides kann man dann mit setPosition(..) des Players setzen, somit ist ausgeschlossen das der Spieler unweigerlich
    zu Boden fällt.


    @red51 hat aber für uns soviel Möglichkeiten geschaffen, das da immer eine Lösung drinnen ist!


    CU Black1004 (Jens)

    hallo lenko,


    das ist der eigentliche für Dich wichtige Fehler:
    java.lang.ArrayIndexOutOfBoundsException: 1
    at eu.hessenstrolche.info.Info.onPlayerCommand(Info.java:47)


    Hier wird der index eines Arrays überschritten.
    dies tritt in Zeile 47 der Info.java auf.


    beispiel für solch einen Fehler ist:


    char[] name = { 'l', 'e', 'n', 'k', 'o' }; //Länge 5 (0-4)
    char value = name[5] //Hier java.lang.ArrayIndexOutOfBoundsException Ein Array beginnt immer mit index 0! bei 5 Elementen im Array wäre der Index des letzten Elements = 4

    Hallo Testendo,


    wie bereits ja schon im TS besprochen gibt es zur Zeit IMHO nur die Möglichkeit
    per IPDESSERVERS:PORT. Der PORT wenn ich micht nicht irre sollte der
    Gameport -1 sein...
    ergo da Du ja schon unseren Server oben in deinen HTML drinnen hast(Der übrigens Wunder der Welt lautet und nicht Welt der Wunder ;))
    unser Server ist im Spiel unter 217.17.197.101:4255 somit ergibt sich dann die HTTP-Abfrage
    http://217.17.197.101:4254
    als ergebnis herhälst Du folgende Antwort....


    So nun kann man in PHP mit Hilfe von simpleXML sich die Daten ranholen und dann auf seiner Seite weiterverarbeiten...


    Beispiel PHP-Code:


    So der einzige Wermutstropfen an der Sache ist, das man ServerIP und Port kennen muss, jedoch bekommt man aber schon mal
    Grundlegende Informationen des Servers..


    viel Spass und man sieht/hört sich bestimmt mal wieder im TS


    Blacky1004

    Hallo Patrick,


    wäre es möglich mir mal den Logeintrag des Serverlogs mir per PN zuzuschiocken, damit ich den Fehler nachvollziehen kann?
    BEnutzt Du MySql oder SQLite?


    die Portal.lua, kannst Du getrost rauslöschen, die brauchte ich für eine Recherche für zukünftige Funktionen des Plugins


    vielen Dank

    Gutem morgen liebe Gemeinde,


    Nach reichlich einer Woche Testlauf auf unserem öffentlichen Server, möchte ich das bereits schon in einem anderen Thread
    angekündigte Plugin hier der breiten masse zum Testen zur Verfügung stellen. Leider kann ich die Zipdatei hier nicht direkt
    zur Verfügung stellen, da es aufgrund der Models und texturen bei weiten Größer als die erlaubten 2MB ist.


    Download Plugin


    Das Plugin wie jedes andere Plugin bitte in den Pluginsordner entpacken.
    Im entpackten Ordner RPGSystem findet Ihr dann den Ordner Config in dem sich nun alle für das
    Plugin relevanten Einstellungen befinden.


    Ordner Config->Groups:
    in diesem Ordner sind die Gruppendateien enthalten. Sie können Frei editiert/geändert werden.
    Eine Ausnahme!!! Die Datei civilian.group darf NICHT gelöscht werden!!!


    ich habe die entsprechenden Einstellungen in den Dateien Kommentiert.


    Ordner Config->Lang
    Hier bedarf es keiner Einstellung, evtl. hat ja jemand Lust und Zeit sich mal der Datei en.properties anzunehmen
    und sie anhand der de.properties in ein sauberes Englisch umzusetzten. ;)


    Die wichtigste Datei des Plugins ist die config.properties.
    Diese habe ich auch entsprechend kommentiert.



    Die nächste Datei ist für die Preise zuständig. hier ein kleiner Auszug


    Chatbefehle


    /givemoney [PLAYERNAME] [BETRAG] = Gibt dem PLAYERNAME den BETRAG. Der BETRAG wird aufs Bargeld angerechnet (Admins müssen hierbei nicht auf ausreichend Guthaben achten)
    /changemoneygroup [PLAYERNAME] [NEWGROUP] = ändert die Gruppe des Spielers NEWGROUP entspricht den GRUPPENNAMEN der Groupdatei aus dem Ordner Config/Groups (Adminbefehl)


    Adminbefehle
    /showshoplist = Zeigt alle bisher schon angelegte Shops mit ID und namen an
    /selectshop = wählt den Bereich an dem der neue Shop erstellt werden soll
    /createshop [shop|atm|medic] [SHOPNAME] = legt den Shop an und zeigt das entsprechende Model an
    /rotateshop [SHOPID] = rotiert den Shop (hierbei kann er mit den Tasten vom NUMPAD 2,8 - 3,9 - 4,6 rotiert werden mit der Taste BACKSPACE werden die Einstellungen übernommen
    /moveshop [SHOPID] = wie rotateshop, nur wird der Shop hier in den Achsen X,Y,Z bewegt
    /removeshop [SHOPID] = löschte den Shop mit der entsprechenden ID


    /sethome = speichert die aktuelle Position des Spielers als "Homepunkt"
    /home = Teleportiert den Spieler an seiner zuvor mit /sethome gespeicherten Position
    Die obigen zwei Befehle ersetzen das entsprechende LUA-Script.


    Das anlegen der Items zum jeweiligen Shop erfolgt derzeitig noch manuell in die Datenbank
    hierbei ist die Tabelle shopitems wichtig, wobei nur die Felder shopid und itemid zu setzen
    shopid entspricht hierbei die SHOPID des ertsellt Shops und die ItemID aus der Datei itemprices.
    Ich werde mir da noch eine Lösung einfallen lassen, damit das auch ingame auf einfache Weise geschieht.


    Wem die Models (Bankautomat und Co.) nicht gefallen, der kann diese gerne gegen eigene austauschen
    jedoch muss dann das entsprechende Model in der Configdatei mit deren Textur angegeben werden.


    GANZ wichtig!!!
    Bitte bietet dass ITEM KOHLE NICHT IM SHOP AN!!! Da der Client hier Direckt nach dem aufruf des Inventars ("I")
    abschmiert und sich der Spieler NICHT mehr auf den Server connecten kann!!!!


    Sollte dies doch passieren, so muss in der Worlddatenbank - Tabelle Invetory ds Feld Inventory des Spielers auf NULL
    gesetzt werden. Ich habe diesbezüglich schon @red51 per Pn angeschrieben und ihn darüber informiert.


    Bisher ist es Plugintechnisch leider noch nicht möglich Items bei Shop/Tradehandler zu verkaufen. sobald dies
    jedoch möglich ist, wird dies selbstverständlich schnellstmöglich umgesetzt.


    Ebenso haben wir auf unserem Server festgestellt, das es vorkommen kann das ein Spieler mit den Shops nicht interagieren kann,
    dies geht meistens erst wieder nach einem Relog. Auch das werde ich noch herausfinden und dann entsprechend fixen.


    Schlusswort
    Als letztes muss ich hierbei noch etwas aus Sicherheitsgründen loswerden, auch wenn ich vieleicht denke das es nicht notwendig ist
    bei der netten Community hier, aber Vorsicht ist nun mal die mutter der Pozelankiste ;)


    Das Plugin darf nicht dazu genutzt werden, um Spielern gegen echtes Geld Ingame Vorteile zu verschaffen (Verkauf von IngameGeld gegen echtes Geld usw.)


    Für Fragen Anregungen und Kritik bin ich wie immer offen


    Ansonsten wünsche ich Euch viel Spass, dafür hab ich dass Plugin schließlich gemacht


    Blacky1004

    Wie wäre es, wenn man noch einstellen könnte, ob man EURO oder DOLLER auf dem Server hat.

    Hallo Patrick,
    das habe ich bereits schon versucht, jedoch lässt sich das Eurozeichen im Grafikfont nicht darstellen.
    Aber die entsprechende Einstellung ist in der Configdatei bereits vorhanden
    ...

    #welche Währung soll genutzt werdenEarnCurreny=€...


    Hallo Deirdre,
    vielen Dank ;)
    Grundsätzlich ist es nicht notwendig, die Resourcen zu erhöhen, das würde auch nur dazu führen,das dann auch diese
    erhöht abgebaut werden. Erze die bei einem Methandler verkauft werden, werden auf technischer seite aus dem Inventar
    des entsprechenden Spielers entfernt removeItem(...) und der Spieler erhält dafür das entsprechende Geld.
    Man kann sogenannte Erzdepots auf der Welt Platzieren, in diesem Bereich/Model kann man mit Worldedit bspw.
    Erzblöcke setzen, diese können, dann je nach Gruppe entweder gegen Geld abgebaut werden oder was auch immer.
    zu der Despawnzeit eines Geldkoffers, habe ich vergessen zu erwähnen das die Zeit natürlich nicht festgesetzt ist, sondern
    vom Serverbetreiber in der Configdatei eingestellt werden kann.
    ...

    #Zeit in Minuten wann das Model, welches das Geld eines#gestorbenen Spielers enthält, verschwindetDeathcaseDeSpawn=15...


    hi yahgiggle,


    sorry my english is very bad, im must wrote in german :(
    Leider gibt es derzeitig in der Java-Api noch keine EventMethoden für die Interaktion zwischen PlayerInventory und Chest's.
    Sobald dies mal verfügbar sein sollte, können auch Spieler eigene Shops auf Ihrem Grundstück aufstellen, wo sie
    verschiedene Waren zum Verkauf anbieten. Gerne werde ich mir dann deine obigen Funktionen zu Hilfe nehmen. vielen lieben Dank @yahgiggle


    -----
    Ich werde diese Woche noch entscheidende Sachen in dem derzeitigen Stand aufnehmen und mich dann bei einigen Servern melden und Sie
    dann bitten das Plugin wie es dann zu diesen Stand ist mit mir zusammen zu testen.

    hallo patrick,


    leider muss ich da den Termin noch etwas zurückhalten, da es mit der derzeitigen API noch nicht moglich ist
    den FlyModus zu aktivieren und die Methode .getStackSize() aus der Klasse Item -> Definition noch flasche Werte liefert (bei mir zumindest)


    Bis jetzt läuft das Plugin auf dem Developserver mit folgenden aktiven Funktionen:
    - Erstellen von Shops (Bankautomaten, Lizenzshops, Handelspreislisten, allgemeine Shops)
    diese können frei platziert, gedreht und bewegt werden
    - kaufen von Items aus einem allgemeinen Shop (z.B. Axt, Tomaten Äpfel usw.)
    - Möglichkeit anderen Spielern Geld zu geben(Bargeld) bzw von einem konto auf ein anderes Konto überweisen somit ist ein inderekter Handel unter den Spielern schonmal möglich
    - Ein- und Auszahlung vom und zum Konto
    -Kaufen einer Baulizenzen (Creativemodus)
    -Jeder Spieler, wenn eingestellt, erhält nach X Minuten ein Gehaltscheck, wobei die Höhe des Betrages von seiner jeweilig zugewiesenen
    Gruppe abhängt. Das Geld kann Wahlweise auf das Konto des Spielers oder als Bargeld gezahlt werden.
    -sollte ein Spieler sterben, so hinterlässt er einen "Koffer" in dem sein Bargeld enthalten ist, dieser kann hierbei vom Spieler nach seinem
    REspawn wieder eingesammelt werden, wenn ein anderer Spieler nicht schneller ist als er.
    Nicht eingesammelte Koffer verschwinden nach 5 Minuten automatisch.
    --Möglichkeit einer Gruppe das Rechtzuzuweisen, das diese auch Geld bei Abbbau/setzen von Blöcken, Terrain und Wasser verdienen
    Ich hoffe ich habe nichts vergessen.

    Yapp SQLIte Datenbanken sind eigentlich Dateibasierte Datenbanken, sollte eigentlich aus der
    Welt der LUA-Plugins bekannt sein. Siehe Areaprotection als Beispiel.


    Das habe ich mir schon gedacht, das es Gameserveranbieter gibt, die entweder keine oder mit Aufpreis
    MySqldatenbanken zum Gamerver anbieten.


    Bei SQLIte musst Du dich darum nicht kümmern. Du stellst in der config.properties
    nur
    Database_Type=sqlite
    ein und fertig.

    you could earn by doing jobs onplayerplaceblockevent user earns 2 credits by placing blocks or onplayerplaceobject player earns something, this works very good

    this is considered ready. Like the destroying of blocks etc.This can be set in a group. builder.group here

    SUPER IDEE VON DIR!


    Sag mir bitte bescheid, wenn es fertig ist! Kann ich gut auf dem Server gebrauchen!


    Und bitte, bitte: Füge eine Standardgruppe ein, dass man nicht immer auf den Server gehen muss, um einen neunen Spieler in eine Gruppe hinzu zu fügen!

    Danke Patrick das ist nett von Dir!
    Naja das mit dem fertig werden hängt natürlich von der API ab, denn die Api gibt bei der Abfrage von getStackSize() immer noch den MAxwert zurück,
    ebenso kann ich Codetechnich noch nicht unterscheiden ob es sich bei der getItemDefinition("ore") um Eisenerz, Kupfererz und Co. handelt. Da die Erze alle mit
    Minus beginnen erhalte ich bspw. bei getItemInformation(-103) NULL zurück. warum auch immer. Red wird das schon lösen ;)


    Daher ist es mit dem Plugin so, das man derzeitig nur Items Kaufen kann, der Handel untereinander als auch der Verkauf von Items an einem Händler ist momentan
    noch nicht möglich. Das wird wohl erst mit dem einem oder anderem Update möglich sein.
    Wie heißt es doch immer so schön "gut Ding will Weile haben"..


    P.S. Achso beinahe hätte ich es vergessen... eine Stansardgruppe gibt es schon von Anfang an, denn sonnst kann der Spieler ja bspw. kein Geldverdienen oder das Plugin geht "nichtirdische" Wege ;)
    das Plugin erwartet immer in der config.properties eine Default group gibt es diese nicht, so wird die Datei "civilian.group" geladen und wenn diese doch mal gelöscht sein sollte, erstellt das Plugin diese und läd sie dann als
    DefaultGroup.

    Das Geldlabel finde ich einfach umwerfend... :)
    Also das, welches am oberen rechten Rand des Bildschirms ist.
    Den Bankautomaten finde ich auch wunderbar.
    Freue mich schon auf die Veröffentlichung deines Plugins, um ein bisschen von deinen Design Skills zu lernen :thumbsup:


    vielen Dank @TheMrMik ich werde auf jeden Fall hierbei am Ball bleiben und hoffe mit jedem Update auf zusätzlich Feature der neuen Plugin-Api, die ich auch hier nochmal hoch loben möchte..
    obwohl ich da auch ehrlich sein muss soviel steckt hinter den Brafiken nicht, es wurde aus einfachen Boardmitteln(Brushes, Filtern) mit Photoshop erstellt. Auch möchte ich sagen,
    das diese eigentlich nur Grundlegende Grafiken sind, wem sie nicht gefallen, kann sie gerne sogar sehr gerne gegen eigene und vor allem bessere austauschen, das war der HAuptgedanke an dem
    Plugin.



    DAnke @Skarafass für deine Ideen, Fettnäpfen gibt es bei mir genauso viele wie freilebende Aligatoren in Sachsen ;)
    Zu der Idee mit dem Steuersystem hatte ich Anfangs mal eine ähnliche Idee, zwar weit davon entfernt, aber vom Prinzip das selbe. Mein Anfanhsgedanke war der, das
    sich Spieler fertige Häuser mieten können, schön und gut, nur was ist wenn sie über nicht mehr soviel Geld verfügen, dann rutschen Sie ins Minus und da kam
    mir schnell der Gedanke auf, das dann eben diese(r) Spieler schnell die Lust verliert.
    Jedoch finde ich deine Idee schonmal prima und steht nunmehr mit auf der TODO-Liste (als optionale Einstellung)


    Zum Thema Bankautomat, ich gehe mal davon aus das Du das reine 3D-Model meinst, das kann man schon jetzt in der Config ändern wie einem beliebt.
    Der jeweilige Serverbetreiber ist NICHT auf die 3D-Models wie sie im Plugin mit ausgeliefert werden festgesetzt.


    Die Handelspreise sind die Preise, die der entsprechende Trader zahlt, wenn Du beispielsweise schnell Geld brauchst, jedoch eine
    Auktion Dir zu lange dauert, oder kein Spieler grad online ist, der Interesse an deinen gefarmten Sachen hat.


    Der Serverbetreiber kann dann das Handelssystem auf seinem Server aktivieren und stellt dann dies in seiner Preisliste ein...
    die sieht derzeitig noch wie folgt aus:




    Vielen Dank noch mal für das Feedback von Euch!