0) $npc = $prefs['akt_npc']; db_free_result($result); } if($npc == 0) { $all = getUsrNPCs($userid); $npc = $all[0]; } } return $npc; } function getUsrNPCs($userid) { $sql = "SELECT `acctid`, `npc` FROM `accounts` WHERE `acctid`=".$userid." LIMIT 1"; $result = db_query($sql) or die(db_error(LINK)); $usr = db_fetch_assoc($result); db_free_result($result); $npcs = array(); if($usr['npc'] == 'aktiv') { $sql = "SELECT `n`.`id` FROM `npc` AS n, `z_npc` AS z WHERE `n`.`id`=`z`.`npc_id` AND `z`.`user_id`=".$userid; $result = db_query($sql) or die(db_error(LINK)); $npc = 0; while($row = db_fetch_assoc($result)) { $npcs[] = $row['id']; } } return $npcs; } function getUsrNPCsData($userid) { $sql = "SELECT `acctid`, `npc` FROM `accounts` WHERE `acctid`=".$userid." LIMIT 1"; $result = db_query($sql) or die(db_error(LINK)); $usr = db_fetch_assoc($result); db_free_result($result); $npcs = array(); if($usr['npc'] == 'aktiv') { $sql = "SELECT `n`.* FROM `npc` AS n, `z_npc` AS z WHERE `n`.`id`=`z`.`npc_id` AND `z`.`user_id`=".$userid; $result = db_query($sql) or die(db_error(LINK)); $npc = 0; while($row = db_fetch_assoc($result)) { $npcs[] = $row; } } return $npcs; } /** * Gibt die Zeit bi zum Nächsten Tag an * * @param Format_String('array','hours','minutes','seconds','realseconds') $what * @return Array/String */ function timetotomorrow($what="array"){ $time = gametime(); $tomorrow = mktime(0,0,0,date('m',$time),date('d',$time)+1,date('Y',$time)); $secstotomorrow = $tomorrow-$time; $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4)); $hours=(int)($realsecstotomorrow/60/60); $minutes=(int)($realsecstotomorrow/60)-$hours*60; $seconds=$realsecstotomorrow-($hours*3600+$minutes*60); if ($what=="hours"){ return($hours); }elseif ($what=="minutes"){ return($minutes); }elseif ($what=="seconds"){ return($seconds); }elseif ($what=="realsecs"){ return($realsecstotomorrow); }else{ return(array( "hours"=>$hours, "minutes"=>$minutes, "seconds"=>$seconds, "realsecs"=>$realsecstotomorrow )); } } //User muss die ID sein function aboni_r($feld=false,$user=false) { global $session; if(!$user) { $all = explode('|',$session[user][aktiveboni]); } else { $row = db_fetch_assoc(db_query("SELECT aktiveboni FROM accounts WHERE acctid = ".$user)); $all = explode('|',$row[aktiveboni]); } if(!$feld) { return $all; } else { return $all[$feld]; } } function aboni_w($feld,$wert,$methode="plus",$user=false) { //$methode muss sein: "plus", "minus" oder "set"! global $session; // if($user) { // $user=db_fetch_assoc(db_query("SELECT aktiveboni FROM accounts WHERE acctid=".$user)); // } else { // $user=$session[user]; // } // $boni=explode('|',$user[aktiveboni]); $boni = aboni_r(); if($methode=="plus") {$boni[$feld]+=$wert; } elseif($methode=="minus") {$boni[$feld]-=$wert; } elseif($methode=="set") {$boni[$feld]=$wert; } $newboni=implode('|',$boni); if($user) { db_query("UPDATE accounts SET aktiveboni=".$newboni." WHERE acctid=".$user); } else { $session[user][aktiveboni]=$newboni; } } /** * Gibt eine PvP-Warnung aus * * @param boolean $dokill */ function pvpwarning($dokill=false) { global $session; $days = getsetting("pvpimmunity", 5); $exp = getsetting("pvpminexp", 1500); if ($session['user']['age'] <= $days && $session['user']['dragonkills'] == 0 && $session['user']['user']['pk'] == 0 && $session['user']['experience'] <= $exp) { if ($dokill) { output("`\$Warnung!`^ Da du selbst noch vor PvP geschützt warst, aber jetzt einen anderen Spieler angreifst, hast du deine Immunität verloren!!`n`n"); $session['user']['pk'] = 1; } else { output("`\$Warnung!`^ Innerhalb der ersten $days Tage in dieser Welt, oder bis sie $exp Erfahrungspunkte gesammelt haben, sind alle Spieler vor PvP-Angriffen geschützt. Wenn du einen anderen Spieler angreifst, verfällt diese Immunität für dich!`n`n"); } } } function rentroom_check() { global $session; $heute = date("Y-m-d"); $sql = "SELECT `id`,`paid`,`user`,`name` FROM `rentrooms` WHERE `owner` = ".$session['user']['acctid']." AND `paid` <= CURRENT_DATE() ORDER BY `paid` ASC"; $result = db_query($sql); for($i=0;$i) //Copyright (c) 2001-2002 The YaBB Development Team if((function_exists("gzcompress")) && (function_exists("crc32"))){ if(strpos(" " . $_SERVER['HTTP_ACCEPT_ENCODING'], "x-gzip")){ $encode = "x-gzip"; } elseif(strpos(" " . $_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")){ $encode = "gzip"; } if (isset($encode)){ header("Content-Encoding: $encode"); $encode_size = strlen($input); $encode_crc = crc32($input); $out = "\x1f\x8b\x08\x00\x00\x00\x00\x00"; $out .= substr(gzcompress($input, 1), 0, -4); $out .= pack("V", $encode_crc); $out .= pack("V", $encode_size); } else{ $out = $input; } } else{ $out = $input; } return ($out); } function safeescape($input){ return preg_replace('/([^\\\\])(["\'])/s',"\\1\\\\\\2",$input); } //by Chaosmaker function petitionmail($subject,$body,$petition,$from,$seen=0,$to=0,$messageid=0) { $subject = safeescape($subject); $subject=str_replace("\n","",$subject); $subject=str_replace("`n","",$subject); $body = safeescape($body); $sql = "INSERT INTO petitionmail (petitionid,messageid,msgfrom,msgto,subject,body,sent,seen) VALUES ('".(int)$petition."','".(int)$messageid."','".(int)$from."','".(int)$to."','$subject','$body',now(),'$seen')"; db_query($sql); $sql = 'UPDATE petitions SET lastact=NOW() WHERE petitionid="'.(int)$petition.'"'; db_query($sql); } //end petitionmail function systemmail($to,$subject,$body,$from=0,$noemail=false){ $subject = safeescape($subject); $subject=str_replace("\n","",$subject); $subject=str_replace("`n","",$subject); $body = safeescape($body); //echo $subject."
".$body; $sql = "SELECT prefs,emailaddress FROM accounts WHERE acctid='$to'"; $result = db_query($sql); $row = db_fetch_assoc($result); db_free_result($result); $prefs = unserialize($row['prefs']); if ($prefs['dirtyemail']){ //output("Not cleaning: $prefs[dirtyemail]"); }else{ //output("Cleaning: $prefs[dirtyemail]"); $subject=soap($subject); $body=soap($body); } $sql = "INSERT INTO mail (msgfrom,msgto,subject,body,sent) VALUES ('".(int)$from."','".(int)$to."','$subject','$body',now())"; db_query($sql); $email=false; if ($prefs['emailonmail'] && $from>0){ $email=true; }elseif($prefs[emailonmail] && $from==0 && $prefs[systemmail]){ $email=true; } if (!is_email($row['emailaddress'])) $email=false; if ($email && !$noemail){ $sql = "SELECT name FROM accounts WHERE acctid='$from'"; $result = db_query($sql); $row1=db_fetch_assoc($result); db_free_result($result); if ($row1['name']!="") $fromline="From: ".preg_replace("'[`].'","",$row1[name])."\n"; // We've inserted it into the database, so.. strip out any formatting // codes from the actual email we send out... they make things // unreadable $body = preg_replace("'[`]n'", "\n", $body); $body = preg_replace("'[`].'", "", $body); mail($row['emailaddress'],"Neue LoGD Mail","Du hast eine neue Nachricht von LoGD @ http://".$_SERVER[HTTP_HOST].dirname($_SERVER[SCRIPT_NAME])." empfangen.\n\n$fromline" ."Betreff: ".preg_replace("'[`].'","",stripslashes($subject))."\n" ."Body: ".stripslashes($body)."\n" ."\nDu kannst diese Meldungen in deinen Einstellungen abschalten.", "From: ".getsetting("gameadminemail","postmaster@localhost") ); } } function isnewday($level){ global $session; if ($session['user']['superuser']<$level) { clearnav(); $session['output']=""; page_header("FREVEL!"); $session['bufflist']['angrygods']=array( "name"=>"`^Die Götter sind wütend!", "rounds"=>10, "wearoff"=>"`^Es ist den Göttern langweilig geworden, dich zu quälen.", "minioncount"=>$session['user']['level'], "maxgoodguydamage"=> 2, "effectmsg"=>"`7Die Götter verfluchen dich und machen dir `^{damage}`7 Schaden!", "effectnodmgmsg"=>"`7Die Götter haben beschlossen, dich erstmal nicht zu quälen.", "activate"=>"roundstart", "survivenewday"=>1, "newdaymessage"=>"`6Die Götter sind dir immer noch böse!" ); output("Für den Versuch, die Götter zu betrügen, wurdest du niedergeschmettert!`n`n"); output("`\$Ramius, der Gott der Toten`) erscheint dir in einer Vision. Dafür, dass du versucht hast, deinen Geist mit seinem zu messen, sagt er dir wortlos, dass du keinen Gefallen mehr bei ihm hast.`n`n"); addnews("`&Für den Versuch, die Götter zu besudeln, wurde ".$session['user']['name']." zu Tode gequält! (Hackversuch gescheitert)."); $session['user']['hitpoints']=0; $session['user']['alive']=0; $session['user']['soulpoints']=0; $session['user']['gravefights']=0; $session['user']['deathpower']=0; $session['user']['experience']*=0.75; addnav("Tägliche News","news.php"); page_footer(); $sql = "SELECT acctid FROM accounts WHERE superuser>=3"; $result = db_query($sql); while ($row = db_fetch_assoc($result)) { systemmail($row['acctid'],"`#{$session['user']['name']}`# hat versucht, Superuser-Seiten zu hacken!","Böse(r), böse(r), böse(r) {$session['user']['name']}, du bist ein Hacker!"); } exit(); } } function forest($noshowmessage=false) { global $session,$playermount; $conf = unserialize($session['user']['donationconfig']); if ($conf['healer'] || $session['user']['acctid']==getsetting("hasegg",0)) { addnav("H?Golindas Hütte","healer.php"); } else { addnav("H?Hütte des Heilers","healer.php"); } addnav("B?Etwas zum Bekämpfen suchen","forest.php?op=search"); if ($session['user']['level']>1) addnav("H?Herumziehen","forest.php?op=search&type=slum"); addnav("N?Nervenkitzel suchen","forest.php?op=search&type=thrill"); //if ($session[user][hashorse]>=2) addnav("D?Dark Horse Tavern","forest.php?op=darkhorse"); if ($playermount['tavern']>0) addnav("D?Nimm {$playermount['dispname']} zur Dark Horse Taverne","forest.php?op=darkhorse"); if ($playermount['tavern']>0 && $conf['castle']) addnav("B?Nimm {$playermount['dispname']} zur Burg","forest.php?op=castle"); if ($conf['goldmine']>0) addnav("Goldmine (".$conf[goldmine]."x)","paths.php?ziel=goldmine&pass=conf"); addnav("Z?Zurück zum Dorf","village.php"); // Stadttor-Mod //addnav("Z?Zurück zur Stadt","stadttor.php"); addnav("","forest.php"); if ($session['user']['level']>=15 && $session['user']['seendragon']==0){ addnav("G?`@Den Grünen Drachen suchen","forest.php?op=dragon"); } addnav("Sonstiges"); addnav("P?Plumpsklo","outhouse.php"); addnav("Trampelpfad","paths.php?ziel=forestlake"); addnav("Zum Lager","out.php"); if(@file_exists("harvest.php") && (($session[user][superuser]>=2) || $session[user][mentor]>1)) addnav("harvesting","harvest.php"); if ($session['user']['turns']<=1 ) addnav("Hexenhaus","hexe.php"); if ($noshowmessage!=true){ output("`c`7`bDer Wald`b`0`c"); output("Der Wald, Heimat von bösartigen Kreaturen und üblen Übeltätern aller Art.`n`n"); output("Die dichten Blätter des Waldes erlauben an den meisten Stellen nur wenige Meter Sicht. "); output("Die Wege würden dir verborgen bleiben, hättest du nicht ein so gut geschultes Auge. Du bewegst dich so leise wie "); output("eine milde Brise über den dicken Humus, der den Boden bedeckt. Dabei versuchst du es zu vermeiden "); output("auf dünne Zweige oder irgendwelche der ausgebleichten Knochenstücke zu treten, welche den Waldboden spicken. "); output("Du verbirgst deine Gegenwart vor den abscheulichen Monstern, die den Wald durchwandern."); if ($session['user']['turns']<=1) output(" In der Nähe siehst du wieder den Rauch aus dem Kamin eines windschiefen Hexenhäuschens aufsteigen, von dem du schwören könntest, es war eben noch nicht da. "); } if ($session['user']['superuser']>1){ output("`n`nSUPERUSER Specials:`n"); $d = dir("special"); while (false !== ($entry = $d->read())){ // Skip non php files (including directories) if(strpos($entry, ".php") === false) continue; // Skip any hidden files if (substr($entry,0,1)==".") continue; output("$entry`n", true); addnav("","forest.php?specialinc=$entry"); } } } function borkalize($in){ $out = $in; $out = str_replace(". ",". Bork bork. ",$out); $out = str_replace(", ",", bork, ",$out); $out = str_replace(" h"," hoor",$out); $out = str_replace(" v"," veer",$out); $out = str_replace("g ","gen ",$out); $out = str_replace(" p"," pere",$out); $out = str_replace(" qu"," quee",$out); $out = str_replace("n ","nen ",$out); $out = str_replace("e ","eer ",$out); $out = str_replace("s ","ses ",$out); return $out; } function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } function make_seed() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } mt_srand(make_seed()); function e_rand($min=false,$max=false){ if ($min===false) return mt_rand(); $min*=1000; if ($max===false) return round(mt_rand($min)/1000,0); $max*=1000; if ($min==$max) return round($min/1000,0); // if ($min==0 && $max==0) return 0; //do NOT as me why this line can be executed, it makes no sense, but it *does* get executed. if ($min<$max){ return round(@mt_rand($min,$max)/1000,0); }else if($min>$max){ return round(@mt_rand($max,$min)/1000,0); } } function is_email($email){ return preg_match("/[[:alnum:]_.-]+[@][[:alnum:]_.-]{2,}.[[:alnum:]_.-]{2,}/",$email); } function checkban($login=false){ global $session; if ($session['banoverride']) return false; if ($login===false){ $ip=$_SERVER[REMOTE_ADDR]; $id=$_COOKIE[lgi]; //echo "
Orig output: $ip, $id
"; }else{ $sql = "SELECT lastip,uniqueid,banoverride FROM accounts WHERE login='$login'"; $result = db_query($sql) or die(db_error(LINK)); $row = db_fetch_assoc($result); if ($row['banoverride']){ $session['banoverride']=true; //echo "`nYou are absolved of your bans, son."; return false; }else{ //echo "`nNo absolution here, son."; } db_free_result($result); $ip=$row['lastip']; $id=$row['uniqueid']; //echo "
Secondary output: $ip, $id
"; } $sql = "select * from bans where ((substring('$ip',1,length(ipfilter))=ipfilter AND ipfilter<>'') OR (uniqueid='$id' AND uniqueid<>'')) AND (banexpire='0000-00-00' OR banexpire>'".date("Y-m-d")."')"; //echo $sql; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result)>0){ // $msg.=$session['message']; $session=array(); //$session['message'] = $msg; //echo "Session Abandonment"; $session[message].="`n`4Du bist einer Verbannung zum Opfer gefallen:`n"; for ($i=0;$i0){ $skillnames = array(1=>"Dunkle Künste","Mystische Kräfte","Diebeskunst"); $skills = array(1=>"darkarts","magic","thievery"); $skillpoints = array(1=>"darkartuses","magicuses","thieveryuses"); $session[user][$skills[$session[user][specialty]]]++; output("`nDu steigst in `&".$skillnames[$session[user][specialty]]."`# ein Level auf ".$session[user][$skills[$session[user][specialty]]]." auf. "); $x = ($session[user][$skills[$session[user][specialty]]]) % 3; if ($x == 0){ output("Du bekommst eine zusätzliche Anwendung!`n"); $session[user][$skillpoints[$session[user][specialty]]]++; }else{ output("Nur noch ".(3-$x)." weitere Stufen, bis du eine zusätzliche Anwendung erhältst!`n"); } }else{ output("`7Du wanderst ziel- und planlos durchs Leben. Du solltest eine Rast machen und einige wichtige Entscheidungen für dein weiteres Leben treffen.`n"); } } function fightnav($allowspecial=true, $allowflee=true){ global $PHP_SELF,$session; //$script = str_replace("/","",$PHP_SELF); $script = substr($PHP_SELF,strrpos($PHP_SELF,"/")+1); addnav("Kämpfen","$script?op=fight"); if ($allowflee) { addnav("Wegrennen","$script?op=run"); } if (getsetting("autofight",0)){ addnav("AutoFight"); addnav("5 Runden kämpfen","$script?op=fight&auto=five"); addnav("Bis zum bitteren Ende","$script?op=fight&auto=full"); } if ($allowspecial) { addnav("`bBesondere Fähigkeiten`b"); if ($session[user][darkartuses]>0) { addnav("`\$Dunkle Künste`0", ""); addnav("`\$• Skelette herbeirufen`7 (1/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=1",true); } if ($session[user][darkartuses]>1) addnav("`\$• Voodoo`7 (2/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=2",true); if ($session[user][darkartuses]>2) addnav("`\$• Geist verfluchen`7 (3/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=3",true); if ($session[user][darkartuses]>4) addnav("`\$• Seele verdorren`7 (5/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=5",true); if ($session[user][thieveryuses]>0) { addnav("`^Diebeskünste`0",""); addnav("`^• Beleidigen`7 (1/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=1",true); } if ($session[user][thieveryuses]>1) addnav("`^• Waffe vergiften`7 (2/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=2",true); if ($session[user][thieveryuses]>2) addnav("`^• Versteckter Angriff`7 (3/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=3",true); if ($session[user][thieveryuses]>4) addnav("`^• Angriff von hinten`7 (5/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=5",true); if ($session[user][magicuses]>0) { addnav("`%Mystische Kräfte`0",""); //disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe addnav("g?`%• Regeneration`7 (1/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=1",true); } if ($session[user][magicuses]>1) addnav("`%• Erdenfaust`7 (2/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=2",true); if ($session[user][magicuses]>2) addnav("L?`%• Leben absaugen`7 (3/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=3",true); if ($session[user][magicuses]>4) addnav("A?`%• Blitz Aura`7 (5/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=5",true); if ($session[user][superuser]>=3) { addnav("`&Superuser`0",""); addnav("!?`&• __GOD MODE","$script?op=fight&skill=godmode",true); } // spells by anpera $sql="SELECT * FROM items WHERE class='Zauber' AND owner=".$session[user][acctid]." AND value1>0 ORDER BY name ASC"; $result=db_query($sql) or die(db_error(LINK)); if (db_num_rows($result)>0) addnav("Zauber"); for ($i=0;$iQuery("SELECT * FROM `appoencode` WHERE `code`= BINARY '$tag'"); $tagrow = $appoencode[$tag]; if($tagrow['color'] === NULL) { if($nestedtags[$tagrow['tag']] && strchr($tagrow['tag']," /")==false) { $output.=""; unset($nestedtags[$tagrow['tag']]); } elseif(strchr($tagrow['tag']," /")==true) $output.="<".$tagrow['tag'].">\n"; else { $output.="<".$tagrow['tag']." ".$tagrow['style'].">"; $nestedtags[$tagrow['tag']] = true; } } else { if ($nestedtags['color']) $output.=""; else $nestedtags['color']=true; $output.=""; } } } if ($priv) $output.=$data; else $output.=HTMLEntities($data); return $output; } function Load_Tags() { /* (c) 2005 by Eliwood & Serra */ $result = DB_Query("SELECT SQL_CACHE * FROM appoencode"); $tags = array(); while($row = DB_Fetch_Assoc($result)) { $tags[$row['code']] = $row; } return $tags; } function Get_Allowed_Tags() { global $appoencode; /* (c) 2005 by Eliwood & Serra */ while(list($key,$val) = each($appoencode)) { if($val['allowed'] == true) $list.=$val['code']; } return preg_quote($list); } // Angegebene Tags am Ende des Strings schließen // (macht keinen Sinn bei Farben, da die nicht geschlossen werden) function closetags($string, $tags) { $tags = explode('`',$tags); foreach ($tags as $siht) { $siht = trim($siht); if ($siht=='') continue; if (substr_count($string,'`'.$siht)%2) $string .= '`'.$siht; } return $string; } function templatereplace($itemname,$vals=false){ global $template; @reset($vals); if (!isset($template[$itemname])) output("`bWarnung:`b Das `i$itemname`i Template wurde nicht gefunden!`n"); $out = $template[$itemname]; //output($template[$itemname]."`n"); while (list($key,$val)=@each($vals)){ if (strpos($out,"{".$key."}")===false) output("`bWarnung:`b Das `i$key`i Teil wurde im `i$itemname`i Template nicht gefunden! (".$out.")`n"); $out = str_replace("{"."$key"."}",$val,$out); } return $out; } function addcharstat($title,$value=false){ // 2005 by Eliwood if ($value===false) { $charstat.=appoencode(templatereplace("stathead",array("title"=>$title)),true); } else { $charstat.=appoencode( templatereplace("statrow",array("title"=>"$title","value"=>"$value")) ,true); } return $charstat; } function charstats(){ global $session; $u =& $session['user']; $status.="\"lesen\""; addnav("","status.php",false,true); if ($session['loggedin']){ $u['hitpoints']=round($u['hitpoints'],0); $u['experience']=round($u['experience'],0); $u['maxhitpoints']=round($u['maxhitpoints'],0); $spirits=array("-6"=>"Wiedererweckt","-2"=>"Sehr schlecht","-1"=>"Schlecht","0"=>"Normal","1"=>"Gut","2"=>"Sehr gut"); if ($u[alive]){ }else{ $spirits[$u['spirits']] = "TOT"; } reset($session['bufflist']); $atk=$u['attack']; $def=$u['defence']; while (list($key,$val)=each($session['bufflist'])){ $buffs.=appoencode("`#$val[name] `7($val[rounds] Runden übrig)`n",true); if (isset($val[atkmod])) $atk *= $val['atkmod']; if (isset($val[defmod])) $def *= $val['defmod']; } $atk = round($atk, 2); $def = round($def, 2); $atk = ($atk == $u[attack] ? "`^" : ($atk > $u[attack] ? "`@" : "`$")) . "`b$atk`b`0"; $def = ($def == $u[defence] ? "`^" : ($def > $u[defence] ? "`@" : "`$")) . "`b$def`b`0"; if($u[hunger]<15) $hunger="`$`bAm verhungern`b`0"; elseif($u[hunger]<30) $hunger="`q`iHungrig`i`0"; elseif($u[hunger]<50) $hunger="`^Normal`0"; elseif($u[hunger]<90) $hunger="`2Gesättigt`0"; else $hunger="`@Randvoll`0"; if (count($session[bufflist])==0){ $buffs.=appoencode("`^Keine`0",true); } $charstat=appoencode(templatereplace("statstart") .templatereplace("stathead",array("title"=>"Physischer Zustand")) .templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false))),true); if($session['user']['ssstatus'] == 1 && $session['user']['ssmonat'] <= 16) { switch($session['user']['ssmonat']) { case 16: case 15: $charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Noch nichts zu sehen")), true); break; case 14: case 13: case 12: case 11: $charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Kleiner Bauch")), true); break; case 10: case 9: case 8: case 7: $charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Dicker Bauch")), true); break; case 6: case 5: case 4: case 3: $charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Sehr dicker Bauch")), true); break; case 2: case 1: $charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Hochschwanger")), true); break; } } if ($session['user']['alive']){ $charstat.=appoencode( templatereplace("statrow",array("title"=>"Lebenspunkte","value"=>"$u[hitpoints]`0/$u[maxhitpoints]".grafbar($u[maxhitpoints],$u[hitpoints]))) .templatereplace("statrow",array("title"=>"Runden","value"=>$u['turns'])),true); }else{ $charstat.=appoencode( templatereplace("statrow",array("title"=>"Seelenpunkte","value"=>"$u[soulpoints]".grafbar((5*$u[level]+50),$u[soulpoints]))) .templatereplace("statrow",array("title"=>"Foltern","value"=>$u['gravefights'])) ,true); } $charstat.=appoencode( templatereplace("statrow",array("title"=>"Level","value"=>"`b".$u['level']."`b")) .($session['user']['alive']? templatereplace("statrow",array("title"=>"Angriff","value"=>$atk)) .templatereplace("statrow",array("title"=>"Verteidigung","value"=>$def)) : templatereplace("statrow",array("title"=>"Psyche","value"=>10 + round(($u['level']-1)*1.5))) .templatereplace("statrow",array("title"=>"Geist","value"=>10 + round(($u['level']-1)*1.5))) ) .templatereplace("statrow",array("title"=>"Charmepunkte","value"=>$u['charm'])) .templatereplace("statrow",array("title"=>"Hunger","value"=>$hunger)) .templatereplace("stathead",array("title"=>"Psychischer Zustand")) .templatereplace("statrow",array("title"=>"Stimmung","value"=>"`b".$spirits[(string)$u['spirits']]."`b")) .templatereplace("statrow",array("title"=>"RP-Wertung","value"=>"$u[rppoints]%".grafbar(100,$u[rppoints]))) .templatereplace("statrow",array("title"=>"RP-Punkte","value"=>$u['rpboni'])) .templatereplace("statrow",array("title"=>"Erfahrung","value"=>expbar())) .templatereplace("stathead",array("title"=>"Ausrüstung")) .templatereplace("statrow",array("title"=>"Gold","value"=>$u['gold'])) .templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems'])) .templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon'])) .templatereplace("statrow",array("title"=>"Rüstung","value"=>$u['armor'])) .templatereplace("stathead",array("title"=>"Sonstiges")) ,true); if($session['user']['memberid']>0 && $session['user']['gildenactive']==1) { $gu =& $session['guild']; $charstat.=addcharstat("Gildeninformationen"); $charstat.=addcharstat("Gilde","`^".$gu['gildenname']." `^(".$gu['gildenprefix']."`^)"); /* Rang holen */ $rank = db_fetch_assoc(db_query("SELECT rankname FROM gildenranks WHERE rankid='".$session['user']['rankid']."'")); /* Keinen zugewiesenen Rang? Oder Rangid ungültig? Macht nichts, einfach Ranglos anzeigen. */ if($rank['rankname'] == "") $rank['rankname'] = "Ranglos"; $charstat.=addcharstat("Rang",$rank['rankname']); $charstat.=addcharstat("Gold",$gu['gold']); $charstat.=addcharstat("Edelsteine",$gu['gems']); } if (getsetting("dispnextday",0)) { $tomorrow = timetotomorrow(); $seconsperday = (int)getsetting("daysperday",4)*3600; $charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"`^{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s`0".grafbar($tomorrow['realsecs']+$seconsperday, $seconsperday) )),true); } $charstat.=appoencode(templatereplace("statbuff",array("title"=>"`GVerschiedenes","value"=>$status)),true); if (!is_array($session[bufflist])) $session[bufflist]=array(); $charstat.=appoencode(templatereplace("statbuff",array("title"=>"Aktionen","value"=>$buffs)),true); $charstat.=appoencode(templatereplace("statend"),true); return $charstat; }else{ //return "Your character info will appear here after you've logged in."; //$sql = "SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE locked=0 AND loggedin=1 ORDER BY level DESC"; $sql="SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("c")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC"; $result = db_query($sql) or die(sql_error($sql)); $count = db_num_rows($result); $ret.=appoencode("`b$count Spieler Online:`b`n"); for ($i=0;$i0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):""); return $ret; } } $accesskeys=array(); $quickkeys=array(); function addnav($text,$link=false,$priv=false,$pop=false,$newwin=false){ global $nav,$session,$accesskeys,$REQUEST_URI,$quickkeys; $text = translate($text); /* if (date("m-d")=="04-01"){ $text = borkalize($text); } */ if ($link===false){ $nav.=templatereplace("navhead",array("title"=>appoencode($text,$priv))); }elseif ($link === "") { $nav.=templatereplace("navhelp",array("text"=>appoencode($text,$priv))); }else{ if ($text!=""){ $extra=""; if ($newwin===false) { if (strpos($link,"?")){ $extra="&c=$session[counter]"; }else{ $extra="?c=$session[counter]"; } } if ($newwin===false) $extra.="-".date("His"); //$link = str_replace(" ","%20",$link); //hotkey for the link. $key=""; if (substr($text,1,1)=="?") { // check to see if a key was specified up front. if ($accesskeys[strtolower(substr($text, 0, 1))]==1){ // output ("key ".substr($text,0,1)." already taken`n"); $text = substr($text,2); }else{ $key = substr($text,0,1); $text = substr($text,2); //output("key set to $key`n"); $found=false; for ($i=0;$i""){ if ($char=="<") $ignoreuntil=">"; if ($char=="&") $ignoreuntil=";"; if ($char=="`") $ignoreuntil=substr($text,$i+1,1); }else{ if ($char==$key) { $found=true; break; } } } } if ($found==false) { if (strpos($text, "__") !== false) $text=str_replace("__", "(".$key.") ", $text); else $text="(".strtoupper($key).") ".$text; $i=strpos($text, $key); // output("Not found`n"); } } // } if ($key==""){ for ($i=0;$i"") { if ($char=="<") $ignoreuntil=">"; if ($char=="&") $ignoreuntil=";"; if ($char=="`") $ignoreuntil=substr($text,$i+1,1); }else{ break; } } } } if ($i".appoencode($text,$priv)."
"; //$key==""; // This is useless }else{ $text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1); if ($pop){ $quickkeys[$key]=popup($link.$extra); }else{ $quickkeys[$key]="window.location='$link$extra';"; } } $nav.=templatereplace("navitem",array( "text"=>appoencode($text,$priv), "link"=>HTMLEntities($link.$extra), "accesskey"=>$keyrep, "popup"=>($pop==true ? "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":"")) )); //$nav.="".appoencode($text,$priv)."
"; } $session[allowednavs][$link.$extra]=true; $session[allowednavs][str_replace(" ", "%20", $link).$extra]=true; $session[allowednavs][str_replace(" ", "+", $link).$extra]=true; } } function savesetting($settingname,$value){ global $settings; loadsettings(); if ($value>""){ if (!isset($settings[$settingname])){ $sql = "INSERT INTO settings (setting,value) VALUES (\"".addslashes($settingname)."\",\"".addslashes($value)."\")"; }else{ $sql = "UPDATE settings SET value=\"".addslashes($value)."\" WHERE setting=\"".addslashes($settingname)."\""; } db_query($sql) or die(db_error(LINK)); $settings[$settingname]=$value; if (db_affected_rows()>0) return true; else return false; } return false; } function loadsettings(){ global $settings; //as this seems to be a common complaint, examine the execution path of this function, //it will only load the settings once per page hit, in subsequent calls to this function, //$settings will be an array, thus this function will do nothing. if (!is_array($settings)){ $settings=array(); $sql = "SELECT * FROM settings"; $result = db_query($sql) or die(db_error(LINK)); for ($i=0;$i",true); while(list($key,$val)=each($layout)){ $info = split(",",$val); if ($info[1]=="title"){ output("",true); output("`b`^$info[0]`0`b"); output("",true); }else{ output("",true); output("$info[0]"); output("",true); } switch ($info[1]){ case "title": break; case "enum": reset($info); list($k,$v)=each($info); list($k,$v)=each($info); $output.=""; break; case "password": $output.=""; break; case "bool": $output.=""; break; case "hidden": $output.="".HTMLEntities($row[$key]); break; case "viewonly": output(dump_item($row[$key]), true); // output(str_replace("{","
{",str_replace("}","}
",HTMLEntities(preg_replace("'(b:[[:digit:]]+;)'","\\1`n",$row[$key])))),true); break; case "int": $output.=""; break; default: $output.=(""); //output("`n$val"); } output("",true); } output("",true); if ($nosave) {} else output("",true); } function clearnav(){ $session[allowednavs]=array(); } function redirect($location,$reason=false){ global $session,$REQUEST_URI; if ($location!="badnav.php"){ $session[allowednavs]=array(); addnav("",$location); } if (strpos($location,"badnav.php")===false) $session[output]="Hier klicken"; $session['debug'].="Redirected to $location from $REQUEST_URI. $reason\n"; saveuser(); header("Location: $location"); echo $location; echo $session['debug']; exit(); } function loadtemplate($templatename){ if (!file_exists("templates/$templatename") || $templatename=="") $templatename="yarbrough.htm"; $fulltemplate = join("",file("templates/$templatename")); $fulltemplate = split("")); if ($fieldname!=""){ $template[$fieldname]=substr($val,strpos($val,"-->")+3); } } return $template; } function maillink(){ global $session; $sql = "SELECT sum(if(seen=1,1,0)) AS seencount, sum(if(seen=0,1,0)) AS notseen FROM mail WHERE msgto=\"".$session[user][acctid]."\""; $result = db_query($sql) or die(mysql_error(LINK)); $row = db_fetch_assoc($result); db_free_result($result); $row[seencount]=(int)$row[seencount]; $row[notseen]=(int)$row[notseen]; if ($row[notseen]>0){ return "Ye Olde Mail: $row[notseen] neu, $row[seencount] alt"; }else{ return "Ye Olde Mail: $row[notseen] neu, $row[seencount] alt"; } } function motdlink(){ // missing $session caused unread motd's to never highlight the link global $session; if ($session[needtoviewmotd]){ return "MoTD"; }else{ return "MoTD"; } } function page_header($title="LoGD 0.9.7 +jt ext (GER) 3"){ global $header,$SCRIPT_NAME,$session,$template; $nopopups["login.php"]=1; $nopopups["motd.php"]=1; $nopopups["index.php"]=1; $nopopups["create.php"]=1; $nopopups["about.php"]=1; $nopopups["mail.php"]=1; $nopopups["chatmaster.php"]=1; $nopopups["showdetail.php"]=1; $nopopups["status.php"]=1; $header = $template['header']; $sql = "SELECT motddate FROM motd ORDER BY motditem DESC LIMIT 1"; $result = db_query($sql); $row = db_fetch_assoc($result); db_free_result($result); if (($row[motddate]>$session[user][lastmotd]) && $nopopups[$SCRIPT_NAME]!=1 && $session[user][loggedin]){ $header=str_replace("{headscript}","",$header); $session[needtoviewmotd]=true; }else{ $header=str_replace("{headscript}","",$header); $session[needtoviewmotd]=false; } $header=str_replace("{title}",$title,$header); $session[user][ort]=$title; } function popup($page){ return "window.open('$page','".preg_replace("([^[:alnum:]])","",$page)."','scrollbars=yes,resizable=yes,width=550,height=300')"; } function page_footer() { $forumlink=getsetting("forum","http://www.web35.server-drome.org/phpBB2/index.php"); //$forumlink="http://www.anpera.net/forum/index.php?c=12#"; global $output,$nestedtags,$header,$nav,$session,$REMOTE_ADDR,$REQUEST_URI,$pagestarttime,$dbtimethishit,$dbqueriesthishit,$quickkeys,$template,$logd_version,$waldnav; while (list($key,$val)=each($nestedtags)){ $output.=""; unset($nestedtags[$key]); } $script.=""; // chat preview mod by Chaosmaker Modified for Ellis Colortags by Devilzimti)- start $appoencode = Load_Tags(); $cases= " "; while(list($key,$val) = each($appoencode)) { if($val['allowed'] == true) { $cases .= " case \"".$val['code']."\":\n if (openspan) output= output+\"
\"; else openspan = true;\n output= output+\"\";\n break;\n "; }else{ $cases .= "\n//".$val['code']." darf hier nicht benutzt werden!\n "; } } $script .= << JS; // chat preview mod by Chaosmaker (Modified for Ellis Colortags by Devilzimti) - end unset($session['bufflist']['hunger']); if($session['user']['hunger']<15) { $buff = array( "name" => "`4Hunger" ,"roundmsg" => "Bei deinem Starken Hunger kannst du dich nicht richtig kämpefn" ,"rounds" => "100" ,"atkmod" => "0.8" ,"defmod" => "0.8" ,"activate" => "roundstart"); $session['bufflist']['hunger']=$buff; } elseif($session['user']['hunger']<30) { $buff = array( "name" => "`qHunger" ,"roundmsg" => "Dein knurrender Magen stört dich im Kampf" ,"rounds" => "100" ,"atkmod" => "0.95" ,"defmod" => "0.95" ,"activate" => "roundstart"); $session['bufflist']['hunger']=$buff; } $footer = $template['footer']; if (strpos($footer,"{paypal}") || strpos($header,"{paypal}")){ $palreplace="{paypal}"; }else{ $palreplace="{stats}"; } //NOTICE //NOTICE Although I will not deny you the ability to remove the below paypal link, I do request, as the author of this software //NOTICE that you leave it in. //NOTICE $paypalstr = '
'; $paypalstr .= '
'; $paysite = getsetting("paypalemail", ""); if ($paysite != "") { $paypalstr .= '
'; $paypalstr .= '
'; } $paypalstr .= '
'; // $paypalstr .= 'Sponsor'; $footer=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$footer); $header=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$header); //NOTICE //NOTICE Although I will not deny you the ability to remove the above paypal link, I do request, as the author of this software //NOTICE that you leave it in. //NOTICE $header=str_replace("{nav}",$nav,$header); $footer=str_replace("{nav}",$nav,$footer); $header = str_replace("{motd}", motdlink(), $header); $footer = str_replace("{motd}", motdlink(), $footer); $header = str_replace("{forum}", "Forum", $header); $footer = str_replace("{forum}", "Forum", $footer); if ($session[user][acctid]>0) { $header=str_replace("{mail}",maillink(),$header); $footer=str_replace("{mail}",maillink(),$footer); if($session[user][superuser]>=2 || $session[user][acctid]==36) { $header=str_replace("{chat}","chatmaster",$header); $footer=str_replace("{chat}","chatmaster",$footer); } else { $header=str_replace("{chat}","",$header); $footer=str_replace("{chat}","",$footer); } }else{ $header=str_replace("{mail}","",$header); $footer=str_replace("{mail}","",$footer); $header=str_replace("{chat}","",$header); $footer=str_replace("{chat}","",$footer); } $header=str_replace("{petition}","Hilfe anfordern",$header); $footer=str_replace("{petition}","Hilfe anfordern",$footer); if($session['user']['alive'] && $waldnav!="aus" && ($session['user']['qnavlv'] || $session['user']['superuser']>1)) { $footer="".$footer; addnav("","quicknav.php"); } if ($session['user']['superuser']>1){ // $sql = "SELECT count(petitionid) AS c,status FROM petitions GROUP BY status"; $sql = "SELECT max(lastact) AS lastact, count(petitionid) AS c,status FROM petitions GROUP BY status"; $result = db_query($sql); $petitions=array(0=>0,1=>0,2=>0); $petitions['unread'] = false; for ($i=0;$i$session['lastlogoff']) $petitions['unread'] = true; } db_free_result($result); // Neue Petitionen; schauen, ob Sternchen nötig ist $petitions['star'] = ''; if ($petitions['unread']) { $sql = 'SELECT petitionid, lastact FROM petitions WHERE lastact > "'.$session['lastlogoff'].'"'; $result = db_query($sql); while ($row = db_fetch_assoc($result)) { if (!$session['petitions'][$row['petitionid']]) { $petitions['star'] = '*'; } } db_free_result($result); } // Petition-Farblich Mod by Darkangel START if($petitions[0]>0) { $Ungelesen = 'Ungelesen'; }else{ $Ungelesen = 'Ungelesen'; } if($petitions[1]>0) { $Gelesen = 'Gelesen'; }else{ $Gelesen = 'Gelesen'; } if($petitions[2]>0) { $Geschlossen = 'Geschlossen'; }else{ $Geschlossen = 'Geschlossen'; } // Petition-Farblich Mod by Darkangel ENDE //$footer = "
Anfragen$petitions[star]: $petitions[0] Ungelesen, $petitions[1] Gelesen, $petitions[2] Geschlossen.
".$footer; $footer = "
Anfragen$petitions[star]: $petitions[0] $Ungelesen, $petitions[1] $Gelesen, $petitions[2] $Geschlossen.
".$footer; addnav('','viewpetition.php'); addnav("chatmaster.php","chatmaster.php","",true); } $footer=str_replace("{stats}",charstats(),$footer); $header=str_replace("{stats}",charstats(),$header); $header=str_replace("{script}",$script,$header); if ($session[user][loggedin]){ $footer=str_replace("{source}","Source",$footer); $header=str_replace("{source}","Source",$header); }else{ $footer=str_replace("{source}","Source",$footer); $header=str_replace("{source}","Source",$header); } $footer=str_replace("{copyright}","Copyright 2002-2003, Game: Eric Stevens",$footer); $footer=str_replace("{version}", "Version: $logd_version", $footer); $gentime = getmicrotime()-$pagestarttime; $session[user][gentime]+=$gentime; $session[user][gentimecount]++; $dbtimethishit=round($dbtimethishit,2); // $footer=str_replace("{pagegen}","Seitengenerierung: ".round($gentime,2)."s, Schnitt: ".round($session[user][gentime]/$session[user][gentimecount],2)."s - ".round($session[user][gentime],2)."/".round($session[user][gentimecount],2)."".($session[user][superuser]>1?"; DB: $dbqueriesthishit in $dbtimethishit s":"")."",$footer); $footer=str_replace("{pagegen}","Seitengenerierung: ".round($gentime,2)."s, Schnitt: ".round($session[user][gentime]/$session[user][gentimecount],2)."s".($session[user][superuser]>1?"; DB: $dbqueriesthishit in ".$dbtimethishit."s":"")."",$footer); if (strpos($_SERVER['HTTP_HOST'],"lotgd.net")!==false){ $footer=str_replace( "", '', $footer ); } $output=$header.$output.$footer; $session['user']['gensize']+=strlen($output); $session[output]=$output; saveuser(); session_write_close(); //`mpg123 -g 100 -q hit.mp3 2>&1 > /dev/null`; //echo compress_out($output); echo $output; ob_flush(); exit(); } function popup_header($title="Legend of the Green Dragon"){ global $header; $header.="$title"; $header.=""; $header.=""; $header.=""; $header.=""; $header.="
$title
"; } function popup_footer(){ global $output,$nestedtags,$header,$nav,$session; while (list($key,$val)=each($nestedtags)){ $output.=""; unset($nestedtags[$key]); } $output.="
Copyright 2002, Eric Stevens
"; $output=$header.$output; //$session[output]=$output; saveuser(); echo $output; exit(); } function clearoutput(){ global $output,$nestedtags,$header,$nav,$session; $session[allowednavs]=""; $output=""; unset($nestedtags); $header=""; $nav=""; } function soap($input){ /* if (getsetting("soap",1)){ $sql = "SELECT * FROM nastywords"; $result = db_query($sql); $row = db_fetch_assoc($result); $search = $row['words']; $search = str_replace("a",'[a4@]',$search); $search = str_replace("l",'[l1!]',$search); $search = str_replace("i",'[li1!]',$search); $search = str_replace("e",'[e3]',$search); $search = str_replace("t",'[t7+]',$search); $search = str_replace("o",'[o0]',$search); $search = str_replace("s",'[sz$]',$search); $search = str_replace("k",'c',$search); $search = str_replace("c",'[c(k]',$search); $start = "'(\s|\A)"; $end = "(\s|\Z)'iU"; $search = str_replace("*","([[:alnum:]]*)",$search); $search = str_replace(" ","$end $start", $search); $search = "$start".$search."$end"; //echo $search; $search = split(" ",$search); //$input = " $input "; return preg_replace($search,"\\1`i$@#%`i\\2",$input); }else{ return $input; } */ return $input; } function saveuser(){ global $session, $usedatabackup, $dbqueriesthishit; if (isset($session['loggedin']) and !empty($session['user']['acctid'])){ $session['user']['output'] = $session['output']; $session['user']['allowednavs'] = serialize($session['allowednavs']); $session['user']['bufflist'] = serialize($session['bufflist']); $sql = ''; reset($session['user']); while(list($key,$val)=each($session[user])){ if (is_array($val)) $value = serialize($val); else $value = $val; if (array_key_exists($key,$usedatabackup) and $usedatabackup[$key] != $value){ $sql .= "`$key` = '".addslashes($value)."', "; } } if (!empty($sql)) { $sql = 'UPDATE `accounts` SET '.substr($sql,0,strlen($sql)-2); $sql .= " WHERE `acctid` = ".$session['user']['acctid']; db_query($sql); } if(is_array($session['inventar'])) { // Inventar Speichern $sql = "UPDATE `inventar` SET "; foreach($session['inventar'] as $key=>$val) { if($key != 'user') $sql .= "`".$key."`='".$val."', "; } $sql = substr($sql,0,strlen($sql)-2); $sql .= " WHERE user = ".$session['user']['acctid']." LIMIT 1"; db_query($sql); } } } function createstring($array){ if (is_array($array)){ reset($array); while (list($key,$val)=each($array)){ $output.=rawurlencode( rawurlencode($key)."\"".rawurlencode($val) )."\""; } $output=substr($output,0,strlen($output)-1); } return $output; } function createarray($string){ $arr1 = split("\"",$string); $output = array(); while (list($key,$val)=each($arr1)){ $arr2=split("\"",rawurldecode($val)); $output[rawurldecode($arr2[0])] = rawurldecode($arr2[1]); } return $output; } function output_array($array,$prefix=""){ while (list($key,$val)=@each($array)){ $output.=$prefix."[$key] = "; if (is_array($val)){ $output.="array{\n".output_array($val,$prefix."[$key]")."\n}\n"; }else{ $output.=$val."\n"; } } return $output; } function dump_item($item){ $output = ""; if (is_array($item)) $temp = $item; else $temp = unserialize($item); if (is_array($temp)) { $output .= "array(" . count($temp) . ") {
"; while(list($key, $val) = @each($temp)) { $output .= "'$key' = '" . dump_item($val) . "'`n"; } $output .= "
}"; } else { $output .= $item; } return $output; } /** * Enter description here... * * @param String $news * @return resource */ function addnews($news){ global $session; $sql = "INSERT INTO news(newstext,newsdate,accountid) VALUES ('".addslashes($news)."',NOW(),".$session[user][acctid].")"; return db_query($sql) or die(db_error($link)); } function checkday() { global $session,$revertsession,$REQUEST_URI; //output("`#`iChecking to see if you're due for a new day: ".$session[user][laston].", ".date("Y-m-d H:i:s")."`i`n`0"); if ($session['user']['loggedin']){ output("",true); if(is_new_day()){ $session=$revertsession; $session[user][restorepage]=$REQUEST_URI; $session[allowednavs]=array(); addnav("","newday.php"); redirect("newday.php"); } } } /** * Enter description here... * * @return bool */ function is_new_day(){ global $session; $t1 = gametime(); $t2 = convertgametime(strtotime($session[user][lasthit])); $d1 = date("Y-m-d",$t1); $d2 = date("Y-m-d",$t2); if ($d1!=$d2){ return true; }else{ return false; } } function getgametime(){ // return date("g:i a",gametime()); return date(getsetting('gametimeformat','g:i a'),gametime()); } // Gamedate-Mod by Chaosmaker function getgamedate() { $date = explode('-',getsetting('gamedate','0005-01-01')); $find = array('%Y','%y','%m','%n','%d','%j'); $replace = array($date[0],sprintf('%02d',$date[0]%100),sprintf('%02d',$date[1]),(int)$date[1],sprintf('%02d',$date[2]),(int)$date[2]); return str_replace($find,$replace,getsetting('gamedateformat','%Y-%m-%d')); } function gametime(){ $time = convertgametime(strtotime(date("c"))); return $time; } function convertgametime($intime){ // Hehe, einen hamwa noch, einen hamwa noch: by JT & anpera $multi = getsetting("daysperday",4); $offset = getsetting("gameoffsetseconds",0); $fixtime = mktime(0,0,0-$offset,date("m")-$multi,date("d"),date("Y")); $time=$multi*(strtotime(date("Y-m-d H:i:s",$intime))-$fixtime); $time=strtotime(date("Y-m-d H:i:s",$time)."+".($multi*date("I",$intime))." hour"); $time=strtotime(date("Y-m-d H:i:s",$time)."-".date("I",$time). " hour"); $time=strtotime(date("Y-m-d H:i:s",$time)."+".(23-$multi)." hour"); return $time; } function sql_error($sql){ global $session; return output_array($session)."SQL =
$sql
".db_error(LINK); } function ordinal($val){ $exceptions = array(1=>"ten",2=>"ten",3=>"ten",11=>"ten",12=>"ten",13=>"ten"); $x = ($val % 100); if (isset($exceptions[$x])){ return $val.$exceptions[$x]; }else{ $x = ($val % 10); if (isset($exceptions[$x])){ return $val.$exceptions[$x]; }else{ return $val."ten"; } } } function dhms($secs,$dec=false){ if ($dec===false) $secs=round($secs,0); return (int)($secs/86400)."d".(int)($secs/3600%24)."h".(int)($secs/60%60)."m".($secs%60).($dec?substr($secs-(int)$secs,1):"")."s"; } function getmount($horse=0) { $sql = "SELECT * FROM mounts WHERE mountid='$horse'"; $result = db_query($sql); if (db_num_rows($result)>0){ $wert=db_fetch_assoc($result); }else{ $wert = array(); } return $wert; } function debuglog($message,$target=0){ global $session; $sql = "DELETE from debuglog WHERE date <'".date("Y-m-d H:i:s",strtotime(date("c")."-".(getsetting("expirecontent",180)/10)." days"))."'"; db_query($sql); $sql = "INSERT INTO debuglog VALUES(0,now(),".$session['user']['acctid'].",$target,'".addslashes($message)."')"; db_query($sql); } function expbar() { global $session; $exparray=array(1=>100,400,1002,1912,3140,4707,6641,8985,11795,15143,19121,23840,29437,36071,43930,55000); while (list($key,$val)=each($exparray)){ $exparray[$key]= round($val + ($session['user']['dragonkills']/4) * $key * 100,0); } $exp = $session[user][experience]-$exparray[$session[user][level]-1]; $req=$exparray[$session[user][level]]-$exparray[$session[user][level]-1]; $u="`b".$session['user']['experience']."`b`6/".$exparray[$session['user']['level']]."
".grafbar($req,$exp)."
"; return($u); } function grafbar($full,$left,$width=70,$height=5) { $col2="#000000"; if ($left<=0){ $col="#000000"; }else if ($left<$full/4){ $col="#FF0000"; }else if ($left<$full/2){ $col="yellow"; }else if ($left>=$full){ $col="#00AA00"; $col2="#00AA00"; }else{ $col="#00FF00"; } if ($full==0) $full=1; $u = "
"; return($u); } if (file_exists("dbconnect.php")){ require_once "dbconnect.php"; }else{ echo "Du must die benötigten Informationen in die Datei \"dbconnect.php.dist\" eintragen und sie unter dem Namen \"dbconnect.php\" speichern.". exit(); } /* $link = db_pconnect($DB_HOST, $DB_USER, $DB_PASS) or die (db_error($link)."Ich Sterbe!"); db_select_db ($DB_NAME) or die (db_error($link)); define("LINK",$link); */ db_connect($DB_HOST,$DB_USER,$DB_PASS,$DB_NAME); $appoencode = Load_Tags(); $appoencode_str = Get_Allowed_Tags(); require_once "translator.php"; session_start(); //session_register("session"); function register_global(&$var){ @reset($var); while (list($key,$val)=@each($var)){ global $$key; $$key = $val; } @reset($var); } $session =& $_SESSION['session']; include_once "lib/commentary.php"; //echo nl2br(htmlentities(output_array($session))); //register_global($_SESSION); register_global($_SERVER); if (strtotime(date("c")."-".getsetting("LOGINTIMEOUT",900)." seconds") > $session['lasthit'] && $session['lasthit']>0 && $session[loggedin]){ //force the abandoning of the session when the user should have been sent to the fields. //echo "Session abandon:".(strtotime("now")-$session[lasthit]); $session=array(); $session['message'].="`nDeine Session ist abgelaufen!`n"; } $session[lasthit]=strtotime(date("c")); $revertsession=$session; if ($PATH_INFO != "") { $SCRIPT_NAME=$PATH_INFO; $REQUEST_URI=""; } if ($REQUEST_URI==""){ //necessary for some IIS installations (CGI in particular) if (is_array($_GET) && count($_GET)>0){ $REQUEST_URI=$SCRIPT_NAME."?"; reset($_GET); $i=0; while (list($key,$val)=each($_GET)){ if ($i>0) $REQUEST_URI.="&"; $REQUEST_URI.="$key=".URLEncode($val); $i++; } }else{ $REQUEST_URI=$SCRIPT_NAME; } $_SERVER['REQUEST_URI'] = $REQUEST_URI; } $SCRIPT_NAME=substr($SCRIPT_NAME,strrpos($SCRIPT_NAME,"/")+1); if (substr($SCRIPT_NAME,strrpos($SCRIPT_NAME,".php"))!=".php" || strpos($PATH_INFO,".php")){ echo "Verarbeitung abgebrochen. Das Script ist ungueltig."; exit(); } if (strpos($REQUEST_URI,"?")){ $REQUEST_URI=$SCRIPT_NAME.substr($REQUEST_URI,strpos($REQUEST_URI,"?")); }else{ $REQUEST_URI=$SCRIPT_NAME; } $allowanonymous=array("index.php"=>true,"login.php"=>true,"create.php"=>true,"about.php"=>true,"list.php"=>true,"petition.php"=>true,"connector.php"=>true,"logdnet.php"=>true,"referral.php"=>true,"news.php"=>true,"motd.php"=>true,"topwebvote.php"=>true,"source.php"=>true); $allownonnav = array("badnav.php"=>true,"motd.php"=>true,"petition.php"=>true,"mail.php"=>true,"topwebvote.php"=>true,"chatmaster.php"=>true,"source.php"=>true,"status.php"=>true); if ($session[loggedin]){ $sql = "SELECT * FROM accounts WHERE acctid = '".$session[user][acctid]."'"; $result = db_query($sql); if (db_num_rows($result)==1){ $session[user]=db_fetch_assoc($result); $usedatabackup = $session['user']; $session[output]=$session[user][output]; $session[user][dragonpoints]=unserialize($session[user][dragonpoints]); $session[user][prefs]=unserialize($session[user][prefs]); $session[user][rezepte]=unserialize($session[user][rezepte]); $session[inventar]=db_fetch_assoc(db_query("SELECT * FROM inventar WHERE user = '".$session[user][acctid]."'")); if (!is_array($session[user][dragonpoints])) $session[user][dragonpoints]=array(); if (is_array(unserialize($session[user][allowednavs]))){ $session[allowednavs]=unserialize($session[user][allowednavs]); }else{ //depreciated, left only for legacy support. $session[allowednavs]=createarray($session[user][allowednavs]); } if (!$session[user][loggedin] || (0 && (date("U") - strtotime($session[user][laston])) > getsetting("LOGINTIMEOUT",900)) ){ $session=array(); redirect("index.php?op=timeout","Account ist nicht eingeloggt, aber die Session denkt, er ist es."); } }else{ $session=array(); $session[message]="`4Fehler! Dein Login war falsch.`0"; redirect("index.php","Account verschwunden!"); } db_free_result($result); if ($session[allowednavs][$REQUEST_URI] && !$allownonnav[$SCRIPT_NAME]){ $session[allowednavs]=array(); }else{ if (!$allownonnav[$SCRIPT_NAME]){ redirect("badnav.php","Navigation auf $REQUEST_URI nicht erlaubt"); } } }else{ //if ($SCRIPT_NAME!="index.php" && $SCRIPT_NAME!="login.php" && $SCRIPT_NAME!="create.php" && $SCRIPT_NAME!="about.php"){ if (!$allowanonymous[$SCRIPT_NAME]){ $session['message']="Du bist nicht eingeloggt. Wahrscheinlich ist deine Sessionzeit abgelaufen."; redirect("index.php?op=timeout","Not logged in: $REQUEST_URI"); } } //if ($session[user][loggedin]!=true && $SCRIPT_NAME!="index.php" && $SCRIPT_NAME!="login.php" && $SCRIPT_NAME!="create.php" && $SCRIPT_NAME!="about.php"){ if ($session[user][loggedin]!=true && !$allowanonymous[$SCRIPT_NAME]){ redirect("login.php?op=logout"); } $session[counter]++; $nokeeprestore=array("newday.php"=>1,"badnav.php"=>1,"motd.php"=>1,"mail.php"=>1,"petition.php"=>1,"chatmaster.php"=>1); if (!$nokeeprestore[$SCRIPT_NAME]) { //strpos($REQUEST_URI,"newday.php")===false && strpos($REQUEST_URI,"badnav.php")===false && strpos($REQUEST_URI,"motd.php")===false && strpos($REQUEST_URI,"mail.php")===false $session[user][restorepage]=$REQUEST_URI; }else{ } if ($session['user']['hitpoints']>0){ $session['user']['alive']=true; }else{ $session['user']['alive']=false; } $session[bufflist]=unserialize($session[user][bufflist]); if (!is_array($session[bufflist])) $session[bufflist]=array(); $session[user][lastip]=$REMOTE_ADDR; if (strlen($_COOKIE[lgi])<32){ if (strlen($session[user][uniqueid])<32){ $u=md5(microtime()); setcookie("lgi",$u,strtotime(date("c")."+365 days")); $_COOKIE['lgi']=$u; $session[user][uniqueid]=$u; }else{ setcookie("lgi",$session[user][uniqueid],strtotime(date("c")."+365 days")); } }else{ $session[user][uniqueid]=$_COOKIE[lgi]; } $url = "http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI']); $url = substr($url,0,strlen($url)-1); if (substr($_SERVER['HTTP_REFERER'],0,strlen($url))==$url || $_SERVER['HTTP_REFERER']==""){ }else{ $sql = "SELECT * FROM referers WHERE uri='{$_SERVER['HTTP_REFERER']}'"; $result = db_query($sql); $row = db_fetch_assoc($result); db_free_result($result); $site = str_replace("http://","",$_SERVER['HTTP_REFERER']); if (strpos($site,"/")) $site = substr($site,0,strpos($site,"/")); if ($row['refererid']>""){ $sql = "UPDATE referers SET count=count+1,last=now(),site='".addslashes($site)."' WHERE refererid='{$row['refererid']}'"; }else{ $sql = "INSERT INTO referers (uri,count,last,site) VALUES ('{$_SERVER['HTTP_REFERER']}',1,now(),'".addslashes($site)."')"; } db_query($sql); } if ($_COOKIE['template']!="") $templatename=$_COOKIE['template']; if ($templatename=="" || !file_exists("templates/$templatename")) $templatename="yarbrough.htm"; $template = loadtemplate($templatename); //tags that must appear in the header $templatetags=array("title","headscript","script"); foreach ($templatetags AS $val) { if (strpos($template['header'],"{".$val."}")===false) $templatemessage.="You do not have {".$val."} defined in your header\n"; } //tags that must appear in the footer $templatetags=array(); foreach ($templatetags AS $val) { if (strpos($template['footer'],"{".$val."}")===false) $templatemessage.="You do not have {".$val."} defined in your footer\n"; } //tags that may appear anywhere but must appear //touch the copyright and we will force your server to be shut down $templatetags=array("nav","stats","petition","motd","mail","paypal","copyright","source"); foreach ($templatetags AS $val) { if (strpos($template['header'],"{".$val."}")===false && strpos($template['footer'],"{".$val."}")===false) $templatemessage.="You do not have {".$val."} defined in either your header or footer\n"; } if ($templatemessage!=""){ echo "Du hast einen oder mehrere Fehler in deinem Template!
".nl2br($templatemessage); $template=loadtemplate("yarbrough.htm"); } $sql="SELECT id,name FROM `races` WHERE 1"; $result=db_query($sql); for($i=1;$i<=db_num_rows($result);$i++) { $race=db_fetch_assoc($result); $colraces[$race['id']]=$race['name']; $races[$race['id']]=$race['rawname']; } $logd_version = "0.9.7+jt ext (GER)"; $session['user']['laston']=date("Y-m-d H:i:s"); $playermount = getmount($session['user']['hashorse']); $titles = array( 0=>array("Bauernjunge","Bauernmädchen"), 1=>array("Knecht", "Magd"), 2=>array("Bauer", "Bäuerin"), 3=>array("Grossbauer", "Grossbäuerin"), 4=>array("Spurenleser","Spurenleserin"), 5=>array("Jäger","Jägerin"), 6=>array("Gutshofverwalter","Gutshofverwalterin"), 7=>array("Gutsherr","Gutsherrin"), 8=>array("Bürger","Bürgerin"), 9=>array("Gladiator","Gladiatorin"), 10=>array("Legionär","Legionärin"), 11=>array("Centurio","Centurioness"), 12=>array("Meister","Meisterin"), 13=>array("Ratsherr", "Ratsfrau"), 14=>array("Verwalter","Verwalterin"), 15=>array("Bürgermeister", "Bürgermeisterin"), 16=>array("Major", "Major"), 17=>array("General", "General"), 18=>array("Edler", "Edle"), 19=>array("Ritter", "Ritterin"), 20=>array("Junker", "Junkerin"), 21=>array("Freiherr", "Freifrau"), 22=>array("Baron", "Baronin"), 23=>array("Fürst", "Fürstin"), 24=>array("Grossfürst", "Grossfürstin"), 25=>array("Herzog", "Herzogin"), 26=>array("Graf", "Gräfin"), 27=>array("Prinz", "Prinzessin"), 28=>array("Kronprinz", "Kronprinzessin"), 29=>array("König", "Königin"), 30=>array("Kaiser", "Kaiserin"), 31=>array("Drachentöter","Drachentöterin"), 32=>array("Bischof","Bischöfin"), 33=>array("Papst", "Päpstin"), 34=>array("Seele", "Seele"), 35=>array("Seliger", "Selige"), 36=>array("Heiliger", "Heilige"), 37=>array("Engel", "Engel"), 38=>array("Erzengel", "Erzengel"), 39=>array("Kraft", "Kraft"), 40=>array("Macht", "Macht"), 41=>array("Herrschaft", "Herrschaft"), 42=>array("Thron", "Thron"), 43=>array("Seraphim", "Seraphim"), 44=>array("Cherubim", "Cherubim"), 45=>array("Titan","Titanin"), 46=>array("Erztitan","Erztitanin"), 47=>array("Halbgott", "Halbgöttin"), 48=>array("Untergott","Untergöttin") ); $beta = (getsetting("beta",0) == 1 || $session['user']['beta']==1); ?>