[Plugin Request] MC-Defrag

Dieses Thema im Forum "Server Plugins" wurde erstellt von Jobsti, 15. August 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Jobsti
    Offline

    Jobsti

    Registriert seit:
    18. August 2011
    Beiträge:
    1.226
    Ort:
    Steinau (Hessen)
    Minecraft:
    Jobsti
    Moin,

    ich bin schon lange auf der Suche nach nem Plugin, welches die Zeit stoppt samt Topliste, kann aber nix finden.
    Am ähnlichsten wäre da hier noch Templerun, is aber auch net das was ich suche.

    Ihr kennt den Mod Defrag für Quake 3 ?
    dann wisst ihr genau was ich suche ;)
    (ja ich war pmc defragger damals)


    Kurzum:
    - Das Plugin soll die Zeit von Punkt A nach Punkt B stoppen (also Startblock zu Zielblock)
    - Ne Topliste haben
    - Ohne Schilder und wenigen Commands auskommen


    Praxis:
    Wir stellen uns eine Stecke oder Parcour vor.
    Ich laufe über einen Block (oder eine reihe, quasi als Start Linie) oder Region
    und das Plugin fängt an die Zeit zu zählen.....
    kein 3...2...1..., sondern Block überqueren/berühren und sofort wird gezählt.

    Am Ende vom Parcour is der Zielblock, ich laufe darüber, die Zeit wird gestoppt und mir im Chat angezeigt,
    inkl. meiner Platzierung.

    Das war's auch schon ;)


    Was muss bedacht werden?
    • Es müssen mehrere Strecken möglich sein, somit müssen die Runmaps/parcours benannt werden,
    das könnte per /defrag setstart <name> & /defrag setfinish <name> erledigt werden.

    • Es sollte ne Topliste geben /defrag top1 <seite>, zeigt die Top-1-Zeiten aller Strecke an
    /defrag top <name> zeigt die Top 10 Zeiten der entsprechenden Strecke an.

    • Beim Erstellen müsste man die maximale Zeit festlegen können, /defrag <name> t 3m
    Warum? Loggt nen Spieler aus, oder entfernt sich vom Parcour (wir wollen hier keine Regionen oder separate Welten, alles Open World), muss der Zähler irgendwann aufhören die Zeit zu "stoppen", wobei er beim Ausloggen eigentlich automatisch stoppen könnte.
    Wird die max Zeit Erreicht, wird der Spieler auch nicht in die Topliste aufgenommen.
    Falls es lange Strecken geben sollte, wäre ein /defrag <name> reset net verkehrt, zum Zeit/Strecke resetten.
    Der Spieler, welcher den Timer für sich gestartet hat, sollte ihn sich auch selbst Rückstellen können mit /defrag reset
    (respawn beim Tod, Checkpoints usw. kann sich jeder selbst per Worldgard und SpawnFlag erstellen, braucht das Plugin also net,
    ob das Plugin beim Spieler-Tod den Counter stoppen soll oder net, sollte in ner config festlegbar sein, oder per command per strecke)


    • Solange der Timer noch läuft, kann die Strecke kein anderer absolvieren, oder eben (falls möglich) maximal 2-3 User gleichzeitig,
    ansonsten erscheint im Chat "Strecke wird derweil bestritten"

    • Der Start und Ziel-Block (oder Blöcke) dürfen nur mit entsprechenden permissions (defrag.admin) erstellt und abgebaut werden.

    • Permissions für: Darf Teilnehmen / Wird in Topliste aufgenommen / Modrechte (Strecke erstellen/löschen / Einzelzeiten und ganze Listen leeren)
    Somit kann man sagen, dass zB Gäste mitmachen dürfen, ihre Zeiten aber net gespeichert werden.




    Ich kann mir vorstellen, wenn so nen Plugin halbwegs bekannt wird und gut funkt,
    dass ne echt nette Tauschbörse für Strecken-Schematics entstehen könnte, evtl. auch inkl. Foren/Community/Globalen-Bestzeiten,
    und recht viele Youtubevideos.
    Oder auch gar reine Defrag Server.

    Falls sowas laufen sollte, könnte man sich später nochmal Gedanken für Spezielblöcke machen,
    zB. Jump-Pads usw....
    Wobei man aber durch den Einfachen Aufbau (only start/ziel block + Timer) eigentlich alles in die Strecke einbauen kann was man will
    mit jedem externen anderen Plugin.









    Wäre super genial, wenn sich da wer (bitte wer Erfahrenes, auf monatelange Alpha- und Betatests habe ich wenig Lust),
    mal dran machen könnte.....
    Würde auch was Spenden, wenn's denn sein muss, oder ich schick nen Kasten Bier vorbei
     
    #1
  2. Ich fang gerade mal damit an, da ich keine lust mehr auf mein 'Portfolio' habe :D

    Also dieses Plugin soll auch ein Public Plugin werden, versteh ich richtig oder?
     
    #2
  3. Scrayos
    Offline

    Scrayos Verifiziert

    Registriert seit:
    11. Februar 2012
    Beiträge:
    276
    Ort:
    Köln
    Minecraft:
    Scrayos
    Mehr als Easy. Einfach die Ticks vom Heartbeat von Bukkit counten, und bei Region-Eintritt beginnen, bei verlassen aufhören, und Zeit in eine MySQL-Tabelle ausgeben lassen. Topliste kann man dann einfach ausgeben ;)
     
    #3
  4. Jobsti
    Offline

    Jobsti

    Registriert seit:
    18. August 2011
    Beiträge:
    1.226
    Ort:
    Steinau (Hessen)
    Minecraft:
    Jobsti
    Mir wäre SQLite ganz lieb, oder yaml.
    mySQL muss net sein, soltle auch nur für größere Server, oder welche, die auf der HP werte ausgeben interessant sein.

    Jau klar, public, darf, soll und kann jeder haben.

    Am liebsten wäre mir das ohne Regionen, also keine WG-Pflicht.
     
    #4
  5. Hier mal ein Kleiner Snapshot:
    PS: Man möge mir verzeihen dass ich mich hier kurz fasse. Dies ist schließlich nurn Snapshot
    Features:
    • Erstellen von Regionen (Leider noch ohne Save System D:)
    • Topliste mit Score
    • Jede Strecken kann gleichzeitig nur von einem Teilnehmer absolviert werden
    • Stecken können komplett Resettet werden(Aktueller Teilnehmer wird gelöscht)
    • Zeit Ziel und Anfang können erstellt werden
    • Permissions für alles
    • Optimiertes aufrufen der Playermove Methode, für weniger Leistungsverbrauch.
    • Zielstrecke muss Zielblock sein(Momentan nicht konfigurierbar/14)
    • Keine Commands nötig zum Spielen nur zum erstellen
    • Keine Libary
    • Metrics Support

    Commands:
    Code (Text):
    1.             /defrag reset [Name] #Resettet die eigene Strecke(Als Spieler) sonst angegebene Strecke MIT Highscore etc!
    2.             /defrag time <name> <time> # Legt Zeit fest
    3.             /defrag score <name> #Zeigt Top 10 an
    4.             /defrag list # Zeigt alle Strecken an
    5.             /defrag finish <name> # Legt Ziel für Strecke fest
    6.             /defrag create <name> # Erstellt Strecke mit startplattform
    7.             /defrag toggle # Geht in Regionenmodus

    Permissions:
    Code (Text):
    1.  author: manf
    2. database: false
    3. description: TODO
    4. main: de.javakara.manf.mcdefrag.MCDefrag
    5. name: MCDefrag
    6. startup: postworld
    7. url: [url]http://forum.team-sod.de[/url]
    8. version: '1.5'
    9. prefix: Defrag
    10. commands:
    11.    defrag:
    12.       description: This is a demo command.
    13.       aliases: def
    14. permissions:
    15.     defrag.*:
    16.         default: op
    17.         description: Gives access to all commands
    18.         children:
    19.             defrag.admin.*: true
    20.             defrag.user.*: true
    21.     defrag.admin.*:
    22.         description: Gives access to all Admin commands
    23.         default: op
    24.         children:
    25.             defrag.admin.create: true
    26.             defrag.admin.delete: true
    27.             defrag.admin.top.*: true
    28.     defrag.admin.create:
    29.         description: Gives access to create a new route
    30.         default: false
    31.     defrag.admin.delete:
    32.         description: Gives access to delete routes
    33.         default: false
    34.     defrag.admin.lock:
    35.         description: Gives access to lock routes
    36.         default: false
    37.     defrag.admin.top.*:
    38.         description: Gives access to all Toplist commands
    39.         default: op
    40.         children:
    41.             defrag.admin.top.clear: true
    42.             defrag.admin.top.clear.all: true
    43.     defrag.admin.top.clear:
    44.         description: Gives access to delete single Stats
    45.         default: false
    46.     defrag.admin.top.clear.all:
    47.         description: Gives access to delete all Stats
    48.         default: false
    49.     defrag.user.*:
    50.         description: Gives access to all User commands
    51.         default: true
    52.         children:
    53.             defrag.user.join: true
    54.             defrag.user.competitor: true
    55.             defrag.user.list: true
    56.             defrag.user.top: true
    57.     defrag.user.join:
    58.         description: Gives access to join routes
    59.         default: false
    60.     defrag.user.competitor:
    61.         description: Stats can be saved
    62.         default: false
    63.     defrag.user.list:
    64.         description: user can view list of routes
    65.         default: false
    66.     defrag.user.top:
    67.         description: user can view top list of route
    68.         default: false
    69.     defrag.user.reset:
    70.         description: user can reset his route
    71.         default: false

    Erstellen einer Strecke:
    1. /defrag toggle
    2. 1. Block abbauen(z.B. mit creative)
    3. 2. Block rechtsklick
    4. /defrag create Name -> Startregion
    5. Wiederhohle 1-3
    6. /defrag finish Name -> Endregion
    Achtung: Die Startlinie muss aus Golderz bestehen! Dann lauft ihr Rüber und es startet alles...
    Download RC: https://dl.dropbox.com/u/43938052/Dev/defrag-dev-new.jar
    Download: Den Anhang 321 betrachten
    Source: Liegt natürlich bei
    Lizenz: Creative Commons by-nc-nd v3.0
    Mit dem Download stimmt ihr der Lizenz zu.
     
    #5
  6. Jobsti
    Offline

    Jobsti

    Registriert seit:
    18. August 2011
    Beiträge:
    1.226
    Ort:
    Steinau (Hessen)
    Minecraft:
    Jobsti
    So genial, 2ter Dev funkt1A!

    Was noch gemacht werden muss:

    • In der Config sollte festlegbar sein, OB und in welchen Abständen die aktuelle Zeit im Chat
    während eines Runs angezeigt wird, zB alle 10s die %time%
    • Locale File um ALLE Zeilen anzupassen
    • Locale benötigt %time% und %track%
    • /defrag score ohne <name> sollte die gleiche Ausgabe ergeben wie /defrag list
    • Scrore und List sollten in einer Tabelle angezeigt werden, also immer identische Abstände, ähnlich dem alten Help Plugin (welches mit MyWarp, BB usw. funkte)
    • Leere Score-Zeilen sollte durch Leerzeichen oder - - getausht werden anstatt "none|0", da unübersichtlich.
    • Weltweiter, oder gar Serverweiter (konfigurierbar) Broadcast für neue Top-1 Zeit.
    • standardmäsig sollte der alias /def in der plugin.yml angelegt sein.
    • Eingabe für Time sollte nicht in ms sein, entweder Sekunden, oder besser mit Angabe der Einheit, zB "2 m" oder "300 s"
    • Standard-time sollte in der cfg festlegbar sein.
    • COmmand zum strecken sperren und freigeben mit /def lock <name> /def unlock <name>

    Der temp command zum World hinzufügen wird sicher durch die cfg überflüssig?!


    PS:
    Ich biete mich an die grund-locale files für en_US und de zu erstellen.
     
    #6
  7. Hier die Fortschrittsleiste für mich:
    Was noch gemacht werden muss:

    In der Config sollte festlegbar sein, OB und in welchen Abständen die aktuelle Zeit im Chat
    während eines Runs angezeigt wird, zB alle 10s die %time%

    Locale File um ALLE Zeilen anzupassen
    Locale benötigt %time% und %track%
    /defrag score ohne <name> sollte die gleiche Ausgabe ergeben wie /defrag list -> defrag score ist nun defrag top
    Scrore und List sollten in einer Tabelle angezeigt werden, also immer identische Abstände, ähnlich dem alten Help Plugin (welches mit MyWarp, BB usw. funkte)
    Leere Score-Zeilen sollte durch Leerzeichen oder - - getausht werden anstatt "none|0", da unübersichtlich.
    Weltweiter, oder gar Serverweiter (konfigurierbar) Broadcast für neue Top-1 Zeit.Man kann sogar einen Befehl festlegen für eine Belohnung xD
    standardmäsig sollte der alias /def in der plugin.yml angelegt sein.
    Eingabe für Time sollte nicht in ms sein, entweder Sekunden, oder besser mit Angabe der Einheit, zB "2 m" oder "300 s" -> Config sind Sekunden der Time Befehl hat nun ein optimales Argument für die Einheit(m,ms,s) standartmäßig ist auch hier Sekunden
    Standard-time sollte in der cfg festlegbar sein.
    COmmand zum strecken sperren und freigeben mit /def lock <name> /def unlock <name>
    Richtige Sortierung der Rangliste
    • Später: Mobarena Scoreboard
    @Jobsti: Der worldadd Command wird natürlich removed wenn die Config drin is :D Die Config legt nun die Welten fest.

    PS: Vielen dank Jobsti für deine wirklich netten Post, sodass ich den nur Zitieren muss :p
    PPS: Das mit dem Menü war zwar arbeit is aber jetzt schon Fertig:p
     
    #7
  8. Jobsti
    Offline

    Jobsti

    Registriert seit:
    18. August 2011
    Beiträge:
    1.226
    Ort:
    Steinau (Hessen)
    Minecraft:
    Jobsti
    Grad rausgefunden, in der Topliste wird die Zeit falschrum sortiert, beste Zeiten stehen weiter unten.
    Zudem fehlen die Zeichen. 14036 sollte so da stehen: 14.036 s


    Ich weiß net wie viel Aufwand das ist...... aber gugg dir mal das Mobarena Scoreboard an, das is de Knaller ;)
    Ein 2 Schilder würde ja reichen,Eins mit den Namen, das daneben mit den Top-Zeiten.
    Aber das kannste ganz ganz hinten anstellen
     
    #8
  9. Jobsti
    Offline

    Jobsti

    Registriert seit:
    18. August 2011
    Beiträge:
    1.226
    Ort:
    Steinau (Hessen)
    Minecraft:
    Jobsti
    Noch was für die Liste ;-)

    • /defrag sollte die hilfe ausgeben, welche die Hilfe, eher aber alle commands anzeigt.
    Die Ausgabe davon soltle an die Permission defrag.user und deftag.admin gebunden sein, bzw. allgemein nur anzeigen, welche Commands zugänglich sind.

    PS:
    Der aktuelle Dev von dir erstellt noch keine Config, hatte ich nett rausgehört heute, dass er das schon kann?!
     
    #9
Status des Themas:
Es sind keine weiteren Antworten möglich.