Schiff-Fähigkeiten und -werte

  • Hallo zusammen,


    ich arbeite gerade an meinem ersten kleinen Spiel. In diesem Spiel nutzt man ein Schiff, welches man verbessern können soll und was eigene Kampfsequenzen hat.

    Hier stoße ich aber noch auf Probleme, die ich nicht ganz gelöst bekomme.


    1. Das Schiff soll mehrere Fähigkeiten haben: Kanone abfeuern, nachladen und Schiff reparieren.
    Die Kanone abfeuern ist quasi der Standard-Angriff, für diesen habe ich die Werte des normalen Angriffs genutzt. Hier möchte ich jedoch die Kanone verbesserbar machen. Man soll mit der Kanone mehr Schaden machen können. Leider verstehe ich hier noch nicht ganz wo ich die Variable für den Schaden des Angriffs eintragen kann. Ausserdem soll nach dem abfeuern der Kanone, diese wieder nachgeladen werden müssen. Wie stelle ich es also ein, dass man diesen Skill erst wieder nutzen kann wenn der Skill "nachladen" genutzt wurde?


    2. Das Schiff steht derzeit ausserdem als Klasse drin. Dadurch bekommt es leider EXP und Wertezuwachs. Ich würde gerne diese Werte aber flach haben und sie über die Variablen steuern. Wie baue ich das ein?


    Schonmal danke für die Antworten !

  • Hallo,


    ich kann dir bei allem recht gut helfen. :)
    Bevor ich aber jetzt loslege und dir alles recht kompliziert erkläre, würde mich erstmal dein Angriffs-Fähigkeit vom Schiff interessieren. Könntest du einen Screenshot davon posten? Da wir hier mit der Schadensformel arbeiten müssen.

    Ich werde dir allgemein hier mehr eine Lösung für etwas Fortgeschrittene zeigen müssen, da es anders nicht leichter Umzusetzen ist.


    Fragen zu deinem Punkt 1:

    Hat das Schiff nach wie Vor den Standard-Angriff zur Auswahl im Kampf, oder hast du es bereits hinbekommen, dass da nur die Fähigkeit zur Auswahl stehen?

    Soll es denn auch noch den Standard-Angriff zur Auswahl haben?
    Wie soll denn das Upgrade für die Kanone aussehen? Soll es einfach um X mehr Schaden machen, oder soll der Angriff erhöht werden?

    Was macht die Fähigkeit Schiff reparieren?


    Zu Punkt 2:

    Du kannst das Maximale Level beim Helden-Reiter in der Datenbank auf 1 setzen. Dadurch erhält es keine XP und keine Level und behält die Werte von Level 1.

    Welche Werte willst du genau über die Variablen steuern und soll das Schiff alle Werte besitzen die ein Character haben kann, oder willst du da keine Werte nutzen?


    Wenn du mir diese Fragen alle beantworten könntest, kann ich dir liebend gern noch weiter helfen. :)


    Liebe Grüße,
    Flipely

  • Hallo FlipelyFlip,


    danke für die Hilfe.

    Zu deinen Fragen:


    ?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false


    So sieht der Kanonenskill bisher aus. Es ist quasi Wort für Wort die Einstellung dessen was unter "0001 Angriff" stand


    Die Klasse hatte ich tatsächlich mit etwas herumprobieren schon hinbekommen. Die Kurve ist jetzt bei 0, auch wenn mich wundert, dass ein paar der XP Werte trotzdem noch bei 10 stehen


    ?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false


    Die Variablen habe ich derzeit notdürftig als "Ausrüstung" eingetragen. Das heißt, da das Schiff als Charakter im Spiel eingetragen ist, zieht er sich die Rumpfverbesserung derzeit als Rüstung und die Kanone als Waffe an.


    ?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false



    Der Standardangriff scheint gesperrt zu sein, leider habe ich es bis jetzt aber noch nicht hinbekommen, dass der Kanonenskill als Angriff steht und der Rumpf scheint auch derzeit nicht aktiv zu sein.


    Quote

    Wie soll denn das Upgrade für die Kanone aussehen? Soll es einfach um X mehr Schaden machen, oder soll der Angriff erhöht werden?

    Es soll nur der Schaden erhöht werden. Derzeit habe ich mehrere Waffen als Kanone eingetragen, die man bei der Werft upgraden kann. Dabei wird einfach die derzeitige Waffe entfernt und eine neue Waffe hinzugefügt. Gibt es hier eigentlich eine Funktion, dass der Charakter automatisch die bekommene Waffe ausrüstet?


    Quote

    Was macht die Fähigkeit Schiff reparieren?

    Das ist quasi ein Heilzauber, mit dem man das eigene Schiff notdürftig flicken kann als seine Aktion. Hier habe ich mich einfach am Heilzauber bedient und die MP Kosten enfernt und das Ziel auf den Charakter gelegt.


    Quote

    Du kannst das Maximale Level beim Helden-Reiter in der Datenbank auf 1 setzen. Dadurch erhält es keine XP und keine Level und behält die Werte von Level 1.

    ah danke. Ich war zwar darauf gekommen die Kurve auf 0 zu setzen, aber das Level auf 1 zu begrenzen hab ich nicht im Kopf gehabt ^^


    Quote

    Welche Werte willst du genau über die Variablen steuern und soll das Schiff alle Werte besitzen die ein Character haben kann, oder willst du da keine Werte nutzen?

    Also derzeit habe ich 3 Werte: Kanone (erhöht den Schaden), Rumpf (erhöht die maximale HP) und Laderaum (erhöht die Ladekapazität)

    Kanone und Rumpf wären für den Kampf wichtig, die Ladekapazität konnte ich bereits vernünftig einbauen. (Die Ladekapazität ist für den Handel gedacht. Also wenn man eine Kiste Bananen an Bord nimmt kostet dass dann einen Platz. Das ist nicht für normale Inventargegenstände gedacht)

  • Hallo,

    ich hatte mir etwas Zeit gelassen mit dem ganzen, da ich mir einiges überlegen musste, wie man das am besten Umsetzt. Ich bin schlussendlich zu dem Entschluss gekommen, dass hier ohne die Unterstützung von Plugins und nur den Maker-Mechaniken das ganze nicht ganz so leicht sein wird. Ich kann dir aber wenn gewünscht auch hier eine Lösung erarbeiten.


    Ich habe die Plugins bereits als ZIP-File angehängt, diese müsstest du alle in dein Projekt laden und aktivieren um das ganze voll ausnutzen zu können. Ich werde auch in dieser Erklärung durch alles genau durch gehen.


    Genug der Worte, fangen wir nun mal an:


    1) Setup der Plugins

    Sobald du alle Plugins in deinem Plugin Ordner hast, öffnest du im Maker den Plugin-Manager und platzierst ganz oben erstmal das Plugin "FFP_CorePlugin". Du musst hier nichts einstellen. Es hilft lediglich bei einem Plugin und zwar dem nächsten das wir nun hinzufügen, dem "FFP_SkillActorCommands".

    In diesem Plugin gibt es ein paar Punkte die eingestellt gehören. Du hast einmal folgende beiden Punkte zur Auswahl:

    Bei den actor ID(s) wählst du den (oder mehrere) Helden aus, die als Schiff funktionieren sollen. Du hast hierfür ein Dropdown-Menü um dir die entsprechenden Helden auszuwählen.

    Bei Skill ID Commands wählst du die Skills aus, die der Held zur Auswahl im Kampf hat. Hier öffnet sich ebenfalls ein Dropdown-Menü in dem du die entsprechenden Skills auswählen kannst. Der Held muss diese Skills nicht lernen, diese stehen dann im Kampf automatisch zur Verfügung. Sobald dies erledigt ist, gehen wir weiter zum nächsten Plugin.

    "FFP_SkillReloadSystem" gibt dir ebenfalls wieder eine kleine Einstellmöglichkeit, welche du hier sehen kannst:

    Hier hast du nur die Auswahl des Switch ID (Dropdown-Menü). Dieser entscheidet im Kampf, ob der Nachladen-Skill bzw. der Abfeuern-Skill Auswählbar ist. Ist der Switch aus, muss Nachgeladen werden, ist der Switch an, so kann Angegriffen werden, ist der Switch aus, so muss Nachgeladen werden.

    "FFP_MaxHPExtender" wird als nächstes Konfiguriert. Hier kann man die ID der Variable auswählen (Dropdown-Menü), welche man für das Verfolgen des Levels des Upgrades nutzen kann.


    Somit haben wir alle wichtigen Plugins hinzugefügt. Ich habe dir noch ein kleines Extra-Plugin hinzugefügt, das "FFP_SpecialCodeNames". Dieses hat keine Einstellungsmöglichkeiten, jedoch ermöglicht es dir auch in Namen, Skills, Items, Waffen, Rüstungen und Statusveränderungen ebenfalls die Message Box Codes wie \v[id] usw. zu verwenden. Ich kann es dir empfehlen, da es die Anzeige der Level überall ermöglicht.


    2) Setup der Datenbank

    a) Skills


    Wir definieren hier nun 2 Skills. Einmal die Kanone und einmal das Nachladen. Zuerst widmen wir uns dem Skill Kanone.

    Ich habe den Namen des Skills "Kanone Lv\v[15]" genannt, da ich hier jetzt die Variable 15 nutzen werde für das Level. Du kannst natürlich jede beliebige Variable nutzen.

    Bei der Schadensformel habe ich folgendes gemacht: (a.atk * 4 - b.def * 2) * $gameVariables.value(15)

    Es wird zuerst der normale Schaden berechnet (wie beim normalen Angriff) und dann wird der Schaden * dem Wert von Variable 15 multipliziert. Dadurch machst du kontinuierlich mehr Schaden. Jedoch würde ich empfehlen, die Variable auf 1 zu setzen und die Kanone auf Lvl 1 starten lassen, sonst würdest du 0 Schaden machen.

    Du kannst diesen Skill natürlich anpassen wie du es gern hättest, falls du weiterhin Hilfe bei den Schadensformeln brauchst, bzw. wissen willst, was du da alles machen kannst, schau einfach im Tutorial-Bereich nach, ich habe dort 2 Tutorials zu Schadensformeln geschrieben.

    In der Hinweis-Box habe ich noch ein <use load> vermerkt, dies weist dem Skill die Eigenschaft zu, nur dann einsetzbar zu sein, wenn der Switch, den du im Plugin "FFP_SkillReloadSystem" definiert hast, Ein ist.


    Schauen wir weiter zum Skill fürs Nachladen.

    Hier müssen wir leider etwas tricksen, damit das ganze Funktioniert. Du kannst als Ziel theoretisch angeben was du willst, aber ich empfehle dir, den Benutzer selbst hier zu wählen. Als Schadensformel schreibst du lediglich reload() rein. Damit hast du bereits den Skill Nachladen fertig. Den Rest macht das "FFP_SkillReloadSystem".


    Den Skill für Schiff reparieren hast du bereits umgesetzt, zumindest gehe ich davon aus, so wie du es geschrieben hattest.


    b) Die eine Rüstung

    Damit dein Rumpf im Level ansteigen kann, würde ich dir empfehlen, das wie folgt umzusetzen:

    Ich habe hier eine Rüstung die "Rumpf Lv.\v[15]" heißt. Die \v[15] kommt daher, da hier die Variable 15 verwendet wird, weil ich diese Standardmäßig im Plugin "FFP_MaxHPExtender" hinterlegt habe. Du kannst hier deine definierte Variable hinterlegen.

    Wichtig ist jedoch die Hinweis-Box. Dort habe ich nun folgendes Hinterlegt:
    <eval mhp>

    value += 50 * varLevel();
    </eval mhp>

    Diese Zeile macht folgendes:

    es werden immer 50 HP hinzugerechnet für jedes weitere Level von der im "FFP_MaxHPExtender" definierten Variable hinzu kommen. Du kannst die Formel so bearbeiten wie du willst, wenn du die Variable aus dem Plugin nutzen willst, kannst du jederzeit varLevel() verwenden.

    c) Der Held

    Nun stellen wir noch den Helden ein, damit es hier nicht zu Problemen kommen würde.

    Wichtig ist hier eigentlich, dass du dem Helden die entsprechend eingestellte Rumpf-Ausrüstung gibst und alle Slots sperren lässt. Damit er keine EXP bzw. Level erhält, setze das Max Level auf 1. Dadurch bist du dann eigentlich fertig mit dem Helden.

    3) Abschluss

    Mit all diesen Einstellungen und Plugins hast du es nun so, dass du alle deine gewünschten Funktionen zur Verfügung hast. Du kannst das gesamte gern für Nicht-Kommerzielle bzw. auch für kommerzielle Zwecke nutzen.

    Der Credits-Eintrag geht hierfür an Mr. Fu und FlipelyFlip.


    Falls du irgendwelche Fehler in den Plugins findest bzw. du hier noch Probleme beim Umsetzen hast, gib einfach Bescheid.


    lg Flip

  • danke für die Plugins !

    Die Kanone und das Nachladen scheint damit nun auch ohne Probleme zu funktionieren. Ich habe aber derzeit noch Probleme mit dem Rumpf. Ich habe die Variable vom Rumpf auf 33 gesetzt - sowohl im Plugin als auch beim Kauf. Leider behält der Spieler trotzdem seine HP.

    ?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false


    Quote

    Mit all diesen Einstellungen und Plugins hast du es nun so, dass du alle deine gewünschten Funktionen zur Verfügung hast. Du kannst das gesamte gern für Nicht-Kommerzielle bzw. auch für kommerzielle Zwecke nutzen.

    Der Credits-Eintrag geht hierfür an Mr. Fu und FlipelyFlip.

    Die Credits gebe ich gerne. Dafür würde ich gerne im Titelbildschirm auch einen Credits-Button machen. Wie genau mache ich das?



    Und ich hätte noch eine Frage. Ich würde gerne den gegnerischen Schiffen ebenfalls einen nachladen-skill für deren Attacken geben. Funktioniert das genauso wie beim Helden?

  • Ich finde das sehr gut strukturiert! Würde es dir etwas ausmachen, eine Kopie deines Beitrags unter passender Überschrift auch bei unseren Tutorials einzutragen, damit jemand, der etwas Vergleichbares versuchen möchte, leichter auf diese übersichtliche Antwort samt den passenden Plugins stößt?


    Und hast du die Plugins etwa eigens für das Projekt geschrieben? :erstaunterork:

  • Hallo,

    fangen wir mal mit Baxeda an:
    Ich sehe da nicht ganz so den Sinn dahinter, wenn der selbe Text nochmal in der Tutorial-Sektion steht ^^"

    Aber ja, ich hab die Plugins extra dafür geschrieben.


    Snorri:


    bitte gerne :)


    Die Kanone und das Nachladen scheint damit nun auch ohne Probleme zu funktionieren. Ich habe aber derzeit noch Probleme mit dem Rumpf. Ich habe die Variable vom Rumpf auf 33 gesetzt - sowohl im Plugin als auch beim Kauf. Leider behält der Spieler trotzdem seine HP.

    Da habe ich wohl den Rumpf etwas falsch Verstanden. Ich dachte, du würdest den gern so haben, dass du dies Zusätzlich zu den HP bekommst.


    Die Credits gebe ich gerne. Dafür würde ich gerne im Titelbildschirm auch einen Credits-Button machen. Wie genau mache ich das?

    Das geht ebenfalls über ein Plugin, da dürfte es glaube ich schon welche geben.


    Und ich hätte noch eine Frage. Ich würde gerne den gegnerischen Schiffen ebenfalls einen nachladen-skill für deren Attacken geben. Funktioniert das genauso wie beim Helden?

    So wie ich das Plugin derzeit aufgebaut habe, würde es nicht gehen. Dazu müsste ich das gesamte Plugin anders aufbauen. Du kannst mir gern mal hier oder per PN das ganze Beschreiben, wie du es dir vorstellst, dann können wir da nochmal drüber quatschen, wie man das Umsetzen könnte.


    lg Flip

  • Da habe ich wohl den Rumpf etwas falsch Verstanden. Ich dachte, du würdest den gern so haben, dass du dies Zusätzlich zu den HP bekommst.

    Also die Idee war, dass mit dem Aufwerten des Rumpfs die maximale HP erhöht wird. Also zum Beispiel von 550 HP auf 600 HP. Mehr sollte es nicht tun.


    So wie ich das Plugin derzeit aufgebaut habe, würde es nicht gehen. Dazu müsste ich das gesamte Plugin anders aufbauen. Du kannst mir gern mal hier oder per PN das ganze Beschreiben, wie du es dir vorstellst, dann können wir da nochmal drüber quatschen, wie man das Umsetzen könnte.

    Okay, dann hole ich mal ein klein wenig aus, damit man etwas mehr Kontext zu dem Spiel hat. :D


    Ich möchte ein kleines Piratenspiel bauen. Dabei steht bei mir nicht die Story im Fokus (ich bin immernoch nicht ganz sicher, ob ich dem Spiel überhaupt eine richtige Main Story geben werde), sondern die Sandbox Open World. In der Welt gibt es 4 Fraktionen und Piraten, zusätzlich zum Spieler. Die Inselstädte werden zum Start des Spiels zufällig aufgebaut und an die Fraktionen verteilt. Städte können Produktions- und Servicegebäude haben wie Bananenplantagen, Rumdestillerien, Tavernen, eine Werft etc. Anhand dieser Gebäude errechnen sich der Verbrauch bzw der Vorrat der Städte und der Einkaufs- und Verkaufspreis. Das sorgt für eine lebendige Wirtschaft und man kann als Spieler eine Menge als Händler verdienen.

    Dazu gibt es dann Events, die auf die Welt Einfluss nehmen, wie ausgebrochene Kriege, bei denen die Städte dann übernommen werden können und wo ich der Spieler auch als Korsar anschließen kann.


    Den Großteil des Spiels ist man an Bord des Schiffes, wobei es auch kleinere Gebiete gibt, wo man als Charakter agieren kann. Der Fokus liegt aber eher auf dem Schiff.


    Für den Kampf hatte ich mir zuerst ein aktiveres Kampfsystem überlegt. Da aber die gegnerischen Schiffe dazu neigen zum Spieler zu blicken, funktioniert die Idee der Kanonenschüsse nicht so gut (bzw der Spieler kann zwar seitlich schießen, aber der Gegner müsste von vorne schießen) weshalb ich hier zurück zum klassischen Kampfsystem gegangen bin. In diesem klassischen Kampfsystem wird abwechselnd gehandelt, wobei der Spieler gegen mehrere Schiffe gleichzeitig kämpfen könnte. Dafür gibt es dann die Skills Kanonenschuss, nachladen, Schiff reparieren und Entermaneuver.

    Auf dem Land bleibt es jedoch bei einem aktiven Kampfsystem, da hier die Gegner auch in die richtige Richtung schauen können :D


    Zum upgraden selbst gibt es dann 2 verschiedene "Charaktere", die man aufwerten kann. Einmal das Schiff mit Kanone, Rumpfstärke und Ladekapazität. Und dann den Kapitän mit Pistole und Kleidung (vielleicht wird hier auch noch etwas geändert)


    Dazu kommen dann noch einige Aufgaben, die man erledigen kann, wie Transportmissionen und Schatzkarten.


    Das ist so etwa das Grundgerüst des Spiels



    Für den Bereich des Schiffs bräuchte ich nun entweder eine Möglichkeit, dass ich über Q (Backbord) und E (Steuerbord) die Kanonen abfeuern kann und dass die gegnerischen Schiffe ebenfalls sich so ausrichten, dass sie von der Seite schießen können. Oder ich handle es im klassischen Sinne ab und die Aufwertungen des Schiffs regeln einfach nur Werteveränderungen im jrpg Kampfmodus, sodass die Kanone den Schaden pro Attacke verbessert und der Rumpf die maximale HP verändert. Persönlich wäre mir ersteres sogar lieber, aber ich glaube, dass es eher schwierig umzusetzen ist (aber ich habe da auch bisher ohne Plugins gearbeitet)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!