LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
// 12092004
require_once "dbwrapper.php";
require_once "anticheat.php";
$pagestarttime = getmicrotime();
$nestedtags=array();
$output="";
function lover($wert="*",$player=false) {
//Erster Parameter ist ein String mit den abzufragenden Feldern - wie in MySQL
//Zweiter Parameter bestimmt, ob es sich um den aktuellen User handelt, oder einen andern - ID ANGEBEN!!!
global $session;
if($session['user']['marriedto']==0 || $session['user']['marriedto']==4294967295) {
return false;
} else {
if($player==false) {
$sql="SELECT {$wert} FROM accounts WHERE acctid = {$session[user][marriedto]} LIMIT 1";
} else {
$sql="SELECT {$wert} FROM accounts WHERE acctid = {$player} LIMIT 1";
}
$lover=db_fetch_assoc(db_query($sql));
if($lover) {
return $lover;
} else {
return false;
}
}
}
if (!function_exists('array_combine')){
function array_combine ($keys, $values){
$error = 0;
if (!is_array($keys)) $error = 1;
if (!is_array($values)) $error = 2;
if ($error){
die("<b>Fatal Error:</b> Fehler bei Funktion \"array_combine\": Argument $error ist kein Array!");
}
if (count($keys)!=count($values) || count($keys)==0){
return false;
}else{
$array = array();
while (list($x,$key)=each($keys)){
list($y,$val)=each($values);
$array[$key] = $val;
}
return $array;
}
}
}
function useronline(){ //Wer ist hier online? V.1.0 by Devilzimti
global $session,$SCRIPT_NAME;
$useronline = "<img src='images/uscroll.GIF' width='195' height='11' alt=''><br>
<table border='0' cellpadding='0' cellspacing='0' class='vitalinfo'>
<tr><td><tr><td><b>`6 Hier anwesend:`0</b></td></tr>";
$sql = "SELECT name,login FROM accounts
WHERE (accounts.restorepage LIKE '".$SCRIPT_NAME."%"."' OR accounts.acctid=".$session[user][acctid].")
AND loggedin = 1
AND locked = 0
AND laston>'".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds"))."'
ORDER BY dragonkills,level;
";
$query =db_query($sql);
while($row = db_fetch_assoc($query)){
$useronline.= "<tr><td> <a href='mail.php?op=write&to=".rawurlencode($row['login'])."' target='_blank' onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row['login'])).";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0'></a> ";
$useronline.= "`0$row[name]</td></tr>";
}
$useronline.= "</td></tr></table>
<img src='images/lscroll.GIF' width='195' height='11'>";
$useronline = appoencode($useronline,true);
return $useronline;
}
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 give_new_loot($name,$description,$gold=0,$gems=0)
{
// Gives Users a New Loot
// by Basilius, Eliwood
global $session;
$sql = "INSERT INTO items (name,description,class,owner,gold,gems) "
."VALUES ('$name','$description','Beute','".$session['user']['acctid']."','$gold','$gems')";
db_query($sql) or die("Ach, so nen Mist, schon wieder verbockt!");
}
function rawoutput($indata) {
global $output;
$output .= $indata . "\n";
}
function output($indata,$priv=false){
global $nestedtags,$output;
$data = translate($indata);
// Aprilscherz deaktiviert ;)
// 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 compress_out ($input) {
//Based on old YaBBSE code (c)
//Open-Source Project by Zef Hemel (zef@zefnet.com <mailto:zef@zefnet.com>)
//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."<br>".$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("Nimm {$playermount['mountname']} zur Dark Horse Taverne","forest.php?op=darkhorse");
if ($playermount['tavern']>0 && $conf['castle']) addnav("B?Nimm {$playermount['mountname']} zur Burg","forest.php?op=castle");
if ($conf['goldmine']>0) addnav("Goldmine (".$conf[goldmine]."x)","paths.php?ziel=goldmine&pass=conf");
addnav("Horst der Adler","schnellbank.php");
addnav("Z?Zurück zum Dorf","village.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");
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("<a href='forest.php?specialinc=$entry'>$entry</a>`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 "<br>Orig output: $ip, $id<br>";
}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 "<br>Secondary output: $ip, $id<br>";
}
$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;$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","Blaue Magie","Rote Magie","Schwarze Magie","Dunkle Stabmagie","Heillige Stabmagie","Elementare Stabmagie","Feuerkünste","Eismagie","Naturkräfte","Heilungskräfte","Verderbenszauber","Chaoskünste");
$skills = array(1=>"darkarts","magic","thievery","bmagie","rmagie","smagie","dsmagie","hsmagie","esmagie","fmagie","emagie","nmagie","hmagie","vmagie","cmagie");
$skillpoints = array(1=>"darkartuses","magicuses","thieveryuses","bmagieuses","rmagieuses","smagieuses","dsmagieuses","hsmagieuses","esmagieuses","fmagieuses","emagieuses","nmagieuses","hmagieuses","vmagieuses","cmagieuses");
$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 yeoldemail($login,$return = false)
{
$ausgabe = '<a href="mail.php?op=write&to='.$login.'" target="_blank" onClick="'
.popup("mail.php?op=write&to=".$login)
.';return false;\">'
.'<img src="images/newscroll.GIF" width="16" height="16" alt="Mail schreiben" border="0" />'
.'</a> ';
if($return === false) rawoutput($ausgabe);
else return $ausgabe;
}
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][bmagieuses]>0) {
addnav("`!Blaue Magie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("g?`!• Kugelhagel`7 (1/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=1",true);
}
if ($session[user][bmagieuses]>1)
addnav("`!• Eis Waffe`7 (2/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=2",true);
if ($session[user][bmagieuses]>2)
addnav("L?`!• Eis Drache`7 (3/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=3",true);
if ($session[user][bmagieuses]>4)
addnav("A?`!• Seele vereisen`7 (5/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=5",true);
if ($session[user][rmagieuses]>0) {
addnav("`4Rote Magie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("g?`4• Wunden heilen`7 (1/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=1",true);
}
if ($session[user][rmagieuses]>1)
addnav("`4• Lavasturm`7 (2/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=2",true);
if ($session[user][rmagieuses]>2)
addnav("L?`4• Hellfirewaffe`7 (3/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=3",true);
if ($session[user][rmagieuses]>4)
addnav("A?`4• Feuerblitzerdseisangriff`7 (5/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=5",true);
if ($session[user][smagieuses]>0) {
addnav("`TSchwarze Magie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("g?`T• Skelettdiener`7 (1/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=1",true);
}
if ($session[user][smagieuses]>1)
addnav("`T• Gefolgsleute`7 (2/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=2",true);
if ($session[user][smagieuses]>2)
addnav("L?`T• Göttermacht`7 (3/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=3",true);
if ($session[user][smagieuses]>4)
addnav("A?`T• Verbündete Bürger`7 (5/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=5",true);
if ($session[user][dsmagieuses]>0) {
addnav("`7Dunkle Stabmagie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("S?`7• `7Spinnen`7 (1/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=1",true);
}
if ($session[user][dsmagieuses]>1)
addnav("A?`7• Aurastrahl`7 (2/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=2",true);
if ($session[user][dsmagieuses]>2)
addnav("L?`7• Lava Drache`7 (3/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=3",true);
if ($session[user][dsmagieuses]>4)
addnav("F?`7• Formwandlung`7 (5/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=5",true);
if ($session[user][hsmagieuses]>0) {
addnav("`gHeillige Stabmagie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("W?`g• Wunden heilen`7 (1/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=1",true);
}
if ($session[user][hsmagieuses]>1)
addnav("H?`g• Himmelsengel`7 (2/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=2",true);
if ($session[user][hsmagieuses]>2)
addnav("S?`g• Heilliges Schwert`7 (3/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=3",true);
if ($session[user][hsmagieuses]>4)
addnav("l?`g• Sonnenlicht`7 (5/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=5",true);
if ($session[user][esmagieuses]>0) {
addnav("`@Elementare Stabmagie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("S?`@• Skelettdiener`7 (1/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=1",true);
}
if ($session[user][esmagieuses]>1)
addnav("B?`@• Baumwächter`7 (2/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=2",true);
if ($session[user][esmagieuses]>2)
addnav("P?`@• Pflanzen`7 (3/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=3",true);
if ($session[user][esmagieuses]>4)
addnav("H?`@• Hirten`7 (5/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=5",true);
if ($session[user][fmagieuses]>0) {
addnav("`NFeuerkünste`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("F?`N• Feuerkugel`7 (1/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=1",true);
}
if ($session[user][fmagieuses]>1)
addnav("w?`N• Flammenwaffe`7 (2/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=2",true);
if ($session[user][fmagieuses]>2)
addnav("D?`N• Feuer Drache`7 (3/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=3",true);
if ($session[user][fmagieuses]>4)
addnav("S?`N• Seele verbrennen`7 (5/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=5",true);
if ($session[user][emagieuses]>0) {
addnav("`F#Eismagie`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("E?`F• Eiszapfen`7 (1/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=1",true);
}
if ($session[user][emagieuses]>1)
addnav("k?`F• Eiskugel`7 (2/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=2",true);
if ($session[user][emagieuses]>2)
addnav("b?`F• Eisbogen`7 (3/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=3",true);
if ($session[user][emagieuses]>4)
addnav("a?`F• Eisangriff`7 (5/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=5",true);
if ($session[user][nmagieuses]>0) {
addnav("`wNaturkräfte`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("N?`w• Naturteilchen`7 (1/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=1",true);
}
if ($session[user][nmagieuses]>1)
addnav("R?`w• Rehe`7 (2/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=2",true);
if ($session[user][nmagieuses]>2)
addnav("f?`w• Naturfasern`7 (3/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=3",true);
if ($session[user][nmagieuses]>4)
addnav("t?`w• Naturteilchen`7 (5/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=5",true);
if ($session[user][hmagieuses]>0) {
addnav("`kHeilungskräfte`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("H?`k• Heilungssiegel`7 (1/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=1",true);
}
if ($session[user][hmagieuses]>1)
addnav("k?`k• Heilkraut`7 (2/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=2",true);
if ($session[user][hmagieuses]>2)
addnav("D?`k• Heilungs Diener`7 (3/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=3",true);
if ($session[user][hmagieuses]>4)
addnav("g?`k• Heilung`7 (5/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=5",true);
if ($session[user][vmagieuses]>0) {
addnav("`xVerderbenszauber`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("R?`x• Regeneration`7 (1/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=1",true);
}
if ($session[user][vmagieuses]>1)
addnav("D?`x• Dämon`7 (2/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=2",true);
if ($session[user][vmagieuses]>2)
addnav("V?`x• Verseuchtes Schwert`7 (3/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=3",true);
if ($session[user][vmagieuses]>4)
addnav("Z?`x• Zombies`7 (5/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=5",true);
if ($session[user][cmagieuses]>0) {
addnav("`qChaoskünste`0","");
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
addnav("C?`q• Chaos`7 (1/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=1",true);
}
if ($session[user][cmagieuses]>1)
addnav("W?`q• Wirbelsturm`7 (2/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=2",true);
if ($session[user][cmagieuses]>2)
addnav("S?`q• Sandsturm`7 (3/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=3",true);
if ($session[user][cmagieuses]>4)
addnav("V?`q• Verwirrung`7 (5/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&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;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$spellbuff=unserialize($row[buff]);
addnav("`v$spellbuff[name] `0(".$row[value1]."x)","$script?op=fight&skill=zauber&itemid=$row[id]");
}
// end spells
}
}
function appoencode($data,$priv=false)
{
global $nestedtags,$session,$appoencode;
/* Überarbeitet und verkleinert von Eliwood =D */
$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.="`";
}
elseif($tag == "z")
{
// Zufällige Farbe - by Devilzimti
$appoencode_s = $appoencode;
shuffle($appoencode_s);
$rand = e_rand(0,count($appoencode_s));
if ($nestedtags['color']) $output.="</span>"; else $nestedtags['color']=true;
$output.="<span style='color: #".$appoencode_s[$rand]['color'].";'>";
}
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()
{
global $db,$link;
/* (c) 2005 by Eliwood & Serra */
$result = DB_Query("SELECT SQL_CACHE * FROM appoencode",LINK);
$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,$playermount;
$kampfkunst=array(
1=> ("Schwertkampf"),
2=> ("Axtkampf"),
3=> ("Lanzenkampf"),
4=> ("Bogenschütze"),
5=> ("Anima-Magie"),
6=> ("Schwarze Magie"),
7=> ("Lichtmagie"),
8=> ("Stabmagie"),
0=> ("Unbekannt"));
$jobid=array(
1=>"Schmied",
2=>"Pfleger",
3=>"Hebamme",
4=>"Schankknecht",
5=>"Schankmaid",
6=>"Radmacher",
7=>"Florist",
8=>"Floristin",
9=>"Krämer",
10=>"Kerzenzieher",
11=>"Gaukler",
12=>"Barde",
13=>"Redner",
14=>"Wirt",
15=>"Bote",
16=>"Kunstschmied",
17=>"Heiler",
18=>"Gärtner",
19=>"Lehrer",
20=>"Zahnreisser",
21=>"Tänzer",
22=>"Geschichtenerzähler",
23=>"Schreiber",
24=>"Buchbinder",
25=>"Rechtsgelehrter",
26=>"Philosoph",
27=>"Schauspieler",
28=>"Richter",
29=>"Kartograph",
30=>"Ausbilder",
0=>"`)Arbeitslos");
$kla=array(0=>"Keine Klamotten",1=>"Weises Kleid",2=>"Drachenleder Kleid",3=>"Schwarzes Jacket",4=>"Drachenleder Jacket");
$arm=array(0=>"Kein Armband",1=>"Goldenes Armband",2=>"Drachen Armband");
$shoes=array(0=>"Keine Schuhe",1=>"Wanderschuhe",2=>"Sportschue",3=>"Lederstiefel",4=>"Drachen Stiefel");
$hair=array(0=>"Glatze",1=>"Glatze",2=>"Glatze",3=>"Glatze",4=>"Glatze",5=>"Glatze",6=>"Glatze",7=>"Glatze",8=>"Glatze",9=>"Glatze",10=>"Kurze Haare",11=>"Kurze Haare",12=>"Kurze Haare",13=>"Kurze Haare",14=>"Kurze Haare",15=>"Kurze Haare",16=>"Kurze Haare",17=>"Kurze Haare",18=>"Kurze Haare",19=>"Kurze Haare",20=>"Normale Länge",21=>"Normale Länge",22=>"Normale Länge",23=>"Normale Länge",24=>"Normale Länge",25=>"Normale Länge",26=>"Normale Länge",27=>"Normale Länge",28=>"Normale Länge",29=>"Normale Länge",30=>"Normale Länge",31=>"Normale Länge",32=>"Normale Länge",33=>"Normale Länge",34=>"Normale Länge",35=>"Normale Länge",36=>"Normale Länge",37=>"Normale Länge",38=>"Normale Länge",39=>"Normale Länge",40=>"Lange Haare",41=>"Lange Haare",42=>"Lange Haare",43=>"Lange Haare",44=>"Lange Haare",45=>"Lange Haare",46=>"Lange Haare",47=>"Lange Haare",48=>"Lange Haare",49=>"Lange Haare",50=>"Lange Haare",51=>"Lange Haare",52=>"Lange Haare",53=>"Lange Haare",54=>"Lange Haare",55=>"Lange Haare",56=>"Lange Haare",57=>"Lange Haare",58=>"Lange Haare",59=>"Lange Haare",60=>"Lang und Ungepflegt",61=>"Lang und Ungepflegt",62=>"Lang und Ungepflegt",63=>"Lang und Ungeflegt",64=>"Lang und Ungeflegt",65=>"Lang und Ungeflegt",66=>"Lang und Ungepflegt",67=>"Lang und Ungepflegt",68=>"Lang und Ungepflegt",69=>"Lang und Ungepflegt",70=>"Lang und Ungepflegt",71=>"Lang und Ungepflegt",72=>"Lang und Ungepflegt",73=>"Lang und Ungepflegt",74=>"Lang und Ungepflegt",75=>"Lang und Ungepflegt",76=>"Lang und Ungepflegt",77=>"Lang und Ungepflegt",78=>"Lang und Ungepflegt",79=>"Lang und Ungepflegt",80=>"Lang und Ungepflegt",81=>"Lang und Ungepflegt",82=>"Lang und Ungepflegt",83=>"Lang und Ungeflegt",84=>"Lang und Ungeflegt",85=>"Lang und Ungeflegt",86=>"Lang und Ungepflegt",87=>"Lang und Ungepflegt",88=>"Lang und Ungepflegt",89=>"Lang und Ungepflegt",90=>"Lang und Ungepflegt",91=>"Lang und Ungepflegt",92=>"Lang und Ungepflegt",93=>"Lang und Ungepflegt",94=>"Lang und Ungepflegt",95=>"Lang und Ungepflegt",96=>"Lang und Ungepflegt",97=>"Lang und Ungepflegt",98=>"Lang und Ungepflegt",99=>"Lang und Ungepflegt",100=>"Lang und Ungepflegt");
$nagel=array(0=>"Kurz",1=>"Kurz",2=>"Kurz",3=>"Kurz",4=>"Kurz",5=>"Kurz",6=>"Kurz",7=>"Kurz",8=>"Kurz",9=>"Kurz",10=>"Normal",11=>"Normal",12=>"Normal",13=>"Normal",14=>"Normal",15=>"Normal",16=>"Normal",17=>"Normal",18=>"Normal",19=>"Normal",20=>"gepflegt",21=>"gepflegt",22=>"gepflegt",23=>"gepflegt",24=>"gepflegt",25=>"gepflegt",26=>"gepflegt",27=>"gepflegt",28=>"gepflegt",29=>"gepflegt",30=>"gepflegt",31=>"gepflegt",32=>"gepflegt",33=>"gepflegt",34=>"gepflegt",35=>"gepflegt",36=>"gepflegt",37=>"gepflegt",38=>"gepflegt",39=>"gepflegt",40=>"Ungepflegt",41=>"Ungepflegt",42=>"Ungepflegt",43=>"Ungepflegt",44=>"Ungepflegt",45=>"Ungepflegt",46=>"Ungepflegt",47=>"Ungepflegt",48=>"Ungepflegt",49=>"Ungepflegt",50=>"Ungepflegt",51=>"Ungepflegt",52=>"Ungepflegt",53=>"Ungepflegt",54=>"Ungepflegt",55=>"Ungepflegt",56=>"Ungepflegt",57=>"Ungepflegt",58=>"Ungepflegt",59=>"Ungepflegt",60=>"Ungepflegt");
$nagelco=array(0=>"Kein",1=>"Schwarz",2=>"Gelb",3=>"Lila",4=>"Rot",5=>"Blau",6=>"Pink", 7=>"Klarlack");
$hairco=array(0=>"Braun",1=>"Schwarz",2=>"Blond",3=>"Grün",4=>"Pink",5=>"Rot",6=>"Blau");
$gott=array(
1=>"Tempus",
2=>"Mielliki",
3=>"Shar",
4=>"Deneir",
5=>"Arjuna",
6=>"Railo",
7=>"Ivo",
8=>"Edorus",
0=>"`)Keiner");
$u =& $session[user];
//RPG-Chars Addon (c) 2006 by Meralou & Alexiel
if ($session[loggedin] && $session[user][onlyrpchara]==1){
$charstat=appoencode(templatereplace("statstart")
.templatereplace("stathead",array("title"=>"Vital Info")) .templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false)))
.templatereplace("statrow",array("title"=>"RPG-Punkte","value"=>$u['donation']-$u['donationspent'])),true);
if($session['user']['ssstatus'] == 1 && $session['user']['ssmonat'] <= 128)
{
switch($session['user']['ssmonat'])
{
case 128:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Noch nichts zu sehen")), true);
break;
case 127:
case 126:
case 125:
case 124:
case 123:
case 122:
case 121:
case 120:
case 119:
case 118:
case 117:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Kleiner Bauch")), true);
break;
case 116:
case 115:
case 114:
case 113:
case 112:
case 111:
case 110:
case 109:
case 108:
case 107:
case 106:
case 105:
case 104:
case 103:
case 102:
case 101:
case 100:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Mittlerer Bauch")), true);
break;
case 99:
case 98:
case 97:
case 96:
case 95:
case 94:
case 93:
case 92:
case 91:
case 90:
case 89:
case 88:
case 87:
case 86:
case 85:
case 84:
case 83:
case 82:
case 81:
case 80:
case 79:
case 78:
case 77:
case 76:
case 75:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Dicker Bauch")), true);
break;
case 74:
case 73:
case 72:
case 71:
case 70:
case 69:
case 68:
case 67:
case 66:
case 65:
case 64:
case 63:
case 62:
case 61:
case 60:
case 59:
case 58:
case 57:
case 56:
case 55:
case 54:
case 53:
case 52:
case 51:
case 50:
case 49:
case 48:
case 47:
case 46:
case 45:
case 44:
case 43:
case 42:
case 41:
case 40:
case 39:
case 38:
case 37:
case 36:
case 35:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Sehr dicker Bauch")), true);
break;
case 34:
case 33:
case 32:
case 31:
case 30:
case 29:
case 28:
case 27:
case 26:
case 25:
case 24:
case 23:
case 22:
case 21:
case 20:
case 19:
case 18:
case 17:
case 16:
case 15:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Hochschwanger")), true);
break;
case 14:
case 13:
case 12:
case 11:
case 10:
case 9:
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
case 1:
}
}
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']))
.templatereplace("statrow",array("title"=>"Verletzungsgrad","value"=>($u['ill']>0?$u['ill']:$u['ill']).grafbars(100,($u['ill']>0?$u['ill']:$u['ill']))))
,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']))
.templatereplace("statrow",array("title"=>"Gefallen","value"=>$u['deathpower']))
,true);
}
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems']))
.templatereplace("statrow",array("title"=>"Gulden","value"=>$u['gulden']))
.templatereplace("statrow",array("title"=>"Gold","value"=>$u['gold']))
.templatereplace("statrow",array("title"=>"Gold in der Bank","value"=>$u['goldinbank']))
.templatereplace("statrow",array("title"=>"Gottheit","value"=>"`b".$gott[(string)$u['gott']]."`b"))
.templatereplace("statrow",array("title"=>"Arbeit","value"=>"`b".$jobid[(string)$u['jobid']]."`b"))
.templatereplace("statrow",array("title"=>"Blutpunkte","value"=>$u['blut']))
.templatereplace("stathead",array("title"=>"Ausrüstung"))
.templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon']))
.templatereplace("statrow",array("title"=>"Rüstung","value"=>$u['armor']))
.templatereplace("statrow",array("title"=>"Klamotten","value"=>$kla[$u['klamotten']]))
.templatereplace("statrow",array("title"=>"Armband","value"=>$arm[$u['armband']]))
.templatereplace("statrow",array("title"=>"Schuhe","value"=>$shoes[$u['schuhe']]))
.templatereplace("stathead",array("title"=>"Aussehen"))
.templatereplace("statrow",array("title"=>"Haare","value"=>$hair[$u['frisur']]))
.templatereplace("statrow",array("title"=>"Haar Farbe","value"=>$hairco[$u['hairco']]))
.templatereplace("statrow",array("title"=>"Nägel","value"=>$nagel[$u['nagel']]))
.templatereplace("statrow",array("title"=>"Nagelfarbe","value"=>$nagelco[$u['nagelco']]))
.templatereplace("statrow",array("title"=>"Charme","value"=>$u['charm']))
.templatereplace("statrow",array("title"=>"Gestank","value"=>$u['clean']))
,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']);
$charstat.=addcharstat("Punkte",$gu['gildenpunkte']);
}
if ($u['petid']>0) {
$sql = "SELECT * FROM items WHERE id='".$u[petid]."'";
$result = db_query($sql);
$row = db_fetch_assoc($result);
$pettime = strtotime($u['petfeed'])-time();
$charstat .= appoencode(
templatereplace("stathead",array("title"=>"Weitere Infos")) .templatereplace('statrow',array('title'=>'Haustier','value'=>"".$row[name]."".grafbar(24*3600,$pettime))),true);;
}
// Mounterfahrung by teruk
if ($playermount['mountname']!="") {
$mount = unserialize($playermount['mountfeed']);
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"".$playermount['mountname']."","value"=>$mount['fortschritt']."/".($playermount['mountstufe']*$playermount['mountlevel'])."".grafbar(($playermount['mountstufe']*$playermount['mountlevel']),$mount['fortschritt'],40)))
,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));
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
*/
$tomorrow = timetotomorrow();
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s")),true);
}
$charstat.=appoencode(templatereplace("statend"),true);
return $charstat;
}elseif ($session[loggedin] && $session[user][onlyrpchara]!=1){
//End RPG-Chars Addon (c) 2006 by Meralou & Alexiel
$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 (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"=>"Donationpoints","value"=>$u['donation']-$u['donationspent']))
,true);
if($session['user']['ssstatus'] == 1 && $session['user']['ssmonat'] <= 128)
{
switch($session['user']['ssmonat'])
{
case 128:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Noch nichts zu sehen")), true);
break;
case 127:
case 126:
case 125:
case 124:
case 123:
case 122:
case 121:
case 120:
case 119:
case 118:
case 117:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Kleiner Bauch")), true);
break;
case 116:
case 115:
case 114:
case 113:
case 112:
case 111:
case 110:
case 109:
case 108:
case 107:
case 106:
case 105:
case 104:
case 103:
case 102:
case 101:
case 100:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Mittlerer Bauch")), true);
break;
case 99:
case 98:
case 97:
case 96:
case 95:
case 94:
case 93:
case 92:
case 91:
case 90:
case 89:
case 88:
case 87:
case 86:
case 85:
case 84:
case 83:
case 82:
case 81:
case 80:
case 79:
case 78:
case 77:
case 76:
case 75:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Dicker Bauch")), true);
break;
case 74:
case 73:
case 72:
case 71:
case 70:
case 69:
case 68:
case 67:
case 66:
case 65:
case 64:
case 63:
case 62:
case 61:
case 60:
case 59:
case 58:
case 57:
case 56:
case 55:
case 54:
case 53:
case 52:
case 51:
case 50:
case 49:
case 48:
case 47:
case 46:
case 45:
case 44:
case 43:
case 42:
case 41:
case 40:
case 39:
case 38:
case 37:
case 36:
case 35:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Sehr dicker Bauch")), true);
break;
case 34:
case 33:
case 32:
case 31:
case 30:
case 29:
case 28:
case 27:
case 26:
case 25:
case 24:
case 23:
case 22:
case 21:
case 20:
case 19:
case 18:
case 17:
case 16:
case 15:
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Hochschwanger")), true);
break;
case 14:
case 13:
case 12:
case 11:
case 10:
case 9:
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
case 1:
}
}
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']))
.templatereplace("statrow",array("title"=>"Gefallen","value"=>$u['deathpower']))
,true);
}
$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"=>"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"=>"Edelsteine","value"=>$u['gems']))
.templatereplace("statrow",array("title"=>"Gulden","value"=>$u['gulden']))
.templatereplace("statrow",array("title"=>"Gold","value"=>$u['gold']))
.templatereplace("statrow",array("title"=>"Gold in der Bank","value"=>$u['goldinbank']))
.templatereplace("statrow",array("title"=>"Erfahrung","value"=>expbar()))
.templatereplace("statrow",array("title"=>"Verletzungsgrad","value"=>($u['ill']>0?$u['ill']:$u['ill']).grafbars(100,($u['ill']>0?$u['ill']:$u['ill']))))
.templatereplace("statrow",array("title"=>"Orden","value"=>$u[orden]))
.templatereplace("statrow",array("title"=>"Blutpunkte","value"=>$u['blut']))
.templatereplace("statrow",array("title"=>"Gottheit","value"=>"`b".$gott[(string)$u['gott']]."`b"))
.templatereplace("statrow",array("title"=>"Kampfart","value"=>"`b".$kampfkunst[(string)$u['kunst']]."`b"))
.templatereplace("statrow",array("title"=>"Arbeit","value"=>"`b".$jobid[(string)$u['jobid']]."`b"))
.templatereplace("stathead",array("title"=>"Ausrüstung"))
.templatereplace("statrow",array("title"=>"Klamotten","value"=>$kla[$u['klamotten']]))
.templatereplace("statrow",array("title"=>"Armband","value"=>$arm[$u['armband']]))
.templatereplace("statrow",array("title"=>"Schuhe","value"=>$shoes[$u['schuhe']]))
.templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon']))
.templatereplace("statrow",array("title"=>"Rüstung","value"=>$u['armor']))
.templatereplace("stathead",array("title"=>"Aussehen"))
.templatereplace("statrow",array("title"=>"Haare","value"=>$hair[$u['frisur']]))
.templatereplace("statrow",array("title"=>"Haar Farbe","value"=>$hairco[$u['hairco']]))
.templatereplace("statrow",array("title"=>"Nägel","value"=>$nagel[$u['nagel']]))
.templatereplace("statrow",array("title"=>"Nagelfarbe","value"=>$nagelco[$u['nagelco']]))
.templatereplace("statrow",array("title"=>"Charme","value"=>$u['charm']))
.templatereplace("statrow",array("title"=>"Gestank","value"=>$u['clean']))
,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']);
$charstat.=addcharstat("Punkte",$gu['gildenpunkte']);
}
if ($u['petid']>0) {
$sql = "SELECT * FROM items WHERE id='".$u[petid]."'";
$result = db_query($sql);
$row = db_fetch_assoc($result);
$pettime = strtotime($u['petfeed'])-time();
$charstat .= appoencode(
templatereplace("stathead",array("title"=>"Weitere Infos")) .templatereplace('statrow',array('title'=>'Haustier','value'=>"".$row[name]."".grafbar(24*3600,$pettime))),true);;
}
// Mounterfahrung by teruk
if ($playermount['mountname']!="") {
$mount = unserialize($playermount['mountfeed']);
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"".$playermount['mountname']."","value"=>$mount['fortschritt']."/".($playermount['mountstufe']*$playermount['mountlevel'])."".grafbar(($playermount['mountstufe']*$playermount['mountlevel']),$mount['fortschritt'],40)))
,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));
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
*/
$tomorrow = timetotomorrow();
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s")),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{
/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $npc = 0; $trialmods = 0; $mods = 0; $admins = 0; $schöpfer = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("c")."-".getsetting("LOGINTIMEOUT",3600)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;
case 2:
$text2.="`^$row[name]`n";
$npc++;
break;
// case 3:
//case 4:
//case 5:
/*case 3:
$text3.="`^$row[name]`n";
$tmod++;
break; */
case 4:
$text4.="`^$row[name]`n";
$mods++;
break;
case 5:
$text5.="`^$row[name]`n";
$admins++;
break;
case 6:
$text6.="`^$row[name]`n";
$schöpfer++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Spieler Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Spieler Online`i`n");
$ret.=appoencode("`n`@$npc NPC´s Online:`n");
$ret.=appoencode($text2."`0");
if ($npc==0) $ret.=appoencode("`iKeine NPC´s Online`i`n");
/*$ret.=appoencode("`n`@$tmod Trialmoderatoren Online:`n");
$ret.=appoencode($text3."`0");
if ($tmod==0) $ret.=appoencode("`iKeine Trialmoderatoren Online`i`n");*/
$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
$ret.=appoencode($text4."`0");
if ($mods==0) $ret.=appoencode("`iKeine Moderatoren Online`i`n");
$ret.=appoencode("`n`\$$admins Admins Online:`n");
$ret.=appoencode($text5."`0");
if ($admins==0) $ret.=appoencode("`iKeine Admins Online`i`n");
$ret.=appoencode("`n`\$$schöpfer Schöpfer Online:`n");
$ret.=appoencode($text6."`0");
if ($schöpfer==0) $ret.=appoencode("`iKeine Schöpfer Online`i`n");
db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?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<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);
// output("Not found`n");
}
}
//
}
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("abcdefghijklmnopqrstuvwxyz0123456789", 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="";
}
//output("Key is $key for $text`n");
if ($key==""){
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" class='nav'>".appoencode($text,$priv)."<br></a>";
//$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.="<a href=\"".HTMLEntities($link.$extra)."\" $keyrep class='nav'>".appoencode($text,$priv)."<br></a>";
}
$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));