Ergebnis 1 bis 20 von 232

Thema: DynRPG - Der Pluginwunschthread

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Theoretisch könnte man GetModuleHandle und GetProcAddress verwenden, um einen Pointer auf ein Callback eines anderen Plugins zu bekommen. Das ist so aber eigentlich nicht vorgesehen; es sei denn ein Plugin stellt bewusst eine zusätzliche Funktion auf diesem Wege zu Verfügung. Es kann aber natürlich funktionieren.

  2. #2
    Naja, wollte ich auch nur wissen dann werde ich mein Plugin halt so gestalten das ich meine KI im Maker schreiben kann XD

  3. #3
    Der Code hier müsste theoretisch gehen, für deinen Fall. Aber nur unter der Annahme, dass das Plugin, was du aufrufst, wirklich nur parsedData verwendet und nicht versucht, irgendwas mit text, nextScriptLine oder so zu machen:

    Code:
    typedef bool __cdecl (*ONCOMMENT_CALLBACK)(const char *, const RPG::ParsedCommentData *, RPG::EventScriptLine *, RPG::EventScriptData *, int, int, int, int *);
    
    HINSTANCE hInstOtherPlugin = GetModuleHandle("name_of_other_plugin");
    if(hInstOtherPlugin) {
    	ONCOMMENT_CALLBACK alienOnComment = GetProcAddress(hInstOtherPlugin, "onComment");
    	if(alienOnComment) {
    		RPG::ParsedCommentData fakeCommentData = {0};
    
    		strcpy(fakeCommentData.command, "command_to_be_called");
    		fakeCommentData.parametersCount = 2;
    
    		fakeCommentData.parameters[0].type = RPG::PARAM_NUMBER;
    		fakeCommentData.parameters[0].number = 1234;
    
    		fakeCommentData.parameters[1].type = RPG::PARAM_STRING;
    		strcpy(fakeCommentData.parameters[2].text, "Hello World!");
    
    		try {
    			if(!alienOnComment(NULL, &fakeCommentData, NULL, NULL, 0, 0, 0, NULL)) {
    				// Yesss! The other plugin seems to have handled our fake request!
    			} else {
    				// The other plugin returned true, i.e. it probably didn't handle the request
    			}
    		} catch(...) {
    			// Oops, something crashed - maybe the other plugin tried to access something we didn't provide, such as the event script data
    		}
    	} else {
    		// The other plugin seems not to have an onComment handler...
    	}
    } else {
    	// The other plugin seems not to be loaded...
    }

  4. #4
    Ist es möglich, die Menü-Dinger von Row und Aktiv/Passiv in einen Switch umzuwandeln, der irgendwas aktiviert? Mit Save_Switch_1005 hattest du das ja bereits wunderbar für die Menü-Speicherfunktion umgemodelt =)

  5. #5
    Zitat Zitat von Davy Jones Beitrag anzeigen
    Ist es möglich, die Menü-Dinger von Row und Aktiv/Passiv in einen Switch umzuwandeln, der irgendwas aktiviert? Mit Save_Switch_1005 hattest du das ja bereits wunderbar für die Menü-Speicherfunktion umgemodelt =)
    So, wie ich das verstanden habe, gibt es so etwas schon:
    http://rpgmaker.net/forums/topics/13468/

    Unter CMS Tools: Menu Transition Tweaks.

    Aber mein Englisch ist mies, also noch einmal besser selbst durchlesen

    - Das Inno -

  6. #6
    Nein, das bezieht sich darauf, den Übergang vom Menü auf ein eigenes Untermenü (mit dem Save oder Order Switch Plugin) besser zu machen.

  7. #7
    Yo, gibt es die Möglichkeit, irgendwie die Positon der Textbox anzupassen? Es muss nicht die Box sein, die Position der 4 Zeilen text alleine reicht theoretisch.

  8. #8
    Ich sehe, dass man dort Order und Quit für Switches gebrauchen kann, nicht aber Row und Aktiv/Passiv.

    @Cherry: Ist es überhaupt möglich, diese beiden Menüpunkte für Switches zu benutzen?

  9. #9
    Alles ist möglich, es müsste nur wer anpassen. (Nein, ich jetzt nicht.) Du kannst PepsiOtaku ja fragen...

  10. #10
    Wäre es möglich ein Plugin zu schreiben welches den Text aus einer Spritefont zieht und damit die Schriftart des Makers ersetzt?

    Verzweifle nämlich langsam an der Schriftart des Makers und würde diese gerne ersetzen....nur passende Fonts habe ich bis jetzt nur
    auf Spritefonts auf Spriters-Resource gefunden......

  11. #11
    Wenn ich denn mal ein onDrawCharacter-Callback mache (was ich vorhabe), hoffentlich. Im Moment wirds wohl schwierig.

  12. #12
    Nun zu etwas eher Exzentrischen: Ich überlege seit längerem, ob es nicht eine Möglichkeit gibt, Monster in ihrem Level skalieren zu lassen. Das Feature würde ich gerne als Plugin lösen, ich bräuchte also ( mal wieder ) Speicheradressen-Knowhow.

    Ich bräuchte:
    - lesenden und schreibenden Zugriff auf die in der aktuellen Monsterguppe befindlichen Status-Werte ( Atk, Def, Int, Agi , Exp, Gold )
    - lesenden und schreibenden Zugriff auf die Monsterdatenbank und deren Werte. Ich gehe mal davon aus, dass die getMaxHp-Funktionen etc. der Monster auf die Einträge der Datenbank verweisen.

    Was ich tun würde:
    - Werte des Monsters aus der DB auslesen und in eigener Datenstruktur sichern
    - MonsterEintrag in DB und in Monstergruppe mit aktuellen Werten überschreiben
    - Nach Kampfende die Originalwerte zurückschreiben

    Was ich beisteuern kann: (weniger für Cherry als für bugmenot )
    static RPG::CatalogPtr<RPG::Monster *> &monsters = (**reinterpret_cast<RPG::CatalogPtr<RPG::Monster *> **>(0x4CDE64));
    Dort sind die aktuellen Monster.

    Monster (TLcfgMonsterItem) erbt von ( TLcfgUnitItem ), die Aufrufe von getMaxHp werden in DynRPG über die vTable gemacht. Was sind das, Funktionszeiger?

  13. #13
    Zitat Zitat von Corti Beitrag anzeigen
    lesenden [...] Zugriff auf die in der aktuellen Monsterguppe befindlichen Status-Werte

    Keine Ahnung, wie man den Zugriff von RT -(read)-> DB auf RT -(write)-> DB umdrehen kann.

    Zitat Zitat von Corti Beitrag anzeigen
    *> **>(0x4CDE64));
    Da steht mehr als nur die PartySize drin? Hm...

    Zitat Zitat von Corti Beitrag anzeigen
    Monster (TLcfgMonsterItem) erbt von ( TLcfgUnitItem ), die Aufrufe von getMaxHp werden in DynRPG über die vTable gemacht. Was sind das, Funktionszeiger?
    vTable? Nevermind...

    Unter TLcfgMonsterItem und TLcfgUnitItem befinden sich Funktionen zur Vergabe und Berechnung von Werten/Schaden/Logik:

    Geändert von bugmenot (22.01.2014 um 19:02 Uhr)

Stichworte

Berechtigungen

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