Alle Dateien, die hier eingesehen werden können, sind unter der GNU GPL lizenziert. Wenn du etwas darin findest, das du gerne hättest, so schreibe mir doch bitte eine Anfrage damit ich, wenn ich es rausgeben will, alle Änderungen raussuchen könnte. Denn ich übernehme keine Verantwortung, solltest du was rausnehmen und es geht nicht. Und Support deswegen geb ich schon gar nicht.
Solltest du eine Schwachstelle im Code finden, sei es eine kritische Lücke oder eine Möglichkeit zu cheaten, dann bitte ich dich, mir das mitzuteilen. Solltest du beim cheaten erwischt werden, werde ich deinen Account eigenhändig löschen & bannen; Solltest du meinen Server angreifen, so werde ich meine Rechtsschutzversicherung kontaktieren.
Verzeichnisse:
<?php
Function module_getinfo_chamber ()
{
$chamberinfo = array (
'modulename' => 'chamber',
'modulefile' => basename(__FILE__),
'moduleauthor' => 'MySql',
'moduleversion' => '1.0',
'built_in' => '1',
'linkcategory' => 'Westflügel',
'linktitle' => 'Die Schatzkammer',
'showto' => 'owner,guest'
);
return $chamberinfo;
}
Function module_install_chamber ()
{
$info = module_getinfo_chamber();
$insert = 'INSERT INTO housemodules (modulefile,modulename,moduleversion,moduleauthor,built_in,linkcategory,linktitle,showto)
VALUES ("'.$info['modulefile'].'","'.$info['modulename'].'","'.$info['moduleversion'].'","'.$info['moduleauthor'].'",
"'.$info['built_in'].'","'.$info['linkcategory'].'","'.$info['linktitle'].'","'.$info['showto'].'")';
db_query($insert);
$moduleid = db_insert_id(LINK);
}
Function module_uninstall_chamber ()
{
$info = module_getinfo_chamber();
$moduleid = getmoduleid($info['modulename']);
$delete = 'DELETE FROM housemodules WHERE moduleid='.$moduleid;
db_query($delete);
$delete = 'DELETE FROM housemoduledata WHERE moduleid='.$moduleid;
db_query($delete);
}
Function module_build_chamber ($houseid)
{
$info = module_getinfo_chamber();
$moduleid = getmoduleid($info['modulename']);
$insert = 'INSERT INTO housemoduledata (moduleid, name, houseid, value)
VALUES ('.$moduleid.',"#activated#",'.$houseid.',"1")';
db_query($insert);
}
Function module_destroy_chamber ($houseid)
{
$info = module_getinfo_chamber();
$moduleid = getmoduleid($info['modulename']);
$delete = 'DELETE FROM housemoduledata WHERE moduleid='.$moduleid.' AND houseid='.$houseid;
db_query($sql);
}
Function module_show_chamber ()
{
global $session;
$select = 'SELECT * FROM items WHERE value1='.$session['user']['specialmisc']['houseid'].' AND class="Treasure"';
$result = db_query($select) or die(db_error(LINK));
$access = db_fetch_assoc($result);
if ($session['user']['acctid'] == $access['owner'] OR $session['user']['house'] == $session['user']['specialmisc']['houseid'])
{
switch ($_GET['act'])
{
case '':
$link = "houses.php?op=drin";
$select = 'SELECT gold,maxgold,gems,maxgems,housename,houseid,owner FROM houses WHERE houseid = '.$session['user']['specialmisc']['houseid'];
$result = db_query($select);
$gebaus = db_fetch_assoc($result);
output('`c`b'.$gebaus['housename'].' `D(In der Schatzkammer)`c`b`n`n'.
'`DDu befindest dich in der Schatzkammer des Hauses Nr. '.$gebaus['houseid'].
'. `D`nHier kannst du dein Gold und Edelsteine sparen, oder mit anderen deine '.
'Schätze teilen. `nEs ist jetzt `^'.getgametime().'`D Uhr.`n`n');
output('<form action="houses.php?op=drin&trans=trans" method="post">'.
'<table align="center">'.
'<tr class="trhead">'.
'<td colspan=2>`b`^Gold verfügbar: `i'.$gebaus['gold'].'`0`i/`i`^'.$gebaus['maxgold'].'`i`b</td>'.
'<td colspan=2>`b`#Edelsteine verfügbar: `i'.$gebaus['gems'].'`0`i/`i`#'.$gebaus['maxgems'].'`i`b</td>'.
'</tr>'.
'<tr>'.
'<td>`^Herein legen:</td><td><input name="givegold" value="0"></td>'.
'<td>`#Herein legen:</td><td><input name="givegems" value="0"></td>'.
'</tr>'.
'<tr>'.
'<td>`^Heraus nehmen:</td><td><input name="takegold" value="0"></td>'.
'<td>`#Heraus nehmen:</td><td><input name="takegems" value="0"></td>'.
'</tr>'.
'</table>'.
'<div align="center"><input type="submit" class="button" value="Bestätigen"></div>'.
'</form><br /><br />',true);
addnav('Optionen');
addnav('Zum Flur','houses.php?op=drin&module=');
addnav('','houses.php?op=drin&trans=trans');
if ($session['user']['house'] == $session['user']['specialmisc']['houseid'])
{
addnav('Schlüssel');
addnav('Schlüssel vergeben','houses.php?op=drin&act=givekey');
addnav('Schlüssel nehmen','houses.php?op=drin&act=takekey');
}
if ($_GET['trans'] == 'trans')
{
if ($_POST['givegold'] > 0)
{
if ($_POST['givegold'] > $session['user']['gold'])
{
$session['user']['specialmisc']['message'] .= '`c`b`$Soviel Gold hast du doch gar nicht bei dir!`c`b`0`n';
redirect($link);
}
elseif (abs((int)$_POST[givegold]) > (round($gebaus[maxgold])-$gebaus[gold]))
{
$session['user']['specialmisc']['message'] .= '`c`b`$Soviel Gold passt nicht mehr in die Schatztruhe!`c`b`0`n';
}
else {
$gebaus['gold']+=$_POST['givegold'];
$session['user']['gold']-=$_POST['givegold'];
$section = 'chamber-'.$session['user']['specialmisc']['houseid'];
db_query('UPDATE houses SET gold = '.$gebaus['gold'].' WHERE houseid='.$gebaus['houseid']);
db_query('INSERT INTO commentary (postdate,section,author,comment,emote) VALUES (now(),"'.$section.'",'.$session[user][acctid].',"`\&packt `^'.$_POST['givegold'].' Goldstücke`& in den gemeinsamen Schatz.",1)');
redirect($link);
}
}
if ($_POST['takegold'] > 0)
{
if ($gebaus[gold] < abs((int)$_POST[takegold]))
{
$session['user']['specialmisc']['message'] .= '`c`b`$Soviel Gold ist doch gar nicht mehr in die Schatztruhe!`c`b`0`n';
redirect($link);
}
else {
$gebaus['gold']-=$_POST['takegold'];
$session['user']['gold']+=$_POST['takegold'];
$section = 'chamber-'.$session['user']['specialmisc']['houseid'];
db_query('UPDATE houses SET gold = '.$gebaus['gold'].' WHERE houseid='.$gebaus['houseid']);
db_query('INSERT INTO commentary (postdate,section,author,comment,emote) VALUES (now(),"'.$section.'",'.$session[user][acctid].',"`\&nimmt `^'.$_POST['takegold'].' Goldstücke`& aus dem gemeinsamen Schatz.",1)');
redirect($link);
}
}
if ($_POST['givegems'] > 0)
{
if ($_POST['givegems'] > $session['user']['gems'])
{
$session['user']['specialmisc']['message'] .= '`c`b`$Soviele Edelsteine hast du doch gar nicht bei dir!`c`b`0`n';
redirect($link);
}
elseif (abs((int)$_POST[givegems]) > (round($gebaus[maxgems])-$gebaus[gems]))
{
$session['user']['specialmisc']['message'] .='`c`b`$Soviele Edelsteine passen nicht mehr in die Schatztruhe!`c`b`0`n';
}
else {
$gebaus['gems']+=$_POST['givegems'];
$session['user']['gems']-=$_POST['givegems'];
$section = 'chamber-'.$session['user']['specialmisc']['houseid'];
db_query('UPDATE houses SET gems = '.$gebaus['gems'].' WHERE houseid='.$gebaus['houseid']);
db_query('INSERT INTO commentary (postdate,section,author,comment,emote) VALUES (now(),"'.$section.'",'.$session[user][acctid].',"`\&packt `#'.$_POST['givegems'].' Edelsteine`& in den gemeinsamen Schatz.",1)');
redirect($link);
}
}
if ($_POST['takegems'] > 0)
{
if ($gebaus[gems] < abs((int)$_POST[takegems]))
{
$session['user']['specialmisc']['message'] .= '`c`b`$Soviele Edelsteine sind doch gar nicht mehr in die Schatztruhe!`c`b`0`n';
redirect($link);
}
else {
$gebaus['gems']-=$_POST['takegems'];
$session['user']['gems']+=$_POST['takegems'];
$section = 'chamber-'.$session['user']['specialmisc']['houseid'];
db_query('UPDATE houses SET gems = '.$gebaus['gems'].' WHERE houseid='.$gebaus['houseid']);
db_query('INSERT INTO commentary (postdate,section,author,comment,emote) VALUES (now(),"'.$section.'",'.$session[user][acctid].',"`\&nimmt `#'.$_POST['takegems'].' Edelsteine`& aus dem gemeinsamen Schatz.",1)');
redirect($link);
}
}
}
output($session['user']['specialmisc']['message']);
$session['user']['specialmisc']['message'] = '';
viewcommentary('chamber-'.$session['user']['specialmisc']['houseid'],'Hier reden:',25,'sagt');
output('`n`n`n<table border="0">'.
'<tr>'.
'<td>`2`bEinen Schatzkammerschlüssel haben:`b `0</td>'.
'</tr>'.
'<tr>'.
'<td valign="top">'
,true);
$sql1 = "SELECT items.*,accounts.acctid AS aid,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1=".$session['user']['specialmisc']['houseid']." AND class='Treasure' ORDER BY id ASC";
$res = db_query($sql1) or die(db_error(LINK));
for ($i=1;$i<=db_num_rows($res);$i++)
{
$item = db_fetch_assoc($res);
if ($item[besitzer] == '')
{
output('`n`2'.$i.': `4`iVerloren`i`0');
}
else {
output('`n`2'.$i.': `&'.$item[besitzer].'`0');
}
if ($item[aid]==$gebaus[owner]) output(' (der Eigentümer) ');
}
output('</table>',true);
break;
case 'givekey':
addnav('Optionen');
addnav('Zur Schatzkammer','houses.php?op=drin');
if (empty($_POST['ziel']))
{
output('`2Einen Schlüssel für die Schatzkammer haben:`n`n');
$select = 'SELECT items.*,accounts.name AS besitzer FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE value1='.$session['user']['specialmisc']['houseid'].' AND class="Treasure" AND owner!='.$session['user']['acctid'].' ORDER BY value2 ASC';
$result = db_query($select) or die(db_error(LINK));
while ($item = db_fetch_assoc($result))
{
output('`c`& '.$item[besitzer].'`0`c');
}
$select = 'SELECT COUNT(id) AS num FROM items WHERE value1='.$session['user']['specialmisc']['houseid'].' AND class="Treasure" AND owner='.$session['user']['acctid'];
$result = db_query($select) or die(db_error(LINK));
$keynum = db_fetch_assoc($result);
if ($keynum['num']>0)
{
output('`n`2Du kannst noch `b'.$keynum['num'].'`b Schlüssel vergeben.'.
'<form action="houses.php?op=drin&act=givekey" method="post">'.
'An wen willst du einen Schlüssel übergeben? <input name="ziel">`n'.
'<input type="submit" class="button" value="Übergeben"></form>'.
'`n`nWenn du einen Schlüssel vergibst, wird der Schatz des Hauses '.
'gemeinsam genutzt. Du kannst einem Mitbewohner zwar jederzeit den '.
'Schlüssel wieder wegnehmen, '.
'aber er wird dann einen gerechten Anteil aus dem gemeinsamen Schatz bekommen.'
,true);
addnav('','houses.php?op=drin&act=givekey');
}
else {
output('`n`2Du hast keine Schlüssel mehr übrig. Vielleicht kannst du in der '.
'Jägerhütte noch einen nachmachen lassen?');
}
}
else {
if ($_GET['subfinal']==1)
{
$sql = 'SELECT acctid,name,login,lastip,emailaddress FROM accounts WHERE name="'.addslashes(rawurldecode(stripslashes($_POST['ziel']))).'" AND locked=0 AND dragonkills >= '.getsetting('housekeymindk',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 FROM accounts WHERE name LIKE "'.addslashes($name).'" AND locked=0 AND dragonkills >= '.getsetting('housekeymindk',0).' AND acctid!='.$session['user']['acctid'];
}
$result2 = db_query($sql);
if (db_num_rows($result2) == 0)
{
output('`2Es gibt niemanden mit einem solchen Namen. Versuchs nochmal.');
}
elseif (db_num_rows($result2) > 100)
{
output('`2Es gibt über 100 Krieger mit einem ähnlichen Namen. Bitte sei etwas genauer.');
}
elseif (db_num_rows($result2) > 1)
{
output('`2Es gibt mehrere mögliche Krieger, denen du einen Schlüssel übergeben kannst.`n'.
'<form action="houses.php?op=drin&act=givekey&subfinal=1" method="post">'.
'`2Wen genau meinst du? <select name="ziel">'
,true);
while ($row2 = db_fetch_assoc($result2))
{
output('<option value="'.rawurlencode($row2['name']).'">'.preg_replace('"[`]."','',$row2['name']).'</option>',true);
}
output('</select>`n`n'.
'<input type="submit" class="button" value="Schlüssel übergeben"></form>'
,true);
addnav('','houses.php?op=drin&act=givekey&subfinal=1');
}
else {
$row2 = db_fetch_assoc($result2);
$sql = 'SELECT COUNT(owner) AS zahl FROM items WHERE owner='.$row2[acctid].' AND value1='.$session['user']['specialmisc']['houseid'].' AND class="Treasure" ORDER BY id ASC';
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
if ($row2['login'] == $session['user']['login'])
{
output('`2Du kannst dir nicht selbst einen Schlüssel geben.');
}
elseif ($item['zahl']>0)
{
output('`2'.$row2[name].'`2 hat bereits einen Schlüssel!');
}
elseif (ac_check($row2))
{
output('`2Deine Charaktere dürfen leider nicht miteinander interagieren!');
}
else {
$sql = 'SELECT value2 FROM items WHERE value1='.$session['user']['specialmisc']['houseid'].' AND class="Treasure" AND owner='.$session['user']['acctid'].' ORDER BY id ASC LIMIT 1';
$result = db_query($sql) or die(db_error(LINK));
$knr = db_fetch_assoc($result);
$knr=$knr['value2'];
$sql = 'SELECT housename FROM houses WHERE houseid='.$session['user']['specialmisc']['houseid'];
$result = db_query($sql);
$row = db_fetch_assoc($result);
output('`2Du übergibst `&'.$row2[name].'`2 einen Schlüssel für dein Haus. Du '.
'kannst den Schlüssel zum Haus jederzeit wieder wegnehmen, aber '.
$row2[name].'`2 wird dann '.
'einen gerechten Anteil aus dem gemeinsamen Schatz des Hauses bekommen.`n');
$message = '`@Seid gegrüßt '.$row2[name].'`n`n'.
$session['user']['name'].'lässt Euch einen Schlüssel zur '.
'Schatzkammer des Hauses überbringen!`n'.
'Gratulation!`n`n'.
'Mit freundlichen Grüßen,`n'.
'Bote Balboa';
$title = '`@Schlüssel erhalten!`0';
systemmail($row2['acctid'],$title,$message);
$sql = 'UPDATE items SET owner='.$row2[acctid].',hvalue=0 WHERE owner='.$session['user']['acctid'].' AND class="Treasure" AND value1='.$session['user']['specialmisc']['houseid'].' AND value2='.$knr;
db_query($sql);
}
}
}
break;
case 'takekey':
addnav('Optionen');
addnav('Zur Schatzkammer','houses.php?op=drin');
if (empty($_POST['ziel']))
{
$sql = "SELECT items.owner, accounts.name FROM items LEFT JOIN accounts ON items.owner=accounts.acctid WHERE items.value1={$session['user']['specialmisc']['houseid']} AND items.class='Treasure' AND accounts.acctid > 0 AND items.owner!='{$session['user']['acctid']}' ORDER BY items.value2 ASC";
$result = db_query($sql) or die(db_error(LINK));
output("<form action='houses.php?op=drin&act=takekey' method='POST'>",true);
output("`2Wem willst du den Schlüssel wegnehmen? <select name='ziel'>",true);
while ($item = db_fetch_assoc($result))
{
output("<option value=\"".rawurlencode($item['name'])."\">".preg_replace("'[`].'","",$item['name'])."</option>",true);
}
output("</select>`n`n",true);
output("<input type='submit' class='button' value='Schlüssel abnehmen'></form>",true);
addnav("","houses.php?op=drin&act=takekey");
}
else {
$sql = "SELECT acctid,name,login,gold,gems FROM accounts WHERE name='".addslashes(rawurldecode(stripslashes($_POST['ziel'])))."'";
$result2 = db_query($sql);
$row2 = db_fetch_assoc($result2);
output("`2Du verlangst den Schlüssel von `&$row2[name]`2 zurück.`n");
$sql = "SELECT COUNT(id) AS num FROM items WHERE value1={$session['user']['specialmisc']['houseid']} AND class='Treasure' AND owner!=0 AND owner!=".$session['user']['acctid'];
$result = db_query($sql) or die(db_error(LINK));
$keynum = db_fetch_assoc($result);
$sql = 'SELECT housename FROM houses WHERE houseid='.$session['user']['specialmisc']['houseid'];
$result = db_query($sql);
$row = db_fetch_assoc($result);
$select = 'SELECT gold,gems FROM houses WHERE houseid='.$session['user']['specialmisc']['houseid'];
$result = db_query($select);
$gebaus = db_fetch_assoc($result);
$goldinhouse = $gebaus['gold'];
$gemsinhouse = $gebaus['gems'];
$goldgive = round($goldinhouse / ($keynum['num']+1));
$gemsgive = round($gemsinhouse / ($keynum['num']+1));
if ($gemsgive > 0) $getstr = "`%$gemsgive Edelsteine`2";
else $getstr = '';
if ($goldgive > 0)
{
if ($getstr!='') $getstr .= ' und ';
$getstr .= "`^$goldgive Gold`2 auf die Bank";
}
$message = '`@Seid gegrüßt '.$row2[name].'`@,`n'.
$session['user']['name'].'`@ hat Euch den Schatzkammerschlüssel,`n'.
'zu seinem Haus wieder abgenommen!`n`n'.
'Du bekommst `^'.$givegold.' Goldstücke`@ und `#'.$givegems.' Edelsteine`@ aus der Schatztruhe!'.
'Mit freundlichen Grüßen,`n'.
'Bote Balboa.';
$title = '`@Schlüssel zurückverlangt!`0';
systemmail($row2['acctid'],$title,$message);
output("$row2[name]`2 bekommt `Y$goldgive Gold`2 und `%$gemsgive Edelsteine`2 aus dem gemeinsamen Schatz.");
$sql = "UPDATE items SET owner={$session['user']['acctid']},hvalue=0 WHERE owner=$row2[acctid] AND class='Treasure' AND value1=".$session['user']['specialmisc']['houseid'];
db_query($sql);
$sql = "UPDATE accounts SET goldinbank=goldinbank+$goldgive,gems=gems+$gemsgive WHERE acctid=".$row2['acctid'];
db_query($sql);
$gebaus['gold']-=$goldgive;
$gebaus['gems']-=$gemsgive;
db_query('UPDATE houses SET gold='.$gebaus['gold'].', gems='.$gebaus['gems'].' WHERE houseid='.$session['user']['specialmisc']['houseid']);
}
break;
}
}
else {
output('Du hast hier nichts zu suchen!');
addnav('Optionen');
addnav('Zum Flur','houses.php?op=drin&module=');
}
}
?>