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

Remplacer le dialogue de "bonjour" d'un pnj selon condition.

Répondre
Avatar du membre
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

Remplacer le dialogue de "bonjour" d'un pnj selon condition.

.

Message par deratiseur »

Salut.

Je n'ai trouvé ça nulle part dans les tutoriels. Je voudrais faire qu'un pj qui dit "Bonjour. Êtes vous venus voir mon magasin ?" en introduction, la seule condition de ce dialogue étant "il ne m'a jamais volé", dise A LA PLACE "bonjour... ho, je vois que vous avez une très haute réputation [...] si le groupe vient lui parler avec 18 de réputation.
Comment faire si le dialogue initial ne présente que la seule condition "ne pas avoir volé" ? Comment faire pour qu'il ne soit PAS lancé, que ce soit le texte de la reputation à la place ?

Note, je ne comprend rien au instruction CHAINS, et je suis quasiment sur qu'un APPEND ne suffira pas :(
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

J'ai essayé de créer un dialogue "pour voir", mais il refuse de s'installer :
EXTEND_BOTTOM SCROLL01
IF ~HasItemEquiped("PXPMLDOR",LastTalkedToBy) Global("Pxpmldor,"LOCALS",0)~ THEN REPLY @51 GOTO PXLAMEDOR
IF ~HasItemEquiped("PXPMLDOR",LastTalkedToBy) Global("Pxpmldor,"LOCALS",3) PartyHasItem(MISCBP) PartyGoldGT(11170)~ THEN GOTO PXLDOROK
END

APPEND SCROLL01
IF ~~ THEN BEGIN PXLAMEDOR SAY @52
IF ~~ DO ~SetGlobal("Pxpmldor","LOCALS",3)~ EXIT
END

IF ~~ THEN BEGIN PXLDOROK SAY @53
IF ~~ THEN REPLY #66662 DO
~TakePartyItemNum("Pxpmldor",1) DestroyItem("Pxpmldor")
TakePartyGold(11171) DestroyGold(11717)~
CreateVisualEffect("spunhbl2",Myself)
GiveItemCreate("Pxpmldaz",LastTalkedToBy,1,1,1)~
EXIT
IF ~~ THEN REPLY #66664 EXIT
END
END
Il bloque sur "CreateVisualEffect("spunhbl2",Myself)" et il ne reconnait pas l'integer "IF ~HasItemEquiped("PXPMLDOR",LastTalkedToBy)"
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
rivvers
Ours brun
Messages : 317
Enregistré le : sam. 21 janv. 2012, 14:36
Statut : Hors ligne
.

Message par rivvers »

Bonjour deratiseur,
heureusement pour moi, je ne connais rien aux commandes weidu !
néanmoins, essayes donc ceci !
EXTEND_BOTTOM SCROLL01
IF ~HasItemEquiped("PXPMLDOR",LastTalkedToBy) Global("Pxpmldor","LOCALS",0)~ THEN REPLY @51 GOTO PXLAMEDOR
IF ~HasItemEquiped("PXPMLDOR",LastTalkedToBy) Global("Pxpmldor","LOCALS",3) PartyHasItem("MISCBP") PartyGoldGT(11170)~ THEN GOTO PXLDOROK
END

APPEND SCROLL01
IF ~~ THEN BEGIN PXLAMEDOR SAY @52
IF ~~ DO ~SetGlobal("Pxpmldor","LOCALS",3)~ EXIT
END

IF ~~ THEN BEGIN PXLDOROK SAY @53
IF ~~ THEN REPLY #66662 DO
~TakePartyItemNum("Pxpmldor",1) DestroyItem("Pxpmldor")
TakePartyGold(11171) DestroyGold(11717)~
CreateVisualEffectObject("spunhbl2",Myself)
GiveItemCreate("Pxpmldaz",LastTalkedToBy,1,1,1)~
EXIT
IF ~~ THEN REPLY #66664 EXIT
END
END
il manquait un " dans tes deux fonctions Global
et tu as inversé CreateVisualEffectObject (qui réclame un objet) avec CreateVisualEffect (qui réclame une position)...
en espérant que cela fonctionne

edit : et les " dans PartyHasItem ;)
Avatar du membre
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Merci Rivvert. Té réponse m'indiquant que mon code est farci d’erreurs bêtes m'a permis de trouver aussi pourquoi ça bloquait à la ligne 12 : un ~ en trop.
CA se compile maintenant. Alors connaisseur de weidu ou non, tu as été bien sympa, merci :)
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Bon, j'abandonne.
Je n'arrive pas à inclure mon texte en tout premier avant la réplique par défaut.

Mais j'ai contourné le problème :) Comme mon texte est lu en deuxième, je l'ai modifié pour qu'il corresponde à la suite du premier. Voilà, c'est fini :)
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
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 »

Si je comprends, tu cherches à ajouter quelque chose avant le tout premier échange prévu par les concepteurs. La seule méthode est de donner à ton nouvel état de dialogue un "poids" (weight) supérieur aux existants afin sa condition de déclenchement soit vérifiée en premier. WeiDU dispose du mot-clé WEIGHT pour fixer le poids.
Voici un tutoriel sur le principe du poids des états de dialogue.
Voici le tutoriel d'utilisation inclus dans le readme WeiDU.
:!: 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
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Si j'essaie de réutiliser un truc qui marche bien pour Todd, ça bugue

Code : Tout sélectionner

EXTEND_BOTTOM UDDROW23 0
	IF ~HasItemEquiped("pxl2btoi",LastTalkedToBy()) PartyGoldGT(9999)~ THEN GOTO PXL2BTOIL
END

APPEND UDDROW23
	IF ~~ THEN BEGIN PXL2BTOIL SAY @12011
		IF ~~ THEN REPLY #66664 DO
			~TakePartyItemNum("pxl2btoi",1)	DestroyItem("pxl2btoi")
			TakePartyGold(10000)	DestroyGold(10000)
			CreateVisualEffectObject("spcrtwpn",Myself)
			GiveItemCreate("pxl2bto2",LastTalkedToBy(),1,1,1)~
			EXIT
		IF ~~ THEN REPLY #4399 GOTO 0 //ça me dis qu'il n'y a pas de label 0. je voudrais que ça revienne au début du dialogue, quand il dit "bonjour", comment je trouve le label ?
	END
END
Modifié en dernier par deratiseur le dim. 07 mai 2023, 10:58, modifié 5 fois.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
deratiseur
Golem de fer
Messages : 3698
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Désole de vous avoir dérangé pour rien, ça marche. Weidu pour decompiler les dlg.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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