Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

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

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

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

.

Message 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?
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
deratiseur
Golem de fer
Messages : 3714
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message 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.
Combien de moddeurs se sont lancés dans des projets faramineux pour ne jamais les finir ? Je ne fait que des "petits" mods, mais au moins je les finis.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité