Bücher erstellen und im Menü lesen -Plugin

  • Hi Leudde,


    nach dem im Forum nach einem Buch-Plugin gefragt wurde, das ähnlich wie das von Morrowind ist, habe ich gestern das Plugin geschrieben.


    Eure Mutter findet eh, ihr solltet mehr lesen. Also tut ihr einen Gefallen und ladet mein Plugin ;)




    ================ ReadMe =================================================================================================================================


    --------- Beschreibung


    Ein Plugin zum erstellen von Büchern und Karten, die man im Item-Menu lesen kann.

    Um ein Buch zu öffnen, einfach das Item benutzen.



    Das Plugin benötigt folgende Dateien:


    PXD_Book.js

    myBooks.json

    Cover und Book Images




    --------- Das Plugin installieren


    Um das Plugin zu installieren, muss die PXD_Book.js in den js/plugins/-Ordner abgelegt und über den Plugin-Manager aktiviert werden.


    Danach muss die myBooks.json in den data-Ordner abgelegt werden. Diese Datei brauchst du nicht aktivieren, sie dient nur als Datenbank. In diese Datei schreibst du später den Text deiner Bücher.


    Ausserdem musst du einen Ordner für die Bücher-Bilder und die Titel-Bilder in einem beliebigen Ordner erstellen.


    Die Voreinstellung für die Bücher-Bilder: img/pictures/book/

    Die Voreinstellung für die Titel-Bilder : img/pictures/book/title_sprites/




    --------- Ein Buch in der Datenbank erstellen


    Ein Buch kann jedes beliebige Item (Gegenstände) in der Datenbank sein.


    Parameter in der Datenbank:


    Gegenstandstyp: Normaler Gegenstand

    Verbrauchbar : Nein

    Bereich : Keine

    Anlass : Immer


    Dazu musst du dem Buch in das Hinweis-Fenster folgende Note-Tags schreiben:


    <bookId:1>

    <bookType:5>

    <bookImage:Ghost>


    Die BookId-Zahl ist verknüpft mit dem erstellten Buch in der myBooks.json. Die Id ist immer einzigartig. Jedes Buch braucht einen Id-Hinweis.


    Die BookType-Zahl ist verknüpft mit den Bücher-Bildern. Je nach gewünschtem Cover- und Seitenbild, kannst du den Typ auswählen. Jedes Buch braucht einen Type-Hinweis. Der Type ist nicht einzigartig.


    Das BookImage ist der Name des Titel-Bildes. Diesen Hinweis brauchst du nur einfügen, wenn das Buch ein Titel-Bild haben soll.




    --------- Einen Buch-Inhalt erstellen


    Um ein Buch mit Author und Titel zu erstellen, musst du die myBooks.json-Datei in dem data-Ordner bearbeiten. Dazu musst du die myBooks.json mit einem Editor öffnen. Ich empfehle dir "Sublime Text", ein Programm das du unbegrenzt als Freeware nutzen kannst und das Anfängern die Arbeit mit Javascript enorm erleichtert.


    Hast du die myBooks.json-Datei geöffnet, siehst du vorgefertigte Einträge.


    id: - bestimmt die Id eines Buches, diese Id trägst du in die <bookId> ein

    autor: - der Author, der auf dem Titel angezeigt wird

    title: - der Buchtitel, der unter dem Authoren auf dem Titel angezeigt wird


    Und dann die Seiten-Zahlen mit dem Text-Inhalt:


    1: "Im Anfang war das Wort."

    2: "Und sie nagelten ihn ans Kreuz."


    Du kannst die vorgefertigten Einträge bearbeiten und wenn diese nicht reichen, eigene anfügen.

    Die Seitenzahlen kannst du beliebig erhöhen oder beschneiden. Du brauchst keine \n Kommandos einfügen, das Script schreibt automatischen Fließtext (pro Seite). Du musst aber beachten keine Worte zu benutzen, die länger sind als die Seitenbreite (Parameter: Page Width).


    Um einen Absatz einzufügen, den du erzwingen willst, schreib das §-Zeichen. Willst du zwei Absätze einfügen, schreibst du § §. Du musst hier aber die Leerzeichen beachten, ein Beispiel:

    "Mein eigenes Buch! § § Wie schön das aussieht!"


    Fügst du noch ein # Zeichen ein, wie in diesem Beispiel:

    "Mein eigenes Buch! # § § Wie schön das aussieht!"

    ...dann wird der Text "Mein eigenes Buch" zentriert und danach zwei Absätze eingefügt.


    Das bedeutet allerdings auch, das die Zeichen § und # gesperrt sind für den eigentlichen Textinhalt. Aber ich mag weder Anwälte noch Twitter, also finde dich damit ab xD




    --------- Allgemeines


    Das erstellte Buch in der myBooks.json sollte nur die Seiten im Eintrag haben, die wirklich benutzt werden. Ansonsten blätterst du leere Seiten durch.


    Und gaaaanz wichtig:

    In der myBooks.json-Datei musst du dringend auf die Kommas achten! Sonst siehst du eine Fehlermeldung wie diese:

    Uncaught SyntaxError!


    Und zwar:

    Die Bücher-Daten sind in {} Klammern geschrieben. Hinter jede } Klammer gehört ein , (Kommazeichen) AUSSER hinter die letzte } Klammer des letzten Buches! Siehe Bild: Kommazeichen_1.


    Ebenso bei den Einträgen:

    Hinter jede id-autor-title-seiten-Zeile gehört ein , (Kommazeichen) AUSSER hinter die letzte Zeile JEDES Buches! Siehe Bild: Kommazeichen_2.


    Wills du eine Karte anzeigen, wie in der Demo-Version gezeigt, brauchst du dem Buch in der myBooks.json nur eine Id zuweisen. Dazu kannst du dann variiren, ob du autor und/oder title zusätzlich einträgst, musst du aber nicht. Lässt du jetzt die Seitenzahlen komplett weg, wird keine Seitenzahl angezeigt und man kann das Buch/Karte lediglich öffnen und betrachten.


    Um ein Titlebild auszuwählen, schreibe in den Note-Tag den Namen der Bilddatei:

    <bookImage:Bilddateiname>


    Willst du eigene Bilder für die Buch-Cover und -Seiten verwenden, behalte die Namen bei.

    Du kannst beliebig viele Grafiken anfügen. z.B. cover_27 und book_27.

    Dann schreibst du als Note-Tag: <bookType:27>




    --------- Copyright


    Free for commercial and non-commercial use.

    Images by PandaMaru, script by Pixeldrama.

    Credits: PandaMaru, Pixeldrama





    --------- Version


    0.1 - 07.20.2018


    ================ Ende ===================================================================================================================================

    Kleines Video:




    Die Bücher im Video sind alle im Default-Modus erstellt, ihr könnt in den Parametern eigene Schriftarten und Farben setzen, dann sieht das genial aus.

    Es liegt an euch, was ihr draus macht.


    Das Script basiert auf einem alten Script von mir, und wurde in dieser Version nicht pausenlos getestet, endeckt ihr einen Bug, meldet euch hier.


    Gruß, Pixeldrama.

  • Ach du heilige.... :love:

    Als Lore-Fetischist ist das wohl grade das geilste PlugIn das ich jemals gesehen habe! Mein Projekt schreit grade regelrecht danach ^^


    Schonmal ein großes Danke für diesen echt tollen Beitrag. Das wird definitiv für viele Projekte nützlich sein :thumbup:

    "How should a monster ever change when nobody cares for it?" - Nemo, The Sunstone Chronicle

    OV7YYB.png

  • Ich rieche schon eine Maker Version von Skyrim! 😂 Nee im Ernst, das ist genial!Vor allem kann man das prima für Survival Games benutzen,in dem man die ganzen Crafting Rezepte bspw. in Bücher packt die man selbst erst mal herstellen/finden muss! Ich werd mir das bei Gelegenheit auch einverleiben!

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von OnkelTorre () aus folgendem Grund: Hat sich erledigt!

  • Läuft wie eine 1!

    Danke für die ausführliche Erklärung und auch die Templates in myBooks.js.


    Wäre es möglich einen Trigger einzubauen, wenn der Spieler das Schriftstück/Buch gelesen hat? So könnte man Quests oder Gespräche triggern.
    Ein Notetag wo man eine Switch ID oder Variable ID einstellen kann, wäre perfekt!

    Einzig ein kleines Problem, da ich ich ein Item Categories Plugin nutze. Da gibts beim schließen des Buchs nen kleine Visuellen Fehler.

    https://forums.rpgmakerweb.com…ventory-categories.69256/

    Aber ich verstehe natürlich, dass du nicht auf jedes Plugin dein eigenes Plugin anpassen kannst :)

    Ansonsten für mich eine Offenbarung!

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von StyX ()

  • Eine Frage hab ich doch noch;

    Wie krieg ich n anständigen Zeilenumbruch hin? Wenn ich die Zeile länger mache is der Abstand viel zu groß als das es annehmbar aussieht,als hätte man nen Absatz eingefügt!

  • OnkelTorre

    Mach mal bitte einen Screen-Shot. Also eigentlich war das CENTER nur für eine Überschrift gedacht. Ich werde mich noch mal dran setzen und die Einstellungen erweitern.


    StyX

    Einen Switch habe ich angefügt, veröffentliche das neu, wenn ich mir Torres Problem angeschaut habe. Habe mir das Inventar-Plugin von MSX geladen, den Grafik-Fehler verstehe ich, kann ihn aber noch nicht beheben. Mir ist durch die Hitze ehrlich gesagt grade nicht nach Denksport.

  • Einen Switch habe ich angefügt, veröffentliche das neu, wenn ich mir Torres Problem angeschaut habe. Habe mir das Inventar-Plugin von MSX geladen, den Grafik-Fehler verstehe ich, kann ihn aber noch nicht beheben

    Vielen Dank! Das ist echt super wichtig, finde ich.


    Habe mir das Inventar-Plugin von MSX geladen, den Grafik-Fehler verstehe ich, kann ihn aber noch nicht beheben. Mir ist durch die Hitze ehrlich gesagt grade nicht nach Denksport.

    Vielleicht hast du ja irgendwann lust dazu :D 


    Noch ne kleine Frage hätte ich aber, ist es möglich die Bücher/Briefe mit nem Scriptcall/Command zu öffnen? So, dass wenn z.b. ein Brief auf dem Tisch liegt, der Spieler nicht erst den Brief aufheben und im Inventar anschauen muss, sondern direkt?
    So könnte man auch Schilder oder ähnliches bauen.



    Vielen Dank für deine Mühe und das super tolle Plugin!

  • Andere Frage! kann man dieses Plugin als Intro irg.wie benutzen? also das wenn man ein neues SPiel startet man ein offenes Buch hat wo die story drin beschrieben wird etc?

    i_RMMVArbeitet an einem großem Projekt deswegen nicht wundern wenn mehr fragen als üblich kommen :D

  • Andere Frage! kann man dieses Plugin als Intro irg.wie benutzen? also das wenn man ein neues SPiel startet man ein offenes Buch hat wo die story drin beschrieben wird etc?

    Wenn Pixeldrama einen Scriptcall oder PluginCommand preis gibt, wie man die Bücher direkt öffnen kann, dann geht das.


    Und es müsste noch eine Möglichkeit geben, dass der Spieler das Buch bis zuende durchblättern muss, ohne es vorher schließen zu können.

    Sonst würde sich das Buch öffnen und der Spieler drück ESC und schließt somit das Buch wieder. Das müsste dann irgendwie verhindert werden. An diese beiden Dingen wäre ich auch äußerst interessiert, da mein Projekt über ein Tagebuch erzählt wird etc.


    EDIT: Zum öffnen auf der Map ohne Buch nutzt einfach den ScriptCommand: $gameSystem.setupBook(X,Y,Z);
    X = bookID
    Y = bookCover

    Z = bookImage (wenn keine dann einfach 'null' schreiben ohne ' ')




    Pixeldrama Ich verstehe nicht, wie man das mit der Karte, wie du es im Video gezeigt hast, hinbekommt. Du sagst nur, dass man die Seitenzahlen und Autor etc weglassen kann. Aber wie bekomme ich das Bild in das geöffnete Buch/Karte?

    Wills du eine Karte anzeigen, wie in der Demo-Version gezeigt, brauchst du dem Buch in der myBooks.json nur eine Id zuweisen. Dazu kannst du dann variiren, ob du autor und/oder title zusätzlich einträgst, musst du aber nicht. Lässt du jetzt die Seitenzahlen komplett weg, wird keine Seitenzahl angezeigt und man kann das Buch/Karte lediglich öffnen und betrachten.

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von StyX ()