LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /hexe.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Die Hälfte der Scripte ist an den Server angepasst und ich hab drin rumgebastelt, also keine Klagen, wenns bei euch net funzt ^^

(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /hexe.php

<?php

// 01072004

/**
* Version:    0.4
* Author:    anpera
* Email:        logd@anpera.de

* Purpose:    Additional functions for hard working players
* Program Flow:    The witchhouse appears if a player has 1 or less forest fights left.
*         In it he can buy additional forest fights or use his last forest fight to get a 'special event'.
*        He also can reset some variables to get more tries for example with flirting or finding the dragon...
*
* Nav added in function forest in common.php:
* if ($session[user][turns]<=1 ) addnav("Hexenhaus","hexe.php");
*
* in newday.php find: $session['user']['seenlover'] = 0;
* after add: $session['user']['witch'] = 0;
*
* SQL: ALTER TABLE `accounts` ADD `witch` INT( 4 ) DEFAULT '0' NOT NULL ;
*/

require_once("common.php");
page_header("Hexenhaus");
output("`c`!`bHexenhaus`b`0`n`n");
output("<img src='Bilder/Hexenhaus.jpg'/>`n`n",true);
$wkcost=$session[user][level]*300;
$spcost=$session[user][level]*100;
if (
$_GET[op] == "wkkauf"){
    if (
$session[user][gold]<$wkcost){
        
output("`!\"`%Du hast gar nicht so viel Gold! `bRAUS HIER!`b`!\" `nMit diesen Worten trifft dich ein magischer Schlag mit voller Wucht und wirft dich aus der Hütte.`nDu hast ein paar Lebenspunkte verloren.`n`n");
        
$session[user][hitpoints]=round($session[user][hitpoints]*0.9);
    } else {
        
$session[user][gold]-=$wkcost;
        
$session[user][turns]++;
        
output("`!Du gibst der Hexe`^ $wkcost `!Gold. `nBlitzschnell greift sie mit der einen Hand die Kelle im Kessel und mit der anderen deinen Unterkiefer. ");
        
output(" Mit einem hohen Kichern flöst sie dir drei Portionen dieser braunen Brühe ein.`n Obwohl du gerade noch unfähig warst, dich aus dem Griff der Hexe zu befreien,`n fühlst du ");
        
output("dich plötzlich wieder stark und bereit, einen weiteren Gegner im Wald zu bekämpfen.`nDu blickst dich noch einmal zu der immer noch kichernden Hexe um, ");
        
output("aber die beugt sich schon wieder über ihren Punsch, ohne dir weitere Beachtung zu schenken.`n So gehst du zurück in den Wald.`n`n");
    }
    
forest(true);
} else if (
$_GET[op] == "besonders"){
    if (
$session[user][gold]<$spcost){
        
output("`!\"`%Du hast gar nicht so viel Gold! `bRAUS HIER!`b`!\" `nMit diesen Worten trifft dich ein magischer Schlag mit voller Wucht und wirft dich aus der Hütte.`nDu hast ein paar Lebenspunkte verloren.`n`n");
        
$session[user][hitpoints]=round($session[user][hitpoints]*0.9);
        
forest(true);
    }else{
        
$session[user][gold]-=$spcost;
        
output("`!Du bezahlst die Hexe und sie spricht einen Zauber auf dich, der zugegebenermaßen mehr wie ein Fluch klingt.`n Dann verlässt das Hexenhaus und wie versprochen triffst du auf...`n`n");
        
output("`^`bEtwas Besonderes!`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.`n Beschwer dich bei ihm, nicht beim Programmierer.");
            }else{
                
$y $HTTP_GET_VARS[op];
                
$HTTP_GET_VARS[op]="";
                include(
"special/".$events[$x]);
                
$HTTP_GET_VARS[op]=$y;
            }
        }else{
            
output("`c`b`\$ERROR!!!`b`c`&Es ist nicht möglich die Speziellen Ereignisse zu öffnen! Bitte benachrichtige den Administrator!!");
        }
        if (
$nav==""){
            
$session[user][turns]=0;
             
forest(true);
        }
    }
} else if (
$_GET[op] == "verwirren"){
    
output("`!Die Hexe nimmt deinen Edelstein und holt eine Puppe aus einer Truhe in der Ecke, die genauso aussieht wie dein Meister.`n Sie sticht der Puppe eine krumme, rostige Nadel ");
    
output("in den Kopf und sagt:`n \"`%Gehe ruhig zu deinem Meister. Du hast heute eine zweite Chance, ihn zu schlagen.`n Es muß aber bald geschehen und bereite dich gut vor!`!\"`nDu weißt nicht, ");
    
output("ob jetzt tatsächlich der Meister oder du selbst verwirrt sein soll.`n Auf jeden Fall aber hast du wieder den Mut, deinen Meister heute doch noch einmal herauszufordern.`n`n");
    
$session[user][gems]--;
    
$session[user][seenmaster]=0;
    
forest(true);
} else if (
$_GET[op] == "drachen"){
    
output("`!Du nimmst 3 deiner schwer verdienten Edelsteine und streckst sie der Hexe auf der flachen Hand entgegen.`n Die Hexe nimmt deine Hand und drückt so fest zu, daß dir schwindelig wird.`n");
    
output("\"`%Hiermit erhältst du die Möglichkeit, des Drachen erneut aufzuspüren. Doch diesmal mache es richtig!`!\" `nSie läßt deine Hand los und die Edelsteine sind verschwunden.`n");
    
output("Du kannst deinen letzten Waldkampf jetzt dem Kampf gegen den Drachen widmen...`n`n");
    
$session[user][gems]-=3;
    
$session[user][seendragon]=0;
    
forest(true);
} else if (
$_GET[op] == "liebe"){
    
output("`!Die Hexe nimmt deinen Edelstein und holt eine Puppe aus einer Truhe in der Ecke, die genauso aussieht wie ".($session[user][sex]?"Seth":"Violet").".`n Sie wirft die Puppe in ihren Kessel, rührt ein paar mal um und sagt:`n ");
    
output("\"`%Was erwartest du jetzt von mir? Geh einfach zu deinem Liebhaber und flirte. Du brauchst dazu keinen weiteren Rat einer alten Frau.`!\"`n`n");
    
$session[user][gems]--;
    
$session[user][seenlover]=0
    
forest(true);
} else if (
$_GET[op] == "blase"){
    
output("`!Die Hexe nimmt deinen Edelstein und lädt dich auf ein Ale ein. Und noch eines. Und noch eines.`n Nach einer Weile spürst du Druck auf der Blase und denkst,`n obwohl du schon ziemlich angetrunken bist, daß dich die ");
    
output("olle Hexe reingelegt hat und hier gar keine Magie am Werk war... *hic* ...`n`n");
    
$session[user][drunkenness]+=30;
    
$session[user][gems]--;
    
$session[user][usedouthouse]=0
    
forest(true);
} else if (
$_GET[op] == "barde"){
    
output("`!\"`%Soso, der Barde will nicht mehr für dich singen.`n Hättest du ihm diesen Edelstein gegeben statt mir, hätte er sicher gesungen. Weißt du was?`n Ich werde ihm diesen Edelstein vor die Füße zaubern und ihn ");
    
output(" wissen lassen, daß er von dir ist.`n So wie ich ihn kenne, steckt er ihn sich in die löchrige Hosentasche und verliert ihn in der Kneipe wieder ... aber was solls.`!\" `nDamit legt die Hexe ");
    
output("den Edelstein auf den Tisch und schüttet etwas von ihrem Punsch darüber.`n \"`%Schon gut, du kannst gehen.`!\" sagt sie noch zu dir und während du dich ");
    
output("Richtung Wald umdrehst, siehst du den Edelstein verschwinden... `n`n");
    
$session[user][gems]--;
    
$session[user][seenbard]=0;
    
forest(true);
} else if (
$_GET[op] == "lotto"){
    
output("`!\"`%Nach schnellem Reichtum steht dir der Sinn? Weshalb verpulverst du dann deine Edelsteine auf diese Weise?`N ");
    
output("Nunja, dein alter Lottoschein ist ungültig, du kannst dein Glück nochmal versuchen.`n Aber jammer mir nicht die Ohren voll, wenn es nicht klappt. Den Edelstein geb ich nicht wieder her!`!\"");
    
output("`n Die Hexe wendet sich von dir ab, ohne ein weiteres Wort zu sagen. `n");
    
output("Als du dich Richtung Wald umdrehst, siehst du den Edelstein verschwinden... `n`n");
    
$session[user][gems]--;
    
$session[user][lottery]=0;
    
forest(true);
} else if (
$_GET[op] == "freeale"){
    
output("`!Du erzählst der Hexe davon, dass Cedrik dir bei deiner Freiale-Politik einen Strich durch die Rechnung macht.`n Sie nimmt dir deine 350 Gold ab und sagt:`n \"`%Jaja, der olle Cedrik. ");
    
output(" Ich glaube, er hat beim Zwergenweitwurf gerade einen Zwerg an den Schädel bekommen und kann sich nicht mehr an dich erinnern.`!\" `nDabei schnippt sie ");
    
output(" einen Kieselstein vom Tisch in Richtung einer Puppe, die dir merkwürdig vertraut vorkommt, und trifft sie am Kopf.`n \"`%So, und jetzt verschwinde, bevor ich ");
    
output("mit dir auch sowas mach.`!\" `n`n");
    
$session[user][gold]-=350;
    
$session[user][gotfreeale]=0;
    
forest(true);
} else if (
$_GET[op] == "cursep"){
    if (
$_GET[id]>"" && $_GET[pid]>""){
        
$sql="SELECT * FROM items WHERE id=$_GET[id]";
        
$row db_fetch_assoc(db_query($sql));
        
$goldcost=$row[gold]*$session[user][level];
        
$klappt=e_rand(1,10);
        
$sql="SELECT * FROM items WHERE owner=$_GET[pid] AND name='$row[name]' AND class='Fluch'";
        
$result2=db_query($sql);
        if (
db_num_rows($result2)>0){
            
output("`!Die Hexe sucht aus einem Regal voller Puppen eine heraus, die wie dein Opfer aussieht.`n Sie stutzt kurz, dann dreht sie sich zu dir um:`n \"`%");
            
output("Jaja, es ist alles in Ordnung. Dein Opfer leidet bereits unter $row[name]`%. Behalte dein Geld. Einen schönen Tag noch.`n Und jetzt ... lass mich alleine.`!\"");
        }else if (
$session[user][gold]<$goldcost || $session[user][gems]<$row[gems]){
            
output("`!Als du deine Reichtümer vor der Hexe ausbreitest, musst du leider feststellen, dass du nicht genug hast, um die Hexe zu bezahlen.`n Du rechnest mit ");
            
output("einem Donnerwetter aus Beschimpfungen, doch stattdessen geleitet dich die Hexe erstaunlich ruhig und freundlich zum Ausgang.`n Du bist verwirrt und ");
            
output("lässt es geschehen.`nDoch schon bald sollst du herausfinden, wie die Hexe zu ihrem Geld kommen will: Sie hat den Fluch auf dich gesprochen!");
            
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description,hvalue,buff) VALUES ('".$row[name]."',".$session[user][acctid].",'Fluch',$row[value1],$row[value2],$row[gold],$row[gems],'".$row[description]."',$row[hvalue],'".$row[buff]."')";
            
$session[user][reputation]--;
        }else if (
$klappt>=9){
            
output("`!HOPPLA! Das ging gewaltig schief. Statt dein Opfer zu treffen, ist der Fluch auf dich gesprungen.`n Du weißt nicht, ob das Absicht der Hexe war, oder ein Versehen, ");
            
output("aber sie verlangt ihren Lohn nicht, während sie dich scheinbar leicht verwirrt aus dem Haus schiebt.");
            
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description,hvalue,buff) VALUES ('".$row[name]."',".$session[user][acctid].",'Fluch',$row[value1],$row[value2],".round($row[gold]/2).",".round($row[gems]/2).",'".$row[description]."',$row[hvalue],'".$row[buff]."')";
        }else{
            
output("`!Die Hexe sucht aus einem Regal voller Puppen eine heraus, die wie dein Opfer aussieht.`n Sie legt die Puppe auf den Tisch zwischen euch. Mit einer Hand fährt sie kurz über die Puppe, während sie ");
            
output("mit der anderen Hand deine $goldcost Gold und $row[gems] einstreicht.`n Dann nickt sie dir kurz zufrieden zu und weist dir den Weg zur Tür.`nDein Opfer wird an $row[name]`! eine Weile seine Freude haben.");
            
$session[user][gold]-=$goldcost;
            
$session[user][gems]-=$row[gems];
            
$session[user][reputation]-=3;
            
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description,hvalue,buff) VALUES ('".$row[name]."',".$_GET[pid].",'Fluch',$row[value1],$row[value2],$row[gold],".round($row[gems]/2).",'".$row[description]."',$row[hvalue],'".$row[buff]."')";
            
systemmail($_GET[pid],"`\$Verflucht!`0","`9{$session['user']['name']}`9 hat dir den Fluch `T'$row[name]'`9 angehext!`n$row[description]");
        }
        
db_query($sql);
        
$session[user][witch]++;
        
forest(true);
    }else if (
$_GET[id]>""){
        
$id=$_GET[id];
        if (isset(
$_POST['search']) || $_GET['search']>""){
            if (
$_GET['search']>""$_POST['search']=$_GET['search'];
            
$search="%";
            for (
$x=0;$x<strlen($_POST['search']);$x++){
                
$search .= substr($_POST['search'],$x,1)."%";
            }
            
$search="name LIKE '".$search."' AND ";
            if (
$_POST['search']=="weiblich"$search="sex=1 AND ";
            if (
$_POST['search']=="männlich"$search="sex=0 AND ";
        }else{
            
$search="";
        }
        
$ppp=25// Player Per Page to display
        
if (!$_GET[limit]){
            
$page=0;
        }else{
            
$page=(int)$_GET[limit];
            
addnav("Vorherige Seite","hexe.php?op=cursep&id=$id&limit=".($page-1)."&search=$_POST[search]");
        }
        
$limit="".($page*$ppp).",".($ppp+1);
        
$sql "SELECT login,name,level,sex,acctid FROM accounts WHERE $search locked=0 AND alive=1 AND acctid<>".$session[user][acctid]." AND lastip<>'".$session[user][lastip]."' AND dragonkills > 0 ORDER BY login,level LIMIT $limit";
        
$result db_query($sql);
        if (
db_num_rows($result)>$pppaddnav("Nächste Seite","hexe.php?op=cursep&id=$id&limit=".($page+1)."&search=$_POST[search]");
        
output("`%Und wer darf das Opfer sein?`n`!");
        
output("<form action='hexe.php?op=cursep&id=$id' method='POST'>Nach Name suchen: <input name='search' value='$_POST[search]'><input type='submit' class='button' value='Suchen'></form>",true);
        
addnav("","hexe.php?op=cursep&id=$id");
        
output("<table cellpadding='3' cellspacing='0' border='0'><tr class='trhead'><td>Name</td><td>Level</td><td>Geschlecht</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='hexe.php?op=cursep&id=$id&pid=$row[acctid]'>",true);
            
output("$row[name]");
            
output("</a></td><td>",true);
            
output("$row[level]");
            
output("</td><td align='center'><img src='images/".($row['sex']?"female":"male").".gif'></td></tr>",true);
            
addnav("","hexe.php?op=cursep&id=$id&pid=$row[acctid]");
        }
        
output("</table>",true);
        
addnav("Lieber nicht","hexe.php");
    }else{
        
$sql="SELECT * FROM items WHERE class='Fluch.Prot' ORDER BY name,id ASC";
        
$result db_query($sql);
        
output("`!Die alte Hexe reibt sich die knochigen Finger. \"`%Sehr schön, sehr schön! Womit kann ich deinen größten Feind quälen?`!\" Sie erzählt dir, welche Flüche sie gerne mal an jemandem ausprobieren würde. ");
        
output("`nWähle ein Schicksal für dein Opfer:`4");
        
output("<ul>",true);
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
$goldcost=$row[gold]*$session[user][level];
            
output("<li><a href='hexe.php?op=cursep&id=$row[id]'>$row[name]</a>`4: ".htmlentities($row[description])."`4`nDauer: ".($row[hvalue]>0?"$row[hvalue] Tage":"unbegrenzt")."`nPreis: `^$goldcost`4 Gold, `#$row[gems]`4 Edelsteine.`n`n",true);
            
addnav("","hexe.php?op=cursep&id=$row[id]");
        }
        
output("</ul>",true);
        
$session[user][witch]--;
        
addnav("Lieber nicht","hexe.php");
    }
} else if (
$_GET[op] == "fluch1"){
    
$sql="SELECT * FROM items WHERE class='Fluch' AND owner=".$session[user][acctid]." ORDER BY id ASC";
    
$result db_query($sql);
    
output("`!Die alte Hexe murmelt ein paar unverständliche Worte, bevor sie dir mit leicht arroganter Miene wie ein Arzt nach erfolgreicher Diagnose erzählt, was du wieder alles falsch gemacht hast.");
    
output("\"`%Also, dich von deinen Übeln zu befreien wird dich eine Kleinigkeit kosten. ");
    for (
$i=0;$i<db_num_rows($result);$i++){
        
$row db_fetch_assoc($result);
        
output("`n$row[name] zu entfernen, kostet dich `^$row[gold] `%Gold und `#$row[gems]`% Edelsteine. ");
        if (
$row[hvalue]) output("Dieser Fluch hält noch $row[hvalue] Tage. ");
        
addnav("$row[name] entfernen","hexe.php?op=fluch2&id=$row[id]");
    }
    
output("Wovon soll ich dich befreien?`!\"`n");
    
addnav("Vergiss es","forest.php");
} else if (
$_GET[op] == "fluch2"){
    
$sql="SELECT * FROM items WHERE id=$_GET[id]";
    
$row db_fetch_assoc(db_query($sql));
    
output("`!Die knochigen Finger der Hexe scheinen plötzlich überall an dir zu sein und du fühlst etwas Ekel bei dieser merkwürdigen Behandlung.`n Aber du hast keine Ahnung, wie man Flüche normalerweise ");
    
output("behandelt und hältst deswegen die Klappe.");
    if (
$session[user][gold]<$row[gold] || $session[user][gems]<$row[gems]){
        
output("\"`%Aha! Dachte ichs mir doch. Ich soll dich von einem Fluch befreien und du willst nicht einmal dafür bezahlen?`n Scher dich hier raus, bevor ich dir noch einen schlimmeren Fluch dazu hexe!`!\"");
        
output("`nOhne dich wehren zu können, schwebst du nach draußen und die Tür der Hexenhütte knallt hinter dir ins Schloss.`n Tja, du hättest vielleicht genug Kleingold mitnehmen sollen.`n`n");
        
forest();
    }else{
        
output(" Schließlich scheint die Hexe gefunden zu haben, was sie offenbar gesucht hat,`n lässt $row[gold] Gold und $row[gems] Edelsteine von dir in ihrer Schatzkiste verschwinden und schenkt dir keine weitere Beachtung mehr.");
        
output("Gerade, als du den Mund zum Protestieren öffnen willst, fühlst du die Veränderung:`n `bDer Fluch wurde aufgehoben!`b.`n Glücklich verlässt du die Hütte der Hexe.");
        if (
$row[name]=="Der Ring"$session[user][maxhitpoints]+=$row[value1];
        
db_query("DELETE FROM items WHERE id=$_GET[id]");
        
$session[user][gold]-=$row[gold];
        
$session[user][gems]-=$row[gems];
        
addnav("Zurück in den Wald","forest.php");
    }
}else{
    
output("`!Du betrittst das alte Hexenhaus im Wald. Über dem Kaminfeuer hängt ein großer Kessel, in dem eine seltsame braune Flüssigkeit vor sich hin blubbert.`n Eine typische Hexe, lang und dünn mit langer Hakennase und einem spitzen schwarzen Hut kommt dir grinsend entgegen. ");
    if (
$session[user][witch]<getsetting("witchvisits",3)){
        
output("`n\"`%Na, mein".($session[user][sex]?"e Kleine":" Kleiner")."? Hast du dich verlaufen? `nOder kann ich sonst etwas für dich tun? `nDu siehst erschöpft aus! ");
        
output("Wenn du mir`^  $wkcost `%von deinem Gold gibst, lasse ich dich von meinem Aufputschpunsch kosten und du könntest noch ein paar Monster mehr erschlagen. ");
        
addnav("Waldkampf kaufen","hexe.php?op=wkkauf");
        if (
$session[user][turns]>0) {
            
addnav("Besonderes Ereignis","hexe.php?op=besonders");
            
output("Oder du gibst mir deine restliche Kraft und`^ $spcost `% Gold und ich verspreche dir ein besonderes Ereignis im Wald, sobald du meine Hütte verlässt.");
        }
        
addnav("Zurück in den Wald""forest.php");
        
addnav("Sonstige Hexereien");
        if (
$session[user][seenmaster] && $session[user][gems]) addnav("Meister verwirren (1 Edelstein)","hexe.php?op=verwirren");
        if (
$session[user][seendragon] && $session[user][gems]>&& $session[user][turns]>&& $session[user][level]>=15addnav("Neue Drachensuche (3 Edelsteine)","hexe.php?op=drachen");
        if (
$session[user][seenlover] && $session[user][gems]) addnav("Nochmal flirten (1 Edelstein)","hexe.php?op=liebe");
        if (
$session[user][usedouthouse] && $session[user][gems]) addnav("Druck auf die Blase (1 Edelstein)","hexe.php?op=blase");
        if (
$session[user][seenbard] && $session[user][gems]) addnav("Bardenhals befeuchten (1 Edelstein)","hexe.php?op=barde");
        if (
$session[user][lottery] && $session[user][gems]) addnav("Nochmal Lotto (1 Edelstein)","hexe.php?op=lotto");
        if (
$session[user][gotfreeale] && $session[user][gold]>350addnav("Cedrik verwirren (350 Gold)","hexe.php?op=freeale");
        
output("`!\"");
        
$result=db_query("SELECT * FROM items WHERE class='Fluch' AND owner=".$session[user][acctid]." ORDER BY id");
        if (
db_num_rows($result)>0){
            
output(" Sie macht eine kurze Pause, als ob sie etwas an deiner Erscheinung stören würde, und fährt dann fort:`n \"`%Ich spüre, es liegt ein `\$Fluch`% auf dir. Soll ich dir dabei behilflich sein, diesen Fluch los zu werden?`!\"");
            
addnav("Fluch beseitigen","hexe.php?op=fluch1");
        }
        if (
$session[user][playerfights]>&& $session[user][gems]>1){
            
addnav("Spieler verfluchen","hexe.php?op=cursep");
            
output("`n`!Die Hexe bietet dir mehr nebenbei noch an, für Edelsteine jemanden für dich zu verfluchen. ");
        }
        
$session[user][witch]++;
    }else{
        
output("`n\"`%Hey mein".($session[user][sex]?"e Kleine":" Kleiner").", du gehst mir auf die Nerven!`n Hast du mich heute nicht schon oft genug gestört? Mach dass du fort kommst und wage es nicht, heute nochmal zu kommen.`!\" ");
        
output(" `nDas war deutlich genug für dich.");
        
addnav("Zurück in den Wald""forest.php");
    }
}
page_footer();
?>