Schau noch mal oben. Ich hab mich da beim Tippen verhuddelt und nen nachträglichen Edit reingehauen.batgilla wrote: Äh... was soll das Script genau für dich machen?
1. Zeile : Zufallszahl zwischen 0,0 und Gesamtschaden - entspricht dem Schaden in Zielregion 1, okay
2. Zeile : Zufallszahl zwischen 0,0 und Ergebnis aus Zeile 1 - wenn das Ergebnis aus Zeile 1 = Gesamtschaden - Schaden in Zielregion 1 ist, ergäbe das Sinn.
3. Zeile : Zufallszahl zwischen 0,0 und Ergebnis aus Zeile 2 - soll das jetzt der Schaden in Zielregion 3 sein? Warum ist das nicht einfach Gesamtschaden - Zielregion1 - Zielregion2?
1. Es soll eine Trefferregion auswählen.
Tut es. in Kombination mit diversen Excel-Formeln. ^^
2. Es soll einen Einzelschaden bestimmen.
Tut es auch - siehe oben. ^^
3. Es soll den Einzelschaden um den Rüstungsabzug in dieser Region senken.
Kein Makro von Nöten, das läuft über ne simple Formel.
4. Es soll die Anzahl an Treffern in der Trefferregion zufällig bestimmen.
Das passiert nicht. Die Anzahl der Treffer in verschieden Regionen ist Wurst, da die Trefferanzahl nur in Verbindung mit dem Schadensmodifikator steht. Der Gesamtschaden wird einfach zufällig aufgeteilt. Macht auch nicht weniger Sinn als die andere Variante, denn je nachdem wo ne Kugel im RL landet, macht sie mehr oder weniger Schaden. Durch die unkompliziertere Berechnung simuliere ich das quasi unbeabsichtigt noch mit.
5. Es soll den Schaden in dieser Trefferregion ausrechnen in dem es den realen Einzelschaden mit (1+ Anzahl der Treffer in dieser Zielregion/2) errechnet.
Erübrigt sich. Siehe oben, die ganze Herangehensweise ist anders.
6. Es soll 3mal durchlaufen, wobei am Ende 0 Kugeln übrig bleiben.
Da läuft nix durch, es gibt eine Berechnung und fertig. Die Zufallswürfe passieren alle simultan und ebenso simultan wird der Gesamtschaden auf die Zonen verteilt.
Das, was am Ende im Makro hängen bleibt, ist vergleichsweise wenig und harmlos. So sieht das Makro aus:
Code: Select all
Sub Fernkampf_Kampfmodul_1()
Range("B11").Value = Int((100 - 1 + 1) * Rnd + 1)
Range("N18").Value = Int((Range("L18").Value * 10 - Range("J18").Value * 10 + 1) * Rnd + Range("J18").Value * 10) / 10
Range("DF166").Value = Int((17 - 1 + 1) * Rnd + 1)
Range("DF167").Value = Int((17 - 1 + 1) * Rnd + 1)
Range("DF168").Value = Int((17 - 1 + 1) * Rnd + 1)
Range("DF169").Value = Int((17 - 1 + 1) * Rnd + 1)
Range("DE178").Value = Int((Range("N24").Value * 10 - Range("DF177").Value * 10 + 1) * Rnd + Range("DF177").Value * 10) / 10
Range("DE179").Value = Int((Range("DF179").Value * 10 - Range("DE177").Value * 10 + 1) * Rnd + Range("DE177").Value * 10) / 10
Range("DE180").Value = Int((Range("DF180").Value * 10 - Range("DE177").Value * 10 + 1) * Rnd + Range("DE177").Value * 10) / 10
End Sub
