Appel à testeurs : Kit Rôdeur, Elrin Idoel [Futur PNJ]

Malgré une dualité grandissante dans votre esprit lors de votre adolescence, vous passez une enfance plutôt calme et sereine à l'intérieur des remparts de Château-Suif, tandis que d'autres sont sujets à de radicaux bouleversements qui altéreront leur vie à jamais, comme dans certains récits qui vous ont été contés par Gorion.



Certaines de ces personnes se trouvent à quelques lieues de vous, mais sans possibilité de sortir de votre forteresse, c'est tout un pan de cet univers qui reste hors de votre portée.



Nul doute qu'en temps voulu vous rencontrerez des hommes et femmes dont la terrible histoire et destinée ne ressemblent à aucunes de celles qui vous aient été contées, tout comme les vôtres qui pour l'instant restent inconnues.
Répondre
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Appel à testeurs : Kit Rôdeur, Elrin Idoel [Futur PNJ]

Message par Faust »

Salut,

Je m'étais lancé il y a quelques années dans le modding afin de créer mon module de personnage, hélas suite à la perte de toutes mes données, j'avais renoncé à celui-ci.

Je me suis replongé dedans et ai pour l'instant terminé le Kit lié à au personnage du module. C'est dans l'optique de proposer un Kit équilibré que je partage celui-ci afin de pouvoir continuer mon module.

Je suis donc à la recherche de testeurs afin d'avoir des retours d'avis, conseils, remarques afin d'optimiser le kit.

Le kit est donc réservé aux Rôdeurs Demi-Elfe.

Installation avec Weidu, destinée à la version Vanilla de BG2 ou BGT

https://mega.nz/#!lo902Z4I!ZRFr4MOYhik9uPZVGSk3eBM3cDU7NMILL5ukEqV-Cmw
[LEFT]
[/LEFT]


Voici le sujet sur lequel j'avais développé une partie de mes idées:


http://www.baldursgateworld.fr/lacouron ... ement.html


Voici quelques détails:



Arme liée au 1er slot d'arme:

Animation
► Afficher le texte - Au corps à corps l'animation sera soit celle d’une épée enflammée soit celle d'une lame magique

- A distance: Elrin aura la main vide mais l'animation sera celle du sort "Epée de Mordenkainen", c'est à dire:

[ATTACH=CONFIG]7847[/ATTACH]
Caractéristiques:
► Afficher le texte
- Il s'agit d'une arme spirituelle qu'Elrin créé en manipulant son énergie magique:

-> Elle est impossible à enlever (main droite et gauche, à considérer comme un seul et même objet)

-> Ce sera un objet améliorable au cours du jeu, à chaque fois qu'un Dragon sera tué, si Elrin est dans le groupe, en plus de gagner des capacités liées à la nature du Dragon, son arme gagnera aussi des pouvoirs.

-> Arme de corps à corps / de distance (switch à volonté)

-> Double les dégâts contre les dragons.


Création de l'arme à partir du niveau 3 du personnage:
Dégâts: 2d4

Amélioration de l'arme au niveau 5:
Dégâts: 2d4+1
Thaco +1

Amélioration de l'arme au niveau 7:
Dégâts: 2d4+2
Thaco +2

Voici ce que l'on obtient à chaque Dragon tué:

Dragon Rouge: arme Thac0 +3, 2 dégâts de feu

Dragon d'Ombre: arme Thac0 +3, absorbe 3 pv à l'ennemi, 20% de chance d'absorber un niveau d'experience ce qui se traduit par [LEFT]1 force/ par attaque réussie pour une durée de 6 secondes[/LEFT]


Dragon Noir: arme Thac0 +4, 2 dégâts d'acide

Dragon Bleu: arme Thac0 +5, 2 dégâts d'électricité, 10% de chance d'étourdir pendant 6 secondes


Après avoir tué le dernier Dragon (Throne of Bhaal) on obtient :

Thac0+5

2d4+4, +2 feu +absorbe 3 pdv à l'ennemi, 20% de chance d'absorber 1 force, ainsi qu'un niveau d'experience +2 acide +2 dégâts d'électricité, 10% de chance d'étourdir pendant 6 secondes.

Caractéristiques du personnage:

► Afficher le texte
Le kit est un mix de deux classes de Prestige, avec des ajouts personnels:

Dragosh: http://www.gemmaline.com/prestige/dragosh.htm
Dracolyte: http://www.gemmaline.com/prestige/dracolyte.htm

CLASSE: Dragosh

Divinités :

Séluné

Mystra

Chauntéa


Restrictions:

- Impossible à multiclasser

- Ne peut pas porter de casque

- Ne peut pas porter de bouclier ni d'arme deux mains/deux armes car la seconde main permet de lancer des sorts

- Ne peut pas se servir de parchemins

Spécialisation martiale : Toutes les armes à une main, sauf armes de jet (fléchettes).

Magie

Sorcellerie (1xLvl 1/ 1xLvl 5/ 1xLvl 8/ 1xLvl 9/ 1xLvl 11)
► Afficher le texte
Image réfléchie
(SPWI120) (Lvl 1) Evolution: Image miroir (SPWI212) (Lvl 3)

Orbe Chromatique
(SPWI118) (Lvl 3) / Evolution: Poussière prismatique(Lvl 12) (Mêmes effets que lumières prismatique mais sur cible unique)

Projectile magique
(SPWI112) (Lvl 1)

Eclair
(SPWI308) (Lvl 6)/ Appel de la Foudre (SPPR302) (Lvl 6)/ Chaine d’éclair (SPWI615) (Lvl 14)(modelage du sort permettant l'un ou l'autre)

Cône de froid
(SPWI404) (Lvl 12)/ Sphère Glacée Otiluke (import IWD) (Lvl 12) (modelage du sort permettant l'un ou l'autre)

Convocation d'insectes
(SPPR319) (Lvl 6)Evolution: Fléau d'insectes (SPPR517) (Lvl 10) Evolution: Fatalité Rampante (SPPR717) (Lvl 18)
-----------------------------

Sortilèges (1xLvl 2/ 1xLvl 8/ 1xLvl 10)
► Afficher le texte
Fatalité
(SPPR113) (Lvl 2) Evolution: Grande Malédiction (SPWI412) (Lvl 7)

Rayon Débilitant
(SPWI221) (Lvl 3)/ Débilité mentale (SPWI509) (Lvl 10) (modelage du sort permettant l'un ou l'autre)

Dissipation de la magie[LEFT][/LEFT](SPWI325) (Lvl 5)
Immobilisation des personnes
(SPPR208) (Lvl 6) Evolution: Immobilisation des monstres (SPWI507) (Lvl 9)

Obstination bornée
(SPPR311) (Lvl 6) Evolution: Confusion (SPWI401) (Lvl 8) Evolution: Chaos (SPWI508) (Lvl 10)
----------------------------

Esotherisme (1xLvl 2/ 1xLvl 8/ 1xLvl 10)
► Afficher le texte
Cécité
(SPWI106) (Lvl 1) Evolution: Mot de pouvoir: Cécité (SPWI815) (Lvl 16) / Surdité (SPWI223) (Lvl 2) Evolution: Mot de pouvoir: Silence (SPWI612) (Lvl 13)(modelage du sort permettant l'un ou l'autre)

Hantise
(SPWI125) (Lvl 1) Evolution: Horreur (SPWI205) (Lvl 2)Evolution: Emotion (SPWI411) (Lvl 8) Evolution: Symbole: Terreur (SPPR706) (Lvl 16) / Symbole: Etourdissement (SPPR718) (Lvl 16) (modelage du sort permettant l'un ou l'autre)

Déviation des sorts mineurs
(SWI318) (Lvl 6) Evolution: Globe d'invunérabilité (SPWI406) (Lvl 8) Evolution: Renvoi des sorts mineurs (SPWI522) (Lvl 10) Evolution: Déviation des sorts (SPWI618) (Lvl 13) Evolution: Renvoi des sorts (SPWI701) (Lvl 14) Evolution: Piège à Sort (SPWI902) (Lvl 18)

Annulation des protections (SPWI321) (Lvl 6) Evolution: Mot Secret (SPWI419) (Lvl 8)Evolution: Abaissement de la résistance (SPWI514) (Lvl 11) Evolution: Perce magie(SPWI608) (Lvl 13) Evolution: Perce bouclier (SPWI805) (Lvl 16)
-----------------------------

Dons de Kossuth (1xLvl 4/ 1xLvl 8/ 1xLvl 9)
► Afficher le texte
Frappe Ardente
(Lvl 4)

Flèche enflammée
(SPWI303) (Lvl 5)

Boule de feu
(SPWI304) (Lvl 6)Evolution: Boule de feu à retardement (SPWI712) (Lvl 16) / Feu Solaire (SPWI523) (Lvl 11) (modelage du sort permettant l'un ou l'autre)

Invocation Elémentaire de feu
(SPPR605) (Lvl 14)

Implosion
(SPPR728) (Lvl 18)
--------------------------

HLA
► Afficher le texte Rage Draconique:

Ce sort ne modifie pas l'apparence du magicien, mais lui confère momentanément les pouvoirs d'un dragon.
Grâce au lien symbiotique avec son compagnon Dragon, cette capacité rapproche temporairement son utilisateur de la nature draconique de celui-ci.
Le magicien acquiert toutes les capacités du dragon ainsi paramétré: aura de peur, modificateurs de jets de sauvegarde, classe d'armure, aptitudes magiques, attaques et défenses spéciales.
Tant que la rage draconique est effective, le magicien endosse également la personnalité du dragon correspondant.



Bouclier de Kossuth:

Ce sort enveloppe le magicien dans un globe de flammes qui blesse ses adversaires et le protège de leurs coups. Non seulement ce bouclier de flammes octroie une résistance au feu de 90% et un bonus de +4 à la CA au magicien mais il le protège également de toutes les attaques provenant d'une distance maximale de 2 m autour de lui.

Toute créature essayant de traverser cette barrière de flammes subit 2D10+2 points de dégâts. Les créatures dans la zone au moment de l'invocation peuvent tenter de réussir un jet de sauvegarde contre les sorts à -2 pour résister aux flammes. La barrière reste en place pour 2 tours.
Tout adversaire l'attaquant, que ce soit à l'aide d'une arme ou d'un sort, depuis l'intérieur de ce périmètre subit 2D10+2 points de dégâts du feu.
De plus, l'intense chaleur l'immunise contre les dégâts des armes et missiles non magiques.



Gravité inversée:

Ce sort augmente la force gravitationnelle autour du lanceur de sort pendant 6 tours, faisant tomber toutes les créatures ennemies affectées.
Après récupération, les ennemis affectés se trouvent ralentis, souffrant alors des effets de "Lenteur".

Afin de resister à la force gravitationnelle, les créatures ennemies doivent réussir un jet de sauvegarde contre les sorts à -4.
A l'inverse de ses ennemis, le lanceur du sort ainsi que ses alliés se trouvent sous l'effet "Hâte améliorée".
A la fin de la durée du sortilège, la force gravitationnelle est restaurée.

Contrôle du climat, déluge:

Ce sort fait trembler les cieux : tous les ennemis du lanceur sont frappés par de la pluie acide, des éclairs et des grêlons.
Les invocations ennemies sont instantanément tuées. Les autres ennemis sont frappés par une pluie acide empoisonnée, par des éclairs ainsi que des grêlons.
L'orage dure 3 rounds, durant lesquels ils subissent, à chaque round, 1D6 points de dégâts d'électricité, 1D6 de feu, 1D6 d'acide, 1D6 de glace (jet de sauvegarde contre les sorts pour la moitié).


Ils sont également empoisonnés dès le premier round (jet de sauvegarde contre la mort) et font face à de violentes rafales de vent.

--------------------------------------------------------

Don Draconique: (1xLvl 1)
► Afficher le texte
- Invocation d’Iskorn 1 fois par jour (Forme de pseudo-dragon, 5 tours)
(Lvl 1) / Substitution (Semblable à détection faussée) (Lvl 11)(modelage du sort permettant l'un ou l'autre)

Iskorn

Lorsque les points de vie d'Iskorn tombent à 0, que ce soit sous la forme de dragon-fée ou d’Avatar d’Iskorn, il disparait comme pour les créature du sort "convocation de créature".

--------------------------------------------------------------------------------

Iskorn sous la forme de Dragon-fée :

ImageImage

- Taco: 13 Attaque: 1: 1 points de dégât
- Âge: Juvénile (4)
- CA: 5
- 24 points de vie
- Détecte les pièges

- Forme Humaine (1x Lvl 6)

- Forme véritable = Transformation en Avatar de Dragon d'Argent (Dragon d’Argent Juvénile) (1x Lvl 18)


---------------------------------------------------------

Iskorn lors du sort Avatar du Dragon d'Argent

ImageImage


Forme véritable (TOB) (Âge: Juvénile)
Animation dragon plus petite qu'Adalon, un grand merci à Freddy_Gwendo.

- Force 19
- Dextérié 10
- Constitution 17
- Intelligence 18
- Sagesse 19
- Charisme 18

- 150 PV
- CA : 0 ;
- TAC0 : 0 3 attaques : griffes = 1d8 + 3 (x2)

- Immunisé au Froid

2 Souffles :


- Cône de froid: 8d10 + 4 (SPWI503), jet de sauvegarde réussit réduit les dégâts de moitié

- Gaz paralysant : 1-8 round + 1 par catégorie d'âge (adolescent = âge 4)

- Terreur des Dragons

Sorts:

- Projectiles magiques
- Détection de l'invisibilité
- Hâte
- Boule de feu
- Zone d'air pur
- Ordre Majeur
- Chaos
- Rayon de soleil
- Apaisement
- Dissipation de la magie

---------------------------------------------------------

Capacités à débloquer

Si tue :
► Afficher le texte
-
Dragon rouge : Immunité à la peur/ 5 résistance magique / 10 résistance au feu

- Dragon d'ombre : Immunité à l’absorption de niveau et d’énergie/ 5 résistance magique/ non détectable/ attaques sournoises

-
Dragon noir :10 résistance à l’acide/ 5 résistance magique/ régénération

-
Dragon Bleu : 10 résistance à l’électricité/ 5 résistance magique (TOB)
Image
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 20483
Enregistré le : ven. 17 oct. 2003, 11:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne

Message par Mornagest »

Je pense à ça, tu devrais peut-être faire un petit descriptif ici pour que les testeurs sachent un peu à quoi s'attendre ? :) style, les capacités, les restrictions éventuelles, etc.

Si tu veux, tu peux aussi mettre "appel à testeurs" dans ton titre, histoire que ce soit plus visible encore ^^
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Mornagest a écrit :Je pense à ça, tu devrais peut-être faire un petit descriptif ici pour que les testeurs sachent un peu à quoi s'attendre ? :) style, les capacités, les restrictions éventuelles, etc.

Si tu veux, tu peux aussi mettre "appel à testeurs" dans ton titre, histoire que ce soit plus visible encore ^^
Fait, merci! :dance4:
Image
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 20483
Enregistré le : ven. 17 oct. 2003, 11:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne

Message par Mornagest »

L'idée est intéressante, le fait de lier magie et capacités de rôdeur est plutôt pas mal ^^

J'ai quelques remarques et questions :

- j'ai l'impression que certaines des capacités gagnées lorsque le pnj tue des dragons sont trop puissantes, pour son arme ou pour lui-même. 20% de chances de drainer un niveau ET un point de force à chaque coup porté, en plus de tous les dégâts infligés, ça me paraît trop.

- de même, la régénération obtenue lorsqu'il tue Nizi, ça me paraît beaucoup.

- est-ce que la restriction d'utilisation des casques est étendue aux pierres ioniques ?

- comment fonctionnent ses sortilèges, capacités et autres ? Tu les as triées selon plusieurs genres, mais je ne suis pas certain de bien comprendre :)
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Mornagest a écrit :L'idée est intéressante, le fait de lier magie et capacités de rôdeur est plutôt pas mal ^^

J'ai quelques remarques et questions :

- j'ai l'impression que certaines des capacités gagnées lorsque le pnj tue des dragons sont trop puissantes, pour son arme ou pour lui-même. 20% de chances de drainer un niveau ET un point de force à chaque coup porté, en plus de tous les dégâts infligés, ça me paraît trop.

- de même, la régénération obtenue lorsqu'il tue Nizi, ça me paraît beaucoup.

- est-ce que la restriction d'utilisation des casques est étendue aux pierres ioniques ?

- comment fonctionnent ses sortilèges, capacités et autres ? Tu les as triées selon plusieurs genres, mais je ne suis pas certain de bien comprendre :)
Concernant les 20% de chances de drainer un niveau, je me suis mal exprimé. L'arme à 20% de chance de drainer un niveau, ce qui se traduit par un gain d'un point de force temporaire pour l'utilisateur (1 round).



Concernant les casques, il ne peut porter aucun casque, ni pierre ionique malgré mon souhait au départ, un objet invisible est placé dans ce slot pour prévenir de son utilisation. C'est le seul moyen que j'ai trouvé, car patcher les casques n'est pas viable sachant que la plupart joueurs jouent avec des mods qui sont susceptibles d'en rajouter.

C'est pour palier à ces restrictions que j'ai choisis les capacités des dragons, j'ai pris en considérations les caractéristiques de chaque Dragons. Comme Nizi se trouve quasiment à la fin du jeu, je me suis dit qu'1 point de vie regagné toutes les 3 secondes ne serait pas de trop, surtout pour dans Throne of Bhaal. Penses-tu qu'il faille supprimer cette capacité ou l'amoindrir?


Concernant les sorts



Il y à 4 catégories, pour accéder à chaque catégorie, il faut d'abord cliquer sur l'icône de celle-ci pour faire apparaître les sorts en faisant parti, ce qui nécessite une action en plus, c'est un détail qui permet de donner un avantage aux classes de lanceur de sorts pures.

J'ai exclu les sorts de Nécromancie, c'est une école qui ne correspond pas l'éducation du personnage, j'ai aussi exclu les sorts de Prêtre (j'ai gardé uniquement ceux qui sont aussi présents dans le livre de sorts de Magicien).

J'ai ajouté des sorts de Druide et gardé des sorts utilisables par des ensorceleurs, pour coller à la classe Prestige de Dragosh, comme le personnage a des "racines" draconiques, il profite du même talent de magie que ceux-ci.


Comme j'ai limité le répertoire de sorts, j'ai préféré choisir des sorts ayant des doublons plus puissants par lesquels les remplacer pour simuler la monté en puissance de la classe lors du gain de niveau.
► Afficher le texte Sortilèges[LEFT](1xLvl 2/ 1xLvl 8/ 1xLvl 10)
Fatalité(SPPR113) (Lvl 2) Evolution: Grande Malédiction(SPWI412) (Lvl 7)
Rayon Débilitant(SPWI221) (Lvl 3)/ Débilité mentale(SPWI509) (Lvl 10) (modelage du sort permettant l'un ou l'autre)
Immobilisation des personnes(SPPR208) (Lvl 6) Evolution:Immobilisation des monstres(SPWI507) (Lvl 9)
Obstination bornée(SPPR311) (Lvl 6) Evolution: Confusion(SPWI401) (Lvl 8) Evolution: Chaos(SPWI508) (Lvl 10)
[/LEFT]
[LEFT][/LEFT]
[LEFT]
----------------------------
[/LEFT]
► Afficher le texte [LEFT]Esotherisme[/LEFT]
[LEFT](1xLvl 2/ 1xLvl 8/ 1xLvl 10)
Cécité(SPWI106) (Lvl 1) Evolution: Mot de pouvoir: Cécité(SPWI815) (Lvl 16) / Surdité(SPWI223) (Lvl 2) Evolution: Mot de pouvoir: Silence(SPWI612) (Lvl 13)(modelage du sort permettant l'un ou l'autre)

Hantise(SPWI125) (Lvl 1) Evolution: Horreur(SPWI205) (Lvl 2) Evolution: Manteau de terreur(SPPR416) (Lvl 8) Evolution: Symbole: Terreur(SPPR706) (Lvl 16) / Symbole: Etourdissement(SPPR718) (Lvl 16) (modelage du sort permettant l'un ou l'autre)
Déviation des sorts mineurs(SWI318) (Lvl 6) Evolution: Globe d'invunérabilité(SPWI406) (Lvl 8) Evolution: Renvoi des sorts mineurs(SPWI522) (Lvl 10) Evolution: Déviation des sorts(SPWI618) (Lvl 13) Evolution: Renvoi des sorts(SPWI701) (Lvl 14) Evolution: Piège à Sort(SPWI902) (Lvl 18)

Annulation des protections(SPWI321) (Lvl 6) Evolution: Mot Secret(SPWI419) (Lvl 8) Evolution: Abaissement de la résistance(SPWI514) (Lvl 11)Evolution: Perce magie(SPWI608) (Lvl 13) Evolution: Perce bouclier (SPWI805) (Lvl 16)[/LEFT]
[LEFT][/LEFT]
Pour les sorts offensifs, j'ai choisit de valoriser les sorts en rapport avec les éléments/ la nature pour coller à la classe de Rôdeur (à part Projectiles magiques et Orbe chromatique, qui sont pour moi la base de tout magicien, avec Image miroir).
► Afficher le texte
Eclair (SPWI308) (Lvl 6)/ Appel de la Foudre (SPPR302) (Lvl 6)/ Chaine d’éclair (SPWI615) (Lvl 14)(modelage du sort permettant l'un ou l'autre)

Cône de froid
(SPWI404) (Lvl 12)/ Sphère Glacée Otiluke (import IWD) (Lvl 12) (modelage du sort permettant l'un ou l'autre)

Convocation d'insectes
(SPPR319) (Lvl 6)Evolution: Fléau d'insectes (SPPR517) (Lvl 10) Evolution: Fatalité Rampante (SPPR717) (Lvl 18)


Frappe Ardente (Lvl 4)

Flèche enflammée
(SPWI303) (Lvl 5)

Boule de feu
(SPWI304) (Lvl 6)Evolution: Boule de feu à retardement (SPWI712) (Lvl 16) / Feu Solaire (SPWI523) (Lvl 11) (modelage du sort permettant l'un ou l'autre)

Invocation Elémentaire de feu
(SPPR605) (Lvl 14)

Implosion
(SPPR728) (Lvl 18)
Lorsque je parle de "modelage du sort permettant l'un ou l'autre" je veux dire qu'il est nécessaire de cliquer sur un icône en plus afin d'accéder à aux deux sorts concernés, ce qui rajoute encore une action à effectuer et donne l'avantage au autres classes de lanceur de sorts.

Autre point, si un sort n'est pas sélectionné après sélection de la catégorie de sorts à lancer, le quota journalier de sorts utilisables et diminué de 1, comme si un sort avait été lancé.
Image
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 20483
Enregistré le : ven. 17 oct. 2003, 11:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne

Message par Mornagest »

Faust a écrit :Concernant les 20% de chances de drainer un niveau, je me suis mal exprimé. L'arme à 20% de chance de drainer un niveau, ce qui se traduit par un gain d'un point de force temporaire pour l'utilisateur (1 round).
OK, pourquoi pas. Après tout, à ce stade du jeu, l'équipement original est du même tonneau.
Faust a écrit :Concernant les casques, il ne peut porter aucun casque, ni pierre ionique malgré mon souhait au départ, un objet invisible est placé dans ce slot pour prévenir de son utilisation. C'est le seul moyen que j'ai trouvé, car patcher les casques n'est pas viable sachant que la plupart joueurs jouent avec des mods qui sont susceptibles d'en rajouter.
La justification logique est qu'il a une tête trop grosse pour porter un casque ? Ou c'est uniquement pour lui donner un désavantage énorme (même les mages peuvent porter une pierre ionique avec ToB, ce qui leur évite un redoutable coup critique) ?
Faust a écrit :C'est pour palier à ces restrictions que j'ai choisis les capacités des dragons, j'ai pris en considérations les caractéristiques de chaque Dragons. Comme Nizi se trouve quasiment à la fin du jeu, je me suis dit qu'1 point de vie regagné toutes les 3 secondes ne serait pas de trop, surtout pour dans Throne of Bhaal. Penses-tu qu'il faille supprimer cette capacité ou l'amoindrir?
Je ne sais pas vraiment, je n'ai pas une vision très équilibrée de la fin du jeu (chapitre 7 de SoA et ToB), donc je ne sais pas si c'est trop ou pas assez ou... bref, là aussi, il faudra d'autres avis que le mien :p
Faust a écrit :
Concernant les sorts



Il y à 4 catégories, pour accéder à chaque catégorie, il faut d'abord cliquer sur l'icône de celle-ci pour faire apparaître les sorts en faisant parti, ce qui nécessite une action en plus, c'est un détail qui permet de donner un avantage aux classes de lanceur de sorts pures.

J'ai exclu les sorts de Nécromancie, c'est une école qui ne correspond pas l'éducation du personnage, j'ai aussi exclu les sorts de Prêtre (j'ai gardé uniquement ceux qui sont aussi présents dans le livre de sorts de Magicien).

J'ai ajouté des sorts de Druide et gardé des sorts utilisables par des ensorceleurs, pour coller à la classe Prestige de Dragosh, comme le personnage a des "racines" draconiques, il profite du même talent de magie que ceux-ci.


Comme j'ai limité le répertoire de sorts, j'ai préféré choisir des sorts ayant des doublons plus puissants par lesquels les replacer pour simuler la monté en puissance de la classe lors du gain de niveau.

► Afficher le texte
Fatalité
(SPPR113) (Lvl 2) Evolution: Grande Malédiction (SPWI412) (Lvl 7)

Rayon Débilitant
(SPWI221) (Lvl 3)/ Débilité mentale (SPWI509) (Lvl 10) (modelage du sort permettant l'un ou l'autre)

Immobilisation des personnes
(SPPR208) (Lvl 6) Evolution: Immobilisation des monstres (SPWI507) (Lvl 9)

Obstination bornée
(SPPR311) (Lvl 6) Evolution: Confusion (SPWI401) (Lvl 8) Evolution: Chaos (SPWI508) (Lvl 10)

Annulation des protections
(SPWI321) (Lvl 6) Evolution: Mot secret (SPWI419) (Lvl 8) Evolution: Abaissement de la résistance (SPWI514) (Lvl 11) Evolution: Perce magie (SPWI608) (Lvl 13) Evolution: Perce bouclier (SPWI805) (Lvl 16)

Cécité (SPWI106) (Lvl 1) Evolution: Mot de pouvoir: Cécité (SPWI815) (Lvl 16) / Surdité (SPWI223) (Lvl 2) Evolution: Mot de pouvoir: Silence (SPWI612) (Lvl 13)(modelage du sort permettant l'un ou l'autre)

Hantise
(SPWI125) (Lvl 1)Evolution: Horreur (SPWI205) (Lvl 2)Evolution: Manteau de terreur (SPPR416) (Lvl 8) Evolution: Symbole: Terreur (SPPR706) (Lvl 16) / Symbole: Etourdissement (SPPR718) (Lvl 16) (modelage du sort permettant l'un ou l'autre)

Déviation des sorts mineurs
(SWI318) (Lvl 6)Evolution: Globe d'invunérabilité (SPWI406) (Lvl 8)Evolution: Renvoi des sorts mineurs (SPWI522) (Lvl 10) Evolution: Déviation des sorts (SPWI618) (Lvl 13)Evolution: Renvoi des sorts (SPWI701) (Lvl 14)Evolution: Piège à Sort (SPWI902) (Lvl 18)

Orage vengeur
(SPPR722) Lvl (18)
Pour les sorts offensifs, j'ai choisit de valoriser les sorts en rapport avec les éléments/ la nature pour coller à la classe de Rôdeur (à part Projectiles magiques et Orbe chromatique, qui sont pour moi la base de tout magicien, avec Image miroir).
► Afficher le texte Eclair (SPWI308) (Lvl 6)/ Appel de la Foudre (SPPR302) (Lvl 6)/ Chaine d’éclair (SPWI615) (Lvl 14)(modelage du sort permettant l'un ou l'autre)

Cône de froid
(SPWI404) (Lvl 12)/ Sphère Glacée Otiluke (import IWD) (Lvl 12) (modelage du sort permettant l'un ou l'autre)

Convocation d'insectes
(SPPR319) (Lvl 6)Evolution: Fléau d'insectes (SPPR517) (Lvl 10) Evolution: Fatalité Rampante (SPPR717) (Lvl 18)


Frappe Ardente (Lvl 4)

Flèche enflammée
(SPWI303) (Lvl 5)

Boule de feu
(SPWI304) (Lvl 6)Evolution: Boule de feu à retardement (SPWI712) (Lvl 16) / Feu Solaire (SPWI523) (Lvl 11) (modelage du sort permettant l'un ou l'autre)

Invocation Elémentaire de feu
(SPPR605) (Lvl 14)

Implosion
(SPPR728) (Lvl 18)



Orage vengeur (SPPR722) Lvl (18)
Ça me paraît un peu compliqué comme système, mais le choix de tes sorts est une bonne idée.
Faust a écrit :Lorsque je parle de "modelage du sort permettant l'un ou l'autre" je veux dire qu'il est nécessaire de cliquer sur un icône en plus afin d'accéder à aux deux sorts concernés, ce qui rajoute encore une action à effectuer et donne l'avantage au autres classes de lanceur de sorts.
Là, je ne comprends pas vraiment ; si tu fais "pause", cliquer une fois de plus n'est pas un désavantage, juste une contrainte pour le joueur. Il y a une raison technique, ou c'est une justification du kit ?
Faust a écrit :Autre point, si un sort n'est pas sélectionné après sélection de la catégorie de sorts à lancer, le quota journalier de sorts utilisables et diminué de 1, comme si un sort avait été lancé.
Ouch. Et si tu cliques par mégarde sur ton bouton de capacité, tu es puni ? :/
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

OK, pourquoi pas. Après tout, à ce stade du jeu, l'équipement original est du même tonneau.

La justification logique est qu'il a une tête trop grosse pour porter un casque ? Ou c'est uniquement pour lui donner un désavantage énorme (même les mages peuvent porter une pierre ionique avec ToB, ce qui leur évite un redoutable coup critique) ?

Une raison RP? :acute:

Il ne peut pas lancer de sorts avec un casque, sous peine d'échouer systématiquement l'incantation. D'ailleurs je pensais me servir de cet argument dans la quête liée au personnage.

Actuellement le personnage à un casque invisible, le protégeant des coups critiques uniquement, ce qui me permet de l'empêcher de porter un casque du jeu (certains casques donnent beaucoup de capacités) ce qui me laisse de la marge par rapport aux capacités gagnées à la mort de chaque Dragons.

Si le personnage peut porter un casque et gagner les capacités que j'ai annoncé, il sera beaucoup trop puissant, idem pour le bouclier.

N'oublions pas qu'il s'agit d'un kit pour une classe de Rôdeur (quasiment aussi efficace qu'un guerrier), il faut bien une contrepartie au fait qu'il puisse lancer des sorts, il peut porter toutes les armures autorisées par la classe de Rôdeur tout en gardant sa capacité à lancer des sorts.

Je ne sais pas vraiment, je n'ai pas une vision très équilibrée de la fin du jeu (chapitre 7 de SoA et ToB), donc je ne sais pas si c'est trop ou pas assez ou... bref, là aussi, il faudra d'autres avis que le mien :p


Ça me paraît un peu compliqué comme système, mais le choix de tes sorts est une bonne idée.

J'ai mis ce système de catégorie pour plusieurs raisons:

Lancement de sort à la manière d'un ensorceleur (dont certains ont des racines Draconiques)

Restreindre le nombre de fois que certains sorts sont utilisables (Lancer 5 fois Projectiles, ou Image miroir et pas 5 fois Implosion, Orage Vengeur, etc...)

Garder une certaine cohérence

Eviter d'avoir à naviguer pour trouver un sort

Facilité d'accès aux sorts: En connaissant les catégories, il devient plus simple de les choisir, et d'établir une tactique.

Là, je ne comprends pas vraiment ; si tu fais "pause", cliquer une fois de plus n'est pas un désavantage, juste une contrainte pour le joueur. Il y a une raison technique, ou c'est une justification du kit ?

C'est plus une contrainte technique qu'une justification du kit, même si j'aime à penser que c'est justifiable avec le kit.

Tu peux utiliser "pause", mais tu es obliger d'enlever "pause" pour que le personnage lance le sort.

En spammant assez rapidement tu devrais nullifier cet inconvénient, mais il n'empêche que si tu met un mage à côté et que tu lances un sort en même temps, le mage aura 1 action en moins à faire, sans utiliser "pause" le mage lancera le sort en premier.

C'est plus flagrant avec les sorts qui nécessitent d'êtres modelés (tu dois cliquer sur la catégorie, puis sur le raccourci menant au choix des deux sorts, puis sur le sort désiré).

La raison principale est liée à la classe de prestige, c'est n'est pas complètement fidèle à la description, mais c'est comme ça que je l'interprète:

"Tour d'ensorceleur (Mag). Au niveau 6, le dragosh gagne le pouvoir de lancer un sort profane comme un ensorceleur de son niveau de classe, 1 fois par jour. Le personnage doit choisir un sort connu de son compagnon draconique. Il lui faut également posséder une valeur de Charisme au moins égale à 10 + niveau du sort pour être à même de le lancer via ce pouvoir. Une fois le sort choisi, il est impossible de revenir sur sa décision."

Les sorts sont "empruntés" au compagnon dragon, on peut traduire l'action par un transfert de pouvoir.


Ouch. Et si tu cliques par mégarde sur ton bouton de capacité, tu es puni ? :/

C'est à dire que je me sers du bouton de lancement de sorts, donc ça voudrait dire que tu cliquerais pas erreur sur le bouton lancement de sorts, puis accidentellement sur l'une des catégories?

Dans les faits j'aurais préféré avoir le choix, mais il s'agit d'une restriction imposée par le moteur, les catégories de sorts (Dons de Kossuth, Sorcellerie, etc...) sont considérées comme des sorts par le moteur du jeu, du coup même si aucun sort n'est lancé après avoir sélectionné la catégorie, le jeu considère qu'un sort a été lancé.
Image
Avatar du membre
Freddy_Gwendo
Orbe ancien
Messages : 5879
Enregistré le : sam. 23 avr. 2011, 01:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

Message par Freddy_Gwendo »

Désolé de squatter ce fil, mais... Faust, si tu veux une réponse à tes MP, il faudrait que tu fasses le ménage dans ta boîte ! ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Freddy_Gwendo a écrit :Désolé de squatter ce fil, mais... Faust, si tu veux une réponse à tes MP, il faudrait que tu fasses le ménage dans ta boîte ! ;)
Oups, merci pour l'info :$

Je viens de vider ma boîte!

N'hésites pas à me donner ton avis sur l'équilibrage de mon kit :blum2:
Image
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Bonsoir,

Je me permets de relancer ma demande de testeurs pour mon personnage, j'ai récemment apporté quelques fix à son kit.

Le module nécessite BGT, le personnage est recrutable à Nashkel, à la taverne du Dragon qui rôte, face à la cheminée (AR3709).

Je n'ai pas encore écrit son dialogue de recrutement, il faudra utiliser CTRL + Q pour l'intégrer au groupe.

Voici le lien de téléchargement :

https://mega.nz/#!lo902Z4I!ZRFr4MOYhik9 ... 5ukEqV-Cmwhttps://mega.nz/#!lo902Z4I!ZRFr4MOYhik9uPZVGSk3eBM3cDU7NMILL5ukEqV-Cmw
Je remercie d'avance les testeurs pour leur feedbacks et impressions, n'hésitez pas à me faire part de ce qui vous plait/ déplait.
Image
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Mise à jour du mod:

https://mega.nz/#F!UoMkTQgT!XNbiZjvUQe3NzkLrxek_kw

Premier jet de la phase de recrutement et brève introduction de l'ennemi.
Image
Avatar du membre
Freddy_Gwendo
Orbe ancien
Messages : 5879
Enregistré le : sam. 23 avr. 2011, 01:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

Message par Freddy_Gwendo »

Petit souci : ton fichier fait 187 Mo !!! :shok:

C'est dû au répertoire backup qui contient l'historique de l'installation du composant 0 du mod (130 Mo). C'est non seulement une très mauvaise idée, mais inutile. Depuis pas mal de temps, le répertoire backup est inutile, car il est créé automatiquement par WeiDU lors de l'installation, puis supprimé lors de la désinstallation. ;)

Par ailleurs, ton tp2 indique un numéro de version pour BGEE. L'ayant parcouru en vitesse, je doute que ce soit le cas. Peux-tu le confirmer ?
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Freddy_Gwendo a écrit :Petit souci : ton fichier fait 187 Mo !!! :shok:

C'est dû au répertoire backup qui contient l'historique de l'installation du composant 0 du mod (130 Mo). C'est non seulement une très mauvaise idée, mais inutile. Depuis pas mal de temps, le répertoire backup est inutile, car il est créé automatiquement par WeiDU lors de l'installation, puis supprimé lors de la désinstallation. ;)

Par ailleurs, ton tp2 indique un numéro de version pour BGEE. L'ayant parcouru en vitesse, je doute que ce soit le cas. Peux-tu le confirmer ?

Salut Freddy!

Merci pour ton attention et ton aide.

Je te confirme que le module n'est pas compatible BGEE, erreur corrigée et dossier backup supprimé.

Voici le mod mis à jour, c'est avec impatience que j'attends ton avis et tes conseils.

https://mega.nz/#!s5FHBYYK!_CkAZYuLkm1i ... V4yMPNQxbA

Pour l'instant un premier jet de la phase de recrutement est disponible (AR3709), avec la rencontre d'un ennemi en sortant de cette zone.

J'essaye de travailler un dialogue avec Imoen lors de la première rencontre avec Elrin, mais je bloque un peu sur comment utiliser Append, j'essaye de m'informer sur plusieurs sites (dont ici). Je voudrais rendre mon mod compatible avec Imoen friendship/ Romance en ajoutant une romance entre elle et mon PNJ.
Image
Avatar du membre
Freddy_Gwendo
Orbe ancien
Messages : 5879
Enregistré le : sam. 23 avr. 2011, 01:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

Message par Freddy_Gwendo »

Tu veux ajouter une interaction avec Imoen, que ce soit dans le jeu classique, et/ou si le mod Frrendship est installé ?

Si c'est le cas, c'est possible, mais ça demande d'utiliser une fonction non prévue par WeiDU. Mais tu as de la chance, j'en ai écrit une pour mon mod. ;)

Préviens-moi, je pourrai te la passer en rentrant à la casa ce soir.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Freddy_Gwendo a écrit :Tu veux ajouter une interaction avec Imoen, que ce soit dans le jeu classique, et/ou si le mod Frrendship est installé ?

Si c'est le cas, c'est possible, mais ça demande d'utiliser une fonction non prévue par WeiDU. Mais tu as de la chance, j'en ai écrit une pour mon mod. ;)

Préviens-moi, je pourrai te la passer en rentrant à la casa ce soir.
Merci pour ton offre!

Je veux effectivement ajouter une romance entre Imoen et mon PNJ pour BGT par contre, en faisant en sorte que ce soit compatible avec Imoen Friendship et Imoen Romance (bien que l'un et l'autre ne soient pas à utiliser en même temps) ainsi que les différents banter pack (aussi BG1 NPC Project) qui ajoutent des interactions.
Image
Avatar du membre
Freddy_Gwendo
Orbe ancien
Messages : 5879
Enregistré le : sam. 23 avr. 2011, 01:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

Message par Freddy_Gwendo »

Désolé pour le retard, mais je n'ai pas eu le temps de compiler mes notes pour les rendre plus claires. ;)


Voici la fonction en question :
► Afficher le texte

Code : Tout sélectionner

/* ========================================================================================================================================== *
 * FONCTION GW_FIND_DLG_RESPONSE_STRING : RECHERCHE de numéros d'état et de transition correspondant à un string dans un fichier de dialogue. *
 * ------------------------------------------------------------------------------------------------------------------------------------------ *
 * Appelée par la routine GW_Kits_Quetes.tph.                                                                                                 *
 * ========================================================================================================================================== */

DEFINE_PATCH_FUNCTION ~GW_FIND_DLG_RESPONSE_STRING~
	INT_VAR	GW_string_dlg = 0	// string que l'on cherche
	RET	GW_transition_found	// Variable indiquant que l'on a trouvé une correspondance ==> Y = strref found
		GW_state_number		// Numéro du dialogue
		GW_transition_number	// Numéro de la transition (réponse)
BEGIN

	SET GW_transition_number = "-99"
	SET GW_state_number = "-99"
	SPRINT GW_transition_found "N"
	READ_LONG 0x08 GW_numstates	// Number of states
	READ_LONG 0x0c GW_offstates	// Offset of state table from start of file
	READ_LONG 0x10 GW_numresponse	// Number of transitions
	READ_LONG 0x14 GW_offresponse	// Offset of transition table from start of file

	FOR (state = 0 ; state < GW_numstates ; ++state) BEGIN

		PATCH_IF ("%GW_transition_found%" STRING_COMPARE_CASE "Y") BEGIN
			READ_LONG ("%GW_offstates%" +       (state * 0x10)) GW_state_string		// Actor response text (i.e. what the non-player character says to the party)
			READ_LONG ("%GW_offstates%" + 0x4 + (state * 0x10)) GW_index_first_response	// Index of the first transition corresponding to this state (i.e. the index in the transition table of the first potential response the party can make in this state).
			READ_LONG ("%GW_offstates%" + 0x8 + (state * 0x10)) GW_state_num_response	// Number of transitions corresponding to this state (i.e. how many possible responses are there to this state). A consecutive range of transitions in the transition table are assigned to this state, starting from 'first', as given by the previous field, ranging up to (but not including) 'first'+'count'.

			FOR (response = 0 ; response < GW_state_num_response ; ++response) BEGIN

				READ_LONG ("%GW_offresponse%" + 0x4 + ("%GW_index_first_response%" * 0x20) + (response * 0x20)) GW_response_string
				PATCH_IF (GW_response_string = GW_string_dlg) BEGIN
					SET GW_transition_number = response
					SET GW_state_number = state
					SPRINT GW_transition_found "Y"
				END
			END	// of Looping through responses
		END		// PATCH_IF ("%GW_transition_found%" STRING_COMPARE_CASE "Y")
	END			// of Looping through states

END				// of DEFINE_PATCH_FUNCTION
Elle va chercher dans un dialogue donné l’existence d'un string donné et renvoie toutes les informations nécessaires pour ajouter au bon endroit des répliques dans ce dialogue.

Comment ça marche ?

EXEMPLE 1 :

Je veux ajouter des répliques à UHMER01 (Elence Fielding) à un endroit précis :

Dans le tp2 ou une sous-routine, je lance ceci :

Code : Tout sélectionner

// #32661 = ~Oui, s'il vous plaît. Montrez-moi donc ce que vous avez en magasin.~
COPY_EXISTING - ~UHMER01.dlg~ ~override~

	PATCH_IF (SOURCE_SIZE > 0x2f) THEN BEGIN	// protects against invalid files

		LPF ~GW_FIND_DLG_RESPONSE_STRING~ INT_VAR GW_string_dlg = 32661 RET GW_transition_found GW_state_number GW_transition_number END

		PATCH_IF ("%GW_transition_found%" STRING_EQUAL "Y") AND (GW_transition_number != "-99") BEGIN
			SET UHMER01_Transition11 = GW_transition_number
			SET UHMER01_State11 = GW_state_number
			SET UHMER01_Transition11B = GW_transition_number + 1
		END

	END	// of PATCH_IF (SOURCE_SIZE > 0x2f)
BUT_ONLY
Et j'écris ceci dans mon .d :

Code : Tout sélectionner

EXTEND_TOP UHMER01 %UHMER01_State11% #%UHMER01_Transition11B%
	+ ~Global("GWUhmer01","GLOBAL",1) InPartySlot(LastTalkedToBy,0)~ + #32661 GOTO Uhmer01_Remise		// ~Oui, s'il vous plaît. Montrez-moi donc ce que vous avez en magasin.~
	+ ~Global("GWUhmer01","GLOBAL",1) !InPartySlot(LastTalkedToBy,0)~ + #32661 GOTO Uhmer01_NoRemise2
END

CHAIN UHMER01 Uhmer01_Remise
@11105624	// ~Rien ne saurait me faire plus plaisir, <CHARNAME>.~
END
IF ~~ THEN DO ~StartStore("GWUHMer1",LastTalkedToBy(Myself))~ EXIT

CHAIN UHMER01 Uhmer01_NoRemise2
@11105626	// ~Je dois vous prévenir que ma petite remise ne concerne que <CHARNAME>.~
END
++ @11105627 EXTERN UHMER01 12	// ~Je comprends. Mais je dois renouveler mon équipement.~
++ @11105628 EXTERN UHMER01 16	// ~Tout compte fait, ce n'est pas si pressé que ça. Je vais y aller.~
puis, dans mon tp2 (GWQueteL.d est le fichier de dialogue à compiler) :

Code : Tout sélectionner

COMPILE ~%MOD_FOLDER%/kits/quetes/GWQueteL.d~	EVALUATE_BUFFER
EXEMPLE 2 :

Je veux ajouter une réplique à MAZZY si le mod Stivan the Hunter est installé.

1. Je vérifie qu'il est installé et je recherche la référence de la réplique qui m'intéresse :

Code : Tout sélectionner

ACTION_IF MOD_IS_INSTALLED setup-stivan.tp2 0 BEGIN

	OUTER_SET GW_Stivan_Hunter = 1
	OUTER_SET GW_Mazzy_state_Stivan = STATE_WHICH_SAYS 232 IN ~stivan/tra/%s/tb#stivj.tra~ FROM MAZZY	// @232  = ~I'd say we shouldn't wait any further and open our way in this place of evilness.~

END ELSE BEGIN

	OUTER_SET GW_Mazzy_state_Stivan = 0
	OUTER_SET GW_Stivan_Hunter = 1

END
2? Je modifie le dialogue de MAZZY si nécessaire :

Code : Tout sélectionner

ACTION_IF (GW_Mazzy_state_Stivan > 0) AND (GW_Stivan_Hunter = 1) BEGIN

	<<<<<<<< .../Diamant_Eternel/inlined/mazzy.d
EXTEND_TOP MAZZY %GW_Mazzy_state_Stivan% #%MAZZY_Transition25%
	+ ~Global("GWChevaucheuseKit","GLOBAL",2) Global("GWLyrielUmar","LOCALS",0)~ + @461401113 DO ~DialogueSetGlobal("GWLyrielUmar","LOCALS",25)~ GOTO Mazzy_Lyriel_1	// ~Je dois vous prévenir que je suis à la recherche d'une certaine Lyriel venue enquêter sur ces événements. Elle a disparu. L'auriez-vous aperçue ?~
END
> >> >> >> >
	COMPILE ~.../Diamant_Eternel/inlined/mazzy.d~ EVALUATE_BUFFER

END	// of ACTION_IF (GW_Mazzy_state_Stivan > 0) AND (GW_Stivan_Hunter = 1)
Bon, je sais, vu comme ça, c'est un peu indigeste, mais l'essentiel est que ça fonctionne. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Freddy_Gwendo a écrit :Désolé pour le retard, mais je n'ai pas eu le temps de compiler mes notes pour les rendre plus claires. ;)


Voici la fonction en question :
► Afficher le texte

Code : Tout sélectionner

/* ========================================================================================================================================== *
 * FONCTION GW_FIND_DLG_RESPONSE_STRING : RECHERCHE de numéros d'état et de transition correspondant à un string dans un fichier de dialogue. *
 * ------------------------------------------------------------------------------------------------------------------------------------------ *
 * Appelée par la routine GW_Kits_Quetes.tph.                                                                                                 *
 * ========================================================================================================================================== */

DEFINE_PATCH_FUNCTION ~GW_FIND_DLG_RESPONSE_STRING~
    INT_VAR    GW_string_dlg = 0    // string que l'on cherche
    RET    GW_transition_found    // Variable indiquant que l'on a trouvé une correspondance ==> Y = strref found
        GW_state_number        // Numéro du dialogue
        GW_transition_number    // Numéro de la transition (réponse)
BEGIN

    SET GW_transition_number = "-99"
    SET GW_state_number = "-99"
    SPRINT GW_transition_found "N"
    READ_LONG 0x08 GW_numstates    // Number of states
    READ_LONG 0x0c GW_offstates    // Offset of state table from start of file
    READ_LONG 0x10 GW_numresponse    // Number of transitions
    READ_LONG 0x14 GW_offresponse    // Offset of transition table from start of file

    FOR (state = 0 ; state < GW_numstates ; ++state) BEGIN

        PATCH_IF ("%GW_transition_found%" STRING_COMPARE_CASE "Y") BEGIN
            READ_LONG ("%GW_offstates%" +       (state * 0x10)) GW_state_string        // Actor response text (i.e. what the non-player character says to the party)
            READ_LONG ("%GW_offstates%" + 0x4 + (state * 0x10)) GW_index_first_response    // Index of the first transition corresponding to this state (i.e. the index in the transition table of the first potential response the party can make in this state).
            READ_LONG ("%GW_offstates%" + 0x8 + (state * 0x10)) GW_state_num_response    // Number of transitions corresponding to this state (i.e. how many possible responses are there to this state). A consecutive range of transitions in the transition table are assigned to this state, starting from 'first', as given by the previous field, ranging up to (but not including) 'first'+'count'.

            FOR (response = 0 ; response < GW_state_num_response ; ++response) BEGIN

                READ_LONG ("%GW_offresponse%" + 0x4 + ("%GW_index_first_response%" * 0x20) + (response * 0x20)) GW_response_string
                PATCH_IF (GW_response_string = GW_string_dlg) BEGIN
                    SET GW_transition_number = response
                    SET GW_state_number = state
                    SPRINT GW_transition_found "Y"
                END
            END    // of Looping through responses
        END        // PATCH_IF ("%GW_transition_found%" STRING_COMPARE_CASE "Y")
    END            // of Looping through states

END                // of DEFINE_PATCH_FUNCTION
Elle va chercher dans un dialogue donné l’existence d'un string donné et renvoie toutes les informations nécessaires pour ajouter au bon endroit des répliques dans ce dialogue.

Comment ça marche ?

EXEMPLE 1 :

Je veux ajouter des répliques à UHMER01 (Elence Fielding) à un endroit précis :

Dans le tp2 ou une sous-routine, je lance ceci :

Code : Tout sélectionner

// #32661 = ~Oui, s'il vous plaît. Montrez-moi donc ce que vous avez en magasin.~
COPY_EXISTING - ~UHMER01.dlg~ ~override~

    PATCH_IF (SOURCE_SIZE > 0x2f) THEN BEGIN    // protects against invalid files

        LPF ~GW_FIND_DLG_RESPONSE_STRING~ INT_VAR GW_string_dlg = 32661 RET GW_transition_found GW_state_number GW_transition_number END

        PATCH_IF ("%GW_transition_found%" STRING_EQUAL "Y") AND (GW_transition_number != "-99") BEGIN
            SET UHMER01_Transition11 = GW_transition_number
            SET UHMER01_State11 = GW_state_number
            SET UHMER01_Transition11B = GW_transition_number + 1
        END

    END    // of PATCH_IF (SOURCE_SIZE > 0x2f)
BUT_ONLY
Et j'écris ceci dans mon .d :

Code : Tout sélectionner

EXTEND_TOP UHMER01 %UHMER01_State11% #%UHMER01_Transition11B%
    + ~Global("GWUhmer01","GLOBAL",1) InPartySlot(LastTalkedToBy,0)~ + #32661 GOTO Uhmer01_Remise        // ~Oui, s'il vous plaît. Montrez-moi donc ce que vous avez en magasin.~
    + ~Global("GWUhmer01","GLOBAL",1) !InPartySlot(LastTalkedToBy,0)~ + #32661 GOTO Uhmer01_NoRemise2
END

CHAIN UHMER01 Uhmer01_Remise
@11105624    // ~Rien ne saurait me faire plus plaisir, <CHARNAME>.~
END
IF ~~ THEN DO ~StartStore("GWUHMer1",LastTalkedToBy(Myself))~ EXIT

CHAIN UHMER01 Uhmer01_NoRemise2
@11105626    // ~Je dois vous prévenir que ma petite remise ne concerne que <CHARNAME>.~
END
++ @11105627 EXTERN UHMER01 12    // ~Je comprends. Mais je dois renouveler mon équipement.~
++ @11105628 EXTERN UHMER01 16    // ~Tout compte fait, ce n'est pas si pressé que ça. Je vais y aller.~
puis, dans mon tp2 (GWQueteL.d est le fichier de dialogue à compiler) :

Code : Tout sélectionner

COMPILE ~%MOD_FOLDER%/kits/quetes/GWQueteL.d~    EVALUATE_BUFFER
EXEMPLE 2 :

Je veux ajouter une réplique à MAZZY si le mod Stivan the Hunter est installé.

1. Je vérifie qu'il est installé et je recherche la référence de la réplique qui m'intéresse :

Code : Tout sélectionner

ACTION_IF MOD_IS_INSTALLED setup-stivan.tp2 0 BEGIN

    OUTER_SET GW_Stivan_Hunter = 1
    OUTER_SET GW_Mazzy_state_Stivan = STATE_WHICH_SAYS 232 IN ~stivan/tra/%s/tb#stivj.tra~ FROM MAZZY    // @232  = ~I'd say we shouldn't wait any further and open our way in this place of evilness.~

END ELSE BEGIN

    OUTER_SET GW_Mazzy_state_Stivan = 0
    OUTER_SET GW_Stivan_Hunter = 1

END
2? Je modifie le dialogue de MAZZY si nécessaire :

Code : Tout sélectionner

ACTION_IF (GW_Mazzy_state_Stivan > 0) AND (GW_Stivan_Hunter = 1) BEGIN

    <<<<<<<< .../Diamant_Eternel/inlined/mazzy.d
EXTEND_TOP MAZZY %GW_Mazzy_state_Stivan% #%MAZZY_Transition25%
    + ~Global("GWChevaucheuseKit","GLOBAL",2) Global("GWLyrielUmar","LOCALS",0)~ + @461401113 DO ~DialogueSetGlobal("GWLyrielUmar","LOCALS",25)~ GOTO Mazzy_Lyriel_1    // ~Je dois vous prévenir que je suis à la recherche d'une certaine Lyriel venue enquêter sur ces événements. Elle a disparu. L'auriez-vous aperçue ?~
END
> >> >> >> >
    COMPILE ~.../Diamant_Eternel/inlined/mazzy.d~ EVALUATE_BUFFER

END    // of ACTION_IF (GW_Mazzy_state_Stivan > 0) AND (GW_Stivan_Hunter = 1)
Bon, je sais, vu comme ça, c'est un peu indigeste, mais l'essentiel est que ça fonctionne. ;)

Hello Freddy,

Merci d'avoir pris le temps de me répondre, et désolé de répondre seulement maintenant, j'ai été très occupé par des entretiens puis nouveau job.

Je vais essayer de me remettre dans le bain aussi vite que possible.
Image
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 297
Enregistré le : mer. 15 avr. 2009, 13:04
Localisation : Wherever I may roam
Statut : Hors ligne

Message par Faust »

Plusieurs bugs sur le kit fixés, modification/ équilibrage de certains sorts.

Aucune MAJ sur les dialogues pour le moment.

Pour les personnes intéréssées:


https://mega.nz/#!hkcW3aCR!dri-Wc_1840N ... 8m4Vt0Fsk4
Image
Répondre

Retourner vers « Alter Egos »

Qui est en ligne

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