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

// 24072004

require_once "common.php";

if (
$session['user']['alive']==false){
    
$session['user']['location']=0;
    
redirect("shades.php");
}
$session['user']['location']=0;
$balance getsetting("creaturebalance"0.33);
if (
getsetting("pandorra",0) == $session['user']['acctid']){
    
redirect("pandorra_misc.php?op=forest");
}

// Handle updating any commentary that might be around.
addcommentary();

//savesetting("creaturebalance","0.33");
$fight false;
page_header("Das Gebirge");
$session[user][ort]='Das Gebirge';

if (
$session[user][superuser]>&& $HTTP_GET_VARS[specialinc]!=""){
  
$session[user][specialinc] = $HTTP_GET_VARS[specialinc];
}
if (
$session[user][specialinc]!=""){
  
//echo "$x including special2/".$session[user][specialinc];

    
output("`^`c`bEtwas Besonderes!`c`b`0");
    
$specialinc $session[user][specialinc];
    
$session[user][specialinc] = "";
    include(
"special/".$specialinc);
    if (!
is_array($session['allowednavs']) || count($session['allowednavs'])==0) {
        
forest(true);
        
//output(serialize($session['allowednavs']));
    
}
    
page_footer();
    exit();
}
if (
$HTTP_GET_VARS[op]=="run"){
    if (
e_rand()%== 0){
        
output ("`c`b`&Du bist erfolgreich vor deinem Gegner geflohen!`0`b`c`n");
        
$session[user][reputation]--;
        
$HTTP_GET_VARS[op]="";
    }else{
        
output("`c`b`\$Dir ist es nicht gelungen deinem Gegner zu entkommen!`0`b`c");
    }
}
if (
$HTTP_GET_VARS[op]=="search"){
    
checkday();
  if (
$session[user][turns]<=0){
    
output("`\$`bDu bist zu müde um heute das Gebirge weiter zu durchsuchen. Vielleicht hast du morgen mehr Energie dazu.`b`0");
    
$HTTP_GET_VARS[op]="";
  }else{
      
$session[user][drunkenness]=round($session[user][drunkenness]*.9,0);
      
$hatring db_num_rows(db_query("SELECT * FROM items WHERE class='Magische Ringe' AND name='`6Ring des Besonderen`0' AND owner=".$session['user']['acctid']));
    if (
$hatring 0){
        
$specialtychance 1;
    }else{
        
$specialtychance e_rand()%7;
    }
      if (
$specialtychance==0){
          
output("`^`c`bEtwas Besonderes!`c`b`0");
            if (
$handle opendir("special")){
              
$events = array();
              while (
false !== ($file readdir($handle))){
                  if (
strpos($file,".php")>0){
                        
// Skip the darkhorse if the horse knows the way
                      
if ($session['user']['hashorse'] > &&
                            
$playermount['tavern'] > &&
                          
strpos($file"darkhorse") !== false) {
                          continue;
                      }
                      
array_push($events,$file);
                    }
                }
                
$x e_rand(0,count($events)-1);
                if (
count($events)==0){
                  
output("`b`@Arrr, dein Administrator hat entschieden, dass es dir nicht erlaubt ist, besondere Ereignisse zu haben.  Beschwer dich bei ihm, nicht beim Programmierer.");
                }else{
                  
$y $HTTP_GET_VARS[op];
                    
$HTTP_GET_VARS[op]="";
                  
//echo "$x including special2/".$events[$x];
                  
include("special2/".$events[$x]);
                    
$HTTP_GET_VARS[op]=$y;
                }
            }else{
              
output("`c`b`\$FEHLER!!!`b`c`&Es ist nicht möglich die besonderen Ereignisse zu öffnen! Bitte benachrichtige den Administrator!!");
            }
          if (
$nav==""forest2(true);
      }else{
      
$session[user][turns]--;
          
$battle=true;
            if (
e_rand(0,2)==1){
                
$plev = (e_rand(1,5)==1?1:0);
                
$nlev = (e_rand(1,3)==1?1:0);
            }else{
              
$plev=0;
                
$nlev=0;
            }
            if (
$HTTP_GET_VARS['type']=="slum"){
              
$nlev++;
                
output("`\$Du steuerst den Abschnitt des Gebirges an, von dem du weißt, dass sich dort Feinde aufhalten, die dir ein bisschen angenehmer sind.`0`n");
                
$session[user][reputation]--;
            }
            if (
$HTTP_GET_VARS['type']=="thrill"){
              
$plev++;
                
output("`\$Du steuerst den Abschnitt des Gebirges an, in dem sich Kreaturen deiner schlimmsten Albträume aufhalten, in der Hoffnung dass Du eine findest die verletzt ist.`0`n");
                
$session[user][reputation]++;
            }
            
$targetlevel = ($session['user']['level'] + $plev $nlev );
            if (
$targetlevel<1$targetlevel=1;
            
$sql "SELECT * FROM creatures WHERE creaturelevel = $targetlevel ORDER BY rand(".e_rand().") LIMIT 1";
            
$result db_query($sql) or die(db_error(LINK));
            
$badguy db_fetch_assoc($result);
            
$expflux round($badguy['creatureexp']/10,0);
            
// more XP per DK
            // $badguy['creatureexp']+=round($session['user']['dragonkills']/300 * $badguy['creatureexp']);

            
$expflux e_rand(-$expflux,$expflux);
            
$badguy['creatureexp']+=$expflux;

            
//make badguys get harder as you advance in dragon kills.
            //output("`#Debug: badguy gets `%$dk`# dk points, `%+$atkflux`# attack, `%+$defflux`# defense, +`%$hpflux`# hitpoints.`n");
            
$badguy['playerstarthp']=$session['user']['hitpoints'];
            
$dk 0;
            while(list(
$key$val)=each($session[user][dragonpoints])) {
                if (
$val=="at" || $val=="de"$dk++;
            }
            
$dk += (int)(($session['user']['maxhitpoints']-
                (
$session['user']['level']*10))/5);
            if (!
$beta$dk round($dk 0.250);
            else 
$dk round($dk,0);

            
$atkflux e_rand(0$dk);
            if (
$beta$atkflux min($atkfluxround($dk/4));
            
$defflux e_rand(0, ($dk-$atkflux));
            if (
$beta$defflux min($deffluxround($dk/4));
            
$hpflux = ($dk - ($atkflux+$defflux)) * 5;
            
$badguy['creatureattack']+=$atkflux;
            
$badguy['creaturedefense']+=$defflux;
            
$badguy['creaturehealth']+=$hpflux;
            if (
$beta) {
                
$badguy['creaturedefense']*=0.66;
                
$badguy['creaturegold']*=(1+(.05*$dk));
                if (
$session['user']['race']==4$badguy['creaturegold']*=1.1;
            } else {
                if (
$session['user']['race']==4$badguy['creaturegold']*=1.2;
            }
            
$badguy['diddamage']=0;
            
$session['user']['badguy']=createstring($badguy);
            if (
$beta) {
                if (
$session['user']['superuser']>=3){
                    
output("Debug: $dk dragon points.`n");
                    
output("Debug: +$atkflux attack.`n");
                    
output("Debug: +$defflux defense.`n");
                    
output("Debug: +$hpflux health.`n");
                }
            }
        }
    }
}
if (
$HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run"){
    
$battle=true;
}
if (
$battle){
  include(
"battle.php");
//    output(serialize($badguy));
    
if ($victory){
        if (
getsetting("dropmingold",0)){
            
$badguy[creaturegold]=e_rand($badguy[creaturegold]/4,3*$badguy[creaturegold]/4);
        }else{
            
$badguy[creaturegold]=e_rand(0,$badguy[creaturegold]);
        }
        
$expbonus round(
            (
$badguy[creatureexp] *
                (
.25 *
                    (
$badguy[creaturelevel]-$session[user][level])
                )
            ) - 
$badguy[creatureexp],0
        
);
        
output("`b`&$badguy[creaturelose]`0`b`n");
        
output("`b`\$Du hast $badguy[creaturename] erledigt!`0`b`n");
        if (
$badguy['creaturegold']){
            
output("`#Du erbeutest `^$badguy[creaturegold]`# Goldstücke!`n");
            if(
$session[user][memberid]<>0){
                require_once (
"lib/gilden.php");
                
loadguild($session[user][memberid]);
                if(
$session[guild][gold]<maxgold){
                    
guild_update('gold',$session[guild][gold]+=round(($badguy[creaturegold]/100)*15));
                    
output("`#Davon gehen `^".round(($badguy[creaturegold]/100)*15)."`# Gold (`^15`#%) in deine Gildenkasse.`n");
                    
$session[user][gold]-=round(($badguy[creaturegold]/100)*15);
                    
$session[user][wkggold]+=round(($badguy[creaturegold]/100)*15);
                }else{
                    
output("`#Leider ist eure Gildenkasse schon voll genug.`n");
                }
            }
               
//debuglog("received {$badguy['creaturegold']} gold for slaying a monster.");
          
}

if (
getsetting("schneeball","0") == && getsetting("schneetunier","0") > 0){
    if (
schneeballwieviel() < 132){
        
$findwhat = array(1=>"<img src='images/schneeball.gif' alt='Schneeball'>","<img src='images/wrmflasche.gif' alt='Wärmflasche'>","<img src='images/tasse.gif' alt='Glühwein'>","<img src='images/schal.gif' alt='Schal'>");
        
$findname = array(1=>"Schneeball","Wärmflasche","Glühwein","Schal");
        
$descriptions = array(1=>"Ein kleiner Schneeball, der prima dazu geeignet ist andere damit zu bewerfen.","Eine tolle Wärmflasche, mit der sich manch einer besser fühlen würde.","Eine Tasse mit hochprozentigem Glühwein, der von innenheraus wärmt.","Ein kuscheliger Schal, der einen im Winter schön warm hält.");
        if (
e_rand(1,69)==7){
            
$glueckssache e_rand(1,4);
            
output("`c<table>
                        <tr>
                            <td valign='middle'>`n`^`bDu findest beim durchsuchen deines Gegners, eine/einen "
.$findwhat[$glueckssache]." und steckst es sogleich in deine Tasche.</td>
                        </tr>
                    </table>`c`n"
,true);
            
db_query("INSERT INTO items (name,class,owner,gold,description) VALUES ('".$findname[$glueckssache]."','Winterliches',".$session['user']['acctid'].",'1000','".$descriptions[$glueckssache]."')");
        }
        if (
getsetting("weathernerv","0") == "Schneesturm"){
            if (
e_rand(1,40)==7){
                
$glueckssache2 1;
                
output("`c<table>
                            <tr>
                                <td valign='middle'>`n`^`bWegen dem aktuellen Wetter findest beim durchsuchen deines Gegners, noch einen "
.$findwhat[$glueckssache2]." und steckst ihn auch gleich in deine Tasche.</td>
                            </tr>
                        </table>`c`n"
,true);
                
db_query("INSERT INTO items (name,class,owner,gold,description) VALUES ('".$findname[$glueckssache2]."','Winterliches',".$session['user']['acctid'].",'1000','".$descriptions[$glueckssache2]."')");
            }
        }
    }
}

        
//find something
        
if ($findit == 2) { //gem
            
output("`&Du findest EINEN EDELSTEIN!`n`#");
            if(
$session[user][memberid]<>0){
                
$zufall12=e_rand(1,5);
                if (
$zufall12 == 4) {
                    require_once (
"lib/gilden.php");
                    
loadguild($session[user][memberid]);
                    if(
$session[guild][gems]<maxgems){
                        
guild_update('gems',$session[guild][gems]+=1);
                        
output("`#Du findest einen Edeltstein. Du denkst das es Zeit ist für eine kleine Spende an deine Gilde, daher legst du ihn für die Gildenkasse an die Seite.`n");
                        
$session[user][wkggems]++;
                    }else{
                        
output("`#Leider ist eure Gildenschatztruhe schon voll genug.`n");
                    }
                }else{
                    
$session['user']['gems']++;
                }
            }else{
                
$session['user']['gems']++;
            }

              
//debuglog("found a gem when slaying a monster.");
        
}
        
//if ($findit == 5) $session['user']['donation']+=1;

        
if ($findit == 20 && e_rand(1,4)==3){ // item
            
$sql="SELECT * FROM items WHERE owner=0 AND (class='Beute.Prot' OR class='Zaub.Prot') ORDER BY rand(".e_rand().") LIMIT 1";
            
$result db_query($sql) or die(db_error(LINK));
            
$row2 db_fetch_assoc($result);
            if (
$row2[name]){
                if (
$row2['class']=="Beute.Prot"){
                    
$sql="INSERT INTO items(name,class,owner,gold,gems,hvalue,description) VALUES ('".addslashes($row2[name])."','Beute',".$session['user']['acctid'].",".$row2['gold'].",".$row2['gems'].",".$row2['hvalue'].",'".addslashes($row2[description])."')";
                }else if (
$row2['class']=="Zaub.Prot"){
                    
$row2[description].=" (gebraucht)";
                    
$row2[value1]=e_rand(1,$row2[value2]);
                    
$row2[gold]=$row2[gold]*(($row2[value1]+1)/($row2[value2]+1));
                    
$sql="INSERT INTO items(name,class,owner,gold,gems,value1,value2,hvalue,description,buff) VALUES ('".addslashes($row2[name])."','Zauber',".$session[user][acctid].",$row2[gold],0,$row2[value1],$row2[value2],$row2[hvalue],'".addslashes($row2[description])."','".addslashes($row2[buff])."')";
                }else{
                    
$sql "UPDATE items SET owner=".$session[user][acctid]." WHERE id=$row2[id]";
                }
                
db_query($sql) or die(sql_error($sql));
                
output("`n`qBeim Durchsuchen von $badguy[creaturename] `qfindest du `&$row2[name]`q! ($row2[description])`n`n`#");
            }
        }
        if (
$findit == 25 && e_rand(1,6)==2){ // armor
            
$sql "SELECT * FROM armor WHERE defense<=".$session[user][level]." ORDER BY rand(".e_rand().") LIMIT 1";
            
$result2 db_query($sql) or die(db_error(LINK));
            if (
db_num_rows($result2)>0){
                
$row2 db_fetch_assoc($result2);
                
$row2['value']=round($row2['value']/10);
                
$sql="INSERT INTO items(name,class,owner,gold,value1,description) VALUES ('".addslashes($row2[armorname])."','Rüstung',".$session[user][acctid].",$row2[value],$row2[defense],'Gebrauchte Level $row2[level] Rüstung mit $row2[defense] Verteidigung.')";
                
db_query($sql) or die(sql_error($sql));
                
output("`n`QBeim Durchsuchen von $badguy[creaturename] `Qfindest du die Rüstung `%$row2[armorname]`Q!`n`n`#");
            }
        }
        if (
$findit == 26 && e_rand(1,6)==2){ // weapon
            
$sql "SELECT * FROM weapons WHERE damage<=".$session[user][level]." ORDER BY rand(".e_rand().") LIMIT 1";
            
$result2 db_query($sql) or die(db_error(LINK));
            if (
db_num_rows($result2)>0){
                
$row2 db_fetch_assoc($result2);
                
$row2['value']=round($row2['value']/10);
                
$sql="INSERT INTO items(name,class,owner,gold,value1,description) VALUES ('".addslashes($row2[weaponname])."','Waffe',".$session[user][acctid].",$row2[value],$row2[damage],'Gebrauchte Level $row2[level] Waffe mit $row2[damage] Angriffswert.')";
                
db_query($sql) or die(sql_error($sql));
                
output("`n`QBeim Durchsuchen von $badguy[creaturename] `Qfindest du die Waffe `%$row2[weaponname]`Q!`n`n`#");
            }
        }

        if (
$expbonus>0){
          
output("`#*** Durch die hohe Schwierigkeit des Kampfes erhältst du zusätzlich `^$expbonus`# Erfahrungspunkte! `n($badguy[creatureexp] + ".abs($expbonus)." = ".($badguy[creatureexp]+$expbonus).") ");
        }else if (
$expbonus<0){
          
output("`#*** Weil dieser Kampf so leicht war, verlierst du `^".abs($expbonus)."`# Erfahrungspunkte! `n($badguy[creatureexp] - ".abs($expbonus)." = ".($badguy[creatureexp]+$expbonus).") ");
        }
        
output("Du bekommst insgesamt `^".($badguy[creatureexp]+$expbonus)."`# Erfahrungspunkte!`n`0");
        
$session[user][gold]+=$badguy[creaturegold];
        
$session[user][experience]+=($badguy[creatureexp]+$expbonus);
        
$creaturelevel $badguy[creaturelevel];
        
$HTTP_GET_VARS[op]="";
        
//if ($session[user][hitpoints] == $session[user][maxhitpoints]){
        
if ($badguy['diddamage']!=1){
            if (
$session[user][level]>=getsetting("lowslumlevel",4) || $session[user][level]<=$creaturelevel){
                
output("`b`c`&~~ Perfekter Kampf! ~~`\$`n`bDu erhältst eine Extrarunde!`c`0`n");
                
$session[user][turns]++;
                
/*if ($expbonus>0){
                    $session['user']['donation']+=1;
                }*/
            
}else{
                
output("`b`c`&~~ Perfekter Kampf! ~~`b`\$`nEin schwierigerer Kampf hätte dir eine extra Runde gebracht.`c`n`0");
            }
        }
        
$dontdisplayforestmessage=true;
        
addhistory(($badguy['playerstarthp']-$session['user']['hitpoints'])/max($session['user']['maxhitpoints'],$badguy['playerstarthp']));
        
$badguy=array();
    }else{
        if(
$defeat){
            
addnav("Tägliche News","news.php");
            
$sql "SELECT taunt FROM taunts ORDER BY rand(".e_rand().") LIMIT 1";
            
$result db_query($sql) or die(db_error(LINK));
            
$taunt db_fetch_assoc($result);
            
$taunt str_replace("%s",($session[user][sex]?"sie":"ihn"),$taunt[taunt]);
            
$taunt str_replace("%o",($session[user][sex]?"sie":"er"),$taunt);
            
$taunt str_replace("%p",($session[user][sex]?"ihr":"sein"),$taunt);
            
$taunt str_replace("%x",($session[user][weapon]),$taunt);
            
$taunt str_replace("%X",$badguy[creatureweapon],$taunt);
            
$taunt str_replace("%W",$badguy[creaturename],$taunt);
            
$taunt str_replace("%w",$session[user][name],$taunt);
            
addhistory(1);
            
addnews("`%".$session[user][name]."`5 wurde im Gebirge von $badguy[creaturename] niedergemetzelt.`n$taunt");
            
$session[user][alive]=false;
            
debuglog("lost {$session['user']['gold']} gold when they were slain in the forest");
            
$session[user][gold]=0;
            
$session[user][hitpoints]=0;
            
$session[user][experience]=round($session[user][experience]*.9,0);
            
$session[user][badguy]="";
            
output("`b`&Du wurdest von `%$badguy[creaturename]`& niedergemetzelt!!!`n");
            
output("`4Dein ganzes Gold wurde dir abgenommen!`n");
            
output("`410% deiner Erfahrung hast du verloren!`n");
            
output("Du kannst morgen weiter kämpfen.");

            
page_footer();
        }else{
          
fightnav();
        }
    }
}

if (
$HTTP_GET_VARS[op]==""){
    
// Need to pass the variable here so that we show the forest message
    // sometimes, but not others.
    
forest($dontdisplayforestmessage);
}

page_footer();

function 
addhistory($value){
/*
    global $session,$balance;
    $history = unserialize($session['user']['history']);
    $historycount=50;
    for ($x=0;$x<$historycount;$x++){
        if (!isset($history[$x])) $history[$x]=$balance;
    }
    array_shift($history);
    array_push($history,$value);
    $history = array_values($history);
    for ($x=0;$x<$historycount;$x++){
        $history[$x] = round($history[$x],4);
        if ($session['user']['superuser']>=3) output("History: {$history[$x]}`n");
    }
    $session['user']['history']=serialize($history);
 */
}
?>