Ich hab zum rumprobieren und rumspielen bei mir die "findgem.php" um einen differenzierten Fall erweitert, das e_rand gegen ein mt_rand ausgetauscht.
Und dann dachte ich mir: Anstatt $session['user']['gems'] mehrfach per "if" und "elseif" abzufragen müsste eine einmalige Abfrage und folgendes überprüfen per "switch" eigentlich Datenbank freundlicher sein (wenn mich das täuscht klärt mich bitte auf, lese mich erst nach und nach in alles ein)
Leider funktionierte es dann nicht mehr so wie es sollte. Das Special löste nämlich dann, falls man 0 Gems hat den Fall 1 (1 Gem) aus - alle anderen Möglichkeiten funktionierten. Ich hab mir einiges über die Funktion "switch" durchgelesen, und hab rausgefunden woran es liegt - nur richtig verstehen tu ich es noch nicht, wäre nett wenn es mir jemand erklären könnte.
Zur Erläuterung hier der Teil den ich hinzugefügt habe (im Original Script dann natürlich als eigenen Case):
$this->bbcode_second_pass_code('', '$gemsnow = $session['user']['gems'];
output("`^Eine Lichtfee schwirrt aus dem Wald an dich heran und fliegt neugierig um dich herum.");
switch ($gemsnow){
case ($gemsnow<=0):
default:
output ("`n`^Nach kurzer Zeit fliegt sie weg und wirkt irgendwie etwas enttäuscht. Kurze Zeit später siehst du ein Leuchten im Wald.
Als du hingehst siehst du die Fee an zwei Edelsteinen hängen die beginnen zu leuchten. Als du näher kommst flattert sie auf und
nimmt dabei einen der Edelsteine mit an dem sie mit ihren klebrigen Fingern hängt. Den anderen steckst du ein und du gehst freudig
zurück auf deinen Weg`0");
$session['user']['gems']++;
break;
case ($gemsnow==1):
output ("`n`^Plötzlich fliegt sie an deinen Edelsteinbeutel, schmiegt sich daran und mit ihren klebrigen 4 Fingerchen
jeder Hand hält sie sich daran fest. Du überlegst noch was du tun sollst als du bemerkst dass der Edelstein darin
durch den Beutel hindurch zu leuchten beginnt. Immer heller wird er, und als du nachsehen willst was damit passiert
und den Beutel öffnest zerreisst es ihn durch die viele Energie und die herumfliegenden Scherben zerschneiden dein Gesicht.`n
Die Fee ist vor Schreck aufgeflogen und du siehst sie nicht mehr. Als du aber deine Wunden begutachtest kommt sie zurückgeflattert
und wirkt furchtbar traurig. Als du die Splitter endlich aus dem Gesicht hast streicht sie dir über die Wunden und sie heilen. Es fällt
dir schwer diesem Geschöpf wirklich böse zu sein. Als du deinen Weg forsetzt, und die Fee dir zum Abschied winkt ehe sie wirklich
verschwindet, fühlst du dich durch ihre Behandlung und deine Einstellung etwas schöner. (Charme +1)`0");
if ($session['user']['gems']>0){$session['user']['gems']--;}
$session['user']['charm']++;
break;
case ($gemsnow>=2):
output ("`n`^Plötzlich fliegt sie an deinen Edelsteinbeutel, schmiegt sich daran und mit ihren klebrigen 4 Fingerchen
jeder Hand hält sie sich daran fest. Du überlegst noch was du tun sollst als du bemerkst dass die Edelsteine
durch den Beutel hindurch zu leuchten beginnen. Kurz darauf fliegt die Fee fröhlich glucksend wieder davon.`n
Du holst die Edelsteine hervor und untersuchst sie. Sie leuchten immer noch, und du meinst auf einmal dass sie aufeinander
reagieren. Als du noch am ausprobieren bist glaubst du ein Ziehen in eine Richtung zu spüren und nach kurzer Zeit findest du
dort wirklich einen weiteren Edelstein. Bei all dem hast du aber einen Waldkampf verloren.`0");
$session['user']['gems']++;
$session['user']['turns']--;
break;
}')ersetzt man die Zeile mit dem "switch" durch folgendes
$this->bbcode_second_pass_code('', 'switch (true){')
klappt es - die Lösung hab ich
hier gefunden, im dritten Kommentar (von ukuser, 01 Aug. 2009).
Wie gesagt, klappen tuts jetzt (bin während dem Schreiben des Posts draufgekommen (hab nochmal nachgelesen)), aber wenn mir wer helfen könnte es zu verstehen wär ich sehr dankbar