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é...
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] Comment poser un objet au sol et le récupérer par un PNJ ?
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
[SCRIPT] Comment poser un objet au sol et le récupérer par un PNJ ?
.
Je vais proposer un duel où le gain est l'arme du combattant. Un membre du groupe pourra donc combattre le duelliste.
Dans le cas où le duelliste perd, je sais quel est le nom de l'arme et je peux donc la donner.
Mais dans le cas où c'est le membre du groupe qui perd, j'ignore quelle est le nom de l'arme est utilisé. (je ne vois pas de mot clé utilisable).
Je peux faire poser l'arme perdue au sol et la faire ramasser par le duelliste mais je retrouve le même problème.
Comment ramasser un objet dont on ne connait pas le nom?
* perte de l'objet en main
"effect: drop weapons in panic (264)"
* récupération de l'objet si on a le nom
"257 PickUpItem(S:ResRef*)
This action instructs the active creature remove the item from the area and put it in their inventory (assuming the inventory has enough room and the item exists)."
Dans le cas où le duelliste perd, je sais quel est le nom de l'arme et je peux donc la donner.
Mais dans le cas où c'est le membre du groupe qui perd, j'ignore quelle est le nom de l'arme est utilisé. (je ne vois pas de mot clé utilisable).
Je peux faire poser l'arme perdue au sol et la faire ramasser par le duelliste mais je retrouve le même problème.
Comment ramasser un objet dont on ne connait pas le nom?
* perte de l'objet en main
"effect: drop weapons in panic (264)"
* récupération de l'objet si on a le nom
"257 PickUpItem(S:ResRef*)
This action instructs the active creature remove the item from the area and put it in their inventory (assuming the inventory has enough room and the item exists)."
.
J'allais écrire que je ne comprenais pas ton souci, jusqu'a ce que je réalise que si c'est un membre du groupe qui se bat, tu ne peux pas prévoir quelle arme le joueur aura choisi de lui donner...
Est ce qu' une action comme PickUpItem ne peut pas fonctionné avec PickUpItem(NearestOf(myself)) ?
Je dis ça à l'aveugle, sans avoir essayé.
Est ce qu' une action comme PickUpItem ne peut pas fonctionné avec PickUpItem(NearestOf(myself)) ?
Je dis ça à l'aveugle, sans avoir essayé.
- 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
.
J'ai comme l'impression qu'on a déjà eu cette discussion quelque part, mais je ne me souviens plus où. A moins que ce ne soit ailleurs, ou avec quelqu'un d'autre...
Peu importe.
Je crains que le moteur ne permette pas de faire ce que tu veux. Cependant, j'y ai réfléchi depuis et je te propose une piste de travail que je n'ai pas testée. Si elle fonctionne, elle permettrait de contourner les limites de l'IE.
Si l'arme est à terre, elle sera automatiquement "transportée" à l'endroit indiqué. L'inconvénient, c'est que tous les objets qui trainent le seront aussi. Mais je pense que tu peux assumer cet inconvénient pour réussir ton coup.
Quant à
Comme sa définition l'indique, elle ne permet pas de récupérer un objet dont on ne connait pas le code.
Voilà, voilou l'état de mes réflexions. A toi de les tester.
Bon, je retourne dans mes codes en attendant la prochaine version de WeiDU qui devrait me permettre d'arrêter de me prendre la tête à créer des fonctions pour court-circuiter celles de WeiDU qui ne fonctionnent pas dans des cas particuliers. Et comme par hasard, la loi de Murphy est passée par là et ça concerne mes tp2.
Peu importe.
Je crains que le moteur ne permette pas de faire ce que tu veux. Cependant, j'y ai réfléchi depuis et je te propose une piste de travail que je n'ai pas testée. Si elle fonctionne, elle permettrait de contourner les limites de l'IE.
Code : Tout sélectionner
[color="#FFFF00"]264 CopyGroundPilesTo(S:ResRef*,P:Location*)[/color]
This action copies all items lying around on the ground in the current area to the specified point in the target area.
Quant à
Code : Tout sélectionner
[color="#FFFF00"]257 PickUpItem(S:ResRef*)[/color]
This action instructs the active creature remove the item from the area and put it in their inventory (assuming the inventory has enough room and the item exists).
Voilà, voilou l'état de mes réflexions. A toi de les tester.
Bon, je retourne dans mes codes en attendant la prochaine version de WeiDU qui devrait me permettre d'arrêter de me prendre la tête à créer des fonctions pour court-circuiter celles de WeiDU qui ne fonctionnent pas dans des cas particuliers. Et comme par hasard, la loi de Murphy est passée par là et ça concerne mes tp2.
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.
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Comme indiqué, l'action CopyGroundPilesTo(S:ResRef*,P:Location*) sert à transférer des piles d'objets au sol d'une zone vers une autre. Elle est utilisée à plusieurs reprises dans le jeu :
L'alternative est que tu te fasses une liste d'objets que le duelliste est susceptible de réclamer, qu'elle soit ou non portée par le participant du moment que le groupe la possède. Ainsi tu peux tester des noms d'objets bien précis en pariant sur le fait que le groupe sera forcément équipée d'au moins un d'entre ceux que tu prévois. Il y a quand même des incontournables que pratiquement aucun groupe ne peut ignorer.
- passage de la zone de départ de ToB vers le plan astral après le combat contre Illasera
- passage du temple d'ombre au temple en ruines après la mort du seigneur d'ombre
- passage du bateau de Saemon à la cité Sahuagin
- passage du combat contre Irenicus aux enfers
- passage de l'illusion de Kalah au cirque
L'alternative est que tu te fasses une liste d'objets que le duelliste est susceptible de réclamer, qu'elle soit ou non portée par le participant du moment que le groupe la possède. Ainsi tu peux tester des noms d'objets bien précis en pariant sur le fait que le groupe sera forcément équipée d'au moins un d'entre ceux que tu prévois. Il y a quand même des incontournables que pratiquement aucun groupe ne peut ignorer.
:!: 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 !
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Merci pour vos retours.
Freddy> oui on avait parlé de poser un objet au sol dans le cadre dune prise d'otages où l'on demande au groupe de poser ses armes.
Kev> je testerai mais j'ai des doutes.
Isaya> l'option de la liste est à retenir si je ne parviens à coder ce besoin. Surtout que le Charname peut s'arranger pour avoir une arme de "merde" pour éviter de perdre un belle arme.
Freddy> oui on avait parlé de poser un objet au sol dans le cadre dune prise d'otages où l'on demande au groupe de poser ses armes.
Kev> je testerai mais j'ai des doutes.
Isaya> l'option de la liste est à retenir si je ne parviens à coder ce besoin. Surtout que le Charname peut s'arranger pour avoir une arme de "merde" pour éviter de perdre un belle arme.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
CopyGroundPilesTo(S:ResRef*,P:Location*) copie les objets au sol dans une zone à un emplacement précis.
En y réflechissant, ca ne va coller à mon besoin: le Player perd son objet.
En le déposant au sol, il perd son objet mais on le voit au sol. Si j'utilise CopyGroundPilesTo, j'en ai une copie ailleurs, ca ne résout donc pas mon problème.
J'ai pensé à la solution suivante:
GiveItemCreate("arme1",PROTAGONIST,1,0,0)
wait(1)
ActionOverride(PROTAGONIST,FillSlot(SLOT_WEAPON))
wait(1)
ActionOverride(PROTAGONIST,DESTROYITEM("arme1"))
Sachant que :
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.
En y réflechissant, ca ne va coller à mon besoin: le Player perd son objet.
En le déposant au sol, il perd son objet mais on le voit au sol. Si j'utilise CopyGroundPilesTo, j'en ai une copie ailleurs, ca ne résout donc pas mon problème.
J'ai pensé à la solution suivante:
GiveItemCreate("arme1",PROTAGONIST,1,0,0)
wait(1)
ActionOverride(PROTAGONIST,FillSlot(SLOT_WEAPON))
wait(1)
ActionOverride(PROTAGONIST,DESTROYITEM("arme1"))
Sachant que :
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.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité