Frage zu Yanflys EventSpawner (Problem bei Despawn von Events per EventID)

  • Guten Tag liebe Leute,


    ich hab jetzt auch mal ne Frage... ich sitze jetzt schon stundenlang an meinen Events und finde den Fehler beim besten Willen nicht...


    Gibt es bekannte Fehler / Bugs die bei YEP EventSpawner auftreten? Hat jemand Erfahrung und weiß eventuell woran mein Problem liegen kann?

    Ich hab das ganze schon einmal in funktionierend gemacht und mache eigentlich gar nichts anders und es will nicht funktionieren... Deswegen bin ich ein bisschen verwirrt.


    Was will ich eigentlich erreichen?


    Ich möchte ein System kreieren, in dem der Spieler seine Ressourcen in ein "Extra Inventar" ablegen kann, in dem die mit der Zeit verarbeitet werden. Die Ressourcen sollen dynamisch (!) auf der Map auftauchen, man hat aber nur begrenzt Platz. Man kann seine Ressourcen auch wieder weg nehmen und dabei soll natürlich auch das Event mit dem Bildchen der Ressource wieder von der Map verschwinden.



    Also... Ich nutze Yanflys EventSpawner, um Waren / Nahrungsmittel auf der Map zu spawnen, die der Spieler aus dem Inventar abgibt.


    Im konkreten Fall handelt es sich dieses mal um eine Küche.


    Man kann Gemüse 1, Gemüse 2 und Gemüse 3 abgegeben. Die entsprechende Anzahl wird aus dem Inventar abgezogen und wird in die Variablen Gemüse1, Gemüse2 und Gemüse3 gespeichert.

    Alles daran funktioniert wunderbar. Man kann nicht mehr abgeben, als man hat, man hat nur eine gewisse Anzahl an Slots, in denen man die Items ablegen kann und diese Abfragen funktionieren alle tadellos.


    Wenn ich Gemüse 1 in die Küche stelle lasse ich folgendes Script laufen, um das entsprechende Event zu spawnen.


    Yanfly.SpawnEventInRegion(55, 3, 2, true)


    Das heißt das Event mit der ID 3 auf der Map 55 spawnt in der Region 2 der aktuellen Map und bleibt da, auch wenn man die Map wechselt und zurückkehrt (preserve = true).


    Die ID des gespawnten Events speichere ich in der Variable 501 mittels folgendem Script:


    $gameVariables.setValue(501, $gameMap.LastSpawnedEventID())


    Alles funktioniert. Ich habe in den Plugin Einstellungen als Templatemap die entsprechende ID meiner Map (55) von der aus die Template-Events (Gemüse1 = 003, Gemüse2 = 004 und Gemüse3 = 005) spawnen sollen eingegeben und Gemüse1 (ID 003) erscheint auch auf der Map in der entsprechenden Region (2) und alles ist gut.


    Dann hab ich natürlich die Option eingebaut, dass man seine Items zurück ins Inventar nehmen kann (also der Produktion in der Küche entzieht)

    Mit den Variablen und Items klappt alles.

    Dann soll das gespawnte Event von der Map verschwinden, mittels des Scripts:


    Yanfly.DespawnEventID($gameVariables.value(501))


    Und siehe da: Es funktioniert!


    Das Spawnen und Despawnen ist bislang noch vollkommen unabhängig von irgendwelchen Variablen oder Schaltern, außer der Anzahl der Slots beim Abgeben der Items. Wenn kein Platz mehr frei ist, wird auch nichts gespawnt und alles läuft fehlerlos. Man kann Gemüse1 eben abgeben, oder wieder mitnehmen...


    Jetzt kommt das Problem bei der ganzen Sache:


    Ich habe Gemüse2 und Gemüse3 auch erstellt und die werden auch auf die gleiche Weise gespawnt:


    Gemüse2:

    Yanfly.SpawnEventInRegion(55, 4, 2, true)

    $gameVariables.setValue(502, $gameMap.LastSpawnedEventID())


    Gemüse3:

    Yanfly.SpawnEventInRegion(55, 5, 2, true)

    $gameVariables.setValue(503, $gameMap.LastSpawnedEventID())


    Das funktioniert!

    Was aber nicht funktioniert, ist das Despawning!


    Gemüse2

    Yanfly.DespawnEventID($gameVariables.value(502))


    Gemüse3

    Yanfly.DespawnEventID($gameVariables.value(503))


    Gemüse 1 kann ich also spawnen und despawnen wie ich lustig bin, wohingegen ich Gemüse 2 und Gemüse 3 nur spawnen, aber nicht despawnen kann.


    Die IDs der Events werden richtig in der entsprechenden Variable hinterlegt und mein Test-Event welches nur folgenden Text ausgibt bestätigt mir das sobald ich mal die Waren in die Produktion gegeben habe ( Sie dementsprechend gespawnt sind).


    \V[501] = 1001

    \V[502] = 1002

    \V[503] = 1003


    Anbei werde ich jetzt noch BIlder der Events hier rein stellen, sonst ist es natürlich etwas schwierig zu helfen. Wie gesagt: Mit den Variablen klappt eigentlich alles (außer einer Kleinigkeit, die aber nichts mit den Spawns / Despawns zu tun hat)


    Das ist Gemüse1... Hier wird das Event gespawnt, alles klappt.






    Das war das Spawnen für Gemüse2 und 3... alles klappt. Die IDs der gespawnten Events wird auch korrekt in den Variablen abgespeichert.




    Das ist der Despawn für Gemüse 1-3 .... Gemüse 1 macht keine Probleme und despawnt, aber Gemüse 2 und 3 despawnen nicht.




    Plugin Einstellungen... Eigentlich alles richtig, sonst würden die Events ja auch nicht spawnen.


    Habe ich eventuell nur etwas übersehen? Für mich sieht da alles gleich und richtig aus, aber man hat es ja manchmal, wenn an schon stundenlang an etwas hängt, dass man dann den Wald vor lauter Bäumen nicht mehr sieht.



    Falls mir keiner speziell damit helfen kann:


    Gibt es möglicherweise einen anderen Weg dynamisch verschiedene Bildchen aufploppen zu lassen, je nachdem was der Spieler abgeben / mitnehmen will? Ich fand halt YEP EventSpawner ganz praktisch, weil man direkt Slotbegrenzungen anhand der Regions für verschiedene Events definieren kann und die Events dann einfach zufällig wo gerade Platz ist in der entsprechenden Region spawnen. Dazu dachte ich eben, dass ich das mit der EventID so machen kann wie oben angegeben... bei Gemüse1 funktioniert ja alles, nur bei 2 und 3 eben der Despawn nicht. Ich hatte bereits ganz ähnlich einen Laden gemacht in dem mach verschiedene Waren ausstellen und verkaufen konnte und da funktionierte alles mit meinen zwei Test Events... Hab eigentlich nichts anders gemacht (Außer dass man beim Laden direkt aus dem Inventar verkauft hat und die Items nicht erst in eine Variable umgebaut wurden und dort habe ich bereits implementiert, dass das Item verschwinden soll, wenn die Anzahl auf 0 gegangen ist. Das fehlt hier noch, hat aber jetzt gerade nichts damit zu tun, dass ich die Events nicht despawnen kann, wenn ich sage, dass das Event despawnt werden soll^^.


    Vielen Dank schon einmal im Vorfeld.


    EDIT: Also ja... Ich könnte es so machen, dass ich verschiedene Events überall hin setze und man dahin gehen kann, um Dinge dort zu platzieren = entsprechender Schalter an = Bild verändert sich.

    Ich wollte das aber am aller liebsten chillig aus einem Menü heraus "automatisieren" Sodass man eben einfach auswähl wovon wieviel abgegeben wird und dann spawnt es halt da wo es hingehört, ohne dass ich irgendwelche blinkenden "Hier-kannst-du-etwas-platzieren"-Marker auf die Map packen muss ... Hrmmm Momentan bin ich einwenig versucht das aber genau so "easy" zu machen... Wollte halt eigentlich so viele Schalter einsparen wie möglich. -.-

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von AcoBaco ()

  • Der Thread kann geschlossen / gelöscht werden.


    Ich habe zwar nach wie vor keine Ahnung warum es nicht ging, aber in einem neuen Projekt funktioniert das ganze mit YEP_EventSpawner. Ich hoffe, dass das so bleibt... Ich will nicht immer wieder alles in ein neues Projekt kopieren müssen, wenn da was nicht funktionieren will...


    Ich habe im Prinzip alles genauso gemacht wie oben abgebildet. Habe sogar die Eventseite kopiert und eingefügt und dann nur eben die Template Map geändert und die Spawns entsprechend angepasst. Der Despawn funktioniert nun mit allen 3 Gemüsesorten.


    Ich weiß natürlich nicht genau woran es lag, dass das nicht ging, aber ich gehe davon aus, dass ich in dem "alten" Projekt einfach zu viele Änderungen über die Zeit vorgenommen habe. Sowohl an Maps, Plugins, etc... Ich habe eben vieles ausprobiert, um die "schönsten" Mechaniken mit den wenigsten Variablen und Schaltern herauszubekommen. xD Dabei scheint sich irgendetwas in die Quere gekommen zu sein, sodass das Despawn Skript nicht funktionieren wollte. Eine richtige Erklärung habe dafür wie gesagt nicht, da die EventIDs alle als Variablen gespeichert waren und der Despawn eigentlich - wie jetzt der Fall - hätte funktionieren müssen.