• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

[1.10 / Technik] IAS FCR - die anderen breakpoints

Status
Für weitere Antworten geschlossen.

Snej2

Guest
IAS FCR - die anderen breakpoints

B I S H E R I G E Z U S A M M E N F A S S U N G

Ihr findet hier fcr fbr fhr tabellen sowie infos darüber wie sie zustande kommen
auch wie man einige ias tabellen berechnet (noch schwierigkeiten bei amazone barbar[1 hand waffen] druide zauberin)
das ist alles ein wenig technisch ;)

black_spy hat eine schöne übersicht über die animationen des spiels und den triggerwerten erstellt
http://people.freenet.de/black_spy/animdata.d2.txt
beim triggerwert wird die aktion ausgelöst (angriff / spruch)
vorher kann die aktion noch durch erzwungenes block bzw. hit recovery abgebrochen werden
beim teleportieren ist man schneller weg - dafür aber früher am ziel

die zentrale frage: kann man das auslösen des triggers durch ias fcr beschleunigen und werden die triggerwerte evtl. noch durch ein delay modifiziert

-----------------------------
letzte Änderungen:
09.02.04 zauberin mit Blitzschlag Kettenblitz aufgenommen
10.02.04 keine neuen breaks für sorc casts dafür stärkere
10.02.04 delay idee ad acta gelegt
12.02.04 baseframes aus animdata.d2 manchmal ungültig ?
--------------------------
Hier startet der eigentliche thread:

Beim lesen von http://www.planetdiablo.com/library/concept-castingspeed.htm ist mir die letzte Tabelle aufgefallen (die ist zwar nicht ganz korrekt aber egal)

bei einem Angriff (mit Waffe oder Spruch) gibt es eine einleitende Animation, ein kritisches Frame und eine ausklingende Animation
z.B. mit Waffe ausholen, Treffer, Waffe zurückführen

mir gehts es hier um die Bestimmung des kritischen Frames - also erst mal etwas Theorie:

[] heißt abrunden
ias / fcr ist die summe der stats auf den items
eias=[ias*120/(ias+120)]+weaponspeedmodificator+skill
efcr=[fcr*120/(fcr+120)]
attack speed=[256*(100+eias)/100]
cast speed=[256*(100+efcr)/100]
attack speed bzw. cast speed sei im folgenden speed
jedes [speed*n/256] frame wird dargestellt solange dieses frame in der animation vorhanden ist (n=1;2;3...)

Beispiel 1: 105% fcr / 13 frames -> 1 3 4 6 7 9 10 12 (Animation geht über 8 frames)
Beispiel 2: 125% fcr / 13 frames -> 1 3 4 6 8 9 11 12 (Animation geht über 8 frames)

Sagen wir die obige Quelle hat recht
(edit: hat sie aber nicht /edit)
und Teleport wirkt nach dem 8.ten frame der 13 frame langen Animation (dem kritischen frame)
im Beispiel 1 steht man 6 frames noch an Ort und Stelle im Beispiel 2 jedoch nur 5 frames
man kann zwar insgesamt nicht schneller teleportieren (hintereinander), aber man ist schneller weg

125% fcr ist also ein "anderer break" für 13 frames mit kritischem 8.ten frame
weitere andere breaks mit 13 frames sind:
86% fcr (9.tes frame )
113% fcr (11.tes frame)

Der Ansatz ist natürlich nicht nur für Zauberinnen interessant.
Angenommen zwei Nahkämpfer klicken gleichzeitig mit gleicher Animationslänge, aber Nr.1 ereicht sein kritisches frame 1 frame eher.
So hat er die Chance Nr.2 in eine Block oder Recovery Animation zu zwingen worauf der Angriff von Nr.2 ungenutzt verpufft.

Das sind alles bisher theoretische Überlegungen, also seit ihr aufgerufen die kritischen frames in Bezug auf die base-Animation (die mit 0 ias/0 fcr) herauszufinden und hier zu posten.

Ist das kritische frame das letzte der Animation bleibt alles beim Alten.

CU Snej
 
ah, danke endlich... hab hier vor 1-2 wochen nach sowas gefragt, aber da wusste niemand was von nix *mal durcharbeit*
 
da wir schon beim thema frames sind noch eine kurze Betrachtung von fbr und fhr mit einer abschließenden Frage dazu

im Archiv findet man einen thread der zu http://www.theamazonbasin.com/d2/forums/index.php?act=ST&f=35&t=27419 verlinkt wo Rivo die Formeln hierzu beschreibt

analog zu fcr - nur die eine 100 wird durch 50 ersetzt
efhr=[fhr*120/(fhr+120)]
recovery speed=[256*(50 +efhr)/100]

efbr=[fbr*120/(fbr+120)]
block speed=[256*(50 +efbr)/100]
(Ausnahme Heiliger Schild wo wieder 100 genommen wird)

jedes [speed*n/256] frame wird dargestellt solange dieses frame in der animation vorhanden ist (n=1;2;3...)

Beispiel 1: 85% (Animation mit 8 frames) - > 0 1 2 3 4 5 6 7 8
Beispiel 1: 86% (Animation mit 8 frames) - > 1 2 3 4 5 6 7 8

Dieser break von 86% ist in allen Tabellen angegeben (also zählt das frame 0 obwohl ja nicht vorhanden zur Animation hinzu)
[keine Ahnung was statt dessen angezeigt wird - zum Angriff kanns ja nicht mehr zählen da es evtl. das kritische frame wäre und dann würde man keinen Unterschied zwischen 85% und 86% merken - ich nehm mal an das das 1.te frame genommen wird]

Beispiel 3: 0% (Animation mit 8 frames) - > 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8
braucht demnach 16 frames
die breaks sind bei 5% 9% 14% 20% 30% 42% 60% 86% 142% aber ich komm auf ein frame mehr

eine Möglichkeit auf 15 frames zu kommen wäre das das 0.te als 1. tes zählt und sich dadurch die Indizierung der frames verschiebt und diese so lange angezeigt werden solange frames vorhanden sind
dann gäbe es aber keinen Unterschied zwischen 85% und 86% es sei denn die animation wird auf 7 frames verkürzt was den 142% break auf 152% verschiebt

Also was gilt hier (an die Experten u.a.) ?
a) die recovery/block frames sind ein frame länger als in den Tabellen angegeben
b) es gibt kein break zwischen 85% und 86%
c) der break von 142% ist erst bei 152%
d) oder was ganz anderes

Ich glaube an Variante a). Aber glauben zählt nicht ;)

CU Snej
 
Also mit den internen Zahlen kenn ich mich nicht gut aus, aber zwei Stellen hab ich gefunden:
Snej schrieb:
im Beispiel 1 steht man 6 frames noch an Ort und Stelle im Beispiel 2 jedoch nur 5 frames
man kann zwar insgesamt nicht schneller teleportieren (hintereinander), aber man ist schneller weg
Mag sein dass man innerhalb des einen Teleports schneller weg ist, aber dafür steht man dann am neuen Ort länger, bis man dort den 2. Teleport gemacht hat steht man immer gleich lang, egal zu welchem Zeitpunkt innerhalb des Teleports man den Ort wechselt. Maximal für einzelne, aus der Monstergruppe herausrettende Teleports könnte das wichtig sein.

Das gleiche gilt bei
>>Angenommen zwei Nahkämpfer klicken gleichzeitig mit gleicher Animationslänge, aber Nr.1 ereicht sein kritisches frame 1 frame eher.
So hat er die Chance Nr.2 in eine Block oder Recovery Animation zu zwingen worauf der Angriff von Nr.2 ungenutzt verpufft.

Es ist schon sehr unwahrscheinlich, dass beide im selben Frame anfangen draufzuschlagen. Genauso wahrscheinlich ist es andersrum, dass das verfrühte Angreifen dadurch noch vom anderen verhindert wird, weil der zeitliche Abstand nicht groß genug ist. Im Endeffekt gilt das gleiche wie beim Teleport oben: Alle Angriffsframes verschieben sich um 1, was nutzlos ist.
 
@mfb
mag sein das für dich alles beim alten bleibt

noch ein Beispiel: früheres Casten von FO (ab dem Zeitpunkt wo man den Gegner sieht) führt zu früherem Verlangsamen des Gegners (er braucht länger bis man selbst in reichweite ist) und außerdem ist man schneller wieder weg durch teleport (das macht dann schon mehere frames aus und nicht nur eines)

für eine hit und run taktik ist es also schon wichtig zu wissen wo die breaks liegen, da man es sich leisten kann später zu reagieren um die gleiche performance zu haben oder man hat eben Vorteile

Angenommen zwei Nahkämpfer prügeln aufeinander ein mit 10 fpa dann gibt es eine 10% Chance das beide gleichzeitig klicken
und einen 10% Vorteil auf den ersten Schlag würde ich nicht ignorieren

Irgendwann muss das Programm ja entscheiden wann einer von beiden getroffen wird. Ich meine halt das dies nach dem kritischen frame geschieht - und der char der es früher erreicht hat Vorteile

CU Snej

Edit: wem die Formeln zu kompliziert erscheinen

Kleine Excel-Anleitung zur Visualisierung:

A1="8" (=base) // nur Vergleichswert
B1="50" (50 bei fbr/fhr - 100 bei fcr[bzw. fbr mit HS] - 100+wpm+skill bei ias)
C1="1" D1="2" E1..V1 durch rechtsziehen von C1/D1 ergibt 3..20
Fenster unter erster Zeile fixieren
A2="0" A3="1" A4..A202 durch runterziehen A4..A202 ergibt 2..200 (die fcr fbr fhr ias werte)
B2="=ABRUNDEN((B$1+ABRUNDEN(A2*120/(A2+120);0))/100*256;0)"
C2="=ABRUNDEN($B2*C$1/256;0)"
C2 markieren und bis V2 rechtsziehen
B2..V2 markieren und bis Zeile 202 runterziehen

die frames <base und das erste =base werden angezeigt (wenn kein =base vorhanden das erste >base)
in der ersten Zeile kann man so ablesen wie lang die Sache dauert


Edit2: zu der Frage in meinem 2.ten Post hier:

e) das erste Frame wird bei fhr/fbr übersprungen und es wird gleich mit dem 2.ten darzustellenden Frame angefangen (ohne zu überprüfen, ob auch ein 0.tes frame überhaupt auftaucht - also immer)

klingt auch plausibel (da dann kein Problem mit einem 0.ten Frame auftaucht)
Was gleich zu der Frage nach Waffen mit negativem Modifikator (also langsamen Waffen) führt:
ohne ias und skill hat man dort auch ein 0.tes Frame

f) unplausibel ist, das das game Rivo´s Formel benutzt um die gesamte Länge zu bestimmen und dann noch mal gleiche Berechnungen anstellt um die darzustellenden Frames zu bestimmen
insbesondere ist aufrunden unplausibel
 
ich mach mal Doppelpost, denn sonst müsste ich noch so einen technischen thread aufmachen und das meiste wiederholen

Nochmal zu meinem Widerspruch mit den FHR Tabellen z.B. Sorc (jetzt gelöst)

laut Archiv:
Code:
Zauberin            
--------------        
% FHR   Frames         

   0      15            
   5      14               
   9      13           
  14      12          
  20      11          
  30      10           
  42       9            
  60       8            
  86       7                         
 142       6            
 280       5                              
1480       4

kleine Wiederholung:
Motiv ist, das es Zustände eines Chars gibt (Stehen / Gehen / Rennen / Angreifen / Casten / Blocken / Getroffen werden).
Dies muss ja in frames umgesetzt werden.
Da dachte ich mir das das alles fast gleich berechnet wird (über den speed Ansatz s.oben)
den Parameter der sich immer ändert nenn ich mal offset (in Excel bei B1)
und das klappt auch ganz gut soweit z.B. (base=8 offset=50) ergibt:

Code:
0:   0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9
4:   0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9
5:   0 1 1 2 2 3 3 4 4 5 5 6 7 7 8 8 9
8:   0 1 1 2 2 3 3 4 5 5 6 6 7 7 8 9
9:   0 1 1 2 2 3 4 4 5 5 6 6 7 8 8 9
13:  0 1 1 2 3 3 4 4 5 6 6 7 7 8 9
14:  0 1 1 2 3 3 4 4 5 6 6 7 8 8 9
19:  0 1 1 2 3 3 4 5 5 6 7 7 8 9
20:  0 1 2 2 3 4 4 5 6 6 7 8 8 9
29:  0 1 2 2 3 4 5 5 6 7 7 8 9
30:  0 1 2 2 3 4 5 5 6 7 8 8 9
41:  0 1 2 3 3 4 5 6 7 7 8 9
42:  0 1 2 3 4 4 5 6 7 8 8 9
59:  0 1 2 3 4 5 6 7 7 8 9
60:  0 1 2 3 4 5 6 7 8 8 9
85:  0 1 2 3 4 5 6 7 8 9
86:  1 2 3 4 5 6 7 8 9
132: 1 2 3 4 5 6 7 8 10
133: 1 2 3 4 5 6 7 9
141: 1 2 3 4 5 6 7 9
142: 1 2 3 4 5 6 8 9
151: 1 2 3 4 5 6 8 9
152: 1 2 3 4 5 7 8 9

geht man davon aus, das frames so lange angezeigt werden bis das erste =base bzw. >base ist, so bekommt man genau die breaks aus der tabelle
das ist die tatsache die mich so überzeugt
mit keinem anderen base, offset, formel kommt man auf diese werte

Welche frames werden nun angezeigt und was ist frame 0?
Ich hatte schon verschiedene Vermutungen angegeben. Gehen wir sie noch einmal durch
a) alle frames bis einschließlich dem =base bzw. >base frame werden angezeigt
-> in der Tabelle wird die frames Anzahl um 1 erhöht
Was wird fuer frame 0 angezeigt ?
b) ein frame 0 wird nie angezeigt
-> es gibt keinen break zwischen 85 und 86
c) frame 8 oder größer wird nie angezeigt - das macht folgende Zuornung möglich: 0 -> frame 1 .. 7 -> frame 8
[das mit der früher erwähnten Verschiebung von 142 auf 152 muß nicht sein - war falsche denke von mir]
e) das erste berechnete frame wird unterschlagen
Was wird z.B. bei 141 für frame 9 angezeigt?
f) =c) denn es muss die Länge nicht vorher berechnet werden, da man ja ein Abbruchkriterium hat

Ergebnis: Variante c) stimmt mit der Tabelle überein
damit ist dann bei fbr/fhr alles ok

Nochmal Edit:

ABER: wenn die Grundannahme stimmt das alle frame Berechnungen gleich ablaufen und sich nur in base, offset, ausgangswert unterscheiden , könnte man annehmen, das der speed calc leicht fehlerhaft sei

Beispiel: Paladin mit Axt (base=14 offset=100-10=90 ias=0) ergibt
0 1 2 3 4 5 6 7 8 8 9 10 11 12 13 (14) also 15 frames pro Angriff
der speed calc sagt 16
Paladin mit Handaxt (base=14 offset=100 ias=0) ergibt
1 2 3 4 5 6 7 8 9 10 11 12 13 (14) also 13 frames pro Angriff
der speed calc sagt 14

hier wird jedoch base auf base+1 gesetzt, so dass man auch 16 bzw. 14 erhält
Frage was wird der Zahl base zugeordnet bei Zuordnung 0 -> frame 1 .. (base-1) -> frame base
bzw. was wird der Zahl 0 zugeordnet bei bei Zuordnung 1 -> frame 1 .. base -> frame base ?

Edit 2:
Für das letzte Zeitintervall n der Darstellung der Animation gilt:
n*speed/256 < base und (n+1)*speed/256>=base
also n<256*base/speed und n+1 >=256*base/speed kurz: n < 256*base/speed <= n+1
also n+1 = {256*base/speed} bzw. n={256*base/speed}-1 --- {} heißt aufrunden
womit hiermit die Formel für die Dauer der Darstellung der Animation -- also für n -- nochmal bestätigt ist
(base = Länge der abgespeicherten Animation für fbr/fhr
base = Länge der abgespeicherten Animation +1 für fcr/ias)


Bis danne Snej
 
heute beschäftige ich mich mal damit, wie man die fcr werte aus dem speed ansatz erhält (offset ist also 100)
vorweg werde ich erstmal base um 1 erhöhen
damit löse ich das zuordnungsproblem indem ich ein frame 0 erhalte, das nur dann angezeigt wird wenn efcr negativ wird also gar nicht

solange das berechnete frame [speed*n/256] < base ist wird es angezeigt

für base=20 erhält man:
19 frames - 0 fcr / 18 - 7 / 17 - 14 / 16 - 22 / 15 - 32 / 14 - 48 / 13 - 68 / 12 - 99 / 11 -152
das sind die werte für die amazone

für base=19 erhält man:
18 frames - 0 fcr / 17 - 7 / 16 - 15 / 15 - 23 / 14 - 35 / 13 - 52 / 12 - 78 / 11 - 117 / 10 - 194
das sind die werte von denen man früher glaubte sie gelten für den druiden

für base=17 erhält man:
16 frames - 0 fcr / 15 - 8 / 14 - 16 / 13 - 27 / 12 - 42 / 11 - 65 / 10 - 102 / 9 - 174
das sind die werte für die assassine

für base=16 erhält man:
15 frames - 0 fcr / 14 - 9 / 13 - 18 / 12 - 30 / 11 - 48 / 10 - 75 / 9 - 125
das sind die werte für den paladin und den totenbeschwörer

für base=14 erhält man:
13 frames - 0 fcr / 12 - 9 / 11 - 20 / 10 - 37 / 9 - 63 / 8 - 105 / 7 - 200
das sind die werte für den barbaren und die zauberin


Einige leutz haben nun festgestellt das die tabelle für den Druiden in bärform welcher schockwelle casten kann fehlt und haben sich daran gemacht dies in testreihen herauszufinden
dabei wurde auch gleich festgestellt das die obige tabelle für den druiden nicht stimmte
erwähnt seien hier harpagornis und gulasch
http://planetdiablo.eu/forum/showthread.php?s=&threadid=474913
http://planetdiablo.eu/forum/showthread.php?s=&threadid=497703

woran liegt dies nun das der druide so aus der rolle fällt
dazu habe ich mal auf byte 2 CCscXXX.cof Dateien geschaut (CC=am für amazone, CC=ai für assasine, CC=dz für druide, CC=ba für barbar, CC=ne für totenbeschwörer, CC=so für zauberin CC=pa für Paladin)
und erhielt amazone 20, assasine 17, druide 15!!!, barbar 14, totenbeschwörer 16, zauberin 14, und paladin 16)


die 14 frames des druiden müssen also noch auf 18 skaliert werden :eek:
erstmal der erste Teil der Berechnung als Wiederholung
efcr==[fcr*120/(fcr+120)]
cast speed=[(100+efcr)*256/100]
hier bietet es sich an zu skalieren

Division durch 100 ist teuer deswegen wollen wir durch 256 teilen
in cast speed=[(100+efcr)*x/256] hab ich mal frecherweise x so gewählt das die werte mit denen von gulasch übereinstimmen

x=532 ergibt:
18 frames - 0 fcr / 17 - 4 / 16 - 10 / 15 - 19 / 14 - 30 / 13 - 46 / 12 - 68 / 11- 99 / 10 - 163
das sind die werte für den elementardruiden

x=583 ergibt:
16 frames - 0 fcr / 15 - 7 / 14 - 15 / 13 - 26 / 12 - 40 / 11 - 63 / 10 - 99 / 9 - 163
das sind die werte für den druiden in bärform also für schockwelle
(bis auf die 7 fcr aber gulasch hatte da selbst noch seine zweifel)

bis zum nächsten mal
Snej
 
hmm wo sind denn nu die framebreakes bei zb. einer bow ama? gibts über 120% ias noch einen weiteren breake?
 
@ Darthfader
die anderen breaks sind dort wo die frames der animation stehen, die eine aktion auslösen (kritisches frame)
bei einer ama bedeutet das, das der pfeil 1 frame früher abgeschossen wird - die länge der animation bleibt hingegen konstant
Edit: will sagen man verkürzt den ping um 1000/25=40 - ist also eher was für pvp
/Edit

soweit die idee - ich bin auch erst dabei mir die theorie der frames anzueignen
meine erkenntnisse poste ich hier um 1. den überblick nicht zu verlieren (einiges wird klarer wenn man es versucht für andere nachvollziehbar aufzuschreiben) und 2. in der hoffnung das es auch andere interessiert und man sich beim rantasten (in der theorie oder letztlich bei der bestimmung der kritischen frames) hilft

@ all
mit meinem letzten post hatte ich versucht darzulegen wann welches frame der cast animationen bei wieviel fcr angezeigt wird
das macht es nun sehr einfach die anderen breaks zu bestimmen, wenn man das kritische frame kennt

bei ias sieht die sache schwieriger aus
vorweg erst mal eine tabelle mit base werten wie sie in den cof Dateien
CCa1XXX.cof und CCa2XXX.cof (soweit vorhanden) stehen

Code:
 XXX 	Assa	Ama	Barb	Druide	Necro	Pala	Sorc

1hs	15 / 15	16 / 16	16 / 16	19 / 19	19 / 19	15 / 15	20 / 20
1ht	15 / 15	15 / 15	16 / 16	19 / 19	19 / 19	17 / 17	19 / 19
1js			16 / 16				
1jt			16 / 16				
1ss			16 / 16				
1st			16 / 16				
2hs	23 / 23	20 / 20	18 / 18	21 / 21	23 / 23	18 / 19	24 / 24
2ht	23 / 23	18 / 18	19 / 19	23 / 23	24 / 24	20 / 20	23 / 23
bow	16	14	15	16	18	16	17
ht1	11 / 12						
ht2	11 / 12						
hth	11 / 12	13 / 13	12	16	15 / 15	14 / 14	16 / 16
stf	19 / 19	20 / 20	19 / 19	17 / 17	20 / 20	18 / 18	18 / 18
xbw	21	20	20	20	20	20	20

ob bei der assasine beide animationen für ihre spezialwaffen verwendet werden, weiß ich nicht
Edit: doch ist im speed calc berücksichtigt
/Edit
für 2hand schwerter beim paladin ist das ja bekannt

auch werden vielleicht wieder skalierungen auftreten (in welcher form auch immer)
das beispiel beim druiden oben hat ja gezeigt das sich die breaks drastisch unterscheiden können wenn man annimmt eine animation ist 19 frames lang gegenüber der annahme eine animation wurde von 15 frames auf 19 frames skaliert (das 0.te wird nicht gezeigt deswegen oben die zahlen 18 bzw. 14)

@tub
vielleicht kannst du mal deine tabelle als vergleich posten


viel spaß noch und



zocken nicht vergessen ;)

CU Snej

PS: werde heute noch die block und get hit Tabellen hier rein editieren

hier sind sie:
aus CCblxxx.cof, CCghxxx.cof und die tritte (für die Assasine) aus CCkkxxx.cof

Code:
	Assa	Ama	Barb	Druide	Necro	Pala	Sorc
bl	3	3	4	6	6	3	5
gh	5	6	5	7	7	5	8
kk	13	12	12	12	12	12	12

Leider hab ich keine dcc bzw. cof Dateien für die verwandelten Druiden (Wolf/Bär) gefunden
 
@Snej:

Die Anims von der Druiden-Wandelform Werbär sind in der d2exp.mpq unter:

data/global/monsters/tg

Die vom Wolf sind unter:

data/global/monsters/40

Die entsprechenden .cof Dateien sollten da auch liegen, falls nicht findest du die funktionellen Frames glaube auch nochmal in der animdata.d2 (data/global/).
 
Wenn ich das Beispiel mit 10fpa aufgreife und mit 5frames für die hit recovery rechne....
Dann kann es sein dass dein früheres Angreifen dir den Nachteil bringt, dass der andere 1 frame früher sich "erholt" hat und dadurch seinen Angriff "grade so" ausführen kann. Die Chance ist 10%, genau so groß wie die Chance, dass es andersrum ist.
 
@mfb
wo du recht hast hast du recht :keks:
wie schon oben rein editiert: die sache ist am ehesten mit einem um 40 besseren ping zu vergleichen


so hab jetzt mal mit speed calc verglichen und folgende zuordnung gemacht
1hs: 1H Schlagwaffe z.B.Altes Schwert
1ht: 1H Stoßwaffe z.B.Dolchmesser
2hs: 2H Schwert z.B. Balrogklinge
2ht: 2H Stoßwaffe z.B. Dreizack
bow: Bogen z.B. Diamantbogen
hth: Wurfwaffe z.B. Kurzpfeil
stf: normale 2H Waffe z.B. Schlagaxt
xbw: Armbrust: z.B. Armbrust

damit ergibt sich bei 0 ias folgende Tabelle (im vergleich mit der oberen)

Code:
	Assa		Ama		Barb		Druide		Necro		Pala		Sorc
1hs	15 / 15 -> 14	16 / 16 -> 13	16 / 16 -> 13	19 / 19 -> 20	19 / 19 -> 18	15 / 15 -> 14	20 / 20 -> 17
1ht	15 / 15 -> 14	15 / 15 -> 12	16 / 16 -> 13	19 / 19 -> 20	19 / 19 -> 18	17 / 17 -> 16	19 / 19 -> 16	
2hs	23 / 23 -> 22	20 / 20 -> 17	18 / 18 -> 17	21 / 21 -> 21	23 / 23 -> 22	18 / 19 -> 17,5	24 / 24 -> 21
2ht	23 / 23 -> 22	18 / 18 -> 15	19 / 19 -> 18	23 / 23 -> 23	24 / 24 -> 23	20 / 20 -> 19	23 / 23 -> 20
bow	16 -> 15	14 -> 13	15 -> 14	16 -> 15	18 -> 17	16 -> 15	17 -> 16
hth	11 / 12 -> 14	13 / 13 -> 15	12 -> 13	16 -> 17	15 / 15 -> 19	14 / 14 -> 15	16 / 16 -> 19
stf	19 / 19 -> 18	20 / 20 -> 17	19 / 19 -> 18	17 / 17 -> 17	20 / 20 -> 19	18 / 18 -> 17	18 / 18 -> 15
xbw	21 -> 20	20 -> 19	20 -> 19	20 -> 19	20 -> 19	20 -> 19	20 -> 19

bow und xbw sind ok (1 frame weniger da das 0.te nicht gezeigt wird)
wurfwaffen laß ich mal außen vor
genauso den druiden der sich ja in wolf/bär verwandeln kann, wo dann evtl. andere werte gelten
Assa / Necro und Pala sind dann ok
mit der Sorc wird man kaum auf ias gehen

bleiben Barb und Ama wo ich andere breaks vermute
Barb: Skalierung bei Einhandwaffen
Ama: Skalierung bei allen Nahkampfwaffen
(jedenfalls halte ich die Tabelle für z.B. 1h schwerter bei der amazone [mit 0 waffen ias] für falsch
d.h. nicht: 0 9 20 37 63 105 200)
edit: nun nicht mehr nachdem ich festgestellt hab das base=14 und nicht 16 durch verändern des
speedparameters in animdata.d2 und chars_cof.d2
/edit

CU Snej


Edit: thx 2 Red Havok
hier noch die Länge der Animationen für Wolf und Bär
Code:
	a1	a2	sc	bl	gh
wolf	13	13	11	5	4
bär	12	12	10	5	5
Edit2: hab pala und druide in EAnimData.d2 überprüft
es sind die gleichen werte
 
Ein Lobgesang auf Red Havoc
Er hat mich auf die richtige Spur gebracht

Erstmal die fcr Tabellen

Amazone: 19 frames - 0 fcr / 18 - 7 / 17 - 14 / 16 - 22 / 15 - 32 / 14 - 48 / 13 - 68 / 12 - 99 / 11 -152

Assasine: 16 frames - 0 fcr / 15 - 8 / 14 - 16 / 13 - 27 / 12 - 42 / 11 - 65 / 10 - 102 / 9 - 174

Paladin: 15 frames - 0 fcr / 14 - 9 / 13 - 18 / 12 - 30 / 11 - 48 / 10 - 75 / 9 - 125

Totenbeschwörer: 15 frames - 0 fcr / 14 - 9 / 13 - 18 / 12 - 30 / 11 - 48 / 10 - 75 / 9 - 125

Barbar: 13 frames - 0 fcr / 12 - 9 / 11 - 20 / 10 - 37 / 9 - 63 / 8 - 105 / 7 - 200

Zauberin: 13 frames - 0 fcr / 12 - 9 / 11 - 20 / 10 - 37 / 9 - 63 / 8 - 105 / 7 - 200

Zauberin (Blitzschlag/Kettenblitz):
19 frames - 0 fcr / 18 - 7 / 17 - 15 / 16 - 23 / 15 - 35 / 14 - 52 / 13 - 78 / 12 - 117 / 11 - 194

Druide: 18 frames - 0 fcr / 17 - 4 / 16 - 10 / 15 - 19 / 14 - 30 / 13 - 46 / 12 - 68 / 11- 99 / 10 - 163

Bär: 16 frames - 0 fcr / 15 - 7 / 14 - 15 / 13 - 26 / 12 - 40 / 11 - 63 / 10 - 99 / 9 - 163

Wolf: 16 frames - 0 fcr / 15 - 6 / 14 - 14 / 13 - 26 / 12 - 40 / 11- 60 / 10 - 95 / 9 - 157

Wie bin ich drauf gekommen?

in der EAnimData.d2 stehen die framezahlen der Animationen genau wie in den cof Dateien (=base)
aber diese werden jedoch von einem Parameter gefolgt (=slow)
bei den fcr relevanten Dateien - die mit sc in der mitte - sind dies:
D0 00 = 208 für den Druiden
A8 00 = 168 für den Wolf
98 00 = 152 für den Bär
00 01 = 256 für alle anderen

solange das berechnete frame [speed*n/256] < base ist wird es angezeigt
wobei
efcr=[fcr*120/(fcr+120)]
offset=100
cast speed=[(offset+efcr)*slow/100]
(die vorherigen Überlegungen waren zu sehr darauf aus, Übereinstimmung mit gulasch´s Zahlen zu bekommen - aber so klappts auch)

bei Blitzschlag/kettenblitz der zauberin wird ein frame länger dargestellt für die dauer von 6 frames damit ergibt sich in diesem fall: base=14-1+6=19
(das ist noch etwas unbefriedigend da ich nicht weiß wo die 6 herkommt aber ich hab mal gelesen das einen der blitz der seelen im weltensteinturm auch mehrmals trifft)
für Inferno gilt im prinzip das gleiche nur da wird die dauer nicht auf 6 frames erhöht sondern sie hängt davon ab wie lang man die maustaste drückt bzw. wann das mana alle ist

zur Erinnerung:
n={256*base/speed}-1 ist die Anzahl der aus der Animation dargestellten frames - also die Dauer
so kann man leicht aus fcr die Dauer berechnen
und nochmal die base werte von oben
amazone 20, assasine 17, druide 15, barbar 14, totenbeschwörer 16, zauberin 14, paladin 16, wolf 11, bär 10


ias scheint leider ein anderer fall zu sein, zumindest ist an den stellen wo ich nachgeschaut habe immer slow=256


CU Snej
 
btw die slow werte findet man auch in den cofs bei position 24 (base bei position 1)

komm ich mal zu block:

offset ist 50 (außer bei heiligem schild - dort 100)
solange das berechnete frame [speed*n/256] < base ist wird es angezeigt
wobei
efbr=[fbr*120/(fbr+120)]
block speed=[(offset+efbr)*slow/100]
dauer={256*base/speed}-1
[] - abrunden / {} - aufrunden



die base und slow werte entnehmen wir den cof dateien

Code:
	Assa	Ama	Barb	Druide	Necro	Pala	Sorc	Wolf	Bär
base	3	3	4	6	6	3	5	5	5
									
1hs	256	88	256	256	256	256	256		
1ht (ht1 ht2)	256	256	256	256	256	256	256		
2hs						168			
2ht						256			
hth	256	256	256	256	256	256	256	256	200

wobei uns auffällt das ein pala mit 2hand-schwert bzw. 2hand-stoßwaffe nicht blocken kann
also ignorieren wir das



alle breaks die nun folgen gelten bis 200 fbr

Paladin(mit Heiliger Schild): 2 frames - 0 fbr / 1 - 86

Assasine/Amazone(ohne 1hand-schwert)/Paladin(ohne Heiliger Schild):
5 frames - 0 fbr / 4 - 13 / 3 - 32 / 2 - 86

Amazone (mit 1hand-schwert):
17 frames - 0 fbr / 16 - 4 / 15 - 6 / 14 - 11 / 13 - 15 / 12 - 23 / 11 - 29 / 10 - 40 / 9 - 56 / 8 - 80 / 7- 120 / 6 - 200

Barbar: 7 frames - 0 fbr / 6 - 9 / 5 - 20 / 4 - 42 / 3 - 86

Zauberin/Wolf: 9 frames - 0 fbr / 8 - 7 / 7 - 15 / 6 - 27 / 5 - 48 / 4 - 86 / 3 - 200

Totenbeschwörer/Druide: 11 frames - 0 fbr / 10 - 6 / 9 - 13 / 8 - 20 / 7 - 32 / 6 - 52 / 5 - 86 / 4 - 174

Bär: 12 frames - 0 fbr / 11 - 5 / 10 - 10 / 9 - 16 / 8 - 27 / 7 - 40 / 6 - 65 / 5 - 109


wenn man diese werte mit den block werten von http://www.namelezz.planetsmilies.com/tables.html vergleicht, stellt man keinen unterschied fest
also hat sich schon mal jemand eine formel erarbeitet oder sehr viel getestet - hut ab (ersteres legen die hohen zahlen für fbr nahe)

Edit: es wurde gemoddet - die frames wurden eingefärbt (mehere farben - max. 8 bei block/recovery) so dass eine änderung in der anzeige wahrscheinlich bewirkte, das anders eingefärbte frames angezeigt wurden. dazu musste man wahrscheinlich testen welche frames sich verschieben (andere farben) oder rausfliegen (fehlende farben). dann brauchte man block rate nur noch auf einen beliebigen wert setzen. mit binärer suche sind die werte dann schnell gefunden.
Dabei frag ich mich wie man z.B. 3 3 4 von 3 4 4 bzw. 3 4 unterscheidet ?
/Edit


mal sehen vllt. reich ich noch die werte für hit recovery nach
wie schon erwähnt ist die methode bei ias nicht anwendbar
da bleibt nur testen für die zu skalierenden Animationen
oder mir fällt noch was ein :fight:

CU Snej

Wie angekündigt die hit recovery tabellen

erst wieder die base und slow werte
(nur die slow werte die von 256 abweichen)
Code:
	Assa	Ama	Barb	Druide	Necro	Pala	Sorc	Wolf	Bär
gh	5	6	5	7	7	5	8	4	5

1hs				248
2ht						192
hth									184
stf						192
mit offset = 50 und der analogen obigen Berechnung erhält man:


Wolf: 7 frames - 0 fhr / 6 - 9 / 5 - 20 / 4 - 42 / 3 - 86

Assasine/Barbar/Paladin(ohne 2hand nahkampf waffen ausser 2hand schwertern):
9 frames - 0 fhr / 8 - 7 / 7 - 15 / 6 - 27 / 5 - 48 / 4 - 86 / 3 - 200

Paladin(mit 2hand nahkampf waffen ausser 2hand schwertern):
13 frames - 0 fhr / 12 - 3 / 11 - 7 / 10 - 13 / 9 - 20 / 8 - 32 / 7 - 48 / 6 - 75 / 5 - 129

Bär: 13 frames - 0 fhr / 12 - 5 / 11 - 10 / 10 - 16 / 9 - 24 / 8 - 37 / 7 - 54 / 6 - 86 / 5 - 152

Amazone: 11 frames - 0 fhr / 10 - 6 / 9 - 13 / 8 - 20 / 7 - 32 / 6 - 52 / 5 - 86 / 4 - 174

Totenbeschwörer/Druide(ohne 1hand schwert):
13 frames - 0 fhr / 12 - 5 / 11 - 10 / 10 - 16 / 9 - 26 / 8 - 39 / 7 - 56 / 6 - 86 / 5 - 152

Druide mit 1hand schwert:
14 frames - 0 fhr / 13 - 3 / 12 - 7 / 11 - 13 / 10 - 19 / 9 - 29 / 8 - 42 / 7 - 63 / 6 - 99 / 5 - 174

Zauberin: 15 frames - 0 fhr / 14 - 5 / 13 - 9 / 12 - 14 / 11 - 20 / 10 - 30 / 9 - 42 / 8 - 60 / 7 - 86 / 6 - 142



die Tabellen hab ich so noch nicht gesehen (na gut in obigem link fehlt nur die zweite Tabelle für den Paladin)
diese steht widerum in den tabellen von crashmaker im palatempel dem aber die wandelformen fehlen
das mit der 120 muss er sich vertippt haben - ich halte an den 129 fest

- probierts aus :angel:
 
Eanimdata.d2 wird AFAIK laut Isolde nicht benutzt, sondern nur animdata.d2.

Ohne mir deine Rechnungen jetzt angeschaut zu haben, irgendwie erinnert mich deine Blocktabelle stark an die aus dem Archiv. Hab jetzt aber auch keine Lust die Wert für Wert zu vergleichen.

Zu den Trigger Frames: http://people.freenet.de/black_spy/animdata.d2.txt

Die Spalten sind wie folgt:
Code #Frames Trigger Op Speed

Op == 1 => Angriff
Op == 2 => Geschoss
 
na dann wisst ihr ja schon über de speed parameter bescheid (ich hab ihn slow genannt da ich speed schon anderweitig vergeben hab)
hatte bevor ich hier angefangen habe nach breaks etc. gesucht aber nur den thread von gulasch gefunden (ias fcr etc. sind zu kurz für die suchmaschine und wer weiß was dann alles ausgespuckt wird)

frag mich nur warum das dann heri in seinem fc calc nicht benutzt sondern mit zahlen wie 18,5 frames rechnet und einzelne ergebnisse noch von hand verbiegt
"if (baseframe == 18.5 && fc == 100) fc = 102;" :confused:

deine parameter tabelle sieht auf den ersten blick nützlich aus (besser als die ansicht im hex editor)
werd mal schauen ob ich was ändern muß und dies dann auch tun

das tabellen im archiv stehen weiß ich ;)
doch da stehen 1. nicht alle und 2. wollt ich die nicht gottgegeben akzeptieren sondern mir die werte plausibel herleiten
was ich jetzt auch für cast, block und hit recovery getan hab
und noch 3. findet man überall tabellen die sich teilweise widersprechen (hiermit leiste ich meinem beitrag zu dem tabellendschungel)

Bis danne Snej

edit:

das mit den triggern ist super - genau danach hatte ich ja ursprünglich gefragt
darf man fragen woher die trigger werte kommen (nix find in cof) ???

so ganz zufrieden bin ich jedoch noch nicht
auf http://www.planetdiablo.com/library/concept-castingspeed.htm
[der link der auch in meinem allerersten post dieses threads stand]
stehen in der letzten tabelle zaubersprüche mit ihren trigger werten
es scheint also, als ob verschiedene sprüche unterschiedliche trigger haben
aber in deiner liste gibts nur trigger frame 9 ???

edit2: musste nichts ändern

edit 3: nochmal zum thema archiv:

dort stehen block und hit recovery Tabellen die auch mit denen hier übereinstimmen

was aber damals schon librarian angemahnt hatte war das die wandelformen des druiden also bär und wolf fehlen
nookiestars antwort darauf
"Um ehrlich zu sein ... keine Ahnung. Ich habe noch nie einen Druiden in 'nem Game gehabt, wusste also nichtmal, dass ein Druide in Werwolf-Form (oder Werbär??) auch mit dem Schild blocken kann. *g*"
beide blocken !!!

auch in heris faster cast calc fehlen die wandelformen - über den sinn kann man freilich streiten (na gut schockwelle für bär macht noch sinn aber z.B. armageddon für den wolf?)
[hab aber schon heri eine pm geschickt ob er sich den thread hier nicht mal anschauen möchte]
vincorus Tabellen analog

crashmakers tabellen im pala tempel fehlen die fcr tabellen für assasine druide und den wandelformen, die zweite recovery tabelle für den druiden, sowie der block für die wandelformen

dagegen stehen hier zusätzlich zu den wandelformen auch noch alle besonderheiten die man bei den chars beachten muss (block bei amazone / hit recovery beim paladin und druiden)
 
black_spy hat mir geschrieben

Code:
struct ANIMDATAENTRY
{
	char			Name[8];
	unsigned long	FramesPerDirection;
	unsigned short	Speed;
	char			Frames[146];
};

die erste 1 in Frames gibt das triggerframe

bei der zauberin kann man aus dem oberen link die trigger bei 8/9 und 11 festmachen

nun zeigt mir aber black_spy´s Tabelle für die Zauberin Triggerwerte von 9 an
aus diesem Grund und anderen kausalen zusammenhängen hab ich ihm vorgeschlagen das speed ein long ist
was einen trigger von 7 ergibt

Meine Frage gibt es bei den sprüchen einen delay wert der dann [je nachdem wo bei den 8/9/11 werten angefangen zu zählen wurde (0.tes frame=0 oder 1)]
die werte 1 /2 / 4 bzw. 0/1/3 annimmt oder ähnliches ?

CU Snej

edit: black_spy hat seine tabelle upgedatet hab ihn wohl überzeugt ;)
 
es scheint so als ob vieles was ich hier schrieb schon bekannt war (zumindest für block und hit recovery)
ich glaub hiermit fing alles an
http://www.theamazonbasin.com/d2/forums/index.php?showtopic=27419&st=0

ehrlich gesagt war das auch mein ausgangspunkt
allerdings wusste ich noch nichts von spezialfällen
ausserdem wollte ich die speed technik dazu verwenden um die kritischen frames zu berechnen (hatte also eine andere zielsetzung)

man sieht 1. Rivo hat die formeln durch tests rausgefunden
[der mann muss mal gewürdigt werden]
a) Einfärben der Animation um zu erkennen welche frames benutzt werden
b) Einfärben einer Referenzanimation um z.B. die frame folge 334 von 344 3344 und 34 unterscheiden zu können

2.Tommi hat sich schon dafür interessiert
deswegen wundert es auch nicht das die weiterentwickelten ergebnisse
auf seiner seite stehen zusammen mit den gleichen formeln die ich hier verkündet habe
http://www.hut.fi/~tgustafs/hitrecovery.html

ein nachteil des nichtbenutzens von copy und paste ist das man sich verschreibt
so der fehler des eintrags von 120 statt 129 beim paladin
obwohl die formeln etwas anderes ergeben
ein schreibfehler und alle kopieren ihn - so ist der wert wohl auch hier im forum angelangt (der nachteil wenn man copy und paste benutzt und nicht selbst nachrechnet)

aber auch werte für die söldner stehen dort :D

nookiestar wird von tommi auch in den credits erwähnt (aber warum aktualisiert er nicht seine tabellen ?)

tut mir leid wenn ihr euch bis hierher durchquälen musstet
Ihr wisst jetzt allerdings wo die base und speed(slow) werte im spiel versteckt sind


fakt ist aber auch das alle ergebnisse aus 1.09 stammen und für 1.10 (so ich weiß) nicht getestet einfach übernommen wurden

aber zumindest kann man ja mal die Tabellen alle!!! also fcr/fhr/fbr hier in diesem forum an einer stelle aufbewahren mit dem hinweis auf 1.09
das sind die tabellen von mir, sowie die söldner tabellen:
fhr alle söldner , fbr und fcr nur akt 3 söldner (blockt der überhaupt? - der rennt doch immer weg ;))

oder nicht ??? dann aber alle werte nochmal nachrechnen !!!

CU Snej

ps:
immer noch offen ist:
i) ias bei amazone (nahkampf) bzw. barbar (1hschwert) mit waffenspeedmodifikator 0
ii) wie sich die kritischen frames aus den trigger werten berechnen (beim zaubern - im nahkampf werden es ja die triggerwerte selbst sein) edit: erledigt /edit

vorschlag zum testen:
i) dauerprügeln von pi´s und zeit messen (sich dabei nicht unterbrechen lassen)
ii) cast frames verschieden farbig markieren
dauercasten und screenshots machen und dort versuchen die ersten anzeichen der ausgeführten zauberanimation zu erkennen z.B. den feuerball (den also auch markant gestalten)
 
der akt 3 söldner besitzt keine block animation
der akt 5 söldner schlägt pro animation 2 mal zu (von black_spy getestet)
edit:
steht ja auch in der söldnerfibel:
"Der Akt3 Eisenwolf kann leider nicht mit seinem Schild blocken."

"Interessanterweise besteht die _normale_ Attacke aus einem Doppelschlag mit dem Schwert"
/edit

zur zauberin:
hab durch änderung des speed(slow) wertes in chars_cof.d2 und animdata.d2
herausgefunden das die sorc immer frame 7 als trigger benutzt (ausser inferno blitzschlag kettenblitz - die konnt ich nicht testen, da der speed faktor keinen einfluß darauf hat, obwohl dieselbe animation verwendet wird)

wenn es einen delay gäbe so wär er für einen zauber egal mit wieviel fcr immer konstant
trigger ist frame 7 also kann nach frame 7 der zauber nicht mehr unterbrochen werden
-> delay kann vernachlässigt werden

frame 7 wird genau dann um ein frame früher angezeigt wenn sich die gesamtlänge der animation um 2 frames verkürzt (7 ist ja auch die hälfte von 14 irgendwie logisch oder)
-> es gibt keine neuen breaks für die zauberin dafür aber stärkere
bei 20 / 63 / 200 (dann wird jeder spruch ein frame früher ausgelöst)

200 sind sogar möglich (wie ich mir heut erklären habe lassen):

Originally posted by ALIENfreaky:
+2soso/20fc/@ reif <-- -300 life, 10% red, 50% mf (ok reif hat auch noch stats...)
+2/20fc/@ amu <--erst mal haben... aber ok
Viper 30
spinnendings 20
wizz 50 <-- -3 skills
lidless 20 <-- block ade evtl
2*fc ring 20 <-- -2 skills
magierfaust 20

=> 200 fc

inwieweit das sinnvoll ist auf 200 zu gehen sei dahin gestellt und soll hier nicht diskutiert werden
(200-> auslöser nach 4 frames = 160 ms --- ich hab einen ping von 120-160)

wenn ich mir die anderen chars anschaue und ergebnisse hab editier ich die hier wieder rein

CU Snej

ps: jmd. ne idee warum der speedfaktor auf blitzschlag etc. keinen einfluß hat und wie man den trotzdem verlangsamen kann?

edit
starke breaks beim totenbeschwörer: 18 48 125
(alle benutzbaren skills (auch tp identify wegschicken) ausser angriff, werfen, giftdolch ;))

paladin / barbar: andere breaks
tp / ident
himmelsfaust / heiliger schild / gesegneter hammer / heiliger blitz
barbaren schreie
15 / 39 / 86
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben