Guest User

gem

a guest
Jul 5th, 2012
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Gem Calculator</TITLE>
  4. <SCRIPT LANGUAGE="JavaScript">
  5. //Source Code Ver 1.1 © InMathITrust
  6. function cost(m,allgems,s)
  7. {
  8.     if(m==s)    {return allgems[s][5]}
  9.     return cost(m-1,allgems,s)*allgems[m][2]+allgems[m][4]+allgems[m][3]*allgems[m][6]
  10. }
  11. function gems (n,m,s,allgems)
  12. {  
  13.     var count=n
  14.     for(var i=m-1;i>=s;i--) { count*=allgems[i+1][2] }
  15.     return count
  16. }
  17. function s_check(f)
  18. {
  19.     var v,starts,gain
  20.     starts=v=gain=0
  21.     var tomes = new Array()
  22.     for(var i=0;i<3;i++)    { tomes[i]=0 }
  23.     var allgems =new Array()
  24.     allgems[0] = new Array("lädiert",0,1,0,0,0,0,0,0,0)
  25.     allgems[1] = new Array("fehlerhaft",0,2,0,10,0,0,0,0)
  26.     allgems[2] = new Array("normal",0,2,0,25,0,0,0,0)
  27.     allgems[3] = new Array("makellos",0,2,0,40,0,0,0)
  28.     allgems[4] = new Array("perfekt",1,2,1,55,0,0,0,0)
  29.     allgems[5] = new Array("glänzend",1,2,1,70,0,0,0,0)
  30.     allgems[6] = new Array("quadratisch",2,2,1,85,0,0,0,0)
  31.     allgems[7] = new Array("makellos quadratisch",2,2,1,100,0,0,0,0)
  32.     allgems[8] = new Array("perfekt quadratisch",3,3,3,30000,0,0,0,0)
  33.     allgems[9] = new Array("glänzend quadratisch",3,3,6,50000,0,0,0,0)
  34.     allgems[10] = new Array("sternförmig",3,3,9,80000,0,0,0)
  35.     allgems[11] = new Array("makellos sternförmig",3,3,12,100000,0,0,0)
  36.     allgems[12] = new Array("perfekt sternförmig",3,3,15,200000,0,0,0)
  37.     allgems[13] = new Array("glänzend sternförmig",3,3,20,400000,0,0,0)
  38.     for(var i=0;i<14;i++)   { allgems[i][5] = document.getElementById(i).value }
  39.     for(var i=8;i<14;i++)   { allgems[i][6] = document.getElementById(16).value }
  40.     allgems[4][6] = document.getElementById(14).value
  41.     allgems[5][6] = document.getElementById(14).value
  42.     allgems[6][6] = document.getElementById(15).value
  43.     allgems[7][6] = document.getElementById(15).value
  44.     var lvl = document.getElementById("d2").options[document.getElementById("d2").selectedIndex].value
  45.     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 = ""
  46.     f.gem_name.value = allgems[lvl][0]
  47.     for (var i=0;i<14;i++) // fill empty slots with  min craft costs
  48.     {
  49.         if(0==allgems[i][5])
  50.         {
  51.             var mins = 999999999
  52.             for(var j=0;j<i;j++)
  53.                 {
  54.                     var buff = cost(i,allgems,j)
  55.                     if(buff<mins) { mins=buff }
  56.                 }
  57.             document.getElementById(i).value = allgems[i][7] = allgems[i][5] = mins
  58.         }
  59.     }
  60.     var mins = 999999999
  61.     for(var j=0;j<=lvl;j++)
  62.     {
  63.        var buff = cost(lvl,allgems,j)
  64.        if(buff<mins&&buff>0)
  65.        {
  66.            mins  = buff
  67.            starts = j
  68.        }
  69.        allgems[lvl][7] = mins
  70.     }
  71.     f.sol.value = allgems[lvl][7]
  72.     if(parseInt(f.sol.value)<parseInt(document.getElementById(123).value))
  73.     {
  74.         alert("Das Angebot ist zu teuer. Am besten selber craften ! Die benötigten Materialien wurden rechts eingetragen.")
  75.        for(var i=lvl;i>=starts;i--)    { allgems[i][9] = gems(1,lvl,i,allgems) }
  76.        for(var i=lvl;i>starts;i--)     { tomes[allgems[i][1]-1] += gems(1,lvl,i,allgems)*allgems[i][3] }
  77.        f.gem_nr.value = "1"
  78.        f.gem_start_nr.value = allgems[starts][9]
  79.        f.gem_start_name.value = allgems[starts][0]
  80.        f.foil_0_nr.value = tomes[0]
  81.        f.foil_1_nr.value = tomes[1]
  82.        f.foil_2_nr.value = tomes[2]
  83.     }
  84.     else { alert("Das Angebot ist billiger als selber craften. Zuschlagen !") }
  85.    
  86. }
  87. function main(f)
  88. {
  89.     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 = ""
  90.     var v,starts,gain
  91.     starts=v=gain=0
  92.     var clvl = document.getElementById("d1").options[document.getElementById("d1").selectedIndex].value
  93.     var tomes = new Array()
  94.     for(var i=0;i<3;i++)    { tomes[i]=0 }
  95.     var allgems =new Array()
  96.     allgems[0] = new Array("lädiert",0,1,0,0,0,0,0,0,0)
  97.     allgems[1] = new Array("fehlerhaft",0,2,0,10,0,0,0,0)
  98.     allgems[2] = new Array("normal",0,2,0,25,0,0,0,0)
  99.     allgems[3] = new Array("makellos",0,2,0,40,0,0,0)
  100.     allgems[4] = new Array("perfekt",1,2,1,55,0,0,0,0)
  101.     allgems[5] = new Array("glänzend",1,2,1,70,0,0,0,0)
  102.     allgems[6] = new Array("quadratisch",2,2,1,85,0,0,0,0)
  103.     allgems[7] = new Array("makellos quadratisch",2,2,1,100,0,0,0,0)
  104.     allgems[8] = new Array("perfekt quadratisch",3,3,3,30000,0,0,0,0)
  105.     allgems[9] = new Array("glänzend quadratisch",3,3,6,50000,0,0,0,0)
  106.     allgems[10] = new Array("sternförmig",3,3,9,80000,0,0,0)
  107.     allgems[11] = new Array("makellos sternförmig",3,3,12,100000,0,0,0)
  108.     allgems[12] = new Array("perfekt sternförmig",3,3,15,200000,0,0,0)
  109.     allgems[13] = new Array("glänzend sternförmig",3,3,20,400000,0,0,0)
  110.     for(var i=0;i<14;i++)   { allgems[i][5] = document.getElementById(i).value }
  111.     for(var i=8;i<14;i++)   { allgems[i][6] = document.getElementById(16).value }
  112.     allgems[4][6] = document.getElementById(14).value
  113.     allgems[5][6] = document.getElementById(14).value
  114.     allgems[6][6] = document.getElementById(15).value
  115.     allgems[7][6] = document.getElementById(15).value
  116.     gold = document.getElementById(17).value
  117.     for (var i=0;i<14;i++) // fill empty slots with  min craft costs
  118.     {
  119.         if(0==allgems[i][5])
  120.         {
  121.             var mins = 999999999
  122.             for(var j=0;j<i;j++)
  123.                 {
  124.                     var buff = cost(i,allgems,j)
  125.                     if(buff<mins) { mins=buff }
  126.                 }
  127.             document.getElementById(i).value = allgems[i][7] = allgems[i][5] = mins
  128.         }
  129.     }
  130.     for(var i=0;i<14;i++) // calculate and store min craft costs for each gem
  131.     {
  132.         var mins = 999999999
  133.         for(var j=0;j<=i;j++)
  134.         {
  135.             var buff = cost(i,allgems,j)
  136.             if(buff<mins&&buff>0)
  137.             {
  138.                 mins=buff
  139.                 starts=j
  140.             }
  141.         }
  142.         allgems[i][7]=mins
  143.     }
  144.     for(var i=0;i<14;i++) // get maximum gold per gem and gem_level
  145.     {
  146.         if (i<=clvl && (allgems[i][5]*0.85-allgems[i][7])*parseInt(gold/allgems[i][7])>gain)
  147.         {
  148.             gain=parseInt((allgems[i][5]*0.85-allgems[i][7])*parseInt(gold/allgems[i][7]))
  149.             v=i
  150.         }
  151.     }
  152.     if(gain>0) // get all information about the craft process of the gem
  153.     {
  154.         f.gold_gain.value = parseInt(allgems[v][5]*0.85-allgems[v][7])
  155.         f.gem_name.value = allgems[v][0]
  156.         var mins = 999999999
  157.         for(var j=0;j<=v;j++)
  158.         {
  159.             var buff = cost(v,allgems,j)
  160.             if(buff<mins&&buff>0)
  161.                 {
  162.                     mins  = buff
  163.                     starts = j
  164.                 }
  165.             allgems[v][7] = mins
  166.         }
  167.         for(var i=v;i>=starts;i--)    { allgems[i][9] = gems(parseInt(gold/allgems[v][7]),v,i,allgems) }
  168.         for(var i=v;i>starts;i--)     { tomes[allgems[i][1]-1] += gems(parseInt(gold/allgems[v][7]),v,i,allgems)*allgems[i][3] }
  169.         f.gem_nr.value = parseInt((gold/allgems[v][7]))
  170.         f.gem_start_nr.value = allgems[starts][9]
  171.         f.gem_start_name.value = allgems[starts][0]
  172.         f.foil_0_nr.value = tomes[0]
  173.         f.foil_1_nr.value = tomes[1]
  174.         f.foil_2_nr.value = tomes[2]
  175.         f.win.value = gain
  176.     }
  177.     else        { alert("Kein Gewinn möglich !") }
  178. }
  179. </SCRIPT>
  180. </HEAD>
  181. <BODY bgcolor="#000000">
  182. <font color="#DFDFDF">
  183. <form>
  184. <table> <!--begin main table-->
  185.     <tr> <!-- begin row 1 main table -->
  186.         <td><center><font color="#DFDFDF" size="5"><b>AH - Daten</b></font></center></td>
  187.         <td width="50"></td>
  188.         <td><center><font color="#DFDFDF" size="5"><b>Kurzcheck</b></font></center></td>
  189.         <td width="50"></td>
  190.         <td><center><font color="#DFDFDF" size="5"><b>Kaufempfehlung</b></font></center></td>
  191.     </tr> <!-- end row 1 main table -->
  192.     <tr height="30"><!-- row 2 main table is empty -->
  193.         <td>
  194.         </td>
  195.     </tr>
  196.     <tr> <!-- begin row 3 main table -->
  197.         <td align="center" valign="top"><!-- begin col AH part -->
  198.             <table> <!--begin sub table left-->
  199.             <tr>
  200.                 <td><font color="#DFDFDF">Preis lädiert</font></td>
  201.                 <td><INPUT TYPE="TEXT" NAME="i0" id=0></td>
  202.             </tr>
  203.             <tr>
  204.                 <td><font color="#DFDFDF">Preis fehlerhaft</font></td>
  205.                 <td><INPUT TYPE="TEXT" NAME="i1" id=1></td>
  206.             </tr>
  207.             <tr>
  208.                 <td><font color="#DFDFDF">Preis normal</font></td>
  209.                 <td><INPUT TYPE="TEXT" NAME="i2" id=2></td>
  210.             </tr>
  211.             <tr>
  212.                 <td><font color="#DFDFDF">Preis makellos</font></td>
  213.                 <td><INPUT TYPE="TEXT" NAME="i3" id=3></td>
  214.             </tr>
  215.             <tr>
  216.                 <td><font color="#DFDFDF">Preis perfekt</font></td>
  217.                 <td><INPUT TYPE="TEXT" NAME="i4" id=4></td>
  218.             </tr>
  219.             <tr>
  220.                 <td><font color="#DFDFDF">Preis glänzend</font></td>
  221.                 <td><INPUT TYPE="TEXT" NAME="i5" id=5></td>
  222.             </tr>
  223.             <tr>
  224.                 <td><font color="#DFDFDF">Preis quadratisch</font></td>
  225.                 <td><INPUT TYPE="TEXT" NAME="i6" id=6></td>
  226.             </tr>
  227.             <tr>
  228.                 <td><font color="#DFDFDF">Preis makellos quadratisch</font></td>
  229.                 <td><INPUT TYPE="TEXT" NAME="i7" id=7></td>
  230.             </tr>
  231.             <tr>
  232.                 <td><font color="#DFDFDF">Preis perfekt quadratisch</font></td>
  233.                 <td><INPUT TYPE="TEXT" NAME="i8" id=8></td>
  234.             </tr>
  235.             <tr>
  236.                 <td><font color="#DFDFDF">Preis glänzend quadratisch</font></td>
  237.                 <td><INPUT TYPE="TEXT" NAME="i9" id=9></td>
  238.             </tr>
  239.             <tr>
  240.                 <td><font color="#DFDFDF">Preis sternförmig</font></td>
  241.                 <td><INPUT TYPE="TEXT" NAME="i10" id=10></td>
  242.             </tr>
  243.             <tr>
  244.                 <td><font color="#DFDFDF">Preis makellos sternförmig</font></td>
  245.                 <td><INPUT TYPE="TEXT" NAME="i1l" id="11"></td>
  246.             </tr>
  247.             <tr>
  248.                 <td><font color="#DFDFDF">Preis perfekt sternförmig</font></td>
  249.                 <td><INPUT TYPE="TEXT" NAME="i12" id=12></td>
  250.             </tr>
  251.             <tr>
  252.                 <td><font color="#DFDFDF">Preis glänzend sternförmig</font></td>
  253.                 <td><INPUT TYPE="TEXT" NAME="i13" id=13></td>
  254.             </tr>
  255.             <tr>
  256.                 <td><font color="#DFDFDF"> Preis Seite der Juw.</font></td>
  257.                 <td><INPUT TYPE="TEXT" NAME="i14" id=14></td>
  258.             </tr>
  259.             <tr>
  260.                 <td><font color="#DFDFDF"> Preis Foliant der Juw.</font></td>
  261.                 <td><INPUT TYPE="TEXT" NAME="i15" id=15></td>
  262.             </tr>
  263.             <tr>
  264.                 <td><font color="#DFDFDF">Preis Foliant der Geh.</font></td>
  265.                 <td><INPUT TYPE="TEXT" NAME="i16" id=16></td>
  266.             </tr>
  267.             <tr>
  268.                 <td><font color="#DFDFDF">Gold verfügbar</font></td>
  269.                 <td><INPUT TYPE="TEXT" NAME="i17" id=17></td>
  270.             </tr>
  271.             <tr>
  272.                 <td><font color="#DFDFDF">ich kann bis einschließlich ... craften</font></td>
  273.                 <td>
  274.                     <select name="drop1" id="d1">
  275.                         <option value="0">lädiert</option>
  276.                         <option value="1">fehlerhaft</option>
  277.                         <option value="2">normal</option>
  278.                         <option value="3">makellos</option>
  279.                         <option value="4">perfekt</option>
  280.                         <option value="5">glänzend</option>
  281.                         <option value="6">quadratisch</option>
  282.                         <option value="7">makellos quadratisch</option>
  283.                         <option value="8">perfekt quadratisch</option>
  284.                         <option value="9">glänzend quadratisch</option>
  285.                         <option value="10">sternförmig</option>
  286.                         <option value="11">makellos sternförmig</option>
  287.                         <option value="12">perfekt sternförmig</option>
  288.                         <option value="13" selected="selected">glänzend sternförmig</option>
  289.                     </select>
  290.                 </td>
  291.             </tr>
  292.             <tr height="30"><!-- empty row -->
  293.                 <td></td>
  294.             </tr>
  295.             <tr>
  296.                 <td><INPUT TYPE="BUTTON" VALUE="Berechnen!" onClick="main(this.form)"></td>
  297.             </tr>
  298.             </table><!--end sub table left-->
  299.         </td><!-- end col AH part -->
  300.         <td width="50"><!-- col 2 main table is empty -->
  301.         </td>
  302.         <td align="left" valign="top"><!-- begin col quick check part -->
  303.             <table><!-- begin sub table center -->
  304.                 <tr>
  305.                     <td><font color="#DFDFDF">Gem</font></td>
  306.                     <td>
  307.                         <select name="drop2"" id="d2">
  308.                            <option value="0">lädiert</option>
  309.                            <option value="1">fehlerhaft</option>
  310.                            <option value="2">normal</option>
  311.                            <option value="3">makellos</option>
  312.                            <option value="4">perfekt</option>
  313.                            <option value="5">glänzend</option>
  314.                            <option value="6">quadratisch</option>
  315.                            <option value="7">makellos quadratisch</option>
  316.                            <option value="8">perfekt quadratisch</option>
  317.                            <option value="9">glänzend quadratisch</option>
  318.                            <option value="10">sternförmig</option>
  319.                            <option value="11">makellos sternförmig</option>
  320.                            <option value="12">perfekt sternförmig</option>
  321.                            <option value="13" selected="selected">glänzend sternförmig</option>
  322.                        </select>
  323.                    </td>
  324.                </tr>
  325.                <tr>
  326.                    <td><font color="#DFDFDF">Preis</font></td>
  327.                    <td><INPUT TYPE="TEXT" NAME="check" id=123></td>
  328.                </tr>
  329.                <tr>
  330.                    <td><font color="#DFDFDF">min Craft-Kosten</font></td>
  331.                    <td><INPUT TYPE="TEXT" NAME="sol" id=124 readonly="readonly" onclick="s_check(this.form)"></td>
  332.                </tr>
  333.            </table><!-- end sub table center -->
  334.        </td><!-- end col quick check part -->
  335.        <td width="50"><!-- col 4 main table is empty -->
  336.        </td>
  337.        <td  align="left" valign="top"><!-- begin col solution part -->
  338.            <table> <!--begin sub table right-->
  339.                <tr>
  340.                    <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>
  341.                </tr>
  342.                <tr height="25">
  343.                    <td></td>
  344.                </tr>
  345.                <tr>
  346.                    <td><font color="#DFDFDF">Für die Herstellung von <INPUT TYPE="TEXT" NAME="gem_nr" readonly="readonly"> Gem(s) werden benötigt ...</font></td>
  347.                </tr>
  348.                <tr height="25">
  349.                    <td></td>
  350.                </tr>
  351.                <tr>
  352.                    <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>
  353.                </tr>
  354.                <tr>
  355.                    <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_0_nr" readonly="readonly"> x Seite der Juw.</font></td>
  356.                </tr>
  357.                <tr>
  358.                    <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_1_nr" readonly="readonly"> x Foliant der Juw.</font></td>
  359.                </tr>
  360.                <tr>
  361.                    <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="foil_2_nr" readonly="readonly"> x Foliant der Geh.</font></td>
  362.                </tr>
  363.                <tr height="25">
  364.                    <td></td>
  365.                </tr>
  366.                <tr>
  367.                    <td><font color="#DFDFDF"><INPUT TYPE="TEXT" NAME="win" readonly="readonly"> Gold Gewinn bei Verkauf aller Gems im AH</font></td>
  368.                </tr>
  369.            </table><!--end sub table right-->
  370.        </td><!-- end col solution part -->
  371.    </tr><!-- end row 3 main table -->
  372. </table>
  373. </form>
  374. <br>
  375. <font size="4"><b>© InMathITrust</b></font>
  376. </font>
  377. </BODY>
  378. </HTML>
Advertisement
Add Comment
Please, Sign In to add comment