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é...
[CARTES] Ma carte fait planter le jeu
- Shinook
- Ours des cavernes
- Messages : 1102
- Enregistré le : mar. 18 mai 2004, 17:12
- Localisation : Angers
- Contact :
- Statut : Hors ligne
[CARTES] Ma carte fait planter le jeu
.
Voilà, j'ai repris la zone AR1613, j'ai enlevé tout ce qui ne m'intéressait pas, et je l'ai laissée vierge pour la tester, cependant, lorsque je la charge dans BG2 grâce à la CLUAConsole, le jeu plante à la moitié du chargement.
J'ai déjà fait ce genre de manipulation avec les cartes, mais là je ne vois vraiment pas...
Je précise qu'il n'y a ni "ambiance", ni créatures, ni animation, ni containers, ni triggers, ni entrance, enfin que dalle quoi ( à l'origine j'avais rajouté un perso, des scripts, des dialogues, mais comme ça plantait, je les ai temporairement supprimés ).
En fait, j'ai simplement copié les fichiers suivants ( .are, .mos, .tis, .wed, les 3 .bmp ) dans le répertoire override, comme d'habitude en fait...
Qu'est-ce qui ne marche pas, sachant que les fichiers sont correctement copiés et ont tous le même nom ( que j'ai changé en NBG#Oril ) :snif: ...
J'ai déjà fait ce genre de manipulation avec les cartes, mais là je ne vois vraiment pas...
Je précise qu'il n'y a ni "ambiance", ni créatures, ni animation, ni containers, ni triggers, ni entrance, enfin que dalle quoi ( à l'origine j'avais rajouté un perso, des scripts, des dialogues, mais comme ça plantait, je les ai temporairement supprimés ).
En fait, j'ai simplement copié les fichiers suivants ( .are, .mos, .tis, .wed, les 3 .bmp ) dans le répertoire override, comme d'habitude en fait...
Qu'est-ce qui ne marche pas, sachant que les fichiers sont correctement copiés et ont tous le même nom ( que j'ai changé en NBG#Oril ) :snif: ...
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Je ne sais pas si c'est la cause du problème mais les fichiers TIS dans le répertoire Override ont besoin d'un en-tête spécial. Si tu n'as pas extrait le fichier TIS avec un outil créant cet en-tête, tu auras certainement des problèmes. Je ne suis pas certain des outils qui gèrent ça correctement. Néanmoins DLTCEP devrait fonctionner.
Si tu veux reprendre les graphismes d'une zone, tu n'as pas besoin de recopier le fichier TIS et tu peux pointer sur l'original.
Je t'invite à consulter le forum de DLTCEP, je me souviens qu'il y avait eu des discussions sur ce sujet, en particulier du fait de la présence d'une fonction d'importation depuis un autre jeu comme IWD2 dans BG2.
Si tu veux reprendre les graphismes d'une zone, tu n'as pas besoin de recopier le fichier TIS et tu peux pointer sur l'original.
Je t'invite à consulter le forum de DLTCEP, je me souviens qu'il y avait eu des discussions sur ce sujet, en particulier du fait de la présence d'une fonction d'importation depuis un autre jeu comme IWD2 dans BG2.
:!: 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 !
- Shinook
- Ours des cavernes
- Messages : 1102
- Enregistré le : mar. 18 mai 2004, 17:12
- Localisation : Angers
- Contact :
- Statut : Hors ligne
.
Très bien, je vais regarder, mais je n'avais jamais fait ça avant, et ça marchait très bien :heu: . Par contre, j'ai remarqué pour le fichier .tis justement, qu'il n'était écrit qu'en minuscules lorsqu'on sauvegarde la carte, contrairement aux autres fichiers associés ( si jamais je décide de mettre des majuscules ).
Voici ce que ça donne pour mes fichiers :
NBG#Oril.are
NBG#Oril.wed
NBG#Oril.mos
nbg#oril.tis
NBG#OrilHT.bmp
NBG#OrilLM.bmp
NBG#OrilSR.bmp
Mais j'ai essayé de changer le .tis en mettant les majuscules comme pour les autres, et ça ne change rien... en tout cas, c'est bien un fichier de la carte qui fait planter.
Edit : Ca y est, c'est bon. J'ai d'abord utiliser "Delete everything in this area", j'ai refais quelques"walls", les containers, etc... et j'ai renommé mes fichiers en ARoril. Conclusion, ça marche. Donc je pense que ça pouvait venir du nom, c'est peut-être le caractère "#" qui ne fonctionnait pas...
Voici ce que ça donne pour mes fichiers :
NBG#Oril.are
NBG#Oril.wed
NBG#Oril.mos
nbg#oril.tis
NBG#OrilHT.bmp
NBG#OrilLM.bmp
NBG#OrilSR.bmp
Mais j'ai essayé de changer le .tis en mettant les majuscules comme pour les autres, et ça ne change rien... en tout cas, c'est bien un fichier de la carte qui fait planter.
Edit : Ca y est, c'est bon. J'ai d'abord utiliser "Delete everything in this area", j'ai refais quelques"walls", les containers, etc... et j'ai renommé mes fichiers en ARoril. Conclusion, ça marche. Donc je pense que ça pouvait venir du nom, c'est peut-être le caractère "#" qui ne fonctionnait pas...
- Shinook
- Ours des cavernes
- Messages : 1102
- Enregistré le : mar. 18 mai 2004, 17:12
- Localisation : Angers
- Contact :
- Statut : Hors ligne
.
( Désolé pour le double post )
Bon ça c'est réglé, maintenant j'ai un autre problème, au niveau d'un script pour enclencher une cutscene. Celle-ci ne veut pas se déclencher.
Voici le premier script "orilfirs.bcs" : ( associé à la carte créé précédemment )
La condition principale était que le groupe ait en sa possession l'objet "pommDS.itm" ( c'était la seule condition à l'origine, mais commme ça ne marchait pas, j'en ai rajouté ). Cet objet se trouve dans un container, et le script doit donc s'enclencher dès que l'objet a été pris, alors que le personnage regarde encore l'inventaire du container.
Dans IETME, lorsque j'ai créé ma carte, j'ai spécifié dans l'espace "Associated script" le nom "orilfirs" ( sans les guillemets ni l'extension du fichier ).
Voici maintenant le second script pour les actions, "orilians.bcs" :
J'ai bien vérifié que les noms de fichier étaient corrects. Les dialogues sont basiques ( 2 mots par dialogue, pour tester ), ce n'est donc pas là que ça cloche...
En gros, le personnage Orilian.cre qui a l'apparence d'un chat doit, dès que l'équipe a pris l'objet pommDS.itm, se placer sur un point de la carte, parler une première fois au PJ, puis se changer en humain ( Orilian1.cre ), parler une deuxième fois et ensuite devenir un ennemi. Là se finit la cutscene.
Qu'est-ce qui ne va pas ? :heu:
Bon ça c'est réglé, maintenant j'ai un autre problème, au niveau d'un script pour enclencher une cutscene. Celle-ci ne veut pas se déclencher.
Voici le premier script "orilfirs.bcs" : ( associé à la carte créé précédemment )
Code : Tout sélectionner
IF
PartyHasItem("pommDS")
!Dead("Orilian")
See([PC])
THEN
RESPONSE #100
ClearAllActions()
StartCutSceneMode()
StartCutScene("orilians")
END
Dans IETME, lorsque j'ai créé ma carte, j'ai spécifié dans l'espace "Associated script" le nom "orilfirs" ( sans les guillemets ni l'extension du fichier ).
Voici maintenant le second script pour les actions, "orilians.bcs" :
Code : Tout sélectionner
IF
True()
THEN
RESPONSE #100
CutSceneId(Player1)
ActionOverride("Orilian",MoveToPoint([480.336])
ActionOverride("Orilian",FaceObject([PC]))
Wait(2)
StartDialog("orilian1",[PC])
Wait(1)
CreateVisualEffectObject("SPSTRENH",Orilian)
Wait(1)
ActionOverride("Orilian",DestroySelf())
CreateCreature("Orilian1",[480.336],[PC])
StartDialog("orilian2",[PC])
ActionOverride("Orilian1",Ennemy())
EndCutSceneMode()
END
En gros, le personnage Orilian.cre qui a l'apparence d'un chat doit, dès que l'équipe a pris l'objet pommDS.itm, se placer sur un point de la carte, parler une première fois au PJ, puis se changer en humain ( Orilian1.cre ), parler une deuxième fois et ensuite devenir un ennemi. Là se finit la cutscene.
Qu'est-ce qui ne va pas ? :heu:
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Quand tu ajoutes des conditions, tu augmentes encore la probabilité que le cas ne se présente pas. Il faut que toutes les conditions soient vérifiées pour passer au corps du IF, donc c'est encore moins probable quand tu mets davantage de conditions.c'était la seule condition à l'origine, mais commme ça ne marchait pas, j'en ai rajouté
Par rapport à ton problème, peux-tu préciser si tu as utilisé le premier script comme script de zone ou plutôt comme script de trigger de proximité ? Dans le premier cas, la fonction See([PC]) ne doit pas pouvoir fonctionner. Il faudrait qu'elle soit associé à un script de trigger de proximité (genre porte ou piège) pour que ça ait des chances de marcher. Sinon, il n'y a personne (ou ici, rien, c'est à dire pas d'objet) pour voir.
Pourrais-tu préciser ce qui se passe également ? Tu dis que ça ne se déclenche pas, mais qu'est ce qui te fait dire ça ? Fais un deuxième script on ne peut plus basique (un perso qui bouge, qui dit quelque chose sans dialogue, qui s'affiche au dessus du personnage, par exemple). Vois si ça marche.
Cela dit, puisque tu dis que la scène ne se déclenche pas, ça n'a probablement rien à voir avec le second script.
Par rapport à celui-ci, es-tu sûr que tu puisses considérer que le dialogue va bloquer la suite du script. Il me semble au contraire que ça ne marche pas. Néanmoins, ce n'est pas ce qui empêche le script de démarrer au moins jusqu'au premier dialogue.
Le StartDialog() avec [PC] est surprenant, étant donné que c'est déjà Player1 qui est en action du script (via CutSceneID(Player1)). J'aurais plutôt vu "Orilian" comme objet du dialogue dans ce cas (je ne suis pas sûr de ça néanmoins).
:!: 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 !
- Shinook
- Ours des cavernes
- Messages : 1102
- Enregistré le : mar. 18 mai 2004, 17:12
- Localisation : Angers
- Contact :
- Statut : Hors ligne
.
En fait, pour l'action StartDialog(), j'étais pas sûr du nom à mettre, et au début j'avais mis "Orilian" justement.
Je vais essayer quelque chose simple, comme tu le dis. En fait, le premier script est un script de zone ( normalement ). Qu'est-ce que tu appelles un script de trigger de proximité ? :heu:
Pour les conditions, il me semblait bien que tout ça servait à rien . Donc je vais essayer ton idée, et je verrai.
Quand je dis que ça ne s'enclenche pas, ben c'est que je peux toujours cliquer sur l'écran, le ClearAllActions() ne marche pas non plus, etc...
Edit : J'ai essayé en mettant seulement une condition ( avoir l'objet ), et j'ai mis 2 actions : DisplayStringHead('texte') et ActionOverride("Orilian",DestroySelf()), marche toujours pas :snif: ( rien ne se passe, le jeu continue normalement ).
Je vais essayer quelque chose simple, comme tu le dis. En fait, le premier script est un script de zone ( normalement ). Qu'est-ce que tu appelles un script de trigger de proximité ? :heu:
Pour les conditions, il me semblait bien que tout ça servait à rien . Donc je vais essayer ton idée, et je verrai.
Quand je dis que ça ne s'enclenche pas, ben c'est que je peux toujours cliquer sur l'écran, le ClearAllActions() ne marche pas non plus, etc...
Edit : J'ai essayé en mettant seulement une condition ( avoir l'objet ), et j'ai mis 2 actions : DisplayStringHead('texte') et ActionOverride("Orilian",DestroySelf()), marche toujours pas :snif: ( rien ne se passe, le jeu continue normalement ).
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Exemple de trigger de proximité : sous la Couronne de Cuivre, les tuyaux qu'il sélectionner dans le bon ordre pour obtenir Lilacor. Dans Near Infinity, charge la zone AR0404 et va voir dans ce qu'il appelle "Points of interest". Tu peux associer un script : c'est ce qui permet au jeu de gérer les contrôles sur l'ordre d'utilisation et envoyer un éclair en cas d'erreur.
C'est vrai que dans ton cas, tu peux utiliser le script de zone.
Ton premier script a un gros problème : si tu ne mets comme condition que le fait d'avoir l'objet, ton bout de script va s'exécuter en boucle. Pour éviter ça, il te faudrait une autre condition, une variable par exemple, que tu modifierais dès que tu arrives dans le corps du IF (la partie THEN) pour éviter que la condition soit encore vrai après que tu aies exécuté ce que tu veux faire. Ou alors, il te faut reprendre rapidement l'objet pour éviter que la condition soit encore vrai la fois suivante (le rafraîchissement d'IA indiqué dans les options, par défaut 30, indique le nombre de fois par seconde où le script est réévalué).
Exemple:
L'absence de ce genre de contrôle pourrait provoquer un problème dans le jeu car il essaierait de lancer en permanence la cutscene.
C'est vrai que dans ton cas, tu peux utiliser le script de zone.
Ton premier script a un gros problème : si tu ne mets comme condition que le fait d'avoir l'objet, ton bout de script va s'exécuter en boucle. Pour éviter ça, il te faudrait une autre condition, une variable par exemple, que tu modifierais dès que tu arrives dans le corps du IF (la partie THEN) pour éviter que la condition soit encore vrai après que tu aies exécuté ce que tu veux faire. Ou alors, il te faut reprendre rapidement l'objet pour éviter que la condition soit encore vrai la fois suivante (le rafraîchissement d'IA indiqué dans les options, par défaut 30, indique le nombre de fois par seconde où le script est réévalué).
Exemple:
Code : Tout sélectionner
IF
PartyHasItem(...)
GLOBAL("DejaTeste", "ARxxxx", 0)
THEN
RESPONSE #100
SetGlobal("DejaTeste", "ARxxxx", 1)
...
END
:!: 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 !
- Shinook
- Ours des cavernes
- Messages : 1102
- Enregistré le : mar. 18 mai 2004, 17:12
- Localisation : Angers
- Contact :
- Statut : Hors ligne
.
J'y ai déjà pensé, et j'ai fait exactement comme ça, mais ça n'avait pas marché. Je peux toujours retenter, et on verra...
Edit : Toujours pas :snif: , j'ai même changé la condition en mettant InParty("Nalia") ( j'ai vérifié que je l'avait adns le groupe quand même ). La cutscene ne s'enclenche pas même avec la variable.
Edit 2 : Et si je faisait tout en un seul script, ça marcherait ?
Edit : Toujours pas :snif: , j'ai même changé la condition en mettant InParty("Nalia") ( j'ai vérifié que je l'avait adns le groupe quand même ). La cutscene ne s'enclenche pas même avec la variable.
Edit 2 : Et si je faisait tout en un seul script, ça marcherait ?
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Ajouter des conditions, même si tu es sûr qu'elles sont vérifiées, ne changera rien. Je rappelle que les conditions "s'ajoutent" et que si le problème vient du fait qu'une n'est pas vérifiée, ces ajouts ne changeront rien au problème.
On pourrait penser que ton premier script n'est pas accepté comme script de zone. Essaie ce simple script :
Remplace "ARxxxx" par ton nom de zone, ou encore pas "GLOBAL", au pire.
Lance le jeu, va dans la zone. Ouvre la console et va lire la valeur de la variable "Essai". Si elle n'est pas à 1, c'est que ton script n'est pas pris en compte comme script de zone. Commence par régler ce problème là avant d'aller plus loin.
Pour répondre à ta deuxième question, je pense qu'il vaut mieux éviter de scripter des scènes au milieu d'un script de zone. J'ai un peu galéré avec les scripts de téléportation d'Epic Endeavours parce qu'ils faisaient justement ça.
On pourrait penser que ton premier script n'est pas accepté comme script de zone. Essaie ce simple script :
Code : Tout sélectionner
IF
Global("Essai", "ARxxxx", 0)
THEN
RESPONSE #100
SetGlobal("Essai", "ARxxxx", 1)
END
Lance le jeu, va dans la zone. Ouvre la console et va lire la valeur de la variable "Essai". Si elle n'est pas à 1, c'est que ton script n'est pas pris en compte comme script de zone. Commence par régler ce problème là avant d'aller plus loin.
Pour répondre à ta deuxième question, je pense qu'il vaut mieux éviter de scripter des scènes au milieu d'un script de zone. J'ai un peu galéré avec les scripts de téléportation d'Epic Endeavours parce qu'ils faisaient justement ça.
:!: 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 !
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Va voir la documentation sur la console sur le site "Le monde de Baldur's Gate" (lien en haut à gauche) ou sur IESDP. Le deuxième paramètre est comme dans les scripts, il me semble, à savoir "GLOBAL", "ARxxxx", "LOCAL". Donc utilise celui que tu as mis dans ton script.
La modification de variable à la main depuis la console a effet direct dans le jeu. Donc ça pourrait déclencher quelque chose selon le script de la zone.
Un dernier truc qui me vient à l'esprit pour ton problème. La précédence des scripts entre les "master areas" et les autres peut aussi poser des problèmes. Si le test simple que je te proposais ne donne rien, jette un coup sur ce problème. Le tutorial de SimDingo sur les scripts (site PPG) en parle, il me semble.
La modification de variable à la main depuis la console a effet direct dans le jeu. Donc ça pourrait déclencher quelque chose selon le script de la zone.
Un dernier truc qui me vient à l'esprit pour ton problème. La précédence des scripts entre les "master areas" et les autres peut aussi poser des problèmes. Si le test simple que je te proposais ne donne rien, jette un coup sur ce problème. Le tutorial de SimDingo sur les scripts (site PPG) en parle, il me semble.
:!: 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 !
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
As-tu bien consulté la documentation du site IESDP ? Utilises-tu la bonne syntaxe de commande (précédé par CLUAConsole:, variable et GLOBAL ou ARxxxx entre guillemets, virgules de séparation) ? Je peux confirmer que la commande fonctionne parfaitement également pour des variables dites locales (associées à un personnage) comme les variables de romance, pour peu que le personnage en question soit sélectionné ou pointé par le curseur de la souris.
Si tu as un message d'erreur, c'est un défaut d'écriture de la commande. Une variable qui n'existe pas donnera la valeur 0.
Si tu as un message d'erreur, c'est un défaut d'écriture de la commande. Une variable qui n'existe pas donnera la valeur 0.
:!: 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 !
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Pour arriver à lire une variable d'une zone, il me semble qu'il faut que tu sois présentement sur la carte en question. Peut-être est-ce pour ça qu'il te dit qu'il ne trouve pas la variable.
Essaie avec une variable globale pour comparer (une existante et une fausse).
Essaie avec une variable globale pour comparer (une existante et une fausse).
:!: 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 !
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités