Autor:   Daniel Rathjen <webmaster@chaosonline.de>
Version: 2.0 (02.07.2005)


Anleitung:

--- neue Scripte uploaden
--- SQL-Anweisungen aus der houses.php ausfhren
    ACHTUNG: Wenn es schon huser gibt, mu das SQL angepat werden.
    In dem Fall mu folgendes entfernt werden:
    	DROP TABLE IF EXISTS `houses`;
    Auerdem mssen dann die 'Local changes' (ganz oben) ausgefhrt werden.
    Dabei mu {id-of-treasury} durch die ID des Schatzkammer-Moduls ersetzt werden.
    Da das natrlich noch nicht vorhanden ist, am besten 99 nehmen und nachtrglich ndern.
    Die 'Local changes' geschehen auf eigene Gefahr, ich bernehme keine Verantwortung fr ggf.
    verlorenes Gold oder verlorene Gems. ;) Wer nicht erfahren ist im Umgang mit SQL, sollte
    auf jeden Fall mit einem leeren Wohnviertel wieder beginnen.
    Dafr ist folgendes zustzlich zur angegebenen Tabellenstruktur auszufhren:
    	UPDATE accounts SET house=0, housekey=0;
    	DELETE FROM items WHERE class="Schlssel";
    Direkt nach der Installation (also nach den unten genannten nderungen) mu ber den
    Hausmeister ein neuer Wohnort eingetragen werden. Wenn das nicht der Fall ist, wird
    man immer per Badnav aus dem Wohnviertel rauskommen (und drinnen nix machen knnen).
    Der neue Wohnort sollte - weil es ja der erste ist - die ID 1 haben. Wenn nicht, ist
    die nderung in der village.php entsprechend anzupassen.
    Weiterhin sollten im Hausmeister die Module installiert werden; als Minimum ist das Modul
    "default" ntig.
    Um online Module erstellen/editieren zu knnen, mu Schreibzugriff auf den Ordner
    housemodules mglich sein (CHMOD 777).
    Zustzlich - und nicht in dieser Anleitung erwhnt - mu die houseshop.php an beliebiger
    Stelle (z.B. village.php) verlinkt werden.
    	
--- Voraussetzungen:
    Das Script geht von einem bereits installierten Haustier-Mod aus.
    Ist das der Fall, kann der Teil der Tabellenstruktur nach
    	* pet-update 20041212:
    weggelassen werden.
    Ist das nicht der Fall, aber soll es auch keine Haustiere geben, ist aus Kombatibilittsgrnden
    zumindest die Ausfhrung des ersten SQL-Querys der Haustiere ntig:
    	ALTER TABLE `accounts`
    		ADD `petid` INT UNSIGNED NOT NULL AFTER `hashorse`,
    		ADD `petfeed` DATETIME NOT NULL AFTER `petid` ;

--- ffne village.php
--- finde
	if (@file_exists("houses.php")) addnav("Wohnviertel","houses.php");
--- ersetze durch
	if (@file_exists("houses.php")) addnav("Wohnviertel","houses.php?location=1");

--- ffne setnewday.php
--- finde
	$sql = "UPDATE houses SET owner=0,status=3 WHERE owner=$row[acctid] AND status=1";
	db_query($sql);
	$sql = "UPDATE houses SET owner=0,status=4 WHERE owner=$row[acctid] AND status=0";
	db_query($sql);
--- ersetze durch
	$sql = "UPDATE houses SET owner=0 WHERE owner=$row[acctid]";
	db_query($sql);
--- finde
	$old+=5;
	$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
	.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
	.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
	.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
	.")";
	//echo "<pre>".HTMLEntities($sql)."</pre>";
	db_query($sql) or die(db_error(LINK));
	// end cleanup
--- ersetze durch
	$old+=5;
	$delaccts = '0';
	$sql = "SELECT acctid FROM accounts WHERE superuser<=1 AND (1=0\n"
	.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*$old)."\")\n":"")
	.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*$new)."\" AND level=1 AND dragonkills=0)\n":"")
	.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*($trash+1))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
	.")";
	$result = db_query($sql);
	while ($row = db_fetch_assoc($result)) {
		$delaccts .= ','.$row['acctid'];
		if ($row['acctid']==getsetting("hasegg",0)) savesetting("hasegg","0");
	}
	$sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)";
	db_query($sql) or die(db_error(LINK));
	$sql = "UPDATE houses SET owner=0 WHERE owner IN ($delaccts)";
	db_query($sql);
	$sql = "UPDATE items SET owner=0 WHERE owner IN ($delaccts) AND class='Schlssel'";
	db_query($sql);
	$sql = "DELETE FROM items WHERE owner IN ($delaccts) AND owner!=0";
	db_query($sql);
	$sql = "DELETE FROM pvp WHERE acctid2 IN ($delaccts) OR acctid1 IN ($delaccts)";
	db_query($sql) or die(db_error(LINK));
	$sql = "DELETE FROM mail WHERE msgto IN ($delaccts)";
	db_query($sql) or die(db_error(LINK));
	$sql = "UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto IN ($delaccts)";
	db_query($sql);
	// end cleanup
	
--- ffne configuration.php
--- finde
	$setup = array(
--- fge davor ein
	$modules = '';
	$sql = 'SELECT moduleid, modulename FROM housemodules ORDER BY modulename ASC';
	$result = db_query($sql);
	while ($row = db_fetch_assoc($result)) $modules .= ','.$row['moduleid'].','.$row['modulename'];
	db_free_result($result);
--- finde
	"maxbounties"=>"Anzahl an Kopfgeldern die ein Spieler pro Tag aussetzen darf,int",
--- fge danach ein
	"Huser,title",
	"startbuild"=>"Neue Huser knnen bers Wohnviertel gebaut werden,bool",
	"newhousekeys"=>"Anzahl Schlssel die neue Huser haben,int",
	"housekeymindk"=>"Mindest-DK um Schlssel zu erhalten,int",
	"mindkbuild"=>"Mindest-Drachenkills um Huser zu bauen,int",
	"minlevelbuild"=>"Mindest-Level um Huser zu bauen (nur wenn ein Spieler genau die Mindest-DK hat),int",
	"defaulthousemodule"=>"Standard-Hausmodul (wird beim Betreten angezeigt),enum$modules",