Ergebnis 1 bis 20 von 2334

Thema: Programmwunsch und -erstellungsthread #2

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Eine Sache würde mit einem Patch (von denen ich keine Ahnung hab) bestimmt gehen: Das Spiel auf einer schwarzen Map starten, aus einer Datei die Koordinaten und Map-ID einlesen und dann den Spieler auf die Position teleportieren.

  2. #2
    Oh, smart. Da hatte ich jetzt gar nicht dran gedacht

  3. #3
    Wenn irgendjemand rausbekommen könnte, wie RPG2000 oder 2003 Inhalte gestreckt auf andere Bilder kopiert,
    wie es bei Fensterhintergründen aus der Systemgrafik der Fall ist, wo die Funktion liegt und welche Parameter
    sich wo befinden müssen, wär das ziemlich nett, ich zerbrech mir hier schon ne ganze Weile über Tage hinweg
    darüber den Kopf und bin am Verzweifeln. RPG_RT-Version ist absolut egal, ich mach gerade sowieso was für
    mehrere Versionen und leite mir dann alles von einer auf die restlichen ab.

  4. #4
    Gibt es vielleicht eine Möglichkeit das Spielgeschehen "einzufrieren", um ein eigenes Menü zu basteln?
    Ich benutze nämlich viele Move-Picture-Befehle und die gehen dann einfach weiter, auch wenn das Menü aktiv ist.
    Wäre cool wenn das irgendwie ginge, genau so wie im Standard-Menü, da wird das Spielgeschehen ja auch irgendwie eingefriert.

  5. #5
    Da du wahrscheinlich auch Pictures im Menü verwendest, klingt das nach ner sehr selektiven Sache.

    Solange die Bewegungen nicht jeden Frame ne neue Anweisung kriegen, statt sich über irgendeinen
    Zeitraum von A nach B zu verändern, seh ich erstmal schwarz. Man könnte... auf den Restwartewert
    von jedem erwünschten Pic zugreifen und diesen jeden Frame pseudo-frosten. Das bringt aber nicht
    wirklich was, sobald man das Menü verlässt und möglicherweise die Prozesse währenddessen
    durcheinandergeraten. Müsste man mal testen.

    Falls da jemand was machen möchte:
    [GamePicture] ⇒ [] ⇒ [+08] (Liste) ⇒ [+04] (Array) ⇒ [+(PictureID-1)*4] ⇒ [+B4] (2000) bzw [+C0] (2003)
    (GamePicture = 2000 1.07: 49AE40, 2000 1.61: 4A0E10 (glaub ich...), 2003 ab 1.08: 4CDF3C)

    Zitat Zitat
    genau so wie im Standard-Menü, da wird das Spielgeschehen ja auch irgendwie eingefriert.
    Ja, da das Spiel SceneField verlässt und damit vieles von der Verarbeitung ausschaltet. Solange du
    nicht vor hast, mit DynRPG ein Menü in ner eigenen Scene mit C++ zusammenzuklöppeln, hilft diese
    Methode nicht wirklich. Denn das Spiel friert dann einfach ein und das war's. Es steht still, weil es ja
    nicht weiß, was in Szene drölf zu tun ist.

    Geändert von MagicMaker (27.06.2016 um 21:22 Uhr)

  6. #6
    Hmm... Ist also doch komplizierter als gedacht. Ich dachte, dass man dann vielleicht ein Event weiterlaufen lassen kann, aber das geht wohl leider nicht.
    Kann man denn auf den Restwartewert von einem Picture zugreifen? Wüsste leider nicht wie.
    Danke übrigens für die schnelle Antwort

  7. #7
    Selbst mit DynRPG sehe ich keine Möglichkeit ein einziges Event weiter laufen zu lassen. Die Bewegung des Helden wird unterdrückt, wenn du ein Autostart laufen hast. Es kann auch nur ein Autostart zur Zeit laufen. Dein eigenes Menü wird sicherlich per Tastenabfrage in einem PP aufgerufen. Mach das Menüevent selbst trotzdem als Autostart. Die anderen PPs aus dem Kampfgeschehen kann man nicht so einfach pausieren, du könntest sie aber am Zyklusende manuell pausieren, davon ausgehend, dass deine PPs alle elegant und kurz gehalten sind. Eventbewegungen auf der Map kann man so aber nicht einfrieren. Die üblichen Kniffe wie ein Mapwechsel sind allesamt unelegant und mit anderen Nebenproblemen verbunden.

    Aber nicht verzweifeln, eine Lösung gibt es immer irgendwie. Nur ist sie manchmal mit etwas mehr Aufwand verbunden.

  8. #8
    SwitchOnMenuCall
    Ersetzt den Aufruf vom Standardmenü per Abbruchtaste durch einen Switch, standardmäßig #1017.

    RPG_RT.exe-Version: RPG2000 1.07 + 1.61, RPG2003 1.08 + 1.11

    Der Switch, der benutzt wird (oder eine höhere ID, z.B. 5000), muss vor dem allerersten möglichen Menüaufruf
    einmal im Spiel verwendet worden sein, damit die Werte von Switch 1 bis X im Speicher initialisiert sind.

    Beispiel, was beim Spielstart gemacht werden könnte:
    Code:
    <>Change Switch: [1017:MenuCall] = OFF
    Das Standardmenü kann weiterhin per Event geöffnet werden (<>Call Game Menu), soweit ich beim Testen,
    festgestellt hab, gibt's keinen negativen Einfluss auf Dinge wie DirectMenuPatch, soll heißen: Kompatibel.

    Auch das Sperren von eurem Menü geht nun so einfach wie beim Standard, das macht nun der altbekannte
    normale Eventbefehl (<>Game Menu: Disallow).

    Was der Patch bei einem CustomMenu behebt:
    Interaktion mit Events zum gleichen Zeitpunkt wie das Menü aufgerufen wird, was zwangsweise eins der beiden
    Dinge je nach Fall hinten anstellt (oder bei sowas dummem wie einem Mapmenü die Interaktion ganz frisst).
    Das Verhalten hat die Aufruffunktion vom Standardmenü nicht, da die Engine es rechtzeitig blockiert.

    Was der Patch bei einem CustomMenu NICHT behebt:
    Generelle Probleme mit Events, die bereits parallel im Gange sind. Bislang hab ich dafür leider keine einfache
    Lösung, sah aber eh die andere Sache erstmal als kritischer an.

    "Noch nicht ganz verstanden. Muss ich mein Menü noch irgendwie manuell aufrufen lassen?"
    Nö, das macht das Spiel von allein, solange ein Event, vorzugsweise CommonEvent, auf den Switch reagiert.

    Beispielaufbau von einem sehr primitiven Menü-CommonEvent:
    Code:
    CE0001: "Menü"   Trigger: [AutoStart]   Switch: [1017:MenuCalling]
    
    <>Game Menu: Disallow   Caller vorerst sperren
    <>Change Switch: [1017:MenuCalling] = OFF   Switch ausschalten hat keinen Einfluss darauf, ob das Menü weiterläuft
    <>Play Sound: Decision1 (Vol 100, Pitch 100, Pan 50)   Ein xbeliebiges Signal zum Öffnen vom Menü
    <>Loop Start
     <>Show Choice: "Status", "Optionen", "Speichern", "Beenden", ExtraCancel   Provisorische Auswahl zur Demonstration
     : Choice ["Status"]
      <>Show Message: "Hier gibt's nix!"
      <>
     : Choice ["Optionen"]
      <>Show Message: "Hier gibt's ne doppelte Portion Nix!"
      <>
     : Choice ["Speichern"]
      <>Go To Label: 99
      <>
     : Choice ["Beenden"]
      <>Set Face: Delete
      <>Show Message: "Willst du wirklich zurück zum Titelbildschirm?"
      <>Show Choice: "Nein", "Ja"
      <>
      : Choice ["Nein"]
       <>
      : Choice ["Ja"]
       <>Go To Titlescreen
       <>
      : Choice End
      <>
     : Cancel
      <>Play Sound: Cansel1 (Vol 100, Pitch 100, Pan 50)
      <>Break Loop
      <>
     : Choice End
     <>
    : Loop End
    <>Go To Label: 100
    <>Label Set: 99
    <>Call Save Menu
    <>Label Set: 100   Ende vom Menüprozess
    <>Game Menu: Allow   Dafür sorgen, dass das Menü nachher wieder geöffnet werden kann
    <>
    Um einen anderen Switch zu verwenden, tragt an der jeweiligen Hex-Adresse eure gewünschte Nummer ein.
    • 2000-1.07: 0x0008CA4A
    • 2000-1.61: 0x00086BDA
    • 2003-1.08: 0x000A8EAE
    • 2003-1.11: 0x000BD796



    SwitchOnMenuCall rv100 (2015|06|29)

Berechtigungen

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