Das schwarze Schloss

  • Soooo, nächste Frage, an alle die schonmal das Font im Spiel geändert haben. :D

    Also, was ich gern machen würde, wäre verschiedene Fonts bereitzustellen, von denen der benutzer sich einen aussuchen kann, aber ich hätte das gern schön dynamisch, sodass man es später vielleicht noch austauschen kann, über eine Variable gesteuert(falls möglich). Und am Besten ohne, dass ich den Tag \fn<FontName> in jede einzelne Textbox packen muss. Mit Yanfly's Plugin um die Fonts zu laden kann ich die ja schon ändern, aber mir ist grade noch schleierhaft, ob ich dafür irgendwo ne variable nutzen kann.


    Gruß,

    Solaiel

  • Im Prinzip müsste das relativ einfach sein. So wie ich das verstehe, wird die Schriftart über ihren Name angesteuert. Das heißt, du könntest ein Stringarray anlegen, in dem du die zur Auswahl stehenden Schriftnamen speicherst, und dann z.B. eine Variable setzen, über deren Wert dann auf den entsprechenden Index im Array zugegriffen wird; habe das zwar nur im XP gemacht, aber sollte nicht so schwer umzusetzen sein. Wenn du dann eine der game_variablen dafür nimmst, kannst du ganz einfach die Schriftart darüber steuern, in dem du den Wert der Variable über z.B. ein Event veränderst. Dann müsstest du nur noch die aktuell ausgewählte Schriftart als Standard für Textboxen festlegen. Wie genau du da was verändern musst, kann ich dir allerdings nicht sagen, da ich den Code nicht kenne; hoffe das hilft dir trotzdem weiter.

  • Ja, sowas in der Art hab ich mir auch gedacht. aber dafür müsste ich bei den yanfly plugins für fonts, etc statt nem string eine variable eingeben können, nur bin ich mir nicht sicher ob das so einfach geht, da diese dort in den Einstellungen schon ein string array sind.

  • Naja, normalerweise greifst du auf ein Array ja z.B. folgendermaßen zu: array[1]

    Wenn du nun statt der Zahl dort deinen Variablennamen reinsetzt, kannst du einfach den Wert der Variable ändern, dann wird ja automatisch auf den Index zugegriffen, der dem Zahlenwert der Variable entspricht. Da würdest du dann den Befehl in der Textbox nicht brauchen, wenn du z.B. eine game_variable da reinsetzt, da du die ja per event verändern kannst. Alternativ könntest du natürlich auch Zahlwerte statt des Fontnamens in dem Textboxbefehl annehmen und dann per case Abfrage die Font setzen, allerdings wäre das dann wieder so, dass du das in jeder Textbox angeben müsstest.

  • Ja, das könnte ich natürlich, aber dann müsste ich in jede Textbox ja dasselbe hinzufügen und das wollte ich, falls es geht umgehen.

    Man kann in yanflys core engine ja diesen Eintrag sehen :

    Ich überlege da, ob man den GameFont irgendwie an eine Variable redirecten kann. Denn der ändert ja auch den Font in Menüs, usw.

  • Ah, OK. Hab grade außerdem gemerkt, das dieser Default font nur Auswirkungen auf den Text der Direkt in Menüs dargestellt wird hat. Ich hätte da gern alles mit einer Vairable gesteuert, damit das schön zusammen passt, aber das geht wohl nicht. Außerdem müsste ich die Variable schon irgendwie füllen, während das Spiel noch reingeladen wird.

    Und irgendwie finde ich nichts wie man eine Variable bei Start des Spiels initialisieren kann, geschweige denn, wie in den Optionen veränderbar ist. Sonst wäre es vielleicht auch gut, wenn man das irgendwie über die Optionen ändern könnte, aber da hab ich noch keine Ahnung von.

  • Die Idee mit mehreren Schriftarten hatte ich auch schon mal, allerdings nach einer Dauer von wenigen Sekunden wieder verworfen.

    Ich bin einfach nicht sicher, wie die Texte dann in die Textboxen passen würden, je nach Schriftart :/

    Das heißt, man müsste sich als Entwickler JEDE einzelne Textbox mit JEDER verfügbaren Schriftart ansehen, um zu entscheiden, wo man die Zeilenumbrüche setzt. War mir persönlich zu viel Aufwand und deshalb bleibe ich bei einer einzigen Schriftart :)

  • Ich weiß was du meinst. Aber für diejenigen die es interessiert, ich hab herausgefunden wie man einfach den System Font ändern kann.

    Dazu braucht man nur per script :

    Yanfly.Param.DefaultFont = ['gamefont'];

    eingeben und anstelle des gamefont den namen des Fonts zu nehmen, den man nutzen will. Der Font ändert sich dann automatisch. Wie ich an den font für den Message Core ran komme muss ich noch schauen, falls ich mich nicht doch auf einen font fixieren will.

    Sowas zu haben hilft aber, für wenn man sich ein event bauen will, um verschiedene zu testen und man sich nicht so leicht entscheiden kann. Dann sieht man besser wie es ingame aussieht :D

  • Hi Leute,

    ich hab mal wieder ein Problem was nicht ganz so einfach ist. Glaub ich zumindest :D

    Ich arbeite momentan daran, dafür zu sorgen, dass manche Gegenstände keine Wirkung auf bestimmte Charaktere haben sollen.

    Klassisches Beispiel aus Vampires Dawn (weiß nicht ob das im 2. Teil wirklich abgefangen wurde) :

    Wenn man einen Söldner in die Gruppe mitnimmt, ist er Logischerweise kein Vampir, weshalb es für ihn eigentlich keinen Sinn macht ne Blutflasche zu trinken / benutzen und selbst wenn er es täte, hätte es keinen Effekt auf ihn. (zumindest keinen positiven :D )

    Weiß jemand wie ich es schaffen kann, bestimmte items für die Benutzung für Charaktere der Gruppe zu verbieten?

    Ich hab bereits von yanfly das plugin mit den Item Requirements probiert und das item auf Not Actor: 2 gesetzt, aber wenn man einen weiteren Actor in der Gruppe hat, für den das nicht gilt und man diesen dann als Party Leader setzt, kann dieser das Item auf alle verwenden. (was normal nicht gehen sollte)


    Es gibt auch die möglichkeit folgendes abzufragen:

    Code
    1. Eval: $gameActors.leader().name() !== 'Ralph'

    Gibt es auch einen Parameter, der im item Menu das Ziel des zu benutzenden items ausgibt? Das würde mein Problem glaub ich schon lösen.


    ...


    Ok, hab das grade ausprobiert und das bringt mich nicht weiter, da das ausgewertet wird, bevor man das item anklickt.
    Eine andere Möglichkeit wäre vielleicht dem Item verschiedene wirkungen zu geben, abhängig davon wer es einsetzt. Aber da bin ich momentan ratlos.


    Was ich eigentlich brauche wäre etwas, das beim auswählen, welcher Charakter das Ziel ist, entschieden wird, ob es ein bestimmter Charakter ist. Wenn ja, wird einfach der Sound abgespielt der bei Heilgegenständen kommt, wenn man voll ist.


    Gruß,

    Solaiel

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

  • Könnte man das nicht theoretisch über eine Abfrage machen, ob der Actor, auf den man das Item benutzen möchte, die und die Klasse hat, und wenn ja dann soll/soll nicht etwas passieren? Ansonsten, wenn es nur für spezifische Charaktere ist, könnte ich mir noch vorstellen, dass man für die in der Database definierten Charaktere die Benutzbarkeit auf jene definiert und dann guckt, ob der Actor, auf den das Item angewendet werden soll, gleich einem der zugelassenen Charaktere ist (bspw. über Name, Klasse, etc.), oder man macht das halt direkt über Names- oder Was-Auch-Immer-Abfrage, aber in wie weit das umsetzbar wäre kp, hoffe das hilft dir trotzdem bei deinen Überlegungen weiter.

  • Hmm, ich denk nicht, dass das wirklich was bringen würde. Ich versuche grade mit dem Plugin Formula Effects die Wirkung basierend auf dem Actor zu ändern.
    Momentan bekomm ich aber noch kein brauchbares verhalten hin.

  • So, ich hab mal wieder ein wenig ausprobiert und mich an einer Mechankik mit Nebel versucht.

    Genutzt hab ich dafür das Plugin OrangeOverlay, nur hab ich ein Problem.

    Ich wollte eine einfache Testmap basteln, auf der man nen Event hat, mit dem man den Nebel ein und ausschalten kann. Aber irgendwie lässt sich der Nebel nicht auschalten, wenn ich addfog genutzt habe. Ansonsten klappt beides ein einziges mal und ich kann den danach nicht wieder einschalten....

    Sehr misteriös. Hat da jemand vielleicht ein Beispiel zur Hand?


    Gruß,

    Solaiel

  • Hi Leute,

    ich wollte mal fragen, wie ihr das so seht, von wegen Schadensformeln im Game. Standardmäßig ist die Formel im MV ja:

    atk * 4 - def * 2

    Sollte ich die erstmal so lassen, oder lieber anpassen?

    Gruß, Solaiel