').'`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
'; $str_output .= '`nNeues Zeichenlimit für dieses Haus: `n`n'; $str_output .= ''; $str_output .= ''; addnav('','houses_private.php?op=c_le_change'); } else { $amt=(int)$_POST['chars']; if ($amt>$max_total) $amt=$max_total; if ($amt<=0) $amt=$min_total; $amt=max($amt,$min_total); $str_output .= '`2Alles klar!`nDie maximale Zeichenlänge für dieses Gemach wurde auf '.$amt.' geändert.`n'; if ($bool_is_owner==1) { $sql = 'UPDATE houses SET c_max_length='.$amt.' WHERE houseid='.$row['houseid']; db_query($sql); } else { $sql = 'UPDATE items SET hvalue='.$amt.' WHERE tpl_id="privb" AND value1='.$session['housekey'].' AND owner='.$private['acctid']; db_query($sql); } } addnav('Zurück','houses_private.php'); break; case 'desc': $int_max_length = getsetting('housedesclen',500); $owner= false; // Feststellen, ob Hausbesitzer oder nicht if($session['user']['housekey'] == $session['housekey']) { $owner = true; $sql = 'SELECT private_description AS description FROM houses WHERE houseid='.$session['housekey']; } else { $sql = 'SELECT description,id FROM items WHERE tpl_id="privb" AND value1='.$session['housekey'].' AND owner='.$session['private']; } $res = db_query($sql); $house = db_fetch_assoc($res); if($_GET['act'] == 'ok') { $desc = closetags(stripslashes($_POST['description']),'`c`i`b'); $desc = strip_tags($desc,''); $desc = substr($desc,0,$int_max_length); if(!$owner) { item_set(' id='.$house['id'], array('description'=>$desc) ); } else { $sql = 'UPDATE houses SET private_description="'.addslashes($desc).'" WHERE houseid='.$session['housekey']; db_query($sql); } redirect('houses_private.php'); } $link = 'houses_private.php?op=desc&act=ok'; addnav('',$link); addnav('Zurück','houses_private.php'); $str_output .= ''; $arr_form = array( 'desc_pr'=>'Vorschau:,preview,description', 'description'=>'`2Gebe eine Beschreibung für dein Haus ein:`n,textarea,40,20,'.$int_max_length); output($str_output,true); showform($arr_form,$house,false,'Übernehmen!'); $str_output = '
'; 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 .= '
'; $str_output .= '`2Wem willst du ein eigenes Privatgemach gewähren? `n`n'; $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 .= '
'; $str_output .= '`2Wem willst du sein Privatgemach entziehen? `n`n'; $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 .= '
'; $str_output .= ' `n`n'; $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 .= '
'; $str_output .= 'Name: '; $str_output .= '`n`n'; $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 .= '
'; $str_output .= '`2Wem willst du den Zugang zu deinen Privatgemächern entziehen? `n`n'; $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 ?>