anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mi 11 Jun, 2025 00:12

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Monster zu Stark?
BeitragVerfasst: Fr 02 Feb, 2007 22:37 
Offline
User
User

Registriert: Fr 02 Feb, 2007 22:23
Beiträge: 11
Wohnort: Kerpen
Ich war mal so frei und habe ein großteil des Spiels umgescriptet.
D.h. es gibt verschiedene Orte und die Monster die erscheinen sind nicht vom User-Level abhängig, sondern vom Ort.
Also wenn man in der Anfangsstadt ist, dann erscheinen nur Monster im Wald mit der in der Datenbank festgelegten "Monsterlocation"=1.
Der Code sieht wiefolgt aus:
[php]$sql = "SELECT * FROM creatures WHERE creaturelocation = 1 ORDER BY rand(".e_rand().") LIMIT 1";[/php]
Also aus der SQL-Datenbank werden die Monster deren "creaturelocation = 1" ist ausgewählt.

So kann man also selbst auf Level 1 gegen Monster kämpfen, die selber Level 5 oder mehr sind.

In der Datenbank habe ich dann einige Monster, die sich "nicht bewegen", somit also keinen Angriff haben.
Als ich dann eingestellt habe, dass sie jedoch (z.B.) 50 DEF haben, musste ich feststellen, dass die Abwehrschlagsberechnung dazukommt. Also gleich eingestellt das DEF = 0.
Gut, klappte alles.
Wenn man gegen die Monster kämpft kommt "xyz versucht anzugreifen...trifft nicht!".

Dann habe Ich vor einigen Tagen die Dateien ein wenig Modifiziert, neue Rassen und Klassen hinzugefügt.
D.h. ich habe die Auswahl der Rassen und Klassen in der newday.php eingestellt, die Skillliste in der common.php und die Effekte der Skills in der battle.php eingestellt.
Außerdem ist das maximale Level 40 und man startet mit 50 HP.

Jetzt habe ich allerdings das Problem, dass die Monster, die eigentlich keinen Angriff und keine Verteidigung haben, irgendwie trotzdem angreifen (und auch treffen) und überhaupt alle anderen Monster fast doppelt so stark sind.
Ein Monster mit 10 HP kann beispielsweise einen User mit 50 HP kleinhacken...wo ist mein Fehler?

Hier die battle.php:
[php]
// 25072004

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

if ($HTTP_GET_VARS[auto]=="full"){
$count=100;
}else if ($HTTP_GET_VARS[auto]=="five"){
$count=5;
}else{
$count=1;
}

function activate_buffs($tag) {
global $session, $badguy;
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; // handle strpos == 0;

// If this should activate now and it hasn't already activated,
// do the round message and mark it.
if ($activate && !$buff['used']) {
// mark it used.
$session['bufflist'][$key]['used'] = 1;
// if it has a 'round message', run it.
if (isset($buff['roundmsg'])) {
$msg = $buff['roundmsg'];
$msg = str_replace("{badguy}", $badguy['creaturename'], $msg);
output("`)$msg`0`n");
}
}

// Now, calculate any effects and run them if needed.
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'];
// Don't regen if we are above max hp
if ($hpdiff < 0) $hpdiff = 0;
if ($hpdiff < $hptoregen) $hptoregen = $hpdiff;
$session['user']['hitpoints'] += $hptoregen;
// Now, take abs value just incase this was a damaging buff
$hptoregen = abs($hptoregen);
if ($hptoregen == 0) $msg = $buff['effectnodmgmsg'];
else $msg = $buff['effectmsg'];
$msg = str_replace("{badguy}", $badguy['creaturename'], $msg);
$msg = str_replace("{damage}", $hptoregen, $msg);
output("`)$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 >= 0 && $i < $buff['minioncount']; $i++) {
$damage = e_rand($min, $max);
if ($who == 0) {
$badguy['creaturehealth'] -= $damage;
} else if ($who == 1) {
$session['user']['hitpoints'] -= $damage;
}
if ($damage < 0) {
$msg = $buff['effectfailmsg'];
} else if ($damage == 0) {
$msg = $buff['effectnodmgmsg'];
} else if ($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("`)$msg`0`n");
}
}
}
}
return $result;
}

function process_lifetaps($ltaps, $damage) {
global $session, $badguy;
reset($ltaps);
while(list($key,$buff) = each($ltaps)) {
$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'];
} else if ($damage == 0) {
$msg = $buff['effectfailmsg'];
} else if ($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("`)$msg`n");
}
}

function process_dmgshield($dshield, $damage) {
global $session, $badguy;
reset($dshield);
while(list($key,$buff) = each($dshield)) {
$realdamage = $damage * $buff['damageshield'];
if ($realdamage < 0) $realdamage = 0;
if ($realdamage > 0) {
$msg = $buff['effectmsg'];
} else if ($realdamage == 0) {
$msg = $buff['effectnodmgmsg'];
} else if ($realdamage < 0) {
$msg = $buff['effectfailmsg'];
}
$badguy[creaturehealth] -= $realdamage;
$msg = str_replace("{badguy}",$badguy['creaturename'], $msg);
$msg = str_replace("{damage}",$realdamage, $msg);
if ($msg > "") output("`)$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);
output("`)$msg`n");
}
unset($session['bufflist'][$key]);
}
}
}
}

$badguy = createarray($session[user][badguy]);

$adjustment = ($session[user][level]/$badguy[creaturelevel]);
if ($badguy[pvp]) $adjustment=1;

if ($HTTP_GET_VARS[op]=="fight"){
// spells
if ($HTTP_GET_VARS[skill]=="zauber"){
$resultz=db_query("SELECT * FROM items WHERE id=$_GET[itemid]") or die(db_error(LINK));
$zauber = db_fetch_assoc($resultz);
$spellbuff=unserialize($zauber[buff]);
$session[bufflist][$spellbuff[name]]=$spellbuff;
$zauber[gold]=round($zauber[gold]*($zauber[value1]/($zauber[value2]+1)));
$zauber[gems]=round($zauber[gems]*($zauber[value1]/($zauber[value2]+1)));
$zauber[value1]--;
if ($zauber[value1]<=0 && $zauber[hvalue]<=0){
db_query("DELETE FROM items WHERE id=$_GET[itemid]");
}else{
db_query("UPDATE items SET value1=$zauber[value1], gems=$zauber[gems], gold=$zauber[gold] WHERE id=$_GET[itemid]");
}
}
// end spells
if ($HTTP_GET_VARS[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 ($HTTP_GET_VARS[skill]=="HU"){
if ($session[user][darkartuses] >= $HTTP_GET_VARS[l]){
$creaturedmg = 0;
switch($HTTP_GET_VARS[l]){
case 1:
$session[bufflist]['hu1']=array(
"startmsg"=>"`n`\$Du spannst zwei Pfeile auf die Seene und feuerst sie auf {badguy}.`n`n",
"effectmsg"=>"Die Pfeile treffen {badguy} und richten damit `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"`)Die Pfeile verfehlen {badguy}!",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2.5,0),
"min.badguydamage"=>round($session[user][attack]*1.5,0),
"activate"=>"roundstart"
);
break;
case 2:
$session[bufflist]['hu2']=array(
"startmsg"=>"`n`\$Du Spannst den Bogen bis hinter den Kopf und feuerst dann einen Pfeil mit maximaler Schusskraft auf {badguy}`n`n",
"effectmsg"=>"Der Pfeil trifft {badguy} in der Brust und macht `^{damage}`) Schadenspunkte!",
"effectnodmgmsg"=>"`)Der Pfeil verfehlt {badguy}!",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*3,0),
"minbadguydamage"=>round($session[user][attack]*1.5,0),
"activate"=>"roundstart"
);
break;
case 3:
$session[bufflist]['hu3']=array(
"startmsg"=>"`n`\$Ein Falke erscheint und fliegt auf {badguy} zu.`n`n",
"effectmsg"=>"Der Falke sticht mit seinem Schnabel auf {badguy} ein und macht `^{damage}`) Schadenspunkte!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2,0),
"minbadguydamage"=>round($session[user][attack]*1.5,0),
"activate"=>"roundstart"
);
break;
case 5:
$session[bufflist]['hu5']=array(
"startmsg"=>"`n`\$Du spannst 5 Pfeile auf deinen Bogen und schießt`n`n",
"effectmsg"=>"Ein paar Pfeile treffen {badgury} mit `^{damage}`) Schadenspunkten!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+5,0),
"minbadguydamage"=>round($session[user][attack]+1,0),
"activate"=>"roundstart"
);
break;
case 7:
$session[bufflist]['hu7']=array(
"startmsg"=>"`n`\$Du nimmst dir die Zeit um nun genau zu Zielen.`n`n",
"effectmsg"=>"Du zielst auf den Kopf, schießt und triffst {badguy} mit `^{damage}`) Schadenspunkten!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*3,0),
"minbadguydamage"=>round($session[user][attack]*2,0),
"activate"=>"roundstart"
);
break;
case 9:
$session[bufflist]['hu9']=array(
"startmsg"=>"`n`\$Du rufst deinen treuen Falken zu dir.`n`n",
"rounds"=>5,
"wearoff"=>"Dein Falke ist erschöpft und fliegt davon.",
"roundmsg"=>"Dein Falke startet zum Angriff und trifft {badguy} mit `^{damage}`) Schadenspunkten!",
"maxbadguydamage"=>round($session[user][hunteruses]*2,0),
"minbadguydamage"=>round($session[user][hunteruses]*1,0),
"activate"=>"roundstart"
);
break;
case 11:
$session[bufflist]['hu11']=array(
"startmsg"=>"`n`\$Du nimmst so viele Pfeile wie du nur greifen kannst und feuerst sie ab.`n`n",
"effectmsg"=>"Von all deinen Pfeilen treffen einige {badguy} und richten `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][hunteruses]*20,0),
"minbadguydamage"=>round($session[user][hunteruses]*5,0),
"activate"=>"roundstart"
);
break;
}
$session[user][hunteruses]-=$HTTP_GET_VARS[l];
}else{
$session[bufflist]['hu0'] = array(
"startmsg"=>"`nErschöpft versuchst du mehrere Pfeile zu packen, die dir jedoch alle herunterfallen. {badguy} schaut dich nachdenklich eine Minute lang an. Dannach stürzt er sich lachend wieder auf dich.`n`n",
"rounds"=>1,
"activate"=>"roundstart"
);
$session['user']['reputation']--;
}
}
if ($HTTP_GET_VARS[skill]=="AS"){
if ($session[user][assassinuses] >= $HTTP_GET_VARS[l]){
$creaturedmg = 0;
switch($HTTP_GET_VARS[l]){
case 1:
$session[bufflist]['as1']=array(
"startmsg"=>"`n`4So schnell wie möglich, versuchst du zu verschwinden, um aus dem Hinterhalt anzugreifen.`n`n",
"effectmsg"=>"Du greifst {badguy} aus dem Hinterhalt an, und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"Du versuchst {badguy} aus dem Hinterhalt anzugreifen, aber schlägst ins Leere!",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*1.5,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
break;
case 2:
$session[bufflist]['as2']=array(
"startmsg"=>"`n`4Du startest einen Sprint auf {badguy} zu.`n`n",
"effectmsg"=>"Du stürmst auf {badguy} und schlägst so schnell zu, dass er es nichtmal bemerkt. {badguy} verliert `^{damage}`) Lebenspunkte!",
"effectnodmgmsg"=>"Du stürmst auf {badguy} zu und rennst an ihm vorbei, gegen einen Baum.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
break;
case 3:
$session[bufflist]['as3']=array(
"startmsg"=>"`n`4Du nimmst einen mit Gift getränkten Pfeil und wirfst ihn auf einen Gegner.",
"name"=>"`%Vergiften",
"rounds"=>5,
"wearoff"=>"{badguy} ist nichtmehr vergiftet.",
"roundmsg"=>"{badguy} verliert wegen der Vergiftung `^{damage}`) Lebenspunkte! Außerdem ist er geschwächt!",
"maxbadguydamage"=>round($session[user][attack]*1,0),
"minbadguydamage"=>round($session[user][attack]*0.5,0),
"badguyatkmod"=>0.5,
"activate"=>"defense"
);
break;
case 5:
$session[bufflist]['as5']=array(
"startmsg"=>"`n`4Du packst ein Messer aus und wirfst es auf deinen Gegner.",
"effectmsg"=>"Das Messer trifft {badguy} und richtet `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2,0),
"minbadguydamage"=>round($session[user][attack]*1.5,0),
"activate"=>"roundstart"
);
break;
case 7:
$session[bufflist]['as7']=array(
"startmsg"=>"`n`4Du startest eine Kombination aus Schlägen und Geschwindigkeit.",
"effectmsg"=>"Du triffst deinen Gegner mehrere Male und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*4,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
break;
case 9:
$session[bufflist]['as9']=array(
"startmsg"=>"`n`4Du saugst deinem Gegner Lebensenergie aus.",
"effectmsg"=>"Du hast {badguy} insgesammt `^{damage}`) Lebensenergie ausgesaugt!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][assassinuses]*10,0),
"minbadguydamage"=>round($session[user][assassinuses]*5,0),
"activate"=>"roundstart"
);
break;
case 11:
$session[bufflist]['as11']=array(
"startmsg"=>"`n`4Du sammelst deine Kräfte um den ultimativen Angriff zu starten.",
"effectmsg"=>"Du triffst {badguy} mit insgesammt `^{damage}`) Schadenspunkten!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+$session[user][assassinuses]*2,0),
"minbadguydamage"=>round($session[user][attack]+$session[user][assassinuses]*1,0),
"activate"=>"roundstart"
);
break;
}
$session[user][assassinuses]-=$HTTP_GET_VARS[l];
}else{
$session[bufflist]['as0'] = array(
"startmsg"=>"`nErschöpft versuchst du zu Morden, brichst dir dabei aber fast selber das Genick.`n`n",
"rounds"=>1,
"activate"=>"roundstart"
);
$session['user']['reputation']--;
}
}
if ($HTTP_GET_VARS[skill]=="SM"){
if ($session[user][swordmanuses] >= $HTTP_GET_VARS[l]){
$creaturedmg = 0;
switch($HTTP_GET_VARS[l]){
case 1:
$session[bufflist]['sm1']=array(
"startmsg"=>"`n`%Du holst mit deinem Schwert weit aus.`n`n",
"effectmsg"=>"Du trifst {badguy} mit einem harten Schlag und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+5,0),
"minbadguydamage"=>round($session[user][attack]+1,0),
"activate"=>"roundstart"
);
break;
case 2:
$session[bufflist]['sm2']=array(
"startmsg"=>"`n`%Du holst zu einem Rundumschlag aus.`n`n",
"effectmsg"=>"Du drehst dich einige Runden um deine eigene Achse und triffst {badguy} mit `^{damage}`) Schadenspunkten!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*1.5,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
break;
case 3:
$session[bufflist]['sm3']=array(
"startmsg"=>"`n`%Du versuchst die Regeln zu brechen und zweimal zuzuschlagen.",
"effectmsg"=>"Du triffst {badguy} mit `^{damage}`) Schadenspunkten!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
break;
case 5:
$session[bufflist]['sm5']=array(
"startmsg"=>"`n`%Du Startest einen Angriff auf den Solarplexus von {badguy}.",
"effectmsg"=>"Du triffst {badguy} am Solarplexus und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+10,0),
"minbadguydamage"=>round($session[user][attack]+5,0),
"activate"=>"roundstart"
);
break;
case 7:
$session[bufflist]['sm7']=array(
"startmsg"=>"`n`%Du sammelst deine Kraft für einen heftigen Schlag.",
"effectmsg"=>"Mit deinem Schlag konntest du {badguy} `^{damage}`) Lebenspunkte abziehen.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+15,0),
"minbadguydamage"=>round($session[user][attack]+5,0),
"activate"=>"roundstart"
);
break;
case 9:
$session[user]['sm9']=array(
"startmsg"=>"`n`%Du startest einen Kreuzschlag.",
"effectmsg"=>"Du ritzt {badguy} ein Kreuz in die Brust und richtest `^{damage}`) Schaden an.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2.5,0),
"minbadguydamage"=>round($session[user][attack]*1.5,0),
"activate"=>"roundstart"
);
break;
case 11:
$session[user]['sm11']=array(
"startmsg"=>"`n`%Du versuchst deinen Gegner zu Enthaupten.",
"effectmsg"=>"Du konntest {badguy} eine große Wunde zufügen. Er blutet.",
"effectnodmgmsg"=>"",
"name"=>"`4Bluten",
"rounds"=>5,
"wearoff"=>"{badguy}'s Blutung wurde gestoppt.",
"roundmsg"=>"{badguy} verliert wegen der Wunde `^{damage}`) Lebenspunkte! Außerdem ist er geschwächt!",
"maxbadguydamage"=>round($session[user][attack]*1,0),
"minbadguydamage"=>round($session[user][attack]*0.5,0),
"badguyatkmod"=>0.5,
"activate"=>"defense"
);
break;
}
$session[user][swordmanuses]-=$HTTP_GET_VARS[l];
}else{
$session[bufflist]['sm0'] = array(
"startmsg"=>"`nErschöpft versuchst du dein Schwert zu heben. Dabei fällt es dir fast auf die Füße.`n`n",
"rounds"=>1,
"activate"=>"roundstart"
);
$session['user']['reputation']--;
}
}
if ($HTTP_GET_VARS[skill]=="MA"){
if ($session[user][magicanuses] >= $HTTP_GET_VARS[l]){
$creaturedmg = 0;
switch($HTTP_GET_VARS[l]){
case 1:
$session[bufflist]['ma1']=array(
"startmsg"=>"`n`4Du beschwörst einen Feuerball in deiner Hand`n`n",
"effectmsg"=>"Du trifst {badguy} mit dem Feuerball und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][magicanuses]+10,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
break;
case 2:
$session[bufflist]['ma2']=array(
"startmsg"=>"`n`9Du beschwörst einen Schneesturm herauf`n`n",
"name"=>"`9Schneesturm",
"rounds"=>5,
"wearoff"=>"Der Schneesturm stoppt",
"roundmsg"=>"Der Schneesturm richtet bei {badguy} `^{damage}`) Schadenspunkte an!",
"maxbadguydamage"=>round($session[user][magicanuses]+10,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
break;
case 3:
$session[bufflist]['ma3']=array(
"startmsg"=>"`n`TDu bringst die Erde zum Beben`n`n",
"effectmsg"=>"{badguy} kann sich nicht halten, stürzt und verliert `^{damage}`) Lebenspunkte.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][magicanuses]+15,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
break;
case 5:
$session[bufflist]['ma5']=array(
"startmsg"=>"`n`&Ein Kreuz erscheint vom Himmel.`n`n",
"effectmsg"=>"Das heilige Kreuz trifft {badguy} mit `^{damage}`) Schadenspunkten.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][magicanuses]+20,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
break;
case 7:
$session[bufflist]['ma7']=array(
"startmsg"=>"`n`^Du beschwörst ein Gewitter herauf.`n`n",
"name"=>"`^Donnerwetter",
"rounds"=>5,
"wearoff"=>"Das Donnerwetter löst sich auf",
"roundmsg"=>"Die Blitze richten `^{damage}`) Schaden an.",
"maxbadguydamage"=>round($session[user][magicanuses]+15,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
break;
case 9:
$session[bufflist]['ma9']=array(
"startmsg"=>"`n`%Du beschwörst eine Schattenkugel auf deiner Hand`n`n",
"effectmsg"=>"Die Kugel trifft {badguy} mit `^{damage}`) Schadenspunkten.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][magicanuses]+25,0),
"minbadguydamage"=>round($session[user][magicanuses]+10,0),
"activate"=>"roundstart"
);
break;
case 11:
$session[bufflist]['ma11']=array(
"startmsg"=>"`n`%Du beschwörst einen Elementaren Sturm`n`n",
"rounds"=>10,
"wearoff"=>"Die Elemente beenden ihren Angriff",
"roundmsg"=>"Die Elemente richteen `^{damage}`) Schaden an.",
"maxbadguydamage"=>round($session[user][magicanuses]+25,0),
"minbadguydamage"=>round($session[user][magicanuses]+10,0),
"activate"=>"roundstart"
);
break;
}
$session[user][magicanuses]-=$HTTP_GET_VARS[l];
}else{
$session[bufflist]['ma0'] = array(
"startmsg"=>"`nErschöpft versuchst du einen Feuerball zu zünden, der dir aber schließlich die Hand verbrennt.`n`n",
"rounds"=>1,
"activate"=>"roundstart"
);
$session['user']['reputation']--;
}
}
if ($HTTP_GET_VARS[skill]=="MO"){
if ($session[user][monkuses] >= $HTTP_GET_VARS[l]){
$creaturedmg = 0;
switch($HTTP_GET_VARS[l]){
case 1:
$session[bufflist]['mo1']=array(
"startmsg"=>"`n`^Du beschwörst ein heiliges Kreuz`n`n",
"effectmsg"=>"Du trifst {badguy} mit dem Kreuz und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][magicanuses]+10,0),
"minbadguydamage"=>round($session[user][magicanuses]+5,0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=1;
break;
case 2:
$session[bufflist]['mo2']=array(
"startmsg"=>"`n`^Du versuchst dreimal zuzuschlagen`n`n",
"effectmsg"=>"Du trifst {badguy} einige Male und richtest `^{damage}`) Schaden an!",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=2;
break;
case 3:
$session[bufflist]['mo3']=array(
"startmsg"=>"`n`^Du versuchst {badguy} mit einem Ketten Kombo zu attackieren.`n`n",
"effectmsg"=>"Du triffst {badguy} mit `^{damage}`) Schadenspunkten.",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*2.5,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=3;
break;
case 5:
$session[bufflist]['mo5']=array(
"startmsg"=>"`n`^Du versuchst {badguy} mit dem Finalen Kombo zu attackieren.`n`n",
"effectmsg"=>"Du triffst {badguy} mit `^{damage}`) Schadenspunkten.",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*3,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=5;
break;
case 7:
$session[bufflist]['mo7']=array(
"startmsg"=>"`n`^Du beschwörst 5 Seelen.`n`n",
"effectmsg"=>"Du feuerst die Seelen auf {badguy} mit `^{damage}`) Schadenspunkten.",
"effectnodmgmsg"=>"Du versuchst {badguy} zu treffen, doch dieser weicht aus.",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]*5,0),
"minbadguydamage"=>round($session[user][attack]*1,0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=7;
break;
case 9:
$session[bufflist]['mo9']=array(
"startmsg"=>"`n`^Du beschwörst 5 Seelen..`n`n",
"round"=>5,
"wearoff"=>"Die Seelen haben dich verlassen",
"roundmsg"=>"Die Seelen bestärken dich und du richtest `^{damage}`) Schaden an",
"atkmod"=>2,
"activate"=>"offense"
);
$session[user][monkuses]-=9;
break;
case 11:
$session[bufflist]['mo9']=array(
"startmsg"=>"`n`^Du beschwörst 5 Seelen um einen Asura Strike zu starten.`n`n",
"effectmsg"=>"Du triffst {badguy} mit einem harten Schlag und richtest `^{damage}`) Schaden an.",
"effectnodmgmsg"=>"",
"minioncount"=>1,
"maxbadguydamage"=>round($session[user][attack]+$session[user][level]*$session[user][monkuses],0),
"minbadguydamage"=>round($session[user][attack]*$session[user][monkuses],0),
"activate"=>"roundstart"
);
$session[user][monkuses]-=$session[user][monkuses];
break;
}
$session[user][monkuses]-=$HTTP_GET_VARS[l];
}else{
$session[bufflist]['mo0'] = array(
"startmsg"=>"`nDu bist zu geschwächt, um weitere Zauber auszuführen.`n`n",
"rounds"=>1,
"activate"=>"roundstart"
);
$session['user']['reputation']--;
}
}
}


if ($badguy['creaturehealth']>0 && $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");
output("<IMG SRC=\"$badguy[creatureimg]\" align='middle'>`n`n",true);

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");
}

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

if ($badguy[pvp] &&
count($session[bufflist])>0 &&
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']>0 && $session['user']['hitpoints']>0){

// weather mod
if ($session['user']['alive'] && $session['user']['buffbackup']==""){
if (e_rand(1,6)==2){
$wetter=getsetting("weather","0");
if ($wetter=="Starker Wind mit vereinzelten Regenschauern"){
if (e_rand(1,2)==1){
$session['bufflist']['weather'] = array("name"=>"`6Wetter","rounds"=>1,"wearoff"=>"","atkmod"=>0,"roundmsg"=>"`6Ein starker Windstoss läßt dich dein Ziel verfehlen.","activate"=>"offense");
}else{
$session['bufflist']['weather'] = array("name"=>"`6Wetter","rounds"=>1,"wearoff"=>"","badguyatkmod"=>0,"roundmsg"=>"`6Ein starker Windstoss hindert {badguy} daran, dich zu treffen.","activate"=>"defense");
}
}else if ($wetter=="Schneeregen"){
if (e_rand(1,2)==1){
$session['bufflist']['weather'] = array("name"=>"`6Wetter","rounds"=>1,"wearoff"=>"","defmod"=>0,"roundmsg"=>"`6Durch den Schneeregen siehst du den Schlag deines Gegners nicht kommen.","activate"=>"defense");
}else{
$session['bufflist']['weather'] = array("name"=>"`6Wetter","rounds"=>1,"wearoff"=>"","badguydefmod"=>0,"roundmsg"=>"`6Durch den Schneeregen sieht dein Gegner deinen Schlag nicht kommen.","activate"=>"offense");
}
}
}
}
// end weather mod


$buffset = activate_buffs("roundstart");

$creaturedefmod=$buffset['badguydefmod'];
$creatureatkmod=$buffset['badguyatkmod'];
$atkmod=$buffset['atkmod'];
$defmod=$buffset['defmod'];
}

if ($badguy['creaturehealth']>0 && $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==0 && $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) {
//output("`#DEBUG: Initial (<0) creature damage $creaturedmg`n");
$creaturedmg = (int)($creaturedmg/2);
//output("`#DEBUG: Modified (<0) creature damage $creaturedmg`n");
$creaturedmg = round($buffset[badguydmgmod]*$creaturedmg,0);
//output("`#DEBUG: Modified (<0) creature damage $creaturedmg`n");
}
if ($creaturedmg > 0) {
//output("`#DEBUG: Initial (>0) creature damage $creaturedmg`n");
$creaturedmg = round($buffset[dmgmod]*$creaturedmg,0);
//output("`#DEBUG: Modified (>0) creature damage $creaturedmg`n");
}
//output("`#DEBUG: Attack score: $atk`n");
//output("`#DEBUG: Creature Defense Score: $adjustedcreaturedefense`n");
//output("`#DEBUG: Player Attack roll: $patkroll`n");
//output("`#DEBUG: Creature Defense roll: $catkroll`n");
//output("`#DEBUG: Final Creature Damage: $creaturedmg`n");
$pdefroll = e_rand(0,$adjustedselfdefense);
$catkroll = e_rand(0,$creatureattack);
$selfdmg = 0-(int)($pdefroll - $catkroll);
if ($selfdmg<0) {
//output("`#DEBUG: Initial (<0) self damage $selfdmg`n");
$selfdmg=(int)($selfdmg/2);
//output("`#DEBUG: Modified (<0) self damage $selfdmg`n");
$selfdmg = round($selfdmg*$buffset[dmgmod], 0);
//output("`#DEBUG: Modified (<0) self damage $selfdmg`n");
}
if ($selfdmg > 0) {
//output("`#DEBUG: Initial (>0) self damage $selfdmg`n");
$selfdmg = round($selfdmg*$buffset[badguydmgmod], 0);
//output("`#DEBUG: Modified (>0) self damage $selfdmg`n");
}
//output("`#DEBUG: Defense score: $adjustedselfdefense`n");
//output("`#DEBUG: Creature Attack score: $creatureattack`n");
//output("`#DEBUG: Player Defense roll: $pdefroll`n");
//output("`#DEBUG: Creature Attack roll: $catkroll`n");
//output("`#DEBUG: Final Player damage: $selfdmg`n");
//output("`#DEBUG: count: $count`n");
}
}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)==1 &&
($HTTP_GET_VARS[op]=="search" ||
($badguy[pvp] && $HTTP_GET_VARS[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");
}
$HTTP_GET_VARS[op]="run";
$surprised=true;
}else{
if ($HTTP_GET_VARS[op]=="search")
output("`b`\$Dein Können erlaubt dir den ersten Angriff!`0`b`n`n");
$surprised=false;
}

if ($HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run"){
if ($HTTP_GET_VARS[op]=="fight"){
if ($badguy[creaturehealth]>0 && $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("`7`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]>0 && $session[user][hitpoints]>0) process_dmgshield($buffset[dmgshield], 0);
if ($badguy[creaturehealth]>0 && $session[user][hitpoints]>0) process_lifetaps($buffset[lifetap], 0);
}else if ($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]>0 && $session[user][hitpoints]>0) process_dmgshield($buffset[dmgshield],-$creaturedmg);
if ($badguy[creaturehealth]>0 && $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]>0 && $session[user][hitpoints]>0) process_dmgshield($buffset[dmgshield],-$creaturedmg);
if ($badguy[creaturehealth]>0 && $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");
}
}
}else if($HTTP_GET_VARS[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");
}
// We need to check both user health and creature health. Otherwise the user
// can win a battle by a RIPOSTE after he has gone <= 0 HP.
//-- Gunnar Kreitz
if ($badguy[creaturehealth]>0 && $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]>0 && $session[user][hitpoints]>0) process_dmgshield($buffset[dmgshield], 0);
if ($badguy[creaturehealth]>0 && $session[user][hitpoints]>0) process_lifetaps($buffset[lifetap], 0);
}else if ($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]>0 && $session[user][hitpoints]>0) process_lifetaps($buffset[lifetap], -$selfdmg);
if ($badguy[creaturehealth]>0 && $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]>0 && $session[user][hitpoints]>0) process_dmgshield($buffset[dmgshield], $selfdmg);
if ($badguy[creaturehealth]>0 && $session[user][hitpoints]>0) process_lifetaps($buffset[lifetap], -$selfdmg);
$badguy['diddamage']=1;
}
}
}
expire_buffs();


$creaturedmg=0;
$selfdmg=0;
if ($count>1 && $session[user][hitpoints]>0 && $badguy[creaturehealth]>0) output("`2`bNächste Runde:`b`n");
if ($session[user][hitpoints]<=0 || $badguy[creaturehealth]<=0) $count=-1;

if ($badguy[creaturehealth]<=0 && $session[user][hitpoints]>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]>0 &&
$badguy[creaturehealth]>0 &&
($HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[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){
// Unset the bodyguard buff at the end of the fight.
// Without this, the bodyguard persists *and* the older buffs are held
// off for a while! :/
if (isset($session['bufflist']['bodyguard'])) unset($session['bufflist']['bodyguard']);
if (isset($session['bufflist']['weather'])) unset($session['bufflist']['weather']);
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'])>0 && $badguy[pvp])
output("`&Die Götter gewähren dir wieder alle deine speziellen Fähigkeiten.`n`n");
} else {
$session['bufflist'] = array();
}
}
$session['user']['buffbackup'] = "";
}

$session[user][badguy]=createstring($badguy);[/php]

Der Teil der common.php:
[php]function fightnav($allowspecial=true, $allowflee=true){
global $PHP_SELF,$session;
//$script = str_replace("/","",$PHP_SELF);
$script = substr($PHP_SELF,strrpos($PHP_SELF,"/")+1);
addnav("Kämpfen","$script?op=fight");
if ($allowflee) {
addnav("Wegrennen","$script?op=run");
}
if (getsetting("autofight",0)){
addnav("AutoFight");
addnav("5 Runden kämpfen","$script?op=fight&auto=five");
addnav("Bis zum bitteren Ende","$script?op=fight&auto=full");
}
if ($allowspecial) {
addnav("`bBesondere Fähigkeiten`b");
if ($session[user][hunteruses]>0) {
addnav("`9Jäger`0", "");
addnav("`9• Doppelpfeil`7 (1/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=1",true);
}
if ($session[user][hunteruses]>1)
addnav("`9• Bogen überspannen`7 (2/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=2",true);
if ($session[user][hunteruses]>2)
addnav("`9• 5 Pfeile`7 (3/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=3",true);
if ($session[user][hunteruses]>4)
addnav("`9• Blitzbeat`7 (5/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=5",true);
if ($session[user][hunteruses]>6)
addnav("`9• Scharfschütze`7 (7/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=7",true);
if ($session[user][hunteruses]>8)
addnav("`9• Falken herbeirufen`7 (9/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=9",true);
if ($session[user][hunteruses]>10)
addnav("`9• Pfeilsturm`7 (11/".$session[user][hunteruses].")`0","$script?op=fight&skill=HU&l=11",true);

if ($session[user][assassinuses]>0) {
addnav("`4Meuchemörder`0","");
addnav("`4• Hinterhalt`7 (1/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=1",true);
}
if ($session[user][assassinuses]>1)
addnav("`4• Attentäterangriff`7 (2/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=2",true);
if ($session[user][assassinuses]>2)
addnav("`4• Vergiften`7 (3/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=3",true);
if ($session[user][assassinuses]>4)
addnav("`4• Messerwurf`7 (5/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=5",true);
if ($session[user][assassinuses]>6)
addnav("`4• Schnellschläge`7 (7/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=7",true);
if ($session[user][assassinuses]>8)
addnav("`4• Wendehals`7 (9/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=9",true);
if ($session[user][assassinuses]>10)
addnav("`4• Mord`7 (11/".$session[user][assassinuses].")`0","$script?op=fight&skill=AS&l=11",true);

if ($session[user][swordmanuses]>0) {
addnav("`%Schwertkämpfer`0","");
addnav("`%• Ausholen`7 (1/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=1",true);
}
if ($session[user][swordmanuses]>1)
addnav("`%• Rundumschlag`7 (2/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=2",true);
if ($session[user][swordmanuses]>2)
addnav("`%• Doppelschlag`7 (3/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=3",true);
if ($session[user][swordmanuses]>4)
addnav("`%• Solarplexus`7 (5/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=5",true);
if ($session[user][swordmanuses]>6)
addnav("`%• Heftiger Schlag`7 (7/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=7",true);
if ($session[user][swordmanuses]>8)
addnav("`%• Kreuzschlag`7 (9/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=9",true);
if ($session[user][swordmanuses]>10)
addnav("`%• Enthaupten`7 (11/".$session[user][swordmanuses].")`0","$script?op=fight&skill=SM&l=11",true);

if ($session[user][magicanuses]>0) {
addnav("`@Magier`0","");
addnav("`@• Feuerball (`4Feuer)`7 (1/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=1",true);
}
if ($session[user][magicanuses]>1)
addnav("`@• Frostnova (`9Eis)`7 (2/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=2",true);
if ($session[user][magicanuses]>2)
addnav("`@• Beben (`TErde)`7 (3/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=3",true);
if ($session[user][magicanuses]>4)
addnav("`@• Heiliges Kreuz (`&Heilig)`7 (5/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=5",true);
if ($session[user][magicanuses]>6)
addnav("`@• Donnerschlag (`^Donner)`7 (7/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=7",true);
if ($session[user][magicanuses]>8)
addnav("`@• Schattenkugel (`%Schatten)`7 (9/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=9",true);
if ($session[user][magicanuses]>10)
addnav("`@• Elementar Sturm (`vAlle)`7 (11/".$session[user][magicanuses].")`0","$script?op=fight&skill=MA&l=11",true);

if ($session[user][monkuses]>0) {
addnav("`^Monk`0","");
addnav("`^• Großes Kreuz`7 (1/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=1",true);
}
if ($session[user][monkuses]>1)
addnav("`^• Dreifach Schlag`7 (2/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=2",true);
if ($session[user][monkuses]>2)
addnav("`^• Ketten Kombo`7 (3/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=3",true);
if ($session[user][monkuses]>4)
addnav("`^• Finaler Kombo`7 (5/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=5",true);
if ($session[user][monkuses]>6)
addnav("`^• Finger Offensive`7 (7/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=7",true);
if ($session[user][monkuses]>8)
addnav("`^• Gefährliche Seelen`7 (9/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=9",true);
if ($session[user][monkuses]>10)
addnav("`^• Asura Strike`7 (x/".$session[user][monkuses].")`0","$script?op=fight&skill=MO&l=11",true);
if ($session[user][superuser]>=3) {
addnav("`&Superuser`0","");
addnav("!?`&• __GOD MODE","$script?op=fight&skill=godmode",true);
}
$sql="SELECT * FROM items WHERE class='Zauber' AND owner=".$session[user][acctid]." AND value1>0 ORDER BY name ASC";
$result=db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>0) addnav("Zauber");
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$spellbuff=unserialize($row[buff]);
addnav("`v$spellbuff[name] `0(".$row[value1]."x)","$script?op=fight&skill=zauber&itemid=$row[id]");
}
// end spells
}
[/php]

der Monsterdatenbank-Eintrag:
CREATE TABLE creatures (
creatureid int(11) NOT NULL auto_increment,
creaturename varchar(50) default NULL,
creaturelevel int(11) default NULL,
creatureweapon varchar(50) default NULL,
creaturelose varchar(120) default NULL,
creaturewin varchar(120) default NULL,
creaturegold int(11) default NULL,
creatureexp int(11) default NULL,
creaturehealth int(11) default NULL,
creatureattack int(11) default NULL,
creaturedefense int(11) default NULL,
oldcreatureexp int(11) default NULL,
createdby varchar(50) default NULL,
location tinyint(4) NOT NULL default '0',
creaturelocation int(11) default NULL,
creatureimg varchar(120) default NULL,
PRIMARY KEY (creatureid),
KEY creaturelocation (creaturelocation)
) TYPE=MyISAM;

#
# Daten für Tabelle `creatures`
#

INSERT INTO creatures VALUES (0, 'Poring', 1, 'kleines Messer', NULL, NULL, 5, 5, 10, 1, 1, 5, 'Lord Sephiroth', 0, 1, "images/creatures/poring.gif");
INSERT INTO creatures VALUES (0, 'Lunatic', 1, 'großer Kopf', NULL, NULL, 7, 7, 15, 2, 2, 7, 'Lord Sephiroth', 0, 1, "images/creatures/lunatic.gif");
INSERT INTO creatures VALUES (0, 'Creamy', 2, 'Flügel', NULL, NULL, 12, 12, 20, 3, 3, 12, 'Lord Sephiroth', 0, 1, "images/creatures/creamy.gif");
INSERT INTO creatures VALUES (0, 'Fabre', 1, 'kleine Zähne', NULL, NULL, 5, 5, 7, 1, 1, 5, 'Lord Sephiroth', 0, 1, "images/creatures/fabre.gif");
INSERT INTO creatures VALUES (0, 'Biene', 3, 'Stachel', NULL, NULL, 15, 15, 25, 4, 4, 15, 'Lord Sephiroth', 0, 1, "images/creatures/hornet.gif");
INSERT INTO creatures VALUES (0, 'Cocon', 7, 'keine', NULL, NULL, 40, 40, 50, 0, 0, 40, 'Lord Sephiroth', 0, 1, "images/creatures/pupa.gif");
INSERT INTO creatures VALUES (0, 'Käfer', 2, 'Fühler', NULL, NULL, 12, 12, 20, 3, 3, 12, 'Lord Sephiroth', 0, 1, "images/creatures/thiefbug.gif");
INSERT INTO creatures VALUES (0, 'Ameisen Ei', 1, 'keine', NULL, NULL, 200, 20, 100, 0, 0, 20, 'Lord Sephiroth', 0, 2, "images/creatures/antegg.gif");
INSERT INTO creatures VALUES (0, 'Ameise', 3, 'Fühler', NULL, NULL, 15, 15, 30, 4, 4, 15, 'Lord Sephiroth', 0, 2, "images/creatures/andre.gif");
INSERT INTO creatures VALUES (0, 'Fledermaus', 4, 'Zähne', NULL, NULL, 17, 17, 35, 5, 5, 17, 'Lord Sephiroth', 0, 2, "images/creatures/familiar.gif");
INSERT INTO creatures VALUES (0, 'Maya Purple', 10, 'kleines Schwert', NULL, NULL, 60, 60, 250, 12, 12, 60, 'Lord Sephiroth', 0, 2, "images/creatures/mayapurple.gif");
INSERT INTO creatures VALUES (0, 'Maulwurf', 5, 'Krallen', NULL, NULL, 20, 20, 50, 7, 7, 20, 'Lord Sephiroth', 0, 3, "images/creatures/giearth.gif");
INSERT INTO creatures VALUES (0, 'Vitata', 5, 'Fühler', NULL, NULL, 20, 20, 50, 7, 7, 20, 'Lord Sephiroth', 0, 3, "images/creatures/vitata.gif");
INSERT INTO creatures VALUES (0, 'Maya', 15, 'Schwert', NULL, NULL, 1000, 10000, 500, 15, 15, 1000, 'Lord Sephiroth', 0, 4, "images/creatures/maya.gif");
INSERT INTO creatures VALUES (0, 'Alter Nachahmer', 25, 'Nachahmen', NULL, NULL, 1000, 1000, 250, 30, 30, 1000, 'Lord Sephiroth', 0, 5, "images/creatures/ancientmimic.gif");
INSERT INTO creatures VALUES (0, 'Drachen Ei', 30, 'keine', NULL, NULL, 1200, 1200, 300, 0, 0, 1200, 'Lord Sephiroth', 0, 5, "images/creatures/dragonegg.gif");
INSERT INTO creatures VALUES (0, 'weibl. Ferus', 30, 'Stachelschwanz', NULL, NULL, 1300, 1300, 300, 30, 30, 1300, 'Lord Sephiroth', 0, 5, "images/creatures/ferusfemale.gif");
INSERT INTO creatures VALUES (0, 'männl. Ferus', 30, 'Stachelschwanz', NULL, NULL, 1300, 1300, 300, 30, 30, 1300, 'Lord Sephiroth', 0, 5, "images/creatures/ferusmale.gif");
INSERT INTO creatures VALUES (0, 'Nachahmer', 10, 'Nachahmen', NULL, NULL, 60, 60, 100, 10, 10, 60, 'Lord Sephiroth', 0, 5, "images/creatures/mimic.gif");
INSERT INTO creatures VALUES (0, 'Penomena', 10, 'Tentakel', NULL, NULL, 60, 60, 100, 10, 10, 60, 'Lord Sephiroth', 0, 5, "images/creatures/penomena.gif");
INSERT INTO creatures VALUES (0, 'Einsamkeit', 41, 'Stille', 'Wie hört es sich an, mit einer Hand zu klatschen?', 'Wie hört es sich an, mit einer Hand zu klatschen?', 36, 0, 1, 0, 0, 0, NULL, 1, 0, NULL);
INSERT INTO creatures VALUES (0, 'Einsamkeit', 42, 'Stille', 'Wie hört es sich an, mit einer Hand zu klatschen?', 'Wie hört es sich an, mit einer Hand zu klatschen?', 0, 0, 1, 0, 25, 0, NULL, 1, 0, NULL);


FRAGE: Ist da irgendwas falsch???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 03 Feb, 2007 17:46 
Offline
User
User

Registriert: Fr 02 Feb, 2007 22:23
Beiträge: 11
Wohnort: Kerpen
*push*
Ich habe den Fehler noch immer nicht gefunden <.<


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 04 Feb, 2007 16:55 
Offline
User
User

Registriert: Fr 02 Feb, 2007 22:23
Beiträge: 11
Wohnort: Kerpen
CLOSE pls!!!

Hab den Fehler gefunden und behoben ^^ danke für die Hilfe xD xD xD

Für alle die solche probleme haben:

Die HP, ATK und DEF des Monsters richtet sich nach HP, ATK, DEF und LVL des Users.
Man öffne "forest.php":

Zeile 150 - 154 Entfernen

Suche:
[php]
$badguy['creatureattack']+=$atkflux;
$badguy['creaturedefense']+=$defflux;
$badguy['creaturehealth']+=$hpflux;
[/php]

Entferne:
[php]
+=$atkflux
+=$defflux
+=$hpflux
[/php]

ACHTUNG: das ; hinter den flux' muss erhalten bleiben!!!

Fertig ^^ fehler behoben.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 27 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum