Seite 1 von 9 12345 ... LetzteLetzte
Ergebnis 1 bis 20 von 172

Thema: PicPointerPatch - Bild-ID durch Variable angeben

  1. #1

    PicPointerPatch v2.5 - Bild-ID, Dateiname und mehr durch Variable angeben

    EDIT: Version 2.5 ist da! Die Wartezeit bei Move Picture kann nun auch referenziert werden, und endlich funktioniert die Transparenz beim RM2k3 korrekt! "Drüberpatches" von v2.5 auf v2 ist möglich!

    So, Version 2 ist da.

    -> Auch Transparenz und Vergrößerung können referenziert werden (ebenfalls mit 10000+VarID als Wert)
    -> Der Dateiname kann durch eine Variable verändert werden - Itemmenüs sind somit kein Problem mehr und in kürzester Zeit machbar!!! Genaueres in der Readme bzw. im Demospiel.

    Wer Version 1 schon verwendet, kann Version 2 NICHT einfach "drüberpatchen"! Bitte eine RPG_RT.EXE verwenden, wo der PPP v1 noch nicht drauf ist!

    Der Downloadlink ist der selbe, der Inhalt des Archivs wurde aktualisiert: http://cherrytree.at/downloads/ppp.rar

    Zitat Zitat von readme.txt
    PicPointerPatch for RM2k v1.07 & RM2k3 v1.08 - Version 2.5
    ==========================================================

    Release of 05.04.2010

    (C) 2008, 2010 David "Cherry" Trapp
    cherry@cherrytree.at
    http://cherrytree.at

    CHANGELOG:
    v2.5
    - Die Wartezeit für "Move Picture" kann nun auch durch Variablen angegeben werden.
    - Transparenz für untere Hälfte des Bildes (beim RM2k3) funktioniert endlich richtig.
    v2
    - Dateinamen können auch durch Variablen angegeben werden.
    v1
    - Erste Version

    Mit dem PicPointerPatch kann man, wie der Name schon sagt, auch bei Picture-IDs Pointer verwenden (sprich, man kann durch eine Variable festlegen, auf welches Picture sich eine Operation bezieht). Die Benutzung ist ganz einfach, für fixe Bild-IDs wird diese ganz normal angegeben (z.B. Show Picture [7], cloud.png), wenn der Wert aus einer Variable gelesen werden soll, verwendet man 10000+VarID als Bild-ID (z.B. Change Variable [208], 7; Show Picture [10208], cloud.png). Enthält die Variable einen ungültigen Wert, erhält man einen Fehler.

    Dies funktioniert genauso mit Transparenz und Vergrößerung der Bilder, sowie mit der Zeitdauer für "Move Picture"-Befehle.

    Die zweite wichtige Funktion (in Version 2 dazugekommen), ist, dass auch der DATEINAME des Bildes durch eine Variable beeinflusst werden kann.

    Wird als Bild-ID 50000+VarID verwendet, wird...
    a) wie oben beschrieben, die Bild-ID aus [VarID] gelesen
    b) eine Dateinummer aus [VarID+1] gelesen - die letzten 4 Zeichen des Bilddateinamens werden durch diese Nummer ersetzt.

    Einige praktische Beispiele:

    <> Show Picture 2, (160,120), Gegenstand_0000
    Dies zeigt, ganz normal, das Bild "Gegenstand_0000" als Bild Nr. 2 an.

    <> Change Variable [0208], 9 set
    <> Show Picture 10208, (160,120), Gegenstand_0000
    Dies zeigt das Bild "Gegenstand_0000" als Bild Nr. 9 an.

    Nun aufgepasst:
    <> Change Variable [0208], 14 set
    <> Change Variable [0209], 83 set
    <> Show Picture 50208, (160,120), Gegenstand_0000
    Dies zeigt das Bild "Gegenstand_0083" (!) als Bild Nr. 14 an.

    WICHTIG: Der Dateiname sollte bereits Platz für diese Nummer bieten! Ein Negativbeispiel: Würde obiges mit dem Bild "Panzerechse" versucht, würde der Maker versuchen, ein Bild namens "Panzere0083" zu laden! Dies würde in einem "File not found"-Fehler enden.

    Achja, nochwas: alles, was der Patch nicht verarbeiten kann, schickt er einfach an den Maker weiter. Wenn man also z.B. als Bild-ID 10500 angibt, obwohl man diese Variable gar nicht verwendet, wird der Maker versuchen, ein Bild mit Nummer 10500 anzuzeigen, wird also eine Fehlermeldung ausspucken!

    Eine praktisches Beispiel (6stellige Zahlenanzeige) ist als Demospiel beigefügt. Dies benötigt übrigens nur 15 Eventkommandos! Das Event ist ausführlich kommentiert. Einfach mal im Maker öffnen und ansehen.

    Der Nutzen des Patches? Wenn du ihn bis jetzt noch immer nicht verstanden hast, tust du mir leid. Drum helf ich dir auf die Sprünge:
    Zahlenanzeigen, Item-/Zauber-/Ausrüstungsmenüs, etc. - mit dem PicPointerPatch Version 2 lässt sich dies alles in kürzester Zeit verwirklichen!

    An alle, die sich jetzt ärgern, weil sie Monate dafür gebraucht haben: TUT MIR LEID! ;-)


    >>>>> INSTALLATION DES PATCHES: <<<<<<
    1. Lips.exe öffnen
    2. Auf "Apply IPS Patch" klicken
    3. Patchversion auswählen (RM2k oder RM2k3)
    4. RPG_RT.EXE auswählen (unten rechts "All files" wählen)

    Damit man im RM2k(3) überhaupt so hohe Picture-IDs wählen kann, muss die RPG2000.EXE bzw. RPG2003.EXE auch gepatcht werden. Dies geht so:

    Beendet unbedingt den Maker, bevor ihr euch den nachfolgenden Punkten widmet. Es könnte zu unangenehmeren Überraschungen und Nebeneffekten führen, die im schlimmsten Fall euer Projekt, wenn nicht gar eure gesamte Maker-Installation beschädigen könnten.

    1. : Legt eine Sicherheitskopie von der Datei "rpg2000.exe" bzw. "rpg2003.exe" an. Da diese im Nachhinein editiert wird und sich dabei eventuell Fehler einschleichen könnten ist es immer gut, noch eine Art "BackUp" zur Hand zu haben.

    2. : Startet den Ressoruce-Hacker und öffnet damit die Datei "rpg2000.exe" bzw. "rpg2003.exe".

    3. : In dem Verzeichnis-Wirrwarr klickt ihr euch durch "RCDATA" --> "TFORMEVCMD11110" --> "0" durch.

    4. : Hier sucht ihr den Eintrag "MaxValue = 20" (RM2k) bzw. "MaxValue = 50" (RM2k3) (Der erste MaxValue-Eintrag, wenn ihr langsam im dargestelltem Code von oben nach unten scrollt) und tauscht die 20/50 durch eine 100000 aus. Wiederholt dies für die Zeile "MaxValue = 100" (diese gibt es beim RM2k3 zweimal!) und "MaxValue = 1000" (weiter unten). Klickt dann auf den Button "Compile Script" und speichert das ganze ab.

    5. : Wiederholt die selbe Vorgehensweise (!) bei folgendem Eintrag: "RCDATA" --> "TFORMEVCMD11120" --> "0", hier muss außerdem noch eine weitere Zeile mit "MaxValue = 1000" zu "MaxValue = 100000" geändert werden.

    6. : Wiederholt es auch bei "RCDATA" --> "TFORMEVCMD11130" --> "0", wobei dort nur eine der MaxValue-Zeilen vorhanden ist.


    Zum Schluss noch ein kleiner Tipp:

    Mit Transparenzwerten zwischen 101% und 9999% kann man sehr interessante farbliche Effekte erzielen!
    400% stellen das Bild z.B. mit umgekehrten Farben dar (soweit ich das feststellen konnte)!


    Viel Spaß!

    mfG Cherry


    PS: ICH ÜBERNEHME K-E-I-N-E-R-L-E-I VERANTWORTUNG, FALLS DER PATCH (sei es durch eine Fehlfunktion, oder durch verwenden der falschen Patchversion oder dergleichen) EUER PROJEKT, EUREN MAKER ODER SONSTWAS SCHROTTEN SOLLTE!!!

    Ich kann aber sagen, dass dies recht unwahrscheinlich ist (dass es das Projekt schrottet ist eigentlich sogar unmöglich, außer jemand versucht, damit seine Datenbank oder eine Map oder so zu patchen, aber um jeder Idiotie vorzubeugen, hab ich das eben dazugeschrieben).
    Haut rein, Leute.

    mfG Cherry

    Geändert von Cherry (29.12.2010 um 15:26 Uhr)

  2. #2

    Users Awaiting Email Confirmation

    Lieber Cherry,
    nachdem ich der erste sein durfe, der dass hier sehen darf, jetzt noch mal offiziell:

    Kaltblut

  3. #3
    Wenn ich erlich bin,habe ich diesesmal keine
    Ahung,wie das Ding funktioniert,obwohl du dort eine Hilfe
    hinschriebs...kann ich trotzdem sagen:

    "Danke schön!"

  4. #4
    Hmm vielleicht steh ich nach dem Wochenende jetzt auch einfach nur auf dem Schlauch, aber könnte jemand mal grob ein Beispiel umreissen wo dieser patch einen Vorteil oder Erleichterung mit sich bringen würde? Mir mag das Einsatzgebiet jetzt nicht so recht einleuchten.

  5. #5
    @alpha und beta: Naja, kuck mal:

    normalerweise kannst du bei Show/Move/Erase Picture ja nur fixe Bild-IDs angeben, z.B.:

    <> Show Picture 7 (160,120), cloud

    Jetzt kann man die ID aber auch durch eine Variable bestimmen lassen (man addiert zur ID der Variable 10000 und gibt sie als Bild-ID an):

    <> Change Variable [0208], 7 set
    <> Show Picture 10208 (160,120), cloud

    10208 = 10000 + 208.

    mfG Cherry

  6. #6

    Users Awaiting Email Confirmation

    Zitat Zitat
    Zitat von Spark Amandil
    aber könnte jemand mal grob ein Beispiel umreissen wo dieser patch einen Vorteil oder Erleichterung mit sich bringen würde?
    Wenn du x-mal Zahlen von 1 bis 9 darstellen willst. Dann musst du nicht jedes mal

    if (variable 1 = 1) pic.no 1 -> bild zahl 1
    if (variable 2 = 1) pic.no 2 -> bild zahl 1
    ...
    if (variable x = 1) pic.no 2 -> bild zahl 1
    bis..
    if (variable 1 = 9) pic.no 1 -> bild zahl 9
    if (variable 2 = 9) pic.no 2 -> bild zahl 9
    ...
    if (variable x = 9) pic.no 2 -> bild zahl 9

    sondern du kannst es alles mit einer Schleife erledigen.
    also irgendwie so...

    if (variable.no_x = 1) pic.no variable_y -> bild zahl 1
    bis...
    if (variable.no_x = 9) pic.no variable_y -> bild zahl 9

    najö, hätt ich das vor 2 Monaten gehabt, hätt ich das so gemacht. Es gibt bestimmt noch mehr Varianten.

    Geändert von Kaltblut (25.05.2008 um 21:22 Uhr)

  7. #7
    Zitat Zitat von Spark Amandil Beitrag anzeigen
    Hmm vielleicht steh ich nach dem Wochenende jetzt auch einfach nur auf dem Schlauch, aber könnte jemand mal grob ein Beispiel umreissen wo dieser patch einen Vorteil oder Erleichterung mit sich bringen würde? Mir mag das Einsatzgebiet jetzt nicht so recht einleuchten.
    Man kann das ganz in eine Schleife packen und somit mehrere Bilder ansprechen.

    => Man kann mehrere Bilder in einer Formation anordnen (zB. immer x+20).

    ..em ja, toll. Ansonsten fällt mir auch nix Vernünftiges ein. Irgendwie praktischer wäre es, nummerierte Bilder abhängig von einer Pointer-Variable unter der selben Picture-ID darstellen zu können. Sprich ein Picture durch ein anderes zu ersetzen durch den Zugriff auf eine Variable.

    EDIT - @Kaltblut: Das dürfte nicht gehen. Der Patch ändert nur die ID nicht den Picture-Inhalt.
    EDIT2 - Ok, bei gleicher Zahl (von 1 bis 9) mit verschiedenen IDs an verschiedenen Posis gehts. Aber dann braucht man jeweils eine Variable für die x- und y-Achse des Bildes.

    Geändert von CapSeb (25.05.2008 um 22:30 Uhr)

  8. #8
    Angenommen jemand wäre so wahnsinnig und würde mehr als 10000 Varis
    verwenden, würde das dem Patch was ausmachen, wenn man dann die
    über 10000 verwendet.

  9. #9
    nein. Der Variwert wäre dann nur nicht mehr so offensichtlich. Aber z.B. 55678 (für Vari 45678) wäre durchaus möglich.

  10. #10
    Zitat Zitat von Spark Amandil Beitrag anzeigen
    Hmm vielleicht steh ich nach dem Wochenende jetzt auch einfach nur auf dem Schlauch, aber könnte jemand mal grob ein Beispiel umreissen wo dieser patch einen Vorteil oder Erleichterung mit sich bringen würde? Mir mag das Einsatzgebiet jetzt nicht so recht einleuchten.
    Stell dir beispielsweise vor, du willst ein eigenes Menü basteln und in diesem soll eine Liste von Gegenständen, die der Held bei sich trägt, erscheinen.
    Diese soll keineswegs mit festen Positionen sein, wie man es in vielen Spielen hat (sprich an Platz 1 sind immer die Heiltränke, an Platz 2 immer die Manatränke et cetera) sondern intelligent nachrücken können.
    Das Ermitteln der Positionen ist ein recht einfacher Algorithmus.
    Man geht einfach inkrementell durch die Items durch (egal ob als Maker-Items gespeichert oder in Variablen), schaut, was über 0 an Anzahl hat und trägt die ID auf die Stelle ein, auf die ein Zeiger zeigt und erhöht diesen anschließend um 1.

    Das Problem ist jedoch die Anzeige. Man müsste ohne den Patch an sich für jedes Item und für jede Position einen neuen Show-Picture Befehl in eine riesige Datenbank schreiben.
    So genügt eine kleinere Datenbank, die man aber immer noch braucht da die Adresse des Bildes kein Zeiger ist, aber sie ist schonmal um den Faktor der Positionen gekürzt.

    Und genau daher kommt meine nächste Bitte an Cherry, die ich im anderen Thread schon formuliert habe: Ist es möglich, irgendwas zu basteln, was über die Bildadresse hochzählt? Sodass ich für das oben beschriebene nur einen einzigen Show Picture bräuchte? An sich passts so aber scho. So spart der Patch schoma gehörig Arbeit und letztendlich muss ich für jedes neue Item/Zauber/watweißich eh Arbeit reinstecken von wegen Pic erstellen, Eigenschaften definieren undsoweiter, da führt nix drumrum ^^ (außer du schreibst eine KI, die selbstständig Spiele entwickelt o.O ^^)

  11. #11
    Hey Cherry~

    sagmal wärs möglich den Filenamen ebenfalls variabel zu machen?
    Klaro, Strings sind was anderes als Zahlen aber evtl. geht ja über die "Hero name" Funktion oder oder kombinierte Dateinamen-Varibalen

    Bild_Wolken_Nr_XXXX.png
    [var1000] = 4567

    => Pic: Bild_Wolken_Nr_4567.png wird benutzt

    Kriegste sowas hin?

  12. #12
    Hm, ich könnte es so versuchen:

    BildID = 1-99999 > ID + Dateiname fix
    BildID = 100000+VarID > Variable gibt ID an [ein Nuller mehr, falls Leute viiiele Varis haben]; Dateiname fix
    BildID = 200000+VarID > Variable gibt ID; Variable+1 gibt Dateiname an

    Mal sehen, jetzt geh ich erst mal zur Schule XD

    Geändert von Cherry (26.05.2008 um 06:12 Uhr)

  13. #13
    Oder währe es nicht möglich ein Dummy bild zu importieren, welches auch leer sein kann, bei dem der Dateiname so aufgebaut ist: name_der_wahl%nr%.png
    Das %nr%, ist dann der Platzhalter, der durch die Variable ersetzt wird.
    Bzw. man könnte anstatt %nr% auch sowas wie: %nr10% nehmen. 10 Währe dann die Variable.


  14. #14
    Sagen wirs mal so:
    Eine Varibale direkt in den Dateinamen zu übernehmen ist mehr oder minder Vorraussetzung für algorithmisches Arbeiten mit Bildern.

    Andere kleine Frage:
    gibts die Möglichkeit ähnlich der Pic-ID auch die anderen Configs der Bildanzeige zu beeinflussen.
    Magnification, Transparenz und Sättigung wären klasse.

    mfg~

  15. #15
    ARG, wieso kommst du damit erst jetzt? <_< Ich hätte mir mehrere hundert ForkConditions in meinem Game ersparen können <_<°

  16. #16
    Ein grosses Danke an Cherry. Seit langem mal wieder etwas, was uns alle das scripten erleichtert und nicht mehr 1000 Forks, z.B. fuer ein Itemmenue, braucht. Gut dass ich meins erst in 2 Wochen anfangen wollte...

  17. #17
    Keine schlechte Idee^^ Werde vllt sogar ganz gut gebrauchen können.
    thx
    Sobald och zuhasue bin werd ichs Laden.

  18. #18
    transparenz und magnification (sättigung muss ich noch finden)? da kann ich ja eigentlich den Code komplett übernehmen, brauch nur einen Call ändern bzw. hinzufügen, den Wert von 10000 auf 100000 ändern wollt ich ja sowieso (ich kenne keinen, der ein Bild 1000fach vergrößern will). Wird gemacht. @Dateiname: das mit den letzten 4 Zeichen wäre die einfachste Methode, ich werd das mal versuchen.

    mfG Cherry

  19. #19
    Ok, wollte den Patch ausprobieren (hatte ich nach meinem Lob noch nicht). Sorry aber was muss ich machen? Ich bin total rat los . Hab dein Text wieder und wieder gelesen. Bin aber nicht drauf gekommen. Der Code waer nicht schlecht. Vielleicht ein Beispiel.

    Danke.

  20. #20
    Wenn die Bild-ID aus einer Variable geholt werden soll, addierst zu zur ID dieser Variable 10000 und gibts das dann als Bild-ID an.

    Oder meinst du die Installation?

    Beispiel:

    <> Show Picture 7, (160,120), cloud

    ...hat den selben Effekt wie...

    <> Change Variable [0208], 7 set
    <> Show Picture 10208, (160,120), cloud

    klar soweit?

Berechtigungen

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