[SCRIPT] Script d'auto buff personalisé

Répondre
Avatar du membre
DrAzTiK
Araignée éclipsante
Messages : 1231
Enregistré le : ven. 19 sept. 2003, 03:20
Localisation : Bordeaux
Contact :
Statut : Hors ligne

[SCRIPT] Script d'auto buff personalisé

.

Message par DrAzTiK »

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
Faites comme moi, jouez FP :cool:

Mon Mod : BuTcHeRY

Ma châine Youtube
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

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.
:!: 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 !
Avatar du membre
DrAzTiK
Araignée éclipsante
Messages : 1231
Enregistré le : ven. 19 sept. 2003, 03:20
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par DrAzTiK »

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
Faites comme moi, jouez FP :cool:

Mon Mod : BuTcHeRY

Ma châine Youtube
Répondre

Retourner vers « Scripts »

Qui est en ligne

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