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

// 15082004

require_once "common.php";

if (
$session['user']['alive']) redirect("village.php");

page_header("Behandlungsraum");
checkday();
$session['bufflist']=array();
$session['user']['drunkenness'] = 0;
$max $session['user']['level'] * 50;
$favortoheal round(10 * ($max-$session['user']['soulpoints'])/$max);

if (
$_GET['op']=="search"){
    if (
$session['user']['gravefights']<=0){
        
output("`À`bFür heute hast du eindeutig genug.`b`0");
        
$_GET['op']="";
    }else{
        
$session['user']['gravefights']--;
          
$battle=true;
          
$sql "SELECT * FROM creatures WHERE location=1 ORDER BY rand(".e_rand().") LIMIT 1";
        
$result db_query($sql) or die(db_error(LINK));
        
$badguy db_fetch_assoc($result);
        
$level $session['user']['level'];
        
$shift 0;
        if (
$level 5$shift = -1;
        
$badguy['creatureattack'] = $shift + (int)(($level-1) * 1.5);
        
// Make graveyard creatures easier.
        
$badguy['creaturedefense'] = (int)(($shift + (($level-1) * 1.5)) * .7);
        
$badguy['creaturehealth'] = $level 50;
        
$badguy['creatureexp'] = e_rand(10 round($level/3),20 round($level/3));
        
$badguy['creaturelevel'] = $level;
        
//output("`#DEBUG: Creature level: {$badguy['creaturelevel']}`n");
        //output("`#DEBUG: Creature attack: {$badguy['creatureattack']}`n");
        //output("`#DEBUG: Creature defense: {$badguy['creaturedefense']}`n");
        //output("`#DEBUG: Creature health: {$badguy['creaturehealth']}`n");
        //output("`#DEBUG: Creature exp: {$badguy['creatureexp']}`n");
        
$session['user']['badguy']=createstring($badguy);
    }
}
if (
$HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run"){
    if (
$_GET['op']=="run"){
        if (
e_rand(0,2)==1) {
            
output("`IAus Angst versuchst du zu fliegen und fällst dabei hin.`n`n");
            
$favor e_rand(0$session['user']['level']);
            if (
$favor $session['user']['deathpower'])
                
$favor $session['user']['deathpower'];
            if (
$favor 0) {
                
output("`IDu hast `s$favor`I Genesungspunkte VERLOREN`I.");
                
$session['user']['deathpower']-=$favor;
            }
            
addnav("Zurück zum Behandlungsraum","graveyard.php");
            
$session[user][reputation]--;
        } else {
            
output("`IAls du wegrennen willst hält der Arzt dich fest!`n`n");
            
$battle=true;
        }
    } else {
        
$battle true;
    }
}

if (
$battle){
    
//make some adjustments to the user to put them on mostly even ground with the undead guy.
    
$originalhitpoints $session['user']['hitpoints'];
    
$session['user']['hitpoints'] = $session['user']['soulpoints'];
    
$originalattack $session['user']['attack'];
    
$originaldefense $session['user']['defence'];
    
$session['user']['attack'] = 10 round(($session['user']['level'] - 1) * 1.5);
    
$session['user']['defence'] = 10 round(($session['user']['level'] - 1) * 1.5);
    include(
"battle.php");
    
//reverse those adjustments, battle calculations are over.
    
$session['user']['attack'] = $originalattack;
    
$session['user']['defence'] = $originaldefense;
    
$session['user']['soulpoints'] = $session['user']['hitpoints'];
    
$session['user']['hitpoints'] = $originalhitpoints;
    if (
$victory) {
        
output("`b`&{$badguy['creaturelose']}`0`b`n"); 
        
output("`b`sDu hast die Behandlung überstanden!`0`b`n");
        
output("`#Du bekommst `†{$badguy['creatureexp']}`# Genesungspunkte!`n`0");
        
$session['user']['deathpower']+=$badguy['creatureexp'];
        
$badguy=array();
        
$_GET['op']="";
        if (
e_rand(1,7)==3addnav("Flucht aus dem Fenster","styx.php");
    }else{
        if (
$defeat){
            
//addnav("Zurück zu den Schatten","shades.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]?"ihre(m/r)":"seine(r/m)"),$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);
            
            
addnews("`I".$session[user][name]."`I war die Behandlung von {$badguy['creaturename']} im Krankenhaus zuviel.`n$taunt");
            
output("`b`&Du bist gegen {$badguy['creaturename']} `&nicht angekommen!!!`b`n");
            
output("`&Du kannst heute keine weitere Behandlung mehr ertragen.");
            
$session['user']['donation']+=1;
            
$session['user']['gravefights']=0;
            
addnav("F?Zurück zum Behandlungsraum","graveyard.php");
        }else{
            
addnav("Q?Behandeln lassen","graveyard.php?op=fight");
            
addnav("F?Flüchten","graveyard.php?op=run");
            if (
getsetting("autofight",0)){
                
addnav("AutoFight");
                
addnav("5 Runden behandeln lassen","graveyard.php?op=fight&auto=five");
                
addnav("Bis zum bitteren Ende","graveyard.php?op=fight&auto=full");
            }
        }
    }
}

if (
$_GET['op']==""){
    
output("`I`c`bDer Behandlungsraum`b`c");
    
output("<table width='50%' align='center'><tr><td align='justify'>
            `IWirklich gern ist hier wohl niemand, denn wer ist schon freiwillig krank oder verletzt?
            An einer Wand siehst du eine Liege, auf der anderen Seite des Raumes ein Fenster.
            Alle anderen Wände sind mit Schränken vollgestellt, in denen sich allerlei Behandlungsutensilien
            und Medikamente befinden. Außerdem befindet sich zusätzlich zu der Eingangstür noch eine weitere
            Tür an einer Seite des Raumes, diese führt in das Büro des behandelnden Arztes.</td></tr></table>"
,true);

    
addnav("Behandeln lassen","graveyard.php?op=search");
    
addnav("Wege");
    
addnav("Büro betreten","graveyard.php?op=enter");
    
//addnav("Kriegerliste","list.php");
    
addnav("Zurück in den Warteraum","shades.php");
}elseif (
$_GET['op']=="enter"){
//    output("You enter the mausoleum and find yourself in a cold marble chamber.  no don't type that it's distracting.  Can't think, too much typing, stop, stoooppppp.  Now why couldn't you type verbatim a minute ago.  Ugh, sonofabitch.  The air is so, no the air is dammit.  The air within the chamber chils you to the bone?  You don't have bones, shit.  What'd I say before? Ugh.  Hahahaha. hahaha.  Hiccup.  Hiccup.  Hiccup.  Stop it, you're gonna kill me, stop stop!  Shit I forget what we actually stop that!  dammit.  Ok, you enter the mausoleum, and find yourself in a cold stark marble chamber.  The air surrounding you is chilled, no, is, the air around you carries the chill of death itself.  From the darkness two black eyes seem to stare in to your soul.  Within your mind you hear (dramatic pause) Whahahaha.  Within your mind you hear YOUR MOM.  That's what he would say.  Ok, within your mind you hear.  Ugh.  How are you gonna pick out the good crap in this, I mean, if I just keep talking, will you really just keep typing it?  Crap, you wrapped around, I didn't even know you could do that.  All right, where did we stop at ? Within something.  Within your mind you hear.  Within your mind a deep voice, no, um, a deep voice penetrates your mind.  Period.  Now whatever Ramius says.  What's he say, what'd you have him say before?  I am Ramius, your mom.  Why have you come here, no, I know no, allright, lemme think.  Ok, this'll be like text, so I don't know if it will be in those quotation mark things.  Allright.  Your mortal coil has forsaken you.  Now you turn to me.  To prove your worth in death go out amongst the ugh.  Go out amongst the... We need a word for, cause the other things are clearly dead, go out amongst.  Hmm.  Meow.  Don't type that.  Ugh, hehehe.  hahahaha.  Stop it, you're gonna, stop it.  all right.  Go out and find those that have eluded my grasp.  Send their souls where yours has gone.  Then return to me to seek the favor you, no, to fi-- no.  And return to me, and I shall reward you well.  Period.  Oh well, yeah, you already put a period.  Holy crap, you wrapped around a second time?  Hehehehe.  Well.  I think at this point, we need to go through and get rid of all the crap that you typed and you didn't need to type.  I'm gonna talk so fast that you can't hj.  Bjwuhehe.  Bwahahaha.  Choahaha.  Heh, you ass.  I'm done, I don't have anything else to say.  Ugh.  I'm gonna go check my swimming skill.  Aah, look, I'm 95, I'm done.  Alright, I'm gonna go camp.  Are you still freaking typing what I'm saying?  ugh.  I am a stupid moron.  I have the ass of a flaming monkey.  Hehe.  I'm the one who ate the fart.  Look at you, look at the things you're typing.  No, cause I clearly said Choo, See eightch Ooh Ooh.  See eitch Ooh Ooh, what? I didn't say that.  Hehhehehehe.  Huh.  (evil glare)");
    
output("`I`b`cDas Büro des behandelnden Arztes`c`b");
    
output("<table width='50%' align='center'><tr><td align='justify'>
            `IDu betrittst das Büro um mit dem Arzt zu sprechen. `i(folgt noch >.<)`i</td></tr></table>"
,true);
    
    
addnav("Frage nach deiner Gesundheit","graveyard.php?op=question");
    
addnav("Nervennahrung ($favortoheal Genesungspunkte)","graveyard.php?op=restore");
    
addnav("Wege");
    
addnav("Zurück zum Behandlungsraum","graveyard.php");
    
}elseif (
$_GET['op']=="restore"){
    
output("`I`b`cDas Büro`c`b");
    if (
$session['user']['soulpoints']<$max){
        if (
$session['user']['deathpower']>=$favortoheal){
            
output("<table width='50%' align='center'><tr><td align='justify'>
                   `IDer Arzt murrt etwas von \"Das ist ungesund und hilft nicht bei der Genesung.\", während er 
                   dir dabei zuschaut wie du einen Schokoriegel in dich hineinstopfst. Du verlierst 
                   `‘$favortoheal`I Genesungspunkte.</td></tr></table>"
,true);
            
$session['user']['deathpower']-=$favortoheal;
            
$session['user']['soulpoints']=$max;
        }else{
            
output("<table width='50%' align='center'><tr><td align='justify'>
                   `IDer Arzt nimmt dir den schokoriegel mit einem bösen Blick weg und meint, dass du
                   dir bei den wenigen Genesungspunkten soetwas absolut nicht erlauben kannst.</td></tr></table>"
,true);
        }
    }else{
        
output("<table width='50%' align='center'><tr><td align='justify'>
                `IDer Arzt seufzt und murmelt etwas davon, dass man keine Schokoriegel in sich hinein stopfen soll,
                wenn man sie nicht unbedingt braucht. Und du bist eindeutig erholt genug um ihn nicht zu brauchen.</td></tr></table>"
,true);
    }
    
addnav("Frage nach deinen Genesungspunkten","graveyard.php?op=question");
    
//addnav("Restore Your Soul ($favortoheal favor)","graveyard.php?op=restore");
    
addnav("Wege");
    
addnav("Zurück zum Behandlungsraum","graveyard.php");
    
}elseif (
$_GET['op']=="question"){
    if (
$session['user']['deathpower']>=100) {
        
output("<table width='50%' align='center'><tr><td align='justify'>
        `IDer Arzt schaut in deine Krankenakte und meint, dass es dir schon wieder um einiges besser geht als bei deiner
        Einlieferung und deshalb bekommst du ein paar mehr Freiheiten.
        </td></tr></table>"
,true);
        
addnav("Nöglichkeiten");
        
addnav("Streich spielen (25 GP)","graveyard.php?op=haunt");
        if (
$session[user][reputation]<=-10output(" Er weist dich noch darauf hin, dass er keinen Einfluss auf das Gedächtnis der Gesunden - und besonders der Händler -  hat.");
        if (
$session[user][reputation]<=-40output("`n`n`I\"`ÝWegen deiner Unehrenhaftigkeit kann ich dir nicht erlauben, vorzeitig das Krankenhaus zu verlassen, obwohl du wieder gesund genug bist.`I\"");
        if (
$session[user][reputation]>-40addnav("e?Krankenhaus verlassen (100 GP)","newday.php?resurrection=true");
        
addnav("5 Donationpoints (100 GP)","graveyard.php?op=dona");
        
addnav("Sonstiges");
    }elseif (
$session['user']['deathpower'] >= 25){
        
output("<table width='50%' align='center'><tr><td align='justify'>
                `IDer Arzt schaut sich deine Krankenakte an und meint, dass du noch nicht wirklich wiedre auf dem Damm bist. Allerdings kann er dir ein paar
                kleine Freiheiten erlauben.
        </td></tr></table>"
,true); 
        
addnav("Möglichkeiten");
        
addnav("Streich spielen (25 GP)","graveyard.php?op=haunt");
        
addnav("Sonstiges");
    }else{
        
output("<table width='50%' align='center'><tr><td align='justify'>
                `IDer Arzt schaut sich deine Krankenakte an und meint, dass du noch nicht lange nicht fit genug bist um irgendwelche
                Freiheiten zu bekommen. Und erst recht nicht um entlassen zu werden. Da sind wohl noch ein paar Behandlungen nötig...
        </td></tr></table>"
,true);
        
//if (!$session['user']['prefs']['nosounds']) output("<embed src=\"media/lachen.wav\" width=10 height=10 autostart=true loop=false hidden=true volume=100>",true);
    
}
    if (
$session['user']['deathpower'] >= 1addnav("Zeit im Krankenhaus (1 GP)","graveyard.php?op=time");
    
output("`n`n`IDu hast `s{$session['user']['deathpower']}`I Genesungspunkte.");
    
addnav("Frage den Arzt nach deiner Gesundheit","graveyard.php?op=question");
    
addnav("Nervennahrung ($favortoheal GP)","graveyard.php?op=restore");
    
addnav("Wege");
    
addnav("Zurück zum Behandlungsraum","graveyard.php");
    
}elseif (
$_GET['op']=="dona"){
    
output("`\$Ramius`)' Gelächter lässt den Boden erbeben. \"`7Du verzichtest für ein paar Punkte auf das Leben? Bitte, soll mir nur Recht sein.`)\" Mit diesen Worten gibt er deiner Bitte nach.`nDu bekommst 5 Donationpoints.");
    
$session['user']['deathpower']-=100;
    
$session['user']['donation']+=5
    
addnav("Zurück zum Mausoleum","graveyard.php?op=enter");
    
addnav("Zurück zum Friedhof","graveyard.php");
}elseif (
$_GET['op']=="time"){
    
$time gametime();
    
$tomorrow strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
    
$tomorrow strtotime(date("Y-m-d 00:00:00",$tomorrow));
    
$secstotomorrow $tomorrow-$time;
    
$realsecstotomorrow $secstotomorrow getsetting("daysperday",4);
    
output("`\$Ramius`) raunzt dir genervt entgegen, dass du noch `^".date("G\\h, i\\m, s\\s",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds"))."`) hier bleiben musst, wenn du nicht weiter für ihn arbeiten willst.");
    
$session['user']['deathpower']-=1;
    
addnav("Zurück zum Mausoleum","graveyard.php?op=enter");
    
addnav("Zurück zum Friedhof","graveyard.php");
}elseif (
$_GET['op']=="haunt"){
    
output("`\$Ramius`)  ist von deinen Aktionen beeindruckt und gewährt dir die Macht, einen Feind heimzusuchen.`n`n");
    
output("<form action='graveyard.php?op=haunt2' method='POST'>",true);
    
addnav("","graveyard.php?op=haunt2");
    
output("Wen willst du heimsuchen? <input name='name' id='name'> <input type='submit' class='button' value='Suchen'>",true);
    
output("</form>",true);
    
output("<script language='JavaScript'>document.getElementById('name').focus()</script>",true);
    
addnav("Zurück zum Mausoleum","graveyard.php?op=enter");
}elseif (
$_GET['op']=="haunt2"){
    
$string="%";
    for (
$x=0;$x<strlen($_POST['name']);$x++){
        
$string .= substr($_POST['name'],$x,1)."%";
    }
    
$sql "SELECT login,name,level FROM accounts WHERE name LIKE '".addslashes($string)."' AND locked=0 ORDER BY level,login";
    
$result db_query($sql);
    if (
db_num_rows($result)<=0){
        
output("`\$Ramius`)  kann niemanden mit einem solchen Namen finden.");
    }elseif(
db_num_rows($result)>100){
        
output("`\$Ramius`) denkt, du solltest die Zahl derer, die du heimsuchen willst, etwas einschränken.");
        
output("<form action='graveyard.php?op=haunt2' method='POST'>",true);
        
addnav("","graveyard.php?op=haunt2");
        
output("Wen willst du heimsuchen? <input name='name' id='name'> <input type='submit' class='button' value='Suchen'>",true);
        
output("</form>",true);
        
output("<script language='JavaScript'>document.getElementById('name').focus()</script>",true);
    }else{
        
output("`\$Ramius`) wird dir gestatten, eine der folgenden Personen heimzusuchen:`n");
        
output("<table cellpadding='3' cellspacing='0' border='0'>",true);
        
output("<tr class='trhead'><td>Name</td><td>Level</td></tr>",true);
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
output("<tr class='".($i%2?"trlight":"trdark")."'><td><a href='graveyard.php?op=haunt3&name=".HTMLEntities($row['login'])."'>",true);
            
output($row['name']);
            
output("</a></td><td>",true);
            
output($row['level']);
            
output("</td></tr>",true);
            
addnav("","graveyard.php?op=haunt3&name=".HTMLEntities($row['login']));
        }
        
output("</table>",true);
    }
    
addnav("Frage Ramius nach dem Wert deiner Seele","graveyard.php?op=question");
    
addnav("S?Seele wiederherstellen ($favortoheal Gefallen)","graveyard.php?op=restore");
    
addnav("M?Zurück zum Mausoleum","graveyard.php?op=enter");
}elseif (
$_GET['op']=="haunt3"){
    
output("`)`c`bDas Mausoleum`b`c");
    
$sql "SELECT name,level,hauntedby,acctid FROM accounts WHERE login='{$_GET['name']}'";
    
$result db_query($sql);
    if (
db_num_rows($result)>0){
        
$row db_fetch_assoc($result);
        if (
$row['hauntedby']!=""){
            
output("Diese Person wurde bereits heimgesucht. Wähle eine andere");
        }else{
            
$session['user']['deathpower']-=25;
            
$roll1 e_rand(0,$row['level']);
            
$roll2 e_rand(0,$session['user']['level']);
            if (
$roll2>$roll1){
                
output("Du hast `7{$row['name']}`) erfolgreich heimgesucht!");
                
$sql "UPDATE accounts SET hauntedby='{$session['user']['name']}' WHERE login='{$_GET['name']}'";
                
db_query($sql);
                
addnews("`7{$session['user']['name']}`) hat `7{$row['name']}`) heimgesucht!");
                
$session['user']['donation']+=1;
                 
systemmail($row['acctid'],"`)du wurdest heimgesucht","`)Du wurdest von {$session['user']['name']} heimgesucht"); 
            }else{
                
addnews("`7{$session['user']['name']}`) hat erfolglos versucht, `7{$row['name']}`) heimzusuchen!");
                switch (
e_rand(0,5)){
                case 
0:
                    
output("Gerade als du `7{$row['name']}`) heimsuchen wolltest, versaut dir ein Niesen komplett den Erfolg.");
                    break;
                case 
1:
                    
output("Die Heimsuchung von `7{$row['name']}`) läuft richtig gut. Leider schläft dein Opfer tief und fest und bekommt von deiner Anwesenheit absolut nichts mit.");
                    break;
                case 
2:
                    
output("Du machst dich zur Heimsuchung von `7{$row['name']}`) bereit, stolperst aber über deinen Geisterschwanz und landest flach auf deinem .... ähm ... Gesicht.");
                    break;
                case 
3:
                    
output("Du willst `7{$row['name']}`) im Schlaf heimsuchen, doch dein Opfer dreht sich nur im Bett um und murmelt etwas von 'nie wieder Würstchen so kurz vor dem Schlafengehen'.");
                    break;
                case 
4:
                    
output("Du weckst `7{$row['name']}`) auf. Dein Opfer schaut dich kurz an, sagt \"Niedlich!\" und versucht dich in einem Einmachglas einzufangen.");
                    break;
                case 
5:
                    
output("Du versuchst `7{$row['name']}`) zu erschrecken, siehst dich dabei im Augenwinkel selbst im Spiegel und gerätst in Panik, weil du einen Geist gesehen hast!");
                    break;
                }
            }
        }
    }else{
        
output("`\$Ramius`) kann sich nicht mehr auf diese Person konzentrieren. Du kannst sie jetzt nicht heimsuchen.");
    }
    
addnav("Frage Ramius nach dem Wert deiner Seele","graveyard.php?op=question");
    
addnav("S?Seele wiederherstellen ($favortoheal Gefallen)","graveyard.php?op=restore");
    
addnav("M?Zurück zum Mausoleum","graveyard.php?op=enter");
}

page_footer();
?>