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
// 15082004
//Anpassungen an Kharmandor by Totenwächterin Arona
require_once "common.php";
if ($session['user']['alive']) redirect("village.php");
page_header("Die toten Wälder");
checkday();
$session['bufflist']=array();
$session['user']['drunkenness'] = 0;
$max = $session['user']['level'] * 5 + 50;
$favortoheal = round(10 * ($max-$session['user']['soulpoints'])/$max);
if ($_GET['op']=="search"){
if ($session['user']['gravefights']<=0){
output("`b`TD`re`7ine ruhelose Seele verliert an Kraft. Müde sinkst du in dich zusamm`re`Tn.`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'] = 9 + $shift + (int)(($level-1) * 1.5);
// Make graveyard creatures easier.
$badguy['creaturedefense'] = (int)((9 + $shift + (($level-1) * 1.5)) * .7);
$badguy['creaturehealth'] = $level * 5 + 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 ($_GET[op]=="fight" || $_GET[op]=="run"){
if ($_GET['op']=="run"){
if (e_rand(0,2)==1) {
output("TE`ri`7n höhnisches Lachen erklingt, als du um dein Leben läufst, es ist die Stimme der `~Tot`)en`&wäch`)te`~rin`7 die über dich lac`rh`Tt.`n`n");
$favor = 5 + e_rand(0, $session['user']['level']);
if ($favor > $session['user']['deathpower'])
$favor = $session['user']['deathpower'];
if ($favor > 0) {
output("`TD`ru `7hast `^$favor`) `7 an Ansehen bei der `~Tot`)en`&wäch`)te`~rin `7verlor`re`Tn.");
$session['user']['deathpower']-=$favor;
}
addnav("Z?`TZ`ru`7rück zum Wa`rl`Td","graveyard.php");
$session[user][reputation]--;
} else {
output("`TD`ru `7versuchst zu fliehen, doch du wirst von der untoten Kreatur zurück geriss`re`Tn.`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`\$Du hast {$badguy['creaturename']} erniedrigt!`0`b`n");
output("`TD`ru `7bekommst `^{$badguy['creatureexp']}`7 Ansehen bei der `~Tot`)en`&wäch`)te`~rin`T.`n`0");
$session['user']['deathpower']+=$badguy['creatureexp'];
$badguy=array();
$_GET['op']="";
if (mt_rand(1,7)==3) addnav("`TF`rl`7uss der Seel`re`Tn`0","styx.php");
if (mt_rand(1,20)==7) addnav("`TE`ri`7n Amulett am Bod`re`Tn...","lichencounter.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("`T".$session[user][name]."`7 unterlag in den toten Wäldern {$badguy['creaturename']}`7.`n$taunt");
output("`b`TD`ru `7unterlagst `%{$badguy['creaturename']} `7im toten Wa`rl`Td.`n");
output("`TE`rr`7schöpft sinkst du zusammen. Heute wirst du nicht mehr kämpfen könn`re`Tn.");
$session['user']['donation']+=1;
$session['user']['gravefights']=0;
addnav("Z?`TZ`ru`7rück zum Wa`rl`Td","graveyard.php");
}else{
addnav("K?`TK`rä`7mpf`re`Tn","graveyard.php?op=fight");
addnav("F?`TF`rl`7ieh`re`Tn","graveyard.php?op=run");
if (getsetting("autofight",0)){
addnav("Gesteuerter Kampf");
addnav("5?`T5 `rR`7unden kämpf`re`Tn","graveyard.php?op=fight&auto=five");
addnav("B?`TB`ri`7s zum bitteren En`rd`Te","graveyard.php?op=fight&auto=full");
}
}
}
}
if ($_GET['op']==""){
output("`c`b`TD`ri`7e toten Wäld`re`Tr`b`c`n`n");
output("`c`TD`re`7r Anblick dieses Waldes lässt Dich in Deinen Schritten inne halt`re`Tn.`n
`TS`rc`7hon von hier aus kannst du die unheimlichen Geräusche des toten Waldes hör`re`Tn.`n
`TD`ru `7fragst Dich an was für einen unheiligen Ort Du hier wohl gelandet sein mag`rs`Tt`n.
`TD`re`7nnoch, wolltest Du wieder zurück in die Welt der Lebenden, so musstest Du Dich hinein trau`re`Tn.`n`
`TD`ru `7willst einmal tief Luft holen, so wie Du es zu Lebzeiten getan hattest, um all Deinen Mut zu samme`rl`Tn.`n`
`TD`ro`7ch statt der erwarteten frischen Luft, füllt sich deine Lunge mit schwefeligen Gas`re`Tn.`n`
`TD`ri`7r wird für einen Moment schwarz vor Augen, als Du zu husten beginn`rs`Tt.`n
`TN`ru`7r schwer kannst Du Dich wieder fangen und der Husten nimmt `ra`Tb.`n`n
`TI`rn `7weiter Ferne kannst Du ein altes Gemäuer erkennen. Es macht einen bedrückenden Eindruck so wie alles hi`re`Tr.`n
`TD`ra`7s Gemäuer wirkt prunkvoll. Ein ungewöhnlicher Anblick in dieser Einöde hi`re`Tr.`n
`TV`ro`7r dem Gemäuer steht eine große steinerne Tafel auf der etwas geschrieben ste`rh`Tt.`n
`~We`)he `&dem, der diese Hallen betritt, es könnte sein letzter Weg `)se`~in.`c");
if ($session['user']['superuser']>=3){
addnav("Der Fluss","styx.php");
addnav("Amulett","lichencounter.php");
}
addnav("J?`TJ`ra`7gen geh`re`Tn","graveyard.php?op=search");
addnav("G?`~Ge`)mä`&uer betre`)ten","graveyard.php?op=enter");
addnav("Z?`TZ`ru`7rü`rc`Tk","shades.php");
}elseif ($_GET['op']=="enter"){
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`c`TD`ru `7trittst ein in das alte Gemäuer. Ein modriger Geruch kommt Dir entgeg`re`Tn.`n
`TV`ro`7r Dir erstreckt sich ein mit Marmor getäfelter Boden hin bis ins scheinbar Endlo`rs`Te.`n
`TD`ru `7kannst nicht weit blicken. Der Saal ist nur zu einem Teil mit Fackeln bestüc`rk`Tt.`n
`TU`rm `7Dich herum beginnen kleine Nebelschwaden zu tanzen. Dir wird unwohl bei deren Anbli`rc`Tk.`n
`TE`ri`7n kaltes Lachen hallt aus der Dunkelheit und dringt bis zu Dir vor. Gebannt blickst du in die Dunkelhe`ri`Tt.`n`
`TS`rc`7hritte hallen durch die Dunkelheit. Eine nebelige Gestalt tritt aus der Dunkelheit hera`ru`Ts.`n`
`TK`ra`7lte weißliche Seelenspiegel mustern Dich und durchbohren Dich dabei förmli`rc`Th.`n`
`4Was führt Dich zu mir in mein Reich? `TI`rn `7diesem Moment wird Dir bewusst vor wem Du dort steh`rs`Tt.`n
`TE`rr`7schrocken darüber lässt Du dich auf deine Knie fallen und blickst zu der `~Tot`)en`&wäch`)te`~rin `7a`ru`Tf.`c`n`");
addnav("F?`TF`rr`7age um deinen Sta`rn`Td","graveyard.php?op=question");
addnav("G?`TG`re`7istige Wunden heil`re`Tn ($favortoheal Punkte)","graveyard.php?op=restore");
addnav("Z?`TZ`ru`7rü`rc`Tk","graveyard.php");
}elseif ($_GET['op']=="restore"){
output("`b`c`TDa`rs G`7em`räu`Ter`c`b");
if ($session['user']['soulpoints']<$max){
if ($session['user']['deathpower']>=$favortoheal){
output("`n`n`c`~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `7blickt verachtend auf Dich herab als Du sie um Heilung bitte`rs`Tt.`n
`TD`ro`7ch gewährt sie Dir Deinen Wunsch da Dein Ansehen bis zu diesem Zeitpunkt bei ihr noch recht hoch w`ra`Tr.`n
`TJ`re`7doch sinkst Du in ihrem Ansehen um `4$favortoheal`7 Punk`rt`Te.`c");
$session['user']['deathpower']-=$favortoheal;
$session['user']['soulpoints']=$max;
}else{
output("`n`n`c~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `7weist schweigend mit ihrer rechten Hand zur T`rü`Tr.`n
`TD`ru `7solltest besser gehen und noch etwas für dein Ansehen in ihren Augen t`ru`Tn.`c");
}
}else{
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`c`n`n`TD`ri`7e `~Tot`)en`&wäch`)te`~rin `7blickt hinter Dir her. Ihr kalter Blick verrät D`ri`Tr,`n
`Td`ra`7ss Du Dich bei ihr nicht mehr so schnell blicken lassen sollte`rs`Tt`n
`4Dumme Kreatur... `7murrmelt sie lei`rs`Te.`c`n`n");
output("`c`TD`ru `7solltest nicht so ausgelaugt ihr gegenüber treten. Das wäre sicherlich gesünder für Di`rc`Th.`c");
}
addnav("F?`TF`rr`7age um deinen Sta`rn`Td","graveyard.php?op=question");
//addnav("Restore Your Soul ($favortoheal favor)","graveyard.php?op=restore");
addnav("Z?`TZ`ru`7rü`rc`Tk","graveyard.php");
}elseif ($_GET['op']=="question"){
if ($session['user']['deathpower']>=100) {
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`n`n`c`TD`ri`7e`~Tot`)en`&wäch`)te`~rin `7ist von Deinen Taten in der Welt der Toten beeindruc`rk`Tt.`c");
addnav("Ansehen");
addnav("F?`TF`re`7ind heimsuch`re`Tn (25 Punkte)","graveyard.php?op=haunt");
if ($session[user][reputation]<=-10) output("`TS`ri`7e sieht dich musternd an und meint, dass Du dir zu Lebzeiten keinen guten Ruf gemacht hast und dass das nicht ihre Schuld s`re`Ti.");
if ($session[user][reputation]<=-40) output("`n`n`TE`rn`7tschlossen schüttelt sie ihr Haupt und meint dann mit kalter Stimme `4Du wirst warten müssen. Hättest Du deine Lebzeiten ehrvoller verbracht, dann wäre es kein Probl`re`Tm.");
if ($session[user][reputation]>-40) addnav("e?`TW`ri`7ederbeleb`re`Tn (100 Punkte)","newday.php?resurrection=true");
addnav("5?`T5 `rD`7onationpoin`rt`Ts (100 Punkte)","graveyard.php?op=dona");
addnav("Sonstiges");
}elseif ($session['user']['deathpower'] >= 25){
output("`TD`ri`7e `~Tot`)en`&wäch`)te`~rin `7blickt dich an `4Ich erkenne deine Bemühungen an, auch wenn sie nicht von großen Taten handeln, so werde ich Dir einen kleinen Gefallen gewähren.");
addnav("Ansehen");
addnav("F?`TF`re`7ind heimsuchen (25 Punk`7t`re`T)","graveyard.php?op=haunt");
addnav("Sonstiges");
}else{
output("`TD`ri`7e `~Tot`)en`&wäch`)te`~rin `7runzelt ihre Stirn `4Gebe dir mehr Mühe und erledige die Arbeit die ich Dir aufgetragen habe und vielleicht erbarme ich mich dann.");
//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'] >= 1) addnav("U?`TZ`re`7it in der Unterwe`rl`Tt (1 Punkt)","graveyard.php?op=time");
output("`n`n`c`TD`ru `7hast `6{$session['user']['deathpower']}`7 Ansehenspunkte bei der `~Tot`)en`&wäch`)te`~rin `7erlan`rg`Tt.`c");
addnav("G?`TG`re`7istige Wunden heil`re`Tn ($favortoheal Punkte)","graveyard.php?op=restore");
addnav("Z?`TZ`ru`7rü`rc`Tk","graveyard.php");
}elseif ($_GET['op']=="dona"){
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`c`n`n`~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `T's `rk`7altes Lachen lässt den Boden erzitte`rr`Tn.`n
`4Du scheinst Deinen Aufenthalt hier zu genießen, sonst würdest Du nicht für ein Paar Punkte auf Dein Leben verzichten. Aber gut, wie Du willst.`n
`TM`ri`7t einem amüsierten kalten Lächeln auf ihren Lippen gewährt sie Dir Deine Bitte.`nDu erhälst 5 Donationpoin`rt`Ts.`c");
$session['user']['deathpower']-=100;
$session['user']['donation']+=5;
addnav("E?`TZ`ru`7rück zum Einga`rn`Tg","graveyard.php?op=enter");
addnav("Z?`TZ`ru`7rü`rc`Tk","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);
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`c`~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `Tb`rl`7ickt Dich kalt an und mei`rn`Tt,`n
`Td`ra`7ss Du noch `^".date("G\\h, i\\m, s\\s",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds"))."`7 länger hier verweilen wirst, wenn Du nicht weiter Dich bewei`rs`Tt.");
$session['user']['deathpower']-=1;
addnav("E?`TZ`ru`7rück zum Einga`rn`Tg","graveyard.php?op=enter");
addnav("Z?`TZ`ru`7rü`rc`Tk","graveyard.php");
}elseif ($_GET['op']=="haunt"){
page_header("Das Gemäuer");
output("`b`c`TDa`rs G`7em`räu`Ter`c`b`n`n");
output("`n`n`c`TD`ri`7e `~Tot`)en`&wäch`)te`~rin `7erlaubt Dir einen Feind heimzusuchen. Du hast es Dir verdie`rn`Tt.`c`n`n");
output("<form action='graveyard.php?op=haunt2' method='POST'>",true);
addnav("","graveyard.php?op=haunt2");
output("`TW`re`7n willst du heimsuch`re`Tn? <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("E?`TZ`ru`7rück zum Einga`rn`Tg","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("`~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `7` kennt keine lebende Seele mit solch einen Namen");
}elseif(db_num_rows($result)>100){
output("`~Tot`)en`&wäch`)te`~rin `&A`)r`~o`)n`&a `7schüttelt ihr Haupt und meint, dass Du es nicht übertreiben sollte`rs`Tt.");
output("<form action='graveyard.php?op=haunt2' method='POST'>",true);
addnav("","graveyard.php?op=haunt2");
output("`TA`ru`7f wen ist deine Wahl gefall`re`Tn? <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("`TD`ri`7e `~Tot`)en`&wäch`)te`~rin `7erlaubt Dir eine dieser Seelen heimzusuch`re`Tn:`7`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("F?`TF`rr`7age um deinen Sta`rn`Td","graveyard.php?op=question");
addnav("S?`TS`re`7ele heil`re`Tn ($favortoheal Punkte)","graveyard.php?op=restore");
addnav("E?`TZ`ru`7rück zum Einga`rn`Tg","graveyard.php?op=enter");
}elseif ($_GET['op']=="haunt3"){
output("`b`c`TDa`rs G`7em`räu`Ter`c`b");
$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("`TD`ri`7ese Person wurde bereits heimgesucht. Wähle eine ande`rr`Te.");
}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("`){$session['user']['name']}`7 hat `){$row['name']}`) heimgesucht!");
$session['user']['donation']+=1;
systemmail($row['acctid'],"`7du wurdest heimgesucht","`7Du 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("`TG`re`7rade als du `){$row['name']}`7 heimsuchen wolltest, versaut dir ein Niesen komplett den Erfo`rl`Tg.");
break;
case 1:
output("`TD`ri`7e Heimsuchung von `){$row['name']}`7 läuft richtig gut. Leider schläft dein Opfer tief und fest und bekommt von deiner Anwesenheit absolut nichts m`ri`Tt.");
break;
case 2:
output("`TD`ru `7machst dich zur Heimsuchung von `){$row['name']}`7 bereit, stolperst aber über deinen Seelenschleier und landest flach auf deinem .... ähm ... Gesic`rh`Tt.");
break;
case 3:
output("`TD`ru `7willst `){$row['name']}`7 im Schlaf heimsuchen, doch dein Opfer dreht sich nur im Bett um und murmelt etwas von 'nie wieder Schweinebraten so kurz vor dem Schlafengeh`re`Tn'.");
break;
case 4:
output("`TD`ru `7weckst `){$row['name']}`7 auf. Dein Opfer schaut dich kurz an, sagt \"Niedlich!\" und versucht dich in einem Einmachglas einzufang`re`Tn.");
break;
case 5:
output("`TD`ru `7versuchst `){$row['name']}`7 zu erschrecken, siehst dich dabei im Augenwinkel selbst im Spiegel und gerätst in Panik, weil du einen Geist gesehen ha`rs`Tt!");
break;
}
}
}
}else{
output("`TD`ri`7e Konzentration verlässt die `~Tot`)en`&wäch`)te`~rin`7. Sie weist Dich darauf hin dass Du heute niemanden mehr heimsuchen kannst.");
}
addnav("F?`TF`rr`7age um deinen Sta`rn`Td","graveyard.php?op=question");
addnav("G?`TG`re`7istige Wunden heil`re`Tn ($favortoheal Punkte)","graveyard.php?op=restore");
addnav("E?`TZ`ru`7rück zum Einga`rn`Tg","graveyard.php?op=enter");
}
page_footer();
?>