Ich habs bisher selbst nicht benutzt und hab jetzt auch grad keine Möglichkeit es zu testen daher mal blind gescriptet.
Zitat
Und wenn ich schon dabei bin, ich verstehe nicht wann ich -> benutzen muss und wann ::
...
:: ist wenn du an einen Namensraum willst, z.B. RPG, kennst du von std::string, dort ist std der Namensraum.
-> wenn du auf Inhalte von etwas zugreifen willst, dass dir als Pointer vorliegt, wie hier scriptLine, siehe Sternchen ;-)
Schau dir am besten dies hier mal an: http://www.youtube.com/watch?v=YurDkWSh41M
erklärt das einfach und schnell. Die insgesamt 20 Minuten sinds wert wenn man da noch unsicher ist.
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
--
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________
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...
--
Langzeitstudien an einer Universität in England haben ergeben, dass Homosexuelle die Signaturen anderer immer mit der Hand auf der Maus lesen.
Du brauchst sie jetzt nicht mehr wegzunehmen, es
ist eh schon zu spät....
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
--
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________
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.
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
--
Langzeitstudien an einer Universität in England haben ergeben, dass Homosexuelle die Signaturen anderer immer mit der Hand auf der Maus lesen.
Du brauchst sie jetzt nicht mehr wegzunehmen, es
ist eh schon zu spät....
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
--
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________
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
--
Langzeitstudien an einer Universität in England haben ergeben, dass Homosexuelle die Signaturen anderer immer mit der Hand auf der Maus lesen.
Du brauchst sie jetzt nicht mehr wegzunehmen, es
ist eh schon zu spät....
@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):
Das tut der Tracker mit allen EventCommands, außer dem Comment - da ich das für nicht nötig hielt das mit zu tracken.
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________
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:
--
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________
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...
--
Langzeitstudien an einer Universität in England haben ergeben, dass Homosexuelle die Signaturen anderer immer mit der Hand auf der Maus lesen.
Du brauchst sie jetzt nicht mehr wegzunehmen, es
ist eh schon zu spät....
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
--
»Ein Traum kann auch die Wehmut nach der verlorenen Vergangenheit sein…«
»Manchmal ist eine Enttäuschung auch einfach nur das Ergebnis zu hoher Erwartungen.«
__________________________________________________________________________