Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- </head>
- <script language="JavaScript">
- function calcmelee(f) {
- if (f.str.value == "") {
- f.str.value = 10
- }
- if (f.intel.value == "") {
- f.intel.value = 10
- }
- if (f.dex.value == "") {
- f.dex.value = 10
- }
- if (f.skill_fighting.value == "") {
- f.skill_fighting.value = 0
- }
- if (f.skill_weapon.value == "") {
- f.skill_weapon.value = 0
- }
- if (f.skill_unarmed.value == "") {
- f.skill_unarmed.value = 0
- }
- if (f.skill_armour.value == "") {
- f.skill_armour.value = 0
- }
- if (f.skill_dodging.value == "") {
- f.skill_dodging.value = 0
- }
- if (f.skill_shield.value == "") {
- f.skill_shield.value = 0
- }
- if (f.skill_spellcasting.value == "") {
- f.skill_spellcasting.value = 0
- }
- if (f.skill_magic1.value == "") {
- f.skill_magic1.value = 0
- }
- if (f.skill_magic2.value == "") {
- f.skill_magic2.value = 0
- }
- if (f.skill_magic3.value == "") {
- f.skill_magic3.value = 0
- }
- if (f.slay.value == "") {
- f.slay.value = 0
- }
- if (f.claws.value == "") {
- f.claws.value = 0
- }
- if (f.mons_ac.value == "") {
- f.mons_ac.value = 5
- }
- if (f.mons_ev.value == "") {
- f.mons_ev.value = 10
- }
- if (f.claws.value > 3) {
- f.claws.value = 3
- }
- if (f.spell_level.value == "") {
- f.spell_level.value = 1
- }
- if (f.spell_level.value > 9) {
- f.spell_level.value = 9
- }
- var i = 0;
- var j = 0;
- var bdam = 0;
- var bacc = 0;
- var atkturn = 0;
- var minatkturn = 0;
- var twohand = 0;
- var notweapon = 0;
- var claws = parseInt(f.claws.value);
- var playerstr = parseInt(f.str.value);
- var playerdex = parseInt(f.dex.value);
- var playerint = parseInt(f.intel.value);
- if (f.might.checked) {
- playerstr += 5;
- }
- if (f.agility.checked) {
- playerdex += 5;
- }
- if (f.brilliance.checked) {
- playerint += 5;
- }
- var skillfighting = parseInt(f.skill_fighting.value);
- var skillweapon = parseInt(f.skill_weapon.value);
- var skillarmour = parseInt(f.skill_armour.value);
- var skillshield = parseInt(f.skill_shield.value);
- var skillunarmed = parseInt(f.skill_unarmed.value);
- if (f.weapon.selectedIndex == 0) {
- // dagger
- bdam = 4;
- bacc = 6;
- atkturn = 1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 1) {
- // quick blade
- bdam = 5;
- bacc = 6;
- atkturn = 0.7;
- minatkturn = 0.3;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 2) {
- // short sword
- bdam = 6;
- bacc = 4;
- atkturn = 1.1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 3) {
- // rapier
- bdam = 8;
- bacc = 4;
- atkturn = 1.2;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 4) {
- // falchion
- bdam = 7;
- bacc = 2;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 5) {
- // long sword
- bdam = 9;
- bacc = 1;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 6) {
- // scimitar
- bdam = 11;
- bacc = -2;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 7) {
- // demon blade
- bdam = 12;
- bacc = -1;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 8) {
- // eudemon blade
- bdam = 13;
- bacc = -2;
- atkturn = 1.2;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 9) {
- // double sword
- bdam = 14;
- bacc = -1;
- atkturn = 1.5;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 10) {
- // great sword
- bdam = 14;
- bacc = -3;
- atkturn = 1.6;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 11) {
- // triple sword
- bdam = 17;
- bacc = -4;
- atkturn = 1.9;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 12) {
- // club
- bdam = 5;
- bacc = 3;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 13) {
- // whip
- bdam = 6;
- bacc = 2;
- atkturn = 1.1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 14) {
- // mace
- bdam = 8;
- bacc = 3;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 15) {
- // flail
- bdam = 10;
- bacc = 0;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 16) {
- // demon whip
- bdam = 11;
- bacc = 1;
- atkturn = 1.1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 17) {
- // sacred scourge
- bdam = 12;
- bacc = 0;
- atkturn = 1.1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 18) {
- // morningstar
- bdam = 13;
- bacc = -2;
- atkturn = 1.5;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 19) {
- // dire flail
- bdam = 13;
- bacc = -3;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 20) {
- // eveningstar
- bdam = 15;
- bacc = -1;
- atkturn = 1.5;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 21) {
- // great mace
- bdam = 17;
- bacc = -4;
- atkturn = 1.7;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 22) {
- // giant club
- bdam = 20;
- bacc = -6;
- atkturn = 1.6;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 23) {
- // giant spiked club
- bdam = 22;
- bacc = -7;
- atkturn = 1.9;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 24) {
- // hand axe
- bdam = 7;
- bacc = 3;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 25) {
- // war axe
- bdam = 11;
- bacc = 0;
- atkturn = 1.5;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 26) {
- // broad axe
- bdam = 13;
- bacc = -2;
- atkturn = 1.6;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 27) {
- // battle axe
- bdam = 15;
- bacc = -4;
- atkturn = 1.7;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 28) {
- // executioner's axe
- bdam = 18;
- bacc = -6;
- atkturn = 2.0;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 29) {
- // spear
- bdam = 6;
- bacc = 4;
- atkturn = 1.1;
- minatkturn = 0.5;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 30) {
- // trident
- bdam = 9;
- bacc = 1;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 31) {
- // demon trident
- bdam = 12;
- bacc = 1;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 32) {
- // trishula
- bdam = 13;
- bacc = 0;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 33) {
- // halberd
- bdam = 13;
- bacc = -3;
- atkturn = 1.5;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 34) {
- // scythe
- bdam = 14;
- bacc = -4;
- atkturn = 2.0;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 35) {
- // glaive
- bdam = 15;
- bacc = -3;
- atkturn = 1.7;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 36) {
- // bardiche
- bdam = 18;
- bacc = -6;
- atkturn = 2.0;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 37) {
- // quarterstaff
- bdam = 10;
- bacc = 3;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 38) {
- // lajatang
- bdam = 16;
- bacc = -3;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 39) {
- // sling
- bdam = 9;
- bacc = 2;
- atkturn = 1.2;
- minatkturn = 0.6;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 40) {
- // greatsling
- bdam = 12;
- bacc = -1;
- atkturn = 1.4;
- minatkturn = 0.7;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 41) {
- // shortbow
- bdam = 9;
- bacc = 2;
- atkturn = 1.3;
- minatkturn = 0.6;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 42) {
- // longbow
- bdam = 15;
- bacc = 0;
- atkturn = 1.7;
- minatkturn = 0.7;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 43) {
- // hand crossbow
- bdam = 12;
- bacc = 5;
- atkturn = 1.5;
- minatkturn = 1.0;
- twohand = 0;
- } else if (f.weapon.selectedIndex == 44) {
- // arbalest
- bdam = 18;
- bacc = 2;
- atkturn = 1.9;
- minatkturn = 1.0;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 45) {
- // triple crossbow
- bdam = 22;
- bacc = 0;
- atkturn = 2.3;
- minatkturn = 1.0;
- twohand = 1;
- } else if (f.weapon.selectedIndex == 46) {
- // unarmed
- bdam = 3 + skillunarmed;
- bacc = 2 * claws;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- } else if (f.weapon.selectedIndex == 47) {
- // spider form
- playerdex += 5;
- bdam = 5 + skillunarmed;
- bacc = 2 * claws;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- } else if (f.weapon.selectedIndex == 48) {
- // ice form
- bdam = 12 + skillunarmed;
- bacc = 2 * claws;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- } else if (f.weapon.selectedIndex == 49) {
- // blade hands
- bdam = 8 + skillunarmed + (playerstr + playerdex) / 3;
- bacc = 0;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- } else if (f.weapon.selectedIndex == 50) {
- // statue form
- playerstr += 2;
- bdam = 6 + skillunarmed + (playerstr) / 3;
- bacc = 0;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- } else if (f.weapon.selectedIndex == 51) {
- // dragon form
- playerstr += 10;
- claws = 3;
- bdam = 12 + skillunarmed + (2 * playerstr) / 3;
- bacc = 0;
- atkturn = 1.0;
- minatkturn = 0.5;
- notweapon = 1;
- }
- var slay = parseInt(f.slay.value);
- var monac = parseInt(f.mons_ac.value);
- var monev = parseInt(f.mons_ev.value);
- var baseac = 0;
- var er = 0;
- var gdr = 0;
- if (f.armour.selectedIndex == 0) {
- // robe
- baseac = 2;
- er = 0;
- gdr = 0;
- } else if (f.armour.selectedIndex == 1) {
- // leather armour
- baseac = 3;
- er = 4;
- gdr = 0.14;
- } else if (f.armour.selectedIndex == 2) {
- // ring mail
- baseac = 5;
- er = 7;
- gdr = 0.24;
- } else if (f.armour.selectedIndex == 3) {
- // scale mail
- baseac = 6;
- er = 10;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 4) {
- // chain mail
- baseac = 8;
- er = 15;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 5) {
- // plate armour
- baseac = 10;
- er = 18;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 6) {
- // crystal plate armour
- baseac = 14;
- er = 23;
- gdr = 0.48;
- } else if (f.armour.selectedIndex == 7) {
- // troll leather armour
- baseac = 4;
- er = 4;
- gdr = 0.19;
- } else if (f.armour.selectedIndex == 8) {
- // steam dragon armour
- baseac = 5;
- er = 0;
- gdr = 0.24;
- } else if (f.armour.selectedIndex == 9) {
- // mottled dragon armour
- baseac = 6;
- er = 5;
- gdr = 0.28;
- } else if (f.armour.selectedIndex == 10) {
- // swamp dragon armour
- baseac = 7;
- er = 7;
- gdr = 0.31;
- } else if (f.armour.selectedIndex == 11) {
- // quicksilver dragon armour
- baseac = 9;
- er = 7;
- gdr = 0.37;
- } else if (f.armour.selectedIndex == 12) {
- // fire dragon armour
- baseac = 8;
- er = 11;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 13) {
- // ice dragon armour
- baseac = 8;
- er = 11;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 14) {
- // pearl dragon armour
- baseac = 10;
- er = 11;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 15) {
- // shadow dragon armour
- baseac = 10;
- er = 15;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 16) {
- // storm dragon armour
- baseac = 10;
- er = 15;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 17) {
- // gold dragon armour
- baseac = 12;
- er = 23;
- gdr = 0.44;
- }
- var basesh = 0;
- var er2 = 0;
- if (f.shield.selectedIndex == 0) {
- // no shield
- basesh = 0;
- er2 = 0;
- } else if (f.shield.selectedIndex == 1) {
- // buckler
- basesh = 3;
- er2 = 0.8;
- } else if (f.shield.selectedIndex == 2) {
- // shield
- basesh = 8;
- er2 = 3;
- } else if (f.shield.selectedIndex == 3) {
- // large shield
- basesh = 13;
- er2 = 5;
- }
- var abap = 0;
- abap = 2 * er * er * (450 - 10 * skillarmour) / (5 * (playerstr + 3)) / 450;
- var absp = 0;
- absp = (er2) - (skillshield) / 5;
- var basetohit = 0;
- // before +1dF+1dW
- basetohit = 15 + (playerdex / 2) + slay + bacc - Math.floor(abap) - Math.floor(absp);
- var realatkturn = 0;
- // before shield penalty
- if (notweapon == 0) {
- realatkturn = Math.max(atkturn - 0.05 * skillweapon, minatkturn);
- } else {
- realatkturn = Math.max(atkturn - (0.5 / 27) * skillunarmed, minatkturn);
- if (f.weapon.selectedIndex == 50) {
- realatkturn *= 1.5;
- }
- }
- var monac = parseInt(f.mons_ac.value);
- var monev = parseInt(f.mons_ev.value);
- var count = 10000;
- var turn_elapsed = 0;
- var turncount = 0;
- var hitcount = 0;
- var damage = 0;
- var avgdam = 0;
- var totaldamage = 0;
- var tohit = 0;
- var hitsuccess = 0;
- var dammod = 0;
- var actualatkturn = 0;
- while (turn_elapsed < count) {
- // calculate accuracy
- tohit = basetohit + Math.floor(Math.random() * (skillfighting + 1)) + Math.floor(Math.random() * ((notweapon == 0) ? skillweapon : skillunarmed) + 1)
- if (f.corona.checked) {
- tohit = tohit + (1 + Math.floor(Math.random() * 9));
- }
- if (5 > Math.random() * 200) {
- // minimum accuracy 2.5%
- hitsuccess = 1;
- } else if (Math.floor(Math.random() * tohit) > monev) {
- hitsuccess = 1;
- } else {
- hitsuccess = 0;
- }
- damage = 0;
- turncount++;
- if (hitsuccess == 1) {
- hitcount++;
- damage = bdam;
- // str modify
- dammod = 39;
- if (playerstr >= 10) {
- dammod += Math.floor(Math.random() * (playerstr - 9)) * 2;
- } else {
- dammod -= Math.floor(Math.random() * (11 - playerstr)) * 3;
- }
- damage = Math.floor(Math.random() * (1 + (damage * dammod / 39)));
- // weaponskill
- damage *= 1 + Math.floor(Math.random() * (((notweapon == 0) ? skillweapon : skillunarmed) + 1)) / 25;
- // fighting
- damage *= 1 + Math.floor(Math.random() * (skillfighting + 1)) / 30;
- // slay
- damage += Math.floor(Math.random() * (slay + 1));
- //might
- if (f.might.checked) {
- damage += 1 + Math.floor(Math.random() * 10);
- }
- // apply AC
- damage = Math.floor(Math.max(0, damage - Math.floor(Math.random() * (monac + 1))));
- }
- totaldamage += damage;
- actualatkturn = realatkturn;
- // shield atkspeed penalty
- actualatkturn += Math.min(Math.floor(Math.random() * (absp + 1)), Math.floor(Math.random() * (absp + 1))) / 10;
- turn_elapsed += actualatkturn;
- }
- result = "Total damage in 10000 turns : "
- result += totaldamage
- result += " (Accuracy "
- result += Math.floor(10000 * hitcount / turncount) / 100
- result += "%) <br>Average attack speed : "
- result += Math.floor(1000000 / turncount) / 100
- result += " turn<br>DPT : "
- result += (totaldamage) / 10000
- Result.innerHTML = result
- }
- function calcspell(f) {
- if (f.str.value == "") {
- f.str.value = 10
- }
- if (f.intel.value == "") {
- f.intel.value = 10
- }
- if (f.dex.value == "") {
- f.dex.value = 10
- }
- if (f.skill_fighting.value == "") {
- f.skill_fighting.value = 0
- }
- if (f.skill_weapon.value == "") {
- f.skill_weapon.value = 0
- }
- if (f.skill_unarmed.value == "") {
- f.skill_unarmed.value = 0
- }
- if (f.skill_armour.value == "") {
- f.skill_armour.value = 0
- }
- if (f.skill_dodging.value == "") {
- f.skill_dodging.value = 0
- }
- if (f.skill_shield.value == "") {
- f.skill_shield.value = 0
- }
- if (f.skill_spellcasting.value == "") {
- f.skill_spellcasting.value = 0
- }
- if (f.skill_magic1.value == "") {
- f.skill_magic1.value = 0
- }
- if (f.skill_magic2.value == "") {
- f.skill_magic2.value = 0
- }
- if (f.skill_magic3.value == "") {
- f.skill_magic3.value = 0
- }
- if (f.slay.value == "") {
- f.slay.value = 0
- }
- if (f.claws.value == "") {
- f.claws.value = 0
- }
- if (f.mons_ac.value == "") {
- f.mons_ac.value = 5
- }
- if (f.mons_ev.value == "") {
- f.mons_ev.value = 10
- }
- if (f.claws.value > 3) {
- f.claws.value = 3
- }
- if (f.spell_level.value == "") {
- f.spell_level.value = 1
- }
- if (f.spell_level.value > 9) {
- f.spell_level.value = 9
- }
- if (f.wizardry.value == "") {
- f.wizardry.value = 0
- }
- if (f.wizardry.value > 10) {
- f.wizardry.value = 10
- }
- var i = 0;
- var j = 0;
- var playerstr = parseInt(f.str.value);
- var playerdex = parseInt(f.dex.value);
- var playerint = parseInt(f.intel.value);
- if (f.might.checked) {
- playerstr += 5;
- }
- if (f.agility.checked) {
- playerdex += 5;
- }
- if (f.brilliance.checked) {
- playerint += 5;
- }
- var skillarmour = parseInt(f.skill_armour.value);
- var skillshield = parseInt(f.skill_shield.value);
- var skillspell = parseInt(f.skill_spellcasting.value);
- var skillmagic1 = parseInt(f.skill_magic1.value);
- var skillmagic2 = parseInt(f.skill_magic2.value);
- var skillmagic3 = parseInt(f.skill_magic3.value);
- var baseac = 0;
- var er = 0;
- var gdr = 0;
- if (f.armour.selectedIndex == 0) {
- // robe
- baseac = 2;
- er = 0;
- gdr = 0;
- } else if (f.armour.selectedIndex == 1) {
- // leather armour
- baseac = 3;
- er = 4;
- gdr = 0.14;
- } else if (f.armour.selectedIndex == 2) {
- // ring mail
- baseac = 5;
- er = 7;
- gdr = 0.24;
- } else if (f.armour.selectedIndex == 3) {
- // scale mail
- baseac = 6;
- er = 10;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 4) {
- // chain mail
- baseac = 8;
- er = 15;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 5) {
- // plate armour
- baseac = 10;
- er = 18;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 6) {
- // crystal plate armour
- baseac = 14;
- er = 23;
- gdr = 0.48;
- } else if (f.armour.selectedIndex == 7) {
- // troll leather armour
- baseac = 4;
- er = 4;
- gdr = 0.19;
- } else if (f.armour.selectedIndex == 8) {
- // steam dragon armour
- baseac = 5;
- er = 0;
- gdr = 0.24;
- } else if (f.armour.selectedIndex == 9) {
- // mottled dragon armour
- baseac = 6;
- er = 5;
- gdr = 0.28;
- } else if (f.armour.selectedIndex == 10) {
- // swamp dragon armour
- baseac = 7;
- er = 7;
- gdr = 0.31;
- } else if (f.armour.selectedIndex == 11) {
- // quicksilver dragon armour
- baseac = 9;
- er = 7;
- gdr = 0.37;
- } else if (f.armour.selectedIndex == 12) {
- // fire dragon armour
- baseac = 8;
- er = 11;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 13) {
- // ice dragon armour
- baseac = 8;
- er = 11;
- gdr = 0.34;
- } else if (f.armour.selectedIndex == 14) {
- // pearl dragon armour
- baseac = 10;
- er = 11;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 15) {
- // shadow dragon armour
- baseac = 10;
- er = 15;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 16) {
- // storm dragon armour
- baseac = 10;
- er = 15;
- gdr = 0.39;
- } else if (f.armour.selectedIndex == 17) {
- // gold dragon armour
- baseac = 12;
- er = 23;
- gdr = 0.44;
- }
- var basesh = 0;
- var er2 = 0;
- if (f.shield.selectedIndex == 0) {
- // no shield
- basesh = 0;
- er2 = 0;
- } else if (f.shield.selectedIndex == 1) {
- // buckler
- basesh = 3;
- er2 = 0.8;
- } else if (f.shield.selectedIndex == 2) {
- // shield
- basesh = 8;
- er2 = 3;
- } else if (f.shield.selectedIndex == 3) {
- // large shield
- basesh = 13;
- er2 = 5;
- }
- var abap = 0;
- abap = 2 * er * er * (450 - 10 * skillarmour) / (5 * (playerstr + 3)) / 450;
- var absp = 0;
- absp = (er2) - (skillshield) / 5;
- var failurerate = 0;
- var spellskill = 0;
- spellskill = (skillspell / 2);
- if (f.spell_schools[0].checked) {
- spellskill += (skillmagic1) * 2;
- } else if (f.spell_schools[1].checked) {
- spellskill += skillmagic1 + skillmagic2;
- } else if (f.spell_schools[2].checked) {
- spellskill += (skillmagic1 + skillmagic2 + skillmagic3) * 2 / 3;
- }
- spellskill = 50 * Math.log(1 + spellskill / 50) / Math.log(2);
- var spelllv = parseInt(f.spell_level.value);
- var spelldiff = 0;
- if (spelllv == 1) {
- spelldiff = 3;
- } else if (spelllv == 2) {
- spelldiff = 15;
- } else if (spelllv == 3) {
- spelldiff = 35;
- } else if (spelllv == 4) {
- spelldiff = 70;
- } else if (spelllv == 5) {
- spelldiff = 100;
- } else if (spelllv == 6) {
- spelldiff = 150;
- } else if (spelllv == 7) {
- spelldiff = 200;
- } else if (spelllv == 8) {
- spelldiff = 260;
- } else if (spelllv == 9) {
- spelldiff = 330;
- }
- failurerate = 60 - 6 * spellskill - 2 * playerint + spelldiff + 19 * abap + 19 * absp;
- var frate = failurerate;
- if (failurerate < 45) {
- frate = 45;
- }
- if (failurerate < 42) {
- frate = 43;
- }
- if (failurerate < 38) {
- frate = 41;
- }
- if (failurerate < 35) {
- frate = 40;
- }
- if (failurerate < 32) {
- frate = 38;
- }
- if (failurerate < 28) {
- frate = 36;
- }
- if (failurerate < 22) {
- frate = 34;
- }
- if (failurerate < 16) {
- frate = 32;
- }
- if (failurerate < 10) {
- frate = 30;
- }
- if (failurerate < 2) {
- frate = 28;
- }
- if (failurerate < -7) {
- frate = 26;
- }
- if (failurerate < -12) {
- frate = 24;
- }
- if (failurerate < -18) {
- frate = 22;
- }
- if (failurerate < -24) {
- frate = 20;
- }
- if (failurerate < -30) {
- frate = 18;
- }
- if (failurerate < -38) {
- frate = 16;
- }
- if (failurerate < -46) {
- frate = 14;
- }
- if (failurerate < -60) {
- frate = 12;
- }
- if (failurerate < -80) {
- frate = 10;
- }
- if (failurerate < -100) {
- frate = 8;
- }
- if (failurerate < -120) {
- frate = 6;
- }
- if (failurerate < -140) {
- frate = 4;
- }
- if (failurerate < -160) {
- frate = 2;
- }
- if (failurerate < -180) {
- frate = 0;
- }
- var freduce = 100;
- if (f.vehumet.checked) {
- freduce = freduce * 2 / 3;
- }
- var wizbonus = parseInt(f.wizardry.value);
- if (wizbonus > 0) {
- freduce = freduce * 6 / (7 + wizbonus);
- }
- if (f.brilliance.checked) {
- freduce = freduce / 2;
- }
- if (freduce < 50) {
- freduce = 50;
- }
- frate = frate * freduce / 100;
- if (frate > 100) {
- frate = 100;
- }
- var realfailrate = 0;
- var count = 10000;
- var success = 0;
- for (i = 0; i < count; i++) {
- if ((Math.floor(Math.random() * 101) + Math.floor(Math.random() * 101) + Math.floor(Math.random() * 100)) / 3 > frate) {
- success++;
- }
- }
- realfailrate = success / count;
- result = "Actual success rate : "
- result += Math.floor(10000 * realfailrate) / 100
- result += "%"
- ResultMagic.innerHTML = result
- }
- </script>
- <form>
- <br>STR : <input type="text" name="str" maxlength="2" size="2">
- <br>INT : <input type="text" name="intel" maxlength="2" size="2">
- <br>DEX : <input type="text" name="dex" maxlength="2" size="2">
- <br>Might :
- <input type="checkbox" name="might"> Agi :
- <input type="checkbox" name="agility"> Brill :
- <input type="checkbox" name="brilliance">
- <br>
- <br>Fighting skill : <input type="text" name="skill_fighting" maxlength="2" size="2">
- <br>Weapon skill : <input type="text" name="skill_weapon" maxlength="2" size="2">
- <br>Unarmed skill : <input type="text" name="skill_unarmed" maxlength="2" size="2"> Claws : <input type="text" name="claws" maxlength="2" size="2">
- <br>Armour skill : <input type="text" name="skill_armour" maxlength="2" size="2">
- <br>Dodging skill : <input type="text" name="skill_dodging" maxlength="2" size="2">
- <br>Shield skill : <input type="text" name="skill_shield" maxlength="2" size="2">
- <br>
- <br>Spellcasting skill : <input type="text" name="skill_spellcasting" maxlength="2" size="2">
- <br>Magic School 1 skill : <input type="text" name="skill_magic1" maxlength="2" size="2">
- <br>Magic School 2 skill : <input type="text" name="skill_magic2" maxlength="2" size="2">
- <br>Magic School 3 skill : <input type="text" name="skill_magic3" maxlength="2" size="2">
- <br>
- <br>Weapon type :
- <select name="weapon">
- <option>Dagger</option>
- <option>Quick blade</option>
- <option>Short sword</option>
- <option>Rapier</option>
- <option>Falchion</option>
- <option>Long sword</option>
- <option>Scimitar</option>
- <option>Demon blade</option>
- <option>Eudemon blade</option>
- <option>Double sword</option>
- <option>Great sword</option>
- <option>Triple sword</option>
- <option>Club</option>
- <option>Whip</option>
- <option>Mace</option>
- <option>Flail</option>
- <option>Demon whip</option>
- <option>Sacred scourge</option>
- <option>Morningstar</option>
- <option>Dire flail</option>
- <option>Eveningstar</option>
- <option>Great mace</option>
- <option>Giant club</option>
- <option>Giant spiked club</option>
- <option>Hand axe</option>
- <option>War axe</option>
- <option>Broad axe</option>
- <option>Battleaxe</option>
- <option>Executioner's axe</option>
- <option>Spear</option>
- <option>Trident</option>
- <option>Demon trident</option>
- <option>Trishula</option>
- <option>Halberd</option>
- <option>Scythe</option>
- <option>Glaive</option>
- <option>Bardiche</option>
- <option>Quarterstaff</option>
- <option>Lajatang</option>
- <option>Sling (w/ sling bullets)</option>
- <option>Greatsling (w/ sling bullets)</option>
- <option>Shortbow</option>
- <option>Longbow</option>
- <option>Hand crossbow</option>
- <option>Arbalest</option>
- <option>Triple crossbow</option>
- <option>Unarmed</option>
- <option>Spider form</option>
- <option>Ice form</option>
- <option>Blade hands</option>
- <option>Statue form</option>
- <option>Dragon form</option>
- </select>
- <br>Slaying bonus (Enchantment+Slaying) : <input type="text" name="slay" maxlength="2" size="2">
- <br>
- <br>Armour type :
- <select name="armour">
- <option>Robe</option>
- <option>Leather armour</option>
- <option>Ring mail</option>
- <option>Scale mail</option>
- <option>Chain mail</option>
- <option>Plate armour</option>
- <option>Crystal plate armour</option>
- <option>Troll leather armour</option>
- <option>Steam dragon armour</option>
- <option>Mottled dragon armour</option>
- <option>Swamp dragon armour</option>
- <option>Quicksilver dragon armour</option>
- <option>Fire dragon armour</option>
- <option>Ice dragon armour</option>
- <option>Pearl dragon armour</option>
- <option>Shadow dragon armour</option>
- <option>Storm dragon armour</option>
- <option>Gold dragon armour</option>
- </select>
- <br>Shield type :
- <select name="shield">
- <option>None</option>
- <option>Buckler</option>
- <option>Shield</option>
- <option>Large shield</option>
- </select>
- <br><br>
- <br>Monster stats: <br> AC : <input type="text" name="mons_ac" maxlength="2" size="2"> EV : <input type="text" name="mons_ev" maxlength="2" size="2"> Corona/Haloed :
- <input type="checkbox" name="corona">
- <br><br>
- <input type="button" value="Calculate melee DPT" onclick="calcmelee(this.form);">
- <div id="Result"></div>
- <br><br>
- <br>Spell level: <input type="text" name="spell_level" maxlength="1" size="1"> Spell schools: <input type="radio" name="spell_schools" value="one" checked> One
- <input type="radio" name="spell_schools" value="two"> Two
- <input type="radio" name="spell_schools" value="three"> Three <br> Vehumet+Conjuration :
- <input type="checkbox" name="vehumet"> Wizardry: <input type="text" name="wizardry" maxlength="2" size="2">
- <br><br>
- <input type="button" value="Calculate spell success" onclick="calcspell(this.form);">
- <div id="ResultMagic"></div>
- </form>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement