LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
/*######################################
# Erweitertes Wohnvietel mit PHP4 OOP
# Autor: Auric @ www.tharesia.de
# mail: webmaster@blood-reaver.de
# date: 05.05.2006 - version: 0.1 Beta
# based on Anpera's Version
# Here the old credits....
######################################*/
/*
* Author: anpera
* Email: logd@anpera.de
*
* Purpose: Houses for storing gold and gems and for a save place to sleep (logout)
*
* Features: Build house, sell house, buy house, share house with others, private chat-area, PvP
*
* Every warrior can have his own house. He can build it with his own hands or buy one that was sold (or left) before.
* In a house he can store some of his gems and gold and houses are the savest place for log out.
* The player can give keys to other players. So he is able to share his gems and gold for example
* with his wife or he can make up a clan house. A player can only have one house but unlimited keys.
* Each house has its own private chat area.
* Other players can rob a house if they beat the guard and all players that are sleeping in the house.
*
*
* SEE INSTRUCTIONS FOR INSTALLATION AT http://www.anpera.net/forum/viewtopic.php?t=323
* English translation available at DragonPrime
*
* Added furniture 05/25/2004
* (Buy at vendor - vendor.php)
* Added Durandil's hidden path 05/30/2004
*
* Ok, lets do the code...
*/
require_once "common.php";
require_once "classes.php";
addcommentary();
checkday();
page_header("Wohnviertel");
switch($_GET['op']) {
case "newday":
output("`ZG`au`At `}e`Brholt wachst du im Haus auf und bist bereit für neue Abent`}e`Au`ae`Zr.");
$session['user']['location']=0;
$sql = "UPDATE items SET hvalue=0 WHERE hvalue>0 AND owner=".$session['user']['acctid']." AND class='Schlüssel'";
db_query($sql) or die(sql_error($sql));
addnav("`BT`}ä`Agliche Ne`}w`Bs","news.php");
addnav("`BW`}o`Ahnviert`}e`Bl","nhouses.php?op=betreten");
addnav("`BZ`}u`Arück ins Do`}r`Bf","village.php");
break;
case "bio":
if(!$_GET['id']) redirect("nhouses.php");
$haus = new haus($_GET['id']);
$haus->bio();
break;
case "bauen":
switch($_GET['act']) {
case "start": // Begin des Hausbaus
/* Hausnummern-Ordnungs-System START */
$zahl = 0;
$sqlB="SELECT MAX(houseid) as maximum, MIN(houseid) AS minimum, COUNT(houseid) AS anzahl FROM houses";
$resultB = db_query($sqlB) or die(db_error(LINK));
$max = db_fetch_assoc($resultB);
if($max['maximum'] > $max['anzahl']) {
// Wenn die größte ID höher ist als die Anzahl der Häuser...
$testzahl = $max['minimum'] - 1;
if($testzahl > 0) {
$zahl = $testzahl;
unset($testzahl);
} else {
$sqlA="SELECT houseid, housename FROM houses ORDER BY houseid ASC";
$resultA = db_query($sqlA) or die(db_error(LINK));
// Liste Anfertigen
$liste = array();
for($i=1;$i <= $max['anzahl']; $i++) {
$row = db_fetch_assoc($resultA);
$liste[] = $row['houseid'];
}
for($i=1;$i<=$max['maximum'];$i++) {
if(!in_array($i,$liste)) {
$zahl = $i;
break;
}
}
}
} else $zahl = $max['maximum']+1;
/* Hausnummern-Ordnungs-System ENDE */
if($zahl == 0) {
$sql = "INSERT INTO houses (owner,status,gold,gems,housename) VALUES (".$session['user']['acctid'].",0,0,0,'".$session['user']['login']."s Haus')";
} else {
$sql = "INSERT INTO houses (houseid,owner,status,gold,gems,housename) VALUES (".$zahl.",".$session['user']['acctid'].",0,0,0,'".$session['user']['login']."s Haus')";
}
db_query($sql) or die(db_error(LINK));
$haus = new haus($session['user']['acctid'],true);
$session['user']['house']=$haus->id;
output("`ZD`au`A e`}r`Bklärst das Fleckchen Erde zu deinem Besitz und kannst mit dem Bau von Hausnummer `^".$haus->id."`B begi`}n`An`ae`Zn.`n`n");
output("`0<form action='nhouses.php?op=bauen&act=weiterbau' method='POST'>",true);
output("`ZG`ae`Ab`}e`B einen Namen für dein Haus ein: <input name='hausname' maxlength='25'>`n",true);
output("`ZW`ai`Ae`}v`Biel Gold anzahlen? <input type='gold' name='gold'>`n",true);
output("`ZW`ai`Ae`}v`Biele Edelsteine? <input type='gems' name='gems'>`n",true);
output("<input type='submit' class='button' value='Bauen'>",true);
addnav("","nhouses.php?op=bauen&act=weiterbau");
break;
case "weiterbau":
// Weiterführender Hausbau
$haus = new haus($session['user']['acctid'],true);
$gezahltesgold = (int)$_POST['gold'];
$gezahltegems = (int)$_POST['gems'];
// Eventuelle Namensänderung:
if ($_POST['hausname']>"") $haus->name = stripslashes($_POST['hausname']);
if ($session['user']['gold'] < $gezahltesgold || $session['user']['gems'] < $gezahltegems) {
output("`ZD`au`A h`}s`Bt nicht genug dabei!");
addnav("Nochmal","nhouses.php?op=bauen");
} else if ($session['user']['turns'] < 1) {
output("`ZD`au`A b`}i`Bst zu müde, um heute noch an deinem Haus zu arbei`}t`Ae`an`Z!");
} else if ($gezahltesgold < 0 || $gezahltegems < 0) {
output("`ZV`ae`Ar`}s`Buch hier besser nicht zu beschum`}m`Ae`al`Zn.");
} else {
output("`ZD`au`A b`}a`Bust für `^".$gezahltesgold."`B Gold und `#".$gezahltegems."`B Edelsteine an deinem Haus \"`&".$haus->name."`B\"...`n");
// Abrechnung Gold:
$haus->gold += $gezahltesgold;
$session['user']['gold'] -= $gezahltesgold;
output("`ZD`au`A v`}e`Brlierst einen Waldkampf durch die aufwändige Ar`}b`Ae`ai`Zt.");
$session['user']['turns']--;
if ($haus->gold > $haus->goldkosten) {
output("`ZD`au`A h`}a`Bst die kompletten Goldkosten bezahlt und bekommst das überschüssige Gold zu`}r`Aü`ac`Zk.");
$session['user']['gold'] += $haus->gold - $haus->goldkosten;
$haus->gold=$haus->goldkosten;
}
// Abrechnung Gems:
$haus->gems+=$gezahltegems;
$session['user']['gems']-=$gezahltegems;
if ($haus->gems > $haus->gemskosten) {
output("`ZD`au`A h`}a`Bst die kompletten Edelsteinkosten bezahlt und bekommst überschüssige Edelsteine zu`}r`Aü`ac`Zk.");
$session['user']['gems']+=$haus->gems - $haus->gemskosten;
$haus->gems=$haus->gemskosten;
}
$haus->eintragen();
// Übersicht:
$done=round(100-((100 * $gezahltesgold / $haus->goldkosten) + (100 * $gezahltegems / $haus->gemskosten))/2);
if ($haus->gems >= $haus->gemskosten && $haus->gold >= $haus->goldkosten) $done = 100;
output("`n`n".grafbar(100,$done,"100%",20)."`n",true);
output("`ZD`ae`Ai`}n`B Haus ist damit zu `\$".$done."%`B fertig. Du musst noch `^".($haus->goldkosten - $haus->gold)."`B Gold und `#".($haus->gemskosten - $haus->gems)." `BEdelsteine bezahlen, bis du einziehen ka`}n`An`as`Zt.");
if ($haus->gems >= $haus->gemskosten && $haus->gold >= $haus->goldkosten) $haus->hausbauen();
}
addnav("`BZ`}u`Arück zum Wohnviert`}e`Bl","nhouses.php");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
break;
default:
if ($session['user']['housekey'] > 0) {
output("`ZD`au`A h`}a`Bst bereits Zugang zu einem fertigen Haus und brauchst kein zweites. Wenn du ein neues oder ein eigenes Haus bauen willst, musst du erst aus deinem jetzigen Zuhause auszi`}e`Ah`ae`Zn.");
} else if ($session['user']['dragonkills'] < getsetting("abwannbauen",2)) {
output("`ZD`au`A h`}a`Bst noch nicht genug Erfahrung, um ein eigenes Haus bauen zu können. Du kannst aber bei einem Freund einziehen, wenn er dir einen Schlüssel für sein Haus `}g`Ai`ab`Zt.");
} else if ($session['user']['turns'] < 1) {
output("`ZD`au`A b`}i`Bst zu erschöpft, um heute noch irgendetwas zu bauen. Warte bis mo`}r`Ag`ae`Zn.");
} else if ($session['user']['house'] > 0) {
$haus = new haus($session['user']['acctid'],true);
output("`ZD`au`A b`}e`Bsichtigst die Baustelle deines neuen Hauses mit der Hausnummer `3".$haus->id." - ".$haus->name."`B.`n`n");
$goldzuzahlen = $haus->goldkosten - $haus->gold;
$gemszuzahlen = $haus->gemskosten - $haus->gems;
$done=round(100-((100 * $goldzuzahlen / $haus->goldkosten) + (100 * $gemszuzahlen / $haus->gemskosten))/2);
output(grafbar(100,$done,"100%",20),true);
output("`ZE`as`A i`}s`Bt zu `\$".$done."%`B fertig. Du musst noch `^$goldzuzahlen`B Gold und `#$gemszuzahlen `BEdelsteine bezahlen.`nWillst du jetzt weiter ba`}u`Ae`an`Z?`n`n");
output("`0<form action='nhouses.php?op=bauen&act=weiterbau' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biel Gold zahlen? <input type='gold' name='gold'>`n",true);
output("`ZW`ai`Ae`}v`Biele Edelsteine? <input type='gems' name='gems'>`n",true);
output("<input type='submit' class='button' value='Bauen'>",true);
addnav("","nhouses.php?op=bauen&act=weiterbau");
} else {
output("`ZD`au`A s`}i`Behst ein schönes Fleckchen für ein Haus und überlegst dir, ob du nicht selbst eines bauen solltest, anstatt ein vorhandenes zu kaufen oder noch länger in Kneipe und Feldern zu übernac`}h`At`ae`Zn.");
output(" `ZE`ai`An`} H`Baus zu bauen würde dich `^".getsetting("baukostengold",50000)." `BGold und `#".getsetting("baukostengems",50000)." `BEdelsteine kosten. Du mußt das nicht auf einmal bezahlen, sondern könntest immer wieder mal für einen kleineren Betrag ein Stück ");
output("weiter bauen. Wie schnell du zu deinem Haus kommst, hängt also davon ab, wie oft und wieviel du beza`}h`Al`as`Zt.`n");
output("`ZD`au`A k`}a`Bnnst in deinem zukünftigen Haus alleine wohnen, oder es mit anderen teilen. Es bietet einen sicheren Platz zum Übernachten und einen Lagerplatz für einen Teil deiner Reicht`}ü`Am`ae`Zr.");
output(" `ZE`ai`An`} g`Bestartetes Bauvorhaben kann nicht abgebrochen werden.`n`nWillst du mit dem Hausbau begin`}n`Ae`an`Z?");
addnav("`BH`}a`Ausbau beginn`}e`Bn","nhouses.php?op=bauen&act=start");
}
addnav("`BZ`}u`Arück zum Wohnviert`}e`Bl","nhouses.php");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
break;
} // Ende Bauen-Switch
break;
case "einbrechen":
if (!$_GET[id]) {
if ($_POST['search']>"" || $_GET['search']>""){
if ($_GET['search']>"") $_POST['search']=$_GET['search'];
if (strcspn($_POST['search'],"0123456789")<=1){
$search="houseid=".intval($_POST[search])." AND ";
}else{
$search="%";
for ($x=0;$x<strlen($_POST['search']);$x++){
$search .= substr($_POST['search'],$x,1)."%";
}
$search="housename LIKE '".$search."' AND ";
}
}else{
$search="";
}
$ppp=25;
if (!$_GET[limit]) $page=0;
else {
$page=(int)$_GET[limit];
addnav("`BV`}o`Arherige Stras`}s`Be","nhouses.php?op=einbechen&limit=".($page-1)."&search=$_POST[search]");
}
$limit="".($page*$ppp).",".($ppp+1);
output("`c`b`BE`}i`Anbru`}c`Bh`b`c`0`n");
output("`ZD`au`A s`}i`Behst dich um und suchst dir ein bewohntes Haus für einen Einbruc`}h `Aa`au`Zs. ");
output("`ZL`ae`Ai`}d`Ber kannst du nicht erkennen, wieviele Bewohner sich gerade darin aufhalten und wie stark diese sind. So ein Einbruch ist also sehr riskant.`nFür welches Haus entscheidest du d`}i`Ac`ah`Z?`n`n");
output("<form action='nhouses.php?op=einbrechen' method='POST'>Nach Hausname oder Nummer <input name='search' value='$_POST[search]'> <input type='submit' class='button' value='Suchen'></form>",true);
addnav("","nhouses.php?op=einbrechen");
if ($session['user']['pvpflag']=="5013-10-06 00:42:00") output("`n`&(Du hast PvP-Immunität gekauft. Diese verfällt, wenn du jetzt angreifst!)`0`n`n");
output("<table cellspacing=0 cellpadding=2 align='center'><tr><td>`bHausNr.`b</td><td>`bName`b</td><td>`bEigentümer`b</td><td>Stufe</td><td>Zimmer</td></tr>",true);
$sql = "SELECT houseid, level FROM houses WHERE $search status=1 AND owner<>".$session['user']['acctid']." ORDER BY houseid ASC LIMIT $limit";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>$ppp) addnav("`BN`}ä`Achste Stras`}s`Be","nhouses.php?op=einbruch&limit=".($page+1)."&search=$_POST[search]");
if (db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`i`BE`}s`A gibt momentan keine bewohnten Häus`}e`Br`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$haus = new haus($row['houseid']);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='".$bgcolor."'><td align='right'>".$haus->id."</td><td><a href='nhouses.php?op=einbrechen&id=".$haus->id."'>".$haus->name."</a></td>",true);
output("<td>".$haus->besitzer."</td><td>".$haus->level->name."</td><td>".count($haus->ausbauten)."</td></tr>",true);
addnav("","nhouses.php?op=einbrechen&id=".$haus->id);
}
}
output("</table>",true);
addnav("`BU`}m`Akehr`}e`Bn","nhouses.php");
} else {
if ($session['user']['turns']<1 || $session['user']['playerfights']<=0) {
output("`ZD`au`A b`}i`Bst wirklich schon zu müde, um ein Haus zu überfa`}l`Al`ae`Zn.");
addnav("`BZ`}u`Arü`}c`Bk","nhouses.php");
} else {
output("`ZD`au`A n`}ä`Bherst dich vorsichtig Haus Nu`}m`Am`ae`Zr ".$_GET['id']);
$session['housekey']=$_GET['id'];
// Abfrage, ob Schlüssel vorhanden!!
$sql = "SELECT id FROM items WHERE owner=".$session['user']['acctid']." AND class='Schlüssel' AND value1=".(int)$_GET['id']." ORDER BY id DESC";
$result = db_query($sql) or die(db_error(LINK));
db_free_result($result);
if (db_num_rows($result)>0) {
db_free_result($result);
output(" `ZA`an`A d`}e`Br Haustür angekommen suchst du etwas, um die Tür möglichst unauffällig zu öffnen. Am besten dürfte dafür der Hausschlüssel geeignet sein, ");
output(" den du einstecken hast.`nWolltest du wirklich gerade in ein Haus einbrechen, für das du einen Schlüssel h`}a`As`at`Z?");
addnav("`BH`}a`Aus betret`}e`Bn","nhouses.php?op=drin&id=$_GET[id]");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
} else {
db_free_result($result);
// Wache besiegen
output("`ZD`ae`Ai`}n`Be gebückte Haltung und der schleichende Gang machen eine Stadtwache aufmer`}k`As`aa`Zm.`n");
$data = haus::strongest($_GET['id']);
if ($data['athome']>0){
$badguy = array("creaturename"=>"Stadtwache","creaturelevel"=>$session['user']['level'],"creatureweapon"=>"Holzknüppel","creatureattack"=>$session['user']['attack'],"creaturedefense"=>$session['user']['defence'],"creaturehealth"=>abs($session['user']['maxhitpoints'] - $date['hp'])+1, "diddamage"=>0);
}else{
$badguy = array("creaturename"=>"Stadtwache","creaturelevel"=>$session['user']['level'],"creatureweapon"=>"starker Holzknüppel","creatureattack"=>$session['user']['attack'],"creaturedefense"=>$session['user']['defence'],"creaturehealth"=>abs(max($session['user']['maxhitpoints'], $session['user']['hitpoints'])), "diddamage"=>0);
$session['user']['playerfights']--;
$session['user']['reputation']-=7;
}
$session['user']['badguy']=createstring($badguy);
$fight=true;
}
}
}
break;
case "einsteigen":
$data = haus::strongest();
addnav("`BF`}l`Aüch`}t`Be","village.php");
if ($data['athome']>0){
output("`ZD`ai`Ar`} k`Bommen $athome misstrauische Bewohner schwer bewaffnet entgegen. Der wahrscheinlich Stärkste von ihnen wird sich jeden Augenblick auf dich stürzen, ");
output(" wenn du die Situation nicht sofort entschä`}r`Af`as`Zt.");
addnav("`BK`}ä`Amp`}f`Be","pvp.php?act=attack&bg=2&name=".rawurlencode($data['name']));
} else {
output(" `ZD`au`A h`}a`Bst Glück, denn es scheint niemand daheim zu sein. Das wird sicher ein Kinders`}p`Ai`ae`Zl.");
addnav("`BE`}i`Ansteig`}e`Bn","nhouses.php?op=klauen&id=$session[housekey]");
}
break;
case "klauen":
if(!isset($session['housekey']) && isset($_GET['id'])) $session['housekey']=$_GET['id'];
$haus = new haus($session['housekey']);
$haus->klauen();
break;
case "run":
output("`ZD`ai`Ae`} W`Bache lässt dich nicht entkom`}m`Ae`an`Z!`n");
$session['user']['reputation']--;
$fight=true;
break;
case "fight":
$fight=true;
break;
case "kaufen":
if (!$_GET['id']) {
$ppp=10; // Player Per Page to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET[limit];
addnav("`BV`}o`Arherige Sei`}t`Be","nhouses.php?op=kaufen&limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);
$sql = "SELECT houseid FROM houses WHERE status=2 OR status=3 OR status=4 ORDER BY houseid ASC LIMIT $limit";
output("`c`b`BU`}n`Abewohnte Häus`}e`Br`b`c`0`n");
output("<table cellspacing=0 cellpadding=2 align='center'><tr><td>`bHausNr.`b</td><td>`bName`b</td><td>`bGold`b</td><td>`bEdelsteine`b</td><td>Stufe</td><td>`bBemerkung`b</td></tr>",true);
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>$ppp) addnav("`BN`}ä`Achste Sei`}t`Be","nhouses.php?op=kaufen&limit=".($page+1)."");
if (db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`i`ZE`as`A s`}t`Behen momentan keine Häuser zum Ver`}k`Aa`au`Zf`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$haus = new haus($row['houseid']);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td align='right'>".$haus->id."</td><td><a href='nhouses.php?op=kaufen&id=".$haus->id."'>".$haus->name."</a></td>",true);
/*
if(($haus->status != 3 && $haus->status != 4) && $haus->besitzerid == 0) $kosten = $haus->wert(false);
elseif($haus->status == 4) {
$kosten = $haus->wert();
$kosten['gold'] = $haus->gold + round($kosten['gold']*0.9);
$kosten['gems'] = $haus->gems + round($kosten['gems']*0.9);
}
else $kosten=array("gold"=>$haus->gold, "gems"=>$haus->gems);
if($kosten['gold'] == 0 || $kosten['gems'] == 0) $kosten = $haus->wert(false);
*/
output("<td align='right'>".$haus->kosten['gold']."</td><td align='right'>".$haus->kosten['gems']."</td>",true);
output("<td>".$haus->level->name."</td><td>",true);
if($haus->status == 3 || $haus->status == 4) output($haus->baustatus);
elseif($haus->besitzerid == 0) output("`BM`}a`Aklerverka`}u`Bf`0");
else output("`BP`}r`Aivatverka`}u`Bf`0");
output("</td></tr>",true);
addnav("","nhouses.php?op=kaufen&id=".$haus->id);
}
}
output("</table>",true);
} else {
$haus = new haus($_GET['id']);
$haus->kaufen();
}
addnav("`BZ`}u`Arück zum Wohnviert`}e`Bl","nhouses.php");
break;
case "verkaufen":
$haus = new haus($session['user']['acctid'],true);
switch($_GET['act']) {
case "verkauf":
$haus->verkauf();
break;
case "makler":
$haus->maklerverkauf();
break;
default:
$kosten = $haus->wert(false);
output("`ZG`ai`Ab`} e`Binen Preis für dein Haus ein, oder lass einen Makler den Verkauf überne`}h`Am`ae`Zn.`n");
output("`ZD`ae`Ar`} s`Bchmierige Makler würde dir sofort `^".round($kosten['basisgold']/3)."`B Gold und `#".round($kosten['basisgems']/3)."`B Edelsteine ");
output("plus `^".round($haus->kosten['levelgold']/3)." `BGold und `#".round($kosten['levelgems']/3)." `BEdelsteine für deine Hausausbauten, ");
output("`nalso insgesammt: `^".round($kosten['gold']/3)."`B Gold und `#".round($kosten['gems']/3)."`B Edelsteine g`}e`Ab`ae`Zn.`n");
output("`ZW`ae`An`}n`B du selbst verkaufst, kannst du vielleicht einen höheren Preis erzielen, musst aber auf dein Geld warten, bis jemand kauft.`nAlles, was sich noch im Haus befindet, wird ");
output("gleichmässig unter allen Bewohnern aufget`}e`Ai`al`Zt.`n`n");
output("`0<form action='nhouses.php?op=verkaufen&act=verkauf' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biel Gold willst du verlangen? <input type='gold' name='gold'>`n",true);
output("`ZW`ai`Ae`}v`Biele Edelsteine soll das Haus kosten? <input type='gems' name='gems'>`n",true);
output("<input type='submit' class='button' value='Anbieten'>",true);
addnav("","nhouses.php?op=verkaufen&act=verkauf");
addnav("BA`}n`A den Makl`}e`Br","nhouses.php?op=verkaufen&act=makler");
addnav("`BZ`}u`Arück zum Wohnviert`}e`Bl","nhouses.php");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
break;
}
break;
//###################################################################################//
//################################ "IM-HAUS" BEREICH ################################//
//###################################################################################//
case "drin":
if ($_GET['id']) $session['housekey']=(int)$_GET['id'];
if (!$session['housekey']) redirect("nhouses.php");
$haus = new haus($session['housekey']);
switch($_GET['go']) {
case "office": $haus->zimmer_laden('office'); break;
case "schlafzimmer": $haus->zimmer_laden('schlafzimmer'); break;
case "schatz": $haus->zimmer_laden('schatz'); break;
default:
// Zimmermodule abfragen:
$sql = "SELECT * FROM `zimmer` WHERE aktiv=1 AND level < ".$haus->level->level." ORDER BY zimmerid ASC";
//$sql = "SELECT * FROM `zimmer` WHERE aktiv=1 ORDER BY zimmerid ASC";
$result = db_query($sql) or die(db_error(LINK));
$counter = false;
for($i=0;$i<db_num_rows($result);$i++) {
$row = db_fetch_assoc($result);
if($_GET['go'] == $row['name']) {
$counter = true;
// Zimmer erstellen:
$haus->zimmer_laden((string) $row['name']);
}
} // Ende FOR
if($counter == false) $haus->flur();
break;
} // Ende Switch
$haus->eintragen();
break;
//#################################################################################//
//################################ Ausgangsbereich ################################//
//#################################################################################//
case "betreten":
output("`ZD`au`A h`}a`Bst Zugang zu folgenden Häu`}s`Ae`ar`Zn:`B`n`n");
$sql = "SELECT * FROM items WHERE owner=".$session['user']['acctid']." AND class='Schlüssel' ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$bgcolor=($i%2==1?"trlight":"trdark");
output("<table class='$bgcolor' cellpadding=2 cellspacing=1 border=1 align='center'><tr class='trhead'><tr><td>`bHausNr.`b</td><td>`bName`b</td><td>`bStufe`b</tr>",true);
$ppp=25; // Player Per Page +1 to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET['limit'];
addnav("`BV`}o`Arherige Stra`}ß`Be","nhouses.php?op=betreten&limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);
if ($session['user']['house']>0 && $session['user']['housekey']>0){
$haus = new haus($session['user']['acctid'],true);
output("<tr><td align='center'>".$haus->id."</td><td><a href='nhouses.php?op=drin&id=".$haus->id."'>".$haus->name."</a> (dein eigenes)</td><td>".$haus->level->name."</td></tr>",true);
addnav("","nhouses.php?op=drin&id=".$haus->id);
}else if ($session['user']['house']>0 && $session['user']['housekey']==0){
output("<tr><td colspan=2 align='center'>`i`ZD`ae`Ai`}n`B Haus ist noch im Bau oder steht zum Ver`}k`Aa`au`Zf`i`0</td></tr>",true);
}
if (db_num_rows($result)>$ppp) addnav("`BN`}ä`Achste Sei`}t`Be","nhouses.php?op=betreten&limit=".($page+1)."");
if (db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`i`ZD`au`A h`}a`Bst keinen Schlü`}s`As`ae`Zl`i`0</td></tr>",true);
}else{
$rebuy=0;
for ($i=0;$i<db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
if ($item['value1']==$session['user']['house'] && $session['user']['housekey']==0) $rebuy=1;
$bgcolor=($i%2==1?"trlight":"trdark");
$haus = new haus($item['value1']);
if ($amt!=$item['value1'] && $haus->besitzerid!=$session['user']['acctid']){
output("<tr class='$bgcolor'><td align='center'>".$haus->id."</td><td><a href='nhouses.php?op=drin&id=".$haus->id."'>".$haus->name."</a></td><td>".$haus->level->name."</td></tr>",true);
addnav("","nhouses.php?op=drin&id=".$haus->id);
}
$amt=$item['value1'];
}
}
output("</table>",true);
if ($rebuy==1) addnav("`ZV`ae`Ar`}k`Bauf rückgä`}n`Ag`ai`Zg","nhouses.php?op=kaufen&id=".$session['user']['house']);
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
addnav("`BZ`}u`Arück zum Wohnviert`}e`Bl","nhouses.php");
break;
default:
output("`b`c`BD`}a`As Wohnviert`}e`Bl`c`b`n");
$session['housekey']=0;
// Prüfung auf vorhandene Schlüssel:
$sql = "SELECT * FROM items WHERE owner=".$session['user']['acctid']." AND class='Schlüssel' ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>0 || $session['user']['housekey']>0) addnav("`BH`}a`Aus betret`}e`Bn","nhouses.php?op=betreten");
output("`c<img src='images/siedlung.jpg'>`c", true);
output("`n`c`TDu sch`alende`Arst Ri`}chtun`Bg Siedlung. In diesem schön angelegten Teil des Dorfes`n siehst du einige Baustellen zwischen bewohnten und unbewohnten Häusern. Hier`n wo`}hnen a`Also di`ae Held`Ten...`n`n`c ");
/* Suchbereich START */
if ($_POST['search']>""){
if ($_GET['search']>"" || $_GET['search']>"") $_POST['search']=$_GET['search'];
if (strcspn($_POST['search'],"0123456789")<=1){
$search="houseid=".intval($_POST[search])." AND ";
}else{
$search="%";
for ($x=0;$x<strlen($_POST['search']);$x++){
$search .= substr($_POST['search'],$x,1)."%";
}
$search="housename LIKE '".$search."' AND ";
}
}else{
$search="";
} /* Suchbereich ENDE */
$ppp=30; // Player Per Page +1 to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET['limit'];
addnav("`BV`}o`Arherige Stra`}ß`Be","nhouses.php?limit=".($page-1)."&search=$_POST[search]");
}
$limit="".($page*$ppp).",".($ppp+1);
$sql = "SELECT houseid FROM houses WHERE $search status<100 ORDER BY houseid ASC LIMIT $limit";
$result=db_query($sql) OR die(db_error(LINK));
output("<form action='nhouses.php' method='POST'>`B`nNach Hausname oder Nummer <input name='search' value='$_POST[search]'> <input type='submit' class='button' value='Suchen'></form>",true);
addnav("","nhouses.php");
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'><tr class='trhead'><td>`bHausNr.`b</td><td>`bName`b</td><td>`bEigentümer`b</td><td>`bStufe`b</td><td>Zimmer</td><td>`bStatus`b</td>",true);
if (db_num_rows($result)>$ppp) addnav("`BN`}ä`Ac`ahste Str`Aa`}ß`Be","nhouses.php?limit=".($page+1)."&search=$_POST[search]");
if (db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`i`ZE`as`A g`}i`Bbt noch keine Hä`}u`As`ae`Zr`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$haus = new haus($row['houseid']);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td align='right'>".$haus->id."</td><td><a href='nhouses.php?op=bio&id=".$haus->id."'>".$haus->name."</a></td><td>",true);
output(($haus->besitzer?$haus->besitzer:"Niemand")."</td><td>".$haus->level->name."</td><td style='text-align:center;'>".count($haus->ausbauten)."</td><td>".$haus->baustatus."</tr>",true);
addnav("","nhouses.php?op=bio&id=".$haus->id);
}
}
output("</table>",true);
if ($session['user']['housekey']) output("`ZS`at`Ao`}l`Bz schwingst du den Schlüssel zu deinem Haus im Gehen hin un`}d `Ah`ae`Zr.");
if ($session['user']['superuser']>2) addnav("`BA`}d`Amin Grot`}t`Be","superuser.php");
if ($session['user']['house'] && $session['user']['housekey']) {
addnav("`BH`}a`Aus verkauf`}e`Bn","nhouses.php?op=verkaufen");
} else {
if (!$session[user][house]) addnav("`BH`}a`Aus kauf`}e`Bn","nhouses.php?op=kaufen");
addnav("`BH`}a`Aus bau`}e`Bn","nhouses.php?op=bauen");
addnav ("`BK`}i`Andergart`}e`Bn","kindergarten.php");
addnav ("Waisenhaus","");
}
if (getsetting("pvp",1)==1) addnav("`BE`}i`Anbrech`}e`Bn","nhouses.php?op=einbrechen");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
break;
} // Ende Switch
if ($fight){
if (count($session['bufflist'])>0 && is_array($session['bufflist']) || $_GET['skill']!=""){
$_GET['skill']="";
if ($_GET['skill']=="") $session['user']['buffbackup']=serialize($session['bufflist']);
$session['bufflist']=array();
output("`ZD`ai`Ae`} u`Bngewohnte Umgebung verhindert den Einsatz deiner besonderen Fähigke`}i`At`ae`Zn!`0");
}
include "battle.php";
if ($victory){
output("`n`ZD`au`A h`}a`Bst die Stadtwache besiegt und der Weg zum Haus ist frei!`nDu bekommst ein paar Erfahrungspun`}k`at`Ze.");
addnav("`BW`}e`Aiter zum Ha`}u`Bs","nhouses.php?op=einsteigen&id=$session[housekey]");
addnav("`BZ`}u`Arück zum Do`}r`Bf","village.php");
$session['user']['experience']+=$session['user']['level']*10;
$session['user']['turns']--;
$badguy=array();
}elseif ($defeat){
output("`n`ZD`ai`Ae`} S`Btadtwache hat dich besiegt. Du bist tot!`nDu verlierst 10% deiner Erfahrungspunkte, aber kein Gold.`nDu kannst morgen wieder käm`}p`Af`ae`Zn.");
$session['user']['hitpoints']=0;
$session['user']['alive']=false;
$session['user']['experience']=round($session['user']['experience']*0.9);
$session['user']['badguy']="";
addnews("`%".$session['user']['name']."`A wurde von der Stadtwache bei einem Einbruch besie`}g`Bt.");
addnav("`BT`}ä`Agliche Ne`}w`Bs","news.php");
}else{
fightnav(false,true);
}
}
page_footer();
?>