[SCRIPT] Créature donne un objet si non possédé
- Faust
- Adepte de Grondemarteau
- Loup noir
- Messages : 291
- Enregistré le : mer. 15 avr. 2009, 12:04
- Localisation : Wherever I may roam
- Statut : Hors ligne
[SCRIPT] Créature donne un objet si non possédé
.
Bonsoir,
Je cherche un script ordonnant à une créature (ou via un sort) de créer un objet dans l'inventaire d'un personnage, de manière invisible, si le groupe ne le possède pas (principalement pour le passage à BG2), ceci à partir du moment où l'objet n'est pas là (ou alors un script qui vérifie en permanence si un slot bien précis est libre ou non).
Dans l'idéal j'aimerais ne pas avoir un ajouter un script à un fichiers du jeu (le fichier ARxxxx de la zone de départ pour être précis).
Actuellement j'utilise ce script pour donner un objet à mon personnage:
IF
See(LastSummonerOf(Myself))
PartyHasItem("SCALER") // Ecailles de Dragon rouge
PartyHasItem("EL1") // Arme liée magique d'Elrin
THEN
RESPONSE #100
MoveToObject(LastSummonerOf(Myself))
UseItem("EL[F]SC",LastSummonerOf(Myself)) // Ecailles rayonnantes du Dragon Rouge
END
Le problème c'est qu'ici la condition est d'avoir un objet pour obtenir le second, or au début de BG2 le groupe n'a plus rien sur lui.
Ca aurait plus simple d'avoir un script du genre "PartyHasnoItem("")" mais malheureusement ça n'existe pas.
Je cherche un script ordonnant à une créature (ou via un sort) de créer un objet dans l'inventaire d'un personnage, de manière invisible, si le groupe ne le possède pas (principalement pour le passage à BG2), ceci à partir du moment où l'objet n'est pas là (ou alors un script qui vérifie en permanence si un slot bien précis est libre ou non).
Dans l'idéal j'aimerais ne pas avoir un ajouter un script à un fichiers du jeu (le fichier ARxxxx de la zone de départ pour être précis).
Actuellement j'utilise ce script pour donner un objet à mon personnage:
IF
See(LastSummonerOf(Myself))
PartyHasItem("SCALER") // Ecailles de Dragon rouge
PartyHasItem("EL1") // Arme liée magique d'Elrin
THEN
RESPONSE #100
MoveToObject(LastSummonerOf(Myself))
UseItem("EL[F]SC",LastSummonerOf(Myself)) // Ecailles rayonnantes du Dragon Rouge
END
Le problème c'est qu'ici la condition est d'avoir un objet pour obtenir le second, or au début de BG2 le groupe n'a plus rien sur lui.
Ca aurait plus simple d'avoir un script du genre "PartyHasnoItem("")" mais malheureusement ça n'existe pas.
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
- 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
.
Ceci devrait t'aider :
Je suppose que c'est EL[F]SC que tu veux donner. Alors utilise la condition !PartyHasItem("EL[F]SC").
Note : je suis sceptique quant à l'utilisation de [] dans des noms. Il peut y avoir des effets étranges lors de la compilation.
Code : Tout sélectionner
140 [color="#FFFF00"]GiveItemCreate(S:ResRef*,O:Object*,I:Usage1*,I:Usage2*,I:Usage3*)[/color]
This action creates the item specified by the resref parameter on the creature specified by the object parameter, with quantity/charges controlled by the usage parameters.
Note : je suis sceptique quant à l'utilisation de [] dans des noms. Il peut y avoir des effets étranges lors de la compilation.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- Faust
- Adepte de Grondemarteau
- Loup noir
- Messages : 291
- Enregistré le : mer. 15 avr. 2009, 12:04
- Localisation : Wherever I may roam
- Statut : Hors ligne
.
Salut Freddy, merci pour ton intervention.Freddy_Gwendo a écrit :Ceci devrait t'aider :
Je suppose que c'est EL[F]SC que tu veux donner. Alors utilise la condition !PartyHasItem("EL[F]SC").Code : Tout sélectionner
140 [color=#ffff00]GiveItemCreate(S:ResRef*,O:Object*,I:Usage1*,I:Usage2*,I:Usage3*)[/color] This action creates the item specified by the resref parameter on the creature specified by the object parameter, with quantity/charges controlled by the usage parameters.
Note : je suis sceptique quant à l'utilisation de [] dans des noms. Il peut y avoir des effets étranges lors de la compilation.
Je souhaite donner automatiquement ("EL1") // Arme liée magique d'Elrin à mon personnage, car après le début de BG2 SOA, plus aucun personnage n'a d'objet dans l'inventaire.
J'aimerais savoir s'il existe un script qui détecte l'absence d'un objet précis, ou l'absence d'objet dans un slot, afin que mes objets définis pour mon personnage réapparaissent automatiquement dès lors que ceux-ci sont manquants.
Pour l'application du script je le ferais via une créature ou via un sort.
Concernant les parenthèses, pas eu de problème pour l'instant, j'ai compilé sous weidu et testé le kit .
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
- 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
.
Tu peux rajouter ce bloc dans AR0602.BCS
L'objet sera créé dans l'inventaire.
Tu peux aussi checker l'existence d'un objet dans un slot, mais pas un objet particulier :
Code : Tout sélectionner
IF
AreaCheck("AR0602")
!PartyHasItem("EL[F]S1")
Delay(12)
Global("TaVariable","AR0602",0)
THEN
RESPONSE #100
SetGlobal("TaVariable","AR0602",1)
GiveItemCreate("EL[F]S1",Player1,1,1,1) // ou la DEATHVAR d'un PNJ
END
Tu peux aussi checker l'existence d'un objet dans un slot, mais pas un objet particulier :
Par ailleurs, comme c'est une épée et que les persos sont à poil, tu peux aussi ajouter cette action :0x40B2 HasItemSlot(O:Object*,I:Slot*SLOTS)
NT Returns true only if the specified object has an item in the specified slot. This trigger does not work for Melf's Minute Meteors.
258 FillSlot(I:Slot*SLOTS)
This action will attempt to fill a slot in the active creature's inventory with the appropriate item type. Using FillSlot(SLOT_WEAPON) will look for any weapon in the inventory, and move the first such item into the weapon slot. Any item already in the slot is destroyed.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- Faust
- Adepte de Grondemarteau
- Loup noir
- Messages : 291
- Enregistré le : mer. 15 avr. 2009, 12:04
- Localisation : Wherever I may roam
- Statut : Hors ligne
.
J'ai suivi ton conseil et j'ai ajouté un script a AR0604 grâce à la commandeFreddy_Gwendo a écrit :Tu peux rajouter ce bloc dans AR0602.BCS
L'objet sera créé dans l'inventaire.Code : Tout sélectionner
IF AreaCheck("AR0602") !PartyHasItem("EL[F]S1") Delay(12) Global("TaVariable","AR0602",0) THEN RESPONSE #100 SetGlobal("TaVariable","AR0602",1) GiveItemCreate("EL[F]S1",Player1,1,1,1) // ou la DEATHVAR d'un PNJ END
Tu peux aussi checker l'existence d'un objet dans un slot, mais pas un objet particulier :
Par ailleurs, comme c'est une épée et que les persos sont à poil, tu peux aussi ajouter cette action :
EXTEND_BOTTOM ~AR0602.BCS~
Voici le script que je trouvé et adapté:
IF
Global("TakeImportItems","AR0602",1)
Kit(Player2,ELRIN_DRAGOSH)
Global("Elrin_DragoshIsPlayer2","AR0602",0)
THEN
RESPONSE #100
ActionOverride(Player2,CreateItem("el[h]elm.itm",1,0,0)) // casque
ActionOverride(Player2,FillSlot(SLOT_HELMET))
SetGlobal("Elrin_DragoshIsPlayer2","AR0602",1)
END
Et je l'ai appliqué à chaque personnage comme ça l'objet est donné uniquement au personnage ayant le Kit.
Comme toujours Freddy, un grand merci!
Je remercie grandement deratiseur pour ses excellents kits et ses fichiers bien détaillés, ce qui facilite grandement le travail.
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité