LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
// Zimmer.php - Hier kommen die Zimmer-Klassen der Module für das Wohnviertel hinein.
// Die als "Basismodul" gekennzeichneten Klasen sollten nie entfernt werden - sie gehören zur Ausgangsversion!
// Die Daten des aktuellen Hauses sind immer über $haus verfügbar!
// Mit $this->back lässt sich die Navigation vereinfachen
define('KINDER',(bool) getsetting("kindermod",false)); // Wenn Kindermod installiert ist bitte in der nhmaster auf aktiv stellen!
class zimmer {
// MASTER-KLASSE - NUR VERÄNDERN WENN IHR EUCH WIRKLICH SICHER SEID!!!
var $id, $name, $level, $label, $linker, $aktiv;
var $gold = 0;
var $gems = 0;
function einlesen($daten) {
$this->id = $daten['zimmerid'];
$this->name = $daten['name'];
$this->linker = $daten['link'];
$this->label = $daten['label'];
$this->level = $daten['level'];
$this->aktiv = $daten['aktiv'];
$this->gold = $daten['gold'];
$this->gems = $daten['gems'];
if(empty($this->level)) $this->level = 0;
} // Ende Funktion
function finddata($id) {
$sql = "SELECT * FROM `zimmer` WHERE zimmerid = ".$id." LIMIT 1";
$result = db_query($sql) or die(db_error(LINK));
$this->einlesen(db_fetch_assoc($result));
} // Ende Funktion
function adminausgabe() {
$ausgabe = "<form action='nhmaster.php?op=zimmerweiter&zimmer=".$this->id."' method='POST'>\n";
$ausgabe .= "<table cellspacing=4 cellpadding=2><tr class='trhead'><td>Eigenschaft</td><td>Wert/Inhalt</td></tr>";
$ausgabe .= "<tr class='trdark'><td>ID - Unveränderbar!</td><td><div style='background-color=black; color=white; border=1px #CCCCCC solid;'>".$this->id."</div></td></tr>\n";
$ausgabe .= "<tr class='trlight'><td>Name - Unveränderbar!</td><td><div style='background-color=black; color=white; border=1px #CCCCCC solid;'>".$this->name."</div></td></tr>\n";
$ausgabe .= "<tr class='trdark'><td>Link</td><td><input name='linker' size='40' value='".$this->linker."'></td></tr>\n";
$ausgabe .= "<tr class='trlight'><td>Label</td><td><input name='label' size='32' maxlength='32' value='".$this->label."'></td></tr>\n";
$ausgabe .= "<tr class='trdark'><td>Level</td><td><input name='level' size='3' value='".$this->level."'></td></tr>\n";
$ausgabe .= "<tr class='trlight'><td>Aktiv</td><td><select name='aktiv'>\n<option ".($this->aktiv?"selected":"")." value='1'>Ja</option><option ".(!$this->aktiv?"selected":"")." value='0'>Nein</option></select></td></tr>\n";
$ausgabe .= "<tr class='trdark'><td>Gold-Baukosten</td><td><input name='gold' size='6' maxlength='7' value='".$this->gold."'></td></tr>\n";
$ausgabe .= "<tr class='trlight'><td>Gems-Baukosten</td><td><input name='gems' size='3' maxlength='4' value='".$this->gems."'></td></tr>\n";
$ausgabe .= "<tr><td><input type='submit' value='Abschicken'></td><td><input type='reset' value='Zurücksetzten'></td></tr>\n";
$ausgabe .= "</table></form>\n";
addnav("","nhmaster.php?op=zimmerweiter&zimmer=".$this->id);
return $ausgabe;
}
} // Ende Klasse
class office extends zimmer {
// Büro zur Überwachung der Schlüssel etc.
// Basismodul!
var $back;
// Konstruktor
function office() {
$this->back ="nhouses.php?op=drin&go=".$_GET['go'];
switch($_GET['act']) {
case "upgrade": $this->upgrade(); break;
case "goupgrade": $this->goupgrade(); break;
case "takekey": $this->takekey(); break;
case "givekey": $this->givekey(); break;
case "rename": $this->benennen(); break;
case "desc": $this->desc(); break;
case "zimmerdrin":$this->zimmerdrin(); break;
case "zimmerbau": $this->zimmerbau(); break;
case "abbau": $this->abbau(); break;
case "verkauf": redirect("nhouses.php?op=verkaufen"); break;
default: $this->basis();
} // Ende Switch
} // Ende Konstruktor
// Methoden
function basis() {
global $session, $haus;
if ($session['user']['acctid']==$haus->besitzerid){
output("`B`b`c".$haus->name."`b, `Bein ".$haus->level->name."`&`n`n `b`BD`}e`Ain Arbeitszimm`}e`Br`b `n`n`c`");
output("`ZD`au`A g`}e`Bhst in dein Arbeitszimmer. Ein großer Schreibtisch steht inmitten des Raumes. Dahinter ein großer bequemer Sessel.`n");
output("Sogleich setzt du dich hinein, siehst die Post durch und erledigst sonstige Verwaltungangelegenheiten des Ha`}u`As`ae`Zs`n`n");
output("`b`ZS`ac`Ah`}a`Btzübersicht:`b `^Gold: ".$haus->gold." `Bvorhanden, noch Platz für `^".schatz::goldleft()."`B;");
output("`#Edelsteine: ".$haus->gems." `Bvorhanden, noch Platz für `#".schatz::gemsleft()."`B`n`n");
output("`ZI`an`A d`}e`Binem Haus befinden sich insgesammt `^".count($haus->ausbauten)."`B zusätzliche Zimmer - auf der aktuellen Stufe kannst du also noch `^");
output($haus->level->zimmer - (count($haus->ausbauten))."`B weitere Zimmer anbauen. `i`6(".count($haus->ausbauten)." von ".$haus->level->zimmer.")`i`0`n`n");
$chat="Mit deinen Mietern besprechen";
addnav("Das Haus");
addnav("`BH`}a`Aus ausbau`}e`Bn",$this->back."&act=upgrade");
addnav("`BH`}a`Aus umbenenn`}e`Bn",$this->back."&act=rename");
addnav("`}Be`Aschreibung ände`}r`Bn",$this->back."&act=desc");
addnav("`BH`}a`Aus verkauf`}e`Bn",$this->back."&act=verkauf");
addnav("Die Zimmer");
if(count($haus->ausbauten) > 0) addnav("`BA`}n`Agebaute Zimm`}e`Br",$this->back."&act=zimmerdrin");
if(count($haus->ausbauten) < $haus->level->zimmer) addnav("`BZ`}i`Ammer anbau`}e`Bn",$this->back."&act=zimmerbau");
addnav("Die Bewohner");
addnav("`BE`}i`Anlad`}e`Bn",$this->back."&act=givekey");
addnav("`BH`}e`Arauswerf`}e`Bn",$this->back."&act=takekey");
}else{
output("`B`b`c".$haus->name."`b, `Bein ".$haus->level->name."`n `b`ZD`aa`As`} A`Brbeitszimmer des Hausbesit`}z`Ae`ar`Zs.`b `c`");
output("`ZD`au`A g`}e`Bhst in dein Arbeitszimmer. Ein großer Schreibtisch steht inmitten des Raumes. Dahinter ein großer bequemer Se`}s`As`ae`Zl.`n");
output("`ZM`ai`At`} N`Beid siehst du dich um. Dein Vermieter sitzt auf dem Sessel hinter dem Schreibtisch und sieht von einem Pergament auf, das er gerade gelese`}n `Ah`aa`Zt");
$chat="`ZM`ai`At`} d`Bem Hausbesitzer bespre`}c`Ah`ae`Zn";
}
viewcommentary("office-".$haus->id,"$chat:",30,"meint");
output("`n`n`n<table border='0'><tr><td>`2`bDie Schlüssel:`b `0</td></tr><tr><td valign='top'>",true);
$sql = "SELECT items.*,accounts.acctid AS aid,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1=".$haus->id." AND class='Schlüssel' ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
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']==$haus->besitzerid) output(" (`ZD`ae`Ar`} E`Bigentümer) ");
if ($item['hvalue']>0 && $item['owner']>0) output(" `ischläft `}h`Ai`ae`Zr`i");
}
output("</td><tr></table>",true);
addnav("Im Haus");
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funktion
function zimmerdrin() {
global $haus;
output("`ZI`an`A d`}e`Binem Haus befinden sich `^".count($haus->ausbauten)."`B zusätzliche Zimmer - auf der aktuellen Stufe kannst du also noch `^");
output($haus->level->zimmer - (count($haus->ausbauten))."`B weitere Zimmer anb`}a`Au`ae`Zn. `i`6(".count($haus->ausbauten)." von ".$haus->level->zimmer.")`i`0`n");
output("`ZF`ao`Al`}g`Bende Zimmer sind bereits in diesem Haus gebaut:`0`n`n");
output("<table border='1' cellspacing='2' cellpadding='2' align='center'><tr class='trhead'>
<td>Nr</td><td>Name</td><td>Ab Level</td><td>Gold</td><td>Gems</td><td>ops</td></tr>",true);
foreach($haus->ausbauten as $key=>$val) {
$zimmer = new zimmer;
$zimmer->finddata($val);
$b = ($key%2==0?"trlight":"trdark");
$c = ($key%2==0?"`9":"`^");
output("<tr class='$b'><td>$c".$val."</td><td>$c".$zimmer->label."</td><td>$c".$zimmer->level."</td><td>$c".$zimmer->gold."</td><td>$c"
.$zimmer->gems."</td><td><a href='".$this->back."&act=abbau&zid=".$zimmer->id."'>entfernen</td></tr>",true);
addnav("",$this->back."&act=abbau&zid=".$zimmer->id);
}
output("</table>",true);
if(count($haus->ausbauten) < $haus->level->zimmer) addnav("`BZ`}i`Ammer anbau`}e`Bn",$this->back."&act=zimmerbau");
addnav("`BZ`}u`Arück ins Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function zimmerbau() {
global $haus, $session;
if(empty($_GET['bau'])) {
$sql = "SELECT * FROM `zimmer` WHERE aktiv = 1 ";
for($i=0;$i< count($haus->ausbauten);$i++) {
$sql .= "AND `zimmerid` <> ".$haus->ausbauten[$i]." ";
} // Ende FOR
$result = db_query($sql) or die(db_error(LINK));
if(db_num_rows($result) > 0) {
output("`ZF`ao`Al`}g`Bende Zimmer können noch angebaut werden:`n`n`0");
output("<table border='1' cellspacing='2' cellpadding='2' align='center'><tr class='trhead'><td>Nr</td><td>Name</td><td>Gold</td><td>Gems</td><td>Ops</td></tr>",true);
//output("<table border='1' cellspacing='2' cellpadding='2' align='center'><tr class='trhead'><td>Nr</td><td>Name</td><td>Ops</td></tr>",true);
for($i=0;$i < db_num_rows($result);$i++) {
$row = db_fetch_assoc($result);
$zimmer = new zimmer;
$zimmer->einlesen($row);
$b = ($i%2==0?"trlight":"trdark");
$c = ($i%2==0?"`9":"`^");
output("<tr class='$b'><td>$c".$zimmer->id."</td><td>$c".$zimmer->label."</td><td>$c".$zimmer->gold."</td><td>$c".$zimmer->gems."</td><td><a href='".$this->back."&act=zimmerbau&bau=true&zid=".$zimmer->id."'>Bau</a></td></tr>",true);
//output("<tr class='$b'><td>$c".$zimmer->id."</td><td>$c".$zimmer->label."</td><td><a href='".$this->back."&act=zimmerbau&bau=true&zid=".$zimmer->id."'>Bau</a></td></tr>",true);
addnav("",$this->back."&act=zimmerbau&bau=true&zid=".$zimmer->id);
} // Ende FOR
output("</table>",true);
} else {
output("`ZE`as`A s`}t`Behen keine weiteren Ausbauten zur Verfü`}g`Au`an`Zg.");
} // Ende ELSE
} else {
$zimmer = new zimmer;
$zimmer->finddata($_GET['zid']);
if($session['user']['gold'] >= $zimmer->gold && $session['user']['gems'] >= $zimmer->gems) {
output("`ZD`au`A b`}a`Bust das Zimmer ".$zimmer->label." `Bin dein Haus `}e`Ai`an`Z!`n");
if($zimmer->gold == 0 && $zimmer->gems == 0) {
output("`ZD`aa`A d`}i`Beses Zimmer kostenlos ist, musst du nichts bezah`}l`Ae`an`Z!");
} else {
output("`ZD`aa`Af`}ü`Br bezahlst du `^".$zimmer->gold." `BGoldstücke und `#".$zimmer->gems."`B Edelsteine`0`n");
$session['user']['gold'] -= $zimmer->gold;
$session['user']['gems'] -= $zimmer->gems;
}
$haus->ausbauten[(count($haus->ausbauten)+1)] = $zimmer->id;
} else {
output("`ZD`au`A h`}a`Bst leider nicht genügend Gold und/oder Edelsteine, um dieses Zimmer zu ba`}u`Ae`an`Z!`0");
} // Ende ELSE
} // Ende ELSE
addnav("`BZ`}u`Arück ins Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function abbau() {
global $haus;
if(empty($_GET['zid'])) redirect($this->back);
if($_GET['validate'] == 'ja') {
$zimmer = new zimmer;
$zimmer->finddata($_GET['zid']);
output("`ZD`aa`As`} Z`Bimmer `#\"".$zimmer->label."\" `Bwird nun entf`}e`Ar`an`Zt.");
$key = array_search($_GET['zid'],$haus->ausbauten);
unset($haus->ausbauten[$key]);
} else {
$zimmer = new zimmer;
$zimmer->finddata($_GET['zid']);
output("`ZM`aö`Ac`}h`Btest du das Zimmmer `#\"".$zimmer->label."\" `Bwirklich aus deinem Haus entfernen? Alle investierten Mittel gehen dann verlo`}r`Ae`an`Z!");
addnav("`BA`}k`Ation`}e`Bn");
addnav("`BJ`}a,`A entferne`}n`B!",$this->back."&act=abbau&zid=".$_GET['zid']."&validate=ja");
}
addnav("`BZ`}u`Arü`}c`Bk");
addnav("`BA`}r`Abeitszimm`}e`Br",$this->back);
} // Ende Funktion
function desc() {
global $haus;
if (!$_POST['desc']){
output("`ZH`ai`Ae`}r`B kannst du die Beschreibung für dein Haus ändern.`n`nDie aktuelle Beschreibung lautet:`0".$haus->text."`0`n");
output("`0<form action='".$this->back."&act=desc' method='POST'>",true);
output("`n`ZG`ae`Ab`}e`B eine Beschreibung für dein Haus ein:`n<input name='desc' maxlength='250' size='50'>`n",true);
output("<input type='submit' class='button' value='Abschicken'>",true);
addnav("",$this->back."&act=desc");
}else{
output("`ZD`ai`Ae`} B`Beschreibung wurde geändert.`n`0".stripslashes($_POST['desc'])."`2.");
$haus->text = $_POST['desc'];
}
addnav("`BZ`}u`Arück ins Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function benennen() {
global $session, $haus;
if (!$_POST['housename']){
output("`ZD`aa`As`} H`Baus umbenennen kostet `^1000`2 Gold und `#1`2 Edelstein.`n`n");
output("`0<form action='".$this->back."&act=rename' method='POST'>",true);
output("`ZG`ae`Ab`}e`B einen neuen Namen für dein Haus ein: <input name='housename' maxlength='25'>`n",true);
output("<input type='submit' class='button' value='Umbenennen'>",true);
addnav("",$this->back."&act=rename");
}else{
if ($session['user']['gold']<1000 || $session['user']['gems']<1){
output("`ZD`aa`As`} k`Bannst du nicht beza`}h`Al`ae`Zn.");
}else{
output("`ZD`ae`Ai`}n`B Haus `@".$haus->name."`B heißt jetzt `@".stripslashes($_POST['housename'])."`B.");
$haus->name = $_POST['housename'];
$session['user']['gold']-=1000;
$session['user']['gems']-=1;
}
}
addnav("`BZ`}u`Arück zum Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function upgrade() {
global $session, $haus;
output("`c`b`BH`}a`Ausausb`}a`Bu`b`c`n");
output("`ZD`ae`Ai`}n`B Haus hat das Level:`$ ".$haus->level->level."`B, damit ist es ein ".$haus->level->name."!`n");
if($haus->level->level < ausbaustufe::levels()) {
$next = new ausbaustufe($haus->level->level + 1);
output("`ZD`ae`Ar`} n`Bächste Ausbau würde also`$ ".$next->gold."`B Gold und `$ ".$next->gems." `BEdelsteine kosten.`n");
if($session['user']['gold']>=$next->gold && $session['user']['gems']>=$next->gems) {
output("`ZD`au`A h`}a`Bst genug `^Gold und `^Edelsteine`B dabei, um dein Haus auf Stufe`$ ".$next->name." `Bauszuba`}u`Ae`an`Z!");
addnav("`ZA`au`As`}b`Bau auf Stufe ".$next->level,$this->back."&act=goupgrade&von=user");
} else {
output("`ZA`ab`Ae`}r`B leider hast du nicht genug d`}a`Ab`ae`Zi.");
}
if($haus->gold >= $next->gold && $haus->gems >= $next->gems) {
output("`n`n`ZD`ae`As`} w`Beiteren wären im Haus genügend Goldstücke und Edelsteine, um den Ausbau zu finanzi`}e`Ar`ae`Zn.`n");
addnav("`ZA`au`As`}b`Bau auf Stufe".$next->level." aus dem Hausschatz",$this->back."&act=goupgrade&von=haus");
} else {
output("`n`n`ZD`ae`As`} w`Beiteren wären im Haus leider nicht genügend Goldstücke und Edelst`}e`Ai`an`Ze.`n");
}
} else {
output(" `b`ZD`aa`Am`}i`Bt hat es bis auf weiteres das maximale Level errei`}c`Ah`at`Z!`b");
}
addnav("`BZ`}u`Arück ins Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function goupgrade() {
global $session, $haus;
$next = new ausbaustufe($haus->level->level + 1);
$addkeys=$next->keys - $haus->level->keys;
output("`ZD`ae`Ai`}n`B Haus wurde auf die Stufe`$ ".$next->name." `Bausgebaut.`nEs hat jetzt neue Funktio`}n`Ae`an`Z!`n");
output("`ZN`au`An`} k`Bannst du zusätzlich ".($next->zimmer - $haus->level->zimmer)." weitere Zimmer anba`}u`Ae`an`Z!`n`n");
output("`ZA`au`Aß`}e`Brdem bekommst du`$ ".$addkeys." `Bneue Schlüs`}s`Ae`al`Z!`n");
if($_GET['von']=="haus") {
output("`ZD`au`A b`}e`Bzahlst die Kosten direkt aus dem Haussc`}h`Aa`at`Zz.");
$haus->gold -= $next->gold;
$haus->gems -= $next->gems;
} else {
output("`ZD`au`A b`}e`Bzahlst die Kosten von dem Vermögen, das du bei dir tr`}ä`Ag`as`Zt.");
$session['user']['gold']-=$next->gold;
$session['user']['gems']-=$next->gems;
}
for ($i=$haus->level->keys+1;$i < $next->keys;$i++){
$sql = "INSERT INTO items (name,owner,class,value1,value2,gold,gems,description) VALUES ('Hausschlüssel',".$haus->besitzerid.",'Schlüssel',".$haus->id.",".$i.",0,0,'Schlüssel für Haus Nummer ".$haus->id."')";
db_query($sql);
if (db_affected_rows(LINK)<=0) output("`\$Fehler`^: Dein Inventar konnte nicht aktualisiert werden! Bitte benachrichtige den Admin. ");
}
$haus->levelup();
addnav("`BZ`}u`Arück ins Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function takekey() {
global $session;
global $haus;
if (!$_POST['ziel']){
$sql = "SELECT items.*,accounts.acctid AS aid,accounts.login AS itembesitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1=".$haus->id." AND class='Schlüssel' ORDER BY id ASC";
$amt = "";
// $sql = "SELECT owner FROM items WHERE value1=".$haus->id." AND class='Schlüssel' ORDER BY value2 ASC";
$result = db_query($sql) or die(db_error(LINK));
output("<form action='".$this->back."&act=takekey' method='POST'>",true);
output("`ZW`ae`Am`} w`Billst du den Schlüssel wegneh`}m`Ae`an`Z? <select name='ziel'>",true);
for ($i=0;$i<db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
// $sql = "SELECT acctid,name,login FROM accounts WHERE acctid=".$item['owner']." ORDER BY login DESC";
// $result = db_query($sql) or die(db_error(LINK));
// $row = db_fetch_assoc($result);
if ($amt != $item['aid'] && $item['aid'] != $haus->besitzerid)
output("<option value=\"".rawurlencode($item['itembesitzer'])."\">".preg_replace("'[`].'","",$item['itembesitzer'])."</option>",true);
$amt = (int)$item['aid'];
}
output("</select>`n`n",true);
output("<input type='submit' class='button' value='Schlüssel abnehmen'></form>",true);
addnav("",$this->back."&act=takekey");
}else{
$sql = "SELECT acctid,name,login,gold,gems FROM accounts WHERE login='".$_POST['ziel']."' AND locked=0";
$result = db_query($sql);
$row = db_fetch_assoc($result);
output("`ZD`au`A v`}e`Brlangst den Schlüssel von `&".$row['name']."`B zu`}r`Aü`ac`Zk.`n");
//$sql = "SELECT owner FROM items WHERE value1=".$haus->id." AND class='Schlüssel' AND owner<>.".$haus->besitzer." ORDER BY id ASC";
//$result = db_query($sql) or die(db_error(LINK));
$goldgive=round($haus->gold/(db_num_rows($result)+1));
$gemsgive=round($haus->gems/(db_num_rows($result)+1));
systemmail($row['acctid'],"`ZS`ac`Ah`}l`Büssel zurückverlangt!`0","`&".$session['user']['name']."`B hat den Schlüssel zu Haus Nummer `b".$haus->id."`b (".$haus->name."`B) zurückverlangt. Du bekommst `^".$goldgive."`B Gold auf die Bank und `#".$gemsgive."`B Edelsteine aus dem gemeinsamen Schatz ausbeza`}h`Al`at`Z!");
output($row['name']."`B bekommt `^".$goldgive."`B Gold und `#".$gemsgive."`B Edelsteine aus dem gemeinsamen Sc`}h`Aa`at`Zz.");
$sql = "UPDATE items SET owner=".$haus->besitzerid.",hvalue=0 WHERE owner=".$row['acctid']." AND class='Schlüssel' AND value1=".$haus->id;
db_query($sql);
$sql = "UPDATE accounts SET goldinbank=goldinbank+$goldgive,gems=gems+$gemsgive WHERE acctid=".$row['acctid'];
db_query($sql);
$haus->gold -= $goldgive;
$haus->gems -= $gemsgive;
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'office-".$haus->id."',".$session['user']['acctid'].",'/me `^nimmt ".$row['name']."`^ einen Schlüssel ab. ".$row['name']."`^ bekommt einen Teil aus dem Schatz.')";
db_query($sql) or die(db_error(LINK));
}
addnav("`BZ`}u`Arück zum Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
function givekey() {
global $session, $haus;
if (!$_POST['ziel']) {
output("`ZE`ai`An`}e`Bn Schlüssel für dieses Haus hat:`n`n");
$sql = "SELECT items.*,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1=".$haus->id." AND class='Schlüssel' AND owner<>".$session['user']['acctid']." ORDER BY value2 ASC";
$result = db_query($sql) or die(db_error(LINK));
for ($i=0;$i < db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
output("`c`& ".$item['besitzer']."`0`c");
}
$sql = "SELECT value2 FROM items WHERE value1=".$haus->id." AND class='Schlüssel' AND owner=".$haus->besitzerid." ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>0) {
output("`n`ZD`au`A k`}a`Bnnst noch `b".db_num_rows($result)."`b Schlüssel verg`}e`Ab`ae`Zn.");
output("<form action='".$this->back."&act=givekey' method='POST'>",true);
output("`ZA`an`A w`}e`Bn willst du einen Schlüssel übergeben? <input name='ziel'>`n", true);
output("<input type='submit' class='button' value='Übergeben'></form>",true);
output("`n`n`ZW`ae`An`}n`B du einen Schlüssel vergibst, wird der Schatz des Hauses gemeinsam genutzt. Du kannst einem Mitbewohner zwar jederzeit den Schlüssel wieder wegnehmen, ");
output("aber er wird dann einen gerechten Anteil aus dem gemeinsamen Schatz beko`}m`Am`ae`Zn.");
addnav("",$this->back."&act=givekey");
}else{
output("`n`ZD`au`A h`}a`Bst keine Schlüssel mehr übrig. Vielleicht kannst du in der Jägerhütte noch einen nachmachen las`}s`Ae`an`Z?");
}
} else {
if ($_GET['subfinal']==1){
$sql = "SELECT acctid,name,login,lastip,emailaddress,dragonkills,level,sex 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,dragonkills,level,sex FROM accounts WHERE name LIKE '".addslashes($name)."' AND locked=0";
}
$result = db_query($sql);
if (db_num_rows($result) == 0) {
output("`ZE`as`A g`}i`Bbt niemanden mit einem solchen Namen. Versuchs noc`}h`Am`aa`Zl.");
} elseif(db_num_rows($result) > 100) {
output("`ZE`as`A g`}i`Bbt über 100 Krieger mit einem ähnlichen Namen. Bitte sei etwas gen`}a`Au`ae`Zr.");
} elseif(db_num_rows($result) > 1) {
output("`ZE`as`A g`}i`Bbt mehrere mögliche Krieger, denen du einen Schlüssel übergeben ka`}n`An`as`Zt.`n");
output("<form action='".$this->back."&act=givekey&subfinal=1' method='POST'>",true);
output("`ZW`ae`An`} g`Benau meinst du? <select name='ziel'>",true);
for ($i=0;$i < db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
output("<option value=\"".rawurlencode($row['name'])."\">".preg_replace("'[`].'","",$row['name'])."</option>",true);
}
output("</select>`n`n",true);
output("<input type='submit' class='button' value='Schlüssel übergeben'></form>",true);
addnav("",$this->back."&act=givekey&subfinal=1");
} else {
$row = db_fetch_assoc($result);
$sql = "SELECT owner FROM items WHERE owner=".$row['acctid']." AND value1=".$haus->id." AND class='Schlüssel' ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
if ($row['login'] == $session['user']['login']) {
output("`ZD`au`A k`}a`Bnnst dir nicht selbst einen Schlüssel g`}e`Ab`ae`Zn.");
} elseif ($item['owner']==$haus->besitzerid) {
output("`2".$row['name']."`B hat bereits einen Schlüs`}s`Ae`al`Z!");
} elseif ($row['level']<5 && $row['dragonkills']<1){
output("`2".$row['name']."`B ist noch nicht lange genug um Dorf, als dass du ".($row['sex']?"ihr":"ihm")." vertrauen könntest. Also beschließt du, noch eine Weile zu beobac`}h`At`ae`Zn.");
} else {
$sql = "SELECT value2 FROM items WHERE value1=".$haus->id." AND class='Schlüssel' AND owner=".$haus->besitzerid." ORDER BY id ASC LIMIT 1";
$result = db_query($sql) or die(db_error(LINK));
$knr = db_fetch_assoc($result);
$knr=$knr['value2'];
output("`ZD`au`A ü`}b`Bergibst `&".$row['name']."`B einen Schlüssel für dein Haus. Du kannst den Schlüssel zum Haus jederzeit wieder wegnehmen, aber ".$row['name']."`B wird dann ");
output("einen gerechten Anteil aus dem gemeinsamen Schatz des Hauses beko`}m`Am`ae`Zn.`n");
systemmail($row['acctid'],"`BSchlüssel erhalten!`0","`&".$session['user']['name']."`B hat dir einen Schlüssel zu Haus Nummer `b".$haus->id."`b (".$haus->name."`B) gegeben!");
$sql = "UPDATE items SET owner=".$row['acctid'].",hvalue=0 WHERE owner=".$haus->besitzerid." AND class='Schlüssel' AND value1=".$haus->id." AND value2=$knr";
db_query($sql);
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'office-".$haus->id."',".$session['user']['acctid'].",'/me `Bgibt ".$row['name']."`B einen Schlüssel.')";
db_query($sql) or die(db_error(LINK));
}
}
}
addnav("`BZ`}u`Arück zum Arbeitszimm`}e`Br",$this->back);
} // Ende Funktion
} // Ende Klasse
class schlafzimmer extends zimmer {
// Das Schlafzimmer - verbinge Zeit mit einem Partner oder logge dich einfach sicher aus.
// Basisklasse!
var $back;
// Konstruktor
function schlafzimmer() {
$this->back ="nhouses.php?op=drin&go=".$_GET['go'];
switch($_GET['act']) {
case 'logout': $this->logout(); break;
default: $this->basis(); break;
} // Ende Switch
} // Ende Funktion
function logout() {
global $session;
if ($session['user']['housekey']!=$session['housekey']){
$sql = "UPDATE items SET hvalue=".$session['housekey']." WHERE value1=".(int)$session['housekey']." AND owner=".$session['user']['acctid']." AND class='Schlüssel'";
db_query($sql) or die(sql_error($sql));
}
debuglog("logged out in a house");
$session['user']['location']=2;
$session['user']['loggedin']=0;
$sql = "UPDATE accounts SET loggedin=0,location=2 WHERE acctid = ".$session['user']['acctid'];
db_query($sql) or die(sql_error($sql));
$session=array();
redirect("index.php");
} // Ende Funktion
function basis() {
global $haus, $session;
output("`B`b`c".$haus->name."`b, `Bein ".$haus->level->name."`B`n`n `b`BD`}e`Ai`an Schlafzim`Am`}e`Br`b`c`n");
if($session['user']['marriedto']>0){
$lover = lover('name`, `acctid`, `login');
output("`ZD`au`A b`}e`Btrittst das Schlafzimmer von `^".$lover['name']."`B und dir.`n Ein großes Bett steht im Raum, sowie einige Schränke und andere Alltagsgegenstände.");
output("Aber im allgemeinen ist diese Zimmer gemütlicher eingerichtet, als der Rest des Hauses, um ein paar schöne Stunden zu zweit verbringen zu kö`}n`An`ae`Zn");
if($session['user']['sex']==0) {
$male=$session['user']['acctid'];
$female=$lover['acctid'];
} else {
$male=$lover['acctid'];
$female=$session['user']['acctid'];
}
$gesammt="haus-".$haus->id."privat-".$male."_".$female;
//############################## Kindermod-Bereich ##############################//
if(KINDER===true) { // Entsprechende Konstante wird ganz oben definiert!
switch($_GET['act']) {
case 'geschuetzt':
$lover = lover('name`, `sex');
output("`ZA`al`As ".$lover['name']. "`B, eigentlich nur für kurz, in euren Schlafgemächern vorbei schaut ziehst Du ".($lover['sex']?'sie':'ihn')." ins Bett und ihr liebt euch den ganzen restlichen Tag heiss und innig.");
output("`nIhr bleibt schmussend noch ein wenig li`}e`Ag`ae`Zn.`n`n");
break;
case 'kind':
$lover = lover('*');
if($session['user']['sex'] != $lover['sex']) $kindokay = true;
else $kindokay = false;
if($session['user']['superuser'] >= 2) $session['user']['sexheute'] = 0;
if($session['user']['sexheute'] + $lover['sexheute'] < 6) {
debuglog("`Bhatte mit " . $lover['acctid'] . "-" . $lover['name'] . " sex.");
if($lover['acctid'] < $session['user']['acctid']) {
$spielera = $lover['acctid'];
$spielerb = $session['user']['acctid'];
} else {
$spielera = $session['user']['acctid'];
$spielerb = $lover['acctid'];
}
$sqlsex = "SELECT * FROM sexwermitwem WHERE spielera = $spielera AND spielerb = $spielerb";
$resultsex = db_query($sqlsex) or die(db_error(LINK));
if($rowsex = db_fetch_assoc($resultsex))
$sqlsex = "UPDATE sexwermitwem SET sexzahl = sexzahl + 1 WHERE spielera = ".$spielera." AND spielerb = ".$spielerb;
else
$sqlsex = "INSERT INTO sexwermitwem VALUES($spielera, $spielerb, 1)";
db_query($sqlsex) or die(db_error(LINK));
if($kindokay) {
if($session['user']['sex'])
$empf = $session['user']['ssempf'];
else
$empf = $lover['ssempf'];
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'$gesammt', ".$session['user']['acctid'].",'/me `&hat mit ".$lover[name]." `&geschlafen.')";
$result = db_query($sql) or die(db_error(LINK));
if($session['user'][ssstatus] == 0 && $lover[ssstatus] == 0) {
if(e_rand()%9 == $empf)
$schwanger = true;
else
if(e_rand()%9 == $empf)
$schwanger = true;
else
$schwanger = false;
}
} else {
$sql = "INSERT INTO commentary values(0, 'inn-" . $_GET[sop] . "', " . $session['user']['acctid'] . ", '/me `Bhat mit " . $lover[name] . " `Bgeschlafen',now())";
$result = db_query($sql) or die(db_error(LINK));
}
$session['user']['sexheute']++;
$session['user']['charm'] += 1;
$sql2 = "UPDATE accounts set charm = charm + 1, sexheute = sexheute + 1 WHERE acctid ='".$lover['acctid']."'";
db_query($sql2) or die(db_error(LINK));
if($schwanger) {
if($session['user']['sex']) {
// frau
debuglog("`Bist von " . $lover['acctid'] . "-" . $lover['name'] . " schwanger");
$session['user']['ssstatus'] = 1;
$session['user']['sstritte'] = 0;
$session['user']['ssmonat'] = 19;
$session['user']['sserzeug'] = $lover['acctid'];
$sql2 = "UPDATE accounts set charm = charm + 10 WHERE acctid=".$lover['acctid'];
db_query($sql2) or die(db_error(LINK));
$session['user']['charm'] += 10;
} else {
debuglog("hat " . $lover['acctid'] . "-" . $lover['name'] . " geschwängert");
$sql2 = "UPDATE accounts set charm = charm + 10, ssstatus = 1, ssmonat = 19, sstritte = 0, sserzeug = " . $session['user']['acctid'] . " WHERE acctid='".$lover['acctid']."'";
db_query($sql2) or die(db_error(LINK));
$session['user']['charm'] += 10;
}
}
if($session['user']['superuser'] > 2) {
$bufflist = unserialize(stripslashes($lover['bufflist']));
$bufflist['goettlichersex'] = array("name"=>"`%Göttliches Andenken","rounds"=>100,"wearoff"=>"Die Errinerung verfliegt für heute!","atkmod"=>1.75,"roundmsg"=>"`ZD`au`A d`}e`Bnkst immer noch an den göttlich intimen Stunde`}n`A.`a.`Z.","activate"=>"offense");
$sql2 = "update accounts set sexgoettlich = 100, bufflist = '" . addslashes(serialize($bufflist)) . "' WHERE acctid='".$lover['acctid']."'";
db_query($sql2) or die(db_error(LINK));
}
if($lover['superuser'] > 2) {
$session['user']['sexgoettlich'] = 100;
$session['bufflist']['goettlichersex'] = array("name"=>"`BGöttliches Andenken","rounds"=>100,"wearoff"=>"`ZD`ai`Ae`} E`Brrinerung verfliegt für he`}u`At`ae`Z!","atkmod"=>1.75,"roundmsg"=>"`ZD`au`A d`}e`Bnkst immer noch an den göttlich intimen Stunde`}n`A.`a.`Z.","activate"=>"offense");
}
} else {
output("`n`n`ZI`ar`Ag`}e`Bndwie seit ihr nicht in der Stimmung daz`}u`A.`a.`Z.`n");
}
if($session['user']['superuser'] >= 2) {
output("`n`nDebug`n");
output("`BS`}e`Ax heute: " . $session['user']['sexheute'] . "`n");
output("`BS`}e`Ax gesamt: " . $session['user'][sexgesamt] . "`n");
output("BE`}m`Apfängnis: " . $empf . "`n");
}
break;
default:
addnav("`BS`}i`Ach Lieb`}e`Bn");
addnav("`BG`}e`Aschüt`}z`Bt",$this->back."&act=geschuetzt");
addnav("`BU`}n`Ageschüt`}z`Bt",$this->back."&act=kind");
break;
} // Ende Switch
output("`n");
} // Ende IF
//############################# /Kindermod-Bereich ##############################//
viewcommentary($gesammt,"Hinzufügen",25);
} else {
output("`ZD`au`A b`}e`Btrittst dein Schlafzimmer. Ein gemütlicher Raum mit einem Bett nur für d`}i`Ac`ah`Z!");
}
addnav("Schlafzimmer");
addnav("`BL`}o`Ag O`}u`Bt",$this->back."&act=logout");
addnav("Im Haus");
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funktion
} // Ende Klasse
class schatz extends zimmer {
// Die Schatzkammer, hie rlagern Gold und Edelsteine!
// Basisklasse!
var $back, $goldleft, $gemsleft, $maxtotake;
// Konstruktor
function schatz() {
global $haus, $session;
$this->back ="nhouses.php?op=drin&go=".$_GET['go'];
$this->goldleft = $this->goldleft();
$this->gemsleft = $this->gemsleft();
$this->maxtotake = (getsetting("transferreceive",3) - $session['user']['transferredtoday']) * ($session['user']['level']*getsetting("transferperlevel",25));
switch($_GET['act']) {
case 'gebegold': $this->gebegold(); break;
case 'nehmegold': $this->nehmegold(); break;
case 'gebegems': $this->gebegems(); break;
case 'nehmegems': $this->nehmegems(); break;
case 'allesnehmen': $this->allesnehmen(); break;
default: $this->basis(); break;
} // Ende Switch
} // Ende Funktion
function gemsleft() {
global $haus;
return $haus->level->gemschest - $haus->gems;
} // Ende Funktion
function goldleft() {
global $haus;
return $haus->level->goldchest - $haus->gold;
} // Ende Funktion
function basis() {
global $haus, $session;
output("`B`b`c".$haus->name."`b, `Bein ".$haus->level->name."`B`n `n`b`BD`}i`Ae Schatzkamm`}e`Br`b`n`n `c`");
if ($haus->text) output("`0`c".$haus->text."`c`n");
output("`ZD`au`A u`}n`Bd deine Mitbewohner haben `^".$haus->gold."`B Goldstücke und `#".$haus->gems."`B Edelsteine im Haus gela`}g`Ae`ar`Zt.`n");
output("`ZD`aa`Am`}i`Bt ist in der Schatztuhe noch platz für `^".$this->goldleft." `BGoldstücke und `#".$this->gemsleft."`B Edelst`}e`Ai`an`Ze.`n`n");
viewcommentary("schatz-".$haus->id,"`BI`}n`As`a Hausbuch eintra`Ag`}e`Bn:",30,"merkt an");
addnav("Gold");
addnav("`BD`}e`Aponier`}e`Bn",$this->back."&act=gebegold");
addnav("`BM`}i`Atnehm`}e`Bn",$this->back."&act=nehmegold");
addnav("Edelsteine");
addnav("`BD`}e`Aponier`}e`Bn",$this->back."&act=gebegems");
addnav("`BM`}i`Atnehm`}e`Bn",$this->back."&act=nehmegems");
addnav("Im Haus");
addnav("`BZ`}u`Arück in den Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funktion
function gebegold() {
global $haus, $session;
$maxout = $session['user']['level']*getsetting("maxtransferout",25);
if (!$_POST['gold']){
$transleft = $maxout - $session['user']['amountouttoday'];
output("`ZD`au`A d`}a`brfst heute noch `^$transleft`B Gold deponieren und in der Schatztruhe ist noch Platz für weitere `^".($haus->level->goldchest - $haus->gold)."`B Gold.`n");
output("`2<form action='".$this->back."&act=gebegold' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biel Gold deponie`}r`Ae`an`Z? <input type='gold' name='gold'>`n`n",true);
output("<input type='submit' class='button' value='Deponieren'>",true);
addnav("",$this->back."&act=gebegold");
}else{
$amt=abs((int)$_POST['gold']);
if ($amt>$session['user']['gold']){
output("`ZS`ao`A v`}i`Bel Gold hast du nicht d`}a`Ab`ae`Zi.");
}else if(($haus->level->goldchest - $haus->gold)==0){
output("`ZD`ae`Ar`} S`Bchatz ist `}v`Ao`al`Zl.");
}else if($amt>($haus->level->goldchest - $haus->gold)){
output("`ZD`au`A g`}i`Bbst alles, aber du bekommst beim besten Willen nicht so viel in den Sc`}h`Aa`at`Zz.");
}else if ($amt<0){
output("`ZW`ae`An`}n`B du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinz`}u`At`au`Zn.");
}else if ($session['user']['amountouttoday']+$amt > $maxout) {
output("`ZD`au`A d`}a`Brfst nicht mehr als `^$maxout`B Gold pro Tag deponi`}e`Ar`ae`Zn.");
}else{
$haus->gold+=$amt;
$session['user']['gold']-=$amt;
$session['user']['amountouttoday']+= $amt;
output("`ZD`au`A h`}a`Bst `^$amt`B Gold deponiert. Insgesamt befinden sich jetzt `^".$haus->gold."`B Gold im `}H`Aa`au`Zs.");
$sql="INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'schatz-".$haus->id."',".$session['user']['acctid'].",'/me `Bdeponiert `^$amt`B Gold.')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("`BZ`}u`Arück zur Schatzkamm`}e`Br",$this->back."&go=schatz");
} // Ende Funktion
function nehmegold() {
global $haus, $session;
$maxtfer = $session['user']['level']*getsetting("transferperlevel",25);
if (empty($_POST['gold'])){
$transleft = getsetting("transferreceive",3) - $session['user']['transferredtoday'];
output("`ZE`as`A b`}e`Bfindet sich `^".$haus->gold."`B Gold in der Schatztruhe des Hauses.`nDu darfst heute noch $transleft x bis zu `^$maxtfer`B Gold mitne`}h`Am`ae`Zn.`n");
output("`ZD`au`A k`}a`Bnnst auch all dein heute noch aufnehmbares Gold in einem Rutsch mitnehmen. Das wären dann: `^".$this->maxtotake." `BGoldst`}ü`Ac`ak`Ze.`n");
output("`B<form action='".$this->back."&act=nehmegold' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biel Gold mitneh`}m`Ae`an`Z? <input type='gold' name='gold'>`n`n",true);
output("<input type='submit' class='button' value='Mitnehmen'>",true);
addnav("",$this->back."&act=nehmegold");
addnav("`BA`}l`Ales Gold nehm`}e`Bn (`^".$this->maxtotake."`9)",$this->back."&act=allesnehmen");
}else{
$amt=abs((int)$_POST['gold']);
if ($amt>$haus->gold){
output("`ZS`ao`A v`}i`Bel Gold ist nicht me`}h`Ar `ad`Za.");
}else if ($maxtfer<$amt){
output("`ZD`au`A d`}a`Brfst maximal `^$maxtfer`B Gold auf einmal ne`}h`Am`ae`Zn.");
}else if ($amt<0){
output("`ZW`ae`An`}n`B du etwas in den Schatz legen willst, versuche nicht, etwas negatives herauszune`}h`Am`ae`Zn.");
}else if($session['user']['transferredtoday']>=getsetting("transferreceive",3)){
output("`ZD`au`A h`}a`Bst heute schon genug Gold bekommen. Du wirst bis morgen warten mü`}s`As`ae`Zn.");
}else{
$haus->gold-=$amt;
$session['user']['gold']+=$amt;
$session['user']['transferredtoday']++;
output("`ZD`au`A h`}ast `^$amt`B Gold genommen. Insgesamt befindet sich jetzt noch `^".$haus->gold."`B Gold im `}H`Aa`au`Zs.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'schatz-".$haus->id."',".$session['user']['acctid'].",'/me `\$nimmt `^$amt`\$ Gold.')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("`BZ`}u`Arück zur Schatzkamm`}e`Br",$this->back."&go=schatz");
} // Ende Funktion
function gebegems() {
global $haus, $session;
if (!$_POST['gems']){
output("`ZI`an`A d`}e`Br Schatztruhe ist noch Platz für weitere `^".($haus->level->gemschest - $haus->gems)."`B Edelst`}e`Ai`an`Ze.`n");
output("`2<form action='".$this->back."&act=gebegems' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biele Edelsteine deponie`}r`Ae`an`Z? <input type='gems' name='gems'>`n`n",true);
output("<input type='submit' class='button' value='`BD`}e`Aponier`}e`Bn'>",true);
addnav("",$this->back."&act=gebegems");
}else{
$amt=abs((int)$_POST['gems']);
if ($amt>$session['user']['gems']){
output("`ZS`ao`A v`}i`Bele Edelsteine hast du n`}i`Ac`ah`Zt.");
}else if(($haus->level->gemschest - $haus->gems)==0){
output("`ZD`ae`Ar`} S`Bchatz ist `}v`Ao`al`Zl.");
}else if($amt>($haus->level->gemschest - $haus->gems)){
output("`ZD`au `Ag`}i`Bbst alles, aber du bekommst beim besten Willen nicht so viel in den Sc`}h`Aa`at`Zz.");
}else if ($amt<0){
output("`ZW`ae`An`}n`B du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinz`}u`At`au`Zn.");
}else{
$haus->gems+=$amt;
$session['user']['gems']-=$amt;
output("`ZD`au`A h`}a`Bst `#$amt`B Edelsteine deponiert. Insgesamt befinden sich jetzt `#".$haus->gems."`B Edelsteine im `}H`Aa`au`Zs.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'schatz-".$haus->id."',".$session['user']['acctid'].",'/me `@deponiert `#$amt`@ Edelsteine.')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("`BZ`}u`Arück zur Schatzkamm`}e`Br",$this->back."&go=schatz");
} // Ende Funktion
function nehmegems() {
global $haus, $session;
if (!$_POST['gems']){
output("`ZE`as`A b`}e`Bfinden sich `#".$haus->gems."`B Edelsteine in der Schatztruhe des Ha`}u`As`ae`Zs.`n`n");
output("`2<form action='".$this->back."&act=nehmegems' method='POST'>",true);
output("`ZW`ai`Ae`}v`Biele Edelsteine mitneh`}m`Ae`an`Z? <input type='gems' name='gems'>`n`n",true);
output("<input type='submit' class='button' value='`BM`}i`At`aneh`Am`}e`Bn'>",true);
addnav("",$this->back."&act=nehmegems");
}else{
$amt=abs((int)$_POST['gems']);
if ($amt>$haus->gems){
output("`ZS`ao`A v`}i`Bele Edelsteine sind nicht me`}h`Ar `ad`Za.");
}else if ($amt<0){
output("`ZW`ae`An`}n`B du etwas in den Schatz legen willst, versuche nicht, etwas negatives herauszune`}h`Am`ae`Zn.");
}else{
$haus->gems-=$amt;
$session['user']['gems']+=$amt;
output("`ZD`au`A h`}a`Bst `#$amt`B Edelsteine genommen. Insgesamt befinden sich jetzt noch `#".$haus->gems."`B Edelsteine im `}H`Aa`au`Zs.");
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'schatz-".$haus->id."',".$session['user']['acctid'].",'/me `\$nimmt `#$amt`\$ Edelsteine.')";
db_query($sql) or die(db_error(LINK));
}
}
addnav("`BZ`}u`Arrck zur Schatzkamm`}e`Br",$this->back."&go=schatz");
} // Ende Funktion
function allesnehmen() {
global $haus, $session;
if($this->maxtotake > $haus->gold) $this->maxtotake = $haus->gold;
$session['user']['gold'] += $this->maxtotake;
$saetze = ceil($this->maxtotake / ($session['user']['level']*getsetting("transferperlevel",25)));
$haus->gold -= $this->maxtotake;
output("`ZD`au`A n`}i`Bmmst dir alles noch aufzunehmende Gold: `^".$this->maxtotake." `BTaler.`n Damit verbrauchst du `^ $saetze Sätze an Gold, die du nehmen dar`}f`As`at`Z!");
$session['user']['transferredtoday'] += $saetze;
addnav("`BZ`}u`Ar`aück zum Schatzkam`Am`}e`Br",$this->back);
$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'schatz-".$haus->id."',".$session['user']['acctid'].",'/me `\$nimmt sich seinen Tagessatz von `^".$this->maxtotake." Goldstücken.')";
db_query($sql) or die(db_error(LINK));
} // Ende Funktion
} // Ende Klasse
class gemeinschaftsraum extends zimmer {
// Konstruktor
function gemeinschaftsraum() {
$this->basis();
} // Ende Funktion
function basis() {
global $haus;
output("`B`b`c".$haus->name."`b, `Bein ".$haus->level->name."`B`n `bDer Gemeindschafts`}r`Aa`au`Zm`b `c`n");
output("`ZD`au`A b`}e`Btrittst den Gemeindschaftsraum des Hauses. Hier können sich die Bewohner in Ruhe unterha`}l`At`ae`Zn.");
output("`ZI`an`A d`}e`Br Ecke prasselt ein warme Kaminfeuer und einige bequeme Sessel laden dazu ein, hier ein wenig zu verweile`}n`A.`a.`Z.`n`n");
viewcommentary("gem_raum-".$haus->id,"`ZM`ai`At`} d`Beinen Mitbewohnen unterha`}l`At`ae`Zn",25);
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funtion
} // Ende Klasse
class kueche extends zimmer {
var $back;
// Konstruktor
function kueche() {
$this->back ="nhouses.php?op=drin&go=".$_GET['go'];
$this->basis();
} // Ende Funktion
function basis() {
global $haus, $session;
output("`B`b`c".$haus->name."`b, `&ein ".$haus->level->name."`B`n `b`BD`}i`Ae Küc`}h`Be`b `c`n");
output("`ZD`au`A b`}e`Btrittst die Küche des Hauses, schaust dich um und durchsuchst sogleich die Schränke nach etwas essbarem.");
output("Ein kleiner Ofen spendet die nötige Wärme in der Küche und dient ebenso als 'Backofen'... `n Du setzt dich davor und geniest deine Mahl`}z`Ae`ai`Zt. `n`n");
output("`b`c`BI`}n`A d`aer Kü`Ac`}h`Be`c`b`n`n");
output("`ZE`as`A i`}s`Bt jetzt `^".getgametime()."`B Uhr, und du befindest dich in der Küche.`n");
output("Es ziemlich still in der Küche, du siehst dich ein wenig um und genießt die ruhige Atmosp`}h`Aä`ar`Ze.`n`n`n");
$kitchen = "kitchen-".$haus->id;
$link = $this->back;
switch($_GET['act']){
// drinks
case "saft":
$saft = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&holt eine Karaffe voller Orangensaft hervor und schüttet ein.')";
db_query($saft) or die(db_error(LINK));
redirect($link);
break;
case "tee":
$tee = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&hat einen Kessel Tee zubereitet.')";
db_query($tee) or die(db_error(LINK));
redirect($link);
break;
case "kaffe":
$kaffe = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&hat vor, noch eine Weile wach zu bleiben, und sich deshalb eine Kanne Kaffee zubereitet.')";
db_query($kaffe) or die(db_error(LINK));
redirect($link);
break;
case "ale":
if($session['user']['drunkenness']<=66) {
$ale = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&ist in Partystimmung und sticht ein Fäßchen Ale an!')";
db_query($ale) or die(db_error(LINK));
$session['user']['drunkenness']+=33;
redirect($link);
} else {
output("`ZD`au`A h`}a`Bst für heute genug Getrunken, schlafe erstmal deinen Rausch `}a`Au`as`Z!");
}
break;
case "wein":
if($session['user']['drunkenness']<=76) {
$wein = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&möchte etwas feiern und entkorkt eine Flasche leckeren Rotweines.')";
db_query($wein) or die(db_error(LINK));
$session['user']['drunkenness']+=38;
redirect($link);
} else{
output("`ZD`au`A h`}a`Bst für heute genug Getrunken, schlafe erstmal deinen Rausch `}a`Au`as`Z!");
}
break;
// end of drinks
// meals
case "frustuck":
$frustuck = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&hat Brötchen geholt und Eier gekocht. Sobald jemand den Tisch deckt, gibt es Frühstück!')";
db_query($frustuck) or die(db_error(LINK));
redirect($link);
break;
case "mittagessen":
$mittagessen = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&hat Hunger bekommen und einen kurzen Mittagssnack zubereitet.')";
db_query($mittagessen) or die(db_error(LINK));
redirect($link);
break;
case "abendessen":
$abendessen = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&stellt sich für zwei Stunden in die Küche und kocht für alle ein herrliches Mahl!')";
db_query($abendessen) or die(db_error(LINK));
redirect($link);
break;
case "snack":
$snack = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$kitchen."',".$session['user']['acctid'].",'/me `&braucht mal was für zwischendurch.')";
db_query($snack) or die(db_error(LINK));
redirect($link);
break;
// end of meals
} // Ende SWITCH
viewcommentary($kitchen,"`ZM`ai`At`} d`Beinen Mitbewohnen unterha`}l`At`ae`Zn",25);
// kitchen nav
addnav("Getränke");
addnav("`BS`}a`Aft",$this->back."&act=saft");
addnav("`BT`}e`Ae",$this->back."&act=tee");
addnav("`BK`}a`Aff`}e`Be",$this->back."&act=kaffe");
addnav("`BA`}l`Ae",$this->back."&act=ale");
addnav("`BW`}e`Ain",$this->back."&act=wein");
addnav("Mahlzeiten");
addnav("`BF`}r`Aühstü`}c`Bk",$this->back."&act=frustuck");
addnav("`BM`}i`Attagess`}e`Bn",$this->back."&act=mittagessen");
addnav("`BA`}b`Aendess`}e`Bn",$this->back."&act=abendessen");
addnav("`BS`}n`Aa`}c`Bk",$this->back."&act=snack");
addnav("`BZ`}u`Arü`}c`Bk");
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funtion
} // Ende Klasse
class lagune extends zimmer {
var $back;
// Konstruktor
function lagune() {
$this->back ="nhouses.php?op=drin&go=".$_GET['go'];
$this->basis();
} // Ende Funktion
function basis() {
global $haus, $session;
addcommentary();
// Verheiratet?
if($session['user']['marriedto']==$haus->besitzerid || $session['user']['acctid']==$haus->besitzerid && $session['user']['marriedto']){
output('`ZD`au`A t`}r`Bittst durch eine unscheinbare Tür auf den Weg zur blauen Lagune. '.'Es ist angenehm warm, kein Wunder, denn in dem schön verstecktem Ort scheint die '.'Sonne immerfort. Der Sand ist weich und warm, und das Wasser hell und klar. Es wirkt '.'einladend.`n');
output('Am anderen Ufer siehst du die hellen Wasserfälle, alles ist in '.'liebevolles Licht getaucht und du spürst, hier kannst du dich hingeben, '.'denn keiner stört euch `}h`Ai`ae`Zr.`n');
$lagune = "lagune-".$haus->id;
switch($_GET['act']) {
case "soap":
$soap = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$lagune."',".$session['user']['acctid'].",'/me `&cremt Dir zärtlich den Rücken ein.')";
db_query($soap) or die(db_error(LINK));
redirect($this->back);
break;
case "shampoo":
$shampoo = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$lagune."',".$session['user']['acctid'].",'/me `&wäscht sich die Haare um Dir zu gefallen.')";
db_query($shampoo) or die(db_error(LINK));
redirect($this->back);
break;
case "stroke":
$stroke = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$lagune."',".$session['user']['acctid'].",'/me `&streichelt zärtlich über Deine duftende Haut.')";
db_query($stroke) or die(db_error(LINK));
redirect($this->back);
break;
case "love":
$love = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$lagune."',".$session['user']['acctid'].",'/me `&zieht Dich zärtlich zu sich ins Wasser um Dich zu fühlen!')";
db_query($love) or die(db_error(LINK));
redirect($this->back);
break;
case "duft":
$duft = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'".$lagune."',".$session['user']['acctid'].",'/me `&macht Kerzen und Duftöl ins Wasser, um Dich "."zu verwöhnen.')";
db_query($duft) or die(db_error(LINK));
redirect($this->back);
break;
} // Ende Switch
viewcommentary($lagune,"sich gegenseitig verwöhnen:",20,"flüstert zärtlich");
// lagune nav
addnav("Was willst du tun?");
addnav("`BE`}i`Ancrem`}e`Bn",$this->back."&act=soap");
addnav("`BH`}a`Aarewasch`}e`Bn",$this->back."&act=shampoo");
addnav("`BS`}t`Areiche`}l`Bn",$this->back."&act=stroke");
addnav("`BL`}i`Aeben (Geschütz`}t`B)",$this->back."&act=love");
addnav("`BD`}u`Aftkerz`}e`Bn",$this->back."&act=duft");
}else{
output("`ZD`au`A r`}ü`Bttelst ein wenig an der Tür - verschlo`}s`As`ae`Zn.`n");
output("`ZT`aj`Aa`}, i`Bn der privaten Lagune hast du eben nichts zu su`}c`Ah`ae`Zn.");
} // Ende ELSE
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funktion
} // Ende Klasse
class kinderzimmer extends zimmer {
var $back;
// Buffs:
var $buffA = array("name" => "`BKinderfreude"
,"roundmsg" => "Die Freude über dein Kind gibt dir Kraft"
,"wearoff" => "Die starke Freude verblasst."
,"rounds" => "75"
,"atkmod" => "1.10"
,"survivenewday" => "0"
,"activate" => "roundstart");
var $buffB = array("name" => "`BKinderglück"
,"roundmsg" => "Das glückliche Lächelnd deines Kindes macht dich aufmerksamer"
,"wearoff" => "Die Erinnerung an das Lächeln deines Kinder verblasst"
,"rounds" => "75"
,"defmod" => "1.10"
,"survivenewday" => "0"
,"activate" => "roundstart");
var $buffC = array("name" => "`BAngst ums Kind"
,"roundmsg" => "Die Angst um dein Kind lässt dich unaufmerksamer Kämpfen"
,"wearoff" => "Du bist dir nun sicher, das es deinem Kind gut geht"
,"rounds" => "75"
,"atkmod" => "0.95"
,"defmod" => "0.95"
,"survivenewday" => "0"
,"activate" => "roundstart");
function kinderzimmer() {
$this->back = "nhouses.php?op=drin&go=".$_GET['go'];
$this->basis();
} // Ende Funktion
function basis() {
global $session;
// Maximal ein eigenes Kind abrufen, nur zur bestimmung ob Elter oder nicht.
if(KINDER) {
$kinder = (bool) db_num_rows(db_query("SELECT id FROM `kinder` WHERE mama=".$session['user']['acctid']." OR papa=".$session['user']['acctid']." LIMIT 1"));
if($_GET['machen']=="kind") {
output("`ZD`au`A g`}e`Bhtst zu deinem Kind und beschäftigst dich eine Weile mi`}t `Ai`ah`Zm.`n");
switch(e_rand(0,5)) {
case 0:
output("`ZD`ai`Ar`} b`Bleibt noch einige Zeit im Gedächtnis hängen, wie sher sich dein Kind über deinen Besuch fr`}e`Au`at`Ze.");
$session['bufflist']['kind'] = $this->buffB;
break;
case 1:
output("`ZD`au`A s`}p`Bielst eine Weile mit deinem Kind unf fühlst dich danach ebenso gut, wie dein Sprössling se`}l`Ab`as`Zt.");
$session['bufflist']['kind'] = $this->buffA;
break;
case 2:
output("`ZZ`aw`Aa`}r`B beschäftigst du dich eine Weile mit deinem Kind, aber irgendwie wirst du danach das gefühl nicht los, das es sich gerade nicht wohl f`}ü`Ah`al`Zt.");
$session['bufflist']['kind'] = $this->buffC;
break;
default:
output("`ZD`au`A k`}ü`Bmmerst dich eine Weile um dein Kind und bemerkst dabei gar nicht, wie schnell die Zeit ver`}g`Ae`ah`Zt.");
$session['user']['turns']--;
} // Ende SWITCH
} elseif($kinder==true) {
output("`ZD`au`A b`}e`Btrittst das Kinderzimmer und entdeckst sofort dein Kind, das friedlich vor sich hin sp`}i`Ae`al`Zt.`n");
output("`ZM`aö`Ac`}h`Btest du dich nicht ein wenig mit ihm beschäfti`}g`Ae`an`Z?");
addnav("`BM`}i`At deinem Kind spiel`}e`Bn",$this->back."&machen=kind");
} else {
output("`ZD`aa`A d`}u`B keine Kinder hast, siehst du auch keinen Sinn darin, ins Kinderzimmer zu g`}e`Ah`ae`Zn.");
}
} else {
output("`ZD`aa`A e`}s`B in dieser Welt keine Kinder gibt, braucht man auch keine Kinderzi`}m`Am`ae`Zr.");
}
addnav("`BZ`}u`Arück zum Fl`}u`Br","nhouses.php?op=drin");
} // Ende Funktion
} // Ende Klasse
?>