Ich habe da einen Verdacht:
Du hast eine sehr sehr alte forest.php, die bei Waldereignissen, die mit $_GET statt mit $HTTP_GET_VARS arbeiten, nicht abgefangene Fälle provozieren kann.
Wenn Spieler auf ein besonderes Ereignis treffen, ist die forest.php mit
...op=search oder ganz ohne
op aufgerufen worden. Bevor das besondere Ereignis gestartet wird, setzt die forest.php $HTTP_GET_VARS['op'] auf "". Der Fall
$HTTP_GET_VARS['op'] == "search" kommt also in Specials nie vor und muss nicht abgefangen werden.
Ereignisse, die auf $_GET['op'] abfragen, MÜSSEN bei dir aber auch den Fall
$_GET['op'] == "search" berücksichtigen, weil deine forest.php eben nur $HTTP_GET_VARS['op'] auf "" setzt, nicht aber $_GET['op']!
Dein Special
demon.php ist z.B. davon betroffen. Der Fall
$_GET['op'] == "search" ist nicht abgefangen, eine Default-Schleife gibt es nicht - folglich bleibt das Ereignis leer, wenn es mit "...op=search" gefunden wird.
Die einfachere, aber nicht unbedingt zu empfehlende Lösung wäre es, alle Waldereignisse auf $HTTP_GET_VARS umzuschreiben, oder den Fall $_GET['op'] == "search" überall mit einzubauen, wo auf
$_GET['op'] == "" abgefragt wird.
Die bessere Lösung wäre es, die forest.php so umzuschreiben, dass sie sowohl Waldereignisse mit $_GET wie auch mit $HTTP_GET_VARS korrekt (nämlich ohne den Fall "search") versorgen kann.
Die forest.php von
hier beherrscht diesen Trick und kann dir vielleicht als Hilfestellung dienen.
Die beste Lösung wäre es natürlich, komplett auf $_GET umzusatteln.