Beiträge von Mr. Fu

    Hi Markus,


    schau mal in der Datenbank nach welche Passierbarkeit dein Dachtile hat bzw. schau mal auf der Map auf welcher Ebene das Event sitzt. Wenn bei dem Event "unter dem Spieler" eingestellt ist, ändere das mal auf "über dem Spieler". Bei den Tiles verhält es sich ähnlich. Stern bedeutet über dem Spieler, X bedeutet gleiche Ebene und ein Kreis bedeutet unter dem Spieler.

    Also möchtest du, dass immer das passiert was aktuell nur passiert wenn es keinen Spielstand gibt? Sollte hiermit gehen:


    Code
    1. (function () {
    2.     Scene_Boot.prototype.start = function () {
    3.         Scene_Base.prototype.start.call(this);
    4.         SoundManager.preloadImportantSounds();
    5.         this.checkPlayerLocation();
    6.         DataManager.setupNewGame();
    7.         SceneManager.goto(Scene_Map);
    8.         this.updateDocumentTitle();
    9.     };
    10. })();

    Das ist wohl nicht vorgesehen. Es gibt jedoch eine Möglichkeit, dafür musst du aber ein Systemplugin ändern. Der Nachteil daran ist, dass sich die Textbreite dann nicht mehr an den vorhandenen Platz anpasst, es können sich also einige Kommandos überlagern.


    Im Plugin


    rpg.windows.js


    muss die Zeile 1412


    Code
    1. this.drawText(this.commandName(index), rect.x, rect.y, rect.width, align);


    folgendermaßen geändert werden:


    Code
    1. this.drawTextEx(this.commandName(index), rect.x, rect.y, rect.width, align);


    Edith: Markiere dir diese Zeile aber mit einem Kommentar


    Code
    1. // hier irgendwas schreiben


    damit du die Zeile mit der Suchfunktion wieder findest, falls du die Änderung irgendwann mal Rückgängig machen willst.

    Wenn du mit der Maus auf dieses Berechnungsfeld fährst, erscheint kurz darauf ein Infofenster. Darin steht was die Abkürzungen bedeuten (Du könntest theoretisch auch den Glückswert einrechnen lassen). Als Formel kannst du jede Mögliche Berechnung nutzen, von daher hat man da schon sehr viel Spielraum und Einflussmöglichkeiten auf die reine Berechnung. Aber wie Cosmo schon sagte, kein Komma sondern einen Punkt verwenden. Wenn du die Range anpassen willst, dann einfach den Prozentwert bei "Abweichung" entsprechend ändern. Wenn du die Range nicht von dem Prozentwert, sondern von festen Werten abhängig machen willst, dann den Prozentwert auf 0 setzen und in das Berechnungsfenster


    Code
    1. Math.floor(Math.random() * (max - min + 1)) + min

    eingeben. Für "max" und "min" die entsprechenden Werte eingeben. Ein Beispiel falls relativ kleine Werte verwendet werden:


    Code
    1. Math.floor(Math.random() * (10 - 2 + 1)) + 2 + a.atk - b.def

    In diesem Fall bewegt sich der Grundschaden zwischen 2 und 10, der Angriffswert vom Angreifer wird addiert und der Verteidigungswert des Angegriffenen subtrahiert. Der Vorteil dieser Methode für die Range ist, dass die Range sich berechnet bevor die Verteidigung eingerechnet wird. Mit der normalen Formel bringt die Range nix, falls bei der Grundschadenberechnung 0 heraus kommt.

    Beispiel: atk = 4, def = 8, bei normaler Formel ist beides 16, somit kommt 0 raus und da brächte auch eine Range von 100% keinen höheren Schaden, bei dieser Formel könnten dennoch zwischen 0 und 6 Schaden entstehen. Das ist dann Geschmackssache was einem da besser gefällt.


    Ansonsten kann ich mich nur Dizzy anschließen.

    Joa, ist was ganz einfaches. Bei deinem EV005 ist immer Seite zwei aktiv, da sie keine Bedingung hat und eine höhere Seitenzahl hat als Seite eins. Entweder du vertauschst die beiden Seiten, oder löschst einfach Seite zwei, da sie keinen Nutzen hat. Funktioniert beides.

    Ich gehe mal davon aus, dass du auf jeder Map für jeden Helden ein eigenes Event hast, das ihn darstellt falls er nicht gesteuert wird und sich auf der Map befindet. Dieses Event bzw. jede Seite des Events einfach auf "unter den Spieler" setzen und dann kann man drüberlaufen.

    PS: Im MV gibt es ja jetzt, aber wie kann ich im VX Ace suchen, ob ich irgendwo die Variable noch benutzt habe?

    Keine Ahnung. Ich denke da musst du jedes Event durchsuchen, was irgendwie diese Variable enthalten könnte...


    Eine Idee hätte ich noch: Die Helden, die aktuell nicht gesteuert werden, könnten durchlässig sein, sodass man sich mit ihnen den Weg nicht versperrt. Ich selbst platziere sie zwar immer so, dass die nicht im Weg umgehen, aber bei den LetsPlays von Murdo habe ich gesehen, dass das ganz schön nervig sein kann ;)

    Ich hab nen Bug entdeckt, es geht mal wieder um die Kneipe ;)

    Ich hab am ersten Tag 5x Bier gekauft. Seitdem aber hole ich mein Bier nur vom Einsiedler. Am Tag 7 wollte ich die Massen an Gold ausgeben und Bier kaufen, die Kneipe ist aber leer... Habe zum Glück für jeden Tag einen Extra-Spielstand angelegt. An Tag eins waren es nur noch 9 Bier in der Kneipe und am Tag 2 war sie leer... Hast du den Einsiedler irgendwie mit der Kneipe verknüpft? Oder nutzen die die gleichen Variablen fürs Bier?

    Viel Zeit habe ich zwar aktuell nicht, aber ich denke innerhalb der nächsten zwei Wochen kann ichs einrichten.


    Du kannst auch versuchen die select-Funktion entsprechend umzuschreiben bzw. sie für dein window neu zu definieren. Die wird immer ausgeführt, wenn eine Auswahl markiert wird.


    Code
    1. var winselect = Window_Selectable.prototype.select;
    2. dein_fenster.prototype.select = function(index) {
    3.     winselect.call(this);
    4. // hier beliebigen Code einfügen
    5. };

    Die Hilfedatei habe ich gefunden, hätte ich natürlich dazu schreiben können, dass das als Alternative dazu gelten soll. Ich persönlich mag es halt, wenn Sachen direkt im Spiel erklärt werden. Darum auch wahlweise, damit diese Hilfe ein- und ausgeschaltet werden kann.


    Mir ist noch etwas eingefallen: Wenn man am Turm den nächsten Angriff abschätzt wäre es schön, wenn auf der Weltkarte die Felder mit Orks markiert werden. Und nach mehrmaligem Ausschau halten könnte dann auch ne Zahl mit dran stehen, die angibt wie viele Orks auf dem Feld sind. Falls diese Funktion in Kombination mit dem normalen Ausschau halten zu stark sein sollte, könnte das auch als zweite Funktion des Turms eingebaut werden, damit dafür ebenfalls noch AP aufgewendet werden müssen.

    Hi Boros,


    ich hab schon länger damit geliebäugelt das Spiel mal zu zocken. Jetzt hab ich es mal angefangen. Vorab: die Idee und die Mechaniken finde ich klasse!


    Verbesserungsvorschläge:

    - Wahlweise eine kleine Einführung am Anfang. Also quasi ne kurze Erklärung welche Tasten welches Menü aufrufen, grundlegende Erklärung der wichtigsten Mechanismen und kurze Erklärung der Klassen.

    - Beschriftungen auf der Weltkarte. Es wäre super, wenn die bekannten Gebäude auf der Weltkarte beschriftet werden. Also dass von Anfang an klar ist wo der Bauernhof, der Holzfäller, Steinbruch usw. ist. Die Helden leben ja schon ne Weile dort, da kann man davon ausgehen, dass die sich ein bisschen in der Umgebung auskennen.

    - Anzeige der besuchten Orte. Ich meine damit ein weiteres Menü oder eine Tafel wo man einsehen kann, ob man heute schon z.B. die Erzmine besucht hat. Dann braucht man sich das nicht merken wenn man mal eine längere Zeit nicht zum Spielen kommt.

    - Bzgl der Entdecker. Eine weitere Möglichkeit wäre es, dass die nur für jeden zweiten Mapwechsel einen AP zahlen und die gründliche Suche so bleibt wie sie ist. Dann können die nämlich wirklich ordentlich erkunden und man kann die Kämpfer gezielt nachschicken um die Orks platt zu machen.


    Bugs melde ich dann wenn ich welche finde.

    Hi Sajiki,


    das Fenster mit der Auswahl müsste eine _index Variable haben. Damit kannst du abfragen, was gerade markiert ist.


    Code: Beispiel
    1. if (dein_fenster._index === 1) {
    2. // hier code rein füllen
    3. }


    Damit fragst du ab, ob der erste Eintrag markiert ist. Wenn der index 0 ist, dann ist keine Auswahl markiert.

    Ich glaube ich habs. Kann das allerdings nicht testen, das obliegt dann dir ;)


    Also, du erstellst ja die commandSolo Funktion für Scene_Menu:

    Code
    1. Scene_Menu.prototype.commandSolo = function() {
    2. this._statusWindow.setFormationMode(false);
    3. this._statusWindow.selectLast();
    4. this._statusWindow.activate();
    5. this._statusWindow.setHandler('ok', this.onSoloOk.bind(this));
    6. this._statusWindow.setHandler('cancel', this.onPersonalCancel.bind(this));
    7. };


    Willst dann aber über Scene_Battle darauf zugreifen:

    Code
    1. var inBattleStartMenu = Scene_Battle.prototype.createPartyCommandWindow;
    2. Scene_Battle.prototype.createPartyCommandWindow = function(){
    3. inBattleStartMenu.call(this, arguments);
    4. this._partyCommandWindow.setHandler('autoClass', this.commandSolo.bind(this));
    5. }


    Das funktioniert nicht, da Scene_Battle nicht von Scene_Menu erbt. Es sollte klappen, wenn du die Funktionen onSoloOk und commandSolo Scene_Base zuweist, anstatt Scene_Menu.


    Die setHandler-Funktion ist ne Funktion für die windows, also passt das mit dem partycommandwindow. Zeile 10 und 11 müssen trotzdem getauscht werden, damit dieses Fenster auch existiert.


    Ich hoffe das klappt so.

    Streiche mal in Zeile 10 das partycommandwindow. Also dass es


    this.setHandler...


    heißt. Das partycommandwindow dürfte zu diesem Zeitpunkt noch nicht existieren, somit kannst du auch die setHandler-Funktion nicht ausführen. Zumal diese Funktion, glaube ich, nicht für die windows sondern für die scenes gedacht ist.


    Hab das aber nicht getestet, da ich aktuell nicht an meinem PC bin.