`n`n';
}
$str_out .= '`n';
break;
// Anbau
case 'ext':
$str_type_enum = 'enum';
foreach ($g_arr_house_extensions as $str_k=>$arr_e) {
if(!isset($arr_e['room']) || false === $arr_e['room']) {
$str_type_enum .= ','.$str_k.','.$arr_e['name'];
}
}
$arr_form = array('id'=>'Anbau-ID,viewonly',
'type'=>'TypID,'.(empty($_GET['extid']) ? $str_type_enum : 'viewonly'),
'type_txt'=>'Typ,viewonly',
'level'=>'Level des Anbaus,enum_order,1,10',
'val'=>'Wert 1 (Beliebige Variable),int',
'content'=>'Inhalts-Speicher,viewonly');
if(isset($_GET['extid']) && !empty($_GET['extid'])) {
$int_extid = (int)$_GET['extid'];
$str_out .= 'Anbau '.$int_extid.' bearbeiten:';
$res = db_query('SELECT * FROM house_extensions WHERE id='.$int_extid.' AND loc IS NULL');
if(!db_num_rows($res)) {
$session['message'] = '`$Anbau nicht gefunden!`0';
redirect($str_baselnk);
}
$arr_ext = db_fetch_assoc($res);
$arr_ext['content'] = unserialize($arr_ext['content']);
$arr_ext['type_txt'] = $g_arr_house_extensions[$arr_ext['type']]['name'];
}
else {
$int_extid = 0;
$str_out .= 'Anbau neu anlegen:';
}
if(isset($_GET['save'])) {
$str_sql = ($int_extid ? 'UPDATE' : 'INSERT INTO').' house_extensions SET houseid='.$int_id;
$arr_ext['content'] = serialize($arr_ext['content']);
$str_sql .= ',content="'.addslashes($arr_ext['content']).'"';
foreach ($_POST as $str_k => $val) {
if(isset($arr_form[$str_k])) {
$str_sql .= ','.$str_k.' = "'.addslashes(stripslashes($val)).'"';
}
}
if($int_extid) {
$str_sql .= ' WHERE id='.$int_extid;
}
db_query($str_sql);
$session['message'] = '`@Anbau gespeichert!`0';
redirect($str_baselnk);
}
if(isset($_GET['del'])) {
house_extension_run('rip_auto',$arr_ext,$arr_house);
$str_sql = 'DELETE FROM house_extensions WHERE id='.$int_extid;
db_query($str_sql);
$session['message'] = '`@Anbau entfernt!`0';
redirect($str_baselnk);
}
$str_out .= form_header($str_baselnk.'&act=ext&save=1&extid='.$int_extid);
output($str_out);
$str_out = '';
showform($arr_form,$arr_ext);
$str_out .= '`n`n`n';
break;
// Haus an sich
case 'save_house':
// Status geändert?
if($_POST['status'] != $arr_house['status']) {
// Konsequenzen daraus ziehen ; )
house_check($arr_house,$_POST['status']);
}
// Eigentümer geändert?
if($_POST['owner'] != $arr_house['owner'] && $_POST['owner'] > 0 && $arr_house['owner'] > 0) {
// Schlüssel auf neuen EIgentümer überschreiben
house_keys_set(' value1='.$int_id.' AND owner='.$arr_house['owner'].' AND type='.HOUSES_KEY_DEFAULT,array('owner'=>$_POST['owner']),1000);
// Altem Eigentümer sämtliche Gemächer abnehmen
$sql = 'SELECT * FROM house_extensions WHERE houseid='.$int_id.' AND owner='.$arr_house['owner'];
$res = db_query($sql);
while($arr_e = db_fetch_assoc($res)) {
house_take_room($arr_e,$arr_house);
}
// Möbel aus dem Haus packen
item_set('deposit1='.$int_id.' AND owner='.$arr_house['owner'],array('deposit1'=>0,'deposit2'=>0),false,1000);
// Account ändern
user_update(
array
(
'house'=>0,
'where'=>'house='.$arr_house['houseid']
)
);
user_update(
array
(
'house'=>$arr_house['houseid'],
),
(int)$_POST['owner']
);
}
$str_sql = 'UPDATE houses SET houseid=houseid';
foreach ($arr_house as $str_k => $val) {
if(isset($_POST[$str_k])) {
$str_sql .= ','.$str_k.' = "'.addslashes(stripslashes($_POST[$str_k])).'"';
}
}
$str_sql .= ' WHERE houseid='.$int_id;
db_query($str_sql);
$session['message'] = '`@Haus aktualisiert!`0';
redirect($str_baselnk);
break;
// Haus auf Schlüssel-/Gemächergrenzen kontrollieren
case 'check_house':
house_check($arr_house,$arr_house['status'],true);
$session['message'] = '`@Haus erfolgreich kontrolliert!`0';
redirect($str_baselnk);
break;
// Haus auf Wohnhaus zurücksetzen
case 'reset_house':
// Zur Sicherheit mal abreißen
house_deconstruct($arr_house);
// Dann auf Wohnhaus setzen
db_query('UPDATE houses SET status=0,build_state=0,housename="Whose house? Run\s House!" WHERE houseid='.$int_id);
// Schlüsselsatz korrigieren
house_check($arr_house,0);
$session['message'] = '`@Haus auf Wohnhaus zurückgesetzt (Vergiss nicht, den Namen zu ändern)!`0';
redirect($str_baselnk);
break;
// Haus abreißen
case 'kill_house':
house_deconstruct($arr_house);
$session['message'] = '`@Haus entfernt und in leeres Grundstück umgewandelt!`0';
redirect($str_baselnk);
break;
// Haus verkaufen
case 'sell_house':
house_sell($arr_house,0,0,0);
$session['message'] = '`@Haus verkauft!`0';
redirect($str_baselnk);
break;
// Haus auf verlassen setzen
case 'abandon_house':
db_query(' UPDATE houses SET build_state="'.HOUSES_BUILD_STATE_ABANDONED.'",lastchange=NOW(),owner=0
WHERE houseid='.$int_id);
// Accounts zurücksetzen
user_update(
array
(
'house'=>0,
'where'=>'house='.$int_id
)
);
$session['message'] = '`@Haus auf "Verlassen" gesetzt!`0';
redirect($str_baselnk);
break;
}
// Hausedit
$str_out .= plu_mi('hedit',1,false).' Hausdaten:';
$str_out .= '
`n`n'.
'`^[`0 '.create_lnk('Kommentare','su_comment.php?section='.urlencode('house-'.$int_id),true,false,'',true).' `^]`0';
$str_housetypes = ',Alle';
foreach ($g_arr_house_builds as $str_k => $arr_b) {
$str_housetypes .= ','.$str_k.','.$arr_b['name'];
}
$arr_house['build_state_view'] = get_house_state($arr_house['status'],$arr_house['build_state'],false);
$arr_form = array('houseid'=>'Hausnr.,viewonly',
'housename_prev'=>'Hausname Vorschau,preview,housename',
'housename'=>'Hausname',
'description'=>'Beschreibung,textarea,30,10',
'name'=>'Besitzer,viewonly',
'owner'=>'Besitzer AcctID,int',
'gold'=>'Gold in Hausschatz,int',
'gems'=>'Gems in Hausschatz,int',
'pvpflag_houses'=>'PvP-Flag (Zeitpkt. des letzten Angriffs)',
'lastchange'=>'Wann wurde Haus verlassen (nur bei entsprechendem Status)?',
'dmg'=>'Schadenslevel,int',
'dmg_info'=>'Schaden,viewonly',
'trick'=>'Schabernack,viewonly',
'extension'=>'Falls das Haus ausgebaut wird: Woran wird gebaut?',
'status'=>'Haustyp,enum,'.$str_housetypes,
'build_state_view'=>'Aktueller Hausstatus,viewonly',
'build_state'=>'Hausstatus,bitflag,Ausbau im Bau,Erweiterung im Bau,Haus im Bau,Haus zum Verkauf,Verlassen,Leeres Grundstück,Bauruine|?Nur maximal ein Feld auswählen und nur wenn es absolut notwendig ist!');
$str_out .= form_header($str_baselnk.'&act=save_house');
output($str_out);
$str_out = '';
showform($arr_form,$arr_house);
$str_out .= '
`n`n';
// Schlüssel
$sql = 'SELECT k.*,a.name FROM keylist k
LEFT JOIN accounts a ON a.acctid = k.owner
WHERE value1='.$int_id.' AND type='.HOUSES_KEY_DEFAULT;
$res = db_query($sql);
$str_out .= plu_mi('kedit',($str_act == 'key' ? 1 : 0),false).' Schlüssel: '.db_num_rows($res).' Schlüssel vorhanden.';
$str_out .= '
`n`n';
// Gemächer
$sql = 'SELECT r.*,a.name AS oname FROM house_extensions r
LEFT JOIN accounts a ON a.acctid = r.owner
WHERE r.houseid='.$int_id.' AND r.LOC IS NOT NULL';
$res = db_query($sql);
$str_out .= plu_mi('redit',($str_act == 'room' ? 1 : 0),false).' Gemächer: '.db_num_rows($res).' Gemächer vorhanden.';
$str_out .= '
';
db_free_result($res);
}
}
if($int_type == -1 || $int_type == HOUSES_KEY_PRIVATE)
{
$str_out .= '`n`bGemachschlüssel:`b`n';
$sql = 'SELECT k.*, he.name AS rname, he.type AS rtype, h.housename, a.name AS oname FROM keylist k
LEFT JOIN house_extensions he ON (he.id = k.value2)
LEFT JOIN houses h ON (h.houseid = he.houseid)
LEFT JOIN accounts a ON (a.acctid = he.owner)
WHERE k.owner='.$int_id.' AND k.type='.HOUSES_KEY_PRIVATE;
$res = db_query($sql);
if(!($int_count = db_num_rows($res)))
{
$str_out .= 'Spieler verfügt über keine Gemachschlüssel!';
}
else
{
$str_out .= 'Spieler verfügt über '.$int_count.' Gemachschlüssel: