Originally Posted by
Dancingrage
Bit of necromancy, but I'm noticing the links to the calculators are broken. Was going to use this in a discussion but had to go dig up the post first.
Any chance someone happens to know where the links have moved to? Or has Ebag managed to get himself 'disappeared' over this calculator?
Well, I haven't been disappeared just yet.
Good news and bad news.
Bad news, SG lost the database. So hundreds of thousands of pieces of data are gone.
Good news, he had the files, which contained the formulas! If it looks like javascript...that's 'cause it is!
Anyway, to make your own calculator, follow these easy steps.
- Create a new text file.
- Rename text file to name of your choice, but change extension from .txt to .hta (I suggest NanoLandCalculator.hta or similar).
- Edit .hta file in Notepad.
- Copy and paste the text below into Notepad (only one of the code blocks below per .HTA).
- Save file.
- Launch HTA by double clicking on it.
- Calculate! (Be sure to read and follow the instructions!)
- ???
- Profit!
Nano Calculator
Code:
<HTML>
<HEAD>
<TITLE>AR Calculator</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkForZero(field)
{
if (field.value == 0 || field.value.length == 0) {
alert ("This field can't be 0!");
field.focus(); }
}
function cmdCalc_Click(form)
{
calculatePayment(form);
}
function calculatePayment(form)
{
ar = form.attskill1.value*(form.attskillcheck1.value/100)+form.attskill2.value*(form.attskillcheck2.value/100)+form.attskill3.value*(form.attskillcheck3.value/100);
def = form.defskill1.value*(form.defskillcheck1.value/100)+form.defskill2.value*(form.defskillcheck2.value/100)+form.defskill3.value*(form.defskillcheck3.value/100);
diff_ar = ar/(ar+def);
aggdefuno = 4+(1*form.defbar.value/100);
aggdefdos = -(1*Math.pow(10,-5))*Math.pow(form.defbar.value,2)-0.002*form.defbar.value+2.3;
land_rate = aggdefuno*Math.pow(diff_ar,aggdefdos);
form.diffar.value = Math.round(diff_ar*10000)/100 + "%";
form.landrate.value = Math.round(land_rate*10000)/100 + "%";
form.missrate.value = Math.round((1-land_rate)*10000)/100 + "%";
}
//-->
</SCRIPT>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-10504701-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
<BODY>
<TABLE>
<TR>
<TD VALIGN=TOP>
<FORM NAME="NanoARCalculator">
<TABLE WIDTH=350 BORDER=5 BGCOLOR=SILVER CELLPADDING=2>
<TR>
<TD COLSPAN=2 ALIGN=CENTER>
<B><FONT SIZE=+2 COLOR=BLUE>Nano AR Calculator</FONT></B>
</TD>
</TR>
<TR>
<TD COLSPAN=2 WIDTH=50%>
<TABLE BORDER=0 CELLPADDING=2>
<TR>
<TD COLSPAN=4><B>Attacker Data:</B></TD>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill1
VALUE="1000"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck1
VALUE="100"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill2
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck2
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill3
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck3
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD COLSPAN=4><B>Defender Data:</B></TD>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill1
VALUE="1000"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck1
VALUE="100"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill2
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck2
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill3
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck3
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT colspan=1>Agg/Def Bar:</TD>
<TD colspan=2>
<INPUT
TYPE=TEXT
NAME=defbar
VALUE=0
SIZE=7>
</TD>
</TR>
</TABLE>
</TD></TR>
<TR>
<TD>
<TABLE BORDER=0 CELLPADDING=2>
<TR>
<TD COLSPAN=2><B>Results:</B></TD>
<TR>
<TD ALIGN=RIGHT>Diff AR %:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=diffar
SIZE=7>
</TD>
</tr>
<tr>
<TD ALIGN=RIGHT>Land Rate:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=landrate
SIZE=7>
</TD>
<TD ALIGN=RIGHT>Miss Rate:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=missrate
SIZE=7>
</TD>
</TR>
<TR>
<TD ALIGN=CENTER COLSPAN=2>
<INPUT
TYPE=BUTTON
NAME="cmdCalc"
VALUE="Calculate"
onClick=cmdCalc_Click(this.form)>
</TD>
</TR>
</TD></TR>
</TABLE>
</TD></TR>
</TABLE>
</FORM></TD>
<td width=50>
 
</td>
<TD VALIGN=TOP>
<H3>Nano AR Calculator</H3>
This page uses a form to calculate the land rate for nanos.
<P>
Here's how you use this form:
<OL>
<LI>Enter the attackers skills (typical nano skills).
<LI>Enter the attack skill check amounts (always enter the percentage amount, so a 100% check nano is entered as 100, not 1).
<LI>Enter the defenders skills (typically Nano Resist).
<LI>Enter the defense skill check amounts (always enter the percentage amount, so a 100% check nano is entered as 100, not 1).
<LI>Enter the defenders Agg/Def bar setting. Note that this runs from -100 (full defense) to 100 (full aggro), with neutral (50/50) being 0.
<LI>Click Calculate.
</OL>
<BR><BR>
This calculator should be accurate +-5% for any calculations at full def (-100). Anything else has been tested less (or not at all) and may or may not be accurate.
<BR><BR>
Just in case you were curious, skill = AAO, and evades = AAD.
<BR><BR>
Also, diff_ar = ar/(ar+def). This is used to always give me a number that is between 0 and 1 (0% and 100% when converted to a percentage).
</TD>
</TABLE>
</BODY>
</HTML>
Weapon Calculator
Code:
<HTML>
<HEAD>
<TITLE>AR Calculator</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkForZero(field)
{
if (field.value == 0 || field.value.length == 0)
{
alert ("This field can't be 0!");
field.focus();
}
}
function cmdCalc_Click(form)
{
calculatePayment(form);
}
function calculatePayment(form)
{
ar = form.attskill1.value*(form.attskillcheck1.value/100);
ar = ar+form.attskill2.value*(form.attskillcheck2.value/100);
ar = ar+form.attskill3.value*(form.attskillcheck3.value/100);
def = form.defskill1.value*(form.defskillcheck1.value/100)+form.defskill2.value*(form.defskillcheck2.value/100)+form.defskill3.value*(form.defskillcheck3.value/100);
diff_ar = ar/(ar+def);
aggdefuno = 3.75+(0.0075*form.defbar.value);
aggdefdos = 2.25;
land_rate = aggdefuno*Math.pow(diff_ar,aggdefdos);
form.diffar.value = Math.round(diff_ar*10000)/100 + "%";
form.landrate.value = Math.round(land_rate*10000)/100 + "%";
form.missrate.value = Math.round((1-land_rate)*10000)/100 + "%";
}
//-->
</SCRIPT>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-10504701-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD VALIGN=TOP>
<FORM NAME="WeaponARCalculator">
<TABLE WIDTH=350 BORDER=5 BGCOLOR=SILVER CELLPADDING=2>
<TR>
<TD COLSPAN=2 ALIGN=CENTER>
<B><FONT SIZE=+2 COLOR=BLUE>Weapon AR Calculator</FONT></B>
</TD>
</TR>
<TR>
<TD COLSPAN=2 WIDTH=50%>
<TABLE BORDER=0 CELLPADDING=2>
<TR>
<TD COLSPAN=4><B>Attacker Data:</B></TD>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill1
VALUE="1000"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck1
VALUE="100"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill2
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck2
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>AAO:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskill3
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=attskillcheck3
VALUE="100"
SIZE=7
</TD>
</TR>
<TR>
<TD COLSPAN=4><B>Defender Data:</B></TD>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill1
VALUE="1000"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck1
VALUE="100"
SIZE=7
onBlur=checkForZero(this)
onChange=checkForZero(this)>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Skill:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill2
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck2
VALUE="0"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>AAD:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskill3
VALUE="0"
SIZE=7
</TD>
<TD ALIGN=RIGHT>Check:</TD>
<TD>
<TD>
<INPUT
TYPE=TEXT
NAME=defskillcheck3
VALUE="100"
SIZE=7
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT colspan=1>Agg/Def Bar:</TD>
<TD colspan=2>
<INPUT
TYPE=TEXT
NAME=defbar
VALUE=0
SIZE=7>
</TD>
</TR>
</TABLE>
</TD></TR>
<TR>
<TD>
<TABLE BORDER=0 CELLPADDING=2>
<TR>
<TD COLSPAN=2><B>Results:</B></TD>
<TR>
<TD ALIGN=RIGHT>Diff AR %:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=diffar
SIZE=7>
</TD>
</tr>
<tr>
<TD ALIGN=RIGHT>Land Rate:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=landrate
SIZE=7>
</TD>
<TD ALIGN=RIGHT>Miss Rate:</TD>
<TD>
<INPUT
TYPE=TEXT
NAME=missrate
SIZE=7>
</TD>
</TR>
<TR>
<TD ALIGN=CENTER COLSPAN=2>
<INPUT
TYPE=BUTTON
NAME="cmdCalc"
VALUE="Calculate"
onClick=cmdCalc_Click(this.form)>
</TD>
</TR>
</TD></TR>
</TABLE>
</TD></TR>
</TABLE>
</FORM></TD>
<td width=50>
 
</td>
<TD VALIGN=TOP>
<H3>Weapon AR Calculator</H3>
This page uses a form to calculate the land rate for Weapons.
<P>
Here's how you use this form:
<OL>
<LI>Enter the attackers skills (typical Weapon skills).
<LI>Enter the attack skill check amounts (always enter the percentage amount, so a 100% check Weapon is entered as 100, not 1).
<LI>Enter the defenders skills (typically Evade/Dodge/Duck).
<LI>Enter the defense skill check amounts (always enter the percentage amount, so a 100% check Weapon is entered as 100, not 1).
<LI>Enter the defenders Agg/Def bar setting. Note that this runs from -100 (full defense) to 100 (full aggro), with neutral (50/50) being 0.
<LI>Click Calculate.
</OL>
<BR><BR>
This calculator should be accurate +-5% for any calculations at full def (-100). Anything else has been tested less (or not at all) and may or may not be accurate.
<BR><BR>
Just in case you were curious, skill = AAO, and evades = AAD.
<BR><BR>
Also, diff_ar = ar/(ar+def). This is used to always give me a number that is between 0 and 1 (0% and 100% when converted to a percentage).
</TD>
</TABLE>
</BODY>
</HTML>