Affichage des résultats 1 à 9 sur 9

Discussion: [SCRIPT] Comment modifier le script d'une zone de rencontre aléatoire ?

  1. #1
    Date d'inscription
    September 2003
    Localisation
    Chiang Mai
    Messages
    877

    [SCRIPT] Comment modifier le script d'une zone de rencontre aléatoire ?

    Yop

    Voici le script de la zone AR0041. C'est une map de rencontre aléatoire à la campagne.

    Je voudrais ajouter mon combat juste après le 1er. (donc quand on arrive sur cette map pour la 2e fois). Quelle serait la meilleure solution pour moi ?

    A terme j'aimerai que le combat se déroule sur une map perso mais pour l'instant j'aimerai bien tester comme cela. ( étant donné que créer et intégrer des maps persos semble bien difficile .)

    voilàa voilu
    Code:
    IF
        OnCreation()
        Global("RandomEncounters","GLOBAL",0)
        GlobalLT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("RandomEncounters","GLOBAL",1)
            CreateCreature("RESUNA",[488.558],10) // Suna Seni
            CreateCreature("REELDAR",[500.454],10) // Eldarin
            CreateCreature("REFIGH01",[552.476],10) // Esclavagiste
            CreateCreature("REMAGE01",[427.548],10) // Magicien esclavagiste
            CreateCreature("RECLER01",[525.591],10) // Esclavagiste
            CreateCreature("RETHIE01",[585.542],10) // Esclavagiste
    END
    
    IF
        OnCreation()
        Global("RandomEncounters","GLOBAL",1)
        GlobalLT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("RandomEncounters","GLOBAL",2)
            CreateCreature("RENFELD",[208.591],2) // Renfeld
            CreateCreature("RETHUG01",[222.664],8) // Thug
            CreateCreature("RETHUG02",[261.619],6) // Mage - Magicien
            CreateCreature("RETHUG03",[268.567],4) // Thug
            CreateCreature("RETHUG04",[301.613],14) // Thug
    END
    
    IF
        OnCreation()
        Global("RandomEncounters","GLOBAL",2)
        GlobalLT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("RandomEncounters","GLOBAL",3)
            CreateCreature("ORC05",[488.558],10) // Orog
            CreateCreature("ORC05",[500.454],10) // Orog
            CreateCreature("ORC05",[552.476],10) // Orog
            CreateCreature("ORC05",[427.548],10) // Orog
            CreateCreature("REFIGH01",[525.591],10) // Esclavagiste
            CreateCreature("REFIGH01",[585.542],10) // Esclavagiste
            CreateCreature("ORC05",[589.542],10) // Orog
            CreateCreature("ORC05",[592.542],10) // Orog
    END
    
    IF
        OnCreation()
        Global("RandomEncounters","GLOBAL",3)
        GlobalGT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("RandomEncounters","GLOBAL",4)
            CreateCreature("RERAK01",[488.558],10) // Vadrouilleur
            CreateCreature("RERAK02",[500.454],10) // Vadrouilleur
            CreateCreature("RERAK03",[552.476],10) // Vadrouilleur
            CreateCreature("RERAK04",[427.548],10) // Vadrouilleur
            CreateCreature("RERAK05",[525.591],10) // Vadrouilleur
            CreateCreature("RERAK06",[585.542],10) // Vadrouilleur
    END
    
    IF
        OnCreation()
    THEN
        RESPONSE #100
            CreateCreature("REBAND01",[488.558],10) // Bandit
            CreateCreature("REBAND02",[500.454],10) // Bandit
            CreateCreature("REBAND03",[552.476],10) // Bandit
            CreateCreature("REBAND04",[427.548],10) // Bandit
            CreateCreature("REBAND05",[525.591],10) // Bandit
    END
    Dernière modification par Freddy_Gwendo ; 09/04/2016 à 17h16. Motif: Modification du titre de la discussion et mise en page
    Faites comme moi, jouez FP
    Mes soundsets : cliquez içi
    Mod : BuTcHeRY



  2. #2
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 702

    Re : Modifier le script d'une zone de rencontre aléatoire

    Si tu veux remplacer le deuxième combat, il te suffit de remplacer ces lignes :
    CreateCreature("RENFELD",[208.591],2) // Renfeld
    CreateCreature("RETHUG01",[222.664],8) // Thug
    CreateCreature("RETHUG02",[261.619],6) // Mage - Magicien
    CreateCreature("RETHUG03",[268.567],4) // Thug
    CreateCreature("RETHUG04",[301.613],14) // Thug
    par ce que tu veux.

    La variable "RandomEncounters" sert à compter la série puisqu'elle vaut 0 au début (toute variable pas encore initialisée a cette valeur), puis elle est mise à 1 avant le premier combat, puis à 2, ... par les suivants.
    Une fois que tu as passé le chapitre 3, comme aucun test n'est satisfait, c'est le dernier bloc, celui des bandits, qui sera toujours utilisé.

    Enfin bon, remplacer Renfeld, c'est une grosse bêtise, car c'est lui qui lance la quête avec les ménestrels. Bref, il faudrait au moins que tu le laisses, même si tu remplaces les autres, de façon à ne pas casser toute cette série de quêtes.

    Créer une nouvelle zone de rencontre aléatoire, cela nécessite de créer un nouveau fichier ARE (ce n'est pas bien compliqué), éventuellement avec un graphisme différent (là ça se complique). Et enfin lui associer un nouveau script de zone du même genre que celui-là, avec ses propres variables (en principe, sinon ça peut perturber le comportement des autres zones, bien qu'ici la variable soit partagée entre la ville et la campagne).
    Mais le souci, c'est qu'il faut déclarer une zone de rencontre aléatoire dans la carte du monde, plus précisément dans les transitions entre zones. Voir cette référence, plus particulièrement la partie des "Area Link". On affecte la zone nouvelle (le nom du fichier ARE) en tant que "Random encounter area 1", et on indique le pourcentage de probabilité de rencontre dans "Random encounter probability" à moins de 100 à moins que tu ne veuilles forcer la rencontre (type Drizzt en quittant la sortie des Tréfonds Obscurs).
    Le souci de la modification de la carte, c'est qu'elle n'est prise en compte que si tu recommences une partie. Car sinon le fichier WMP employé par le jeu est celui qu'il a enregistré dans le répertoire de sauvegarde. Donc, à moins de modifier le fichier WMP directement dans un répertoire de sauvegarde, et de repartir de cette sauvegarde-là, il n'y a pas moyen de tester ta modification en cours de partie.

  3. #3
    Date d'inscription
    September 2003
    Localisation
    Chiang Mai
    Messages
    877

    Re : Modifier le script d'une zone de rencontre aléatoire

    Je ne veux surtout pas supprimer Renfeld ou même les autres combats. J'aimerai toucher le moins possible au jeux original justement pour éviter ce genre de pb. (d’où mon désir de la nouvelle map).

    En attendant j'aimerai tester de placer ma rencontre entre 2 variables de combat mais sans supprimer ces combats.

    Et en fait je voudrais le placer après les orogs

    Code:
    IF
        OnCreation()
        Global("RandomEncounters","GLOBAL",2)
        GlobalLT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("RandomEncounters","GLOBAL",3)
            CreateCreature("ORC05",[488.558],10) // Orog
            CreateCreature("ORC05",[500.454],10) // Orog
            CreateCreature("ORC05",[552.476],10) // Orog
            CreateCreature("ORC05",[427.548],10) // Orog
            CreateCreature("REFIGH01",[525.591],10) // Esclavagiste
            CreateCreature("REFIGH01",[585.542],10) // Esclavagiste
            CreateCreature("ORC05",[589.542],10) // Orog
            CreateCreature("ORC05",[592.542],10) // Orog
    END
    Mais étant donné que les variables sont déjà en place, comment faire ?

    ps : au cas ou cela ne se verrait pas, je maitrise que très peu weidu
    Dernière modification par Freddy_Gwendo ; 09/04/2016 à 17h10. Motif: Mise en page
    Faites comme moi, jouez FP
    Mes soundsets : cliquez içi
    Mod : BuTcHeRY



  4. #4
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 702

    Re : Modifier le script d'une zone de rencontre aléatoire

    Ceci n'a strictement rien à voir avec WeiDU mais avec le langage des scripts. Il existe de nombreux tutorials sur les scripts. Celui de SimDingo fait office de référence. Malheureusement les images liées manquent. Cette version un peu moins complète les a, par contre.

    Rien ne t'empêche d'insérer ton combat au milieu des autres en modifiant le test de valeur de "RandomEncounters" de ceux qui suivent celui après lequel tu veux ajouter le tien. Puisque maintenant tu veux insérer ton combat en quatrième, après les Orogs qui sont le troisième, il te suffirait de tester la valeur 4 et non plus 3 pour le combat des vadrouilleurs et d'utiliser le test sur la valeur 3 pour déclencher le tien.
    Rien de plus simple en modifiant le script avec Near Infinity. Il te faudra insérer ton bloc, qui réutilisera le test actuel pour déclencher le combat des vadrouilleurs, juste après le bloc concernant les Orogs. Par ailleurs, tu feras bien passer la variable à 5 dans le bloc des vadrouilleurs, pour éviter qu'il ne se répète à l'infini (ce qui serait le cas si tu laissais la valeur à 4 dans le SetGlobal du bloc des vadrouilleurs).
    Pour tester l'efficacité de ton script ainsi modifié, rien ne vaut la modification directe avec Near Infinity.

    A vrai dire, coder des modifications de lignes existantes avec WeiDU est loin d'être simple, mais tout à fait possible. Des patchs comme le BG2 Fixpack de Gibberlins Three sont obligés de le faire. A côté la modification avec Near Infinity est très simple. Je te conseille donc de tester ton script modifié en faisant la modification à la main avec Near Infinity. Une fois qu'il fonctionnera (probablement pas du premier coup), tu pourras te poser la question de l'utilisation de WeiDU pour effectuer la modification du script de façon automatique. Mais chaque chose en son temps.

    Le recours à une nouvelle zone n'est pas du tout plus simple. Il faudrait modifier la carte du monde, comme je l'ai déjà indiqué. Faire ça avec WeiDU est loin d'être simple. Tu peux t'amuser à regarder le fichier TP2 de Stone of Askavar, par exemple, pour avoir une idée de la complexité de l'ajout d'une zone (mais ce qu'il fait, ajouter une zone "normale", est tout de même bien plus compliqué que la modification d'une transition).
    En tout cas, faire ça de façon "propre", c'est à dire compatible avec les autres mods susceptibles de modifier la carte, est autrement plus compliqué qu'un simple WRITE_quelquechose à un offset donné.
    A contrario, tu pourras te servir de Tactics comme exemple pour la modification de ce même script AR0041.BCS dans le composant "Gebhard Blucher's Random City Encounters". Tu verras que ce n'est pas forcément si compliqué que ça, même si dans ton cas il y aurait deux blocs à remplacer et non un seul.

  5. #5
    Date d'inscription
    September 2003
    Localisation
    Chiang Mai
    Messages
    877

    Re : Modifier le script d'une zone de rencontre aléatoire

    Merçi beaucoup, je vais potasser tout ça un maximum avant de revenir t'embêter à nouveau
    Faites comme moi, jouez FP
    Mes soundsets : cliquez içi
    Mod : BuTcHeRY



  6. #6
    Date d'inscription
    September 2003
    Localisation
    Chiang Mai
    Messages
    877
    Re Isaya

    Bon j'ai testé la manip avec near infinity et ça marche. (bon c'était pas trop dur)

    Donc ma question suivante serait : comment patcher ça dans le jeux ?

    J'ai look le tp2 de tactics et j'ai vu ça :

    Code:
    BEGIN @4021
    UNINSTALL ~SETUP-SOLAUFEIN.TP2~ 1
    AT_INTERACTIVE_EXIT ~VIEW tactics2\README-Tactics.txt~
    
    COPY_EXISTING ~ar0042.bcs~ ~override/ar0042.bcs~
    REPLACE_BCS_BLOCK ~tactics2/krwild/oldrand.baf~
        ~tactics2/krwild/newrand.baf~
    COPY_EXISTING ~ar0043.bcs~ ~override/ar0043.bcs~
    REPLACE_BCS_BLOCK ~tactics2/krwild/oldrand.baf~
        ~tactics2/krwild/newrand.baf~
    COPY_EXISTING ~ar0044.bcs~ ~override/ar0044.bcs~
    REPLACE_BCS_BLOCK ~tactics2/krwild/oldrand.baf~
        ~tactics2/krwild/newrand.baf~
    Est ce que REPLACE_BCS_BLOCK supprime tout les blocs existant pour les remplacer par ceux de tactics ? Si c'est le cas, c'est une action qui ne m'intéresse pas du tout. A moins que je ne me trompe ?

    Est ce que la solution de la map perso (qui pourrait très bien être la même map que AR0043 mais renommée et avec mon propre script) n'est pas meilleure pour assurer une compatibilité avec les autres mods ? (tactics modifie le script de ces zones mais aussi SCS II, et ce sont des mods quand même téléchargés par beaucoup de monde).

    J'ai lu ce tuto que je comprends à 80%.

    Est ce que modifier les area links est moins dangereux. Modifier un area link = écraser le link existant mais j'ai l'impression que de nombreux area link ne sont pas programmés pour des rencontres aléatoires.

    Bon y a un ou 2 trucs que j'ai pas compris à propos des area links mais j'en parlerai plus tard
    Dernière modification par Freddy_Gwendo ; 09/04/2016 à 17h14. Motif: Mise en page et actualisation des liens
    Faites comme moi, jouez FP
    Mes soundsets : cliquez içi
    Mod : BuTcHeRY



  7. #7
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 702

    Re : Modifier le script d'une zone de rencontre aléatoire

    Citation Envoyé par DrAzTiK Voir le message
    Bon j'ai testé la manip avec near infinity et ça marche. (bon c'était pas trop dur)
    C'est bien pour ça que je t'incitais à le faire, avant de te prendre la tête avec le patch.

    Citation Envoyé par DrAzTiK Voir le message
    Est ce que REPLACE_BCS_BLOCK supprime tout les blocs existant pour les remplaçer par ceux de tactics ? Si c'est le cas, c'est une action qui ne m'intéresse pas du tout. A moins que je ne me trompe ?
    Le bloc auquel je faisais référence (parce qu'il utilise le même script de zone) est celui-ci :
    COPY_EXISTING ~ar0041.bcs~ ~override/ar0041.bcs~
    REPLACE_BCS_BLOCK ~tactics2/gbrand/scripts/oldrand.baf~
    ~tactics2/gbrand/scripts/newrand.baf~
    Les noms et les mots ont leur importance. L'instruction permet, comme son nom l'indique, de remplacer un bloc, pas le fichier complet. Et la syntaxe est des plus simples, et bien expliquée dans la documentation :
    REPLACE_BCS_BLOCK oldFile newFile
    If the current file is a BCS file, the segment of it corresponding to oldFile is replaced with the contents of newFile. oldFile and newFile may be BCS or BAF files. If they are BAF files they will not get the benefit of AUTO_TRA.
    Si tu regardes le contenu des fichiers gbrand/scripts/oldrand.baf (que tu devrais reconnaître sans peine) et gbrand/scripts/newrand.baf, tu ne pourras pas manquer de déduire comment ça marche. Si tu as encore des doutes, installe Tactics et constate l'effet sur le fichier AR0041.BCS. Je pourrais passer des heures à essayer de l'expliquer sans que ce soit aussi clair.
    Fais attention à un point particulier : le bloc existant (old) est remplacé par le tien (new), à condition que WeiDU trouve dans le fichier BCS tel qu'il est actuellement le bloc tel que tu le lui as indiqué dans "old". Bref, si quelqu'un a déjà fait disparaître le bloc ou l'a modifié, le replace échouera et ton bloc ne sera pas installé !

    Citation Envoyé par DrAzTiK Voir le message
    Est ce que la solution de la map perso (qui pourrait très bien être la même map que AR0043 mais renommée et avec mon propre script) n'est pas meilleure pour assurer une compatibilité avec les autres mods ? (tactics modifie le script de ces zones mais aussi SCS II, et ce sont des mods quand même téléchargés par beaucoup de monde).
    Non, ça dépend d'autres facteurs. Tel que le fait que tu veuilles ajouter ta rencontre sur un liaison entre zones qui dispose déjà d'une rencontre aléatoire. Les mods que tu cites en ajoutent peut-être eux-mêmes.

    Citation Envoyé par DrAzTiK Voir le message
    J'ai lu ce tuto que je comprends à 80% :
    BG2: Creating Forced Encounters - The Gibberlings Three Forums

    Est ce que modifier les area links est moins dangereux. Modifier un area link = écraser le link éxistant mais j'ai l'impression que de nombreux area link ne sont pas programmés pour des rencontres aléatoires.
    Moins dangereux que quoi ?
    Le tutorial ne fait que modifier les rencontres des liaisons existantes, il ne crée pas de nouvelles liaisons et ne modifie pas non plus les zones reliées.

    Pour le coup, on ne fait pas d'omelette sans casser d'oeufs. Soit tu veux ajouter une rencontre entre deux zones où il n'y en a pas, auquel cas tu fais comme le tutorial (rien ne t'empêche de pointer une zone de rencontre existante et non une nouvelle), soit tu veux ajouter une rencontre là où il y en a déjà, auquel cas, il sera plus prudent de patcher le script de la zone en question. Peut-être est-il possible d'ajouter une nouvelle zone de rencontre aléatoire en deuxième position, mais comme la probabilité est commune pour la liaison, la façon dont le jeu va en tenir compte est loin d'être claire.

    Citation Envoyé par DrAzTiK Voir le message
    Bon y a un ou 2 trucs que j'ai pas compris à propos des area links mais j'en parlerai plus tard
    As-tu étudié la documentation du format WMP sur IESDP ?
    Tu peux aussi jeter un coup d'oeil aux fichiers et XNEWAREA.2DA (ajout de la Tour de garde) et XL3000.2DA (liaisons des autres zones vers la Tour de garde) qui sont assez représentatifs des données nécessaires pour ajouter une zone sur la carte et la relier aux autres. Ce mécanisme n'est pas réutilisable tel quel par des mods mais le contenu des fichiers donne une bonne indication des paramètres nécessaires.

    En tout cas, comme l'indique quelqu'un dans le sujet du tutorial, il faut bien garder à l'esprit que la carte du monde est stockée dans les sauvegardes. Donc il faut impérativement recommencer complètement une partie pour observer des modifications sur la carte du monde, quelle qu'en soit la nature !
    A contrario, modifier un script existant garantit une prise en compte immédiate, comme tu as déjà pu le constater.

  8. #8
    Date d'inscription
    September 2003
    Localisation
    Chiang Mai
    Messages
    877

    Re : Modifier le script d'une zone de rencontre aléatoire

    COPY_EXISTING ~ar0041.bcs~ ~override/ar0041.bcs~
    REPLACE_BCS_BLOCK ~tactics2/gbrand/scripts/oldrand.baf~
    ~tactics2/gbrand/scripts/newrand.baf~
    Finalement cette commande écrase les fichiers au lieu de les patcher non ? (enfin ça les patch dans un certains sens mais seulement après avoir tout écrasé).

    Si j'ai bien compris la commande , elle me sera peut être utile par la suite mais en l'occurence, c'est vraiment pas bien dans ce cas là. Il y a impossibilité de connaitre les blocs exact du script de ces AREA pour chaque joueur. Certains vont avoir un installation original, d'autres vont installé tactics, d'autres SCSII (et le composant de ce mod est encore pire car les blocs doivent beaucoup moduler selon l'installation des autres composants de SCSII).

    Finalement cette commande écrase les fichiers au lieu de les patcher non ? (enfin ça les patch dans un certains sens mais seulement après avoir tout écrasé).


    C'est pour ça que je dis que créer une zone de rencontre entre 2 zones ou le jeux original n'en prévoit pas et ou les composants de tactics et SCS II n'en prévoient pas non plus est beaucoup plus sur non ? (je parle en vu d'une futur hypothétique compatibilité entre mod)


    Pour programmer une rencontre aléatoire sur une map perso :

    Je vais dans near infinity , wordlmap.WMP, Edit, map entry0, edit
    ==> j'atterris une sur page avec tous les 13 champs, 24 area entry et les tous les area links.

    Déjà je comprends pas que dans les 13 champs :
    Map: WORLDMAP.MOS
    Width: 1470
    Height: 700
    Unknown: 02 00 00 00 h
    Name: Promenade de Waukyne
    Unknown: 07 00 00 00 h
    Unknown: 07 00 00 00 h
    # area entries: 25
    Area entries offset: c8 h
    Area link entries offset: 1838 h
    # area link entries: 451
    Map icons: MAPICONS.BAM.

    Pourquoi c'est la promenade de waukine qui est toujours inscrit a name ?

    Et pour aller droit au but, c'est quoi un entry et c'est quoi un link ?

    Je lis : each exit from the area has an Area Link

    Il y a combien d'exit par area ?

    As-tu étudié la documentation du format WMP sur IESDP ?
    Oui mais j'ai pas l'impression que ce site aide beaucoup les profanes... perso pour le moment j'ai du mal a en retirer quelque chose
    Dernière modification par DrAzTiK ; 14/12/2009 à 04h39.
    Faites comme moi, jouez FP
    Mes soundsets : cliquez içi
    Mod : BuTcHeRY



  9. #9
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 702

    Re : Modifier le script d'une zone de rencontre aléatoire

    Citation Envoyé par DrAzTiK Voir le message
    Finalement cette commande écrase les fichiers au lieu de les patcher non ? (enfin ça les patch dans un certains sens mais seulement après avoir tout écrasé).
    Non, elle n'écrase rien, elle remplace old par new. C'est à toi d'être intelligent pour que le remplacement ne devienne pas un écrasement.
    Dans un traitement de texte, quand je fais un remplacement de "mot" par "nom", j'écrase bien "mot". Mais si je dis de remplacer par "mot nom", je me suis contenté d'ajouter "nom" et j'ai utilisé "mot" pour fixer l'endroit après lequel je voulais ajouter "nom".
    Avec les scripts et les patchs WeiDU, c'est pareil.

    Citation Envoyé par DrAzTiK Voir le message
    Si j'ai bien compris la commande , elle me sera peut être utile par la suite mais en l'occurence, c'est vraiment pas bien dans ce cas là. Il y a impossibilité de connaitre les blocs exact du script de ces AREA pour chaque joueur. Certains vont avoir un installation original, d'autres vont installé tactics, d'autres SCSII (et le composant de ce mod est encore pire car les blocs doivent beaucoup moduler selon l'installation des autres composants de SCSII).

    C'est pour ça que je dis que créer une zone de rencontre entre 2 zones ou le jeux original n'en prévoit pas et ou les composants de tactics et SCS II n'en prévoient pas non plus est beaucoup plus sur non ? (je parle en vu d'une futur hypothétique compatibilité entre mod)
    C'est exactement le même problème : comment seras-tu sûr qu'un autre mod ne va pas chercher lui-aussi à modifier une liaison entre zones particulière (qu'il avait vu libre dans une configuration quelconque de mods) pour caser sa rencontre à lui, et comme par hasard la même que toi ?

    Tant que tu ne fais pas cette modification sur une liaison vers ou depuis une zone toute nouvelle sur la carte, ajoutée par ton propre mod, tu ne peux pas être certain qu'il ne va pas y avoir un conflit avec un autre mod.

    A contrario, avec un script tel que AR0041.BCS, tu pourras toujours t'en sortir. A moins qu'un mod ne s'amuse à casser toute la séquence de quête des ménestrels, il est obligé de respecter le deuxième combat. Tu peux donc t'appuyer sur la valeur de la variable "RandomEncounters", à 2 après la rencontre.
    Les patchs utilisant EXTEND_TOP et EXTEND_BOTTOM sont fiables à 100 %, c'est à dire que ton code sera systématiquement ajouté. Dans le cas de ce script, ajouter à la fin est une impasse : le dernier bloc actuel est toujours actif si aucun autre test ne réussit, donc tout code ajouté après ne sera jamais atteint.
    Ajouter au début d'un script est une lourde responsabilité : en cas de défaut dans le ou les blocs ajoutés, tu peux foutre en l'air toute la suite du script ! Par conséquent, sauf dans des cas particuliers comme ce script, où ajouter à la fin n'est pas une option, il vaut mieux éviter d'utiliser EXTEND_TOP.

    Ici, ton bloc ajouté au début pourrait être :
    Code:
    IF
        OnCreation()
        // Mettre 1 pour avant le combat où Renfeld est trouvé, 2 pour juste après, etc
        Global("RandomEncounters","GLOBAL",1)
        Global("MaVariableAMoi","GLOBAL",0)
        GlobalLT("Chapter","GLOBAL",4)
    THEN
        RESPONSE #100
            SetGlobal("MaVariableAMoi","GLOBAL",1)
            // Surtout ne pas modifier "RandomEncounters" pour qu'elle reste à 1 ou 2 ou autre, selon ton choix
            // Mes méchants à moi
            CreateCreature("MONSTRE1",[222.664],8)
            CreateCreature("MONSTRE2",[280.664],8)
            ...
    END
    Bref, je préserve la séquence existante en utilisant une variable personnelle pour tracer le fait que mon combat ait eu lieu. Et j'utilise la valeur particulière de la séquence existante pour choisir où exactement je veux que mon combat intervienne dans la séquence.
    Si tu as des conditions supplémentaires ou en moins par rapport au test que tu reprends, autrement dit si tu ne reprends pas à l'identique un test existant en ajoutant juste ton ou tes tests de variable en plus, tu risques de devoir ajouter plusieurs blocs avec des conditions adaptées. C'est en particulier le cas si tu veux avoir des OU dans ta logique de déclenchement.
    Suggestion : faire au plus simple pour éviter d'avoir quelque chose qui ne fonctionne pas dans des cas particuliers.

    Citation Envoyé par DrAzTiK Voir le message
    Pourquoi c'est la promenade de waukine qui est toujours inscrit a name ?
    Parce que.
    Désolé, mais il n'y a rien à expliquer : le format WMP prévoit qu'il y ait ici une référence au nom de la carte. Dans un jeu mono-carte comme BG ou BG II, il y a un nom d'une zone quelconque, selon ce qu'a décidé le concepteur. Je doute que ce nom apparaisse dans le jeu. C'est sûr que s'il avait pointé sur le texte qui dit "Carte du monde" et qui sert sur l'écran du même nom, ce serait plus simple à comprendre.
    Dans Icewind Dale, qui a deux fichiers WM mono-carte, que le jeu peut alterner (le jeu et l'extension), chaque carte a pour cette position un nom pertinent, "Val de Bise" ou "Heart of Winter". Je ne sais même pas si ce nom apparaît quelque part dans le jeu.
    Dans Icewind Dale II, qui a un fichier WMP comportant 3 cartes (3 Map Entries), chacune a son nom. J'ignore également si le jeu en fait quelque chose.

    Citation Envoyé par DrAzTiK Voir le message
    Et pour aller droit au but, c'est quoi un entry et c'est quoi un link ?
    Une "Entry", c'est une zone qui apparaît sur la carte : c'est pour ça qu'elle pointe sur un xxx.ARE et qu'elle a au moins un flag qui dit si elle est visible ou pas dès le début.
    Un "Link", c'est ce qui définit comme on peut se rendre d'une zone à un autre, et en combien de temps. Une liaison part toujours de la zone sélectionnée et permet d'aller à la zone dont l'indice dans la table est indiqué en tant que "Target area entry". Bref la valeur 2 pointe sur l'"Area entry 2", soit la troisième de la table (classique début à 0 de l'indice en informatique). La liaison permet aussi d'indiquer sur quel point de la zone on arrive (via un nom de "Entrance" parmi ceux définis dans le fichier ARE de destination).

    Citation Envoyé par DrAzTiK Voir le message
    Je lis : each exit from the area has an Area Link

    Il y a combien d'exit par area ?
    C'est toi qui décide (ou plutôt le concepteur de la carte l'a fait). Il y a des sorties possibles aux 4 points cardinaux. Mais cette possibilité était surtout utilisée dans BG pour le passage de zone de proche en proche, alors que dans BG II c'est plutôt une question de logique, sans impact réel. Il peut y avoir plusieurs destinations possibles depuis chaque point cardinal. Par exemple, les portes de la ville d'Athkatla mènent à tous les autres lieux du jeu, à peu de choses près.
    Comme la carte du monde est géré comme un logiciel de guidage GPS gère le réseau de routes, il suffit qu'il y ait au moins un point central comme Paris (les portes de la ville) pour qu'on puisse se rendre de Nantes (Franc-Marché) à Gap (Umar), quitte à devoir se taper plusieurs correspondances (dans le jeu, cela revient à ajouter les temps de parcours des différents petits trajets).

    Citation Envoyé par DrAzTiK Voir le message
    Oui mais j'ai pas l'impression que ce site aide beaucoup les profanes... perso pour le moment j'ai du mal a en retirer quelque chose
    C'est malheureusement vrai de tout document de référence : sans manuel d'utilisation, c'est inexploitable. A la différence que tu as des outils de visualisation des fichiers du jeu (d'ailleurs basés sur cette référence) pour commencer à se faire une idée de la façon dont c'est utilisé.
    C'est exactement comme les "docs" de certains logiciels qui ne sont que la juxtaposition des écrans d'aide pour chaque écran du logiciel. Ou comme la description de la syntaxe des fichiers D et TP2 dans la doc WeiDU. On n'imagine pas pouvoir apprendre à en faire quelque chose, et pourtant on ne peut rien faire qui sorte de l'ordinaire (les tutoriels de la doc WeiDU, par exemple) sans se référer à ces parties référence du document.
    C'est de tout même déjà mieux que se contenter du simple affichage de la carte par Near Infinity.

    Bonne continuation.

Discussions similaires

  1. [CARTES] Comment assigner un script à une carte existante du jeu qui n'en a pas ?
    Par Grenouillebleue dans le forum Cartes et Cartes du monde
    Réponses: 17
    Dernier message: 28/03/2005, 19h59
  2. [Quête] Egarement et Rencontre
    Par Boddah dans le forum Les archives des quêtes de Melandis
    Réponses: 11
    Dernier message: 30/11/2004, 17h33
  3. [TDD] Pas de rencontre avec Drizzt ?
    Par Larkam dans le forum Méga-mods : Big Picture, The Darkest Day, Shadow Over Soubar, Tortured Souls, Check The Bodies, Nev
    Réponses: 2
    Dernier message: 16/10/2004, 17h11
  4. Mode aléatoire des objets ?
    Par Bufobufo dans le forum Le Monastère du Corbeau Noir (Icewind Dale 2)
    Réponses: 4
    Dernier message: 16/02/2004, 19h42
  5. Rencontre dans une ruelle
    Par Alcior dans le forum Les archives de Lumenis
    Réponses: 4
    Dernier message: 22/10/2003, 21h29

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250