Page 1 sur 1

[SCRIPT] Quelle est la différence de temps d'incantation entre Spell et ForceSpell ?

Posté : dim. 11 oct. 2015, 21:21
par Cocrane
J'ai fait le test suivant:
- lancer des sorts via SPELL avec test HAVESPELL
- lancer des sorts via FORCESPELL avec test d'une variable

FORCESPELL permet de lancer un sort sans avoir besoin qu'il soit mémorisé.

Pourtant, l'enchainement de sorts est beaucoup plus rapide avec FORCESPELL alors qu'il n'intervient pas normalement dans le rythme d'enchainement.

exemple de script:

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
  havespell(WIZARD_MAGIC_MISSILE)
THEN
  RESPONSE #100    
  SPELL(Nearestenemyof(Myself),"WIZARD_MAGIC_MISSILE") 
END

IF
  See(Nearestenemyof(Myself))
  havespell(WIZARD_MAGIC_MISSILE)
THEN
  RESPONSE #100    
  SPELL(Nearestenemyof(Myself),"WIZARD_MAGIC_MISSILE") 
END
ou

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
  GLOBAL("MAGE_combat","GLOBAL",0)
THEN
  RESPONSE #100
  SETGLOBAL("MAGE_combat","GLOBAL",1)
  forceSPELL(Nearestenemyof(Myself),"WIZARD_MAGIC_MISSILE") 
END

IF
  See(Nearestenemyof(Myself))
  GLOBAL("MAGE_combat","GLOBAL",1)
THEN
  RESPONSE #100
  SETGLOBAL("MAGE_combat","GLOBAL",2)
  forceSPELL(Nearestenemyof(Myself),"WIZARD_MAGIC_MISSILE") 
END
comment expliquer cette différence?

Posté : mer. 14 oct. 2015, 16:43
par Freddy_Gwendo
Si tu veux certain d'obtenir un laps de temps "normal" entre deux sorts, introduit un compteur de temps.

J'utilise un compteur GWCast de 6 s. (ou ONE_ROUND si le fichier gtimes.ids a été modifié en conséquence) :

Code : Tout sélectionner

SetGlobalTimer("GWCast","LOCALS",6)

...
IF
... variables...
  GlobalTimerExpired("GWCast","LOCALS")
THEN
  RESPONSE #100
    Actions et variables
    SetGlobalTimer("GWCast","LOCALS",6)
END

Posté : mer. 14 oct. 2015, 19:36
par Cocrane
Salut Freddy,
effectivement cette solution peut m'aider. Et je vais sans doute l'utiliser.

Mais j'aimerai savoir si mon constat est normal.

Dans la doc IESDP, j'avais compris qu'avec FORCESPELL on n'altère pas le rythme d'enchainement des sorts.

Posté : mer. 14 oct. 2015, 19:56
par Freddy_Gwendo
En théorie, non.

Je dis en théorie car c'est ReallyForceSpell qui est censé lancer des sorts instantanément. ;)

Mais comme toi, j'ai remarqué que ForceSpell PLUS compteur de sorts (i.e. variables) était plus rapide que la combinaison Spell PLUS HaveSpell.

C'est peut-être dû à l'action HaveSpell qui ralentit le truc ?
Essaie ton script sans HaveSpell (mais en t'assurant que ton perso a les sorts), puis en remplaçant HaveSpell par une variable de compteurs de sorts (ex : ton perso à 3 MAGIC_MISSILES en mémoire et le compteur lui permet d'en lancer 3).

Mais je ne suis pas un pro des sorts, derat doit en savoir un peu plus sur la question.

Posté : ven. 16 oct. 2015, 04:26
par deratiseur
Sur le coup je n'en sait pas plus que vous car ça ne dépend pas d'un sort mais d'une action de script.
Mais il me semble normal qu'il y ait des actions pour lancer des sorts plus rapidement, puisque dans toutes les cinématique incluant Irenicus, ce dernier enchaine les sorts comme un sorcier boosté aux amphétamines.

Posté : mer. 28 oct. 2015, 22:31
par Cocrane
Oui, tu as plusieurs mots clés pour les sorts, permettant de jouer sur le fait que:
-le sort est mémorisé et disponible
SPELL > sort mémorisé disponible
FORCESPELL> sort lancé même si le sort n'est pas disponible

-l'incantation ait lieu ou non.
SPELL, FORCESPELL> l'incantation a lieu
APPLYSPELL > sort lancé sans incantation


ReallyForceSpell > sort mémorisé NON necessaire et temps NON nécessaire