Seite 12 von 26 ErsteErste ... 2891011121314151622 ... LetzteLetzte
Ergebnis 221 bis 240 von 505

Thema: +++ DynRPG - Das RM2k3-Plugin-SDK +++

  1. #221
    Ich kann dich beruhigen Corti; es funktioniert genau so^^ Benutze das ziemlich viel, muss ich sagen.
    Wobei man aber dazu sagen muss, dass die jeweiligen Parameter der einzelnen EventCommands nicht von Cherry dokumentiert sind, was heißt dass man die selbst herausfinden muss. Ich habe mir dafür schon den ein oder anderen enum geschrieben^^

    [Nachtrag:]
    Wobei deine Beschreibung zum "::" nicht *ganz* korrekt ist. Es ist der ScopeResolution-Operator, auch Geltungsbereichsauflösungsoperator, wie er im Deutschen ja auch so schön heißt und er dient allgemein dazu den Geltungsbereich aufzulösen und das nicht nur für NameSpaces, sondern z.B. auch für statische Member oder Methoden einer Klasse. Dieser werden üblicherweise auch durch Klassenname::StatischerKlassenmember aufgerufen
    Der "->" hingegen dereferenziert einen Zeiger und greift auf den Member des dereferenzierten Objektes zu, alternativ könnte man dort nämlich auch schreiben (*scriptLine).command, was eben genau das Gleiche wie scriptLine->command bedeutet.

    PeAcE
    MorDen

    Geändert von Morden (23.05.2013 um 16:02 Uhr)

  2. #222
    Hört auf Morden, dessen Beschreibung ist genauer

  3. #223
    Ist irgendwie blöd hier nochmal was zu fragen, aber ich habe eben noch ein letztes Problem XD...

    Nun kann ich zwar "EVCMD_CHANGE_SWITCH" abfragen, aber wie kann ich nun herausfinden ob der Switch auf True oder False gesetzt wird. Ich dachte ja an Value, aber das funktioniert nicht ._.

    Edit: Oder ich weiß welcher Switch überhaupt verändert wird...

    Geändert von djeurissen (23.05.2013 um 16:07 Uhr)

  4. #224
    Ich kann dir jetzt keine genaue Antwort geben, da ich nicht zu Hause bin, aber normalerweise solltest du diesen Wert bekommen, indem du auf scriptLine->parameters[1] zugreifst, denn scriptLine->parameters[0] sollte - wenn ich nicht ganz falsch liege - die SwitchID beinhalten (so, wie sie auch im Maker selbst indexiert wird, also beginnend bei "1").

    Genaueres kann ich dir aber erst sagen, wenn ich zu Hause bin, wobei ich mir relativ sicher bin, dass das so hinhauen müsste.

    Edit:
    Hinweis: Bei onEventCommand ist jeder Eintrag im parameters[]-Array ein Zahlenwert und es gibt maximal einen String-Wert, welcher sich mit scriptLine->stringParameter auslesen und manipulieren lässt!

    PeAcE
    MorDen

    Geändert von Morden (23.05.2013 um 16:19 Uhr)

  5. #225
    Siehe Morden, die Paramter der einzelnen EventCommands sind nicht dokumentiert. Musst selber mal schauen was dir da als Parameter übergeben wird und was bei verschiedenen Aufrufen so drin ist.

  6. #226
    Achso, ich dachte ich müsste über "EVCMD_CHANGE_SWITCH" auf das ganze zugreifen, aber das ist alles schon in nem Array drinne...
    Jetzt habe ich es verstanden, danke XD

  7. #227
    Du greifst quasi auf das SkriptKommando selbst zu! Dabei musst du dir das so vorstellen, dass du alle Parameter auslesen kannst, die du in diesem SkriptKommando im Maker selbst auch vergeben kannst! Diese Parameter kannst du aber nicht nur auslesen, sondern halt auch manipulieren.

    PeAcE
    MorDen

  8. #228
    Okay, vielen dank^^

    Hab mir auch ein Enum erstellt um den Überblick zu behalten, wobei es nicht gerade einfach war herauszufinden wo der unterschied zwischen parameters[1] und parameters[2] liegt XD

  9. #229
    @djeurissen
    Was wäre denn der Unterschied, den du herausfinden konntest?

    @Topic
    Um euch mal die Arbeit zu erleichtern herauszufinden, welche Parameter ein EventCommand hat möchte ich euch hier mal mein kleines »EventTracker« PlugIn zur Verfügung stellen.
    Im Endeffekt ist es extrem billig und macht nichts weiter, als jedes einzelne EventCommand zu tracken und mit seinem Namen und Parametern in einen stream zu schreiben. Dieser wird beim Beenden dann in die Datei "dbg.txt" im root-Verzeichnis des Spieles gespeichert.

    Hier mal ein Beispiel, wie ein solches EventCommand vom Tracker abgespeichert wird (hier im Beispiel das ShowPicture-Command):

    Code:
    Command: Show picture (11110)
    EventID: 1
    PageID: 6
    lineID: 19
    nextLineID: -1
    Parameter-0 --> 15
    Parameter-1 --> 0
    Parameter-2 --> 160
    Parameter-3 --> 224
    Parameter-4 --> 0
    Parameter-5 --> 100
    Parameter-6 --> 100
    Parameter-7 --> 1
    Parameter-8 --> 100
    Parameter-9 --> 100
    Parameter-10 --> 100
    Parameter-11 --> 100
    Parameter-12 --> 0
    Parameter-13 --> 100
    Parameter-14 --> 100
    Parameter-15 --> 68
    StringParameter -->tb-facebox
    Das tut der Tracker mit allen EventCommands, außer dem Comment - da ich das für nicht nötig hielt das mit zu tracken.

    Hier der Download: EventTracker.dll

    PeAcE
    MorDen

  10. #230
    Exzellente Arbeit, nice!

  11. #231
    Das Teil schwirrt schon ewig in meinem TestProjekt rum^^ Und wenn ich damit jemanden helfen kann, dann bin ich schon froh =D

    Ich möchte aber noch dazu sagen: Verwendet es bitte NUR für solche Einsatzzwecke, da es bei sehr vielen EventCommands doch schon eine beträchtliche Datenmenge erzeugt und diese ja auch im Speicher hält. Anfangs hatte ich noch sofort nach jedem EventCommand speichern lassen, das hat sich aber als sehr, sehr langsam erwiesen - deshalb entschloss ich mich die Datei erst beim Beenden speichern zu lassen.

    Also: Zum rausfinden der Parameter -> PlugIn reinkopieren und wenn ihr eure Daten habt, schmeißt es wieder raus. Das PlugIn meldet ja, ob es geladen wurde oder nicht.
    Ist nur eine Empfehlung von mir, was ihr natürlich macht ist eure Sache

    PeAcE
    MorDen


    [Nachtrag:]
    Vielleicht sollten wir mal irgendwie die EventCommands zusammentragen - ich denke das würde vielen von uns einiges an Zeit ersparen.
    Deswegen fange ich mal an - hier meine enums zu ShowPicture und MovePicture, leider weiß ich nicht, was der letzte Zahlenparameter bei ShowPicture bedeutet; deshalb habe ich ihn als "UNKOWN" gekennzeichnet:

    Code:
    //  Event parameter list for "Show Picture" command  //
    //  Filename saved as string parameter!
    enum EVPRM_SHOW_PICTURE {
        EVPRM_SHOW_PICTURE__PICTURE_ID,
        EVPRM_SHOW_PICTURE__COORDINATE_OR_VARIABLE,
        EVPRM_SHOW_PICTURE__POSITION_X,
        EVPRM_SHOW_PICTURE__POSITION_Y,
        EVPRM_SHOW_PICTURE__PICTURE_SCROLLS_WITH_MAP,
        EVPRM_SHOW_PICTURE__MAGNIFICATION,
        EVPRM_SHOW_PICTURE__TRANSPARENCY_TOP,
        EVPRM_SHOW_PICTURE__TRANSPARENCY_BOTTOM,
        EVPRM_SHOW_PICTURE__USE_MASK_COLOR,
        EVPRM_SHOW_PICTURE__COLOR_RED,
        EVPRM_SHOW_PICTURE__COLOR_GREEN,
        EVPRM_SHOW_PICTURE__COLOR_BLUE,
        EVPRM_SHOW_PICTURE__COLOR_SATURATION,
        EVPRM_SHOW_PICTURE__EFFECT,
        EVPRM_SHOW_PICTURE__EFFECT_VALUE,
        EVPRM_SHOW_PICTURE__UNKNOWN_1
    };
    Code:
    //  Event parameter list for "Move Picture" command  //
    //  There's no filename parameter for the "Move Picture" command
    enum EVPRM_MOVE_PICTURE {
        EVPRM_MOVE_PICTURE__PICTURE_ID,
        EVPRM_MOVE_PICTURE__TRANSITION_TIME,
        EVPRM_MOVE_PICTURE__COORDINATE_OR_VARIABLE,
        EVPRM_MOVE_PICTURE__POSITION_X,
        EVPRM_MOVE_PICTURE__POSITION_Y,
        EVPRM_MOVE_PICTURE__MAGNIFICATION,
        EVPRM_MOVE_PICTURE__TRANSPARENCY_TOP,
        EVPRM_MOVE_PICTURE__TRANSPARENCY_BOTTOM,
        EVPRM_MOVE_PICTURE__COLOR_RED,
        EVPRM_MOVE_PICTURE__COLOR_GREEN,
        EVPRM_MOVE_PICTURE__COLOR_BLUE,
        EVPRM_MOVE_PICTURE__COLOR_SATURATION,
        EVPRM_MOVE_PICTURE__EFFECT,
        EVPRM_MOVE_PICTURE__EFFECT_VALUE,
        EVPRM_MOVE_PICTURE__WAIT
    };

    Geändert von Morden (23.05.2013 um 18:03 Uhr)

  12. #232
    Wäre dafür nicht ein eigener Thread besser geeignet, der dann alle Enum(s?) im Hauptthread zussammenfasst?

    Naja, ich zeig hier einfach mal meinen Enum(Und wer die hier besser bennenen kann, kann das gerne tun ._.):

    enum EVCMD_CHANGE_SWITCH {
    EVCMD_CHANGE_SWITCH_Switch_to_Change,
    EVCMD_CHANGE_SWITCH_SwitchID_Beg,
    EVCMD_CHANGE_SWITCH_SwitchID_End,
    EVCMD_CHANGE_SWITCH_Operation};

    So, wo liegt jetzt der Unterschied zwischen "SwitchID_Beg" und "SwitchID_End", beide geben die SwitchID aus. Sollte man jedoch "Switch Range" benutzen, kann man mit diesen beiden Variablen die Range festlegen. Das habe ich leider ohne dein Plugin herausfinden müssen, Gott war das eine Qual...

    PS: Wie macht ihr das mit dem "Codefenster"
    Edit: Den String habe ich jetzt nicht rausgesucht, kann mir aber gut vorstellen das es der Name des Switches ist...

    Geändert von djeurissen (23.05.2013 um 18:49 Uhr)

  13. #233
    Ich denke, wenn das gerechtfertigt ist dafür einen eigenen Thread aufzumachen, wäre das wohl angebracht^^

    Dann wirst du ja beim nächsten Mal hoffentlich nicht mehr solch eine Qual beim rausfinden erleiden müssen xD Und ich habe gerade nachgeschaut: Das Change Switch Command hat keinen StringParameter. Dieser wäre dann beim abfragen einfach leer.

    Das Code-Fenster erzeugst du, wenn du in eckigen Klammern <CODE></CODE> schreibst. Also anstatt der spitzen Klammern die eckigen []. Dazwischen denn den Code^^

    PeAcE
    MorDen

  14. #234
    Zum Thema Event-ID und so: Ich muss sagen dass das leider noch unzuverlässig ist, insbesondere die Page-ID. Also Event-ID für Map-Events sollte eigentlich funzen, aber Page-ID gibt manchmal einen falschen Wert an.

    Zum Thema "was bewirken Parameter" - hier ist der Sourcecode von jenem Modul was u.a. im EasyEventExporter, der RMEventFactory und dem RM2k3-Debug-Addon verwendet wird, was Eventcode als Text ausgibt. Da kann man gut die Bedeutungen rauslesen: http://pastebin.com/WxhXpFP8
    Zur Erklärung des Codes hier noch das Modul was das Clipboard-Interface darstellt und die Eventdatenstrukturen liest/schreibt, in diesem sind einige Enums definiert die vom anderen Modul verwendet werden: http://pastebin.com/KGKizyNt

    Hiermit sieht man z.B. dass bei Show Picture Parameter 7 nicht Transparency Bottom sondern "Transparente Farbe verwenden?" ist, während Parameter 14 Transparency Bottom ist (das kommt daher dass dieser Wert erst im 2k3 eingeführt wurde und daher hinten angehängt). Zeile 1079/1080 der ersten Datei.

    @djeurissen: Der String ist bei Set Switch gar nichts.

    EDIT: Zur Analyse könnte auch dieses Tool nützlich sein: http://suppy.bob.buttobi.net/tool/tb.html (Direktdownload: http://suppy.bob.buttobi.net/tool/tkoolbridge205.lzh) << Links in die Adresszeile einfügen, sonst kommt ein Fehler
    Ihr kopiert einfach eine oder mehrere Eventzeilen aus dem Maker und klickt dann den Button oben links und seht die Parameter.
    (Das Tool ist eigentlich dazu gedacht, Events in - verschickbaren und editierbaren - Text und zurück zu wandeln.)

    Geändert von Cherry (23.05.2013 um 22:52 Uhr)

  15. #235
    Oh, da ist mir wohl ein ziemlich heftiger Schlusigkeitsfehler unterlaufen - wie peinlich xD
    Ich muss aber zu meiner Verteidigung sagen, dass ich die enums zwar "komplett" geschrieben, aber nie komplett genutzt habe ^^''

    @Cherry
    Auf jeden Fall Danke Cherry - das hilft ungemein dabei. Ist außerdem mal sehr interessant in deinen Quellcode zu schauen

    Eine kleine (unaufdringliche) Frage: Planst du eigentlich DynRPG noch weiterzuentwickeln? Ich weiß, dass du nicht viel Zeit hast und mehr Arbeit als Zeit - ich frage nur ganz pauschal, ob man sich vielleicht innerhalb des nächsten halben Jahres noch über ein DynRPG-Update freuen kann? Ansonsten möchte ich dir auf jeden Fall meinen vollen Respekt zollen - ich verfolge dich und deine Arbeit ja schon von Beginn an, wenn auch sonst immer als stiller Mitleser xD

    PeAcE
    MorDen

  16. #236
    Es wär mir eine Freude, dran zu basteln. Aber ich bin jetzt nicht nur selbstständig und grade sehr beschäftigt, sondern ich bin jetzt dann auch noch CEO in einer Firma, um deren Gründung wiederum ich mich kümmern muss (weil die Geschäftspartner im Ausland sind). :/

    Who knows.

  17. #237
    Cherrüüüü ~ Findest du denn Zeit fürs BMT? ^^

  18. #238
    Ja, das schon, keine Sorge.

    Es ist nur so dass bei solchen Sachen wie bei DynRPG und allem was mit dem Maker zu tun hat ich mich immer so reinhänge dass dann alles andere eine Zeitlang im Hintertreffen bleibt, und das muss irgendwie so sein weil dann entstehen normalerweise die genialsten Sachen Ich kann irgendwie nicht so was wie "2 Stunden die Woche an Makerzeugs arbeiten" machen, da kommt nichts dabei raus.

  19. #239
    Stichwort "onDrawBattleActionWindow", das wird pro Frame 2 mal ausgelöst. Was das erste ist weiss ich nicht. Das zweite ist das Fenster von wegen "Angreifen, Verteidigen, Items" etc.
    Beim ersten funktioniert das isVisible-Flag nicht, der Callback kommt auch wenn da nichts zu sehen ist.

    Anmerkung: Ich hab den Patch drauf, der das "Kämpfen - Autokampf - Flucht"-Menü entfernt. Kanns damit zusammen hängen?

    Mein neuer Lieblingsbug:

    bool onDrawBattleActionWindow ( ...)
    {
    return true;
    }
    ----> Fenster wird angezeigt

    bool onDrawBattleActionWindow ( ...)
    {
    return false;
    }
    ----> Fenster wird NICHT angezeigt


    bool onDrawBattleActionWindow ( ...)
    {
    RPG::screen->canvas->draw (...) etc.
    return false;
    }
    ----> Fenster WIRD angezeigt (!!!!)

    Geändert von Corti (02.06.2013 um 02:39 Uhr)

  20. #240
    O_o
    OK wird überprüft...

Berechtigungen

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