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é...

[CARTES] Trigger info

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

[CARTES] Trigger info

.

Message par Cocrane »

Je désire créer une zone où lorsque l'on clique dessus un texte apparait. Le message sera différent selon que ce soit le Charname ou un PNJ de l'équipe.

Je créé un trigger région auquel j'associe un script:

Code : Tout sélectionner

IF
 Clicked(Protagonist)
THEN
  RESPONSE #100
  DisplayString("COT01508",@2)
END

IF
 Clicked([PC]) 
 !Clicked(Protagonist)
THEN
  RESPONSE #100
  DisplayString("COT01508",@1)
END
J'obtiens aucun message. Si je remplace Protagonist par '[PC]' j'obtiens un message à l'écran.

Cocrane
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

[PC] correspond à un personnage contrôlé par le joueur, c'est à dire un membre de l'équipe. Je ne me souviens pas d'avoir vu Protagonist servir quelque part. Pour désigner le personnage principal, on utilise Player1.
:!: 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 !
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 »

CHARNAME = Player1

D'où :

Code : Tout sélectionner

IF
  Clicked(Player1)
...
Dans la mesure du possible, évite le mot-clé Protagonist, souvent utilisé dans BG1, mais qui a été quasi abandonné dans BG2. Je n'ai pas l'impression qu'il soit fiable.


Édit : encore une fois doublé par Isaya. A quelques secondes près... :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 »

Le mot PROTAGONIST existe dans plusieurs scripts et normalement il désigne le CHARNAME.

A ma connaissance, PLAYER1 correspond à la position du PNJ. Si le CHARNAME est en position 2 alors il est PLAYER2.

Mon mod tourne sur BGT.

Cocrane
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 »

Non, tu confonds :

Player1 = le premier personnage recruté dans le groupe ==> C'est toujours Charname quelque soit sa position dans le groupe.

Player2 à 6 = 2° à 6° personnage recruté. Donc, dans BG2, Imoen, puis Jaheira et Minsc ou Minsc et Jaheira.

Ensuite, quand tu recomposes ton groupe, ces attributions changent. Exemple à la sortie du donjon d'Irenicus, Imoen quitte le groupe. Si Jaheira était Player3, elle devient Player2, etc...

Pour déterminer qui est le second personnage du groupe, il faut utiliser les objets suivants :
Player1Fill
Returns the player in the first portrait slot.

Player2Fill
Returns the player in the second portrait slot.

Player3Fill
Returns the player in the third portrait slot.

Player4Fill
Returns the player in the fourth portrait slot.

Player5Fill
Returns the player in the fifth portrait slot.

Player6Fill
Returns the player in the sixth portrait slot.
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 »

Ok, ca signifie que je me suis compliqué la vie dans plusieurs parties de mon mod. Mais avec d'autres mots clés, la valeur PROTAGONIST fonctionne.

J'ai testé Clicked(Player1) et je n'ai pas de msg qui apparait.

J'ai testé Clicked([PC]) et je n'ai pas de msg qui apparait.

J'ai testé Clicked([0]) et j'ai un msg qui apparait.

Visiblement, c'est limité au niveau valeur.
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 »

Alors on va reprendre un basique qui fonctionne à 100 % : ;)

Code : Tout sélectionner

IF
  Clicked([ANYONE])
  InPartySlot(LastTrigger,0) // [color="#FFFF00"]Player1 est toujours dans le slot 0[/color]
THEN
  RESPONSE #100
    DisplayStringHead(LastTrigger,1)  // ~Non, désolé, ça ne me dit rien.~
END

IF
  Clicked([ANYONE])
  !InPartySlot(LastTrigger,0)
THEN
  RESPONSE #100
    DisplayStringHead(LastTrigger,2)  // ~Tu jouais Elminster ?~
END
Certains triggers sont plus ou moins fiables selon les objets utilisés. C'est le cas de [PC] (en revanche [PC.0.0] fonctionne plus souvent). Clicked ([0]) correspond à Clicked([ANYONE]).
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 »

De mes essais, seul "Clicked ([0]" provoque un résultat.

Je ferai avec. ^^

Cocrane
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 »

Tu as essayé mon code ?

Je l'ai testé sur une de mes cartes avant de te donner de faux espoirs et il fonctionne parfaitement bien. ^^
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 »

Non je ne l'ai pas testé.

J'étais resté focalisé sur la bonne variable à mettre dans CLICKED pour gérer mon problème.

J'utiliserai donc ta méthode pour avoir deux textes différents.

Merci Freddy.
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 m'en doutais un poil, d'où ma relance. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Pour clore le débat, voici l'avis de la Bible des moddeurs, j'ai cité Avenger.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

Concernant ce topic, je souhaite faire la même chose que Cocrane, mais en utilisant un autre identifiant du type Death variable, malheureusement cela ne semble pas fonctionner:

IF
Clicked("El[r]in") // Elfe
THEN
RESPONSE #100
CreateCreature("C[R]ANE2",[-1.-1],0) // Crâne
TriggerActivation("C[R]ANE2",FALSE) // Crâne
END

Du coup je suis obligé de fonctionner de cette manière:

IF
InParty("El[r]in")
Clicked([ANYONE]) // Elfe
THEN
RESPONSE #100
CreateCreature("C[R]ANE2",[-1.-1],0) // Crâne
TriggerActivation("C[R]ANE2",FALSE) // Crâne
END

Auriez-vous une alternative pour que cela fonctionne uniquement avec le personnage désiré?
JohnBob
d'Oghmatique
Ogre mage
Messages : 1363
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Hello !

Pas vraiment sûr si cela va pouvoir correspondre à tes besoins.

J'ai fait un test très simple avec l'aboleth d'Ust Natha. (En supprimant complétement le contenu d'ABOLETH.BCS et le remplaçant par le block ci-dessous)

Code : Tout sélectionner

IF
	Clicked([ANYONE])
	IsOverMe("Imoen")
THEN
	RESPONSE #100
		DisplayStringHead(Myself,42372)  // Vous devez vous approcher de la créature pour lui parler.
END
Par contre IsOverMe(O:Object*) nécessite une très grande proximité avec la zone à cliquer.

IESDP Trigger page



Edit :

Code : Tout sélectionner

IF
	Clicked([ANYONE])
	PersonalSpaceDistance("Imoen",1)  // Imoen
THEN
	RESPONSE #100
		DisplayStringHead(Myself,42372)  // Vous devez vous approcher de la créature pour lui parler.
END
PersonalSpaceDistance(O:Object*,I:Range*) semble aussi fonctionner dans ce cas.



Re Edit :

Code : Tout sélectionner

IF
	Clicked([ANYONE])
	NearLocation("Imoen",876,3100,1)
THEN
	RESPONSE #100
		DisplayStringHead(Myself,42372)  // Vous devez vous approcher de la créature pour lui parler.
END
Pour NearLocation(O:Object*,I:PointX*,I:PointY*,I:Range*) Imoen doit se trouver à cette endroit précis pour que cela fonctionne. (Enfin cela dépend de la valeur mis dans "Range")

TRIGGER.png
TRIGGER.png (495.77 Kio) Vu 453 fois
Modifié en dernier par JohnBob le mar. 09 avr. 2024, 14:29, modifié 6 fois.
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

Hello,

Je te remercie pour ton message, faute d'avoir quelque chose de plus strict, je vais rester sur:

IF
InParty("El[r]in")
LOS("El[r]in",20)
Clicked([ANYONE])
THEN
RESPONSE #100
CreateCreature("C[R]ANE2",[-1.-1],0) // Crâne
TriggerActivation("C[R]ANE2",TRUE) // Crâne
END
rivvers
Ours brun
Messages : 302
Enregistré le : sam. 21 janv. 2012, 14:36
Statut : Hors ligne
.

Message par rivvers »

Faust a écrit : mar. 09 avr. 2024, 22:32 Hello,

Je te remercie pour ton message, faute d'avoir quelque chose de plus strict, je vais rester sur:

IF
InParty("El[r]in")
LOS("El[r]in",20)
Clicked([ANYONE])
THEN
RESPONSE #100
CreateCreature("C[R]ANE2",[-1.-1],0) // Crâne
TriggerActivation("C[R]ANE2",TRUE) // Crâne
END
As-tu essayé de décomposer ta condition comme ceci ?

Code : Tout sélectionner

IF
	Clicked([ANYONE])
	Name("El[r]in", LastTrigger)
THEN
	…
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

rivvers a écrit : mer. 10 avr. 2024, 18:05
Faust a écrit : mar. 09 avr. 2024, 22:32 Hello,

Je te remercie pour ton message, faute d'avoir quelque chose de plus strict, je vais rester sur:

IF
InParty("El[r]in")
LOS("El[r]in",20)
Clicked([ANYONE])
THEN
RESPONSE #100
CreateCreature("C[R]ANE2",[-1.-1],0) // Crâne
TriggerActivation("C[R]ANE2",TRUE) // Crâne
END
As-tu essayé de décomposer ta condition comme ceci ?

Code : Tout sélectionner

IF
	Clicked([ANYONE])
	Name("El[r]in", LastTrigger)
THEN
	…
Hello,
C'est exactement ce qu'il me fallait, merci beaucoup Rivvers :heart:
Répondre

Retourner vers « Cartes et Cartes du monde »

Qui est en ligne

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