Benutzer:Arbiedz/Projekte/WolkaCalc

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen

Ein kleiner Javascript-Rechner, um anhand der Markpreise den Ankaufpreis von Herbeirufungen zu ermitteln.

Benutzung: Kopieren des Textes aus dem Kasten in einen Editor, lokal speichern als HTML-Datei, mit Browser aufrufen, Basiswerte eingeben und dann berechnen lassen.
Oder hier online verwenden.

Korrekturen, Ergänzungen und Kommentare sind willkommen.

<html>
<head>
  <title>Wirtschaftlichkeitsrechner Wolka</title>
  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  <script type="text/javascript">
  <!--
      // "Konstanten" definieren:
    var Version = 3;
    var Versiondate = "03. März 2009";

    var Wolkenstoffdrop = 0.8;

    var CNPCListCount = 5;

    var NPCs = new Array(CNPCListCount);

    NPCs[0] = new Object();
    NPCs[0]["Anzahl"] = 7;
    NPCs[0]["Name"] = "Wolkenflatterer";  // der Name wird nicht wirklich gebraucht und dient nur der Übersichtlichkeit
    NPCs[0]["Golddrop"] = 8;

    NPCs[1] = new Object();
    NPCs[1]["Anzahl"] = 1;
    NPCs[1]["Name"] = "Fliegende Kuh";
    NPCs[1]["Golddrop"] = 6;

    NPCs[2] = new Object();
    NPCs[2]["Anzahl"] = 3;
    NPCs[2]["Name"] = "Kleine Luftschnecke";
    NPCs[2]["Golddrop"] = 2;

    NPCs[3] = new Object();
    NPCs[3]["Anzahl"] = 1;
    NPCs[3]["Name"] = "Wolkenschaf";
    NPCs[3]["Golddrop"] = 5;

    NPCs[4] = new Object();
    NPCs[4]["Anzahl"] = 1;
    NPCs[4]["Name"] = "Wolkenblume";
    NPCs[4]["Golddrop"] = 2;


    function ReCalc()  {
      window.document.calc.inputherbiwert.value =
        (
          eval(window.document.calc.betoerungcount.value)
          *
            (
              eval(window.document.calc.betoerung.value)
              + HerbeirufungenBenötigt * eval(window.document.calc.xp.value)
              + NPCs[1]["Anzahl"] / NPCCount * HerbeirufungenBenötigt * eval(window.document.calc.kuhkopf.value)
              + eval(window.document.calc.inputgolddrop.value) * HerbeirufungenBenötigt
            )
          - eval(window.document.calc.silberschnee.value)
          - eval(window.document.calc.zauberpolle.value)
        )
        / HerbeirufungenBenötigt / eval(window.document.calc.betoerungcount.value);
    }

    function GetNPCCount()  {
      var count = 0;

      for (i=0; i < CNPCListCount; i++)
        count += NPCs[i]["Anzahl"];

      return count;
    }


    function ReCalcGolddrop()  {
      window.document.calc.inputgolddrop.value = GolddropSumme() / NPCCount;
      Clear();
    }

    function GolddropSumme() {
      var i, j;
      var gm = 0;

      for (i=0; i < CNPCListCount; i++) {
        gm += Math.floor(Math.pow(1.01, window.document.calc.pluenderungstufe.value) * NPCs[i]["Golddrop"]) * NPCs[i]["Anzahl"];
      }

      return gm;
    }

    function Shopwert(Itemname) {
      switch (Itemname) {
        case "Silberschnee":
          window.document.calc.silberschnee.value = 27;
          Clear();
          break;
        case "Zauberpolle":
          window.document.calc.zauberpolle.value = 22;
          Clear();
          break;
        default:
          alert("function Shopwert(Itemname): unbekannter Itemname " + Itemname);
          break;
      }
    }

    function Clear() {
      window.document.calc.inputherbiwert.value = "muss noch berechnet werden";
    }


    var NPCCount = GetNPCCount();
    var HerbeirufungenBenötigt = NPCCount / NPCs[0]["Anzahl"] / Wolkenstoffdrop * 15;


//  -->
  </script>
</head>
<body>
  <noscript>
    <big>Javascript muss aktiviert sein!</big><p>
  </noscript>

  Ein Script, um anhand der Markpreise den Ankaufpreis von Herbeirufungen zu ermitteln. Siehe auch <a href="http://www.fwwiki.de/index.php/Herbeirufung_der_Geistlosen/Wirtschaftlichkeitsbetrachtung#Dungeon:_Wolka">http://www.fwwiki.de/index.php/Herbeirufung_der_Geistlosen/Wirtschaftlichkeitsbetrachtung#Dungeon:_Wolka</a>.<br>
  <script type="text/javascript">
  <!--
    document.write("Version " + Version + " vom " +Versiondate);
  // -->
  </script>
  <p>
  <form name="calc">
    <fieldset><legend><b>Markpreise für ein einzelnes Item</b></legend>
    <table border>
      <tr><td>Betörung:</td><td><input name="betoerung" type="text" value="2200" onchange="Clear()" /></td><td></td></tr>
      <tr><td>XP:</td><td><input name="xp" type="text" value="4" onchange="Clear()" /></td><td></td></tr>
      <tr><td>Kuhkopf:</td><td><input name="kuhkopf" type="text" value="35" onchange="Clear()" /></td><td></td></tr>
      <tr><td>Silberschnee:</td><td><input name="silberschnee" type="text" value="90" onchange="Clear()" /></td><td><input type="button" name="btnShopWertSilberschnee" value="Shopwert" onclick="Shopwert('Silberschnee')"></td></tr>
      <tr><td>Zauberpolle:</td><td><input name="zauberpolle" type="text" value="40" onchange="Clear()" /><td><input type="button" name="btnShopWertZauberpolle" value="Shopwert" onclick="Shopwert('Zauberpolle')"></td></tr>
    </table>
    (Bitte keine Tausenderpunkte verwenden.)
    </fieldset>
    <fieldset>
      <legend><b>Einfluss der Plünderungsstufe</b></legend>
        <table>
          <tr>
            <td valign="top">Plünderung Stufe:</td><td>
              <select name="pluenderungstufe" size="10" onchange="ReCalcGolddrop()" >
                <option selected> 0</option>
                <option> 1 </option>
                <option> 2 </option>
                <option> 3 </option>
                <option> 4 </option>
                <option> 5 </option>
                <option> 6 </option>
                <option> 7 </option>
                <option> 8 </option>
                <option> 9 </option>
                <option>10</option>
                <option>11</option>
                <option>12</option>
                <option>13</option>
                <option>14</option>
                <option>15</option>
                <option>16</option>
                <option>17</option>
                <option>18</option>
                <option>19</option>
                <option>20</option>
                <option>21</option>
                <option>22</option>
                <option>23</option>
                <option>24</option>
                <option>25</option>
                <option>26</option>
                <option>27</option>
                <option>28</option>
                <option>29</option>
                <option>30</option>
              </select>
          </td>
          <td></td>
          </tr>
          <tr><td>durchschnittlicher Golddrop:</td><td><input name="inputgolddrop" type="text" value="wird noch berechnet" readonly /></td><td></td></tr>
        </table>
    </fieldset>

    Anzahl herzustellender Betörungen: <input name="betoerungcount" type="text" value="1" onchange="ReCalc()" /> (Zauberpolle und Silberschnee wird nur einmal berechnet)
    <hr>

    <input type="button" name="btnDoCalc" value="Berechnen" onclick="ReCalc()"><br>
    Maximaler Einkaufspreis für Herbeirufungen: <input name="inputherbiwert" type="text" readonly />

  </form>
  <script type="text/javascript">
  <!--
    ReCalcGolddrop(); //  window.document.calc.inputgolddrop.value initialisieren
    Clear();          // window.document.calc.inputherbiwert.value initialisieren
  -->
  </script>

</body>


</html>