Seite 1 von 4 1234 LetzteLetzte
Ergebnis 1 bis 20 von 440

Thema: RPG Maker 2009 Ultimate v0.15

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ich würde dir raten, dass wenn du das mit einem Hauptprojekt verwendest, du dann lieber sehr oft Backups machst! Es kann theoretisch immer irgendwo ein Fehler lauern, der genau bei DEINER Makerversion zuschlägt Alphastadium und so. Und beachte auch das da: http://www.multimediaxis.de/showpost...9&postcount=18

    Geändert von Cherry (28.08.2010 um 15:33 Uhr)

  2. #2
    Erst einmal: Gute Arbeit, Cherry. Ich benutze den RM2k/3 zwar nicht mehr (aktiv), aber ich bin mir sicher, dass das Programm einigen zu Nutzen sein wird.


    Ein Fehler habe ich aber gefunden, doch weiß ich nicht, ob er schon gemeldet wurde:
    - Im About-Bild steht "Enterbain". Ich glaube kaum, dass du damit jemand anderes als Enterbrain meinst, oder?

  3. #3
    Zitat Zitat von Vau Beitrag anzeigen
    Ein Fehler habe ich aber gefunden, doch weiß ich nicht, ob er schon gemeldet wurde:
    - Im About-Bild steht "Enterbain". Ich glaube kaum, dass du damit jemand anderes als Enterbrain meinst, oder?
    Ah, danke. Wird behoben.

    Der schöne Splash ist btw von MagicMaker.

  4. #4

  5. #5
    Oh cool, man kann es andocken, wie die Werkzeugleiste in Photoshop

    Das finde ich cool, schöne Arbeit.

  6. #6
    Sieht ganz interessant aus (bzw. sähe, wenn ich den Maker benutzen würde ^^)

    Zwei Fragen dazu: Wie baust du neue Features ein, ohne die Runtime zu modden (also vor allem das Event Command-bezogene Zeug)? Oder hat die Features, die der Maker einfach nicht nutzt? Und wie funktioniert das ganze Ding eigentlich? Kann man in der Delphi-Runtime irgendwie zur Laufzeit Klassen ersetzen, oder was machst du da?

  7. #7
    Frage 1: Ich nütze schon vorhandenes (wenn es auch nicht vorgesehen ist): Für die Unterordnersache nutze ich einfach Backslashes im Namen. Die Runtime liest dann "Ordner\Datei", hängt links "c:\projekt\Picture\" an und probiert rechts ".bmp", ".png" und "•••••" aus bis Windows sagt "ja die Datei gibts". Für das "No Steps When Moving" verwende ich eine Animationstyp-Nummer, die nicht vorgesehen ist. Und durch die Art, wie die if's und switch'es in der rpg_rt.exe strukturiert sind, kommt dann ein Bewegen ohne Schritte raus. Das mit den Geheimevents erreiche ich indem ich dem Event negative Koordinaten gebe.

    Frage 2: Mehrere Techniken vereint.
    1) Zuerst wird eine DLL injiziert. Aus der findet das alles dann statt.
    2) Dann werden 2 Hooks installiert: Ein Keyboard-Hook und ein CallWndProc-Hook, der alle Windowmessages abfängt.
    3) Dann werden einige Funktionen gepatcht, sodass stattdessen Funktionen von mir verwendet werden.
    4) Dann werden bei Bedarf Fenster via Subclassing gekidnappt.
    5) Du musst wissen, dass Delphi jedem Fenster eine Property mit dem Namen "ControlOfsXXXXXXXXYYYYYYYY" gibt, wo X das HINSTANCE ist und Y die Thread-ID. In der Property ist ein Pointer auf die zugehörige Instanz der Delphiklasse, zu der das Fenster gehört. Das ist immer eine Unterklasse von TWinControl.
    6) Um jetzt noch mehr erreichen zu können, hab ich 2 DLLs geschrieben, vclxchg5.dll und vclxchg6.dll. Genauergesagt ist der Quellcode für beide der selbe, nur einmal mit Delphi 5 kompiliert und einmal mit Delphi 6, denn der Maker ist auch in Delphi 5 (2k) bzw. 6 (2k3) geschrieben. Durch diese DLLs muss ich jetzt nicht rausfinden, wo denn nun die ganzen Funktionen in der rpg2000/3.exe liegen bzw. welche Offsets einer Klasse welche Eigenschaft sind (was noch dazu ja bei 2k und 2k3 unterschiedlich ist), sondern hab einfach ein paar Funktionen drin, die Beispielsweise ein TTabControl entgegennehmen und mir Images.Handle zurückliefern, sodass ich da Icons reinmachen kann - als Beispiel.
    Besonders mächtig wird das, weil ich die Funktionen drinhabe, die durch die Unit "TypInfo" mir die RTTI (Runtime-Type-Information) zugänglich machen. Ich kann dadurch alle "Published"-Properties (wie z.B. "MaxValue" bei den Auf-Ab-Zahlen-Eingabefeldern im Maker) lesen und schreiben, indem ich ihren Namen angebe. So brauch ich nicht für jede Eigenschaft eine neue Funktion in meiner DLL und kann auch auf Eigenschaften von Klassen zugreifen, deren Source ich nicht habe (wie hier eben das Makereigene TSpinEdit). Praktischerweise sind auch die ganzen Methoden, die ein Ereignis behandeln, published (damit nämlich in den DFM-Dialog-Resourcen sie per Name angesprochen werden können). So kann ich z.B. beliebig die TFormLcfMain.MenuItem_Tools_Database.OnClick callen und so.

    Darauf basiert das ganze ungefähr.

    Die Funktionen, die ich umleite, finde ich übrigens über eine Art Maske, indem ich in der Datei nach einer Bytefolge suche, wo manche Bytes aber beliebig sein können (konkret: Offsets und Ziele von Jumps und Calls).

    mfG Cherry

  8. #8


    EDIT: Das mit der Breite wird noch korrigiert.

    Geändert von Cherry (09.10.2010 um 18:36 Uhr)

  9. #9
    *cherry knuddelt*

    Yeah, wie oft habe ich mir beim mappen gewünscht, dass ich mehr Platz habe und nicht dauernd
    die Felder von Maps und TileSets umändern muss, weil mir Platz fehlte :'D

    Tolles Feature, der wird echt immer besser

  10. #10
    Zitat Zitat von Rosa Canina Beitrag anzeigen
    der wird echt immer besser
    Sehr richtig erkannt:

    Denn jetzt gibts alle Tiles in allen Layern!!! Denn jetzt gibt es Lower Layer Tiles im Upper Layer!



    Funzt sogar theoretisch im Event Layer! Leider gibts da jetzt noch ein Problem: Wenn man so ein Event, was eine Lower Layer-Grafik hat, öffnet und die Grafik ändern will, gibts eine Katastrophe (unendlich viele Fehlerfenster...).

    mfG Cherry

    FETTER EDIT: Ich hab mich zu früh gefreut. In Upper gehen alle Tiles, Event auch (bis auf das oben erklärte Problem), aber leider kommen bei der umgekehrten Version im Spiel entweder Fehler oder falsche Tiles raus . Und das kann ich Ultimateseitig natürlich nicht beheben... So was dummes. Waaaah.

    Also es gehen nur im Upper alle Tiles. Ist aber auch schon was, wenn man mal mehr Upper und weniger Lower braucht oder so...

    Geändert von Cherry (09.10.2010 um 21:16 Uhr)

  11. #11
    Hehe, das kriegst du auch noch hin, bin ich mir sicher :3

    Das du das einbauen willst, wusste ich ja schon, find ich aber trotzdem toll, dass es jetzt
    geklappt hat und drin ist ^^

  12. #12
    Also das ist sogar mal eine Änderung die mich dazu bringen würde den Ultimate zu benutzen

  13. #13
    Hey, lecker lecker =D
    Dickes Lob dafür.

  14. #14
    Ein weiteres nützliches Feature.
    Da sieht man wieviel verschenktes Potential im Maker steckt.
    Kann es kaum erwarten zu testen.

    netwarrior

  15. #15

    Users Awaiting Email Confirmation

    Noch nen zusätzlichen Layer wär doch nicht schlecht?
    Man müsste doch sozusagen einfach den Code vom Upper Layer kopieren und entsprechend ändern,oder nicht?

  16. #16
    Das würde gar nicht gehen, weil die Exe gar nicht wüsste wie sie das behandeln soll. (Auch müsste man dazu die *.exe des Makers ändern).

  17. #17
    Äääääääääähhhhh.........

    ...
    ...
    ...



    ...
    ...!!!

    Man müsste sozusagen. Hihi, hihihi...^^

    Nein, so einfach geht das natürlich nicht

    WENN sowas geht, dann mit "gestapelten" Events, also mehreren Events am selben Tile. Das geht technisch, ich weiß aber noch nicht, wie ich dem Maker das reinprügeln soll...



    Naja, nichts für ungut, btw.

    mfG Cherry

  18. #18


    Die neue Version in der Dropbox kann das schon.

  19. #19
    Ich hab grad einen tragischen Bug entdeckt, gegen den ich nix tun kann: Wenn man Tiles vom Lower Layer im Upper Layer verwendet, nimmt die rpg_rt die Passibilitätseinstellungen vom Upper Layer her!!! Also z.B. läuft man unter Wasser durch, kann über Gras nicht drüber (wenn wie beim RTP da im Upper an der Stelle ein Baum ist), etc.


    Ich fürchte daher, ich muss das Feature leider wieder ganz entfernen... zu schade!!

  20. #20
    Und die Chipsets in der Anzahl von Tiles vergrößern, wie siehts damit aus? Das würd das sowieso redundant machen. (Na wahrscheinlich auch in der Exe verankert aber fragen kostet ja nix)

Berechtigungen

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