Seite 9 von 22 ErsteErste ... 567891011121319 ... LetzteLetzte
Ergebnis 161 bis 180 von 440

Thema: RPG Maker 2009 Ultimate v0.15

  1. #161
    Der beste Kopierschutz von Code wird doch im Makerbereich automatisch angewendet. Ihr wisst doch, beim Makern geht es um Spaß und das Gegenteil von Spaß sind Kommentare im Code und strukturiertes Arbeiten. Variablennamen wie "ist passiert" "fbt2" und "nach plan / bild" tun ihr übriges.

  2. #162
    Zum Glück kommentiere ich von Haus aus. Aber ich denke das müssen die meisten gar nicht machen. Vielen haben gar nicht so komplexe Sachen das es sich lohnt.

    @Jack
    Nicht knacken^^ Knacken wird schwer sein, zu umgehen ist es einfach.

  3. #163

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

    Das finde ich cool, schöne Arbeit.

  5. #165
    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?

  6. #166
    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

  7. #167


    EDIT: Das mit der Breite wird noch korrigiert.

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

  8. #168
    *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

  9. #169
    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 20:16 Uhr)

  10. #170
    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 ^^

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

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

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

    netwarrior

  14. #174

    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?

  15. #175
    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).

  16. #176
    Ääääääääää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

  17. #177


    Die neue Version in der Dropbox kann das schon.

  18. #178
    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!!

  19. #179
    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)

  20. #180
    Afair hat Cherry das auf seine TODO-List, allerdings mit dickem "???".

Berechtigungen

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