Ergebnis 1 bis 11 von 11

Thema: Mausscript

  1. #1

    Mausscript

    Es gibt hier zwar eins, aber dies erfüllt das, wass ich will nicht 100%.
    Es besitzt nähmlich ein Problem...
    Nämlich benutze ich Karten, die größer als 20X15
    Und dies ist das Problem:
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    WWWWWWWWWWWWWWWWWWWWW
    Die vielen W´s ist die Karte.
    Der bunte Berreich[Rot, Orange undGelb] ist die Sicht, die man gerade hat. Warum ich die jetzt bunt gemacht habe, weiß ich nicht mehr
    Nun komm aber das besagte Problem.
    Die obere und untere Karte ist die selbe.
    Aber die Sicht ist jewals um ein W verschoben.
    Trozdem haben die grüne und blaue W´s die gleichen Koordianten.
    Und daher, wo man die Karte scrollen kann, kann ich dies nicht mit
    Variable X => 123
    Variable Y =< 185
    bestimmen, sonst würde dies ja bei jeder Srollstellung gehen.
    Genauer kann ich dies nicht erklären.
    Das folgende Script soll so erweitert werden, dass die Koordianten sich nicht auf das Fenster sondern auf die Karte bestimmen:

    Ich will es einfach mit Copy + Paste durch das alte ersetzen wollen und nicht das halbe Spiel umprogranmmieren müssen.

    Belohnung:
    Held im Spiel >Noch geheim<*
    Creditseintrag

    Der Held wird als besonderer Einheit - wie in Stracraft Jim Raynor - gewertet.

  2. #2
    Ich habe damals mit Absicht das Mausscript nur die Screen-Koordinaten ausgeben lassen, denn mit diesen lässt sich prinzipiell am meisten anfangen. Eine Umrechnung in Maker-Koordinaten wäre möglich, umgekehrt geht das schon nicht mehr.

    Ich werde mich heute nachmittag mal dransetzen und die Makerkoordinaten (ich denke du meinst damit die X- und Y-Position des Tiles, über dem sich gerade der Mauszeiger befindet, oder?) als zusätzliche Ausgabe einbauen.

  3. #3
    achso.
    Danke im Vorraus.
    Dann wird wohl nur die Heldenrolle vergeben^^

  4. #4
    alsoooooo....
    Was ist jetzt mit der Zúsatzfunktion?

  5. #5
    also, was ist jetzt mit der Erweiterung?
    Schon lange aber vergebens
    warte ich auf deine .... ähhh.... erweiterung

    Ohne diese werde ich nicht arbeiten können weiter,
    ohne dich werde grauenhaft ich scheiter^^

    <>Okaj, die Deutsche Sprache kann ich besser^^<>

  6. #6
    Entschuldigung, daß es etwas länger gedauert hat.

    Hier ist das neue Mouse-Script mit der Erweiterung:

    Es gibt jetzt zwei Möglichkeiten wie du an die Tile-Koordinaten unter dem Cursor kommst.
    Die erste ist es, die Koordinaten direkt abzufragen:
    Code:
    Mouse.tileX()
    Mouse.tileY()
    Diese beiden Funktionen geben jeweils die X- bzw. die Y-Koordinate der Kachel zurück, über der sich momentan der Cursor befindet.
    Die zweite Möglichkeit ist diese Koordinaten anstatt der Pixelkoordinaten in Game-Variablen abzulegen.
    Dafür muss der "GameTyp" einmal umgestellt werden.
    Code:
    Mouse.setGameType(value)
    Mögliche Werte für "value" sind 0 (Pixelkoordinaten) und 1 (Kachel-Koordinaten). Es gibt auch zwei Konstanten namens GAME_PIXEL und GAME_TILE die dafür verwendet werden können.
    Es ist nur möglich die Pixel-koordinaten oder die Tile-Koordinaten in Game-variablen abzuspeichern, beides zugleich geht nicht. Der aktuelle Typ kann mit
    Code:
    Mouse.gameType?()
    abgefragt werden.
    Logischerweise muss Mouse.update weiterhin regelmässig ausgeführt werden um die Koordinaten korrekt wiederzugeben. Insbesondere nach einem Mapwechsel sollte Sorge dafür getragen werden, daß Mouse.update einmal ausgeführt wird, bevor auf Mouse.tileX oder Mouse.tileY zugegriffen wird. (Solltest du die Koordinaten aber über Game-Variablen ansprechen, sorgt das Script schon selbst dafür)

    Die Berechnung der Kachel-Koordinaten sollte auch in Scenes funktionieren die keine Map sind. In diesem Fall wird so verfahren wie auf einer 20x15 Map, zumindest theoretisch.

    Es waren zwei minimale Änderungen an anderen Klassen notwendig. Namentlich Scene_Map und Spriteset_Map um die nötigen Informationen auslesen zu können. Die Änderungen sind in obigem Script schon enthalten, aufgrund dessen könnten aber Änderungen an diesen Klassen theoretisch zu Problemen führen. (Allerdings unwahrscheinlich) Da das kein Stil ist, den ich persönlich mag, ist diese Änderung von mir nicht "offiziell" und es gibt auch keine Garantie für Support sollten Konflikte mit anderen Scripten auftreten.
    Sollte das Script aber sonst buggy sein (zB in manchen Fällen falsche Werte zurückgeben) darfst du dich aber gerne melden.

  7. #7
    kann man jetzt immer noch die normale Option verwenden?
    Wenn ja, welche Variablen benutzt die neue Option?

  8. #8
    Zitat Zitat
    Es ist nur möglich die Pixel-koordinaten oder die Tile-Koordinaten in Game-variablen abzuspeichern, beides zugleich geht nicht.
    Du kannst nur eine der beiden Arten von Koordinaten in Game-Variablen ablegen, in beiden Fällen werden dieselben Variablen benutzt.

    Ansonsten kannst du die Tile-Koordinaten über Callscript auch selber in Game-Variablen abspeichern:
    Code:
    $game_variables[10]=Mouse.tileX
    $game_variables[11]=Mouse.tileY

  9. #9
    Leute, Frage:

    Ich habs mir grad in einem Testspiel importiert und prompt nachdem ich die Maus initialisiert habe mit
    Code:
    Mouse.initSystem(0x03)
    Mouse.setCursor("Maus.png")
    Mouse.enableShow()
    Mouse.enableSaveToGame(49,50)
    Mouse.setOriginX(0)
    Mouse.setOriginY(0)
    kommt beim aufrufen von
    Code:
    if Mouse.pressed?(MOUSE_LEFT)
    die Fehlermeldung:
    "Syntax Error occured while running the script"

    Nebei erwähnt, ich kann es auf diese if-Bedingung beschränken, da ich jedwegen anderslautenden Code darunte entfernt habe und alles darüber wird mit einer Textbox getrennt und erst danach der Fehler...

    Bitte um Hilfe!

    Edit: Bevor die Frage kommt: das 'end' hab ich natürlich nicht entfernt

    LG Tidloc

  10. #10
    Der Fehler kommt dadurch, daß der Maker den Inhalt von "Call Script" zeilenweise von Ruby interpretieren lässt und dann ifs ohne ends natürlich Probleme verursachen.
    Kurz gesagt, innerhalb der Call Script Box verwendet man generell keine If oder Schleifen.

    Wenn du überprüfen willst ob die linke Maustaste gedrückt ist benutze einen Conditional Branch. Dort kannst du auf der 4. Seite eine Script-Bedingung setzen, in dem Fall dann einfach den Funktionsaufruf ohne das extra if.

  11. #11
    Aja, jetzt gehts!

    super, danke für die Info!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •