Also abgesehen von den Dingen die schon von anderen erwähnt wurden passen auch noch ein paar andere Dinge nicht in dem Script, zumindest so wie dasmeine Augen sehen:
condo hat geschrieben:
$this->bbcode_second_pass_code('', '\"Der 40er Reise Pass kostet `15000 Gold`0 Gold und `%10 Edelsteine`0");')
So wie ich das sehe wird hier der Preis falsch dargestellt, nämlich 5000 in der Farbe `1 - Anstatt 15000 wonach dann auch abgefragt wird.
$this->bbcode_second_pass_code('', '{
output("Du hast dir ein 40er Reisepass gekauft!!!");
savesetting("reisepass", $keys-1);
$session[user][reisepass]+=40;
$session[user][gold]>14999;
$session[user][gold]-=15000;
if ($session[user][gems]>9){
$session[user][gems]-=10;
}')
Also die Zeile "$session[user][gold]>14999;" ist eine reine Abfrage, ohne einer if Verknüpfung, die kannst du dir also sparen, erfüllt hier soweit ich sehe keinen Sinn.
Und die Abfrage "if ($session[user][gems]>9)" ist auch nicht wirklich toll hier, denn selbst wenn es ein User schaffen sollte irgendwie Edelsteine zwischen Link (w das schon abgefragt wird) und diesem Ereignis zu verlieren, will man ihn j wohl auch nicht noch dafür belohnen indem man ihm dann nichts abzieht nur weil er weniger als 10 Edelsteine hat - weil den Reisepass hat er zum Zeitpunkt der Abfrage längst in der Tasche ("$session[user][reisepass]+=40;")...
$this->bbcode_second_pass_code('', 'if ($session[user][reisepass]<>1 && $session[user][gold]>=15000 && $session[user][gems]>10)
addnav("Kaufe Reisepass","reise-büro1.php?op=steam");}
break;')
Und mit dieser Zeile "$session[user][gems]>10"wird abgefragt ob der User 11 Edelsteine oder mehr hat, das heisst er gibt zwar nur 10 aus, braucht aber 11 um den Link zu sehen - kommt öfters auch richtig vor, ist also wohl ein Flüchtigkeitsfehler.
Weniger flüchtig ist das daran: "if ($session[user][reisepass]<>1" - dieser Teil führt nämlich dazu dass der Link kommt wenn man weniger oder mehr als 1 in Reispass hat. Das funktioniert nur richtig wenn"if ($session[user][reisepass]" als Schalter funktioniert der nur 0 oder 1 annehmen kann. Da "if ($session[user][reisepass]" in dem Script um 40 erhöht wird, kann es also auch höhere Werte annehmen, eine passende Abfrage wäre wohl
$this->bbcode_second_pass_code('', 'if ($session[user][reisepass]==0 && $session[user][gold]>=15000 && $session[user][gems]>=10)')
So wie du sie dann weiter unten verwendet hast
Und wenn du Abfragen willst ob irgendetwas einen Wert NICHT besitzt ist es besser "!=" anstatt "<>" zu verwenden
Das wären soweit die gröbsten Sachen die mir als erstes ins Auge gestochen sind...