Ist eigendlich gar nicht so schwer zu verstehen:
Zunächst wird erst einmal geprüft ob der betreffende User überhaupt noch eingelogged ist bzw ob die User-ID nicht leer ist:
$this->bbcode_second_pass_code('', 'if ($session[loggedin] && $session[user][acctid]!=""){')
dann werden Felder in $session['user'] welche ein Array beinhalten serialisiert, d.h. es wird aus diesem Array ein String generiert der somit dann auch in ein Feld der Datenbank geschrieben werden kann:
$this->bbcode_second_pass_code('', '      $session[user][allowednavs]=serialize($session[allowednavs]);
      $session[user][bufflist]=serialize($session[bufflist]);
      if (is_array($session[user][prefs])) $session[user][prefs]=serialize($session[user][prefs]);
      if (is_array($session[user][dragonpoints])) $session[user][dragonpoints]=serialize($session[user][dragonpoints]);')      
danach wird ein String gebaut der alle Elemente mit den dazugehörigen Werten aus eben diesem $session['user'] Array enthält:
$this->bbcode_second_pass_code('', '   $sql="UPDATE accounts SET ";
     reset($session[user]);
     while(list($key,$val)=each($session[user])){
        if (is_array($val)){
            $sql.="$key='".addslashes(serialize($val))."', ";
         }else{
            $sql.="$key='".addslashes($val)."', ";
         }
     }
     $sql = substr($sql,0,strlen($sql)-2);
     $sql.=" WHERE acctid = ".$session[user][acctid];')
Uns dieser String wird dann an die MySQL-Datebank geschickt um alle Felder in der Tabelle accounts zu aktualisieren:
$this->bbcode_second_pass_code('', 'db_query($sql);')
wenn du wirklich eine derartige Funktion selbst schreiben möchtest wirst du dich wohl näher mit der Syntax von PHP und insbesondere mit den SQL-Abfragen auseinander setzen müssen. Also kann ich dir nur Empfehlen einschlägige Dokus zu PHP und MySQL zu studieren denn sonst wird das nichts. 
