LoGD Standardrelease steht hier zum Download zur Verfügung!

Home-Adresse dieser Version: anpera.net/logd
Anfragen nach dieser Version bitte an: logd@anpera.de

Zeige Source: /battle.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(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: /battle.php

<?php
// Major MAJOR revamps by JT from logd.dragoncat.net  Frankly I threw out my code and used his.

if($_GET['auto']=="full"$count=100;
elseif(
$_GET['auto']=="five"$count=5;
else 
$count=1;
$bo=(@file_exists("battle_texte.php"))?true:false;
if(
$bo)require_once "battle_texte.php";

function 
activate_buffs($tag){
     global 
$session,$badguy,$bo;
     
reset($session['bufflist']);
     
$result=array();
     
$result['invulnerable']=0;
     
$result['dmgmod']=1;
     
$result['badguydmgmod']=1;
     
$result['atkmod']=1;
     
$result['badguyatkmod']=1;
     
$result['defmod']=1;
     
$result['badguydefmod']=1;
     
$result['lifetap']=array();
     
$result['dmgshield']=array();
     while(list(
$key,$buff)=each($session['bufflist'])){
        if(isset(
$buff['startmsg'])){
           
$msg=$buff['startmsg'];
           
$msg=str_replace("{badguy}",$badguy['creaturename'],$msg);
           
output("`%$msg`0");
           unset(
$session['bufflist'][$key]['startmsg']);
        }
        
$activate=strpos($buff[activate],$tag);
        if(
$activate!==false)$activate=true;
        if(
$activate && !$buff[used]){
           
$session[bufflist][$key][used]=1;
           if(isset(
$buff[roundmsg])){
              
$msg=$buff[roundmsg];
              
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
              
output("`g$msg`0`n");
           }
        }
        if(isset(
$buff[invulnerable]))$result[invulnerable]=1;
        if(isset(
$buff[atkmod]))$result[atkmod]*=$buff[atkmod];
        if(isset(
$buff[badguyatkmod]))$result[badguyatkmod]*=$buff[badguyatkmod];
        if(isset(
$buff[defmod]))$result[defmod]*=$buff[defmod];
        if(isset(
$buff[badguydefmod]))$result[badguydefmod]*=$buff[badguydefmod];
        if(isset(
$buff[dmgmod]))$result[dmgmod]*=$buff[dmgmod];
        if(isset(
$buff[badguydmgmod]))$result[badguydmgmod]*=$buff[badguydmgmod];
        if(isset(
$buff[lifetap]))array_push($result[lifetap],$buff);
        if(isset(
$buff[damageshield]))array_push($result[dmgshield],$buff);
        if(isset(
$buff[regen]) && $activate){
           
$hptoregen=(int)$buff[regen];
           
$hpdiff=$session[user][maxhitpoints]-$session[user][hitpoints];
           if(
$hpdiff<0)$hpdiff=0;
           if(
$hpdiff<$hptoregen)$hptoregen=$hpdiff;
           
$session[user][hitpoints]+=$hptoregen;
           
$hptoregen=abs($hptoregen);
           if(
$bo)$buff=regen_text($buff);
           if(
$hptoregen==0)$msg=$buff[effectnodmgmsg];
           else 
$msg=$buff[effectmsg];
           
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
           
$msg=str_replace("{damage}",$hptoregen,$msg);
           if(
$msg!="")output("`g$msg`0`n");
        }
        if(isset(
$buff[minioncount]) && $activate){
           
$who=-1;
           if(isset(
$buff[maxbadguydamage])){
              if(isset(
$buff[maxbadguydamage])){
                 
$buff[maxbadguydamage]=stripslashes($buff[maxbadguydamage]);
                 eval(
"\$buff[maxbadguydamage] = $buff[maxbadguydamage];");
              }
              
$max=$buff[maxbadguydamage];
              if(isset(
$buff[minbadguydamage])){
                 
$buff[minbadguydamage]=stripslashes($buff[minbadguydamage]);
                 eval(
"\$buff[minbadguydamage] = $buff[minbadguydamage];");
              }
              
$min=$buff[minbadguydamage];
              
$who=0;
           }else{
              
$max=$buff[maxgoodguydamage];
              
$min=$buff[mingoodguydamage];
              
$who=1;
           }
           for(
$i=0;$who>=&& $i<$buff[minioncount];$i++){
              
$damage=e_rand($min,$max);
              if(
$who==0)$badguy[creaturehealth]-=$damage;
              elseif(
$who==1)$session[user][hitpoints]-=$damage;
              if(
$damage<0)$msg=$buff[effectfailmsg];
              elseif(
$damage==0)$msg=$buff[effectnodmgmsg];
              elseif(
$damage>0)$msg=$buff[effectmsg];
              if(
$msg>""){
                 
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
                 
$msg=str_replace("{goodguy}",$session[user][name],$msg);
                 
$msg=str_replace("{damage}",$damage,$msg);
                 
output("`g$msg`0`n");
              }
           }
        }
     }
     return 
$result;
}

function 
process_lifetaps($ltaps,$damage){
     global 
$session,$badguy,$bo;
     
reset($ltaps);
     while(list(
$key,$buff)=each($ltaps)){
        if(
$bo)$buff=life_text($buff);
        
$healhp=$session[user][maxhitpoints]-$session[user][hitpoints];
        if(
$healhp<0)$healhp=0;
        if(
$healhp==0)$msg=$buff[effectnodmgmsg];
        else{
           if(
$healhp>$damage*$buff[lifetap])$healhp=$damage*$buff[lifetap];
           if(
$healhp<0)$healhp=0;
           if(
$damage>0)$msg=$buff[effectmsg];
           elseif(
$damage==0)$msg=$buff[effectfailmsg];
           elseif(
$damage<0)$msg=$buff[effectfailmsg];
        }
        
$session[user][hitpoints]+=$healhp;
        
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
        
$msg=str_replace("{damage}",$healhp,$msg);
        if(
$msg!="")output("`g$msg`n");
     }
}

function 
process_dmgshield($dshield,$damage){
     global 
$session,$badguy,$bo;
     
reset($dshield);
     while(list(
$key,$buff)=each($dshield)){
        if(
$bo)$buff=dmg_text($buff);
        
$realdamage=$damage*$buff[damageshield];
        if(
$realdamage<0)$realdamage=0;
        if(
$realdamage>0)$msg=$buff[effectmsg];
        elseif(
$realdamage==0)$msg=$buff[effectnodmgmsg];
        elseif(
$realdamage<0)$msg=$buff[effectfailmsg];
        
$badguy[creaturehealth]-=$realdamage;
        
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
        
$msg=str_replace("{damage}",$realdamage,$msg);
        if(
$msg>"")output("`g$msg`n");
     }
}

function 
expire_buffs(){
     global 
$session,$badguy;
     
reset($session[bufflist]);
     while(list(
$key,$buff)=each($session[bufflist])){
        if(
$buff[used]){
           
$session[bufflist][$key][used]=0;
           
$session[bufflist][$key][rounds]--;
           if(
$session[bufflist][$key][rounds]<=0){
              if(
$buff[wearoff]){
                 
$msg=$buff[wearoff];
                 
$msg=str_replace("{badguy}",$badguy[creaturename],$msg);
                 if(
$msg!="")output("`g$msg`n");
              }
              unset(
$session[bufflist][$key]);
           }
        }
     }
}


$badguy=createarray($session[user][badguy]);
// Aprilscherz 2
if(date("m-d")=="04-01" && !strpos($badguy[creaturename],"bork bork")){
   
$badguy[creaturename]=$badguy[creaturename]." bork bork";
}

if(
$badguy[creaturelevel]<1)$badguy[creaturelevel]=1;
$adjustment=($session[user][level]/$badguy[creaturelevel]);
if(
$badguy['pvp'])$adjustment=1;
if(
$_GET['op']=="fight"){
   if(
$_GET['skill']=="godmode"){
      
$session[bufflist][godmode]=array(
                         
"name"=>"`&GOD MODE",
                         
"rounds"=>1,
                         
"wearoff"=>"Du bist wieder sterblich.",
                         
"atkmod"=>25,
                         
"defmod"=>25,
                         
"invulnerable"=>1,
                         
"startmsg"=>"`n`&Du fühlst Dich gottgleich.`n`n",
                         
"activate"=>"roundstart");
   }
   if(
$_GET[skill]=="MP"){
      if(
$session[user][magicuses]>=$_GET[l]){
         
$creaturedmg=0;
         switch(
$_GET[l]){
            case 
1:$session[bufflist][mp1]=array(
                                      
"startmsg"=>"`n`^Du fängst an zu regenerieren!`n`n",
                                      
"name"=>"`%Regeneration",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Deine Regeneration hat aufgehört.",
                                      
"regen"=>$session[user][level],
                                      
"effectmsg"=>"Du regenerierst um {damage} Punkte.",
                                      
"effectnodmgmsg"=>"Du bist völlig gesund.",
                                      
"activate"=>"roundstart");
            break;
            case 
2:$session[bufflist][mp2]=array(
                                      
"startmsg"=>"`n`^{badguy}`% wird von einer Klaue aus Erde gepackt und auf den Boden geschleudert!`n`n",
                                      
"name"=>"`%Erdenfaust",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Die erdene Faust zerfällt zu Staub.",
                                      
"minioncount"=>1,
                                      
"effectmsg"=>"Eine gewaltige Faust aus Erde trifft {badguy} mit `^{damage}`0 Schadenspunkten.",
                                      
"minbadguydamage"=>1,
                                      
"maxbadguydamage"=>$session[user][level]*3,
                                      
"activate"=>"roundstart");
            break;
            case 
3:$session[bufflist][mp3]=array(
                                      
"startmsg"=>"`n`^Deine Waffe glüht in einem überirdischen Schein.`n`n",
                                      
"name"=>"`%Leben absaugen",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Die Aura Deiner Waffe verschwindet.",
                                      
"lifetap"=>1//ratio of damage healed to damage dealt
                                      
"effectmsg"=>"Du wirst um {damage} Punkte geheilt.",
                                      
"effectnodmgmsg"=>"Du fühlst ein Prickeln, als Deine Waffe versucht, Deinen vollständig gesunden Körper zu heilen.",
                                      
"effectfailmsg"=>"Deine Waffe scheint zu jammern, als Du deinem Gegner keinen Schaden machst.",
                                      
"activate"=>"offense,defense");
            break;
            case 
5:$session[bufflist][mp5]=array(
                                      
"startmsg"=>"`n`^Deine Haut glitzert, als Du Dir eine Aura aus Blitzen zulegst.`n`n",
                                      
"name"=>"`%Blitzaura",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Mit einem Zischen wird Deine Haut wieder normal.",
                                      
"damageshield"=>2,
                                      
"effectmsg"=>"{badguy} wird von einem Blitzbogen aus Deiner Haut mit `^{damage}`0 Schadenspunkten zurückgeworfen.",
                                      
"effectnodmg"=>"{badguy} ist von Deinen Blitzen leicht geblendet, ansonsten aber unverletzt.",
                                      
"effectfailmsg"=>"{badguy} ist von Deinen Blitzen leicht geblendet, ansonsten aber unverletzt.",
                                      
"activate"=>"offense,defense");
            break;
         }
         
$session[user][magicuses]-=$_GET[l];
      }else{
         
$session[bufflist][mp0]=array(
                            
"startmsg"=>"`nDu legst Deine Stirn in Falten und beschwörst die Elemente.  Eine kleine Flamme erscheint. {badguy} zündet sich eine Zigarette daran an, Dankt dir und stürzt sich wieder auf Dich.`n`n",
                            
"rounds"=>1,
                            
"activate"=>"roundstart");
      }
   }
   if(
$_GET[skill]=="DA"){
      if(
$session[user][darkartuses]>=$_GET[l]){
         
$creaturedmg=0;
         switch(
$_GET[l]){
            case 
1:$session[bufflist][da1]=array(
                                      
"startmsg"=>"`n`\$Du rufst die Geister der Toten und skelettartige Hände zerren an {badguy} aus den Tiefen ihrer Gräber.`n`n",
                                      
"name"=>"`\$Skelettdiener",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Deine Skelettdiener zerbröckeln zu Staub.",
                                      
"minioncount"=>round($session[user][level]/3)+1,
                                      
"maxbadguydamage"=>round($session[user][level]/2,0)+1,
                                      
"effectmsg"=>"`)Ein untoter Diener trifft {badguy} mit `^{damage}`) Schadenspunkten.",
                                      
"effectnodmgmsg"=>"`)Ein untoter Diener versucht {badguy} zu treffen, aber `\$TRIFFT NICHT`)!",
                                      
"activate"=>"roundstart");
            break;
            case 
2:$session[bufflist][da2]=array(
                                      
"startmsg"=>"`n`\$Du holst eine winzige Puppe, die aussieht wie {badguy}, hervor.`n`n",
                                      
"effectmsg"=>"Du stößt eine Nadel in die {badguy}-Puppe und machst damit `^{damage}`) Schadenspunkte!",
                                      
"minioncount"=>1,
                                      
"maxbadguydamage"=>round($session[user][attack]*3,0),
                                      
"minbadguydamage"=>round($session[user][attack]*1.5,0),
                                      
"activate"=>"roundstart");
            break;
            case 
3:$session[bufflist][da3]=array(
                                      
"startmsg"=>"`n`\$Du sprichst einen Fluch auf die Ahnen von {badguy}.`n`n",
                                      
"name"=>"`\$Geist verfluchen",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Dein Fluch ist gewichen.",
                                      
"badguydmgmod"=>0.5,
                                      
"roundmsg"=>"{badguy} taumelt unter der Gewalt Deines Fluchs und macht nur halben Schaden.",
                                      
"activate"=>"defense");
            break;
            case 
5:$session[bufflist][da5]=array(
                                      
"startmsg"=>"`n`\$Du streckst Deine Hand aus und {badguy} fängt an aus den Ohren zu bluten.`n`n",
                                      
"name"=>"`\$Seele verdorren",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Die Seele Deines Opfers hat sich erholt.",
                                      
"badguyatkmod"=>0,
                                      
"badguydefmod"=>0,
                                      
"roundmsg"=>"{badguy} kratzt sich beim Versuch, die eigene Seele zu befreien, fast die Augen aus und kann nicht angreifen oder sich verteidigen.",
                                      
"activate"=>"offense,defense");
            break;
         }
         
$session[user][darkartuses]-=$_GET[l];
      }else{
         
$session[bufflist][da0]=array(
                            
"startmsg"=>"`nErschöpft versuchst Du Deine dunkelste Magie: einen schlechten Witz. {badguy} schaut Dich nachdenklich eine Minute lang an. Endlich versteht er den Witz und stürzt sich lachend wieder auf Dich.`n`n",
                            
"rounds"=>1,
                            
"activate"=>"roundstart");
      }
   }
   if(
$_GET[skill]=="TS"){
      if(
$session[user][thieveryuses]>=$_GET[l]){
         
$creaturedmg=0;
         switch(
$_GET[l]){
            case 
1:$session[bufflist][ts1]=array(
                                      
"startmsg"=>"`n`^Du gibst Deinem Gegner einen schlimmen Namen und bringst {badguy} zum Weinen.`n`n",
                                      
"name"=>"`^Beleidigung",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Dein Gegner putzt sich die Nase und hört auf zu weinen.",
                                      
"roundmsg"=>"{badguy} ist deprimiert und kann nicht so gut angreifen.",
                                      
"badguyatkmod"=>0.5,
                                      
"activate"=>"defense");
            break;
            case 
2:$session[bufflist][ts2]=array(
                                      
"startmsg"=>"`n`^Du reibst Gift auf Dein(e/n) ".$session[user][weapon].".`n`n",
                                      
"name"=>"`^Vergiftete Waffe",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Das Blut Deines Gegners hat das Gift von deiner Waffe gewaschen.",
                                      
"atkmod"=>2,
                                      
"roundmsg"=>"Dein Angriffswert vervielfacht sich!",
                                      
"activate"=>"offense");
            break;
            case 
3:$session[bufflist][ts3]=array(
                                      
"startmsg"=>"`n`^Mit dem Geschick eines erfahrenen Diebs scheinst Du zu verschwinden und kannst {badguy} aus einer günstigeren und sichereren Position angreifen.`n`n",
                                      
"name"=>"`^Versteckter Angriff",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Dein Opfer hat Dich gefunden.",
                                      
"roundmsg"=>"{badguy} kann Dich nicht finden.",
                                      
"badguyatkmod"=>0,
                                      
"activate"=>"defense");
            break;
            case 
5:$session[bufflist][ts5]=array(
                                      
"startmsg"=>"`n`^Mit deinen Fähigkeiten als Dieb verschwindest Du und schiebst {badguy} `^von hinten eine dünne Klinge zwischen die Rückenwirbel!`n`n",
                                      
"name"=>"`^Angriff von hinten",
                                      
"rounds"=>5,
                                      
"wearoff"=>"Dein Opfer ist nicht mehr so nett, Dich hinter sich zu lassen!",
                                      
"atkmod"=>3,
                                      
"defmod"=>3,
                                      
"roundmsg"=>"Dein Angriffswert und Deine Verteidigung vervielfachen sich!",
                                      
"activate"=>"offense,defense");
            break;
         }
         
$session[user][thieveryuses]-=$_GET[l];
      }else{
         
$session[bufflist][ts0]=array(
                            
"startmsg"=>"`nDu versuchst, {badguy} anzugreifen, indem Du Deine besten Diebeskünste in die Praxis umsetzt - aber Du stolperst über Deine eigenen Füsse.`n`n",
                            
"rounds"=>1,
                            
"activate"=>"roundstart");
      }
   }
}


if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0){
   
output ("`\$`c`b~ ~ ~ Kampf ~ ~ ~`b`c`0");
   
output("`@Du hast den Gegner `^$badguy[creaturename]`@ entdeckt, der sich mit seiner Waffe `%$badguy[creatureweapon]`@ auf Dich stürzt!`0`n`n");
   if(
$session[user][alive])output("`2Level: `6$badguy[creaturelevel]`0`n");
   else 
output("`2Level: `6Untoter`0`n");
   
output("`2`bBeginn der Runde:`b`n");
   
output("`2$badguy[creaturename]`2's ".($session[user][alive]?"Lebenspunkte":"Seelenpunkte").": `6$badguy[creaturehealth]`0`n");
   
output("`2DEINE ".($session[user][alive]?"Lebenspunkte":"Seelenpunkte").": `6".$session[user][hitpoints]."`0`n");
}

// weather mod
if($session[user][alive] && $session[user][buffbackup]==""){
   if(
e_rand(1,5)==2){
      if(
getsetting("weather","0")=="Starker Wind mit vereinzelten Regenschauern"){
         if(
e_rand(1,2)==1)$session[bufflist][weather] = array("name"=>"`6Sturm","rounds"=>1,"wearoff"=>"","atkmod"=>0,"roundmsg"=>"`6Ein starker Windstoß lässt Dich dein Ziel verfehlen.","activate"=>"offense");
         else 
$session[bufflist][weather] = array("name"=>"`6Sturm","rounds"=>1,"wearoff"=>"","badguyatkmod"=>0,"roundmsg"=>"`6Ein starker Windstoß hindert {badguy} daran, Dich zu treffen.","activate"=>"defense");
      }
   }
}
// end weather mod

reset($session[bufflist]);
while(list(
$key,$buff)=each($session[bufflist]))$buff[used]=0// reset the 'used this round state'

if($badguy[pvp] && count($session[bufflist])>&& is_array($session[bufflist])){
   if(
$session[user][buffbackup]>""){}
   else{
      
output("`&Die Götter verbieten den Einsatz jeder Spezialfähigkeit!`n");
      
$session[user][buffbackup]=serialize($session[bufflist]);
      
$session[bufflist]=array();
      if(
$_GET[bg]==1){
         
$session[bufflist][bodyguard]=array(
                            
"startmsg"=>"`n`\${$badguy[creaturename]} ist durch einen Leibwächter geschützt!`n`n",
                            
"name"=>"`&Leibwächter",
                            
"rounds"=>5,
                            
"wearoff"=>"Der Leibwächter scheint eingeschlafen zu sein.",
                            
"minioncount"=>1,
                            
"maxgoodguydamage"=> round($session[user][level]/2,0) +1,
                            
"effectmsg"=>"`7{badguy}'s Leibwächter trifft Dich mit `\${damage}`7 Schadenspunkten.",
                            
"effectnodmgmsg"=>"`7{badguy}'s Leibwächter versucht Dich zu treffen, aber `\$TRIFFT NICHT`7!",
                            
"activate"=>"roundstart");
      }
      if(
$_GET[bg]==2){
         
$session[bufflist][heimvorteil]=array(
                            
"startmsg"=>"`n`\${$badguy[creaturename]} `\$hat einen gewaltigen Heimvorteil!`n`n",
                            
"name"=>"`\$Nachteil",
                            
"rounds"=>20,
                            
"wearoff"=>"Der Heimvorteil ist deinem Gegner nicht mehr von Vorteil.",
                            
"minioncount"=>1,
                            
"maxgoodguydamage"=> round($session[user][level]+5),
                            
"effectmsg"=>"`7Durch {badguy}`7's Heimvorteil bekommst Du zusätzlich `\${damage}`7 Schadenspunkte.",
                            
"effectnodmgmsg"=>"",
                            
"activate"=>"roundstart");
      }
   }
}
// Run the beginning of round buffs (this also calculates all modifiers)

for($count=$count;$count>0;$count--){
   if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0){
      
$buffset=activate_buffs("roundstart");
      
$creaturedefmod=$buffset[badguydefmod];
      
$creatureatkmod=$buffset[badguyatkmod];
      
$atkmod=$buffset[atkmod];
      
$defmod=$buffset[defmod];
   }
   if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0){
      if(
$badguy[pvp])$adjustedcreaturedefense=$badguy[creaturedefense];
      else 
$adjustedcreaturedefense=$creaturedefmod*$badguy[creaturedefense]/($adjustment*$adjustment);
      
$creatureattack=$badguy[creatureattack]*$creatureatkmod;
      
$adjustedselfdefense=$session[user][defence]*$adjustment*$defmod;
      while(
$creaturedmg==&& $selfdmg==0){
         
$atk=$session[user][attack]*$atkmod;
         if(
e_rand(1,20)==1)$atk*=3;
         
$patkroll=e_rand(0,$atk);
         
$catkroll=e_rand(0,$adjustedcreaturedefense);
         
$creaturedmg=0-(int)($catkroll-$patkroll);
         if(
$creaturedmg<0){
            
$creaturedmg=(int)($creaturedmg/2);
            
$creaturedmg=round($buffset[badguydmgmod]*$creaturedmg,0);
         }
         if(
$creaturedmg>0)$creaturedmg=round($buffset[dmgmod]*$creaturedmg,0);
         
$pdefroll=e_rand(0,$adjustedselfdefense);
         
$catkroll=e_rand(0,$creatureattack);
         
$selfdmg=0-(int)($pdefroll-$catkroll);
         if(
$selfdmg<0){
            
$selfdmg=(int)($selfdmg/2);
            
$selfdmg=round($selfdmg*$buffset[dmgmod], 0);
         }
         if(
$selfdmg>0)$selfdmg=round($selfdmg*$buffset[badguydmgmod], 0);
      }
   }else{
      
$creaturedmg=0;
      
$selfdmg=0;
      
$count=0;
   }
   
//Handle god mode's invulnerability
   
if($buffset[invulnerable]){
      
$creaturedmg=abs($creaturedmg);
      
$selfdmg=-abs($selfdmg);
   }
   if(
e_rand(1,3)==&& ($_GET[op]=="search" || ($badguy[pvp] && $_GET[act]=="attack"))){
      if(
$badguy[pvp])output("`b`^$badguy[creaturename]`\$'s Fähigkeiten erlauben Deinem Gegner den ersten Schlag!`0`b`n`n");
      else 
output("`b`^$badguy[creaturename]`\$ überrascht Dich und hat den ersten Schlag!`0`b`n`n");
      
$_GET[op]="run";
      
$surprised=true;
   }else{
      if(
$_GET[op]=="search")output("`b`\$Dein Können erlaubt Dir den ersten Angriff!`0`b`n`n");
      
$surprised=false;
   }

   if(
$_GET[op]=="fight" || $_GET[op]=="run"){
      if(
$_GET[op]=="fight"){
         if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0){
            
$buffset=activate_buffs("offense");
            if(
$atk>$session[user][attack]){
               if(
$atk>$session[user][attack]*3){
                  if(
$atk>$session[user][attack]*4)output("`&`bDu holst zu einem <font size='+1'>MEGA</font> Powerschlag aus!!!`b`n",true);
                  else 
output("`&`bDu holst zu einem DOPPELTEN Powerschlag aus!!!`b`n");
               }else{
                  if(
$atk>$session[user][attack]*2)output("`&`bDu holst zu einem Powerschlag aus!!!`b`0`n");
                  elseif(
$atk>$session[user][attack]*1.25)output("`&`bDu holst zu einem kleinen Powerschlag aus!`b`0`n");
               }
            }
            if(
$creaturedmg==0){
               
output("`4Du versuchst `^$badguy[creaturename]`4 zu treffen, aber `\$TRIFFST NICHT!`n");
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield],0);
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap],0);
            }elseif(
$creaturedmg<0){
               
output("`4Du versuchst `^$badguy[creaturename]`4 zu treffen, aber der `\$ABWEHRSCHLAG `4trifft Dich mit `\$".(0-$creaturedmg)."`4 Schadenspunkten!`n");
               
$badguy[diddamage]=1;
               
$session[user][hitpoints]+=$creaturedmg;
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield],-$creaturedmg);
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap],$creaturedmg);
            }else{
               
output("`4Du triffst `^$badguy[creaturename]`4 mit `^$creaturedmg`4 Schadenspunkten!`n");
               
$badguy[creaturehealth]-=$creaturedmg;
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield],-$creaturedmg);
               if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap],$creaturedmg);
            }
            if (
$creaturedmg>$session[user][punch]){
               
$session[user][punch]=$creaturedmg;
               
output("`@`b`c--- DAS WAR DEIN BISHER HÄRTESTER SCHLAG! ---`c`b`n");
            }
         }
      }elseif(
$_GET[op]=="run" && !$surprised){
         
output("`4Du bist zu beschäftigt damit, wegzulaufen wie ein feiger Hund und kannst nicht gegen `^$badguy[creaturename]`4 kämpfen.`n");
      }
      if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0){
         
$buffset=activate_buffs("defense");
         if(
$selfdmg==0){
            
output("`^$badguy[creaturename]`4 versucht Dich zu treffen, aber `\$TRIFFT NICHT!`n");
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield],0);
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap],0);
         }elseif(
$selfdmg<0){
            
output("`^$badguy[creaturename]`4 versucht Dich zu treffen, aber Dein `^ABWEHRSCHLAG`4 trifft mit `^".(0-$selfdmg)."`4 Schadenspunkten!`n");
            
$badguy[creaturehealth]+=$selfdmg;
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap],-$selfdmg);
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield],$selfdmg);
         }else{
            
output("`^$badguy[creaturename]`4 trifft Dich mit `\$$selfdmg`4 Schadenspunkten!`n");
            
$session[user][hitpoints]-=$selfdmg;
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_dmgshield($buffset[dmgshield], $selfdmg);
            if(
$badguy[creaturehealth]>&& $session[user][hitpoints]>0)process_lifetaps($buffset[lifetap], -$selfdmg);
            
$badguy[diddamage]=1;
         }
      }
   }
   
expire_buffs();
   
$creaturedmg=0;
   
$selfdmg=0;
   if(
$count>&& $session[user][hitpoints]>&& $badguy[creaturehealth]>0)output("`2`bNächste Runde:`b`n");
   if(
$session[user][hitpoints]<=|| $badguy[creaturehealth]<=0)$count=-1;
   if(
$badguy[creaturehealth]<=0){
      
$victory=true;
      
$defeat=false;
      
$count=0;
   }else{
      if(
$session[user][hitpoints]<=0){
         
$defeat=true;
         
$victory=false;
         
$count=0;
      }else{
         
$defeat=false;
         
$victory=false;
      }
   }
}


if(
$session[user][hitpoints]>&& $badguy[creaturehealth]>&& ($_GET[op]=="fight" || $_GET[op]=="run")){
   
output("`2`bEnde der Runde:`b`n");
   
output("`2$badguy[creaturename]`2's ".($session[user][alive]?"Lebenspunkte":"Seelenpunkte").": `6$badguy[creaturehealth]`0`n");
   
output("`2DEINE ".($session[user][alive]?"Lebenspunkte":"Seelenpunkte").": `6".$session[user][hitpoints]."`0`n");
}

if(
$victory || $defeat){
   if(isset(
$session[bufflist][bodyguard]))unset($session[bufflist][bodyguard]);
   if(isset(
$session[bufflist][heimvorteil]))unset($session[bufflist][heimvorteil]);
   if(!
is_array($session[bufflist]) || count($session[bufflist])<=0){
      
$session[bufflist]=unserialize($session[user][buffbackup]);
      if(
is_array($session[bufflist])){
         if(
count($session[bufflist])>&& $badguy[pvp])output("`&Die Götter gewähren Dir wieder alle deine speziellen Fähigkeiten.`n`n");
      }else{
         
$session[bufflist] = array();
      }
   }elseif(
is_array($session[bufflist]) && count($session[bufflist])>&& $session[user][buffbackup]!=''){
     
$backup=unserialize($session[user][buffbackup]);
     if(
is_array($backup))foreach($backup AS $key => $value)$session[bufflist][$key]=$value;
   }
   
$session[user][buffbackup] = "";
}
$session[user][badguy]=createstring($badguy);
?>