Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <HTML>
- <HEAD>
- <TITLE>Gem Calculator</TITLE>
- <SCRIPT LANGUAGE="JavaScript">
- //Source Code Ver 1.1 © InMathITrust
- function cost(m,allgems,s)
- {
- if(m==s) {return allgems[s][5]}
- return cost(m-1,allgems,s)*allgems[m][2]+allgems[m][4]+allgems[m][3]*allgems[m][6]
- }
- function gems (n,m,s,allgems)
- {
- var count=n
- for(var i=m-1;i>=s;i--) { count*=allgems[i+1][2] }
- return count
- }
- function s_check(f)
- {
- var v,starts,gain
- starts=v=gain=0
- var tomes = new Array()
- for(var i=0;i<3;i++) { tomes[i]=0 }
- var allgems =new Array()
- allgems[0] = new Array("lädiert",0,1,0,0,0,0,0,0,0)
- allgems[1] = new Array("fehlerhaft",0,2,0,10,0,0,0,0)
- allgems[2] = new Array("normal",0,2,0,25,0,0,0,0)
- allgems[3] = new Array("makellos",0,2,0,40,0,0,0)
- allgems[4] = new Array("perfekt",1,2,1,55,0,0,0,0)
- allgems[5] = new Array("glänzend",1,2,1,70,0,0,0,0)
- allgems[6] = new Array("quadratisch",2,2,1,85,0,0,0,0)
- allgems[7] = new Array("makellos quadratisch",2,2,1,100,0,0,0,0)
- allgems[8] = new Array("perfekt quadratisch",3,3,3,30000,0,0,0,0)
- allgems[9] = new Array("glänzend quadratisch",3,3,6,50000,0,0,0,0)
- allgems[10] = new Array("sternförmig",3,3,9,80000,0,0,0)
- allgems[11] = new Array("makellos sternförmig",3,3,12,100000,0,0,0)
- allgems[12] = new Array("perfekt sternförmig",3,3,15,200000,0,0,0)
- allgems[13] = new Array("glänzend sternförmig",3,3,20,400000,0,0,0)
- for(var i=0;i<14;i++) { allgems[i][5] = document.getElementById(i).value }
- for(var i=8;i<14;i++) { allgems[i][6] = document.getElementById(16).value }
- allgems[4][6] = document.getElementById(14).value
- allgems[5][6] = document.getElementById(14).value
- allgems[6][6] = document.getElementById(15).value
- allgems[7][6] = document.getElementById(15).value
- var lvl = document.getElementById("d2").options[document.getElementById("d2").selectedIndex].value
- f.sol.value = f.gem_nr.value = f.gem_start_nr.value = f.gem_start_name.value = f.foil_0_nr.value = f.foil_1_nr.value = f.foil_2_nr.value = f.gold_gain.value = f.gem_name.value = f.win.value = ""
- f.gem_name.value = allgems[lvl][0]
- for (var i=0;i<14;i++) // fill empty slots with min craft costs
- {
- if(0==allgems[i][5])
- {
- var mins = 999999999
- for(var j=0;j<i;j++)
- {
- var buff = cost(i,allgems,j)
- if(buff<mins) { mins=buff }
- }
- document.getElementById(i).value = allgems[i][7] = allgems[i][5] = mins
- }
- }
- var mins = 999999999
- for(var j=0;j<=lvl;j++)
- {
- var buff = cost(lvl,allgems,j)
- if(buff<mins&&buff>0)
- {
- mins = buff
- starts = j
- }
- allgems[lvl][7] = mins
- }
- f.sol.value = allgems[lvl][7]
- if(parseInt(f.sol.value)<parseInt(document.getElementById(123).value))
- {
- alert("Das Angebot ist zu teuer. Am besten selber craften ! Die benötigten Materialien wurden rechts eingetragen.")
- for(var i=lvl;i>=starts;i--) { allgems[i][9] = gems(1,lvl,i,allgems) }
- for(var i=lvl;i>starts;i--) { tomes[allgems[i][1]-1] += gems(1,lvl,i,allgems)*allgems[i][3] }
- f.gem_nr.value = "1"
- f.gem_start_nr.value = allgems[starts][9]
- f.gem_start_name.value = allgems[starts][0]
- f.foil_0_nr.value = tomes[0]
- f.foil_1_nr.value = tomes[1]
- f.foil_2_nr.value = tomes[2]
- }
- else { alert("Das Angebot ist billiger als selber craften. Zuschlagen !") }
- }
- function main(f)
- {
- f.gem_nr.value = f.gem_start_nr.value = f.gem_start_name.value = f.foil_0_nr.value = f.foil_1_nr.value = f.foil_2_nr.value = f.gold_gain.value = f.gem_name.value = f.win.value = ""
- var v,starts,gain
- starts=v=gain=0
- var clvl = document.getElementById("d1").options[document.getElementById("d1").selectedIndex].value
- var tomes = new Array()
- for(var i=0;i<3;i++) { tomes[i]=0 }
- var allgems =new Array()
- allgems[0] = new Array("lädiert",0,1,0,0,0,0,0,0,0)
- allgems[1] = new Array("fehlerhaft",0,2,0,10,0,0,0,0)
- allgems[2] = new Array("normal",0,2,0,25,0,0,0,0)
- allgems[3] = new Array("makellos",0,2,0,40,0,0,0)
- allgems[4] = new Array("perfekt",1,2,1,55,0,0,0,0)
- allgems[5] = new Array("glänzend",1,2,1,70,0,0,0,0)
- allgems[6] = new Array("quadratisch",2,2,1,85,0,0,0,0)
- allgems[7] = new Array("makellos quadratisch",2,2,1,100,0,0,0,0)
- allgems[8] = new Array("perfekt quadratisch",3,3,3,30000,0,0,0,0)
- allgems[9] = new Array("glänzend quadratisch",3,3,6,50000,0,0,0,0)
- allgems[10] = new Array("sternförmig",3,3,9,80000,0,0,0)
- allgems[11] = new Array("makellos sternförmig",3,3,12,100000,0,0,0)
- allgems[12] = new Array("perfekt sternförmig",3,3,15,200000,0,0,0)
- allgems[13] = new Array("glänzend sternförmig",3,3,20,400000,0,0,0)
- for(var i=0;i<14;i++) { allgems[i][5] = document.getElementById(i).value }
- for(var i=8;i<14;i++) { allgems[i][6] = document.getElementById(16).value }
- allgems[4][6] = document.getElementById(14).value
- allgems[5][6] = document.getElementById(14).value
- allgems[6][6] = document.getElementById(15).value
- allgems[7][6] = document.getElementById(15).value
- gold = document.getElementById(17).value
- for (var i=0;i<14;i++) // fill empty slots with min craft costs
- {
- if(0==allgems[i][5])
- {
- var mins = 999999999
- for(var j=0;j<i;j++)
- {
- var buff = cost(i,allgems,j)
- if(buff<mins) { mins=buff }
- }
- document.getElementById(i).value = allgems[i][7] = allgems[i][5] = mins
- }
- }
- for(var i=0;i<14;i++) // calculate and store min craft costs for each gem
- {
- var mins = 999999999
- for(var j=0;j<=i;j++)
- {
- var buff = cost(i,allgems,j)
- if(buff<mins&&buff>0)
- {
- mins=buff
- starts=j
- }
- }
- allgems[i][7]=mins
- }
- for(var i=0;i<14;i++) // get maximum gold per gem and gem_level
- {
- if (i<=clvl && (allgems[i][5]*0.85-allgems[i][7])*parseInt(gold/allgems[i][7])>gain)
- {
- gain=parseInt((allgems[i][5]*0.85-allgems[i][7])*parseInt(gold/allgems[i][7]))
- v=i
- }
- }
- if(gain>0) // get all information about the craft process of the gem
- {
- f.gold_gain.value = parseInt(allgems[v][5]*0.85-allgems[v][7])
- f.gem_name.value = allgems[v][0]
- var mins = 999999999
- for(var j=0;j<=v;j++)
- {
- var buff = cost(v,allgems,j)
- if(buff<mins&&buff>0)
- {
- mins = buff
- starts = j
- }
- allgems[v][7] = mins
- }
- for(var i=v;i>=starts;i--) { allgems[i][9] = gems(parseInt(gold/allgems[v][7]),v,i,allgems) }
- for(var i=v;i>starts;i--) { tomes[allgems[i][1]-1] += gems(parseInt(gold/allgems[v][7]),v,i,allgems)*allgems[i][3] }
- f.gem_nr.value = parseInt((gold/allgems[v][7]))
- f.gem_start_nr.value = allgems[starts][9]
- f.gem_start_name.value = allgems[starts][0]
- f.foil_0_nr.value = tomes[0]
- f.foil_1_nr.value = tomes[1]
- f.foil_2_nr.value = tomes[2]
- f.win.value = gain
- }
- else { alert("Kein Gewinn möglich !") }
- }
- </SCRIPT>
- </HEAD>
- <BODY bgcolor="#000000">
- <font color="#DFDFDF">
- <form>
- <table> <!--begin main table-->
- <tr> <!-- begin row 1 main table -->
- <td><center><font color="#DFDFDF" size="5"><b>AH - Daten</b></font></center></td>
- <td width="50"></td>
- <td><center><font color="#DFDFDF" size="5"><b>Kurzcheck</b></font></center></td>
- <td width="50"></td>
- <td><center><font color="#DFDFDF" size="5"><b>Kaufempfehlung</b></font></center></td>
- </tr> <!-- end row 1 main table -->
- <tr height="30"><!-- row 2 main table is empty -->
- <td>
- </td>
- </tr>
- <tr> <!-- begin row 3 main table -->
- <td align="center" valign="top"><!-- begin col AH part -->
- <table> <!--begin sub table left-->
- <tr>
- <td><font color="#DFDFDF">Preis lädiert</font></td>
- <td><INPUT TYPE="TEXT" NAME="i0" id=0></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis fehlerhaft</font></td>
- <td><INPUT TYPE="TEXT" NAME="i1" id=1></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis normal</font></td>
- <td><INPUT TYPE="TEXT" NAME="i2" id=2></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis makellos</font></td>
- <td><INPUT TYPE="TEXT" NAME="i3" id=3></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis perfekt</font></td>
- <td><INPUT TYPE="TEXT" NAME="i4" id=4></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis glänzend</font></td>
- <td><INPUT TYPE="TEXT" NAME="i5" id=5></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis quadratisch</font></td>
- <td><INPUT TYPE="TEXT" NAME="i6" id=6></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis makellos quadratisch</font></td>
- <td><INPUT TYPE="TEXT" NAME="i7" id=7></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis perfekt quadratisch</font></td>
- <td><INPUT TYPE="TEXT" NAME="i8" id=8></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis glänzend quadratisch</font></td>
- <td><INPUT TYPE="TEXT" NAME="i9" id=9></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis sternförmig</font></td>
- <td><INPUT TYPE="TEXT" NAME="i10" id=10></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis makellos sternförmig</font></td>
- <td><INPUT TYPE="TEXT" NAME="i1l" id="11"></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis perfekt sternförmig</font></td>
- <td><INPUT TYPE="TEXT" NAME="i12" id=12></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis glänzend sternförmig</font></td>
- <td><INPUT TYPE="TEXT" NAME="i13" id=13></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"> Preis Seite der Juw.</font></td>
- <td><INPUT TYPE="TEXT" NAME="i14" id=14></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"> Preis Foliant der Juw.</font></td>
- <td><INPUT TYPE="TEXT" NAME="i15" id=15></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis Foliant der Geh.</font></td>
- <td><INPUT TYPE="TEXT" NAME="i16" id=16></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Gold verfügbar</font></td>
- <td><INPUT TYPE="TEXT" NAME="i17" id=17></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">ich kann bis einschließlich ... craften</font></td>
- <td>
- <select name="drop1" id="d1">
- <option value="0">lädiert</option>
- <option value="1">fehlerhaft</option>
- <option value="2">normal</option>
- <option value="3">makellos</option>
- <option value="4">perfekt</option>
- <option value="5">glänzend</option>
- <option value="6">quadratisch</option>
- <option value="7">makellos quadratisch</option>
- <option value="8">perfekt quadratisch</option>
- <option value="9">glänzend quadratisch</option>
- <option value="10">sternförmig</option>
- <option value="11">makellos sternförmig</option>
- <option value="12">perfekt sternförmig</option>
- <option value="13" selected="selected">glänzend sternförmig</option>
- </select>
- </td>
- </tr>
- <tr height="30"><!-- empty row -->
- <td></td>
- </tr>
- <tr>
- <td><INPUT TYPE="BUTTON" VALUE="Berechnen!" onClick="main(this.form)"></td>
- </tr>
- </table><!--end sub table left-->
- </td><!-- end col AH part -->
- <td width="50"><!-- col 2 main table is empty -->
- </td>
- <td align="left" valign="top"><!-- begin col quick check part -->
- <table><!-- begin sub table center -->
- <tr>
- <td><font color="#DFDFDF">Gem</font></td>
- <td>
- <select name="drop2"" id="d2">
- <option value="0">lädiert</option>
- <option value="1">fehlerhaft</option>
- <option value="2">normal</option>
- <option value="3">makellos</option>
- <option value="4">perfekt</option>
- <option value="5">glänzend</option>
- <option value="6">quadratisch</option>
- <option value="7">makellos quadratisch</option>
- <option value="8">perfekt quadratisch</option>
- <option value="9">glänzend quadratisch</option>
- <option value="10">sternförmig</option>
- <option value="11">makellos sternförmig</option>
- <option value="12">perfekt sternförmig</option>
- <option value="13" selected="selected">glänzend sternförmig</option>
- </select>
- </td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Preis</font></td>
- <td><INPUT TYPE="TEXT" NAME="check" id=123></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">min Craft-Kosten</font></td>
- <td><INPUT TYPE="TEXT" NAME="sol" id=124 readonly="readonly" onclick="s_check(this.form)"></td>
- </tr>
- </table><!-- end sub table center -->
- </td><!-- end col quick check part -->
- <td width="50"><!-- col 4 main table is empty -->
- </td>
- <td align="left" valign="top"><!-- begin col solution part -->
- <table> <!--begin sub table right-->
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="gem_name" readonly="readonly"> mit <INPUT TYPE="TEXT" NAME="gold_gain" readonly="readonly"> Gold Gewinn pro Gem.</font></td>
- </tr>
- <tr height="25">
- <td></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF">Für die Herstellung von <INPUT TYPE="TEXT" NAME="gem_nr" readonly="readonly"> Gem(s) werden benötigt ...</font></td>
- </tr>
- <tr height="25">
- <td></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="gem_start_nr" readonly="readonly"> x <INPUT TYPE="TEXT" NAME="gem_start_name" readonly="readonly"></font></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_0_nr" readonly="readonly"> x Seite der Juw.</font></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_1_nr" readonly="readonly"> x Foliant der Juw.</font></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_2_nr" readonly="readonly"> x Foliant der Geh.</font></td>
- </tr>
- <tr height="25">
- <td></td>
- </tr>
- <tr>
- <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="win" readonly="readonly"> Gold Gewinn bei Verkauf aller Gems im AH</font></td>
- </tr>
- </table><!--end sub table right-->
- </td><!-- end col solution part -->
- </tr><!-- end row 3 main table -->
- </table>
- </form>
- <br>
- <font size="4"><b>© InMathITrust</b></font>
- </font>
- </BODY>
- </HTML>
Advertisement
Add Comment
Please, Sign In to add comment