• Bitte beachte, dass wir eine Serverliste sind!
    Wenn du ein Problem auf einem Server hast (z.B. Entbannantrag, etc), dann ist das Forum hier der falsche Ort.
  • Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Quests wie bei "Pokemon®"

Rocki

Redstoneengineer
Registriert
14 Dezember 2014
Beiträge
35
Diamanten
300
Minecraft
TheSkySquid
Hallo,
ich möchte einen MMORPG Server betreiben und benötige dabei folgende Hilfe:

1.Wie ihr sicherlich wisst gibt es die Plugins "Citizens(2)" & "Quests" .
Im Normalfall gibt es bei Quests eine Frage -> man kann "yes" oder "no" antworten und die Quest startet.
Ich würde aber gerne einen längeren Text einbauen, welcher wie auch bei "Wynncraft (MC Server)" oder "Pokemon ( Nintendo Spiel )"über mehrere
Zeilen geht und mit einem Rechts- oder Linksklick weiter "gespult" wird.

2.Ist es möglich Quests zu erstellen, bei denen keine yes/no Abfrage stattfindet ? Wenn ja, wie ?

3.Es gibt in 1.8 "Barriers"
Gibt es eine möglichkeit diese Spielerspezifisch & nach Questabschluss zu entfernen ?


*Bei diesen Fragen möchte ich nur Plugins & Configurationen verwenden, jedoch keine Commandblocks.
 

SilberRegen

Workaholic
Registriert
23 März 2012
Beiträge
889
Alter
35
Diamanten
303
Minecraft
SilberRegen
Möglich ist das mit Denizen.
Dieses bietet dir aber keine fertigen Vorlagen, in die du nur deine Texte einsetzen musst, sondern verlangt, dass du alles selber schreibst. Die Dokumentation ist nur Englisch (zumindest der brauchbare Teil).
Die Quests die wir bei uns haben, sind alle mit Denizen umgesetzt, dass im Prinzip noch viel mehr kann als Quests. Wenn man das drauf hat, kann man damit ziemlich abgefahrene Sachen machen, ist aber nicht silbsterklärend.

Ob du die vanillabarriers Spielerspezifisch entfernen kannst, weiß ich nicht, man könnte aber definitiv mit World-Guardzonen arbeiten und Spieler einzeln eintragen, man kann in Denizenscripts sämtliche Serverbefehle ausführen lassen.

Ein Denizenscript kann zum Beispiel am Ende so aussehen:
Code:
'Quest_Nahrung_1': #Questgeber ist Frida, die Bäckerin
  Type: Interact
  Requirements:
   Mode: All
   List:
   - -INGROUP Gast
   - -INGROUP Abgelehnt
   - -INGROUP Neuling
   - -SCRIPT finished script:Quest_Nahrung_1
  Steps:
   1:
    Proximity Trigger:
         Entry:
            Script:
            - CHAT "§eHallo, Ihr da. Ja genau Ihr!§f"
            - WAIT 1
            - NARRATE "§bEin NPC ruft Euch heran. Rechtsklickt Ihn, um zu erfahren, was er von Euch möchte.§f"
    Click Trigger:
        Script:
        - ENGAGE
        - CHAT "§eHey, Ihr seid doch gerade eben erst hier angekommen, oder? Nungut, ich bin Frida, Bäckerin und Geschäftsfrau.§f"
        - WAIT 2
        - CHAT "§eWie ist denn Euer Name, wenn ich so fragen darf? Ich meine, ich habe Euch doch schon ziemlich überrumpelt.§f"
        - WAIT 2
        - CHAT "§e...§f""
        - WAIT 2
        - CHAT "§eAh, so ist das also. Wie schaut es aus <player.name>, hättet Ihr da vielleicht Lust, Euch ein kleines, feines Zubrot zu verdienen? Ich meine richtiges, leckeres Brot aus meiner Bäckerei!§f"
        - WAIT 1
        - NARRATE "Schreibt - 'Ja' oder 'Nein'"
        - DISENGAGE
        - ZAP 3
[...]
   3:
    Click Trigger:
        Script:
        - NARRATE "Schreibt - 'Ja' oder 'Nein'"
    Chat Trigger:
     1:
        Trigger: "§7/Ja/ klar, Brot kann ich doch immer gebrauchen!§f"
        Script:
        - ENGAGE
        - CHAT "§ePrima! Für Lau gibt es natürlich nichts, rein gar nichts, damit wir uns verstehen.§f"
        - WAIT 2
        - CHAT "§eAber die Aufgabe ist eigentlich nicht so schwer und sollte Euch daher auch schnell von der Hand gehen.§f"
        - WAIT 2
        - CHAT "§eFür gewöhnlich trage ich jeden Tag frische Brote und auch anderes Gebäck an meine Kunden aus. Heute morgen aber, ist eine große Sonderbestellung eingegangen und jetzt ... hänge ich etwas hinterher...§f"
        - WAIT 6
        - CHAT "§eAber jetzt seid Ihr ja da! Nehmt diesen Korb mit den bestellten Waren und gebt Acht, dass auch §cjeder das bekommt, was er bestellt§e hat.§f"
        - WAIT 3
        - CHAT "§eAuf der Liste hier findet Ihr alles Wichtige notiert. Und jetzt lauft schon los, wir wollen sie doch nicht warten lassen.§f"
        - WAIT 3
        - GIVE 358:7
        - NARRATE "§bIhr erhaltet die §eBestellungsliste§b und einen schweren Korb mit frischen, köstlich duftenden Backwaren.§f"
        - DISENGAGE
        - RUN 'SCRIPT:Run4MoreEquip2' queue:Run4MoreEquip2 DELAY:600
        - FLAG PLAYER 'AktiveQuests:->:DringendeLieferung'
        - NARRATE format:quest_given_format "Dringende Lieferung"
        - ZAP 4
     2:
        Trigger: "§7/Nein/ tut mir Leid, ich bin beschäftigt.§f"
        Script:
        - ENGAGE
        - WAIT 2
        - CHAT "§eNa gut, dann eben nicht! Schade! ...§f"
        - WAIT 2
        - CHAT "§eAber falls Ihr es Euch doch *seufz* ... noch anders überlegt, wisst Ihr jetzt, wo Ihr mich finden könnt!§f"
        - DISENGAGE
        - ZAP 2
     3:
        Trigger: /REGEX:\w+/
        Script:
        - CHAT "§eEntschuldigt, aber ich weiß nicht, was Ihr mit '§7<player.chat_history>§e' meint.§f"
   4:
    Click Trigger: #Frida, nach angenommener Quest
        Script:
        - CHAT "§eWorauf wartet Ihr noch? Meine Kunden warten auf Ihre Brötchen.§f"
        - WAIT 2
        - CHAT "§eIhr wisst doch sicherlich, wen Ihr wo findet, oder etwa nicht?§f"
        - WAIT 1
        - NARRATE "Schreibt - 'Boris', 'Karolus' oder 'Willibald'"
    Chat Trigger:
     1:
        Trigger: "§7Wo finde ich /Boris/?§f"
        Script:
        - CHAT "§cBoris, den Totengräber?§e Den werdet Ihr wohl bei seinem Häuschen am §cFriedhof§e finden können. Lasst Euch nicht von seinem Äußeren oder seiner kauzigen Art schrecken, er ist ein sehr netter Stammkunde von mir und ein drolliger Gesell.§f"
        - WAIT 3
        - CHAT "§eDer Friedhof Iturias liegt übrigens zwischen dem §cNordhafen§e und dem §cMarktviertel§e, falls Ihr das nicht schon wusstet.§f"
     2:
        Trigger: "§7/Karolus/? Ich bin mir nicht mehr ganz sicher, wo ich den schon einmal gesehen habe...§f"
        Script:
        - CHAT "§eAlso, Ihr seid wirklich ganz schön vergesslich. Den Inhaber von §cGeiz&Gier§e kennt doch jedes Kind auf Ituria.§f"
     3:
        Trigger: "§7Könnt Ihr mir sagen, wo ich /Willibald/ antreffe?§f"
        Script:
        - CHAT "§cWillibald§e ist der Direktor des §cSägewerks westlich des Südhafens. Wenn Ihr den §cMarktplatz gen Westen§e verlasst solltet Ihr das Sägewerk ausgeschildert finden.§f"
   5:
    Click Trigger: #Belohnungsscript
        Script:
        - IF <player.flag[Nahrung_1].aslist> !contains 'MoreEquip2FAIL' {
            - QUEUE queue:Run4MoreEquip2 clear
            - ENGAGE
            - CHAT "§e<player.name>! Ihr seid aber schnell unterwegs, das will ich Euch loben!§f"
            - WAIT 3
            - CHAT "§e... Willibald? Achja, macht Euch keine Kopf der kriegt sich schon wieder ein, den kleinen Spaß wird er schon verkraften.§f"
            - WAIT 2
            - CHAT "§eNun denn, wer hart arbeitet muss sich auch gut stärken. Das ist für Euch, lasst es Euch schmecken!§f"
            - GIVE 297 QTY:15
            - GIVE 357 QTY:32
            - GIVE 335
            - NARRATE "§bIhr erhaltet einen kleine Auswahl leckerer §eBackwaren§b und ein Glas frische Milch. Naja, eher einen Eimer...§f"
            - WAIT 4
            - CHAT "§eAuf Euer wohl mein tapferes Helferlein. Wenn ich in Zukunft etwas Hilfe benötige, werde ich mich sicher Eurer entsinnen!§f"
            - WAIT 4
            - CHAT "§eBis die Tage und frohes Schaffen, <player.name>!§f"
            - FLAG PLAYER 'Nahrung_1:!'
            - FLAG PLAYER 'AktiveQuests:<-:DringendeLieferung'
            - FLAG PLAYER 'QuestCounter:++'
            - NARRATE format:quest_complete_format "Dringende Lieferung + BONUS"
            - DISENGAGE
            - FINISH }
          ELSE {
            - ENGAGE
            - CHAT "§eAyayay, Euch kann man ja im Gehen die Schuhe besohlen. Naja, Hauptsache die Lieferungen sind angekommen.§f"
            - WAIT 3
            - CHAT "§e... achje, Ihr habt Willibald doch nicht etwa...? ...ich werde das schon wieder hinbekommen... macht Euch keinen Kopf...§f"
            - WAIT 4
            - CHAT "§eAber ich will ja nicht undankbar erscheinen, die Arbeit wurde ja schließlich erledigt und Ihr seht auch ganz schön fertig aus. Hier bitteschön.§f"
            - NARRATE "§bIhr erhaltet §e15 Brote§b.§f"
            - GIVE 297 QTY:15
            - WAIT 4
            - CHAT "§eArbeitet eine Runde an Eurer Kondition und dann sehen wir mal ob ich in Zukunft vielleicht noch etwas mehr für Euch zu tun habe. Bis bald!§f"
            - FLAG PLAYER 'Nahrung_1:!'
            - FLAG PLAYER 'AktiveQuests:<-:DringendeLieferung'
            - FLAG PLAYER 'QuestCounter:++'
            - NARRATE format:quest_complete_format "Dringende Lieferung"
            - DISENGAGE
            - FINISH }
[...]

Dieses Script funktioniert so natürlich nicht, da fehlt gut die Hälfte des Scripts der Quest und es ist auch eine alte Version in der ich einige Sachen ausprobiert habe, die nicht funktioniert haben.
Globale Formatierung der Texte hatte ich auch noch nicht, daher sind überall Farbcodes (mit §) drin.
Am Anfang wieder typische Ja/Nein abfragen, aber die Wörter sind komplett frei wählbar oder durch andere Trigger ersetzbar (Klicken mit einem bestimmten Gegenstand, Schlagen, Nur Klicken, Bedingungen wie Tageszeit, Wetter... da geht einiges).

In diesem Script "spult" der Text automatisch, da sind entsprechende Pausen eingebaut (WAIT). Man könnte aber auch einfach in den nächsten Schritt "zappen" und wieder mit Clicktrigger auslösen lassen (finde ich halt nicht besonders elegant und sehr auswändig). Lieber einen guten Pausenabstand finden (in diesem Script sind sie ein bisschen zu kurz geraten). Im Notfall kann man im Chat hochscollen.

Nur mal um dir eine Idee zu geben, was man alles selber erstellen muss für eine einfache Quest. In diesem Fall muss der Spieler drei imaginäre Dinge zu verschiedenen NPC ausliefern (Könnten auch wirkliche Questgegenstände sein, die man mit Denizen erstellt, aber ich hatte keine Lust auf weinende Neulinge, die Ihren Questgegenstand verloren haben).
 
Zuletzt bearbeitet:

Rocki

Redstoneengineer
Registriert
14 Dezember 2014
Beiträge
35
Diamanten
300
Minecraft
TheSkySquid
mh. Ok danke sehr.
Ich werde nur leider nicht sehr viel damit anfangen können, da ich plane sehr viele solche NPCs zu machen.
Gibt es irgendwo fertige template Quests oder vielleicht ein Plugins welches es einfacher macht ?
 

SilberRegen

Workaholic
Registriert
23 März 2012
Beiträge
889
Alter
35
Diamanten
303
Minecraft
SilberRegen
Von den Möglichkeiten her ist Denizen denke ich unschlagbar, vom Aufwand her leider auch.
Es gibt durchaus eine Scriptrepository, aber die ist nicht gut gepflegt. Wenn du viele ähnliche Quests planst, kann man sich hier natürlich selber templates zurechtlegen, sobald die Prototypen laufen. Ich nutze auch viel Copy&Paste aus meinen älteren Sachen, wenn ich neue Scripts bastel.
Alternativ hab ich noch http://dev.bukkit.org/bukkit-plugins/epicquest/ gefunden. Sieht einfacher aus, ob das stimmt und dir bietet was du suchst weiß ich nicht. Kannst es dir mal schauen.
 
Oben