Benutzer:Samya/Projekte/Seelenkapselwirtschaftlichkeit

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

Dieser Rechner erlaubt wahrscheinlich, möglicherweise, ungefähr in etwa eine Aussage darüber, ob der Gewinn durch Seelenkapseldrops die Reparaturkosten der eigenen Waffen übersteigt.

Grundlegendes[Bearbeiten]

Dropwarscheinlichkeit der Seelenkapsel=Wurzel((A-Waffe + V-Waffe)*2)*1.005^Seelenverbindungsstufe.
Achtung! Die Formel ist nicht bestätigt und die Werte weichen teilweise von der Strichliste ab, siehe dafür die Tabelle ganz unten.
Verschleiß der Waffen: 1%=5NPCs (1 Schlag pro NPC) (Quelle: eigene Beobachtung)
Andere Drops von NPCs, Gefahr durch PK etc. werden nicht berücksichtigt.

Code[Bearbeiten]

Im folgenden findest du den Code, du kannst das Skript online hier verwenden.

<html>
 <head>
 <script language="JavaScript">
  function dropratef(seelenverbindung) {
   var waffen=document.Seelenformular.awaf.value;

   /*Formel für Droprate hier ändern, wenn nötig. */
   var droprate=Math.sqrt(waffen*2)*Math.pow(1.005, seelenverbindung);
   return droprate;
  }
  function Seelenwirtschaft() {
   var preis=document.Seelenformular.preis.value;
   var repakost=document.Seelenformular.repagrund.value;
   var waffenkunst=document.Seelenformular.waffenkunst.value;
   var reparaturwissen=document.Seelenformular.reparaturwissen.value;
   var seelenverbindung=document.Seelenformular.seelenverbindung.value;
   //Test ob Eingaben valid (oder auch nicht, weil Ergebnis sich selbst beschwert)

   //Test, ob 1 oder 2 Felder leer, Tabellenerstellung danach anpassen
   var leereFelder = 0;
   if (document.Seelenformular.waffenkunst.value=="") {
    var waffenleer=true;
    leereFelder++;
   }
   if (document.Seelenformular.reparaturwissen.value=="") {
    var repaleer=true;
    leereFelder++;
   }
   if (document.Seelenformular.seelenverbindung.value=="") {
    var seelenleer=true;
    leereFelder++;
   }
   switch (leereFelder) {
    case 0:
     var droprate=dropratef(seelenverbindung);
     if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;
     var haltbar=(100-80*Math.pow(0.9, waffenkunst));
     var repakostpro=(repakost*Math.pow(0.9, reparaturwissen))/haltbar;
     var gewinn=preis*droprate/100-repakostpro;
     document.getElementById("ausgabe").innerHTML = "Droprate: "+Math.round(droprate*100)/100+"%, Gewinn pro Kill: "+Math.round(gewinn*100)/100+"gm";
    break;
    case 1:
     if (waffenleer) {
      var droprate=dropratef(seelenverbindung);
      if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;
      var ausgabe = "";
      ausgabe += "Droprate: "+Math.round(droprate*100)/100+"%<table border='1'><tr><th>Stufe Waffenkunst</th><th>Gewinn pro Kill</th></tr>";
      for (var i = 0; i<=30; i++) {
       var haltbar=(100-80*Math.pow(0.9, i));
       var repakostpro=(repakost*Math.pow(0.9, reparaturwissen))/haltbar;
       var gewinn=preis*droprate/100-repakostpro;
       ausgabe += "<tr><td>"+i+"</td><td>"+Math.round(gewinn*100)/100+"gm</td></tr>";
      }
      ausgabe += "</table>";
     }
     if (repaleer) {
      var droprate=dropratef(seelenverbindung);
      if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;
      var ausgabe = "";
      ausgabe += "Droprate: "+Math.round(droprate*100)/100+"%<table border='1'><tr><th>Stufe Reparaturwissen</th><th>Gewinn pro Kill</th></tr>";
      for (var i = 0; i<=30; i++) {
       var haltbar=(100-80*Math.pow(0.9, waffenkunst));
       var repakostpro=(repakost*Math.pow(0.9, i))/haltbar;
       var gewinn=preis*droprate/100-repakostpro;
       ausgabe += "<tr><td>"+i+"</td><td>"+Math.round(gewinn*100)/100+"gm</td></tr>";
      }
      ausgabe += "</table>";
     }
     if (seelenleer) {
      var ausgabe = "";
      var haltbar=(100-80*Math.pow(0.9, waffenkunst));
      var repakostpro=(repakost*Math.pow(0.9, reparaturwissen))/haltbar;
      ausgabe += "<table border='1'><tr><th>Stufe Seelenverbindung</th><th>pro Kill</th></tr>";
      for (var i = 0; i<=60; i++) {
       var droprate=dropratef(i);
       if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;       
       var gewinn=preis*droprate/100-repakostpro;
       ausgabe += "<tr><td>"+i+"</td><td>Droprate: "+Math.round(droprate*100)/100+"%<br/>Gewinn: "+Math.round(gewinn*100)/100+"gm</td></tr>";
      }
      ausgabe += "</table>";
     }
    document.getElementById("ausgabe").innerHTML = ausgabe;
    break;
    case 2:
     var droprate=dropratef(seelenverbindung);
     if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;
     var ausgabe = "";
     if (repaleer && waffenleer) {
      ausgabe += "Droprate: "+Math.round(droprate*100)/100+"%<table border='1'><tr><th>Stufe Reparaturwissen</th><th>Stufe Waffenkunst</th></tr>";
      ausgabe += "<tr><td></td>";
      for (var h = 0; h<=30;h++) {
       ausgabe += "<td>"+h+"</td>";
      }
      ausgabe += "</tr>";
      for (var i = 0; i<=30; i++) {
       ausgabe += "<tr><td>"+i+"</td>";
       for (var j = 0; j<=30; j++) {
        var haltbar=(100-80*Math.pow(0.9, i));
        var repakostpro=(repakost*Math.pow(0.9, j))/haltbar;
        var gewinn=preis*droprate/100-repakostpro;
        ausgabe += "<td>"+Math.round(gewinn*100)/100+"gm</td>";
       }
       ausgabe += "</tr>";
      }
      ausgabe += "</table>";
     } else {
      ausgabe += "<table border='1'><tr><th>Stufe Seelenverbindung</th>";
      if (waffenleer) ausgabe += "<th>Stufe Waffenkunst</th></tr>"; else ausgabe += "<th>Stufe Reparaturwissen</th></tr>";
      ausgabe += "<tr><td></td>";
      for (var h = 0; h<=30;h++) {
       ausgabe += "<td>"+h+"</td>";
      }
      for (var i = 0; i<=60; i++) {
       ausgabe += "<tr><td>"+i+"</td>";
       for (var j = 0; j<=30; j++) {
        var droprate=dropratef(i);
        if (document.Seelenformular.dropverringert.checked) droprate *= 0.05;
        if (waffenleer) var haltbar=(100-80*Math.pow(0.9, j)); else var haltbar=(100-80*Math.pow(0.9, waffenkunst));
        if (repaleer) var repakostpro=(repakost*Math.pow(0.9, j))/haltbar; else var repakostpro=(repakost*Math.pow(0.9, reparaturwissen))/haltbar;
        var gewinn=preis*droprate/100-repakostpro;
        ausgabe += "<td>Droprate: "+Math.round(droprate*100)/100+"%<br/>Gewinn: "+Math.round(gewinn*100)/100+"gm</td>";
       }
       ausgabe += "</tr>";
      }
      ausgabe += "</table>";
     }
    document.getElementById("ausgabe").innerHTML = ausgabe;
    break;
    case 3:
     document.getElementById("ausgabe").innerHTML = "Bitte höchstens 2 Felder leer lassen. Ich kann keine 3-dimensionalen Tabellen erstellen.";
    break;
   }
  }
 </script>
 </head>
 <form onSubmit="#" method="get" name="Seelenformular">
  <input type="text" name="preis" value="60" onchange="Seelenwirtschaft()">Marktwert Seelenkapsel</input><br/>
  <input type="text" name="awaf" value="0" onchange="Seelenwirtschaft()">Gesamtstärke deiner Angriffs- und Verteidigungswaffe</input><br/>
  <input type="text" name="repagrund" value="0" onchange="Seelenwirtschaft()">Standard-Reparaturkosten deiner Waffen zusammen</input><br/>
  <input type="checkbox" name="dropverringert" value="true" onchange="Seelenwirtschaft()"> Mit 95% geringerer Dropwahrscheinlichkeit</input><br/>
  <br/><br/>Von den folgenden dürfen 1-2 Felder leer sein, wenn du eine Tabelle erhalten möchtest.<br/><br/>
  <input type="text" name="waffenkunst" value="0" onchange="Seelenwirtschaft()">Stufe Waffenkunst (0-30)</input><br/>
  <input type="text" name="reparaturwissen" value="0" onchange="Seelenwirtschaft()">Stufe Reparaturwissen (0-30)</input><br/>
  <input type="text" name="seelenverbindung" value="0" onchange="Seelenwirtschaft()">Stufe Seelenverbindung (0-60)</input><br/><br/>
  <div id="ausgabe"></div>
 </form>
</html>

Vergleich mit Seelenkapsel-Strichliste[Bearbeiten]

A+V Droprate laut Strichliste Droprate laut des Rechners
15 5,376 5,48
16 7,116 5,66
18 6,435 6
19 9,565 6,16
25 7,543 7,07
28 8,145 7,48
65 15,695 11,402
66 17,727 11,49
120 15,789 15,492
180 16,86 18,974
202 16,634 20,01