diff --git a/ag/include/kampf/tausch.php b/ag/include/kampf/tausch.php index 24462d7..146b272 100644 --- a/ag/include/kampf/tausch.php +++ b/ag/include/kampf/tausch.php @@ -8,23 +8,36 @@ if (!function_exists('getKTChance')) { - function getKTChance($ktuser_luck, $ktvictim_luck) { - $chance = 50; - $ktvictim_luck= mt_rand(0, $ktvictim_luck); - $ktuser_luck = mt_rand(0, $ktuser_luck); - if($ktvictim_luck < ($ktuser_luck*0.25)) { - $chance = 75; - } - if($ktvictim_luck > ($ktuser_luck*1.75)) { - $chance = 25; - } - return $chance; + if(!function_exists('calculateChance')) { + + function calculateChance($char1_luck, $char2_luck) { + $max = max($char1_luck, $char2_luck); + $min = min($char1_luck, $char2_luck); + if($max == 0) { + $max = 1; + } + return (($max - $min) / $max) * 50; + } } + function getKTChance($ktuser_luck, $ktvictim_luck) { + //bei gleichem glück ist die chance 50% + $chance = 50; + if($ktuser_luck >= $ktvictim_luck) { + //hat der angreifer mehr glück wird der errechnete wert auf die 50% addiert + $chance += calculateChance($ktuser_luck, $ktvictim_luck); + } else { + //hat der verteidiger mehr glück wird der errechnete wert auf die 50% subtrahiert + $chance -= calculateChance($ktuser_luck, $ktvictim_luck); + } + return $chance; + } } ################### Spieler 1 -$chance = getKTChance($k_glueck[0], $k_glueck[1]); +$char1_luck = mt_rand(0, $k_glueck[0]); +$char2_luck = mt_rand(0, $k_glueck[1]); +$chance = round(getKTChance($char1_luck, $char2_luck)); $random = mt_rand(0,100); if ($technick1['type'] == tausch) { @@ -56,30 +69,33 @@ if ($technick1['type'] == tausch) { $k_hp[1] = $k_hp_alt[0]; $k_mp[0] = $k_mp[0] - $technick1['mp']; - $schaden_1 = "Körpertausch"; + $schaden_1 = "Chance: ".$chance."%
Körpertausch"; } } else { - $k_mp[0] = $k_mp[0] - $technick1['mp']; - if ($k_mp[0] < 0) { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + $schaden_1 = "Chance: ".$chance."%
Körpertausch fehlgeschlagen"; + } + if ($k_mp[0] < 0) { $k_mp[0] = 0; - } - $schaden_1 = "Körpertausch fehlgeschlagen"; } } else { $schaden_1 = "Körpertausch fehlgeschlagen"; + $k_mp[0] = 0; } $aktion_AV1[$x] = "nein"; } ################### Spieler 2 -$chance = getKTChance($k_glueck[1], $k_glueck[0]); +$char1_luck = mt_rand(0, $k_glueck[0]); +$char2_luck = mt_rand(0, $k_glueck[1]); +$chance = round(getKTChance($char2_luck, $char1_luck)); $random = mt_rand(0,100); if ($technick2['type'] == tausch) { if ($k_mp[1] >= $technick2['mp']) { if($random <= $chance) { //Trefferchance abhängig vom ausgewürfeltem Glück - + if ($kampf_info['rasse'] != "NPC") { $k_starke_alt[0] = $k_starke[0]; $k_speed_alt[0] = $k_speed[0]; $k_ver_alt[0] = $k_ver[0]; @@ -105,17 +121,19 @@ if ($technick2['type'] == tausch) { $k_hp[1] = $k_hp_alt[0]; $k_mp[1] = $k_mp[1] - $technick2['mp']; - $schaden_2 = "Körpertausch"; - } else { - $k_mp[1] = $k_mp[1] - $technick2['mp']; - if ($k_mp[1] < 0) { - $k_mp[1] = 0; + $schaden_2 = "Chance: ".$chance."%
Körpertausch"; } - $schaden_1 = "Körpertausch fehlgeschlagen"; + } else { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + $schaden_2 = "Chance: ".$chance."%
Körpertausch fehlgeschlagen"; + } + if ($k_mp[1] < 0) { + $k_mp[1] = 0; } } else { $schaden_2 = "Körpertausch fehlgeschlagen"; + $k_mp[1] = 0; } $aktion_AV2[$x] = "nein";