Voila, ça doit faire deux semaines que je m'interesse serieusement à ces compétences (allez, elles ont la classe quand même, non?
), et que j'essaye peu à peu de monter une assassin les utilisant comme competence principale.
J'ai finalement décidé de mettre en ligne mes récherches. Il y a encore pas mal de récherches à faire, mais je pense que les informations que je fournis et les questions que je pose aideront plus si je le fais sur un forum.
Je ne vais pas parler de choses universellement reconnues comme les mods qui s'appliquent sur BS/BF.
BLADE FURY:
==========
Il est marqué un peu partout que Blade Fury est à 6 fps et que ni l'IAS, ni le fast cast ne l'affectent.
Pourtant dépuis assez longtemps je me pose la question sur la vitesse de l'animation declenchant l'attaque, qu'à l'expérience je trouve assez genante si on veut alterner entre plusieurs skills. J'aimerais par exemple pouvoir alterner entre Blade Fury / Blade Sentinel / courir se répositionner.
J'ai donc decidé de faire une petite recherche sur le sujet, et peut-être apprendre d'autres choses sur le sujet:
en s'aidant de:
http://forum.judgehype.com/judgehy [...] 2775-1.htm
http://e.domaindlx.com/JRichard/D2/aas22/
Une recherche dans les MPQ:
Skills.txt (en s'aidant de http://phrozenkeep.it-point.com/fo [...] icle&k=350 )
Colonnes:
srvstfunc,srvdofunc => pas compris à ce que Server Starting function servait
prgcalc1 : par4 => Idem.
summode : pas compris...
cltstfunc ; cltdofunc : idem
cltmissilea: bladefragment2 => on ira voir dans missiles.txt
BF: Frame delay between blades: 5 (comme prevu)
Ce qui est bizarre c'est que l'Arreat Summit dit qu'il attaque à 6 frames per second!
Et sélon JRichard, arreat summit a raison...
D'autres sites comme The Amazon Basin utilisent aussi cette valeur...
Je crois savoir d'ou vient l'erreur:
...
tick 1: BF
5 ticks
tick 7: BF
5 ticks
tick 13: BF
...
Il y a bien un intervalle de 5 ticks entre les shuriken, mais cela veut également dire qu'ils lancés tous les 6 ticks!
Ou bien c'est peut-être du aussi à l'InitSteps/Activate de missiles.txt... j'aimerais bien trouver la routine qui gère cette skill...
Il faudrait peut-être révoir la FAQ? A tester et à confirmer...
Missiles.txt :
(http://phrozenkeep.it-point.com/forum/kb.php?mode=article&k=364)
velocity: 22 pixel per frame
range: 33 frames * 22 pixel/frame = 726 pixels (en 800*600 la diagonale fait 1000 pixels... donc 1 ecran et demi en gros?)
Activate: 1 : le missile a bésoin d'une frame avant de pouvoir faire quoi que ce soit (de troute façon on tire de loin, alors ça ne change pas grand chose...)
ToHit: 1 : BF utilise bien l'AR.
CanSlow: 1 : BF can be slowed by Slow Missiles
Return Fire: 1 : Can trigger collision events. NOTE: May or may not effect other "on hit" events, such as casting a skill or "thorns".
GetHit – Boolean, 1=Can knock the target into GH mode ("hit recovery" ) upon collision
Half2HSrc – Boolean, 1=Halven damage when a two handed weapon is used
taille du shuriken = 1 tile
J'aimerais avoir une confirmation (de personnes qui auraient fait des tests, pas par rumeur) sur la réduction des dommages par deux avec une arme à deux mains:
- Tout d'abord est-ce que cette réduction s'applique comme celui de Strafe/TM ?
C'est à dire que ce sérait un "Final damage Multiplier"?
( http://users.tkk.fi/~tgustafs/weap [...] inalDamage )
- D'après l'expérience de certaines personnes:
http://forum.judgehype.com/judgehy [...] m#t4584071
http://strategy.diabloii.net/news. [...] 1%20Skills
les dégats ne sont PAS divisés par deux!
(et il me sembe avoir vu un post de Myrdinn disant qu'il n'avait pas vu ça dans les dll, autrement dit ce serait dans les .txt, mais pas activé par blizzard)
J'ai fait un test, et en tout cas l'affichage ne le montre pas. Aprés, qu'en est-il de la réalité...
Aussi, se pourrait-il que les dégats divisés par deux soient ceux de la skill elle-même?
Vitesse de l'activation de Blade Fury:
Dans Skills.txt :
anim seqtrans monanim seqnum seqinput
SQ A1 SC 23 12
pour SQ on est mal, parce que ça veut dire séquence, et que ça se complique trés vite... il faut aller chercher dans les Dll...
De plus, comme ni anim, ni seqtrans ne sont SC , le FastCast ne marchera pas sur Blade Fury.
(explication: http://phrozenkeep.it-point.com/fo [...] common+seq , régardez juste avant B) Fast Cast)
(Question: où intervient seqinput = 12 ?)
Je ne vais pas aller chercher dans les DLL si l'IAS affecte BF, vu que je ne sais pas où chercher, et ça me prendrait trop de temps...
J'ai a la place fait un test dans le jeu en mettant des valeurs enormes à l'IAS et le fast cast pour voir si ça changeait quelque chose:
Résultats:
L'animation de l'activation de Blade Fury n'est affectée ni par l'IAS, ni par le fast cast (
)
En m'aidant de ce travail de Hammerman (un grand merci à lui!):
http://phrozenkeep.it-point.com/fo [...] ht=#246447
dans D2Common.dll (en utilisant 1.11 pas 1.11b, car je n'ai pas les adresses):
seqnum: 23
donc à l'adresse 6FDEE248 +58 (car 58h = 88dec = (23-1)*4) qui contient les adresses des séquences d'animation on voit 6FDEE1A0 comme adresse pour Blade Fury.
On lit
6F DE E1 28 00 00 00 13 00 00 00 13
repeté 14 fois, pour chaque type d'arme équipée.
13h = 19dec , donc la séquence fait 19 frames.
Sélon Hammerman, la vitesse d'animation est la même que quand on est touché (c'est bizarre, mais j'ai vu la même chose dans http://myrdinn.ifrance.com/vitesses/plrmode.txt : sequence GH). Pour l'assassin Animation Speed pour GH dans AnimData.d2 est toujours 256, vitesse normale donc. Par contre il ne faut pas oublier la penalité de -30 à l'EIAS. (Je comprends maintenant pourquoi je la trouvais aussi lente...)
Allons voir en plus de détails la séquence en 6F DE E1 28 :
00 00 0A 00 00 00 <= 0
00 00 0A 01 00 00 <= 1
00 00 0A 02 00 00 <= 2
00 00 0A 03 00 00 <= 3
00 00 0A 04 00 00 <= 4
00 00 0A 05 00 00 <= 5
00 00 0A 06 00 00 <= 6
00 00 0A 07 00 00 <= 7
00 00 0A 08 00 00 <= 8
00 00 0A 09 00 00 <= 9
00 00 0A 09 00 00 <= 10
00 00 0A 09 00 00 <= 11
00 00 0A 0A 00 01 <= 12
00 00 0A 0B 00 00 <= 13
00 00 0A 0C 00 00 <= 14
00 00 0A 0D 00 00 <= 15
00 00 0A 0E 00 00 <= 16
00 00 0A 0F 00 00 <= 17
00 00 0A 10 00 00 <= 18
Traduction:
3 eme colonne: 0A donne 10 en decimal, c'est donc l'onzième refèrence dans plrmode.txt qui est SC : lancer un sort
4 eme colonne: le jeu lit les 10 premières images de SC, puis repète encore deux fois l'image 09, puis lit les 7 images restantes.
(SC n'en possède que 17)
C'est à la 13ème image (juste aprés 09 09 09 !) que sort le shuriken (enfin en théorie une frame aprés a cause de l'Activate vu dans missiles.txt ), qui n'est pas un missile mais une attaque normale ici! ( peut-être parce qu'il fait appel à une fonction complèxe, vu que on passe à la phase 2 : le lancer des shuriken :???: )
Ok, mais quelle est la vitesse REELLE?
J'ai rémarqué que Blade Fury pouvait être interrompu a souhait par le joueur à partir du moment ou le bras a été "tendu" : probablement à l'image 012, et qu'en fait, les 6 dernières images ne sont montrées que si aprés avoir arreté de lancer las shuriken on ne fait rien d'autre.
Ceci diffère sensiblement de la façon dont Blade Sentinel est geré d'après mes expérimentations, où avant de faire autre chose, l'animation doit être completée (d'où encore plus l'intéret d'avoir un IAS élévé).
Donc ce qui importe c'est le moment d'affichage de la 13ième image.
19 frames à la vitesse de 256 avec un malus de 30 à l'EIAS (j'aimerais beaucoup savoir d'où vient le fait que toutes les séquences ont ce malus et pas un malus différent):
Increment_Value = ENT[ 256 * (100 - 30)/100] = 179
image 012 affichée quand le compteur a atteint au moins 256*13=3328
Ticks - Compteur - ent(Compteur/256) <=> Image affichée
1 179 0
2 358 1
3 537 2
4 716 2
5 895 3
6 1074 4
7 1253 4
8 1432 5
9 1611 6
10 1790 6
11 1969 7
12 2148 8
13 2327 9
14 2506 9
15 2685 10
16 2864 11
17 3043 11
18 3222 12
19 3401 13 attaque declenchée
20 le jeu a entamé une nouvelle animation, le shuriken part
19/25=0.76 , c'est le temps en sec qui nous prend à démarrer la "mitrailleuse"
A chaque fois qu'on se déplace, on perd donc au moins 4 shuriken (5 ticks entre chaque shuriken) le temps de "redémarrer":
Conclusion: il vaut mieux perdre un peu de temps pour bien se placer!
BLADE SENTINEL:
============
Skills.txt :
passivestat1 passivecalc1
tohit lvl*5
Interessant! Cela voudrait-il dire que BS beneficie un bonus caché en AR égal a son niveau multiplié par 5?
Problème: pour un BS lvl20 par ex, est-ce que c'est +100 ou +100% ?
J'ai fait un test:
une assassin de niveau 31, avec un ar de 80 a 15% de toucher baal en normal.
Pourtant j'ai touché baal 43 fois sur 104 (41.3%) avec Blade Sentinel au niveau 99 (+495 ou +495% en AR)
si c'est +495 alors ça fait un AR de 575
si c'est des % alors ça fait un AR de 476
(pas de chance, j'aurais du faire plus attention choisir mes valeurs, là elles sont un peu trop proches pour confirmer quoi que ce soit...)
infos sur baal (normal) sélon l'arreat summit:
niveau: 60
defense: 313
block: 40%
(Je suppose que Baal Clone a les mêmes stats et le même niveau...)
ToHit% = 100*AR/(AR+DR) * 2*Alvl/(Alvl+Dlvl)
me donne 13.9% contre Baal..
avec un AR de 575: 44%
avec un AR de 476: 41%
Interessant, on dirait que l'hypothèse du bonus caché d'AR se vérifie... mais difficile à dire si c'est en % ou normal... je pencherait plutôt pour des %, étant donné que les autres synergies (druide) utilisent aussi des %!
Ce qui est bizarre c'est que Baal ne semble pas avoir utilisé son block!?
pettype petmax
assassintrap 5
Ah tiens, BS est aussi limité par la limite des 5 pièges
Use AttackRate : 1 : comme ToHit?
delay: 50 frames => 2 secondes
Total Number pet traps: 3 : Donc le Shadow Master/Shadow Warrior est limité à 3 BS maximum!
MonStats.txt: http://phrozenkeep.it-point.com/fo [...] icle&k=360
ligne 416: bladecreeper (c'est le nom de Blade Sentinel)
Code:b8
Velocity: 10
Killable: 1 => on peut tuer une sentinelle?
noAura: 0 => affecté par les auras???
Sk1lvl: 1 => utilise le skill Blade Sentinel au niveau 1, plus en Cauchemard et Enfer... faudrait vérifier si Blade Sentinel ne fait pas plus de dégats aux niveaux de difficulté supérieurs... même si ça m'étonnerait.
(n'a pas beaucoup de sens... est mis là pour la forme?)
MonStats2.txt: http://phrozenkeep.it-point.com/fo [...] icle&k=359
ligne 416: bladecreeper
Size X&Y: 0
MeleeRng: 0
A1mv: 0 => BS ne peut pas attaquer en se déplaçant!?
Missiles.txt : http://phrozenkeep.it-point.com/fo [...] icle&k=364
ligne 394: bladecreeper
Range: 10
LevRange: 5 => assez énonnant, cela voudrait dire quele missile existe 10 + 5 FRAMES par niveau, ce qui est trés tres peu!
Alors que sélon judgehype c'est 100+50 par niveau... que cela pourrait-il signifier?
Activate: 0
AnimLen: 2, durée de l'animation 2 frames?
AnimSpeed: 16 frames/sec soit 4 animations / sec ?
Size:3 => 3x3 tiles
ToHit:1 utilise l'AR...
ReturnFire : 0
Half2HSrc: 1
Même question pour l'Half2HSrc que pour Blade Fury....
Une autre chose que j'aimerais noter est le Next Delay http://forums.diabloii.net/showthread.php?t=128208
Blade Sentinel a un Frame Delay de 25 frames, ce qui limite fortement son utilisation contre les monstres seuls, et quand on est en coterie avec d'autres personnes utilisant des skills à NextDelay (sorciere Chain Lightning...), il serait peeut-être préferable de ne pas utiliser BS!
Par contre contre les groupes il peut potentiellement frapper (suivant votre AR) chaque monstre qu'il touche!
J'ai fait un test dans le jeu en mettant des valeurs enormes à l'IAS et le fast cast pour voir si ça changeait quelque chose:
Résultats:
L'animation du lancer de Blade Sentinel est affecté par l'IAS, comme les autres pièges.
Egalement, pour Blade Sentinel, avant de pouvoir faire autre chose, l'animation doit être completée, contrairement à BF (d'où encore plus l'intéret d'avoir un IAS élévé).
Infos ci-dessous valables pour tous les pièges:
dans Skills.txt:
anim seqtrans monanim seqnum seqinput
BS: S2 S2 S2
pour Blade Sentinel c'est AIS2xxx.cof, ce qui tombe bien, car les données sont les mêmes quel que soit le contenu de xxx, donc quelle que soit l'arme.
Dans AnimData.txt, on a:
Blade Sentinel:
Frames per direction: 8
Animation Speed: 128 => vitesse/2
2 dans FrameData004 => ici on a bien un missile (2)
De plus Starting Frame pour l'Assassin est toujours égale à 0, pas de complications de ce point de vue-là. (si j'ai bien compris Starting frame intervient à chaque fois que l'IAS est utilisé, sauf pour Trombe)
Calcul des paliers de l'IAS de Blade Sentinel (qui sont aussi ceux des autres traps):
Je vais calculer les frames nécessaires à l'apparition de la sentinelle ainsi que celles nécessaires pour toute l'action (les traditionnels paliers IAS), vu que tant que l'animation n'est pas terminée les ordres donnés par le joueur resteront sans réponse.
Terminating Value = 256 * Frames per direction = 2048
Increment_Value = ENT[ AnimationSpeed * (100 + EIAS + penalty)/100]
le gros problème est que je n'ai aucune idée de comment savoir si un skill a une penalité ou non, mais vu que les seules qui a ma conaissance en ont sont les skills sequence (-30) et Dragon Tail (-40), je vais supposer que Blade Sentinel n'en a pas et fonctionne comme les autres traps.
On va prendre un EIAS de 0 pour un exemple rapide:
Increment_Value = 128
Ticks - Compteur - ent(Compteur/256) <=> Image affichée
1 128 0
2 256 1
3 384 1
4 512 2
5 640 2
6 768 3
7 896 3
8 1024 4 <= le piège est lancé !
9 1152 4
10 1280 5
11 1408 5
12 1536 6
13 1664 6
14 1792 7
15 1920 7
16 2048 8 <= en cas de répétition de l'attaque, ceci dévient la première image (ici 0) de l'animation, sinon la prochaine animation à lieu au tick 17. (je me démande d'ailleurs ce qui se passe si on change de piège... est-ce que le jeu considère cela comme une répétition (toujours S2) et nous fait gagner une frame?
Conclusion: EIAS = 0 <=> 8/15/7
Explication de la notation: 8 ticks pour lancer le premier piège, 15 ticks entre les lancers de pièges, 7 ticks avant de passer à l'animation suivante.
En utilisant un fichier excel, j'en ai déduit les paliers EIAS:
((100 + EIAS + penalty)/100 est obligatoirement compris entre 15 et 175, donnant des valeurs limites d'EIAS ici de -85 et +75)
J'ai utilisé des valeurs entières d'EIAS, parce que je présume que en convertissant de l'IAS vers l'EIAS, le jeu va toujours arrondir. (A verifier!)
Paliers sEIAS/EIAS/eEIAS:
61: 5/9/5
47: 6/10/5
34: 6/11/6
24: 7/12/6
15: 7/13/7
8: 8/14/7
0: 8/15/8
-5: 9/16/8
-10: 9/17/9
-15: 10/18/9
-19: 10/19/10
-23: 11/20/10
-26: 11/21/11
-29: 12/22/11
-32: 12/23/12
(j'ai pas mis ceux encore plus bas)
Je suis d'ailleurs heureux de constater que je tombe sur les mêmes paliers que sur cette page pour l'EIAS:
http://e.domaindlx.com/JRichard/D2 [...] aying.html
...sauf pour -30, où à mon humble avis l'auteur a fait une erreur.
Les paliers réduisant le premier chiffre étant je pense plus importants, vu que toucher un monstre un tick plus tôt est souvent plus important que de terminer l'action un tick plus tôt!
La complexité de l'assasin fait qu'il est difficile de faire des tableaux d'IAS: il faut considèrer le niveau de BoS, la vitesse de l'arme (et en C/C, on a TROIS vitesses differentes qu'on peut obtenir pour une même paire d'armes, sélon l'ordre et la position dans lesquels on les équippe), ce qui donnerait un tableau a 3 dimensions. Pas trés pratique.
Heureusement pour se simplifier la vie, on peut se dire qu'on va utiliser Fade plutôt que BoS (comme le fait ma Shurissin, et peut-être un certain nombre de trapsins?).
Ce qui nous donne ce tableau:
(egalement dusiponible sur mon fichier excel)
Bon, ça a merdouillé severement pour la mise en forme, alors:
- soit vous téléchargez le fichier excel.
- soit vous allez voir cette page
- soit vous editez mon message et copiez-collez le tableau dans le bloc-notes ou excel.
IAS
WSM
Palier EIAS -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30
5/9/5 61 2 7 13 19 26 34 42 52 63 75 89 105 125 147 174 208 250 304 377
6/10/5 47 3 8 14 20 27 35 44 54 65 78 92 109 129 152 180 215
6/11/6 34 5 10 16 23 30 39 48 58 70 83 99 117 138
7/12/6 24 5 10 16 23 30 39 48 58 70 83 99
7/13/7 15 6 11 18 24 32 40 50 60 72
8/14/7 8 4 9 15 22 29 37 46 56
8/15/8 0 6 11 18 24 32 40
9/16/8 -5 6 11 18 24 32
9/17/9 -10 6 11 18 24
10/18/9 -15 6 11 18
10/19/10 -19 2 7 13
11/20/10 -23 3 8
11/21/11 -26 5
12/22/11 -29 2
12/23/12 -32
|
EDIT: Verifié: le plaier le plus haut est en accord avec cette page.
Petit rappel sur l'IAS:
IAS total = IAS de la griffe principale + IAS équipement (excepté pour WW et l'attaque normale dual claw).
L'IAS sur la griffe sécondaire est "perdu".
Pour le WSM dual-claw (sauf pour l'attaque normale):
(Moyenne des WSM des armes) si équippé normalement,
ou (moyenne des WSM des armes) + (WSM inventaire droite - WSM inventaire gauche) si équipé à droite en premier.
Attention! En switchant les armes (W), ou en quittant la partie, l'arme principale dévient celle de gauche dans l'inventaire (par défaut).
(C'est la seule condition pour ce "reset": ni récuperer son corps, ni prendre un TP, WP ni changer de zone ne modifient la priorité des armes)
Il me semble que la FAQ ne parle pas de ce bug qui peut quand même se reveler trés important!
Exemple: griffes à WSM de -30 et 10:
donne -10, 30, ou -50 de WSM suivant l'odre dans lequel les griffes sont équipées!
A venir: les commentaires sur les autres aptitudes combinées avec BS/BF et la description de ma Furysin.
Merci à tous ceux qui m'ont aidé a faire cette etude en publiant leurs découvetes sur le net.
Message édité par BlueTemplar le 23-06-2006 à 14:35:47