Bonjour,
J'aimerai que mon perso se lance le sort bouclier (sort de mage level1) quand il n'y a pas d'ennemis à l'horizon. je me suis inspiré de ce bloc de SCS avec peau de pierre :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_STONE_SKIN) // SPWI408.SPL (Stoneskin)
See(Myself)
See(Myself)
CheckStat(Myself,0,STONESKINS)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_STONE_SKIN) // SPWI408.SPL (Stoneskin)
END
Le seul truc que je comprends pas dans ce bloc, c'est le pourquoi de la ligne SetGlobalTimer("SpellsBad","GLOBAL",3).
Donc moi j'ai bricolé çeçi pour mon sort de mage bouclier :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_SHIELD) // SPWI114.SPL (Shield)
See(Myself)
See(Myself)
CheckStat(Myself,0,WIZARD_SPELL_SHIELD)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_SHIELD) // SPWI114.SPL (Shield)
END
Ca marche a peu près sauf que si j'ai 2 sorts de mémorisé, mon mage va lancé les 2 sorts à la suite, il ne detecte pas que j'ai déja le sort d'actif. Donc y a un pb !
merçiiii
[SCRIPT] Script d'auto buff personalisé
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Le problème provient sans doute de ta ligne CheckStat(Myself,0,WIZARD_SPELL_SHIELD). La valeur à test n'est pas le sort mais l'effet produit par le sort. SCS se sert d'un package Detectable Spells qui ajoute beaucoup d'éléments pour que CheckStat puisse détecter les effets de l'ensemble de sorts du jeu. Pour que ton script fonctionne il faut donc que tu trouves le bon nom à indiquer pour le sort Bouclier. Le plus simple serait sans doute que tu repères un script de mage de bas niveau dans SCS qui utilise Bouclier.
Le timer correspond sans doute à une limitation des enchaînements de sort puisque le script utilise manifestement une capacité d'enchaînement avant de lancer le sort. C'est sans doute une mesure prise pour les adversaires donnent moins l'impression de tricher vis-à-vis des règles du jeu.
Le timer correspond sans doute à une limitation des enchaînements de sort puisque le script utilise manifestement une capacité d'enchaînement avant de lancer le sort. C'est sans doute une mesure prise pour les adversaires donnent moins l'impression de tricher vis-à-vis des règles du jeu.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
- DrAzTiK
- Araignée éclipsante
- Messages : 1231
- Enregistré le : ven. 19 sept. 2003, 03:20
- Localisation : Bordeaux
- Contact :
- Statut : Hors ligne
.
Ha oui je vois. Tu as raison, c'est la stat Checkstat le pb. J'ai trouvé ce lien pour les checkstats : http://www.gibberlings3.net/readmes/rea ... pells.html
Enfin j'ai bricolé un truc et ça a l'air de marché.
J'ai rentré ça dans mon script :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_SHIELD) // SPWI114.SPL (Shield)
See(Myself)
See(Myself)
CheckStat(Myself,0,SCRIPTINGSTATE5)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_SHIELD) // SPWI114.SPL (Shield)
END
Mais une fois enregistré le script se transforme en ça :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_SHIELD) // SPWI114.SPL (Shield)
See(Myself)
See(Myself)
CheckStat(Myself,0,DEFENSIVE_MODIFIER)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_SHIELD) // SPWI114.SPL (Shield)
END
au final ça marche quand même lol
Enfin j'ai bricolé un truc et ça a l'air de marché.
J'ai rentré ça dans mon script :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_SHIELD) // SPWI114.SPL (Shield)
See(Myself)
See(Myself)
CheckStat(Myself,0,SCRIPTINGSTATE5)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_SHIELD) // SPWI114.SPL (Shield)
END
Mais une fois enregistré le script se transforme en ça :
IF
ActionListEmpty()
CombatCounter(0)
!Global("DMWWBuff","LOCALS",0)
!Detect(NearestEnemyOf(Myself))
!CheckStatGT(Myself,0,SPELLFAILUREMAGE)
HaveSpell(WIZARD_SHIELD) // SPWI114.SPL (Shield)
See(Myself)
See(Myself)
CheckStat(Myself,0,DEFENSIVE_MODIFIER)
!Class(Myself,SORCERER)
THEN
RESPONSE #100
SetGlobalTimer("SpellsBad","GLOBAL",3)
ApplySpellRES("dw#alac",Myself) // Enchaînement
Spell(Myself,WIZARD_SHIELD) // SPWI114.SPL (Shield)
END
au final ça marche quand même lol
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité