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] Comment scripter un duel et choisir le combattant ?

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] Comment scripter un duel et choisir le combattant ?

.

Message par Cocrane »

Le groupe du Charname sera défié en duel et le joueur décidera qui va combattre.
> J'ai un soucis technique pour coder ce point. :$

L'idée est celle-ci
1- Dialogue avec le dueliste.
2- Le Charname répond et désigne qui va le combattre
3- Déclenchement de la CUtSCENE: le dueliste et le personnage désigné se retrouvent prêt à combattre entourés par la foule.

1- Dialogue avec le dueliste.

Pas de soucis.

2- Le Charname répond et désigne qui va combattre
Exemple de réponse attendue:
"C'est 'Imoen' (<PLAYER2> par exemple) qui va combattre."

Je n'ai pas trouvé de mots clés pour avoir un lien entre PLAYERX et le nom du PNJ. Le terme <CHARNAME> existe dans un dialogue mais pas pour <PLAYER1> à ma connaissance.

A noter, dans la rencontre avec SHAR TEEL de BG1, le choix pour le duel se faisait via un mot clé qui désignait le male le plus fort. Donc ça ne résout pas mon problème.

3- Déclenchement de la CUtSCENE: le dueliste et le personnage désigné se retrouvent prêt à combattre entourés par la foule.
Je dois savoir qui est désigné.

Si je sais quel PLAYER ou nom de PNJ est choisi , je peux le déplacer dans la zone de combat.



La seule solution que je vois est de:
- tester la présence de tous les PNJ possibles via le mot clé INPARTY("imoen") et pour proposer le duel avec.
- choix du pnj.
- déplaceement du personnage dans la zone du combat
Exemple:
ActionOverride("imoen",JumpToPoint([760.860])


Avez vous plus simple?
Avatar du membre
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
.

Message par Freddy_Gwendo »

De mémoire, dans BG2, tu peux t'inspirer de deux quêtes : celle de Franc Marché et celle de l'enclave des drows.

Le dialogue de Faldorn (CEFALDOR) gère les noms des PNJ en se basant sur leur classe de druide.

En revanche, les duels de l'auberge des drows utilisent les codes <PLAYERn> : UDDRAW16.
Inspire-toi de celui-ci et de ses CUTSCENES : peu importe les persos du groupe et leur nombre, <PLAYERn> renvoie leur nom et leur code. Ça te simplifiera la vie. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Ah donc <PLAYERn> marcherait aussi dans un dialogue comme <CHARNAME>. Je vais tester mais si ca marche, j'ai normalement ma solution. ^^

En passant, ta boite est pleine. Je te réponds MP quand le ménage est fait. ^^
Avatar du membre
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
.

Message par Freddy_Gwendo »

Je viens de le faire !

Désolé, à quelques minutes près, ma boite était dispo. :gign:
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Suite de l'épisode duel/ ;)

L'enjeu du duel sera l'arme du combattant. Une blessure très grave et le combat s'arrête.

Si l'adversaire perd son arme, je connais le nom de l'arme et donc je peux la donner au Charname.

Si c'est un membre du groupe du Charname perd, je ne connais pas me nom de l'arme en cours. (je ne trouve pas de mot clé donnant le nom de l'objet présent dans un slot arme)

Par contre, je peux poser au sol l'arme mais je ne sais pas comment faire ramasser l'objet X par un pnj.
Avatar du membre
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
.

Message par Freddy_Gwendo »

A ma connaissance, c'est impossible comme ça. :gign:

Mais tu peux "tricher" :

Si on part du principe que le membre du groupe perd son duel, il doit déposer son arme. Donne-la directement à celui qui a gagné le duel en utilisant une de ces commandes :
15 GiveItem(S:Object*,O:Target*)
This action instructs the active creature to give the specified item (parameter 1) to the specified target (parameter 2). The active creature must possess the item to pass it (holding it within a container within the inventory is fine). The sample script makes uses of modified IDS files (action, instant, trigger and svtiobj) though such modification are not necessary to use the GiveItem action itself.

116 TakePartyItem(S:Item*)
This action takes a single instance of the specified item from the party (unless the item exists in a stack, in which case the entire stack is taken). Characters are checked in current party order. The item is transferred to the inventory of the active creature. If there are multiple calls to TakePartyItem() in the same block, each with the same item specified, only one call will actually remove an item (on each execution of the block). If an item is found in a container on an earlier player and in the inventory of a later player, both item instances may be removed. All slots are checked; inventory slots are checked in the following order

204 TakePartyItemNum(S:ResRef*,I:Num*)
This action will remove a number of instances (specified by the Num parameter) of the specified item from the party. The items will be removed from players in order, for example; Player1 has 3 instances of "MYITEM" in their inventory, Player2 has 2 instance of "MYITEM," and Player3 has 1 instance. If the action TakePartyItemNum("MYITEM", 4) is run, all 3 instances of "MYITEM" will be taken from Player1, and 1 instance will be taken from Player2. This leaves Player2 and Player3 each with one instance of "MYITEM." If the last item of an item type stored in a container STO file is removed by this action, the amount becomes zero. Items with zero quantities cannot be seen in-game, cannot be removed by TakePartyItem, and will not count toward a container's current item load. If the item to be taken is in a stack, and the stack is in a quickslot, the item will be removed, and the remaining stack will be placed in the inventory. If the inventory is full, the stack item will be dropped on the ground.
Idem pour la lui rendre.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Le problème est que je ne connais pas le nom de l'arme perdue. Donc pour moi ces mots ne sont pas utilisables ou alors j'ai mal lu. ^^
Avatar du membre
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
.

Message par Freddy_Gwendo »

Autant pour moi !

Je pensais à autre chose et n'ai pas tout retranscrit dans le mode "tricher" : si c'est un duel jusqu'au "premier sang", on part du principe qu'il est "réglo".
Dans ce cas, pourquoi ne pas obliger les deux protagonistes à utiliser la "même arme" (ex épée longue +2) : par script ou par dialogue, tu attribues l'épée toncode01 au PNJ et l'épée toncode02 au perso du groupe.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Ca pourrait être une idée mais j'étais parti sur un duelliste qui parie son arme contre celle des autres. (pourquoi faire simple qd on peut faire compliqué)

J'avais prévu que le duel se ferait une carte supplémentaire lorsque l'on change de zone (comme les cartes embuscade).

Si il y a pas moyen de connaitre l'arme, je peux:
-déposer l'arme en cas de défaite du Charname
-faire un dialogue de défaite
-fermer la carte
-repositionner le groupe du charname dans la carte cible du changement de zone.

L'arme n'est pas récupérée par le duellliste mais au moins le groupe a perdu l'arme.
Répondre

Retourner vers « Scripts »

Qui est en ligne

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