LoGD Standardrelease steht hier zum Download zur Verfügung!
Home-Adresse dieser Version: anpera.net/logd
Anfragen nach dieser Version bitte an: logd@anpera.de
<?php
require_once "dbwrapper.php";
require_once "chat_functions.php";
$pagestarttime = getmicrotime();
$nestedtags=array();
$output="";
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 rawoutput($indata) {
global $output;
$output .= $indata . "\n";
}
function output($indata,$priv=false){
global $nestedtags,$output;
$data = translate($indata); // Aprilscherz aktiviert ;) Nacher wieder deaktivieren }else{ und } NICHT VERGESSEN
if (date("m-d")=="04-01"){
$out = appoencode($data,$priv);
if ($priv==false) $out = borkalize($out);
$output.=$out;
}else $output.=appoencode($data,$priv);
$output.="\n";
return 0;
}
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 compress_out($input){
//(c) Based on old YaBBSE code
//Open-Source Project by Zef Hemel (zef@zefnet.com)
//(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);
}
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);
$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']){
$subject=soap($subject);
$body=soap($body);
}
$sql = "INSERT INTO mail (msgfrom,msgto,subject,body,sent,hide) VALUES ('".(int)$from."','".(int)$to."','$subject','$body',now(),0)";
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";
$body = preg_replace("'[`]n'", "\n", $body);
$body = preg_replace("'[`].'", "", $body);
mail($row['emailaddress'],"Neue LoGD Mail","Du hast eine neue Nachricht von An Daingean @ 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']);
addnav("Kämpfen");
if($conf['healer'] || $session['user']['acctid']==getsetting("hasegg",0)) addnav("H?`LGolindas Hütte","healer.php");
else
addnav("H?`LHütte des Heilers","healer.php");
if($session[user][superuser]==0 || $session[user][superuser]>=2){
addnav("B?`lEtwas zum Bekämpfen suchen","forest.php?op=search");
if($session['user']['level']>1)addnav("H?`2Herumziehen","forest.php?op=search&type=slum");
addnav("N?`{Nervenkitzel suchen","forest.php?op=search&type=thrill");
}
if(getsetting("bankrobber",0)>0 && $session['user']['superuser']<>1)addnav("`}`TSuche nach den Räubern","bankrobber.php");
if ($session['user']['level']>=15 && $session['user']['seendragon']==0 && $session['user']['superuser']!=1)addnav("G?`@Den Grünen Drachen suchen","forest.php?op=dragon");
addnav("Wege");
addnav("`RVerborgene Lichtung","waldarena.php");
$config=unserialize($session[user]['DQ_config']);
if($config[see]==1 && $config[geist]<50 && $config[orden]<11)addnav("`gUnheil des Landes suchen","Drachenquest2.php?ziel=geist");
if($playermount['tavern']>0)addnav("D?`GReite {$playermount['mountname']} zur Dark Horse Taverne","forest.php?op=darkhorse");
if($playermount['tavern']>0 && $conf['castle'])addnav("B?`gReite {$playermount['mountname']} zur Burg","forest.php?op=castle");
addnav("","forest.php");
addnav("`gZum Dorf An Daingean zurück","village.php");
addnav("`GWeiter zur Stadt Myranor","myranor.php");
addnav("Besondere Orte");
addnav("`RVerschlungene Pfade","orte.php");
if($session[user][superuser]!=1){
addnav("`}Adlerfelsen","sb.php");
addnav("P?`{Plumpsklo","outhouse.php");
}
if(@file_exists("forestlakepath.php"))addnav("`2Trampelpfad","forestlakepath.php");
if($session['user']['turns']<=1)addnav("`lHexenhaus","hexe.php");
if(getsetting("vendor",0)==3)addnav("`LDie Karawane","karawane.php");
if($noshowmessage!=true){
output("`c`b`lD`2e`{r W`2al`ld`b`n`n");
output("`gD`Ge`Rr `@W`{a`2ld, Heimat von bösartigen Kreaturen und üblen Übeltätern all`{e`@r `RA`Gr`gt.`n`nD`Gi`Re `@d`{i`2chten Blätter des Waldes erlauben an den meisten Stellen nur wenige Meter Sicht. Die Wege würden
Dir verborgen bleiben, hättest Du nicht ein so gut geschultes Auge. Du bewegst Dich so leise wie eine milde Brise über den dicken Humus, der den Boden bedeckt. Dabei versuchst Du, es zu vermeiden auf dünne Zweige oder
irgendwelche der ausgebleichten Knochenstücke zu treten, welche den Waldboden spicken. Du verbirgst Deine Gegenwart vor den abscheulichen Monstern, die den Wald durchwa`{n`@d`Re`Gr`gn.`n`n");
if($session['user']['turns']<=1)output("`2I`{n `@d`Re`Gr 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 nic`Rh`@t `{d`2a.`c");
}
if($session['user']['superuser']>1){
output("`n`nSUPERUSER Specials:`n");
$d = dir("special");
while(false!==($entry = $d->read())){
if(strpos($entry, ".php") === false)continue;
if (substr($entry,0,1)==".")continue;
output("<a href='forest.php?specialinc=$entry'>$entry</a>`n",true);
addnav("","forest.php?specialinc=$entry");
}if(@file_exists('vendor.php')){output("<a href='vendor.php?specialinc=forest'>vendor.php</a>`n",true);addnav('','vendor.php?specialinc=forest');}
}
}
function get_DQ_wep($text="`n`pDu erhälst durch Deine Tat wahren Ruhm.`p`n"){ // 2008 by Schizo
global $session;
$config=unserialize($session[user][DQ_config]);
if($config[orden]<11 && $config[wep]<10){
$config[wep]++;
$session[user][DQ_config]=serialize($config);
output($text);
}
}
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<$max) return round(@mt_rand($min,$max)/1000,0);
elseif($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];
}else{
$sql="SELECT lastip,uniqueid,banoverride FROM accounts WHERE login='".addslashes($login)."'";
$result=db_query($sql) or die(db_error(LINK));
$row=db_fetch_assoc($result);
if($row['banoverride']){
$session['banoverride']=true;
return false;
}
db_free_result($result);
$ip=$row['lastip'];
$id=$row['uniqueid'];
}
$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")."')";
$result=db_query($sql) or die(db_error(LINK));
if(db_num_rows($result)>0){
$session=array();
$session[message].="`n`4Du bist einer Verbannung zum Opfer gefallen:`n";
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$session[message].=$row[banreason];
if($row[banexpire]=="0000-00-00")$session[message].=" `\$Die Verbannung ist permanent!`0";
if($row[banexpire]!="0000-00-00")$session[message].=" `^Der Bann wird am ".date("M d, Y",strtotime($row[banexpire]))." aufgehoben `0";
$session[message].="`n";
}
$session[message].="`4Wenn Du willst, kannst Du mit einer Anfrage nach dem Grund fragen.";
header("Location: index.php");
exit();
}
db_free_result($result);
}
function increment_specialty(){
global $session;
if($session[user][specialty]>0){
$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("`n`#Du 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 = 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 && (!(empty($session[user][magicuses]) && empty($session[user][darkartuses]) && empty($session[user][thieveryuses])) || $session[user][superuser]>=3)){
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","");
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);
}
}
}
function appoencode($data,$priv=false){ //bearbeitet von Eliwood
global $nestedtags,$session,$appoencode;
$output="";
while(!(($x=strpos($data,"`"))===false)){
$tag=substr($data,$x+1,1);
$append=substr($data,0,$x);
$output.=($priv?$append:HTMLEntities($append));
$data=substr($data,$x+2);
if($tag=="0"){
if($nestedtags['color'])$output.="</span>";
unset($nestedtags['color']);
}elseif($tag=="`"){
$output.="`";
}else{
if(isset($appoencode[$tag])){
$tagrow=$appoencode[$tag];
if(empty($tagrow['color'])){
if($nestedtags[$tagrow['tag']] && strchr($tagrow['tag']," /")==false){
$output.="</".$tagrow['tag'].">";
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.="</span>"; else $nestedtags['color']=true;
$output.="<span style='color: #".$tagrow['color'].";'>";
}
}else $output.=$tag;
}
}
if($priv)$output.=$data;
else $output.=HTMLEntities($data);
return $output;
}
function Load_Tags(){ //(c) 2005 by Eliwood & Serra
global $db,$link;
$result=DB_Query("SELECT SQL_CACHE * FROM appoencode",LINK);
$tags=array();
while($row = DB_Fetch_Assoc($result)){
$tags[$row['code']] = $row;
}
return $tags;
}
function cutappoencode($text){ // 2009 by Schizo
global $appoencode;
$textarray=explode('`',$text);
$out=$textarray[0];
for($i=1;$i<count($textarray);$i++){
$key=substr($textarray[$i],0,1);
if(isset($appoencode[$key]))$out.=substr($textarray[$i],1);
else $out.='`'.$textarray[$i];
}
return $out;
}
function Get_Allowed_Tags(){ //(c) 2005 by Eliwood & Serra
global $appoencode;
reset($appoencode);
$list='';
while(list($key,$val)=each($appoencode)){
if($val['allowed']==true)$list.=$val['code'];
}
return preg_quote($list);
}
function templatereplace($itemname,$vals=false){
global $template,$vitalhead,$vitalrow;
@reset($vals);
if(!isset($template[$itemname]))output("`bWarnung:`b Das `i$itemname`i Template wurde nicht gefunden!`n");
$out=$template[$itemname];
if($itemname=='statstart')$vitalhead=0;
if($itemname=='stathead'){$vitalhead++;$vitalrow=0;}
if($itemname=='statrow' && $vals!="")$vitalrow++;
if($itemname=='statend')$out.='<script language="JavaScript">
<!--
showOrHide();
//-->
</script>';
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");
if($itemname=='statrow' && $vals!="")$out=str_replace("<tr>",'<tr id="v'.$vitalhead.'['.$vitalrow.']">',$out);
if($itemname=='stathead')$out=str_replace("{"."$key"."}",'<img src="images/vminus.gif" id="v'.$vitalhead.'['.$vitalrow.']" onclick="showAndHide(\'v'.$vitalhead.'\');" height="12" style="float:left;padding: 5px 0px 0px 5px;"> '.$val,$out);
else $out=str_replace("{"."$key"."}",$val,$out);
}
return $out;
}
function charstats(){
global $session;
$u=&$session[user];
if($session[loggedin]){
$currentpage=$_SERVER['REQUEST_URI'];
if(strstr($currentpage, "?") !=""){
$position=strrpos($currentpage,"?");
$currentpage=substr($currentpage,0,$position);
}
$currentpage=str_replace("/logd/","",$currentpage); //change /logd/ to the name of your folder!
if(substr($currentpage,0,1)=="/")$currentpage=substr($currentpage,1);
//Tränke
global $badguy;
for($i=0;$i<6;$i+=1){
if($session['user']['potion']>$i){
if($badguy['creaturename']<>"" or $session['user']['alive']==0 or strstr($currentpage, "usepotion") !="" or strstr($currentpage, "usechow") !="" or strstr($currentpage, "newday") !="" or strstr($currentpage, "dragon") !="" or $session['user']['specialinc'] <> "" or strstr($currentpage, "special/vendor") !=""){
$potion.="<img src=\"./images/potion.gif\" title=\"\" alt=\"\" style=\"width: 14px; height: 20px;\">";
}else{
$potion.="<a href=\"usepotion.php\"><img src=\"./images/potion.gif\" title=\"\" alt=\"\" style=\"border: 0px solid ; width: 14px; height: 20px;\"></a>";
addnav("","usepotion.php");
}
}//else $potion.="<img src=\"./images/potionclear.gif\" title=\"\" alt=\"\" style=\"width: 14px; height: 20px;\">";
}
//Inventarlink
if($badguy['creaturename']<>"" or strstr($currentpage, "prefs") !="" or strstr($currentpage, "usechow") !="" or strstr($currentpage, "newday") !="" or strstr($currentpage, "festungsgrotte") !="" or strstr($currentpage, "dragon") !="" or strstr($currentpage, "vendor") !="" or $session['user']['specialinc'] <> ""){
$bag.="<img src=\"./images/bag.jpg\" title=\"\" alt=\"Zum Inventar\" style=\"border: 0px solid ;\">";
}else{
$bag.="<a href=\"prefs.php?op=inventory&back=$currentpage\"><img src=\"./images/bag.jpg\" title=\"\" alt=\"Zum Inventar\" style=\"border: 0px solid ;\"></a>";
addnav("","prefs.php?op=inventory&back=$currentpage");
}
//Vitalinfo
$u['hitpoints']=round($u['hitpoints'],0);
$u['experience']=round($u['experience'],0);
$u['maxhitpoints']=round($u['maxhitpoints'],0);
$spirits=array("-7"=>"Wiedererweckt","-6"=>"Wiedererweckt","-2"=>"Sehr schlecht","-1"=>"Schlecht","0"=>"Normal","1"=>"Gut","2"=>"Sehr gut");
if(!$u[alive])$spirits[$u[spirits]]="TOT";
reset($session[bufflist]);
$atk=$u[attack];
$def=$u[defence];
while(list($key,$val)=each($session[bufflist])){
$buffs.=($val[rounds]>=999)?appoencode("`#$val[name] `7(∞ Runden)`n",true):appoencode("`#$val[name]".($val[rounds]>0?" `7($val[rounds] Runden übrig)`n":"`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(count($session[bufflist])==0)$buffs.=appoencode("`^Keine`0",true);
$charstat=appoencode(templatereplace("statstart")
.templatereplace("stathead",array("title"=>"Vital Info"))
.templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false)))
.templatereplace("statrow",array("title"=>"Inventar","value"=>$bag))
// .templatereplace("statrow",array("title"=>"Gilde","value"=>$u['gilde']))
,true);
if($session['user']['alive']){
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Lebenspunkte","value"=>"$u[hitpoints]`0/$u[maxhitpoints]"))
.templatereplace("statrow",array("title"=>"Runden","value"=>$u['turns']))
,true);
}else{
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Seelenpunkte","value"=>$u['soulpoints']))
.templatereplace("statrow",array("title"=>"Foltern","value"=>$u['gravefights']))
,true);
}
$pi=&$session['pietre'];
$level=$session[user][level];
$exparray=array(1=>100,400,1002,1912,3140,4707,6641,8985,11795,15143,19121,23840,29437,36071,43930);
while(list($key,$val)=each($exparray))$exparray[$key]=round($val+($session[user][dragonkills]/4)*$session[user][level]*100,0);
$exprequired=$exparray[$session[user][level]];
$dona=$session[user][donation] - $session[user][donationspent];
$dqinfo=unserialize($session[user]['DQ_config']);
$dqruhm=($dqinfo[wep]>0 && $dqinfo[see]!=1)?templatereplace("statrow",array("title"=>"Ruhm","value"=>(int)$dqinfo[wep].'/10')):'';
$dqgeist=($dqinfo[see]==1 && $dqinfo[orden]<11)?templatereplace("statrow",array("title"=>"Geister","value"=>(int)$dqinfo[geist].'/50')):'';
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Stimmung","value"=>"`b".$spirits[(string)$u['spirits']]."`b"))
.templatereplace("statrow",array("title"=>"Level","value"=>"`b".$u['level']."`b"))
.($session['user']['alive']?templatereplace("statrow",array("title"=>"Alter","value"=>$u['age']))
.templatereplace("statrow",array("title"=>"Angriff","value"=>$atk))
.templatereplace("statrow",array("title"=>"Verteidigung","value"=>$def))
.templatereplace("statrow",array("title"=>"Charmepunkte","value"=>$u['charm']))
.templatereplace("statrow",array("title"=>"Intelligenz","value"=>$u['iq']))
.templatereplace("statrow",array("title"=>"Ehrenpunkte","value"=>$u['ehre']))
: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"=>"Gefallen","value"=>$u['deathpower']))
)
.($u['drunkenness']?templatereplace("statrow",array("title"=>"Promille","value"=>round($u['drunkenness']))):"")
.$dqruhm.$dqgeist
.templatereplace("stathead",array("title"=>"Weitere Infos"))
.templatereplace("statrow",array("title"=>"Gold","value"=>round($u['gold'])))
.templatereplace("statrow",array("title"=>"Gold auf der Bank","value"=>round($u['goldinbank'])))
.templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems']))
.templatereplace("statrow",array("title"=>"Edelsteine im Schließfach","value"=>$u['gemsinbank']))
.($session['user']['potion']?templatereplace("statrow",array("title"=>"Heiltränke","value"=>$potion)):"")
// .templatereplace("statrow",array("title"=>"Erfahrung","value"=>$u['experience']))
// .templatereplace("statrow",array("title"=>"Benötigte Erfahrung","value"=>$exprequired-$session[user][experience]))
.templatereplace("statrow",array("title"=>"Erfahrung","value"=>($exprequired-$u['experience']<0?'`8`b':'').$u['experience'].' / '.$exprequired.($exprequired-$u['experience']<0?'`b':'')))
.($u['waffe']?templatereplace("statrow",array("title"=>"Eigene Waffe","value"=>$u['wname'])):"")
.templatereplace("statrow",array("title"=>"Waffe angelegt","value"=>$u['weapon']." `0(".(int)$u['weapondmg'].")"))
.($u['ruest']?templatereplace("statrow",array("title"=>"Eigene Rüstung","value"=>$u['rname'])):"")
.templatereplace("statrow",array("title"=>"Rüstung angelegt","value"=>$u['armor']." `0(".(int)$u['armordef'].")"))
.templatereplace("stathead",array("title"=>"An Daingean Edition Infos"))
.templatereplace("statrow",array("title"=>"Bester Angriff","value"=>$u['punch']))
.templatereplace("statrow",array("title"=>"Angelrunden","value"=>$u['fishturn']))
.($u['crowedup']?templatereplace("statrow",array("title"=>"Pflanze gepflegt","value"=>$u['crowedup'])):"")
.($u['drachenerz']?templatereplace("statrow",array("title"=>"Drachenerze","value"=>(int)$u['drachenerz'])):"")
.($u['battlepoints']?templatereplace("statrow",array("title"=>"Arenapunkte","value"=>$u['battlepoints'])):"")
.($u['superuser']<>1?templatereplace("statrow",array("title"=>"Donationpoints gesamt","value"=>$u['donation'])):templatereplace("statrow",array("title"=>"Rollenspielpunkte gesamt","value"=>$u['rppoints'])))
.($u['superuser']<>1?templatereplace("statrow",array("title"=>"DP verfügbar","value"=>$dona)):templatereplace("statrow",array("title"=>"Rollenspielpunkte verfügbar","value"=>$u['rppoints']-$u['rppointsspent'])))
.templatereplace("statrow",array("title"=>"Drachenkills","value"=>$u['dragonkills']))
,true);
if(getsetting("dispnextday",0)){
$time=gametime();
$tomorrow=strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
$tomorrow=strtotime(date("Y-m-d 00:00:00",$tomorrow));
$secstotomorrow=$tomorrow-$time;
$realsecstotomorrow=round($secstotomorrow/(int)getsetting("daysperday",4));
$zeit=strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds");
$stempel=date("G",$zeit)*3600+date("i",$zeit)*60+date("s",$zeit);
$text='<span id="zeit0"></span>
<script language="javascript" type="text/javascript">
var zeit0_id = document.getElementById("zeit0");
var jetzt=new Date();
var past=jetzt.getTime();
var fix_ste='.$stempel.';
if(zeit0_id){window.setTimeout("countdown0()",1);}
function countdown0(){
var jet=new Date();
var jet=jet.getTime();
var diff=Math.round(fix_ste-(jet - past)/1000);
var diff_hou=Math.floor(diff/3600)%24;
var diff_min=Math.floor((diff%3600)/60)%60;
var diff_sek=diff%60;
if(diff>0){
zeit0_id.innerHTML = (diff_hou>0?diff_hou+"h, ":"")+(diff_min>0 || diff_hou>0?(diff_min<10?"0":"")+diff_min+"m, ":"")+(diff_sek<10?"0":"")+diff_sek+"s";
window.setTimeout("countdown0()",1000);
}
else zeit0_id.innerHTML = "jetzt"
}
</script>';
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächste Runde","value"=>$text)),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{
$sql="SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE superuser<=1 AND locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime("-".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 Bewohner/innen `nsind unterwegs:`b`n");
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$ret.=appoencode("`^$row[name]`n");
}
$sql="SELECT name,alive,location,sex,superuser,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE superuser>=2 AND invis!=1 AND locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result=db_query($sql) or die(sql_error($sql));
$count=db_num_rows($result);
$ret.=appoencode("`n`$`b$count Admins beobachten die Welt:`b`n");
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$ret.=appoencode("`^$row[name]`n");
$onlinecount++;
}
db_free_result($result);
if($onlinecount==0)$ret.=appoencode("`i`cBack in 5 minutes!`c`i");
return $ret;
}
}
$accesskeys=array('ü'=>1,'ä'=>1,'ö'=>1);
$quickkeys=array();
function addnav($text,$link=false,$priv=false,$pop=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(strpos($link,"?"))$extra="&c=$session[counter]";
else $extra="?c=$session[counter]";
$extra.="-".date("His");
//hotkey for the link.
$key="";
if(substr($text,1,1)=="?"){
if($accesskeys[strtolower(substr($text, 0, 1))]==1)$text = substr($text,2);
else{
$key = substr($text,0,1);
$text = substr($text,2);
$found=false;
for($i=0;$i<strlen($text);$i++){
$char=substr($text,$i,1);
if($ignoreuntil==$char)$ignoreuntil="";
else{
if($ignoreuntil<>""){
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);
}
}
}
if($key==""){
for($i=0;$i<strlen($text);$i++){
$char=substr($text,$i,1);
if($ignoreuntil==$char)$ignoreuntil="";
else{
if(($accesskeys[strtolower($char)]==1) || (strpos("abcdefghijklmnopqrstuvwxyzüöä0123456789", strtolower($char)) === false) || $ignoreuntil<>""){
if($char=="<")$ignoreuntil=">";
if($char=="&")$ignoreuntil=";";
if($char=="`")$ignoreuntil=substr($text,$i+1,1);
}else{
break;
}
}
}
}
if($i<strlen($text)){
$key=substr($text,$i,1);
$accesskeys[strtolower($key)]=1;
$keyrep=" accesskey=\"$key\" ";
}else{
$key="";
$keyrep="";
}
if($key!=""){
// $text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
$text=substr($text,0,$i)."`H".$key."`H".substr($text,$i+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;\"" : "")
));
}
$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;
if(!is_array($settings)){
$settings=array();
$sql="SELECT * FROM settings";
$result=db_query($sql) or die(db_error(LINK));
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$settings[$row[setting]] = $row[value];
}
db_free_result($result);
}
}
function getsetting($settingname,$default){
global $settings;
loadsettings();
if(!isset($settings[$settingname])){
savesetting($settingname,$default);
return $default;
}else{
if(trim($settings[$settingname])=="")$settings[$settingname]=$default;
return $settings[$settingname];
}
}
function showform($layout,$row,$nosave=false){
global $output,$appoencode;
output("<table>",true);
while(list($key,$val)=each($layout)){
$info=explode(",",$val);
if($info[1]=="title"){
output("<tr><td colspan='2' bgcolor='#666666'>",true);
output("`b`^$info[0]`0`b");
output("</td></tr>",true);
}else{
output("<tr><td valign='top'>",true);
output("$info[0]");
output("</td><td>",true);
}
switch($info[1]){
case "title":break;
case "enum":reset($info);
list($k,$v)=each($info);
list($k,$v)=each($info);
$output.="<select name='$key' style='color:#444444;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
while(list($k,$v)=each($info)){
$optval=$v;
list($k,$v)=each($info);
$optdis=$v;
$output.="<option value='$optval'".($row[$key]==$optval?" selected":"").">".HTMLEntities("$optval : $optdis")."</option>";
}
$output.="</select>";
break;
case "password":$output.="<input type='password' name='$key' value='".HTMLEntities($row[$key])."' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
break;
case "bool":if(!isset($row[$key]) && $info[2]==1)$row[$key]=1;
$output.="<select name='$key' style='color:#444444;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
$output.="<option value='0'".($row[$key]==0?" selected":"").">Nein</option>";
$output.="<option value='1'".($row[$key]==1?" selected":"").">Ja</option>";
$output.="</select>";
break;
case "hidden":$output.="<input type='hidden' name='$key' value=\"".HTMLEntities($row[$key])."\">".HTMLEntities($row[$key]);
break;
case "viewonly":output(dump_item($row[$key]), true);
break;
case "int":if ($key != 'bio')$output.="<input name='$key' value=\"".HTMLEntities($row[$key])."\" size='5'>";
elseif($key == 'bio')$output.="<textarea name='{$key}' cols='30' rows='5'>".HTMLEntities($row[$key])."</textarea>";
break;
case "textarea":$output.="<textarea name='$key' class='input' cols='$info[2]' rows='$info[3]' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>".HTMLEntities($row[$key])."</textarea>";
break;
case 'file':$output .= "<input name='$key' type='file' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
break;
case 'color':reset($appoencode);
$output.='<script type="text/javascript">var appoencodearray=Array();';
while(list($akey,$aval) = each($appoencode)){if(!empty($aval['color']))$output.='appoencodearray[\''.$akey.'\']="#'.$aval['color'].'";';}
$output.='</script>';
$output.='<input type="text" name="'.$key.'" value="'.$row[$key].'" maxlength="1" style="width:20px;text-align:center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;" onkeyup="if(typeof appoencodearray[this.value] != \'undefined\'){this.style.backgroundColor=appoencodearray[this.value];this.style.color=appoencodearray[this.value];}else{this.style.backgroundColor=\'#433828\';this.style.color=\'#CCCC00\';this.value=\'\';}">';
break;
case 'text':$output.=("<input size='53' maxlength='{$info[2]}' name='$key' value=\"".HTMLEntities($row[$key])."\" style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>");
break;
default:$output.=("<input size='53' name='$key' value=\"".HTMLEntities($row[$key])."\" style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>");
}
output("</td></tr>",true);
}
output("</table>",true);
if(!$nosave)output("<input type='submit' class='button' value='Speichern'>",true);
}
function clearnav(){
$session[allowednavs]=array();
}
function redirect($location,$reason=false){
global $session,$REQUEST_URI,$SCRIPT_NAME;
if($location!="badnav.php"){
$session[allowednavs]=array();
addnav("",$location);
}
if(strpos($location,"badnav.php")===false)$session[output]="<a href=\"".HTMLEntities($location)."\">Hier klicken</a>";
$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="diabloNeu.htm";
$fulltemplate = implode("",file("templates/$templatename"));
$fulltemplate = explode("<!--!",$fulltemplate);
while(list($key,$val)=each($fulltemplate)){
$fieldname=substr($val,0,strpos($val,"-->"));
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 hide=0 AND 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($session[user][prefs][ajaxoff]==1 || !$session[loggedin])$return='';
else{
addnav("","ajax_request.php");
$return='<script type="text/javascript">
<!--
var httpObjectYom = new AjaxRequest();
function yomIt(){
var Yom=httpObjectYom.connectPOST("ajax_request.php","op=yom",true);
Yom.onreadystatechange = function(){
if((Yom.readyState==4)&&(Yom.status==200)){
document.getElementById("ajax_request_yom").innerHTML = text_decode(Yom.responseText);
// alert(text_decode(Yom.responseText));
window.setTimeout("yomIt()",45000);
}
}
}
window.setTimeout("yomIt()",45000);
//-->
</script>';
}
if($row[notseen]>0) return $return."<div id=\"ajax_request_yom\"><a href='mail.php' target='_blank' onClick=\"".popup("mail.php").";return false;\" class='hotmotd'>Ye Olde Mail: {$row[notseen]} neu, {$row[seencount]} alt</a></div>";
else return $return."<div id=\"ajax_request_yom\"><a href='mail.php' target='_blank' onClick=\"".popup("mail.php").";return false;\" class='motd' >Ye Olde Mail: {$row[notseen]} neu, {$row[seencount]} alt</a></div>";
}
function motdlink(){
global $session,$templatename;
if($session[user][prefs][ajaxoff]==1 || !$session[loggedin])$return='';
else{
addnav("","ajax_request.php");
$return='<script type="text/javascript">
<!--
var httpObjectMotd = new AjaxRequest();
function motdIt(){
var Motd=httpObjectMotd.connectPOST("ajax_request.php","op=motd",true);
Motd.onreadystatechange = function(){
if((Motd.readyState==4)&&(Motd.status==200)){
document.getElementById("ajax_request_motd").innerHTML = text_decode(Motd.responseText);
window.setTimeout("motdIt()",45000);
}
}
}
window.setTimeout("motdIt()",45000);
//-->
</script>';
}
if($session[needtoviewmotd]) return $return."<div id=\"ajax_request_motd\"><a href='motd.php' target='_blank' onClick=\"".popup("motd.php").";return false;\" class='hotmotd'><b>MoTD</b></a></div>";
else return $return."<div id=\"ajax_request_motd\"><a href='motd.php' target='_blank' onClick=\"".popup("motd.php").";return false;\" class='motd' ><b>MoTD</b></a></div>";
}
function page_header($title="LoGD 0.9.7 ext GER"){
global $header,$SCRIPT_NAME,$session,$template,$settings;
$nopopups["login.php"]=1;
$nopopups["motd.php"]=1;
$nopopups["index.php"]=1;
$nopopups["vote.php"]=1;
$nopopups["create.php"]=1;
$nopopups["about.php"]=1;
$nopopups["mail.php"]=1;
$nopopups["farben.php"]=1;
$nopopups["bio.php"]=1;
$nopopups["freieavatare.php"]=1;
$nopopups["referral.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);
$wetter=cutappoencode($settings['weather']);
if( (stristr($wetter,'schnee')!==FALSE || stristr($wetter,'schneit')!==FALSE || stristr($wetter,'eis')!==FALSE) && (strstr($SCRIPT_NAME,'test.php')!==FALSE || strstr($SCRIPT_NAME,'village.php') || strstr($SCRIPT_NAME,'index.php'))){$header=str_replace('<body','<body id="winter"',$header);}
if(($row[motddate]>$session[user][lastmotd]) && $nopopups[$SCRIPT_NAME]!=1 && $session[user][loggedin]){
$header=str_replace("{headscript}","<script language=\"JavaScript\" type=\"text/javascript\">".popup("motd.php")."</script>",$header);
$session[needtoviewmotd]=true;
}else{
$header=str_replace("{headscript}","",$header);
$session[needtoviewmotd]=false;
}
$header=str_replace("{title}",$title,$header);
}
function popup($page){
return "window.open('$page','".preg_replace("([^[:alnum:]])","",$page)."','resizable=yes,".(preg_match("/farben.php/",$page)?"scrollbars=no,width=830,height=357":"scrollbars=yes,width=550,height=300")."')";
}
function page_footer(){
$forumlink=getsetting("forum","http://lotgd.net/forum");
global $output,$templatename,$nestedtags,$header,$nav,$session,$REMOTE_ADDR,$REQUEST_URI,$pagestarttime,$quickkeys,$template,$logd_version;
while(list($key,$val)=each($nestedtags)){
$output.="</$key>";
unset($nestedtags[$key]);
}
$script.="<script language=\"JavaScript\" type=\"text/javascript\">
<!--
document.onkeypress=keyevent;
function keyevent(e){
var c;
var target;
var altKey;
var ctrlKey;
if (window.event != null) {
c=String.fromCharCode(window.event.keyCode).toUpperCase();
altKey=window.event.altKey;
ctrlKey=window.event.ctrlKey;
}else{
c=String.fromCharCode(e.charCode).toUpperCase();
altKey=e.altKey;
ctrlKey=e.ctrlKey;
}
if (window.event != null)
target=window.event.srcElement;
else
target=e.originalTarget;
if (target.nodeName.toUpperCase()=='INPUT' || target.nodeName.toUpperCase()=='TEXTAREA' || altKey || ctrlKey){
}else{";
reset($quickkeys);
while(list($key,$val)=each($quickkeys)){
$script.="\n if (c == '".strtoupper($key)."') { $val; return false; }";
}
$script.=" }
return true;}
//-->
</script>";
// START - chat preview mod by Chaosmaker Modified for Ellis Colortags by Devilzimti)
$appoencode = Load_Tags();
$cases= " ";
while(list($key,$val) = each($appoencode)) {
if($val['allowed'] == true){
$cases .= "case \"".$val['code']."\":\n
if (openspan) output= output+\"</span>\"; else openspan = true;\n
output= output+\"<span style='color: #".$val['color'].";'>\";\n
break;\n ";
}else{
$cases .= "\n//".$val['code']." darf hier nicht benutzt werden!\n ";
}
}
$script .= <<<JS
<script type="text/javascript">
<!--
function appoencode(data){
var Fundstelle=-1;
var tag='';
var append='';
var output='<br />Vorschau: ';
var openspan=false;
while ((Fundstelle=data.search(/`/))!=-1){
tag=data.substr(Fundstelle+1, 1);
append=data.substr(0,Fundstelle);
append=append.replace(/</,'<');
append=append.replace(/>/,'>');
output=output+append;
if(data.length>=Fundstelle+2) data = data.substring(Fundstelle+2,data.length);
else data='';
switch(tag){
case "0":
if(openspan)output=output+"</span>";
openspan=false;
break;
{$cases}
default:
output=output+"`"+tag;
}
}
output+=data;
if(openspan)output+='</span>';
return output;
}
//-->
</script>
JS;
//END - chat preview mod by Chaosmaker (Modified for Ellis Colortags by Devilzimti)
if(($session['user']['arbeit_ID']>0 && $session['user']['superuser']<>1) || $session['user']['superuser']>=2){
$dateiseite=$REQUEST_URI;
if(!empty($session['user']['specialinc']))$dateiseite=str_replace('forest.php',$session['user']['specialinc'],$dateiseite);
if(strstr($dateiseite,"&c=")!=""){$position=strrpos($dateiseite,"&c=");$dateiseite=substr($dateiseite,0,$position);}
elseif(strstr($dateiseite,"?c=")!=""){$position=strrpos($dateiseite,"?c=");$dateiseite=substr($dateiseite,0,$position);}
if(strstr($dateiseite,"/")!=""){$position=strrpos($dateiseite,"/");$dateiseite=substr($dateiseite,$position+1);}
$arbeitresult=db_query("SELECT `ID` FROM arbeit WHERE ".(($session['user']['superuser']>=2)?'':"`ID`={$session['user']['arbeit_ID']} AND")." `datei`='{$dateiseite}' LIMIT 1");
db_num_rows($arbeitresult);
if(db_num_rows($arbeitresult)>0){$arbeitrow=db_fetch_assoc($arbeitresult);addnav("Willst Du helfen?");addnav("`QArbeiten","work.php".($session['user']['superuser']>=2?'?id='.$arbeitrow['ID']:''));if($session['user']['superuser']>=2)addnav("`Zzum Jobeditor","jobeditor.php");}
}
$footer=$template['footer'];
if(strpos($footer,"{paypal}") || strpos($header,"{paypal}"))$palreplace="{paypal}";
else $palreplace="{stats}";
//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.
$paypalstr='<table style="text-align:center;" cellspacing="0"><tr><td>';
$paypalstr.='<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="nahdude81@hotmail.com">
<input type="hidden" name="item_name" value="Legend of the Green Dragon Author Donation from '.preg_replace("/[`]./","",$session['user']['name']).'">
<input type="hidden" name="item_number" value="'.htmlentities($session['user']['login']).":".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'].'">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="cn" value="Your Character Name">
<input type="hidden" name="cs" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="tax" value="0">
<input type="image" src="images/paypal1.gif" border="0" name="submit" alt="Donate!">
</form>';
$paysite=getsetting("paypalemail", "");
if($paysite!=""){
$paypalstr.='</td><td>';
$paypalstr.='<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="'.$paysite.'">
<input type="hidden" name="item_name" value="Legend of the Green Dragon Site Donation from '.preg_replace("/[`]./","",$session['user']['name']).'">
<input type="hidden" name="item_number" value="'.htmlentities($session['user']['login']).":".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'].'">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="cn" value="Your Character Name">
<input type="hidden" name="cs" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="tax" value="0">
<input type="image" src="images/paypal2.gif" border="0" name="submit" alt="Donate!">
</form>';
}
$paypalstr.='</td></tr></table>';
if($session[user][loggedin]){$paypalstr="<a href='referral.php' target='_blank' onClick=\"".popup("referral.php").";return false;\"><b> Freunde<br> einladen</b></a>";addnav("","referral.php");}
$footer=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$footer);
$header=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$header);
//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.
$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}","<a href='$forumlink' target='_blank' class='motd'>Forum</a>",$header);
$footer=str_replace("{forum}","<a href='$forumlink' target='_blank' class='motd'>Forum</a>",$footer);
if($session[user][acctid]>0){
$header=str_replace("{mail}",maillink(),$header);
$footer=str_replace("{mail}",maillink(),$footer);
}else{
$header=str_replace("{mail}","",$header);
$footer=str_replace("{mail}","",$footer);
}
$header=str_replace("{petition}","<a href='petition.php' onClick=\"".popup("petition.php").";return false;\" target='_blank' align='right' class='motd'>Hilfe anfordern</a>",$header);
$footer=str_replace("{petition}","<a href='petition.php' onClick=\"".popup("petition.php").";return false;\" target='_blank' align='right' class='motd'>Hilfe anfordern</a>",$footer);
if($session['user']['superuser']>1){
$sql="SELECT count(petitionid) AS c,status FROM petitions GROUP BY status";
$result=db_query($sql);
$petitions=array(0=>0,1=>0,2=>0);
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$petitions[(int)$row['status']] = $row['c'];
}
db_free_result($result);
$footer = "<table border='0' cellpadding='5' cellspacing='0' align='right'><tr><td><b>Anfragen:</b> $petitions[0] Ungelesen, $petitions[1] Gelesen, $petitions[2] Geschlossen.</td></tr></table>".$footer;
}
$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}","<a href='source.php?url=".preg_replace("/[?].*/","",($_SERVER['REQUEST_URI']))."' target='_blank'>Source anzeigen</a>",$footer);
$header=str_replace("{source}","<a href='source.php?url=".preg_replace("/[?].*/","",($_SERVER['REQUEST_URI']))."' target='_blank'>Source anzeigen</a>",$header);
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
}else{
$footer=str_replace("{source}","<a href='source.php' target='_blank'>Source</a>",$footer);
$header=str_replace("{source}","<a href='source.php' target='_blank'>Source</a>",$header);
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
}
$footer=str_replace("{copyright}","Copyright 2002-2003, Game: Eric Stevens",$footer);
$footer=str_replace("{version}", "Version: $logd_version", $footer);
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
$gentime = getmicrotime()-$pagestarttime;
$session[user][gentime]+=$gentime;
$session[user][gentimecount]++;
$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)."",$footer);
if(strpos($_SERVER['HTTP_HOST'],"lotgd.net")!==false)$footer=str_replace("</html>",'<script language="JavaScript" type="text/JavaScript" src="http://www.reinvigorate.net/archive/app.bin/jsinclude.php?5193"></script></html>',$footer);
$output=$header.$output.$footer;
$session['user']['gensize']+=strlen($output);
$session[output]=$output;
$currentpage=$_SERVER['REQUEST_URI'];
if(strstr($currentpage,"?")!=""){
$position=strrpos($currentpage,"?");
$currentpage=substr($currentpage,0,$position);
}
$currentpage=str_replace("/","",$currentpage);
if(substr($currentpage,0,1)=="/")$currentpage=substr($currentpage,1);
if($currentpage!="usepotion.php" or $currentpage != "usechow.php")$session['user']['pqrestorepage']=$currentpage;
saveuser();
session_write_close();
echo compress_out($output);
exit();
}
function popup_header($title="Legend of the Green Dragon"){
global $header,$session;
if(strstr($_SERVER['REQUEST_URI'],'bio.php') || strstr($_SERVER['REQUEST_URI'],'referral.php') || strstr($_SERVER['REQUEST_URI'],'freieavatare.php')){
$header.='<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>'.$title.'</title>
<link href="templates/diabloNeu.css" rel="stylesheet" type="text/css">
</head>
<body style="color:#CCCC99;background-color:#000000;margin:1px 1px 10px 1px;">';
}else{
$header.="<html><head><title>$title</title>";
$header.="<link href=\"newstyle.css\" rel=\"stylesheet\" type=\"text/css\">";
$header.="</head><body bgcolor='#000000' text='#CCCCCC'><table cellpadding=5 cellspacing=0 width='100%'>";
$header.="<tr><td class='popupheader'><b>$title</b></td></tr>";
$header.="<tr><td valign='top' width='100%'>";
}
}
function popup_footer(){
global $output,$nestedtags,$header,$nav,$session;
while(list($key,$val)=each($nestedtags)){
$output.="</$key>";
unset($nestedtags[$key]);
}
if(strstr($_SERVER['REQUEST_URI'],'bio.php') || strstr($_SERVER['REQUEST_URI'],'referral.php') || strstr($_SERVER['REQUEST_URI'],'freieavatare.php')){
$output=$header.'
<table style="background:repeat-x url(templates/diabloNeu/main/main-top-back.gif);width:100%;height:46px;border:none;border-collapse:collapse;">
<tr>
<td style="background:no-repeat url(templates/diabloNeu/main/main-top-left.gif) left 0px;width:31px;height:46px;padding:0px;"></td>
<td style="background:no-repeat url(templates/diabloNeu/main/main-top-middle.gif) center -1px;width:330px;height:46px;padding:0px;"></td>
<td style="background:no-repeat url(templates/diabloNeu/main/main-top-right.gif) right 0px;width:31px;height:46px;padding:0px;"></td>
</tr>
</table>
<table style="width:100%;border:none;border-collapse:collapse;">
<tr>
<td style="background:repeat-y url(templates/diabloNeu/main/main-left.gif);width:31px;padding:0px;"></td>
<td style="padding:0px;">
'.$output.'
</td>
<td style="background:repeat-y url(templates/diabloNeu/main/main-right.gif);width:31px;padding:0px;"></td>
</tr>
</table>
<table style="background:repeat-x url(templates/diabloNeu/main/main-bot-back.gif);width:100%;height:46px;border:none;border-collapse:collapse;">
<tr>
<td style="background:no-repeat url(templates/diabloNeu/main/main-bot-left.gif) left 0px;width:31px;height:46px;padding:0px;"></td>
<td style="background:no-repeat url(templates/diabloNeu/main/main-bot-middle.gif) center 1px;width:330px;height:46px;padding:0px;"></td>
<td style="background:no-repeat url(templates/diabloNeu/main/main-bot-right.gif) right 0px;width:31px;height:46px;padding:0px;"></td>
</tr>
</table>
</body>
</html>';
}else{
$output.="</td></tr><tr><td bgcolor='#330000' align='center'>Copyright 2002, Eric Stevens WERBUNG</td></tr></table></body></html>";
$output=$header.$output;
}
saveuser();
echo $output;
exit();
}
function clearoutput(){
global $output,$nestedtags,$header,$nav,$session;
$session[allowednavs]="";
$output="";
unset($nestedtags);
$header="";
$nav="";
}
function soap($input){
global $soapsearch;
if(getsetting("soap",1)){
if(!is_array($soapsearch)){
$appoencodekeys='a-zA-Z0-9{}.,:;@!#%~&\(\)\[\]\^\$\*\+';
$sql="SELECT * FROM nastywords";
$result=db_query($sql);
$row=db_fetch_assoc($result);
$soapsearch=$row['words'];
$soapsearch=str_replace(array('a','l','i','e','t','o','s','k','c','*'),array('[a4@]','[l1!]','[li1!]','[e3]','[t7+]','[o0]','[sz$]','[kc]','[c(k]','([[:alnum:]]*)'),$soapsearch);
$start='\'(\s|\A)(`['.$appoencodekeys.'])*';
$end='(`['.$appoencodekeys.'])*([.,:;?!]|(\s|\Z))\'iU';
$soapsearch=str_replace(" ","$end $start", $soapsearch);
$soapsearch="$start".$soapsearch."$end";
$soapsearch=explode(" ",$soapsearch);
}
return preg_replace($soapsearch,"\\1`i$@#%`i\\2",$input);
}else{
return $input;
}
}
function saveuser(){
global $session,$dbqueriesthishit;
if($session[loggedin] && $session[user][acctid]!=""){
$session[user][output]=$session[output];
$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]);
$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];
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=explode("\"",$string);
$output=array();
while(list($key,$val)=each($arr1)){
$arr2=explode("\"",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) . ") {<blockquote>";
while(list($key, $val) = @each($temp)){
$output.="'$key' = '" . dump_item($val) . "'`n";
}
$output .= "</blockquote>}";
}else{
$output .= $item;
}
return $output;
}
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;
if($session['user']['loggedin']){
output("<!--CheckNewDay()-->",true);
if(is_new_day()){
$session=$revertsession;
$session[user][restorepage]=$REQUEST_URI;
$session[allowednavs]=array();
addnav("","newday.php");
redirect("newday.php");
}
}
}
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 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("r")));
return $time;
}
function convertgametime($intime){
$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 getgametime(){
$text='<span id="zeit1">.</span>
<script language="javascript" type="text/javascript">
var zeit1_id = document.getElementById("zeit1");
if(zeit1_id){window.setTimeout("act_zeit1()",1);}
function act_zeit1(){
var gerade = new Date();
var gamezeit = gerade.getHours()+":"+(gerade.getMinutes()<10?"0":"")+gerade.getMinutes();
zeit1_id.innerHTML = gamezeit.replace(/ /g,"");
window.setTimeout("act_zeit1()", 1000);
}</script>';
// return date("g:i a",$time);
return $text;
}
function getmoon($typ='pic'){
/*------------------- Mondphasen, an-daingean.de ------------------/
/ "f" entspricht einer gewünschten Vollmondzeit (Zeitstempel) /
/ "z" entspricht der Dauer in Sekunden eines Zyklus' /
/ "v" entspricht die Anzahl der Sekunden, die die Mondphasen /
/ Vollmond, Halbmond und Neumond dauern /
/------------------------ 2009 by Schizo -------------------------*/
$mond=array("f"=>1257189228,"z"=>2551380,"v"=>172800);
$zyklus=(time()-$mond[f])%$mond[z];
while($zyklus<0){$zyklus+=$mond[z];}
$out="`^Du schaust gen Himmel und ";
if($zyklus<$mond[v]/2){
$out.="erblickst einen wunderschönen Vollmond.";
$pic="<img src='images/mond/vollmond.gif' alt='(Vollmond)' title='Vollmond'>";
$wk=3;
}
elseif($zyklus<($mond[z]-$mond[v])/2){
if($zyklus<($mond[z]/4-$mond[v]/4)){
$out.="siehst einen abnehmenden Mond.";
$pic="<img src='images/mond/dreiviertelmond2.gif' alt='(abnehmender Mond)' title='abnehmender Mond'>";
}elseif($zyklus>($mond[z]/4+$mond[v]/4)){
$out.="siehst einen abnehmenden Mond.";
$pic="<img src='images/mond/viertelmond2.gif' alt='(abnehmender Mond)' title='abnehmender Mond'>";
}else{
$out.="siehst einen abnehmenden Halbmond.";
$pic="<img src='images/mond/halbmond2.gif' alt='(Halbmond)' title='abnehmender Halbmond'>";
}
$wk=-1*e_rand(0,1);
}
elseif($zyklus<($mond[z]+$mond[v])/2){
$out.="stellst fest, es ist Neumond.";
$pic="<img src='images/mond/neumond.gif' alt='(Neumond)' title='Neumond'>";
$wk=-2;
}
elseif($zyklus<$mond[z]-$mond[v]/2){
if($zyklus<($mond[z]*3/4-$mond[v]/4)){
$out.="siehst einen zunehmenden Mond.";
$pic="<img src='images/mond/viertelmond.gif' alt='(zunehmender Mond)' title='zunehmender Mond'>";
}elseif($zyklus>($mond[z]*3/4+$mond[v]/4)){
$out.="siehst einen zunehmenden Mond.";
$pic="<img src='images/mond/dreiviertelmond.gif' alt='(zunehmender Mond)' title='zunehmender Mond'>";
}else{
$out.="siehst einen zunehmenden Halbmond.";
$pic="<img src='images/mond/halbmond.gif' alt='(Halbmond)' title='zunehmender Halbmond'>";
}
$wk=e_rand(0,1);
}
else{
$out.="erblickst einen wunderschönen Vollmond.";
$pic="<img src='images/mond/vollmond.gif' alt='(Vollmond)' title='Vollmond'>";
$wk=3;
}
if($typ=='text')output($out);
elseif($typ=='pic') output($pic,true);
elseif($typ=='wk') return $wk;
}
function sql_error($sql){
global $session;
return output_array($session)."SQL = <pre>$sql</pre>".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) return db_fetch_assoc($result);
else return array();
}
function debuglog($message,$target=0){
global $session;
$sql="DELETE from debuglog WHERE date <'".date("Y-m-d H:i:s",strtotime("-".(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 rpzelle(){ //by Schizo 2010
global $session;
$result=db_query("SELECT rpzelle FROM charadata WHERE acctid=".$session['user']['acctid']);
if(db_num_rows($result)==0)return false;
$row=db_fetch_assoc($result);
$zellen=unserialize($row['rpzelle']);
if(!is_array($zellen))return false;
if(count($zellen)==0)return false;
if(!preg_match("/in/",$row['rpzelle']))return false;
return $zellen;
}
function soapnames($input){
global $soapnamessearch,$titles,$races,$gods;
if(!is_array($soapnamessearch)){
$appoencodekeys='a-zA-Z0-9{}.,:;@!#%~&\(\)\[\]\^\$\*\+';
$sql="SELECT * FROM nastywords";
$result=db_query($sql);
$row=db_fetch_assoc($result);
$soapnamessearch=$row['names'];
$soapnamessearch=str_replace(array('a','l','i','e','t','o','s','c','k','*'),array('[a4@]','[l1!]','[li1!]','[e3]','[t7+]','[o0]','[sz$]','[c(k]','[kc]','([[:alnum:]]*)'),$soapnamessearch);
$start='\'(\s|\A)(`['.$appoencodekeys.'])*';
$end='(`['.$appoencodekeys.'])*([.,:;?!]|(\s|\Z))\'iU';
$soapnamessearch=str_replace(" ","$end $start", $soapnamessearch);
$soapnamessearch="$start".$soapnamessearch."$end";
$soapnamessearch=explode(" ",$soapnamessearch);
}
$input=str_replace(array('.',',',"'",' ','_','-'),'',$input);
$output=preg_replace($soapnamessearch,"",$input);
foreach($titles AS $titel){
$output=str_replace(cutappoencode($titel[0]),'',$output);
$output=str_replace(cutappoencode($titel[1]),'',$output);
}
foreach($races AS $race){
$output=str_replace(cutappoencode($race),'',$output);
}
foreach($gods AS $god){
$output=str_replace(cutappoencode($god),'',$output);
}
if($input<>$output)return 0;
return 1;
}
//END FUNCTIONS
if(file_exists("dbconnect.php")){
require_once "dbconnect.php";
}else{
echo "You must edit the file named \"dbconnect.php.dist,\" and provide the requested information, then save it as \"dbconnect.php\"".
exit();
}
$link = db_pconnect($DB_HOST, $DB_USER, $DB_PASS) or die (db_error($link));
db_select_db ($DB_NAME) or die (db_error($link));
define("LINK",$link);
$appoencode = Load_Tags();
$appoencode_str = Get_Allowed_Tags();
require_once "translator.php";
if(!$_COOKIE[vital]){setcookie("vital","v1:1::v2:1::v3:1",time()+1000*60*60*24*7);}
session_register("session");
function register_global(&$var){
@reset($var);
while(list($key,$val)=@each($var)){
global $$key;
$$key = $val;
}
@reset($var);
}
$session =& $_SESSION['session'];
register_global($_SERVER);
if(strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds") > $session['lasthit'] && $session['lasthit']>0 && $session[loggedin]){
$session=array();
$session['message'].="`nDeine Session ist abgelaufen!`n";
}
$session[lasthit]=strtotime("now");
$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 (strpos($REQUEST_URI,"?")) $REQUEST_URI=$SCRIPT_NAME.substr($REQUEST_URI,strpos($REQUEST_URI,"?"));
else $REQUEST_URI=$SCRIPT_NAME;
$allowanonymous=array("index.php"=>true,"vote.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,"chat.php"=>