Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : RPGMMV: Events per plugin setzen



saschalois
31.05.2016, 13:21
Hey!

Ich bin ziemlich neu im Forum und hoffe ich poste hier in die richtige Kategorie ;)
Andernfalls möchte ich mich schonmal entschuldigen, ich kenn die Bräuche hier noch nichtso :D

Also ich fang am besten mit der Vorgeschichte zu meinem Problem an:

Ich habe bisher immer mit dem RPG Maker XP oder dem VX Ace gearbeitet. Da ich kein Ruby programmieren kann wollte ich vor einigen Tagen damit beginnen es zu lernen. Auf der Suche nach guten Tutorials hab ich dann etwas über den RPG Maker MV gelesen. Nämlich dass man damit auch fürs Web / Android / IOS veröffentlichen kann und das die Scriptsprache im MV javascript ist. Wie der zufall so wollte war der MV auch gleich mal um die hälfte verbilligt in Steam also dachte ich mir muss ich mir den holen.

Nun hab ich ihn seit ein paar Tagen und muss sagen ich bin in dieser kurzen Zeit seeeeeeehr viel weiter gekommen als in den Scripts vom XP und vom VX Ace. Das liegt unter anderem daran das ich Javascript von der Webentwicklung bereits recht gut kenne.


Nun möchte ich ein Plugin schreiben (oder zumindest mal eine "pre-aplha" eines plugins ^^) um "Multiplayer" spielen zu können. Im Prinzip soll man fürs erste mal nur den anderen Spieler sehen. Dafür habe ich es bereits geschafft die aktuelle Position und Map ID des Spielers in eine SQL Datenbank zu speichern. Die Abfrage würde ansich auch recht gut funktionieren nur fehlt mir für die Ausgabe im Spiel etwas. Ich brauche einen "Befehl" damit ich ein Event erstellen kann und irgendwie eine Möglichkeit dieses Event einer Datenbank ID zuzuweisen (damit bei erneuter Abfrage kein neues Event erstellt wird sondern wenn es bereits vorhanden wird bewegt wird).

Ich kann mir vorstellen das die zuweisung zu einer Datenbank ID wahrscheinlich der schwerere Teil davon ist, aber ein Event zu erzeugen müsste doch relativ einfach gehen oder?



Danke schonmal! :)

MagicMaker
31.05.2016, 14:11
Also ich find ja, Ruby-Code ist weitaus hübscher lesbar als JS, aber wenn du dich schon eh damit auskennst, umso besser.

Hab mal in MV-Code reingeguckt, Events sind genau wie vorher immer auch ein Array von Game_Map, in diesem Fall
ist das innerhalb davon ._events, da sollte es eigentlich auch nicht besonders schwer sein, ein weiteres Event mit
reinzuschmuggeln (gefüllt wird die Liste bei setupEvents).

Was aber dafür genau für Code angelegt werden muss, denn irgendwoher muss das Event seine Eigenschaften bekommen,
da bin ich überfragt.

saschalois
01.06.2016, 08:09
Vielen Dank MagicMaker! :)

Also erstellt wird ein Event denk ich mit diesem Befehl:

new Game_Event(this._mapId, i);

Aber ja wie du sagst die Eigenschaften für ein Event müssen erstmal angelegt werden.. dazu konnte ich jetzt Momentan auch noch nicht wirklich was dazu finden.

Aber wenn ich ein fixxes Event erstelle (im RPG Maker) und dann für jeden Spieler dieses Event aufrufe und nur die Position des Events ändere könnte es ja womöglich auch funktionieren..
Werd mich bei gelegenheit mal ein bisschen durchtesten was es für Möglichkeiten gibt ;)

Linkey
01.06.2016, 09:52
Game_Event besitzt die Funktion "event()", welche fix aus $mapdata liest. Wenn du also ein neues Event anlegst, versucht er aus den Mapdaten des Makers zu lesen - was ja nicht möglich ist, da es dieses Event nicht gibt.

Auf dem XP hatte ich es so gelöst, dass ich bei meiner Methode zum Erstellen eines neuen Events, ein vorhandenes einfach kopiert, anschließend die Eigenschaften gesetzt und es dann in das Game_Map Array geschoben habe (eventid = höchste event id +1). Dadurch muss kaum eine Standard-Methode angepasst werden.

saschalois
06.06.2016, 07:34
Game_Event besitzt die Funktion "event()", welche fix aus $mapdata liest. Wenn du also ein neues Event anlegst, versucht er aus den Mapdaten des Makers zu lesen - was ja nicht möglich ist, da es dieses Event nicht gibt.

Auf dem XP hatte ich es so gelöst, dass ich bei meiner Methode zum Erstellen eines neuen Events, ein vorhandenes einfach kopiert, anschließend die Eigenschaften gesetzt und es dann in das Game_Map Array geschoben habe (eventid = höchste event id +1). Dadurch muss kaum eine Standard-Methode angepasst werden.


Okay, danke! Werd versuchen ob ichs etwa so hinbekomme :D