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] Ajouter un objet dans un slot d'équipement d'un PNJ

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] Ajouter un objet dans un slot d'équipement d'un PNJ

.

Message par Cocrane »

Je désire ajouter un objetà un personnage de mon mod. Via la console, je prends ce PNJ dans mon groupe et je constate que l'objet n'est pas là.

Script sur la carte de départ de BG1

Code : Tout sélectionner

IF   
   GLOBAL("TEST","GLOBAL",0)
THEN
   RESPONSE #100 
     SETGLOBAL("TEST","GLOBAL",1) // pour ne pas tourner en boucle

     createcreature("FLAMGD",[1100.650],2)   // Ca marche
   //ActionOverride("FLAMGD",joinparty())    // Ca marche pas
     ActionOverride("FLAMGD",CreateItem("MISC47",0,0,0))    // Ca marche pas
   //ActionOverride(PLAYER1,CreateItem("MISC47",0,0,0))  // Ca marche
END
idem, si j'active la ligne joinparty() dans l'override, Le pnj n'est pas dans le groupe alors que je suis seul dans mon groupe.
Si j'active la ligne avec l'ajout de l'objet au Charname, ça marche.

Quel est le problème?
C'est lié à la créature que j'ai crée?

Je viens de faire un autre test. J'ai pris une créature au hasard dans l'override "yssold16" qui n'appartient pas à mon mod et je remplace "FLAMGD" . La créature fait parti de mon groupe mais je n'ai pas l'objet en plus dans l'équipement...

Un cheveux de perdu! ^^
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 »

Je relance le sujet.

Qui a une idée sur l'origine du problème? :'(
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 »

J'ai essayé à nouveau d'avancer sur ce point.

Je parviens à créer l'objet dans l'équipement d'une créature si le code est écrit deux fois. L'objet est toujours présent et en seul exemplaire. Je ne comprends pas pourquoi une ligne ne suffit pas mais ça marche... ^^

soit l'exemple de code suivant

Code : Tout sélectionner

CreateItem("AMUL02",0,0,0)
CreateItem("AMUL02",0,0,0)
En travaillant sur les pnj de BG1 qui sont recrutables dans mon mod, je suis tombé sur ce bout de code.

Code : Tout sélectionner

IF
  !HasItemEquipedReal("MISC89",Myself)  // Amulette d'Edwin
  PartyHasItem("MISC89")
  !InParty(Myself)
THEN
  RESPONSE #100
    TakePartyItem("MISC89")
    SmallWait(6)
    FillSlot(SLOT_AMULET)
    SmallWait(6)
    EquipItem("MISC89")
END
Visiblement Ça place l'objet de le slot qui convient.

J'ai cherché à l'utiliser sans succès pour placer un objet de l'équipement dans le bon slot :

Code : Tout sélectionner

  CreateItem("AMUL02",0,0,0)
  CreateItem("AMUL02",0,0,0)
  FillSlot(SLOT_AMULET)
  SmallWait(20)
  EquipItem("AMUL02")
De plus IESDP signale que le mot clé "EquipItem" ne marcherait pas...

Qui aurait des infos sur le sujet ou serait à l'aise en Anglais pour passer ma demande sur un forum BG autre?
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 »

J'ai trouvé une solution à mon besoin:

- tirer de manière aléatoire un objet parmi 9 possibles
- mémoriser l'anneau tiré
- donner l'objet tiré et le placer au bon endroit dans l'équipement

Code : Tout sélectionner

IF 
   GLOBAL("annProc","GLOBAL",0)
THEN
     RESPONSE #50
     SETGLOBAL("annProc","GLOBAL",1)
     SETGLOBAL("anneau1","GLOBAL",1) // TIRE
   
     GiveItemCreate("RINGP01",PLAYER1,1,0,0) 
     SmallWait(10)
     ActionOverride(PLAYER1,FillSlot(SLOT_AMULET))
     SmallWait(10)

   RESPONSE #50
     SETGLOBAL("annProc","GLOBAL",1)
     SETGLOBAL("anneau2","GLOBAL",1) // TIRE
     GiveItemCreate("RINGP02",PLAYER1,1,0,0) 
     SmallWait(10)
     ActionOverride(PLAYER1,FillSlot(SLOT_RING_RIGHT))
     SmallWait(10)

   etc...
END
A noter:
- l'objet à placer peut avoir la propriété déplaçable ou non
- si il y a déjà un objet à l’emplacement ciblé
Si il y a de la place, l'objet est placé dans l'équipement qu'il soit déplaçable ou non.
Si pas de place, le jeu plante.

J'ai passé un paquet d'heures avant de réussir vu que CREATEITEM fonctionne mal sur ma machine.

A noter, consulter le code d'autres MOD est vraiment une bonne piste pour trouver une solution rapidement.
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Cocrane a écrit :A noter, consulter le code d'autres MOD est vraiment une bonne piste pour trouver une solution rapidement.
C'est même carrément la base ;)
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
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 »

Je ne fais pas mon mod qu'à partir de la lecture de code existant. Pour moi, c'est utile à partir du moment où tu sais ce que tu cherches.

Je pars d'IESDP pour voir ce qui existe.

Maintenant, j'ai pris le réflexe de chercher sur quelques mod comment sont utilisés les mots clés au lieu de coder uniquement par moi même. Effectivement, j'avance plus vite depuis en gros 10 jours.

Tu as fait un mod? Si oui, lequel?

CocraneL
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Mes activités de moding sur l'Infinity Engine :
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités