Ich ergänze noch mal ein paar "moralische Bedeutungen":
1.) Da nicht alle specials wie "normale" Seiten von LotgD automatisch die common.php und damit das anti-cheat-system von sich aus einbinden, könnte man über einen direkten aufruf des Scriptes mit dem Browster womöglich cheaten. Daher wird, wenn nicht zunächst die forrest.php (und damit die common.php samt anticheat und $session) geladen wurde, die dann ihrerseits ein Special startet, das Script komplett abgebrochen.
2.) Erübrigt sich damit weitestgehen, ich würde es aber dahinter schreiben, da sonst jemand über massenhaften aufruf deiner Seite deine Logs überfluten könnte (das Böse lauert überall ^^)
3.) Das einbinden der common.php an dieser stelle ist sinnlos, da sie wie oben normalerweise bereits eingebunden ist. Ob gerade geprüft werden soll, ob ein neuer Tag ist hängt ebenfalls von deinem Special ab, ich empfehe es allerdings nicht zu tun, da so deer Spieler aus dem logischen Fluss gerissen werden könnte (hat plötzlich wieder volle HP etc) außerdem bin ich mir nicht ganz sicher, ob das Special durch das Verarbeiten eines neuen Tages vollends abgebrochen wird.
Sinnvollerweise beginnst du mit allgemeinen Initialisierungen oben, also alles, was du in jedem Fall brauchst. Danach kommt dann die Unterscheidung der einzelnen Zustände im Special, wobei ich emfehlen würde, mit if(empty($_GET['op'])) (startzustand) zu beginnen, da so am wenigsten Fehlermeldungen geworfen werden und du dich auch logisch von oben nach unten im Script durcharbeiten kannst. $HTTP_GET_VARS ist veraltet und sollte durch $_GET ersetzt werden.
4.) Genau das tritt auf, wenn Specials eben nicht sauber gecodet sind - oft gibt es hier Probleme mit den Unterschieden von $_GET und $HTTP_GET_VARS und der Art, wie diese auf ihren Wert geprüft werden (Manchmal werden einfach fälle nicht oder nur so behandelt, das sie nicht vorkommen können und dann gibt es eben keine aus zu führende Programmlogik, die Seite bleibt leer. Dazu gibt es aber ihr im Forum ans einigen Stellen Hinweise.
5.) Arrayschlüssel sollten - das hast du ganz richtig gehört - grundsätzlich als Strings notiert werden, also von Anführungszeichen eingeschlossen. Ausnahmen bilden nur die direkte Verwendung in Strings wie "Der wert ist $array[key]!", wobei hier auch "Der wert ist {$array['key']}!" als saubere Variante möglich ist. Oder aber wenn du tatsächlich eine Konstante zur Bestimmung des Feldes des Arrays verwendne willst:$this->bbcode_second_pass_code('', 'define('MYCONST',"hallo"); echo $array[MYCONST];'). Alles andere ist ein Fehler, über den PHP allerdings hinweg sehen kann, wenn man Glück hat - worauf man sich aber nicht verlassen solllte!
6.) Zum Runden gibt es in php drei wichtige Funktionen:
floor() rundet immer ganzzahlig ab,
ceil() rundet immer ganzzahlig auf und
round rundet "kaufmännisch" auf so viele Nachkommastellen, wie du es im zweiten Parameter angibst (default: 0).
Ich hoffe, du kannst damit etwas anfangen,
Auric