Ergebnis 1 bis 20 von 506

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Die Frage war auch eher an Cherry gerichtet.

  2. #2
    Ich hab's wenigstens versucht

  3. #3
    Ich weiss das zu würdigen, danke :-)

  4. #4
    Hi. Ich dachte ich frag mal hier bei euch nach.

    Gibt es eine Möglichkeit mehrere Variablen miteinander zu vergleichen um die größte bzw. kleinste Variable herauszufinden?

    Die Frage kam im Probleme-Sammelthread auf und mich würde auch interessieren, ob sowas möglich ist und - wenn ja - wie man das angehen könnte.

  5. #5
    Wenn die Variablen alle in einer Reihe liegen, also z. B. 401, 402, 403, 404, geht das einfach und ohne Plugins mit einem Pointer und einer Schleife.
    Hier ein Beispiel für den größten Wert:
    Code:
    pointer = 401
    vergleich = 0
    ergebnis = 0
    label #1
    vergleich = variablen[pointer]
    if vergleich > ergebnis
        ergebnis = vergleich
    endif
    if pointer < 404
        pointer += 1
        goto label #1
    endif

  6. #6
    Danke. Aber wenn die Varis jetzt nicht in einer Reihe liegen, sondern wild gestreut sind? :/

  7. #7
    Klaro. Geht sogar ohne DynRPG. Kannst du dir selbst in einem CE bauen. Musst halt nur den Index der zu vergleichenden Variablen in einen Datenbereich schreiben und dir dann einen CE basteln, der die an diesen Punkten liegenden Daten miteinander vergleicht.

  8. #8
    Tagchen, ich hätte da mal ne frage...

    Ich benutze den Callback "onSetSwitch" und das klappt auch super, aber gibt es eine Möglichkeit nun die EventID und die MapID vom Event zu bekommen, das diesen Befehl ausführt?

  9. #9
    Es gibt den Callback "onEventCommand" da bekommst du Daten zum ausführenden Event gleich mit.
    http://rpg-maker.cherrytree.at/dynrp...44142110ee9776

    Im Parameter (EventCommand command) kannst du den Typen des Befehls abfragen, hier gibts mögliche Commands.
    http://rpg-maker.cherrytree.at/dynrp...143a88beab89d5

  10. #10
    Sry, bin noch relativ neu mit C++ und generell verstehe ich vieles noch nicht XD...

    Also ich benutze "onEventCommand" aber was muss dan gemacht werden, damit ich abfragen kann ob nun ein switch verändert wird? Weil das hier klappt nicht wirklich so wie ich es mir gedacht habe...

    if (RPG::EventCommand(EVCMD_CHANGE_SWITCH(1))
    {
    return false;
    }

    Und wenn ich schon dabei bin, ich verstehe nicht wann ich -> benutzen muss und wann ::

  11. #11
    Ich habs bisher selbst nicht benutzt und hab jetzt auch grad keine Möglichkeit es zu testen daher mal blind gescriptet.

    Code:
    onEventCommand ( RPG::EventScriptLine *  scriptLine, RPG::EventScriptData *  scriptData, int  eventId,	int  pageId, int  lineId,	int *  	nextLineId 	) 	
    {
    // in scriptline ist enthalten welcher Befehl verwendet wurde. 
    // scriptLine hat einen Member namens "command" vom Typ RPG::EventCommand, das ist ein enum, aus dem Namensraum RPG
    // (http://rpg-maker.cherrytree.at/dynrp...ript_line.html)
    if(scriptLine->command == RPG:: EVCMD_CHANGE_SWITCH) // darum hier der Vergleich mit dem Enumwert, der dem Switchbefehl entspricht
    {
    
    }
    
    return true;
    }
    Zitat 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.

  12. #12
    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 15:02 Uhr)

Berechtigungen

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