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

[MOD] Mod Sheratan: pot-pourri de problèmes techniques

Avatar du membre
Akadis
Adepte de Grondemarteau
Araignée éclipsante
Messages : 1224
Enregistré le : lun. 28 avr. 2003, 10:58
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par Akadis »

Je me permet de te rappeler que comme tu as changé la valeur du timer du premier bloc (que j'avais mis à TWO_MINUTES) en ONE_DAY le deuxième dialogue n'arrivera qu'au bout de 2 jours.
Donc remet le à TWO_MINUTES et reteste. Si ça ne résout pas ton problème, il faudra voir le fichier .d

Par contre il a une boulette (qui n'a aucune incidence dans l'état actuel du développement du mod) dans le fichier .baf que je t'ai envoyé. Dans les triggers du 2è bloc, il faut modifier ce qui est en bleu et effacer ce qui est en rouge :
IF
InParty("#Sheratan")
Detect(Player1)
!StateCheck(Player1,STATE_SLEEPING)
!Detect([ENEMY])
GlobalTimerExpired("#SherTimer","LOCALS")
OR(2)
Global("#SherRomanceActive","GLOBAL",1)
Global("#SherRomanceActive","GLOBAL",2)
OR(13)
Global("#SherLoveTlk","LOCALS",2)
Global("#SherLoveTlk","LOCALS",4)
Global("#SherLoveTlk","LOCALS",5)
Global("#SherLoveTlk","LOCALS",6)
Global("#SherLoveTlk","LOCALS",8)
Global("#SherLoveTlk","LOCALS",10)
Global("#SherLoveTlk","LOCALS",12)
Global("#SherLoveTlk","LOCALS",14)
Global("#SherLoveTlk","LOCALS",16)
Global("#SherLoveTlk","LOCALS",18)
Global("#SherLoveTlk","LOCALS",20)
Global("#SherLoveTlk","LOCALS",22)
Global("#SherLoveTlk","LOCALS",24)
Global("#SherLoveTlk","LOCALS",26)
THEN
RESPONSE #100
IncrementGlobal("#SherLoveTlk","LOCALS",1)
SetGlobalTimer("#SherTimer","LOCALS",ONE_DAY)
END
Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un M. P
Responsable de la maintenance du mod
Kim
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 »

Tu n'as pas besoin de t'excuser, Ripper, c'est toi qui fait tout le boulot et à ton rythme.

Tu n'as pas précisé si tu avais toujours le dialogue de rappel de la mission. Si c'est le cas, pourrais-tu enfin avoir l'obligeance de me montrer le bloc du dialogue qui le fait apparaître ? ;)
Si ton problème se limite à l'absence de dialogue, Deecy a très certainement raison.
Par contre, si après avoir résolu la question du timer, tu as toujours le dialogue de rappel de la mission, il te faudrait un moyen d'identifier quel bloc du script déclenche l'utilisation du dialogue. Tu pourrais utiliser une ligne comme celle-ci :

Code : Tout sélectionner

DisplayStringHead(Myself,46150)    //This will display the text 'quaffs a potion'
Le texte (du genre "bois une potion") s'affiche au dessus du personnage dans l'aire de jeu.
J'ai trouvé cet exemple dans la "bible" IESDP. Je n'ai pas réussi à retrouver une liste des textes utilisés dans des scripts, peut-être sur Spellhold Studios.
Sinon, il y a aussi :

Code : Tout sélectionner

DisplayString(Myself,46150)
qui lui affiche le texte, précédé du nom du personnage, dans la fenêtre de message. Il apparaîtra donc juste avant ton dialogue.

Mets ça uniquement dans un bloc ou choisis des textes différents pour distinguer les blocs. Tu peux aussi mettre tes propres textes comme un texte WeiDU classique (inutile de t'embêter avec un fichier tra) :

Code : Tout sélectionner

DisplayString(Myself,~Bloc de romance~)
Si au final, ta réplique de rappel apparaît alors que c'est la condition de romance a déclenché l'appel au dialogue, c'est que les conditions pour le choix de la réplique dans le fichier dialogue ne sont pas bonnes (ne correspondent pas au script).
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Hello, une brève apparition que me permet mon agenda...Je n'ai pas le temps de modifier selon tes dires, Deecy donc je ne pourrais répondre concrètement que demain, ou bien aujourd'hui si j'ai une minute pour modifier.

En ce qui concerne ta requête, Isaya, non je n'ai plus ce rappel de mission, il y a seulement que le dialogue 2 ne se déclenche pas. :)

Donc voilà, affaire à suivre, si j'ai le temps dans une heure ou deux je teste tout ça.

Merci de votre amabilité.
Avatar du membre
Magnus
Araignée colossale
Messages : 517
Enregistré le : dim. 30 déc. 2007, 13:09
Statut : Hors ligne
.

Message par Magnus »

C'est déjà quelque chose d'assez extraordinaire que de savoir programmer un mod,alors peu importe le temps nécessaire pour la réalisation du projet...Juste un peitit détail sur le lieu du recrutement.Je vais sans doute dire une évidence mais il faudrait que Sheratan soir recrutable très tôt dans le jeu(dans la couronne de cuivre,par exemple...
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Je ne suis pas de cet avis. Faire un mod, oui, mais dans un délai raisonnable. D'année en année, avec le vieillissement du jeu, les fans diminuent...Certains anciens de la Couronne le constatent également, que le forum est de moins en moins fréquenté...Rien de surprenant à cela. Donc sortir un mod, oui, mais le plus rapidement possible, sans qu'il soit pour autant bâclé mais soit au contraire un modèle de méticulosité (je ne parle pas de la qualité 'scenaristique' ou autre.) Alors, déjà qu'il ne soit pas prêt avant 2009 selon mon prognostic, c'est déjà un peu juste...Je ne compte pas traîner là dessus.

En ce qui concerne le mod de recrutement, tout est stipulé dans le sous-forum du mod, mais je vais te mâcher le travail: Sheratan est dors et déjà recrutable dans l'auberge du Mithrest, à la Promenade de Waukyne. Il n'apparaît plus si Charname a dépassé 300 000 d'xp.

Merci de t'intéresser à ce travail. ;)
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Un double-post pour signaler que le problème est résolu (merci Deecy, merci Isaya). La romance marche à la perfection, avec la p'tite musique en sus. A la prochaine sur ce topic, pour d'autres extraordinaires aventures!
Avatar du membre
Magnus
Araignée colossale
Messages : 517
Enregistré le : dim. 30 déc. 2007, 13:09
Statut : Hors ligne
.

Message par Magnus »

Au fait,par simple curiosité,qu'est-ce qui t'as incité a programmer une restriction pour le recrutement de Sheratan?On atteint rapidement les 300 000 points d'expérience dans le jeu.(j'avoue que cette remarque n'est pasdésinteressée car j'aimerais recruter Sheratan dans ma partie actuelle :gign: ).
Avec foi et bravoure.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Oui, ça peut paraître étrange voire même peu pratique, comme tu le soulignes si bien, mais il y a vraiment une bonne raison derrière cela: le mod est riche de dialogues, étalés sur tout le jeu, depuis son début jusqu'à sa fin et il serait dommage de ne pas en profiter. Recruter Sheratan après l'Ombre-Terre par exemple serait comme donner de la tarte à un cheval. Une deuxième raison bien plus 'technique' celle-là et d'importance égale: si Charname va recruter Sheratan au level 20, Sheratan lui ne sera que level 8. C'est pour éviter ce genre de surprise désagréable aux non adeptes de la CLUA, car Sheratan ne se synchronise pas sur le level de Charname.
Par contre, sachant que le mod ne sera pas prêt avant 2009, je te propose un deal tout bête: je te donne la bêta 1.5 qui est stockée sur le site, c'est à dire:

- Sheratan + Blaidd
- Le Kit (SoA + ToB)
- L'Armure
- La limite d'xp retirée

Donc un personnage parfaitement jouable, recrutable à tout instant au Mithrest (Promenade de Waukyne). Tu n'as aucun rapport à rendre, ce n'est pas un bêta-testing, je te le donne, tout simplement, mais il n'y a aucun dialogue, aucune quête, aucun banter. Le mod est pratiquement A POIL.

Cependant, Sheratan est de level 8 (si je me souviens bien), donc il faudra le booster avec la CLUA pour l'adapter aux levels de ton groupe.

Avec ta parole express que tu ne divulgueras ce mod nulle part, que ce soit sur CdC ou dans n'importe quel autre cadre.
Avatar du membre
Magnus
Araignée colossale
Messages : 517
Enregistré le : dim. 30 déc. 2007, 13:09
Statut : Hors ligne
.

Message par Magnus »

Il faut que je vois. Je ne savais pas que l'insertion de dialogues prenait autant de temps.La perspective de jouer avec un personnage accompagné d'un familier est vraiment très alléchante.Faire un test ne me dérangerait pas bien au contraire,mais c'est juste pour la cohérenceRP

Je te remercie pour ta proposition ,qui est très généreuse,mais je crois que je préfère attendre.Par contre ,quand le développement des dialogues sera avancé,cela ne me dérangerait pas de tester.
Avec foi et bravoure.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Si, ça prend énormément de temps, c'est même cela qui en prend le plus. Là pour te donner une idée, je suis seulement à la programmation du troisième dialogue de romance (et l'amitié a même pas été écrite encore). C'est un travail de fourmi. Mais tu as tous les détails de la progression du mod ici : http://www.baldursgateworld.fr/lacouron ... u-mod.html

Quand tu jugeras le moment opportun et si tu veux vraiment t'enregistrer comme bêta-testeur, ou tout simplement jouer le perso pour ton 'propre compte', fais-moi signe.
Avatar du membre
Magnus
Araignée colossale
Messages : 517
Enregistré le : dim. 30 déc. 2007, 13:09
Statut : Hors ligne
.

Message par Magnus »

Je veux bien m'enregistrer comme testeur,oui.
Avec foi et bravoure.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Coucou! Me revoilà dans cet endroit béni du forum!

En ce moment, j'évolue en solo au niveau de la prog, et j'ai donc réussi sans problème à implanter un perso secondaire (Mallory), à le faire parler, faire l'entrée journal et le faire dégager, ainsi que le dialogue entre Seva et Charname qui s'ensuit.
J'ai également réussi à implanter les deux persos secondaires suivants nécessaires à la suite de l'intrigue. Le problème, c'est qu'aucun des deux ne veut parler ("***** n'a rien à vous dire")pourtant j'ai employé le même schéma que pour le script qui fait parler Mallory. Logiquement, s'il y a un contenu .tra, si on parle de soi-même au personnage, il doit déballer son texte, non?

Donc, la seule question que j'aurais, c'est celle-ci:

est-ce que, dans le cas d'un dialogue à 4 (2 persos secondaires, Severian et Charname), c'est le même principe que pour un dialogue à 3? (Externs et compagnie?)

Pour faire simple, le personnage qui doit adresser la parole au groupe quand on arrive sur la zone possède également les répliques du second personnage : il n'y a qu'un seul .tra et un seul .d pour les deux personnages. Alors je me demande si ce n'est pas à cause de cela...

P.S : le .tp2 est nickel.
P.S.2 : un peu rapide comme exposé mais je dois partir au travail.
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 »

Logiquement, s'il y a un contenu .tra, si on parle de soi-même au personnage, il doit déballer son texte, non?
Ce n'est pas si simple. Comme tu l'as constaté avec les problèmes de réplique de Sheratan (je sais, il a changé de nom, mais il s'appelait comme ça à l'époque), chaque réplique d'un dialogue est précédé d'une condition pour valider son apparition. Si tu n'as pas mis de condition ou si la condition que tu as mise n'est pas vérifiée lorsque tu engages le dialogue, aucune réplique n'est valide et le personnage "n'a rien à vous dire".
Pour éviter ce problème, il y a souvent en fin de dialogue (fichier D) un bloc du genre

Code : Tout sélectionner

IF ~true~ THEN BEGIN AucuneCondition
    SAY ~Vous n'avez rien d'autre à faire.~
    IF ~~ THEN EXIT
END
de façon à ce que le personnage ait toujours quelque chose à dire dans le pire des cas.
Une autre possibilité est que tu n'aies pas associé de dialogue (DLG) ou sous un mauvais nom au personnage dans le fichier CRE. Le nom du fichier DLG est indiqué par le "BEGIN TOTO" au début du fichier D. Dans ce cas, bien évidemment, il n'aurait rien à dire. :!: Je ne sais pas si le jeu affiche ce message dans ce cas, c'est juste une hypothèse.

En ce qui concerne ton souci d'enchaînement, je ne pense pas que le nombre d'intervenants ait une influence. Si je comprends bien, les intervenants sont le personnage principal, Severian et deux autres. Si le personnage qui débute la série est celui qui a le fichier .d et .tra, je ne vois pas de raison pour que le dialogue ne commence pas. On rejoint les hypothèses ci-dessus.
Faute de voir le dialogue (tu peux masquer les textes si tu ne ne veux pas spoiler), il m'est difficile de t'en dire davantage (je ne suis pas du tout spécialiste des dialogues et surtout de la syntaxe WeiDU pour les créer).

Tu évoques l'usage d'EXTERN mais il y a bien plus simple et pratique avec WeiDU. En particulier (dans ce cas, si je l'ai bien compris), il y aurait la commande CHAIN. Elle est décrite dans un tutorial à l'intérieur de la documentation WeiDU ? Ce serait le moyen le plus simple si les personnages sont ajoutés par le mod et non des personnages existants (sinon il te faut utiliser une des déclinaisons de INTERJECT_COPY_TRANS, je pense). Le tutorial consacré à INTERJECT dans la doc WeiDU est assez révélateur de l'usage qu'on peut faire de ces commandes un peu compliquées pour éviter le recours à des EXTERN qui s'avère encore plus complexe en général.

Dans le cas de CHAIN, si le fichier DLG qu'il faut indiquer après le == n'existe pas, je ne sais pas si WeiDU le crée. Si jamais le problème est là, il te suffirait peut-être de compiler avant un fichier D pour ce second personnage reprenant ce que j'ai indiqué plus tôt. Si tu n'en as pas créé un séparément, c'est que ce personnage n'intervient que dans cette discussion et cette réplique bidon ajoutée ne sera jamais exploitée. Mais elle permettra la création préalable du fichier pour que WeiDU y ajoute les répliques propres à ton vrai dialogue.

Si tu as utilisé des EXTERN alors tu risques un problème avec la référence externe à un autre dialogue (celui du deuxième personnage) s'il n'existe pas. En particulier parce qu'un EXTERN est supposé pointer sur le numéro d'un "état" dans le dialogue visé.

PS : dire que le TP2 est nickel est un peu présomptueux quand on ne connaît pas l'origine d'un problème, Mademoiselle. ;)
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Merci Isaya, tu m'as orienté sur les .cre que j'avais effectivement oublié. Par contre, j'avais déjà mis en place les .d et .tra bidons pour le second personnage qui ne parle nulle part autrement que dans le .tra du premier personnage. Il y avait aussi une affaire de variable dans le fichier .d. Les .cre et les .d combinés faisaient que c'était la mort...
En ce qui concerne les Externs, je trouve cela très aisé à manipuler une fois qu'on a pris le pli. Je réserve surtout les CHAINS pour les personnages du jeu original, en fait.
Et en ce qui concerne le .tp2, j'ai osé dire qu'il était nickel car je n'ai fait que prendre modèle sur ce que Deecy avait fait.

Voilà, mes deux types tapent la causette, tout est bien qui finit bien.

Merci pour ton aide, j'y serai encore sinon. ;)
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 »

Déjà rentrée ! Tu faisais quoi comme boulot, du baby-sitting ? ;)

Ravi d'avoir pu t'aider à identifier une cause hors des dialogues. Parce que là, j'aurais davantage de difficultés. Félicitations pour ta constance. Bonne continuation.

PS : "constance" n'est pas tout à fait approprié puisque tu as changé le nom du personnage ;) mais j'écrivais ça surtout pour tes efforts réguliers.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Non, point du tout (heureusement) ^^ . Je fais 9h30-15h, 19h-22h en général.

Disons que constance vaut en effet pour les efforts fournis (moi, arrêter? Jamais).
Pour le reste ma foi, ça participe du façonnage du personnage...C'est un peu une sculpture, sauf que là eh bien elle a sa forme définitive.

Sur ce, bonne soirée et merci encore. ;)
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 »

Ca va nous changer des dialogues et des scripts !

Je ne sais pas si tu as testé les armes dans le jeu avant de chercher à les mettre dans les mains d'un personnage. Ton problème pourrait provenir d'un défaut des fichiers ITM proprement dits.

Quelques manipulations à faire pour s'en assurer :
  1. Tu installes le mod sans les lignes ajoutant les armes à des personnages. Une fois le mod installé, tu prends Near Infinity ou Shadow Keeper et tu ajoutes les armes à quelqu'un de ton groupe, pour simplifier. Sans forcément qu'il les porte (simple présence dans l'inventaire). L'objectif est de voir si le jeu plante et à quel moment : au chargement, à l'ouverture de l'écran d'inventaire, au moment où tu en équipes le personnage. Dans le dernier cas, c'est typiquement que les effets de l'objet posent problème (ils s'activent uniquement quand tu équipes le personnage).
  2. Si tu n'as pas de crash jusque là, fais en sorte que le personnage se serve des capacités de l'objet (s'il y a des effets particuliers lors du toucher ou une capacité déclenchable par l'icône en forme d'étoile). Si ça plante à ce moment-là, c'est un problème d'effet de l'objet.
Si tout fonctionne les objets sont à priori hors de cause.

Si ton souhait est simplement de faire en sorte que le personnage ait cette arme particulière en main, tu peux aussi le faire dans le fichier CRE. Je ne connais pas bien Creature Maker. Dans son onglet Inventory, il y a une boite de sélection qui te permet de sélectionner l'arme active. Il devrait te suffire d'indiquer le slot d'arme dans lequel tu as mis l'arme.
C'est faisable avec Near Infinity, mais un peu plus compliqué. La ligne à modifier est "Weapon slot selected". La valeur à y indiquer se calcule de la façon suivante (cf description du fichier CRE dans IESDP). Il faut indiquer le résultat de la soustraction <code du slot> - 35. Les codes de chaque slot viennent du fichier SLOTS.IDS. Pour les armes et les munitions, elles valent (extrait)

Code : Tout sélectionner

11 SLOT_AMMO0 (munitions 1 à 3)
12 SLOT_AMMO1     
13 SLOT_AMMO2     
35 SLOT_WEAPON0 (armes 1 à 4)   
36 SLOT_WEAPON1   
37 SLOT_WEAPON2   
38 SLOT_WEAPON3
Autrement dit, ça donne 0 (35 - 35) pour le premier slot d'arme et -24 (11 - 35) pour la première munition (le jeu sélectionne alors l'arme de jet appropriée).
Tu peux essayer ça pour voir si tes personnages vont bien avoir l'arme en main.

Pour revenir à WeiDU, la documentation précise qu'il déplace l'élément déjà en place à l'endroit où tu veux installer le nouvel équipement. Il semble qu'il traite le cas TWOHANDED en déplaçant ce qui est à la place du bouclier. Bizarrement la doc parle uniquement de bouger le bouclier uniquement si on lui dit de prendre l'arme en main. Hors il me semble que le jeu refuse la cohabitation arme à deux mains, même non en main et bouclier (ou deuxième arme). Ce n'est pas ton cas mais ça parait un peu bizarre et ça pourrait être capable de planter le jeu.
Puisque WeiDU cherche à déplacer l'équipement déjà dans le slot, voir le bouclier dans l'inventaire, je me demande ce qui se passe s'il n'y a plus assez de place dans l'inventaire. Est-ce le cas pour tes personnages ?


Ajout : ben, j'ai l'air malin maintenant. Tu as supprimé ton message pendant que je te répondais. Je suppose que tu as trouvé ce qui clochait.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Désolée Isaya, je ne t'avais pas vu en ligne mais c'est toujours très aimable de ta part d'y répondre.

Comme tu l'as dit en MP, j'ai donc remanipulé le problème et je l'ai pris sous un autre angle : j'ai supprimé les lignes dans le .tp2 qui devaient équiper l'arme et j'ai donc été dans Creature Maker dans le Inventory pour les appliquer aux personnages...
J'ai testé, et donc les armes apparaissent bien dans leurs inventaires, aucun problème...(sauf qu'après qu'ils soient morts, impossible pour quiconque du groupe de s'en servir, les armes apparaissent en rouge, mais pour Severian curieusement ce n'est pas rouge, mais ce n'est pas utilisable non plus, et pourtant Charname est de la classe Guerrière, elle devrait être capable de porter cette épée à deux mains).

Ensuite, j'ai donc été dans Near Infinity, faire la modification dont tu as parlé, de même que Deecy, j'ai enregistré, j'ai réinstallé...et là le jeu crash quand j'arrive dans la zone concernée.

Je vais déjà attribuer les objets à l'inventaire de mes personnages et voir s'ils peuvent s'en équiper, ce que jusque là en effet, je n'ai pas fait.

Merci ;)
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 aucun personnage à part Severian ne peut se servir des armes, c'est peut-être à cause des contraintes d'alignement, de classe, de kit ou encore les caractéristiques minimum (dextérité, force, ...) pour s'en servir (dans le fichier ITM).

Pour le crash, je soupçonne les objets eux-même. Car si le jeu ne se plante que lorsque les personnages ont l'arme en main, ça ressemble à un problème d'application des effets de l'objet.
Rimbaud
Statut : Hors ligne
.

Message par Rimbaud »

Oui, j'ai vérifié pour les classes, mais il est possible que j'ai laissé une condition, par exemple pour la Force, vu que je maîtrise tout juste DLTCEP. Je vais également creuser dans ce sens. Bonne soirée à toi ;)
Répondre

Retourner vers « Kits »

Qui est en ligne

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