').'`n`n`n';
$comment_length=max($house[c_max_length],getsetting('chat_post_len_long',1500));
output($str_output);
viewcommentary('h'.$session['housekey'].'-'.$session['private'].'privat',"Mit Mitbewohnern reden:",30,"sagt",false,true,false,$comment_length,true,true,2);
$str_output = '`n`n`n
| `2`bZutritt haben:`b `0 | `2`bExtra Ausstattung`b |
| ';
$sql = 'SELECT a.acctid AS aid,a.name AS besitzer FROM items i LEFT JOIN accounts a ON a.acctid=i.owner WHERE i.tpl_id="prive" AND value1='.$session['housekey'].' AND i.value2='.$session['private'].' ORDER BY id ASC';
$result = db_query($sql);
$count = db_num_rows($result);
if($count == 0) {
$str_output .= '`nNoch niemand! ';
}
else {
for ($i=1;$i<=$count;$i++){
$item = db_fetch_assoc($result);
$str_output .= '`n`2'.$i.': `&'.$item['besitzer'].'`0';
}
}
$str_output .= ' | ';
$properties = ' owner < 1234567 AND deposit_private>0 AND deposit1='.$session['housekey'].' AND deposit2='.$session['private'];
$extra = ' ORDER BY name DESC, id ASC';
$res = item_list_get ( $properties , $extra , true , ' name,description,id,furniture_private_hook ' );
$count = db_num_rows($res);
$hooks = array();
$furniturenav = array();$navcount=0;
for ($i=1;$i<=$count;$i++){
$item = db_fetch_assoc($res);
$str_output .= '`n`c `c`&'.$item['name'].'`0 (`i'.$item['description'].'`i)';
if(trim($item['furniture_private_hook']) != '' && $bool_not_invited && !$hooks[$item['furniture_private_hook']]) {
$hooks[$item['furniture_private_hook']] = true;
//nach unten addnav($item['name'],'furniture.php?item_id='.$item['id']);
$furniturenav[$navcount][0]=$item['name'];
$furniturenav[$navcount][1]='furniture.php?item_id='.$item['id'];
$navcount++;
}
}
$str_output .= ' |
';
if ($session['user']['acctid']==$session['private']) {
addnav('Verwaltung');
addnav('B?Beschreibung ändern','houses_private.php?op=desc');
addnav('E?Einladen','houses_private.php?op=geben');
addnav('A?Ausladen','houses_private.php?op=nehmen');
addnav('r?Aufräumen','houses_private.php?op=sauber');
addnav('Kommentarlänge ändern','houses_private.php?op=c_le_change');
}
addnav('Verschiedenes');
// Wenn nicht über Einladung in diesem Privatgemach
//if($session['invited'] != $session['private']) {
if($bool_not_invited) {
addnav('L?Einschlafen (Log Out)','inside_houses.php?act=logout');
addnav('H?Zurück ins Haus','inside_houses.php');
}
addnav('W?Zum Wohnviertel','houses.php');
addnav('D?Zum Dorf','village.php');
addnav('M?Zum Marktplatz','market.php');
if($furniturenav)
{
addnav('Einrichtung');
// for($i=0;$i=0;$i--){
addnav($furniturenav[$i][0],$furniturenav[$i][1]);
}
}
break;
// Postlänge ändern
case 'c_le_change':
$max_total = getsetting('chat_post_len_max',8000); // Erstmal nur hart kodiert
$min_total = getsetting('chat_post_len_long','0'); // Öffentlichen Plätze
$sql = 'SELECT name,acctid,house FROM accounts WHERE acctid='.$session['private'];
$res = db_query($sql);
if(!db_num_rows($res)) {
redirect('houses.php','Privatraumbesitzer '.$session['private'].' nicht mehr vorhanden!');
}
$private = db_fetch_assoc($res);
// Auf Schlüssel zum Haus prüfen
$bool_not_invited = false;
// Wenn eigenes Haus
if($session['user']['house'] == $session['housekey']) {
$bool_not_invited = true;
}
else {
$bool_not_invited = (bool)db_num_rows(db_query('SELECT id FROM keylist WHERE owner='.$session['user']['acctid'].' AND value1='.$session['housekey']));
}
if($private['house'] == $session['housekey']) { // Wenn Privatraum des Hausbesitzers
$sql = 'SELECT c_max_length AS hvalue,houseid FROM houses WHERE houseid='.$session['housekey'];
$res = db_query($sql);
$bool_is_owner=1;
}
else {
$sql = 'SELECT hvalue FROM items WHERE tpl_id="privb" AND value1='.$session['housekey'].' AND owner='.$private['acctid'];
$res = db_query($sql);
$bool_is_owner=0;
}
$row = db_fetch_assoc($res);
if (!isset($_POST['chars']))
{
$str_output .= '`2Als Herr(in) über dieses Gemach ist es dir hier möglich zu bestimmen wieviel Platz (Zeichen) du dir und deinen Gästen für das Rollenspiel zugestehst.`nDer Wert, den du eingibst, darf den vorgegebenen Maximalwert (derzeit '.$max_total.') nicht überschreiten!`nEs sind nur positive, ganze Zahlen zulässig. Bei einer ungültigen Eingabe, oder wenn du 0 eingibst, wird stattdessen der Standartwert für private Räume (derzeit '.$min_total.') verwendet. Dieser Wert darf auch nicht unterschritten werden!`n`nDeine derzeitige Einstellung ist: '.$row['hvalue'].'.`n`n`n';
$str_output .= '`2';
break;
case 'einladungen':
$str_output .= '`c`b`@Privatgemächer`0`c`b`n`n';
$str_output .= '`@Du durchwühlst deinen Beutel auf der Suche nach Schlüsseln zu Privatgemächern und findest folgende Exemplare:`n`n`c';
$list = '';
$sql = 'SELECT id,housename,i.owner, houseid AS housekey FROM items i
LEFT JOIN houses h ON h.houseid=i.value1
WHERE i.tpl_id="privb" AND i.owner='.$session['user']['acctid'].' AND value1 != '.$session['user']['housekey'];
$res = db_query($sql);
if(db_num_rows($res) || $session['user']['housekey']) {
addnav('Eigene Gemächer');
$str_output .= '`&Eigene Privatgemächer:`@`n';
// Eigenes Privatgemach
if($session['user']['housekey']) {
$link = 'houses_private.php?private='.$session['user']['acctid'].'&housekey='.$session['user']['housekey'];
addnav('Privatgemach in eigenem Haus',$link);
$str_output .= '`&Eigenes Gemach in eigenem Haus`0: '.create_lnk('Betreten',$link).'`n';
$str_output .= '`n~~~`n';
}
while($i = db_fetch_assoc($res)) {
$link = 'houses_private.php?private='.$i['owner'].'&housekey='.$i['housekey'];
addnav('Gemach in '.strip_appoencode($i['housename'],3),$link);
$str_output .= '`&Eigenes Gemach in '.$i['housename'].'`0: '.create_lnk('Betreten',$link).'`n';
$str_output .= '`n~~~`n';
}
}
$sql = 'SELECT id,housename,a.name AS playername,a.login AS playerlogin,i.value2 AS owner, houseid AS housekey FROM items i
LEFT JOIN houses h ON h.houseid=i.value1
LEFT JOIN accounts a ON a.acctid=i.value2
WHERE i.tpl_id="prive" AND i.owner='.$session['user']['acctid'].' AND value1 NOT IN (-1'.$list.')';
$res = db_query($sql);
if(db_num_rows($res) == 0) {
$str_output .= '`n`iKeine Einladungen in fremde Privatgemächer vorhanden!`i';
}
else {
$str_output .= '`&Einladungen in fremde Gemächer:`n`@';
addnav('Einladungen');
while($i = db_fetch_assoc($res)) {
$link = 'houses_private.php?invited='.$i['owner'].'&private='.$i['owner'].'&housekey='.$i['housekey'];
addnav($i['playerlogin'].' in '.strip_appoencode($i['housename'],3),$link);
$str_output .= '`&Einladung von '.$i['playername'].'`0 in '.$i['housename'].'`0: '.create_lnk('Betreten',$link).'`n';
$str_output .= '`n~~~`n';
}
}
$str_output .= '`c';
addnav('Zurück');
addnav('W?Zum Wohnviertel','houses.php');
break;
case 'raum_geben': // Privatraum vergeben
if($_GET['act'] == 'ok') {
$ziel = (int)$_POST['ziel'];
if(item_count(' tpl_id="privb" AND value1='.$session['housekey'].' AND owner='.$ziel ) > 0) {
$str_output .= '`2Diese Person besitzt bereits ein eigenes Privatgemach in deinem Haus!';
}
else {
$sql = 'SELECT name FROM accounts WHERE acctid='.$ziel;
$res = db_query($sql);
$name = db_fetch_assoc($res);
$oi = item_get(' tpl_id="privb" AND value1='.$session['housekey'].' AND (owner='.$session['user']['acctid'].' OR owner=0) ',false);
$item_tpl['tpl_value1'] = $session['housekey'];
$item_tpl['tpl_value2'] = $session['private'];
$item_tpl['owner'] = $ziel;
$item_tpl['tpl_description'] = 'Ein Privatgemach in Haus Nr. '.$session['housekey'].'.';
item_set('id='.$oi['id'],$item_tpl);
$str_output .= '`2Du übergibst '.$name['name'].'`2 den Schlüssel zu einem eigenen Privatgemach in deinem Haus!';
systemmail($ziel,'`2Privatgemach erhalten',$session['user']['name'].'`2 hat dir den Schlüssel zu einem eigenen Privatgemach in '.($session['user']['sex'] ? 'ihrem' : 'seinem').' Haus übergeben.');
}
}
else {
$sql = 'SELECT id,a.name FROM items i LEFT JOIN accounts a ON a.acctid=i.owner WHERE i.tpl_id="privb" AND value1='.$session['housekey'].' AND owner!='.$session['user']['acctid'].' AND owner>0';
$res = db_query($sql);
$number = db_num_rows($res);
$str_output .= '`2Du hast '.$number.' Privatgemächer bereits an die folgenden Personen vergeben:`n`n';
while($p = db_fetch_assoc($res)) {
$str_output .= '`n'.$p['name'];
}
$max_number = item_count(' tpl_id="privb" AND (owner='.$session['user']['acctid'].' OR owner=0) AND value1='.$session['housekey']);
if($max_number == 0) {
$str_output .= '`n`n`2Du kannst keine weiteren Privatgemächer vergeben. Falls du noch mehr benötigst, hast du in der Jägerhütte die Möglichkeit, Zimmer dazuzukaufen.';
}
else {
$str_output .= '`n`n`2Du hast noch '.$max_number.' Plätze frei!`n`n';
$sql = "SELECT a.name, a.acctid FROM keylist i LEFT JOIN accounts a ON a.acctid=i.owner WHERE i.owner!=".$session['user']['acctid']." AND i.owner>0 AND i.value1=".$session['housekey']." GROUP BY i.owner ORDER BY a.name";
$res = db_query($sql);
if(!db_num_rows($res)) {
$str_output .= "`2Es gibt keine Personen, denen du ein Privatgemach gewähren könntest!";
}
else {
$link = 'houses_private.php?op=raum_geben&act=ok';
$str_output .= '';
addnav('',$link);
}
}
}
addnav('H?Zurück ins Haus','inside_houses.php');
break;
case 'raum_nehmen': // Person ausladen
if($_GET['act'] == 'ok') {
$ziel = (int)$_POST['ziel'];
// Einladungen in Privatgemächer löschen
item_delete(' tpl_id="prive" AND value1='.$session['housekey'].' AND value2='.$ziel);
// Privatgemächer zurücksetzen
item_set(' tpl_id="privb" AND value1='.$session['housekey'].' AND owner='.$ziel, array('owner'=>$session['user']['acctid'],'description'=>'') );
// Möbel für Privatgemächer zurücksetzen
item_set(' owner < 1234567 AND deposit1='.$session['housekey'].' AND deposit2='.$ziel, array('deposit1'=>0,'deposit2'=>0) );
$str_output .= '`2Du nimmst dieses Gemach wieder selbst unter Beschlag.';
systemmail($ziel,'`8Privatgemach abgenommen',$session['user']['name'].'`8 hat dir den Schlüssel zu einem eigenen Privatgemach in '.($session['user']['sex'] ? 'ihrem' : 'seinem').' Haus wieder abgenommen.');
}
else {
$sql = 'SELECT a.name, a.acctid, i.id AS itemid, i.owner FROM items i LEFT JOIN accounts a ON a.acctid=i.owner WHERE i.tpl_id="privb" AND i.value1='.$session['housekey'].' AND i.owner!='.$session['user']['acctid'].' ORDER BY a.name';
$res = db_query($sql);
if(!db_num_rows($res)) {
$str_output .= '`2Es hat noch keiner deiner Bewohner ein Privatgemach!';
}
else {
$link = 'houses_private.php?op=raum_nehmen&act=ok';
$str_output .= '';
addnav('',$link);
}
}
addnav('H?Zurück ins Haus','inside_houses.php');
break;
case 'geben': // Person autorisieren
// Allgemeiner Autorisierungsbildschirm für ALLE Privatgemächer (auch die des Hausherrn)
$house_owner = ($session['user']['housekey'] == $session['housekey'] ? true : false);
$max_number = ($house_owner ? 1000000 : 4);
if($_GET['act'] == 'search' && strlen($_POST['search']) > 0) {
$search = str_create_search_string($_POST['search']);
$sql = 'SELECT name,acctid FROM accounts WHERE name LIKE "'.$search.'" AND acctid!='.$session['user']['acctid'];
$res = db_query($sql);
$link = 'houses_private.php?op=geben&act=id';
$str_output .= '';
addnav('',$link);
}
elseif($_GET['act'] == 'id' && $_POST['ziel']) {
$ziel = (int)$_POST['ziel'];
// Überprüfen, ob Spieler nicht bereits autorisiert
if(item_count(' tpl_id="prive" AND value1='.$session['housekey'].' AND owner='.$ziel.' AND value2='.$session['user']['acctid']) > 0) {
$str_output .= '`2Diese Person hat bereits Zugang zu deinem Gemach!';
addnav('Neue Suche','houses_private.php?op=geben');
}
else { // autorisieren
$item_tpl['tpl_value1'] = $session['housekey'];
$item_tpl['tpl_value2'] = $session['user']['acctid'];
$item_tpl['tpl_description'] = 'Einladung in die Privatgemächer '.$session['user']['name'].'`0s in Haus Nr. '.$session['housekey'];
item_add($ziel,'prive',$item_tpl);
$sql = 'SELECT name FROM accounts WHERE acctid='.$ziel;
$res = db_query($sql);
$name = db_fetch_assoc($res);
$str_output .= '`2Du übergibst '.$name['name'].'`2 einen Schlüssel zu deinem Privatgemach!';
systemmail($ziel,'`2Schlüssel zu Privatgemach',$session['user']['name'].'`2 hat dir freundlicherweise einen Schlüssel zu '.($session['user']['sex'] ? 'ihren' : 'seinen').' Privatgemächern in Haus Nr. '.$session['housekey'].' überreicht.');
}
}
else {
// Auf max. Anzahl prüfen
$int_count = item_count(' tpl_id="prive" AND value1='.$session['housekey'].' AND value2='.$session['user']['acctid'] );
if($int_count > $max_number) {
$str_output .= '`2Es hat bereits die maximale Personenzahl Zugang zu deinem Gemach!';
addnav('Neue Suche','houses_private.php?op=geben');
}
else {
$str_output .= '`2Wem willst du Zugang zu deinen Privatgemächern gewähren?`nDu hast noch '.(!$house_owner ? $max_number - $int_count : 'viele').' Plätze frei!';
$link = 'houses_private.php?op=geben&act=search';
$str_output .= '';
addnav('',$link);
}
}
addnav('Zurück','houses_private.php');
break;
case 'nehmen': // Person ausladen
if($_GET['act'] == 'ok') {
$ziel = (int)$_POST['ziel'];
if($ziel) {
$sql = 'SELECT i.owner, a.name FROM items i, accounts a WHERE a.acctid=i.owner AND i.id='.$ziel;
$res = db_query($sql);
$p = db_fetch_assoc($res);
$sql = 'DELETE FROM items WHERE id='.$ziel;
db_query($sql);
//systemmail($p['owner'],"`@Zugang zu Privatgemächern entzogen!`0","`&{$session['user']['name']}`& hat dir den Schlüssel zu ".(($session['user']['sex'])?"ihren":"seinen")." Privatgemächern wieder abgenommen.");
$str_output .= '`2Du nimmst '.$p['name'].' `2den Schlüssel zu deinen privaten Räumen wieder ab!';
}
else {
redirect('houses_private.php?op=nehmen');
}
}
else {
$sql = 'SELECT a.name, i.id AS itemid FROM items i LEFT JOIN accounts a ON a.acctid=i.owner WHERE i.tpl_id="prive" AND i.value1='.$session['housekey'].' AND i.value2='.$session['user']['acctid'].' ORDER BY a.name';
$res = db_query($sql);
if(!db_num_rows($res)) {
$str_output .= "`2Es hat noch niemand Zugang zu deinen Privatgemächern!";
}
else {
$link = 'houses_private.php?op=nehmen&act=ok';
$str_output .= '';
addnav('',$link);
}
}
addnav('Zurück','houses_private.php');
break;
case 'sauber': // Kommentare entfernen
$str_output .= '`2Du entschließt dich, in deinen Privatgemächern etwas aufzuräumen. Doch sei dir darüber im Klaren, dass dann alle Ereignisse der letzten Zeit hier drin in Vergessenheit geraten!';
addnav('Ja, aufräumen!','houses_private.php?op=sauber_ok');
addnav('Nein, zurück!','houses_private.php');
break;
case 'sauber_ok': // Kommentare entfernen 2
// Sicherung
$sql = 'UPDATE commentary SET section="h'.$session['housekey'].'-'.$session['user']['acctid'].'_p" WHERE section="h'.$session['housekey'].'-'.$session['user']['acctid'].'privat"';
db_query($sql);
// Sicherung Ende
//$sql = "DELETE FROM commentary WHERE section='house-".$session['housekey']."_private'";
//db_query($sql);
redirect('houses_private.php');
break;
default:
$str_output .= 'Hier dürfte ich nicht sein.. op: '.$op;
addnav('D?Zurück ins Dorf','village.php');
break;
}
output($str_output,true);
page_footer();
// END houses_private.php
?>