[SCRIPT] - Créature tuée donne objet au kit précis.
Posté : sam. 29 juil. 2017, 10:04
Bonjour,
Encore une question de script aujourd'hui .
Je souhaiterais qu'à la mort d'une créature (dans le cas présent de chaque Dragon dans BG2) le personnage bénéficiant du Kit obtienne immédiatement un objet.
J'ai plusieurs morceaux de script mais j'ai ne sais pas trop comment les assembler pour donner le résultat désiré.
Dois-je ajouter le script au monstre qui vérifiera les paramètres et les appliquera à sa mort?
IF
Die() // Firkraag meurt
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
DestroySelf()
END
ou
Dois-je appliquer le script au fichier AREA où la créature réside, celui-ci pouvant vérifier que la créature est morte et donc donner l'item au personnage?
IF
? // script détectant la mort de Firkraag, est ce que ça a un rapport avec la DeathVariable? (Ici FIRKRA02)
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
END
Est-ce nécessaire de créer une variable dans ce cas? Chaque Dragon n'est présent qu'une fois dans le jeu.
Merci à vous!
EDIT:
Le script Dead("FIRKRA02") est censé détécté la mort de Firkrag, mais rien ne se passe lorsque je l'utilise en script sur AREA1203.BCS
IF
Dead("FIRKRA02") // script détectant la mort de Firkraag,
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
Wait(1)
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
END
EDIT 2:
Ca fonctionne comme je veux avec le SCRIPT suivant appliqué directement à la créature:
IF
Die()
Kit(Player1,ELRIN_DRAGOSH)
PartyHasItem("EL1")
THEN
RESPONSE #100
TakePartyItem("el[h]lmA") // No such index
DestroyItem("el[h]lmA") // No such index
ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
END
En revanche le SCRIPT ActionOverride(Player1,FillSlot(SLOT_HELMET)) ne fonctionne pas parfaitement, si un objet est déjà dans l'emplacement pour les casques, l'objet créer avec le SCRIPT ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)) restera dans une case de l'inventaire.
Le second problème que j'ai rencontré a été avec le SCRIPT ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)), lors de mes tentatives, celui-ci n'a pas fonctionné avec mon épée ni avec mon bouclier. Il ce peut aussi que ce soit comme m'avait dit Freddy_Gwendo, à cause du nom de mes objets composés de [].
Je n'ai pas non plus réussi à faire fonctionner Le script lié au fichier AREA détectant la mort d'une créature: Dead("FIRKRA02").
Concernant le Script il a fallut que je l'ajoute tout en haut du Script de comportement des Dragons pour qu'il soit pris en compte lorsque les Dragons attaquent, sinon ceux-ci n'ont même pas le temps d'arriver jusqu'à la partie du script désiré.
Existe t'il un moyen de faire passer en priorité un script sans avoir à le mettre en premier dans le fichier de Script?
Encore une question de script aujourd'hui .
Je souhaiterais qu'à la mort d'une créature (dans le cas présent de chaque Dragon dans BG2) le personnage bénéficiant du Kit obtienne immédiatement un objet.
J'ai plusieurs morceaux de script mais j'ai ne sais pas trop comment les assembler pour donner le résultat désiré.
Dois-je ajouter le script au monstre qui vérifiera les paramètres et les appliquera à sa mort?
IF
Die() // Firkraag meurt
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
DestroySelf()
END
ou
Dois-je appliquer le script au fichier AREA où la créature réside, celui-ci pouvant vérifier que la créature est morte et donc donner l'item au personnage?
IF
? // script détectant la mort de Firkraag, est ce que ça a un rapport avec la DeathVariable? (Ici FIRKRA02)
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
END
Est-ce nécessaire de créer une variable dans ce cas? Chaque Dragon n'est présent qu'une fois dans le jeu.
Merci à vous!
EDIT:
Le script Dead("FIRKRA02") est censé détécté la mort de Firkrag, mais rien ne se passe lorsque je l'utilise en script sur AREA1203.BCS
IF
Dead("FIRKRA02") // script détectant la mort de Firkraag,
Kit(Player1,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer1","AR1203",0)
THEN
RESPONSE #100
Wait(1)
ActionOverride(Player1,CreateItem("el[h]lm1.itm",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer1","AR1203",1)
END
EDIT 2:
Ca fonctionne comme je veux avec le SCRIPT suivant appliqué directement à la créature:
IF
Die()
Kit(Player1,ELRIN_DRAGOSH)
PartyHasItem("EL1")
THEN
RESPONSE #100
TakePartyItem("el[h]lmA") // No such index
DestroyItem("el[h]lmA") // No such index
ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)) // casque
ActionOverride(Player1,FillSlot(SLOT_HELMET))
END
En revanche le SCRIPT ActionOverride(Player1,FillSlot(SLOT_HELMET)) ne fonctionne pas parfaitement, si un objet est déjà dans l'emplacement pour les casques, l'objet créer avec le SCRIPT ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)) restera dans une case de l'inventaire.
Le second problème que j'ai rencontré a été avec le SCRIPT ActionOverride(Player1,CreateItem("el[f]sc",1,0,0)), lors de mes tentatives, celui-ci n'a pas fonctionné avec mon épée ni avec mon bouclier. Il ce peut aussi que ce soit comme m'avait dit Freddy_Gwendo, à cause du nom de mes objets composés de [].
Je n'ai pas non plus réussi à faire fonctionner Le script lié au fichier AREA détectant la mort d'une créature: Dead("FIRKRA02").
Concernant le Script il a fallut que je l'ajoute tout en haut du Script de comportement des Dragons pour qu'il soit pris en compte lorsque les Dragons attaquent, sinon ceux-ci n'ont même pas le temps d'arriver jusqu'à la partie du script désiré.
Existe t'il un moyen de faire passer en priorité un script sans avoir à le mettre en premier dans le fichier de Script?