ER-Sourceviewer 2007 v2.0

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.

Zur Source springen

Verzeichnisse:


Source anzeigen

Nach Oben


<?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='); 
    }
}

?>