Str, Atk, Def usw...
Hi Leute
Hat hier vielleicht jemand ne Ahnung wie Str, Dex, Int, Agi, Atk, Def, usw berechnen muss damit man halt weiß mit was für einer warscheinlichkeit man trifft odeer wieviel man den gegner abzieht, ...
Also ich meine jetzt besonders wenn man beispielsweise 5 Str hat. Die Waffe hat dann 12 Atk und der Gegner hat 10 Def. Wie berechnet man das da mit man weiß wie viel man so ca den Gegner schaden hinzufügt ?
Hoffe ihr versteht wie ich das meine ...
Danke schonmal im vorhinaus .. MfG Lukas
Hat hier vielleicht jemand ne Ahnung wie Str, Dex, Int, Agi, Atk, Def, usw berechnen muss damit man halt weiß mit was für einer warscheinlichkeit man trifft odeer wieviel man den gegner abzieht, ...
Also ich meine jetzt besonders wenn man beispielsweise 5 Str hat. Die Waffe hat dann 12 Atk und der Gegner hat 10 Def. Wie berechnet man das da mit man weiß wie viel man so ca den Gegner schaden hinzufügt ?
Hoffe ihr versteht wie ich das meine ...
Danke schonmal im vorhinaus .. MfG Lukas
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Hier der Code der die Berechnungen macht:
Dürfte auch ohne Ruby-Kentnisse verständlich sein ;)
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#-------------------------------------------------------------------------- # * Applying Normal Attack Effects # attacker : battler #-------------------------------------------------------------------------- def attack_effect(attacker) # Clear critical flag self.critical = false # Check if the attack hits (using hit rate) hit_result = (rand(100) < attacker.hit) # If hit occurs if hit_result == true # Calculate basic damage atk = [attacker.atk - self.pdef / 2, 0].max self.damage = atk * (20 + attacker.str) / 20 # Element correction self.damage *= elements_correct(attacker.element_set) self.damage /= 100 # If damage value is strictly positive if self.damage > 0 # Random chance of critical if rand(100) < 4 * attacker.dex / self.agi self.damage *= 2 self.critical = true end # Divide damage by 2 if guarding if self.guarding? self.damage /= 2 end end # Randomize damage a bit (15% in each direction) if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # Check of a hit occurs based on evasion eva = 8 * self.agi / attacker.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) end # If a hit did occur if hit_result == true # Try to remove states by shock remove_states_shock # Substract damage from HP self.hp -= self.damage # State change @state_changed = false states_plus(attacker.plus_state_set) states_minus(attacker.minus_state_set) # Seems like we missed else # Set damage to "Miss" self.damage = "Miss" # Clear critical flag self.critical = false end # End Method return true end |
zum Lesen den Text mit der Maus markieren
Dürfte auch ohne Ruby-Kentnisse verständlich sein ;)
Benutzerinformationen überspringen
Motto: Eines Tages werden auch Schildkröten fliegen, jawohl! Und wenn es nur wie bei Gamera ist! °^°
Das ist doch simples Englisch...
Nen durchschnittliches Wörterbuch wird dir da schon helfen können.
Nen durchschnittliches Wörterbuch wird dir da schon helfen können.
das wichtigste sind diese zeilen->
zuerst wird von deinem atk wert, die halbe pdef deines feindes abgezogen.
dann wird der atk wert mit deiner (stärke+20) mal genommen und anschließend
alles nochmal durch 20 geteilt.
in zahlen heißt das
200atk - (100pdef / 2) => 150
(150atk * ( 20+100str)) / 20 => 900 dmg
dazu kommt +-1-15% des dmgs.. aber das is vernachlässigbar.
|
|
Ruby Quellcode |
1 2 3 |
# Calculate basic damage atk = [attacker.atk - self.pdef / 2, 0].max self.damage = atk * (20 + attacker.str) / 20 |
zuerst wird von deinem atk wert, die halbe pdef deines feindes abgezogen.
dann wird der atk wert mit deiner (stärke+20) mal genommen und anschließend
alles nochmal durch 20 geteilt.
in zahlen heißt das
200atk - (100pdef / 2) => 150
(150atk * ( 20+100str)) / 20 => 900 dmg
dazu kommt +-1-15% des dmgs.. aber das is vernachlässigbar.
*hust*
In dem Fall ja. "self" ist eigentlich das letzte Überbleibsel an Zeigern in Ruby. Tatsächlich zeigt der nur auf die momentane Klasse/das momentane Modul und dessen Attribute/Fähigkeiten.
Klingt erstmal kompliziert, ist es ohne Programmierkenntnis vielleicht auch, aber ich habe das mal hinzugefügt, damit du dir nichts Falsches anlernst
Klingt erstmal kompliziert, ist es ohne Programmierkenntnis vielleicht auch, aber ich habe das mal hinzugefügt, damit du dir nichts Falsches anlernst

-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.




