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] Message d'échec suite à un forçage

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] Message d'échec suite à un forçage

.

Message par Cocrane »

Il est possible d'afficher un message lorsqu'un personnage ne parvient pas à ouvrir un container par la force.

Le problème est je n'ai pas pu coder ce point.

Voici lecode que j'ai placé dans le fichier .baf de la carte.

Code : Tout sélectionner

IF 
  PickLockFailed("S2cercueil1")
THEN
  RESPONSE #100
    DisplayStringHead(LastTrigger,@6) 
END
J'ai juste le droit au message classique: vous n'avez pas réussi à forcer la serrure. :'(

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 »

Normal, car LastTrigger ne marche pas puisqu'il est considéré comme celui de la carte, non comme celui du conteneur.

En fait, l'offset qui contient cette information est 0x0084 (Lockpick string) du bloc de ton conteneur. Pour que ça fonctionne, il faut que tu le renseignes avec @6 dans ton fichier ARE.

Petite astuce WeiDU pour le faire directement lorsque tu installes ta carte :

Code : Tout sélectionner

COPY ~TonMod/Tacarte.are~ ~override/Tacarte.are~

	SET Mon_Message	= RESOLVE_STR_REF (@6)

	READ_LONG  0x70 "cont_off"		// Offset to containers
	READ_SHORT 0x74 "cont_num"		// Count of containers

	FOR (k = 0 ; k < cont_num ; ++k) BEGIN	// Pour chaque conteneur

		READ_ASCII ("%cont_off%" + (0xC0 * k)) "contain" (32) NULL

		PATCH_MATCH ~%contain%~ WITH
			S2cercueil1	BEGIN	WRITE_LONG ("%cont_off%" + 0x84 + (0xC0 * k)) Mon_Message END
			DEFAULT
		END

	END
NOTES :
  • Tu peux zapper la déclaration de variable Mon_Message en écrivant simplement WRITE_LONG ("%cont_off%" + 0x84 + (0xC0 * k)) RESOLVE_STR_REF (@6) END, mais je l'utilise car j’emploie souvent les mêmes messages.
  • Tu peux faire la même chose avec les portes et les régions (cf. suite du message).

Code : Tout sélectionner

	READ_SHORT 0x5a "region_num"	// Count of regions
	READ_LONG  0x5c "region_off"	// Offset to regions

	READ_LONG  0xa4 "door_num"	// Count of doors
	READ_LONG  0xa8 "door_off"	// Offset to doors

	FOR (i = 0 ; i < region_num ; ++i) BEGIN			// Pour chaque région

		READ_ASCII ("%region_off%" + ("%GW_reg_size%" * i)) "name" (32) NULL

		PATCH_MATCH ~%name%~ WITH
			Bibliotheque1	BEGIN	WRITE_LONG ("%region_off%" + 0x64 + ("%GW_reg_size%" * i)) GW_Mes_Biblio1 END
			Bibliotheque2	BEGIN	WRITE_LONG ("%region_off%" + 0x64 + ("%GW_reg_size%" * i)) GW_Mes_Biblio2 END
			Bibliotheque3	BEGIN	WRITE_LONG ("%region_off%" + 0x64 + ("%GW_reg_size%" * i)) GW_Mes_Biblio3 END
			DEFAULT
		END
	END

	FOR (j = 0 ; j < door_num ; ++j) BEGIN				// Pour chaque porte

		READ_ASCII ("%door_off%" + (0xC8 * j)) "nom" (32) NULL

		PATCH_MATCH ~%nom%~ WITH
			Coffre		BEGIN	WRITE_LONG ("%door_off%" + 0x98 + (0xC8 * j)) GW_Mes_Coffre END
			DEFAULT
		END
	END
Ça t'évite d'aller chercher dans NI la valeur de l'offset pour chaque trigger-door-container que tu veux modifier, surtout si tu en ajoutes de nouveau en cours de route. ;)

Je me suis d'ailleurs créé une macro pour ça :
► Afficher le texte
Note spéciale : si tu pouvais utiliser les balises <CODE> dans tes messages de scripts, ça en simplifierait la lecture, et puis ça m'éviterait de les mettre en page. Je sais, je suis un gros fainéant. ;)
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 »

Je vois que tu maîtrises bien cette partie. ^^

J'ai utilisé ton code dans le TP2 avec un LOADTRA en amont pour signaler où se trouve le texte.

La mise à jour se fait sans erreur.

Dans DLTCEP, le container contient bien le nouveau teste dans openfail.

Par contre, dans le jeu, suite à un échec de forçage ou de crochetage, le message n'apparait pas.

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 »

Quand tu modifies une zone, lorsque tu veux tester dans le jeu, assure-toi que tu repars bien d'une sauvegarde dans laquelle tu n'as pas déjà visité la zone que tu veux patcher. Si tu ne respectes pas cette règle, tu verras systématiquement l'état de la zone enregistré dans ta sauvegarde (mémorisé dans le fichier SAV) et par conséquent, aucune de tes modifications, bien qu'elles soient passé dans le fichier ARE de l'override.
:!: 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 !
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 »

C'est noté mais ce n'est pas lié à mon cas.

Ma save est sur l'AR0015 et ensuite les PNJ sont déplacés sur la carte en question.

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 »

Certes, mais est-ce la première fois que tu te rends dans cette carte ? Si non, c'est normal que les modifs ne soient pas prises en compte comme le signale Isaya. En revanche, si oui, c'est plus qu'étrange. Dans ce cas, envoie-moi ton fichier .are pour que j'y jette un œil dans NI. Il y a peut-être un flag non coché dans ton conteneur.
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 »

Image
container.jpg

Cocrane
Fichiers joints
COM021.rar
(3.17 Kio) Téléchargé 64 fois
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 »

Bizarre, vous avez dit bizarre ? Comme c'est ...

Plus sérieusement, je ne vois rien qui cloche dans ton fichier.

Ceci dit, pour être bien sûr :

1. Es-tu certain que le message ne s'affiche pas dans la boîte de dialogue ? Car il ne s'affiche pas au-dessus du perso dans l'écran de jeu.
2. As-tu essayé de faire crocheter le conteneur par un voleur ou as-tu seulement essayé de le forcer ? Teste avec un voleur.
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 »

Dans la boite dialogue, le message n'apparait pas. Juste le message classique.

J'ai essayé de crocheter et de forcer la serrure.

A noter, j'ai enlevé le script qui était dans mon COM021.BAF

Code : Tout sélectionner

IF 
  PickLockFailed("S2cercueil1")
THEN
  RESPONSE #100
    DisplayStringHead(LastTrigger,@6) 
END
Il me semble que la config du .ARE est autonome.

Cocrane
Répondre

Retourner vers « Cartes et Cartes du monde »

Qui est en ligne

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