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 //31052010
/*************************************************************************************
Urspüngliche Version:
* vom: 26.05.2004
* Autor: anpera
* Email: logd@anpera.de
houses-DB Umbau mit housemodule
Aufbau der houses-DB:
houseid -> Hausnummer (eindeutig)
owner -> Besitzer (eindeutig)
housename -> Name des Hauses
description -> Beschreibung des Hauses
gold -> eingelagerte Münzen
gems -> eingelagerte Edelsteine
status -> Hausstatus
*Updates von Schizo
Update Frühjahr 09: einzelne Räume für jedes Haus
Aufbau der housemodule-DB:
id (key) (int) -> ID des Moduls (eindeutig)
housenumber (int) -> Hausnummer des Besitzers (ordnet das Modul dem Besitzer zu)
modulname (char) -> Name des Moduls
description (text) -> Beschreibung des Moduls
type (int) -> Modultyp
floor (int) -> Stockwerk des Moduls
source (text) -> Status des des Moduls
Datum der letzten Änderung
im Wohnzimmer die Infos zu den Einbrüchen
im Privatraum die Zugangsberechtigung
Update März 10: Möbel können in einzelne Räume gestellt werden
Update Mai 10: Rollenspieler könne mittels rppoints Häuser kaufen, bauen usw.
***********************************************************************************/
require_once("common.php");
addcommentary();
checkday();
$goldcost=30000;
$gemcost=50;
$rpcost=50000;
$regold=1000;$regem=1;$rerp=3000; //Kosten fürs Umbenennen des Hauses
/* Moduleinstellungen für das Bauamt */
// Bei Bedarf nach dem gleichen Prinzip neue Module hier einfügen.
// Das Privatzimmer ist das einzige, zu dem Schlüsselbesitzer eine Zugangserlaubnis vom Eigentümer benötigen
$modulgoldcost=15000;
$modulgemcost=5;
$modulrpcost=50000;
$modul[1]= array('modulname'=>'Wohnzimmer', 'description'=>'Dein Wohnzimmer');
$modul[2]= array('modulname'=>'Schlafzimmer','description'=>'Dein Schlafzimmer');
$modul[3]= array('modulname'=>'Küche', 'description'=>'Deine Küche');
$modul[4]= array('modulname'=>'Bad', 'description'=>'Dein Bad');
$modul[5]= array('modulname'=>'kleines Nebenzimmer', 'description'=>'Dieses Nebenzimmer hast Du zur freien Verfügung.');
$modul[6]= array('modulname'=>'mittleres Nebenzimmer','description'=>'Dieses Nebenzimmer hast Du zur freien Verfügung.');
$modul[7]= array('modulname'=>'großes Nebenzimmer', 'description'=>'Dieses Nebenzimmer hast Du zur freien Verfügung.');
$modul[8]= array('modulname'=>'Privatzimmer', 'description'=>'Irgendein Zimmer, das bestimmt seinen Zweck hat.');
$modul[9]= array('modulname'=>'Keller', 'description'=>'Ein dunkler Keller.');
$modul[10]=array('modulname'=>'Garten', 'description'=>'Ein schöner Garten.');
$modul[11]=array('modulname'=>'Bibliothek', 'description'=>'Deine Büchersammlung.');
$modul[12]=array('modulname'=>'Dachboden', 'description'=>'Ab ab unters Dach.');
$modul[13]=array('modulname'=>'Arbeitszimmer', 'description'=>'Dein Zimmer für die Arbeit.');
$rpfree=$session['user']['rppoints']-$session['user']['rppointsspent'];
if($session[user][slainby]!=""){
page_header("Du wurdest besiegt!");
output("`\$Du wurdest in ".$session['user']['killedin']."`\$ von `%".$session['user']['slainby']."`\$ besiegt und um alles Gold beraubt, das Du bei Dir hattest. Das kostet Dich 5% Deiner Erfahrung. Meinst Du nicht es ist Zeit für Rache?");
addnav("Weiter",$REQUEST_URI);
$session['user']['slainby']="";
$session['user']['donation']+=1;
page_footer();
}
page_header("Das Wohnviertel");
if($_GET['op']=="newday"){
output("`2Gut erholt wachst Du im Haus auf und bist bereit für neue Abenteuer.");
$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("Tägliche News","news.php");
addnav("Wohnviertel","houseses.php?op=enter");
addnav("Zurück ins Dorf","village.php");
}elseif($_GET['op']=="bio"){
if(!$_GET['id']) redirect("houseses.php");
$result=db_query("SELECT * FROM houses WHERE houseid={$_GET['id']}");
$row=db_fetch_assoc($result);
$result2=db_query("SELECT `id` FROM housemodule WHERE housenumber=".$_GET['id']." AND type>4");
output("`c`b`@Infos über Haus Nummer {$row['houseid']}`b`c`n`n`2Du näherst Dich Haus Nummer {$row['houseid']}, um es aus der Nähe zu betrachten. ");
if($row['description']){
output("Über dem Eingang steht geschrieben:`n`n`c$row[housename]`2`n`n`& $row[description]`c`n`n");
}else{
output("Das Haus trägt den Namen \"`&$row[housename]`2\".`n");
}
$result=db_query("SELECT * FROM items WHERE class='Möbel' AND value1={$_GET['id']} ORDER BY `id` ASC");
output("`2Du riskierst einen Blick durch eines der Fenster");
if(db_num_rows($result)>0){
output(" und erkennst ");
for($i=0;$i<db_num_rows($result);$i++){
$row2=db_fetch_assoc($result);
output("`@{$row2['name']}");
if($i+1<db_num_rows($result))output(", ");
}
output(".`n");
}elseif((int)db_num_rows($result2)>0){
output("`2Außerdem scheint am Haus angebaut worden sein.");
}else{
output(", aber das Haus hat sonst nichts weiter zu bieten.");
}
if($_GET['id']==$session['user']['housekey'])addnav("Haus betreten","houseses.php?op=drin&id={$_GET['id']}");
addnav("Zurück","houseses.php");
}elseif($_GET['op']=="build"){
page_header("Hausbau");
if($_GET['act']=="start"){
if($session['user']['superuser']<>1)$sql="INSERT INTO houses (owner,status,gold,gems,housename) VALUES (".$session['user']['acctid'].",0,0,0,'".addslashes($session['user']['login'])."s Haus')";
else $sql="INSERT INTO houses (owner,status,gold,gems,housename,description) VALUES (".$session['user']['acctid'].",0,0,0,'".addslashes($session['user']['login'])."s Haus','RP')";
db_query($sql);
if(db_affected_rows(LINK)<=0) redirect("houseses.php");
$sql="SELECT * FROM houses WHERE status=0 AND owner=".$session['user']['acctid']." ORDER BY houseid DESC";
$result=db_query($sql);
$row=db_fetch_assoc($result);
$session['user']['house']=$row['houseid'];
output("`@Du erklärst das Fleckchen Erde zu Deinem Besitz und kannst mit dem Bau von Hausnummer `^{$row['houseid']}`@ beginnen.`n`n");
output("`0<form action=\"houseses.php?op=build&act=build2\" method='POST'>",true);
//output("`nGebe einen Namen für Dein Haus ein: <input name='housename' maxlength='125'>`n",true);
output("`nGebe einen Namen für Dein Haus ein: <input name='housename' maxlength='125' onkeyup='document.getElementById(\"vorschau\").innerHTML = appoencode(this.value);'>`n",true);
if($session['user']['superuser']<>1){
output("`nWieviel Gold anzahlen? <input type='gold' name='gold'>`n",true);
output("`nWieviele Edelsteine? <input type='gems' name='gems'>`n",true);
}else output("`nWieviele Rollenspielpunkte? <input type='rp' name='rp'>`n",true);
output("<input type='submit' class='button' value='Bauen'><span id='vorschau'></span>",true);
addnav("","houseses.php?op=build&act=build2");
}elseif($_GET['act']=="build2"){
$result=db_query("SELECT * FROM houses WHERE status=0 AND owner=".$session['user']['acctid']." ORDER BY houseid DESC");
$row=db_fetch_assoc($result);
$paidgold=(int)$_POST['gold'];
$paidrp=(int)$_POST['rp'];
if($_POST['housename']>""){
$housename=stripslashes($_POST['housename']);
}else{
$housename=stripslashes($row['housename']);
}
$paidgems=(int)$_POST['gems'];
if((isset($_POST['gold']) && ($session['user']['gold']<$paidgold || $session['user']['gems']<$paidgems)) || (isset($_POST['rp']) && $rpfree<$paidrp)){
output("`@Du hast nicht genug dabei!");
addnav("Nochmal","houseses.php?op=build");
}elseif($session['user']['turns']<1 && isset($_POST['gold'])){
output("`@Du bist zu müde, um heute noch an Deinem Haus zu arbeiten!");
}elseif($paidgold<0 || $paidgems<0 || $paidrp<0){
output("`@Versuche besser nicht, die Bauverwaltung zu veralbern.");
}else{
if($session['user']['superuser']<>1){
output("`@Du baust für `^$paidgold`@ Gold und `#$paidgems`@ Edelsteine an Deinem Haus \"`&$housename`@\"...`n`nDu verlierst einen Waldkampf.");
$row['gold']+=$paidgold;
$row['gems']+=$paidgems;
$session['user']['gold']-=$paidgold;
$session['user']['gems']-=$paidgems;
$session['user']['turns']--;
if($row['gold']>$goldcost){
output("`nDu hast die kompletten Goldkosten bezahlt und bekommst das überschüssige Gold zurück.");
$session['user']['gold']+=$row['gold']-$goldcost;
$row['gold']=$goldcost;
}
if($row['gems']>$gemcost){
output("`nDu hast die kompletten Edelsteinkosten bezahlt und bekommst überschüssige Edelsteine zurück.");
$session['user']['gems']+=$row['gems']-$gemcost;
$row['gems']=$gemcost;
}
$goldtopay=$goldcost-$row['gold'];
$gemstopay=$gemcost-$row['gems'];
$done=round(100-((100*$goldtopay/$goldcost)+(100*$gemstopay/$gemcost))/2);
output("`nDein Haus ist damit zu `\$$done%`@ fertig. Du musst noch `^$goldtopay`@ Gold und `#$gemstopay `@Edelsteine bezahlen, bis Du einziehen kannst.");
}else{
output("`@Du baust für `^$paidrp`@ Rollenspielpunkte an Deinem Haus \"`&$housename`@\"...`n");
$row['gold']+=$paidrp;
$row['description']='RP';
$session['user']['rppointsspent']+=$paidrp;
if($row['gold']>$rpcost){
output("`nDu hast die kompletten Rollenspielkosten bezahlt und bekommst die überschüssigen Punkte zurück.");
$session['user']['rppointsspent']+=$row['gold']-$rpcost;
$row['gold']=$rpcost;
}
$rptopay=$rpcost-$row['gold'];
$done=round(100-(100*$rptopay/$rpcost));
output("`nDein Haus ist damit zu `\$$done%`@ fertig. Du musst noch `^$rptopay`@ Rollenspielpunkte in Dein Haus investieren, bevor Du einziehen kannst.");
}
if(($row['gems']>=$gemcost && $row['gold']>=$goldcost) || $row['gold']>=$rpcost){
output("`n`n`bGlückwunsch!`b Dein Haus ist fertig. Du bekommst `b10`b Schlüssel überreicht, von denen Du 9 an andere weitergeben kannst, und besitzt nun Deine eigene kleine Burg.");
$row['gems']=0;
$row['gold']=0;
$row['description']='';
$session['user']['housekey']=$row['houseid'];
$row['status']=1;
addnews("`2{$session['user']['name']}`3 hat das Haus `2{$row['housename']}`3 fertiggestellt.");
for($i=1;$i<10;$i++){
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description) VALUES ('Hausschlüssel',".$session['user']['acctid'].",'Schlüssel',{$row['houseid']},$i,0,0,'Schlüssel für Haus Nummer {$row['houseid']}')";
db_query($sql);
if(db_affected_rows(LINK)<=0) output("`\$Fehler`^: Dein Inventar konnte nicht aktualisiert werden! Bitte benachrichtige den Admin. ");
}
db_query("INSERT INTO housemodule (housenumber,modulname,description,type,floor,source) VALUES ({$row['houseid']},'{$modul[1]['modulname']}','{$modul[1]['description']}',1,0,'".(serialize(array('date'=>time(),'message'=>addslashes($session['user']['name'])." hat ein Haus gebaut: ".$modul[1]['modulname']." eingerichtet")))."')");
db_query("INSERT INTO housemodule (housenumber,modulname,description,type,floor,source) VALUES ({$row['houseid']},'{$modul[2]['modulname']}','{$modul[2]['description']}',2,0,'".(serialize(array('date'=>time(),'message'=>addslashes($session['user']['name'])." hat ein Haus gebaut: ".$modul[2]['modulname']." eingerichtet")))."')");
db_query("INSERT INTO housemodule (housenumber,modulname,description,type,floor,source) VALUES ({$row['houseid']},'{$modul[3]['modulname']}','{$modul[3]['description']}',3,0,'".(serialize(array('date'=>time(),'message'=>addslashes($session['user']['name'])." hat ein Haus gebaut: ".$modul[3]['modulname']." eingerichtet")))."')");
db_query("INSERT INTO housemodule (housenumber,modulname,description,type,floor,source) VALUES ({$row['houseid']},'{$modul[4]['modulname']}','{$modul[4]['description']}',4,0,'".(serialize(array('date'=>time(),'message'=>addslashes($session['user']['name'])." hat ein Haus gebaut: ".$modul[4]['modulname']." eingerichtet")))."')");
}
$sql="UPDATE houses SET gold={$row['gold']},gems={$row['gems']},housename='".addslashes($housename)."',status=".(int)$row['status'].", description='{$row['description']}' WHERE houseid={$row['houseid']}";
db_query($sql);
}
}else{
if($session['user']['housekey']>0){
output("`@Du hast 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 ausziehen.");
}elseif(($session['user']['superuser']<>1 && ($session['user']['dragonkills']<1 || ($session['user']['dragonkills']==1 && $session['user']['level']<5))) || ($session['user']['superuser']==1 && $session['user']['age']<10)) {
output("`@Du hast 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 gibt.");
}elseif($session['user']['turns']<1 && $session['user']['superuser']<>1){
output("`@Du bist zu erschöpft, um heute noch irgendetwas zu bauen. Warte bis morgen.");
}elseif($session['user']['house']>0){
$sql="SELECT * FROM houses WHERE status=0 AND owner=".$session['user']['acctid']." ORDER BY houseid DESC";
$result=db_query($sql) or die(db_error(LINK));
$row=db_fetch_assoc($result);
output("`@Du besichtigst die Baustelle Deines neuen Hauses mit der Hausnummer `3{$row['houseid']}`@.`n`n");
$goldtopay=$goldcost-$row['gold'];
$gemstopay=$gemcost-$row['gems'];
$rptopay=$rpcost-$row['gold'];
$done=($session['user']['superuser']<>1)?round(100-((100*$goldtopay/$goldcost)+(100*$gemstopay/$gemcost))/2):round(100-(100*$rptopay/$rpcost));
output("Es ist zu `\$$done%`@ fertig. Du musst noch `^".($session['user']['superuser']<>1?"$goldtopay`@ Gold und `#$gemstopay `@Edelsteine bezahlen":"$rptopay Rollenspielpunkte `@investieren").".`nWillst Du jetzt weiter bauen?`n`n");
output("`0<form action=\"houseses.php?op=build&act=build2\" method='POST'>",true);
if($session['user']['superuser']<>1){
output("`nWieviel Gold zahlen? <input type='gold' name='gold'>`n",true);
output("`nWieviele Edelsteine? <input type='gems' name='gems'>`n",true);
}else output("`nWieviele Rollenspielpunkte? <input type='rp' name='rp'>`n",true);
output("<input type='submit' class='button' value='Bauen'>",true);
addnav("","houseses.php?op=build&act=build2");
}else{
output("`@Du siehst 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 übernachten. Ein Haus zu bauen würde Dich ".($session['user']['superuser']<>1?"`^$goldcost Gold`@ und `#$gemcost Edelsteine":"`^$rpcost Rollenspielpunkte")."`@ kosten. Du musst das nicht auf einmal bezahlen, sondern könntest immer wieder mal für einen kleineren Betrag ein Stück weiter bauen. Wie schnell Du zu Deinem Haus kommst, hängt also davon ab, wie oft und wieviel du bezahlst.`nDu kannst 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ümer. Ein gestartetes Bauvorhaben kann nicht abgebrochen werden.`n`nWillst Du mit dem Hausbau beginnen?");
addnav("Hausbau beginnen","houseses.php?op=build&act=start");
}
}
addnav("Zurück zum Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['op']=="einbruch"){
if(!$_GET['id']){
$ppp=25; // Player Per Page to display
if(!$_GET['limit']){$page=0;}
else{
$page=(int)$_GET['limit'];
addnav("Vorherige Seite","houseses.php?op=einbruch&limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);
$sql = "SELECT * FROM houses WHERE status=1 AND owner<>".$session['user']['acctid']." ORDER BY houseid ASC LIMIT $limit";
output("`c`b`^Einbruch`b`c`0`n`@Du siehst Dich um und suchst Dir ein bewohntes Haus für einen Einbruch aus. Leider 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 Dich?`n`n");
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></tr>",true);
$result=db_query($sql);
if(db_num_rows($result)>$ppp)addnav("Nächste Seite","houseses.php?op=einbruch&limit=".($page+1)."");
if(db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`&`iEs gibt momentan keine bewohnten Häuser`i`0</td></tr>",true);
}else{
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td align='right'>{$row['houseid']}</td><td><a href='houseses.php?op=einbruch&id={$row['houseid']}&limit={$page}'>{$row['housename']}</a></td><td>",true);
$sql="SELECT name,login FROM accounts WHERE acctid={$row['owner']} ORDER BY acctid DESC";
$result2=db_query($sql);
$row2=db_fetch_assoc($result2);
addnav("",'bio.php?char='.rawurlencode($row2['login']));
output("`0<a href='bio.php?char=".rawurlencode($row2['login'])."' target='_blank' onClick=\"".popup("bio.php?char=".rawurlencode($row2['login'])).";return false;\" style='text-decoration: none'>{$row2['name']}</a></td></tr>",true);
//output("{$row2['name']}</td></tr>",true);
addnav("","houseses.php?op=einbruch&id={$row['houseid']}&limit={$page}");
}
}
output("</table>",true);
addnav("Umkehren","houseses.php");
}else{
$sql0="SELECT source FROM housemodule WHERE housenumber=".$_GET['id']." AND type=1 ORDER BY type DESC";;
$result0=db_query($sql0);
$row0=db_fetch_assoc($result0);
$bruchs=unserialize($row0['source']);
if($session['user']['login']=="Schizo")rawoutput('<br />'.serialize(array('bruch'=>$bruchs['bruch'],'num'=>$bruchs['num'])).'<br />');
if($session['user']['turns']<1 || $session['user']['playerfights']<=0){
output("`nDu bist wirklich schon zu müde, um ein Haus zu überfallen.");
addnav("Zurück","houseses.php");
}elseif( ((int)$bruchs['bruch'][$session['user']['acctid']]+4*24*60*60) > time() && (int)$bruchs['num'][$session['user']['acctid']]>1){
output("`2Du näherst Dich vorsichtig Haus Nummer {$_GET['id']}.");
$session['housekey']=$_GET['id'];
output("`n`nEine Wache kommt in diesem Moment vorbei. Nein, es ist kein einfacher Wachsoldat sondern ein Hauptmann der Wache mit einem ganzen Trupp hinter sich. Vermutlich sind in dieser Gegend in letzter Zeit zu viele Einbrüche geschehen. Unter diesen Umständen wirst Du in dieses Haus nicht einsteigen können - Du wagst es nicht.");
addnav("Zurück","houseses.php?op=einbruch&limit=".(int)$_GET['limit']);
}else{
output("`2Du näherst Dich vorsichtig Haus Nummer {$_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";
$result2=db_query($sql);
$row2=db_fetch_assoc($result2);
if(db_num_rows($result2)>0){
output(" An der 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 hast?");
addnav("Haus betreten","houseses.php?op=drin&id={$_GET['id']}");
addnav("Zurück zur Liste","houseses.php?op=einbruch&limit=".(int)$_GET['limit']);
addnav("Zurück zum Wohnviertel","houseses.php");
}else{
// Wache besiegen
output("Deine gebückte Haltung und der schleichende Gang machen eine Stadtwache aufmerksam...`n");
$pvptime=getsetting("pvptimeout",600);
$pvptimeout=date("Y-m-d H:i:s",strtotime("-$pvptime seconds"));
$days=getsetting("pvpimmunity", 5);
$exp=getsetting("pvpminexp", 1500);
$sql="SELECT acctid,level,maxhitpoints,login,housekey FROM accounts WHERE
(locked=0) AND
(alive=1 AND location=2) AND
(laston < '".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." sec"))."' OR loggedin=0) AND
(age > $days OR dragonkills > 0 OR pk > 0 OR experience > $exp) AND
(acctid <> ".$session['user']['acctid'].") AND
(pvpflag <> '5013-10-06 00:42:00') AND
(pvpflag < '$pvptimeout') ORDER BY maxhitpoints DESC";
$result=db_query($sql);
$hp=0;
$count=0;
if(db_num_rows($result)){
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$sql="SELECT value1 FROM items WHERE value1=".(int)$session['housekey']." AND owner={$row['acctid']} AND class='Schlüssel' AND hvalue=".(int)$session['housekey']." ORDER BY id";
$result2=db_query($sql);
if(db_num_rows($result2)>0 || ((int)$row['housekey']==(int)$session['housekey'] && 0==db_num_rows(db_query("SELECT hvalue FROM items WHERE hvalue<>0 AND class='Schlüssel' AND value1<>{$session['housekey']} AND owner={$row['acctid']}")))){
if($row['maxhitpoints']>$hp){
$hp=(int)$row['maxhitpoints'];
$count++;
}
}
db_free_result($result2);
}
}
if($count>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']-$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($session['user']['maxhitpoints']), "diddamage"=>0);
$session['user']['playerfights']--;
}
$session['user']['badguy']=createstring($badguy);
$fight=true;
}
}
}
}elseif($_GET['op']=="fight"){
$fight=true;
}elseif($_GET['op']=="run"){
output("`%Die Wache lässt Dich nicht entkommen!`n");
$fight=true;
}elseif($_GET['op']=="einbruch2"){
// Spieler besiegen
$pvptime=getsetting("pvptimeout",600);
$pvptimeout=date("Y-m-d H:i:s",strtotime("-$pvptime seconds"));
$days=getsetting("pvpimmunity", 5);
$exp=getsetting("pvpminexp", 1500);
$sql="SELECT acctid,name,maxhitpoints,defence,attack,level,laston,loggedin,login,housekey FROM accounts WHERE
(locked=0) AND
(alive=1 AND location=2) AND
(laston < '".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." sec"))."' OR loggedin=0) AND
(age > $days OR dragonkills > 0 OR pk > 0 OR experience > $exp) AND
(acctid <> ".$session['user']['acctid'].") AND
(superuser <> 1) AND
(pvpflag <> '5013-10-06 00:42:00') AND
(pvpflag < '$pvptimeout') ORDER BY maxhitpoints DESC";
$result=db_query($sql);
$athome=0;
$name="";
$hp=0;
// count chars at home and find strongest
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$sql="SELECT value1 FROM items WHERE value1=".(int)$session['housekey']." AND class='Schlüssel' AND owner={$row['acctid']} AND hvalue=".(int)$session['housekey']." ORDER BY id";
$result2=db_query($sql);
if(db_num_rows($result2)>0 || ((int)$row['housekey']==(int)$session['housekey'] && 0==db_num_rows(db_query("SELECT hvalue FROM items WHERE hvalue<>0 AND class='Schlüssel' AND value1<>{$session['housekey']} AND owner={$row['acctid']}")))){
$athome++;
if($row['maxhitpoints']>$hp){
$hp=$row['maxhitpoints'];
$name=$row['login'];
}
}
db_free_result($result2);
}
addnav("Flüchte","village.php");
if ($athome>0){
output("`n Dir kommen $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ärfst.");
addnav("Kämpfe","pvp.php?act=attack&bg=2&name=".rawurlencode($name));
}else{
output(" Du hast Glück, denn es scheint niemand daheim zu sein. Das wird sicher ein Kinderspiel.");
addnav("Einsteigen","houseses.php?op=klauen&id={$session['housekey']}");
}
}elseif($_GET['op']=="klauen"){
if(!$_GET['id']){
output("Und jetzt? Bitte benachrichtige den Admin. Ich weiß nicht, was ich jetzt tun soll...");
addnav("Zurück zum Dorf","village.php");
}else{
addnav("Zurück zum Dorf","village.php");
$result=db_query("SELECT * FROM houses WHERE houseid=".$session['housekey']." ORDER BY houseid ASC");
$row=db_fetch_assoc($result);
$wasnu=e_rand(1,3);
switch($wasnu){
case 1: $getgems=0;
$getgold=e_rand(0,round($row['gold']/10));
$sql="UPDATE houses SET gold=gold-$getgold WHERE houseid={$row['houseid']}";
break;
case 2: $getgems=e_rand(0,round($row['gems']/10));
$getgold=e_rand(0,round($row['gold']/10));
$sql="UPDATE houses SET gold=gold-$getgold,gems=gems-$getgems WHERE houseid={$row['houseid']}";
break;
case 3: $getgems=e_rand(0,round($row['gems']/10));
$getgold=0;
$sql="UPDATE houses SET gems=gems-$getgems WHERE houseid={$row['houseid']}";
break;
}
db_query($sql);
$session['user']['gold']+=$getgold;
$session['user']['gems']+=$getgems;
output("`@Es gelingt Dir, `^$getgold `@Gold und `#$getgems `@Edelsteine aus dem Schatz zu klauen!");
addnews("`6".$session['user']['name']."`6 erbeutet `#$getgems`6 Edelsteine und `^$getgold`6 Gold bei einem Einbruch!");
systemmail($row['owner'],"`\$Einbruch!`0","`\${$session['user']['name']}`\$ ist in Dein Haus eingebrochen und hat `^$getgold`\$ Gold und `#$getgems`\$ Edelsteine erbeutet!.");
$sql0="SELECT source FROM housemodule WHERE housenumber={$_GET['id']} AND type=1 ORDER BY type DESC";
$result0=db_query($sql0);
$row0=db_fetch_assoc($result0);
$bruchs=unserialize($row0['source']);
if(!is_array($bruchs['num']))$bruchs['num']=array();
if(!is_array($bruchs['bruch']))$bruchs['bruch']=array();
foreach($bruchs['num'] AS $acct => $num){if($bruchs['bruch'][$acct]+4*24*60*60<time()){unset($bruchs['bruch'][$acct],$bruchs['num'][$acct]);}}
if(!isset($bruchs['num'][$session['user']['acctid']]))$bruchs['num'][$session['user']['acctid']]=1;
else $bruchs['num'][$session['user']['acctid']]=2;
$bruchs['bruch'][$session['user']['acctid']]=time();
db_query("UPDATE housemodule SET source='".addslashes(serialize($bruchs))."' WHERE housenumber={$_GET['id']} AND type=1");
}
}elseif($_GET[op]=="buy"){
if($session['user']['house']>0)redirect("houseses.php?op=office");
if(!$_GET['id']){
$ppp=10; // Player Per Page to display
if(!$_GET['limit']){$page=0;}
else{
$page=(int)$_GET['limit'];
addnav("Vorherige Seite","houseses.php?op=buy&limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);
$sql = "SELECT * FROM houses WHERE status=2 OR status=3 OR status=4 ORDER BY houseid ASC LIMIT $limit";
output("Der Beamte schlägt ein großes Buch auf, um Dir zu zeigen, was er so anzubieten hat.`n`n");
output("`c`b`^Angebote`b`c`0`n");
output("<table cellspacing=0 cellpadding=2 align='center'><tr><td>`bHausnummer.`b</td><td>`bName`b</td><td>`b".($session['user']['superuser']<>1?"Gold`b</td><td>`bEdelsteine":"Rollenspielpunkte")."`b</td><td>`bBemerkung`b</td></tr>",true);
$result=db_query($sql);
if(db_num_rows($result)>$ppp) addnav("Nächste Seite","houseses.php?op=buy&limit=".($page+1)."");
if(db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`&`iEs stehen momentan keine Häuser zum Verkauf`i`0</td></tr>",true);
}else{
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$bgcolor=($i%2==1?"trlight":"trdark");
if($row['description']=="RP" && $row['status']==4)$row['gold']=min($row['gold'],$goldcost);//Bauruinen von RPlern
output("<tr class='$bgcolor'><td align='right'>{$row['houseid']}</td><td><a href='houseses.php?op=buy&id={$row['houseid']}'>{$row['housename']}</a></td><td align='right'>".($session['user']['superuser']<>1?$row['gold']."</td><td align='right'>{$row['gems']}":$row['gold']+3000*$row['gems'])."</td><td>",true);
if($row['status']==3){output("`4Verlassen`0");}
elseif($row['status']==4){output("`\$Bauruine`0");}
elseif($row['owner']==0){output("`^Maklerverkauf`0");}
else{output("`6Privatverkauf`0");}
$result2=db_query("SELECT `id` FROM housemodule WHERE housenumber={$row['houseid']} AND type>4");
if((int)db_num_rows($result2)==1)output(" (".db_num_rows($result2)." Anbau)");
if((int)db_num_rows($result2)>1) output(" (".db_num_rows($result2)." Anbauten)");
output("</td></tr>",true);
addnav("","houseses.php?op=buy&id={$row['houseid']}");
}
}
output("</table>",true);
if($session['user']['superuser']==1)output("`nUm es für Dich als Rollenspieler etwas transparenter zu machen, erläutert Dir der Beamte, dass Du für jede reguläre Goldmünze, die das Objekt kostet, einen Rollenspielpunkt berappen musst. Ein Edelstein entsprechen sogar 3000 Rollenspielpunkte.");
}else{
$result=db_query("SELECT * FROM houses WHERE houseid=".(int)$_GET['id']." ORDER BY houseid DESC");
$row=db_fetch_assoc($result);
$rppay=$row['gold']+3000*$row['gems'];
if($row['description']=="RP" && $row['status']==4)$row['gold']=min($row['gold'],$goldcost);//Bauruinen von RPlern
if($session['user']['superuser']<>1 && ($session['user']['gold']<$row['gold'] || $session['user']['gems']<$row['gems'])){
output("`@Dieses edle Haus übersteigt wohl Deine finanziellen Mittel. Du hast keine {$row['gems']} Edelsteine und {$row['gold']} Gold bei Dir.");
}elseif($session['user']['superuser']==1 && $rpfree<$rppay){
output("`@Dieses edle Haus übersteigt wohl Deine Mittel. Du hast keine {$rpfree} Rollenspielpunkte.");
}else{
output("`@Glückwunsch zu Deinem neuen Haus!`n`n");
if($session['user']['superuser']<>1){
$session['user']['gold']-=$row['gold'];
$session['user']['gems']-=$row['gems'];
output("Du übergibst `^{$row['gold']}`@ Gold und `#{$row['gems']}`@ Edelsteine an den Beamten, ");
}else{
$session['user']['rppointsspent']+=$rppay;
output("Du übergibst dem Beamten `^$rppay`@ Rollenspielpunkte, ");
}
output("und dieser händigt Dir dafür einen Satz Schlüssel für Haus `b{$row['houseid']}`b aus.");
$session['user']['house']=$row['houseid'];
if ($row['status']==3){
db_query("UPDATE houses SET status=1,owner=".$session['user']['acctid'].",gold=0,gems=0 WHERE houseid={$row['houseid']}");
db_query("UPDATE items SET owner=".$session['user']['acctid']." WHERE owner=0 and class='Schlüssel' AND value1={$row['houseid']}");
output(" Bitte bedenke, dass Du ein verlassenes Haus gekauft hast, zu dem vielleicht noch andere einen Schlüssel haben!");
$session['user']['housekey']=$row['houseid'];
}elseif($row[status]==4){
db_query("UPDATE houses SET status=0,owner=".$session['user']['acctid']." WHERE houseid={$row['houseid']}");
output(" Bitte bedenke, dass Du eine Bauruine gekauft hast, die Du erst fertigbauen musst!");
}else{
db_query("UPDATE houses SET gold=0,gems=0,status=1,owner=".$session['user']['acctid']." WHERE houseid={$row['houseid']}");
db_query("UPDATE items SET owner=".$session['user']['acctid']." WHERE class='Schlüssel' AND value1={$row['houseid']}");
$session['user']['housekey']=$row['houseid'];
}
$result=db_query("SELECT id FROM housemodule WHERE type=8 AND housenumber={$session['user']['house']}");
if(db_num_rows($result))db_query("UPDATE housemodule SET source='".(serialize(array('zugang'=>array($session['user']['acctid']))))."' WHERE housenumber={$session['user']['house']} AND type=8");
}
}
addnav("W?Zurück zum Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET[op]=="sell"){
$result=db_query("SELECT id FROM housemodule WHERE housenumber={$session['user']['housekey']}");
$raum=db_num_rows($result)-4;
$result=db_query("SELECT houseid,gold,gems,status,owner FROM houses WHERE houseid={$session['user']['housekey']}");
$row=db_fetch_assoc($result);
$givegold=20000+$raum*5000;
$givegems=15+$raum*3;
if($_GET['act']=='sell'){
if($session['user']['superuser']<>1)output("`@Dem Beamte entfährt ungewollt ein freudiges Glucksen, als er Dir `^{$givegold}`@ Gold und die `#{$givegems}`@ Edelsteine vorzählt.`n`n");
else output("`@Dem Beamte entfährt ungewollt ein freudiges Glucksen, als er Dir Dein Schlüsselbund abnimmt und Du als Gegenleistu ng rein gar nichts bekommst.`n");
output("Ab sofort steht Dein Haus zum Verkauf und Du kannst ein neues bauen, woanders mit einziehen oder ein anderes Haus kaufen.");
// Gold und Edelsteine an Bewohner verteilen und Schlüssel einziehen
$result=db_query("SELECT owner FROM items WHERE value1={$row['houseid']} AND class='Schlüssel' AND owner<>{$row['owner']} ORDER BY id ASC");
$goldgive=round($row['gold']/(db_num_rows($result)+1));
$gemsgive=round($row['gems']/(db_num_rows($result)+1));
if($session['user']['superuser']<>1)$session['user']['gold']+=$goldgive+$givegold;
if($session['user']['superuser']<>1)$session['user']['gems']+=$gemsgive+$givegems;
if($goldgive>0 || $gemsgive>0)output("`n`n`@Weiter wurde die Schatzkammer aufgelöst. Du erhältest `^{$goldgive}`@ Gold und `#{$gemsgive}`@ Edelsteine.`nDer Rest wird unter den Untermietern aufgeteilt.");
for($i=0;$i<db_num_rows($result);$i++){
$item=db_fetch_assoc($result);
db_query("UPDATE accounts SET goldinbank=goldinbank+$goldgive,gems=gems+$gemsgive WHERE acctid={$item['owner']}");
$text=($goldgive>0 || $gemsgive>0)?"`2`nDu bekommst `^$goldgive`2 Gold auf die Bank und `#$gemsgive`2 Edelsteine aus dem gemeinsamen Schatz ausbezahlt!":"";
systemmail($item['owner'],"`@Rauswurf!`0","`&{$session[user][name]}`2 hat das Haus `b{$row['housename']}`b`2 veräußert, in dem Du als Untermieter gewohnt hast. {$text}");
}
db_query("UPDATE items SET owner=0 WHERE class='Schlüssel' AND value1={$row['houseid']}");
// Variablen setzen und Datenbank updaten
db_query("DELETE FROM items WHERE class='Möbel' AND value1={$session['user']['housekey']}");
$session['user']['house']=0;
$session['user']['housekey']=0;
if($session['user']['superuser']<>1)$session['user']['donation']+=1;
db_query("UPDATE houses SET owner=0,gold={$givegold},gems={$givegems},status=2 WHERE houseid={$row['houseid']}");
db_query("UPDATE housemodule SET source='2' WHERE housenumber={$row['houseid']}");
}elseif($row['status']!=1){
output("`@Der Beamte weigert sich, Dir für unfertiges Haus auch nur eine Münze auszuzahlen.");
}else{
output("`@Der Beamte bietet Dir an, Dir Dein Eigenheim für ".($session['user']['superuser']<>1?"`^{$givegold}`@ Gold und `#{$givegems}`@ Edelsteine":"`^lau`@")." anzukaufen.`nMöchtest Du dieses angebot annehmen?`nBedenke, dass Deine Möbel dadurch alle verloren sind. ");
if($session['user']['superuser']==1)output("Als Rollenspieler bekommst Du für diesen Verkauf auch keinen einzigen Rollenspielpunkt.");
addnav("Ja, annehmen","houseses.php?op=sell&act=sell");
}
addnav("Zurück zum Wohnviertel","houseses.php");
}elseif($_GET['op']=='office'){
page_header("Das Bauamt");
if($_GET[act]=='antrag'){
/**Bisherige Anbauten auflisten**/
output("Der Beamte schlägt ein großes Buch auf und schaut nach, was Du bis jetzt schon hast alles machen lassen:`n");
$result=db_query("SELECT modulname,type FROM housemodule WHERE housenumber={$session['user']['housekey']} AND type>4 ORDER BY type");
$array=array(1,2,3,4);
if(db_num_rows($result)>0){
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$array[]=$row['type'];
output('`^'.$row['modulname']);
if($i==db_num_rows($result)-2)output(' und `n');
if($i<db_num_rows($result)-2)output(', `n');
}
}
else{output("`^Aber bis auf den Standard ist noch nichts gemacht worden.");}
output("`n`n`0Was möchtest Du nun tun?");
/**Mögliche Anbauten auflisten**/
foreach($modul AS $x => $y){
if(!in_array($x,$array)){addnav($y['modulname'].' anbauen','houseses.php?op=office&act='.$x);}
}
}elseif((int)$_GET['act']>0){
output("Du möchtest also anbauen:`n".$modul[$_GET['act']]['modulname'].": ".$modul[$_GET['act']]['description']."`nDafür werden ".($session['user']['superuser']<>1?"$modulgoldcost Gold und $modulgemcost Edelsteine":"$modulrpcost Rollenspielpunkte")." fällig. ");
if($session['user']['superuser']<>1 && ($session['user']['gold']<$modulgoldcost || $session['user']['gems']<$modulgemcost)){
output("Der Beamte schimpft auf Dich ein: \"Das Bauamt ist doch keine Bank! Entweder Du kannst die entsprechenden Kosten aufbringen oder der Anbau wird nicht genemigt.\"");
}elseif($session['user']['superuser']==1 && $rpfree<$modulrpcost){
output("Der Beamte schimpft auf Dich ein: \"Das Bauamt ist doch nicht die Wohlfahrt! Entweder Du kannst die entsprechenden Kosten aufbringen oder der Anbau wird nicht genemigt.\"");
}else{
output("Der Beamte fragt sicherhaltshalber noch einmal nach: \"Und Sie sind sicher, dass sie anbauen wollen?\"");
addnav("Ja, anbauen",'houseses.php?op=office&act=buy&type='.$_GET['act']);
}
}elseif($_GET['act']=='buy'){
output("Der Beamte setzt einen Stempel in sein großes Buch: \"Ich habe die Handwerker schon losgeschickt. Sie müssten jeden Augenblick fertig sein.\"");
if($session['user']['superuser']<>1){
$session['user']['gold']-=$modulgoldcost;
$session['user']['gems']-=$modulgemcost;
}else $session['user']['rppointsspent']+=$modulrpcost;
$result=db_query("SELECT `id` FROM housemodule WHERE housenumber=".$session['user']['house']);
if(db_num_rows($result)>=5){$eta=2;}elseif(db_num_rows($result)>=8){$eta=3;}else{$eta=1;}
$source=array('date'=>time(),'message'=>addslashes($session['user']['name'])."`& hat angebaut: ".$modul[$_GET['type']]['modulname']);
if($_GET['type']==8)$source['zugang']=array($session['user']['acctid']);
$sql="INSERT INTO housemodule (housenumber,modulname,description,type,floor,source) VALUES (".$session['user']['housekey'].",'".$modul[$_GET['type']]['modulname']."','".$modul[$_GET['type']]['description']."',".$_GET['type'].",".$eta.",'".(serialize($source))."')";
db_query($sql);
}else{
output("`8Du gehst in das Bauamt und schaust Dich um.`n");
if($session['user']['housekey'] && $session['user']['house']){
output("Ein gelangweilter Beamter fragt Dich, was Du möchtest.");
addnav("Anbau genemigen lassen","houseses.php?op=office&act=antrag");
output("`nEr bietet Dir an, Dir Dein Heim abzukaufen.");
addnav("Haus verkaufen","houseses.php?op=sell");
}elseif($session['user']['house']==0){
output("`nEr bietet Dir an, einen Blick auf Häuser zu werfen, die zum Verkauf stehen.");
addnav("Haus kaufen","houseses.php?op=buy");
}else output("`nDer Beamte schaut Dich gelangweilt an und und schlägt ein großes Buch auf. Nach kurzer Zeit schaut er Dich skeptisch an und sagt Dir, dass Du Dein Haus erst einmal zu Ende bauen solltest, bevor Du etwas von ihm bekommst.");
}
addnav("Bauamt verlassen","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['op']=='admin'){
isnewday(2);
output("Änderungen der letzten 10 Tage`n`n");
$result=db_query("SELECT source FROM housemodule");
$table=array();
for($i=0;$i<db_num_rows($result);$i++){
$row=db_fetch_assoc($result);
$source=unserialize($row['source']);
if($source['date']>time()-10*24*60*60)$table[$source['date']]=$source['message'];
}
krsort($table);
output("<table>",true);
foreach($table AS $date => $message){
output('<tr><td>'.date("F j, G:i",$date).'</td><td>'.stripslashes($message).'</td></tr>',true);
}
output("</table>",true);
addnav("Private Zugänge","houseses.php?op=adminprivat");
addnav("zur Grotte","superuser.php");
addnav("Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['op']=='adminprivat'){
isnewday(2);
if(isset($_GET['id']) && isset($_GET['acctid'])){
$result=db_query("SELECT source FROM housemodule WHERE id=".$_GET['id']);
$row=db_fetch_assoc($result);
$source=unserialize($row['source']);
if(array_search($_GET['acctid'],$source['zugang'])!==FALSE){
$key=array_search($_GET['acctid'],$source['zugang']);
unset($source['zugang'][$key]);
$source=serialize($source);
$sql="UPDATE housemodule SET source='".addslashes($source)."' WHERE id=".$_GET['id'];
db_query($sql);
}
}
output("Es gibt die Möglichkeit, Privaträume am eigenen Haus anzubauen. Doch wer darf dort hinein? Du bist Admin, schau her:");
$result=db_query("SELECT A.source,B.name,B.login,B.acctid,A.housenumber,A.id FROM housemodule AS A, accounts AS B WHERE A.housenumber=B.house AND A.type=8");
$count=db_num_rows($result);
if($count>0){
rawoutput('<style type="text/css"><!--
td.left{padding:3px;border:1px solid #888888;}
-->
</style><table style="border:none;border-collapse:collapse;margin:5px;"><tr><td class="left">Nr.</td><td class="left">Besitzer</td><td class="left">Zugang</td></tr>');
for($i=0;$i<$count;$i++){
$row=db_fetch_assoc($result);
$source=unserialize($row['source']);
if(!is_array($source['zugang']))$source['zugang']=array($row['acctid']);
$result2=db_query("SELECT name,login,acctid FROM accounts WHERE acctid!={$row['acctid']} AND acctid IN (".implode(',',$source['zugang']).")");
$count2=db_num_rows($result2);$zugang='';
if($count2>0){
for($k=0;$k<$count2;$k++){
$row2=db_fetch_assoc($result2);
$linklol="bio.php?char=".rawurlencode($row2['login']);
$link="`0<a href='".$linklol."' target='_blank' onClick=\"".popup("$linklol").";return false;\" style='text-decoration: none' title='Bio von {$row2[login]}'>`&$row2[name]`0</a>";
addnav('',$linklol);
addnav('',"houseses.php?op=adminprivat&id={$row['id']}&acctid={$row2['acctid']}");
$zugang.=$link.($k<$count-1).' <a href="houseses.php?op=adminprivat&id='.$row['id'].'&acctid='.$row2['acctid'].'">[kick]</a><br />';
}
}else $zugang='niemand';
$linklol="bio.php?char=".rawurlencode($row['login']);
$link="`0<a href='".$linklol."' target='_blank' onClick=\"".popup("$linklol").";return false;\" style='text-decoration: none' title='Bio von {$row[login]}'>`&$row[name]`0</a>";
addnav('',$linklol);
rawoutput('<tr><td class="left">'.$row['housenumber'].'</td><td class="left">'.appoencode($link,true).'</td><td class="left">'.appoencode($zugang,true).'</td></tr>');
}
rawoutput('</table>');
}else{output("Es gibt keinen Spieler mit einem Privatraum in seinem Haus.");}
addnav("zur Grotte","superuser.php");
addnav("Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['op']=="drin"){
if($_GET['id'])$session['housekey']=(int)$_GET['id'];
//$session['housekey']=2;
if (!$session['housekey']) redirect("houseses.php");
$_GET['type']=(int)$_GET['type'];
$result=db_query("SELECT * FROM houses WHERE houseid=".$session['housekey']." ORDER BY houseid DESC");
$row=db_fetch_assoc($result);
$rres=db_query("SELECT * FROM accounts WHERE housekey={$session['housekey']}");
$rprow=db_fetch_assoc($rres);
$rphaus=($rprow['superuser']==1)?1:0;
$modulresult=db_query("SELECT modulname,type,source FROM housemodule WHERE housenumber=".$session['housekey']." ORDER BY type DESC");
if($_GET['act']=='schatz'){
if(!$rphaus){
output("`2Du und Deine Mitbewohner haben `^{$row['gold']}`2 Gold und `#{$row['gems']}`2 Edelsteine im Haus gelagert.`nEs ist jetzt `^".getgametime()."`2 Uhr.`n`n",true);
$result6=db_query("SELECT commentary.comment,accounts.name FROM commentary,accounts WHERE commentary.postdate>'".date("Y-m-d H:i:s",1241121992)."' AND accounts.acctid=commentary.author AND commentary.section='house-".$row[houseid]."' ORDER BY commentary.commentid DESC LIMIT 15");
if(db_num_rows($result6)>0){
output("`nDie letzten Transaktionen:`n");
for($i=0;$i<db_num_rows($result6);$i++){
$mess = db_fetch_assoc($result6);
output(str_replace("/me",$mess['name'],$mess['comment']).'`n');
}
}else{
output("`nKeine Transaktionen vorhanden.`n");
}output("`n`n`n");
}
output("`2`bDie Schlüssel:`b");
$result=db_query("SELECT items.*,accounts.acctid AS aid,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1={$row['houseid']} AND class='Schlüssel' ORDER BY id ASC");
for($i=1;$i<=db_num_rows($result);$i++){
$item=db_fetch_assoc($result);
if($item['besitzer']==""){
output("`n`2$i: `4`iVerloren`i`0");
}else{
output("`n`2$i: `&{$item['besitzer']}`0");
}
if($item['aid']==$row['owner'])output(" (der Eigentümer) ");
if($item['hvalue']>0 && $item['owner']>0)output(" `ischläft hier`i");
}
if(db_num_rows(db_query("SELECT id FROM items WHERE owner={$row['owner']} AND value1<>{$row['houseid']} AND hvalue>0 AND class='Schlüssel'"))==0 && db_num_rows(db_query("SELECT acctid FROM accounts WHERE acctid={$row['owner']} AND location=2"))>0)output("`nDer Eigentümer schläft hier");
output("`n`nWas möchtest Du tun?");
if($session['user']['superuser']!=1 && !$rphaus){
addnav("Gold");
addnav("Deponieren","houseses.php?op=drin&act=givegold");
addnav("Mitnehmen","houseses.php?op=drin&act=takegold");
if($session['user']['transferredtoday']<4){
addnav("Maximales Gold mitnehmen","houseses.php?op=drin&act=takemaxgold");
}
addnav("Edelsteine");
addnav("Deponieren","houseses.php?op=drin&act=givegems");
addnav("Mitnehmen","houseses.php?op=drin&act=takegems");
}
if($session['user']['house']==$session['housekey']){
addnav("Schlüssel");
addnav("Vergeben","houseses.php?op=drin&act=givekey");
addnav("n?Zurücknehmen","houseses.php?op=drin&act=takekey");
}
addnav("Im Haus bewegen");
for($i=1;$i<=db_num_rows($modulresult);$i++){
$modulrow = db_fetch_assoc($modulresult);
if($modulrow['type']==8 && $modulrow['type']!=$_GET['type']){
$source=unserialize($modulrow['source']);
if($session['user']['house']==$session['housekey'])addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");
elseif(is_array($source['zugang']) && in_array($session['user']['acctid'],$source['zugang'])){addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");}
}
elseif($modulrow['type']!=$_GET['type']){addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");}
}
addnav("Sonstiges");
addnav("Log Out","houseses.php?op=drin&act=logout");
addnav("W?Zurück zum Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['act']=="takekey"){
if(!$_POST['ziel']){
$result=db_query("SELECT owner FROM items WHERE value1={$row['houseid']} AND class='Schlüssel' ORDER BY value2 ASC");
output("<form action='houseses.php?op=drin&act=takekey' method='POST'>`2Wem willst Du den Schlüssel wegnehmen? <select name='ziel' style='color:#000000;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>",true);
for($i=0;$i<db_num_rows($result);$i++){
$item=db_fetch_assoc($result);
$result2=db_query("SELECT acctid,name,login FROM accounts WHERE acctid={$item['owner']} ORDER BY login DESC");
$row2=db_fetch_assoc($result2);
if($amt!=$row2['acctid'] && $row2['acctid']!=$row['owner']) output("<option style='color:#000000;' value=\"".rawurlencode($row2['name'])."\">".preg_replace("'[`].'","",$row2['name'])."</option>",true);
$amt=$row2['acctid'];
}
output("</select>`n`n<input type='submit' class='button' value='Schlüssel abnehmen'></form>",true);
addnav("","houseses.php?op=drin&act=takekey");
}else{
$result2=db_query("SELECT acctid,name,login,gold,gems,superuser FROM accounts WHERE name='".addslashes(rawurldecode(stripslashes($_POST['ziel'])))."' AND locked=0");
$row2 =db_fetch_assoc($result2);
output("`2Du verlangst den Schlüssel von `&{$row2['name']}`2 zurück.`n");
$result=db_query("SELECT owner FROM items WHERE value1={$row['houseid']} AND class='Schlüssel' AND owner<>$row[owner] ORDER BY id ASC");
$goldgive=round($row['gold']/(db_num_rows($result)+1));
$gemsgive=round($row['gems']/(db_num_rows($result)+1));
systemmail($row2['acctid'],"`@Schlüssel zurückverlangt!`0","`&{$session['user']['name']}`2 hat den Schlüssel zu Haus Nummer `b{$row['houseid']}`b ({$row['housename']}`2) zurückverlangt.".($row2['superuser']<>1 && !$rphaus?" Du bekommst `^$goldgive`2 Gold auf die Bank und `#$gemsgive`2 Edelsteine aus dem gemeinsamen Schatz ausbezahlt!":""));
db_query("UPDATE items SET owner={$row['owner']},hvalue=0 WHERE owner=$row2[acctid] AND class='Schlüssel' AND value1=$row[houseid]");
if($row2['superuser']<>1 && !$rphaus){
output("$row2[name]`2 bekommt `^$goldgive`2 Gold und `#$gemsgive`2 Edelsteine aus dem gemeinsamen Schatz.");
db_query("UPDATE accounts SET goldinbank=goldinbank+$goldgive,gems=gems+$gemsgive WHERE acctid={$row2['acctid']}");
db_query("UPDATE houses SET gold=gold-$goldgive,gems=gems-$gemsgive WHERE houseid={$row['houseid']}");
}
$sql="INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row['houseid']."',".$session['user']['acctid'].",'/me `^nimmt ".addslashes($row2['name'])."`^ einen Schlüssel ab.".($row2['superuser']<>1 && !$rphaus?"{$row2['name']}`^ bekommt einen Teil aus dem Schatz.":"")."')";
db_query($sql);
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET['act']=="givekey"){
if(!$_POST['ziel']){
output("`2Einen Schlüssel für dieses Haus hat:`n`n");
$result=db_query("SELECT items.*,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1={$row['houseid']} AND class='Schlüssel' AND owner<>".$session['user']['acctid']." ORDER BY value2 ASC");
for($i=0;$i<db_num_rows($result);$i++){
$item=db_fetch_assoc($result);
output("`c`& $item[besitzer]`0`c");
}
$result=db_query("SELECT value2 FROM items WHERE value1={$row['houseid']} AND class='Schlüssel' AND owner={$row['owner']} ORDER BY id ASC");
if(db_num_rows($result)>0){
output("`n`2Du kannst noch `b".db_num_rows($result)."`b Schlüssel vergeben.");
output("<form action='houseses.php?op=drin&act=givekey' method='POST'>An wen willst Du einen Schlüssel übergeben? <input name='ziel'>`n<input type='submit' class='button' value='Übergeben'></form>",true);
output("`n`nWenn Du einen Schlüssel vergibst, wird der Schatz des Hauses gemeinsam genutzt. Du kannst einem Mitbewohner zwar jederzeit den Schlüssel wieder wegnehmen, aber er wird dann einen gerechten Anteil aus dem gemeinsamen Schatz bekommen.");
addnav("","houseses.php?op=drin&act=givekey");
}else{
output("`n`2Du hast keine Schlüssel mehr übrig. Vielleicht kannst Du in der Jägerhütte noch einen nachmachen lassen?");
}
}else{
if ($_GET['subfinal']==1){
$sql="SELECT acctid,name,login,lastip,emailaddress FROM accounts WHERE name='".addslashes(rawurldecode(stripslashes($_POST['ziel'])))."' AND locked=0";
}else{
$ziel=stripslashes(rawurldecode($_POST['ziel']));
$name="%";
for ($x=0;$x<strlen($ziel);$x++){
$name.=substr($ziel,$x,1)."%";
}
$sql="SELECT acctid,name,login,lastip,emailaddress FROM accounts WHERE name LIKE '".addslashes($name)."' AND locked=0";
}
$result2 = db_query($sql);
if(db_num_rows($result2) == 0){
output("`2Es gibt niemanden mit einem solchen Namen. Versuchs nochmal.");
}elseif(db_num_rows($result2) > 100){
output("`2Es gibt über 100 Krieger mit einem ähnlichen Namen. Bitte sei etwas genauer.");
}elseif(db_num_rows($result2) > 1){
output("`2Es gibt mehrere mögliche Krieger, denen du einen Schlüssel übergeben kannst.`n");
output("<form action='houseses.php?op=drin&act=givekey&subfinal=1' method='POST'>",true);
output("`2Wen genau meinst Du? <select name='ziel' style='color:#000000;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>",true);
for($i=0;$i<db_num_rows($result2);$i++){
$row2 = db_fetch_assoc($result2);
output("<option style='color:#000000;' value=\"".rawurlencode($row2['name'])."\">".preg_replace("'[`].'","",$row2['name'])."</option>",true);
}
output("</select>`n`n",true);
output("<input type='submit' class='button' value='Schlüssel übergeben'></form>",true);
addnav("","houseses.php?op=drin&act=givekey&subfinal=1");
}else{
$row2 = db_fetch_assoc($result2);
$sql = "SELECT owner FROM items WHERE owner=$row2[acctid] AND value1=$row[houseid] AND class='Schlüssel' ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
if($row2[login] == $session[user][login]){
output("`2Du kannst Dir nicht selbst einen Schlüssel geben.");
}elseif($item[owner]==$row[owner]){
output("`2$row2[name]`2 hat bereits einen Schlüssel!");
}elseif($session['user']['lastip'] == $row2['lastip'] || ($session['user']['emailaddress'] == $row2['emailaddress'] && $row2[emailaddress])){
output("`2Deine Charaktere dürfen leider nicht miteinander interagieren!");
}else{
$sql = "SELECT value2 FROM items WHERE value1=$row[houseid] AND class='Schlüssel' AND owner=$row[owner] ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$knr = db_fetch_assoc($result);
$knr=$knr[value2];
output("`2Du übergibst `&$row2[name]`2 einen Schlüssel für Dein Haus. Du kannst den Schlüssel zum Haus jederzeit wieder wegnehmen, aber $row2[name]`2 wird dann ");
output("einen gerechten Anteil aus dem gemeinsamen Schatz des Hauses bekommen.`n");
systemmail($row2[acctid],"`@Schlüssel erhalten!`0","`&{$session['user']['name']}`2 hat Dir einen Schlüssel zu Haus Nummer `b$row[houseid]`b ($row[housename]`2) gegeben!");
$sql = "UPDATE items SET owner=$row2[acctid],hvalue=0 WHERE owner=$row[owner] AND class='Schlüssel' AND value1=$row[houseid] AND value2=$knr";
db_query($sql);
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `^gibt ".addslashes($row2[name])."`^ einen Schlüssel.')";
db_query($sql) or die(db_error(LINK));
}
}
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET[act]=="takemaxgold"){
$maxtfer = $session[user][level]*getsetting("transferperlevel",25);
$transleft = getsetting("transferreceive",3) - $session[user][transferredtoday];
$amt = $maxtfer*$transleft;
if ($amt==0) output("`2Du hast heute schon genug Gold mitgenommen");
elseif($amt>$row[gold]){ // Alles mitnehmen
$session[user][gold]+=$row[gold];
output("`2Du hast `^$row[gold]`2 Gold genommen. Insgesamt befindet sich jetzt noch `^0`2 Gold im Haus.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `\$nimmt `^$row[gold]`\$ Gold.`0')";
db_query($sql) or die(db_error(LINK));
$session[user][transferredtoday]+=abs($row[gold]/$maxtfer)+1; //
$row[gold]=0;
$sql = "UPDATE houses SET gold=$row[gold] WHERE houseid=$row[houseid]";
db_query($sql) or die(db_error(LINK));
}else { //maximum mitnehmen
$session[user][gold]+=$amt;
$row[gold]-=$amt;
$session[user][transferredtoday]=getsetting("transferreceive",3);
output("`2Du hast `^$amt`2 Gold genommen. Insgesamt befindet sich jetzt noch `^$row[gold]`2 Gold im Haus.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `\$nimmt `^$amt`\$ Gold.`0')";
db_query($sql) or die(db_error(LINK));
$sql = "UPDATE houses SET gold=$row[gold] WHERE houseid=$row[houseid]";
db_query($sql) or die(db_error(LINK));
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET[act]=="takegold"){
$maxtfer = $session[user][level]*getsetting("transferperlevel",25);
if(!$_POST[gold]){
$transleft = getsetting("transferreceive",3) - $session[user][transferredtoday];
output("`2Es befindet sich `^$row[gold]`2 Gold in der Schatztruhe des Hauses.`nDu darfst heute noch $transleft x bis zu `^$maxtfer`2 Gold mitnehmen.`n");
output("`2<form action=\"houseses.php?op=drin&act=takegold\" method='POST'>",true);
output("`nWieviel Gold mitnehmen? <input type='gold' name='gold'>`n`n",true);
output("<input type='submit' class='button' value='Mitnehmen'>",true);
addnav("","houseses.php?op=drin&act=takegold");
}else{
$amt=abs((int)$_POST[gold]);
if($amt>$row[gold]){
output("`2So viel Gold ist nicht mehr da.");
}elseif($maxtfer<$amt){
output("`2Du darfst maximal `^$maxtfer`2 Gold auf einmal nehmen.");
}elseif($amt<0){
output("`2Wenn Du etwas in den Schatz legen willst, versuche nicht, etwas negatives herauszunehmen.");
}elseif($session[user][transferredtoday]>=getsetting("transferreceive",3)){
output("`2Du hast heute schon genug Gold bekommen. Du wirst bis morgen warten müssen.");
}else{
$row[gold]-=$amt;
$session[user][gold]+=$amt;
$session[user][transferredtoday]+=1;
$sql = "UPDATE houses SET gold=$row[gold] WHERE houseid=$row[houseid]";
db_query($sql) or die(db_error(LINK));
output("`2Du hast `^$amt`2 Gold genommen. Insgesamt befindet sich jetzt noch `^$row[gold]`2 Gold im Haus.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `\$nimmt `^$amt`\$ Gold.`0')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET[act]=="givegold"){
$maxout = $session[user][level]*getsetting("maxtransferout",25);
if(!$_POST[gold]){
$transleft = $maxout - $session[user][amountouttoday];
output("`2Du darfst heute noch `^$transleft`2 Gold deponieren.`n");
output("`2<form action=\"houseses.php?op=drin&act=givegold\" method='POST'>",true);
output("`nWieviel Gold deponieren? <input type='gold' name='gold'>`n`n",true);
output("<input type='submit' class='button' value='Deponieren'>",true);
addnav("","houseses.php?op=drin&act=givegold");
}else{
$amt=abs((int)$_POST[gold]);
if ($amt>$session[user][gold]){
output("`2So viel Gold hast Du nicht dabei.");
}elseif($row[gold]>round($goldcost)){
output("`2Der Schatz ist voll.");
}elseif($amt>(round($goldcost)-$row[gold])){
output("`2Du gibst alles, aber Du bekommst beim besten Willen nicht so viel in den Schatz.");
}elseif($amt<0){
output("`2Wenn Du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}elseif($session[user][amountouttoday]+$amt > $maxout){
output("`2Du darfst nicht mehr als `^$maxout`2 Gold pro Tag deponieren.");
}else{
$row[gold]+=$amt;
$session[user][gold]-=$amt;
$session[user][amountouttoday]+= $amt;
output("`2Du hast `^$amt`2 Gold deponiert. Insgesamt befinden sich jetzt `^$row[gold]`2 Gold im Haus.");
$sql = "UPDATE houses SET gold=$row[gold] WHERE houseid=$row[houseid]";
db_query($sql) or die(db_error(LINK));
$sql="INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `@deponiert `^$amt`@ Gold.`0')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET[act]=="takegems"){
if(!$_POST[gems]){
output("`2Es befinden sich `#$row[gems]`2 Edelsteine in der Schatztruhe des Hauses.`n`n");
output("`2<form action=\"houseses.php?op=drin&act=takegems\" method='POST'>",true);
output("`nWieviele Edelsteine mitnehmen? <input type='gems' name='gems'>`n`n",true);
output("<input type='submit' class='button' value='Mitnehmen'>",true);
addnav("","houseses.php?op=drin&act=takegems");
}else{
$amt=abs((int)$_POST[gems]);
if ($amt>$row[gems]){
output("`2So viele Edelsteine sind nicht mehr da.");
}else if ($amt<0){
output("`2Wenn Du etwas in den Schatz legen willst, versuche nicht, etwas negatives herauszunehmen.");
}else{
$row[gems]-=$amt;
$session[user][gems]+=$amt;
$sql = "UPDATE houses SET gems=$row[gems] WHERE houseid=$row[houseid]";
db_query($sql);
output("`2Du hast `#$amt`2 Edelsteine genommen. Insgesamt befinden sich jetzt noch `#$row[gems]`2 Edelsteine im Haus.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `\$nimmt `#$amt`\$ Edelsteine.`0')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET[act]=="givegems"){
if(!$_POST[gems]){
output("`2<form action=\"houseses.php?op=drin&act=givegems\" method='POST'>",true);
output("`nWieviele Edelsteine deponieren? <input type='gems' name='gems'>`n`n",true);
output("<input type='submit' class='button' value='Deponieren'>",true);
addnav("","houseses.php?op=drin&act=givegems");
}elseif($row[gems]>(20*$gemcost)){
output("`2Der Schatz ist voll.");
}else{
$amt=abs((int)$_POST[gems]);
if($amt>$session[user][gems]){
output("`2So viele Edelsteine hast Du nicht.");
}elseif($amt>(20*$gemcost-$row[gems])){
output("`2Du gibst alles, aber Du bekommst beim besten Willen nicht so viel in den Schatz.");
}elseif($amt<0){
output("`2Wenn Du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}else{
$row[gems]+=$amt;
$session[user][gems]-=$amt;
$sql = "UPDATE houses SET gems=$row[gems] WHERE houseid=$row[houseid]";
db_query($sql);
output("`2Du hast `#$amt`2 Edelsteine deponiert. Insgesamt befinden sich jetzt `#$row[gems]`2 Edelsteine im Haus.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'house-".$row[houseid]."',".$session[user][acctid].",'/me `@deponiert `#$amt`@ Edelsteine.`0')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("Zurück zur Schatzkammer","houseses.php?op=drin&act=schatz");
}elseif($_GET['act']=="rename"){
if(!isset($_POST['housename'])){
if(!$rphaus)output("`2Das Haus umbenennen kostet `^$regold`2 Gold und `#$regem`2 Edelstein.`n`n");
else output("`2Das Haus umbenennen kostet `^$rerp`2 Rollenspielpunkte.`n`n");
output("`0<form action=\"houseses.php?op=drin&act=rename\" method='POST'>",true);
output("`nGebe einen neuen Namen für Dein Haus ein: <input name='housename' maxlength='100' onkeyup='document.getElementById(\"vorschau\").innerHTML = appoencode(this.value);' value='",true);
rawoutput(HTMLEntities($row['housename']));
output("'>`n",true);
output("<input type='submit' class='button' value='Umbenennen'><span id='vorschau'></span>",true);
addnav("","houseses.php?op=drin&act=rename");
}else{
if((!$rphaus && ($session['user']['gold']<$regold || $session['user']['gems']<$regem)) || ($rphaus && $rpfree<$rerp)){
output("`2Das kannst Du nicht bezahlen.");
}else{
output("`2Dein Haus `@{$row['housename']}`2 heißt jetzt `@".stripslashes($_POST['housename'])."`2.");
db_query("UPDATE houses SET housename='".$_POST['housename']."' WHERE houseid={$row['houseid']}");
if(!$rphaus){
$session['user']['gold']-=$regold;
$session['user']['gems']-=$regem;
}else $session['user']['rppointsspent']+=$rrp;
}
}
addnav("Im Haus bewegen");
for($i=1;$i<=db_num_rows($modulresult);$i++){
$modulrow = db_fetch_assoc($modulresult);
if($modulrow['type']==8 && $modulrow['type']!=$_GET['type']){
$source=unserialize($modulrow['source']);
if($session['user']['house']==$session['housekey'])addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");
elseif(is_array($source['zugang']) && in_array($session['user']['acctid'],$source['zugang'])){addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");}
}
elseif($modulrow['type']!=$_GET['type']){addnav($modulrow['modulname'],"houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");}
}
}elseif($_GET['act']=="desc"){
if($_GET['type']>0){
$result3=db_query("SELECT modulname,description,type,source FROM housemodule WHERE housenumber=".$session['housekey']." AND type={$_GET['type']}");
$row3=db_fetch_assoc($result3);
}
if(!$_POST['desc']){
output("`2Hier kannst Du die Beschreibung für ".(($_GET['type']>0)?"den Raum \"".$row3['modulname']."\"":"Dein Haus")." ändern.`n`nDie aktuelle Beschreibung lautet:`n`0".(($_GET['type']>0)?$row3['description']:$row['description'])."`0`n");
output("<table><tr><td colspan='2'>`0<form action=\"houseses.php?op=drin&act=desc&type={$_GET['type']}\" method='POST'>`n`2Gebe eine Beschreibung für ".(($_GET['type']>0)?"diesen Raum":"Dein Haus")." ein:`n</td></tr>",true);
rawoutput("<tr><td><textarea name='desc' class='input' maxlength='3000' cols='50' rows='10'>".(($_GET['type']>0)?HTMLEntities($row3['description']):HTMLEntities($row['description']))."</textarea></td></tr>");
output("<tr><td><input type='submit' class='button' value='Abschicken'></td></tr></table>",true);
addnav("","houseses.php?op=drin&act=desc&type={$_GET['type']}");
}else{
output("`2Die Beschreibung wurde geändert.`n`0".stripslashes($_POST[desc])."`2");
if($_GET['type']==0){$sql="UPDATE houses SET description='".addslashes($_POST['desc'])."' WHERE houseid={$row['houseid']}";}
else{
$source=unserialize($row3['source']);
$source['date']=time();
$source['message']=addslashes($session['user']['name'])."`& hat Beschreibung von {$modul[$row3['type']]['modulname']}`& geändert: ".stripslashes($_POST['desc']);
$sql="UPDATE housemodule SET description='".addslashes($_POST['desc'])."', source='".addslashes((serialize($source)))."' WHERE housenumber=".$session['housekey']." AND type={$_GET['type']}";
}
db_query($sql);
}
addnav("Zurück","houseses.php?id={$session['housekey']}&type={$modulrow['type']}&op=drin");
addnav("Sonstiges");
addnav("Schatzkammer","houseses.php?op=drin&act=schatz");
if($session[user]['house']==$session['housekey']){
addnav("Haus umbenennen","houseses.php?op=drin&act=rename");
addnav("Beschreibung ändern","houseses.php?op=drin&act=desc&type={$_GET['type']}");
}
addnav("Log Out","houseses.php?op=drin&act=logout");
addnav("W?Zurück zum Wohnviertel","houseses.php");
addnav("Zurück zum Dorf","village.php");
}elseif($_GET['act']=="logout"){
if($session['user']['housekey']!=$session['housekey']){
db_query("UPDATE items SET hvalue=".$session['housekey']." WHERE value1=".(int)$session['housekey']." AND owner=".$session['user']['acctid']." AND class='Schlüssel'");
}
debuglog("logged out in a house ");
$session['user']['location']=2;
$session['user']['loggedin']=0;
$sql = "UPDATE accounts SET loggedin=0,rpbulb=0,location=2 WHERE acctid = ".$session['user']['acctid'];
db_query($sql) or die(sql_error($sql));
$session=array();
redirect("vote.php");
}elseif($_GET['act']=='privat'){
$sql5 = "SELECT type,source FROM housemodule WHERE housenumber=".$session['housekey']." AND type=8 LIMIT 1";;
$result5 = db_query($sql5) or die(db_error(LINK));
$row5 = db_fetch_assoc($result5);
$source=unserialize($row5[source]);
if((is_array($source[zugang]) && count($source[zugang])==0) || (!is_array($source[zugang]) && count($source[zugang])<=1))$source[zugang]=array($session[user][acctid]);
if($_GET['ac']=='del' && $_GET['ok']>0){
$new=array();
if(is_array($source['zugang'])){
foreach($source['zugang'] AS $ok){
$i++;$where.='acctid='.$ok;
if(in_array($_GET['ok'],$source['zugang']) && $_GET['ok']!=$ok)$new[]=$ok;
}
$source[zugang]=$new;
db_query("UPDATE housemodule SET source='".addslashes(serialize($source))."' WHERE housenumber=".$session[housekey]." AND type=8");
systemmail($_GET[ok],"Zugangswiderruf","{$session['user']['name']} nahm Dir die Berechtigung, seinen privaten Raum weiterhin zu nutzen.");
output("Widerruf erfolgte.");
}else{
output("Die Person hat keinen Zugang gehabt: ID ".$_GET[ok].", source ".serialize($source).", zugang ".serialize($source[zugang]).".");
}
addnav("Zurück","houseses.php?id={$session[housekey]}&type=8&op=drin");
}elseif($_GET[ac]=="change"){
$search="%";
for($i=0;$i<strlen($_POST['tochange']);$i++){
$search.=substr($_POST['tochange'],$i,1)."%";
}
$sql = "SELECT name,acctid FROM accounts WHERE login LIKE '$search' AND acctid<>{$session[user][acctid]}";
$result = db_query($sql);
output("Bestätige den Namen:`n`n");
for($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
if(in_array($row[acctid],$source[zugang])){
output($row['name']." (besitzt bereits eine Berechtigung)`n");
}else{
output("<a href='houseses.php?op=drin&act=privat&ac=change2&acct=".$row[acctid]."'>".$row[name]."</a>`n",true);
}
addnav("","houseses.php?op=drin&act=privat&ac=change2&acct=".$row[acctid]);
}
addnav("zur Übersicht","houseses.php?op=drin&act=privat");
addnav("Zurück","houseses.php?id={$session[housekey]}&type=8&op=drin");
}elseif($_GET[ac]=="change2"){
output("Zugang erfolgte");
$source[zugang][]=$_GET[acct];
db_query("UPDATE housemodule SET source='".addslashes(serialize($source))."' WHERE housenumber=".$session[housekey]." AND type=8");
systemmail($_GET[acct],"Zugang","{$session['user']['name']} gab Dir die Berechtigung, seinen privaten Raum zu nutzen.`n");
addnav("zur Übersicht","houseses.php?op=drin&act=privat");
addnav("Zurück","houseses.php?id={$session[housekey]}&type=8&op=drin");
}else{
output("Deinen Privatraum können nur ausgewählte Personen betreten, er ist also vor neugierigen Blicken absolut geschützt.`n");
output("Du kannst Zugänge jederzeit erlauben und entziehen, das liegt vollkommen in Deinem Ermessen. Dies funktioniert ohne Schlüssel.`n");
output("Eine Erlaubnis, Deinen privaten Raum betreten zu dürfen, haben im Moment:`n");
$where='';$i=0;
if(is_array($source[zugang])){
foreach($source[zugang] AS $ok){
$i++;$where.='acctid='.$ok;
if($i<sizeof($source[zugang]))$where.=' OR ';
}
}else{$where='acctid='.$session[user][acctid];} //Nur sicherhaltshalber
$sql4="SELECT acctid,name FROM accounts WHERE $where";
$result4 = db_query($sql4);
output("<table>",true);
for($i=1;$i<=db_num_rows($result4);$i++){
$ok = db_fetch_assoc($result4);
output("<tr class='".($i%2?"trlight":"trdark")."'><td>".(($session[user][acctid]==$ok[acctid])?"Du selbst":$ok[name])."</td><td>".(($session[user][acctid]==$ok[acctid])?" ":"<a href='houseses.php?op=drin&act=privat&ac=del&ok={$ok['acctid']}' onClick='return confirm(\"Zugang wirklich widerrufen?\");'>Widerrufen</a>")."</td></tr>",true);
addnav("","houseses.php?op=drin&act=privat&ac=del&ok={$ok['acctid']}");
}
output("</table>`n`n",true);
output("Vermisst Du jemanden? Trage den Namen in das folgende Formular und erlaube diesen Jemand so, in Kürze Deine privaten Gemächer zu betreten:`n");
output("<form action='houseses.php?op=drin&act=privat&ac=change' method='post'>
Name: <input type='text' size='10' name='tochange'>
<input type='submit'>
</form>`c",true);
addnav("","houseses.php?op=drin&act=privat&ac=change");
addnav("Zurück","houseses.php?id={$session[housekey]}&type=8&op=drin");
}
}elseif($_GET[act]=='moebel'){
$mtypes=array();
for($k=1;$k<=db_num_rows($modulresult);$k++){
$modulrow=db_fetch_assoc($modulresult);
$mtypes[]=$modulrow['type'];
}
$sql4="SELECT `id`,`name`,`value2` FROM items WHERE value1=$row[houseid] AND class='Möbel' ORDER BY value2";
$result4=db_query($sql4);
$count4=db_num_rows($result4);
if(isset($_POST['send'])){
for($i=1;$i<=$count4;$i++){
$row4=db_fetch_assoc($result4);
db_query("UPDATE items SET value2=".(int)$_POST[$row4['id']]." WHERE id={$row4['id']}");
}
$sql4="SELECT `id`,`name`,`value2` FROM items WHERE value1=$row[houseid] AND class='Möbel' ORDER BY value2";
$result4=db_query($sql4);
$count4=db_num_rows($result4);
}
output("Hier kannst Du all Deine Möbel dorthin umstellen, wo Du sie am liebsten haben magst.");
if($count4>0){
output('<form action="houseses.php?op=drin&act=moebel" method="POST"><table><tr><td bgcolor="#666666">`b`^Möbelstück`0`b</td><td bgcolor="#666666">`b`^Standort`0`b</td></tr>',true);
for($i=1;$i<=$count4;$i++){
$row4=db_fetch_assoc($result4);
output("<tr class='".($i%2?"trlight":"trdark")."'><td>{$row4['name']}</td><td><select name='{$row4['id']}' style='color:#000000;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>",true);
rawoutput("<option value='0'".($row4['value2']==0?" selected":"").">Eingangsbereich</option>");
foreach($mtypes AS $m) rawoutput("<option value='$m'".($row4['value2']==$m?" selected":"").">{$modul[$m]['modulname']}</option>");
rawoutput("</select></td></tr>");
}
rawoutput('</table><input type="submit" name="send" value="Umräumen"></form>');
addnav('','houseses.php?op=drin&act=moebel');
}
else output("`nDu besitzt allerdings keine Möbel. Schau doch einmal bei Aeki oder dem Wanderhändler vorbei. Vielleicht schenkt Dir auch jemand etwas.",true);
addnav("Zurück","houseses.php?op=drin&type=0");
}else{
if($_GET['type']==0){
output("`2`b`c$row[housename]`c`b`n");
if($row[description]) output("`0`c$row[description]`c`n");
output("`2Du und Deine Mitbewohner haben `^$row[gold]`2 Gold und `#$row[gems]`2 Edelsteine im Haus gelagert.`nEs ist jetzt `^".getgametime()."`2 Uhr.`n`n",true);
output("Du stehst im Eingangsbereich, wo möchtest Du hin?");
$sql = "SELECT * FROM items WHERE value1=$row[houseid] AND value2=0 AND class='Möbel' ORDER BY class,id ASC";
//else $sql = "SELECT * FROM items WHERE value1=$row[houseid] AND class='Möbel' ORDER BY class,id ASC";
$result = db_query($sql);
$count=db_num_rows($result);
if($count>0){
output("`n`n`2`bExtra Ausstattung:`b`n");
for ($i=1;$i<=$count;$i++){
$item = db_fetch_assoc($result);
output("`n`&$item[name]:`0`n`i$item[description]`i`n");
}
}
if(db_num_rows(db_query("SELECT id FROM items WHERE owner=$row[owner] AND value1<>$row[houseid] AND hvalue>0 AND class='Schlüssel'"))==0 && db_num_rows(db_query("SELECT acctid FROM accounts WHERE acctid=$row[owner] AND location=2"))>0) output("`n`nDer Eigentümer schläft hier");
}elseif($_GET[type]>0){
$sql3 = "SELECT * FROM housemodule WHERE housenumber=".$session[housekey]." AND type={$_GET[type]}";
$result3 = db_query($sql3) or die(db_error(LINK));
$row3 = db_fetch_assoc($result3);
$bool=true;
if($row3[type]==8){ //Privatraum, prüfe Berechtigung
$source=unserialize($row3[source]);
if($session[user][house]==$session[housekey])addnav($modulrow[modulname],"houseses.php?id={$session[housekey]}&type={$modulrow[type]}&op=drin");
if(is_array($source[zugang]) && $session[user][house]!=$session[housekey]){if(!in_array($session[user][acctid],$source[zugang]))$bool=false;}
if($session[user][house]==$session[housekey])addnav("Zugang verwalten","houseses.php?op=drin&act=privat");
if($session[user][house]==$session[housekey])$bool=true;
}
if($bool==true){
output("`2`b`c$row[housename]`c`b`n");
//$floor=($row3[floor]==0)?"Erdgeschoss":$row3[floor]."te Etage";
output("`2`b`c$row3[modulname]`c`b`n");
if($row3[description]) output("`0`c$row3[description]`c`n");
viewcommentary("house-".$row[houseid]."-".$_GET[type]."-","",30,"sagt");
$sql = "SELECT * FROM items WHERE value1={$row['houseid']} AND value2={$_GET['type']} AND class='Möbel' ORDER BY id ASC";
$result = db_query($sql);
$count=db_num_rows($result);
if($count>0){
output("`n`n`2`bAusstattung:`b`n");
for ($i=1;$i<=$count;$i++){
$item = db_fetch_assoc($result);
output("`n`&$item[name]:`0`n`i$item[description]`i`n");
}
}
}else{output("Du bist nicht berechtigt, diesen Raum überhaupt sehen zu können.");}
}
//Zum Schluss noch die addnavs
addnav("Im Haus bewegen");