Réputation

Répondre
Partager Rechercher
C'est un sujet assez conséquent. Pour faire simple, ouvre déjà le menu "Voir" et "Faction". Tu devrais avoir un tableau qui ressemble à ça :

Faction 1.jpg

Ce tableau correspond à : Ligne est hostile/neutre/amicale avec Colonne. Les valeurs définissent le taux d'hostilité entre la faction de la ligne concernée, vis à vis de la colonne impliquée. De 0 à 10 (inclus), elle est hostile. De 11 à 89 (inclus), elle est neutre. Et au delà, elle est amicale.

La colonne Player est une exception, car elle n'est pas une faction. Il n'y a donc pas de ligne correspondante. Toutefois, cette colonne permet de gérer la réaction de chaque faction vis à vis de l'ensemble des joueurs.

Pour rajouter une faction, clique sur "Ajouter faction". Une nouvelle ligne et une nouvelle colonne s'appelant "Faction" s'ajoutent dans la liste, dont chaque valeur est égale à 50 (neutre).

Faction 2.jpg

En cliquant sur la faction, dans la liste en bas à gauche, tu auras accès à quelques paramètres, dont l'utilité est décrite dans l'éditeur.

Faction 3.jpg

Pour définir la réaction d'une faction envers une autre, il faut modifier deux valeurs, celle correspondant à la première faction, et celle correspondant à l'autre faction.

De mauvaises valeurs peuvent résulter des comportements bizarres. Admettons que la nouvelle faction soit hostile à la faction Hostile, et qu'on ait omis de modifier le comportement de la faction Hostile vis à vis de la nouvelle faction, le résultat serait étrange : La créature de la nouvelle faction attaquerait la créature de la faction Hostile, qui elle est neutre vis à vis de la nouvelle faction.

Donc il faut bien surveiller les valeurs suivantes :

Faction 4.jpg

Admettons que cette nouvelle faction soit neutre avec les joueurs, hostile avec la faction "Hostile", neutre avec les factions "Commoner" et "Merchant", et amicale avec la faction "Defender". Les valeurs attribuées à la ligne seront respectivement 50, 0, 50, 50 et 100. Une faction étant idéalement amicale envers elle-même, on lui attribuera la valeur 100.

Ensuite, on règle la manière dont les autres factions se comporteront vis à vis de la nouvelle faction, en modifiant les valeurs de la colonne. On partira du principe que "la faction impliquée le lui rend bien", donc on mettra les mêmes valeurs en retour.

Faction 5.jpg

Une fois les valeurs choisies, il suffit d'attribuer cette faction au PNJ (ou au plaçable, ou encore la porte) de son choix, via les propriétés du PNJ en question :

Faction 6.jpg
Je connaissais le système de faction, mais dans NWN2 je trouve qu'il fonctionne de façon très "basique" (à part pour désigner qui est hostile à qui, je ne l'ai pas vu servir à grand chose).

Comment peut-on faire évoluer la réputation du PJ vis à vis de certaines (voir toutes) factions lors des dialogues (j'ai bien vu des commandes, mais elles semblent limitées aux factions de base) mais aussi lors des actions (vol ou meurtre, vu que je laisse la possibilité d'attaquer des cibles neutres) ?

Je sais, j'en demande beaucoup
Au niveau script, par ordre alphabétique, nous avons :

- AdjustReputation : Modifie la réputation d'un objet vis à vis de n'importe quelle faction. Nécessite la présence en jeu d'un objet de repère pour la faction concernée.
- ChangeFaction : Transfère un objet vers n'importe quelle autre faction. Nécessite la présence en jeu d'un objet de repère pour la faction de destination.
- ChangeToStandardFaction : Transfère un objet vers une faction de base.
- ClearPersonalReputation : Réinitialise la réputation personnelle d'un objet vis à vis d'un autre.
- GetFactionAverageReputation : Donne la valeur de réputation moyenne d'un objet vis à vis d'une faction dans son ensemble.
- GetReputation : Donne la valeur de réputation personnelle d'un objet vis à vis d'un autre.
- GetStandardFactionReputation : Donne la valeur de réputation d'un objet vis à vis d'une faction de base.
- SetStandardFactionReputation : Attribue une valeur de réputation d'un objet vis à vis d'une faction de base.

Je verrai plus tard pour les détails.

Sinon au niveau du meurtre, il me semble que le script de base inclut une modification de la réputation. Par contre u niveau du vol, c'est très très délicat.
Pour le vol, ce n'est pas grave, j'espère juste que pour le meurtre ça fonctionne.

Quelle différence majeure entre les factions Commoner et Defender ? Laquelle me conseilles-tu d'utiliser pour la populace de base ?

Et last but not least, lors d'un dialogue, comment je fais baisser la réputation du groupe vis à vis des Commoner de 5 par exemple ?
Pour la mort, je me suis trompée, j'ai confondu avec la modification de l'alignement.


Pour la faction populace, il vaut mieux prendre "Commoner" (comme son nom l'indique). Si tu es une quiche en anglois, on a :
Commoner = populace
Defender = défenseur
Hostile = hostile (facile celui-là)
Merchant = marchand (facile aussi)

Le tableau de base explique un peu comment ces factions réagissent entre elles.

On exclura Hostile, car Hostile est hostile envers tout le monde, et tout le monde est hostile envers Hostile.

Commoner = amical envers Commoner, neutre envers les autres
Defender = amical envers toutes les factions
Merchant = neutre envers Commoner, amical envers les autres

En gros, et en théorie :

- si Commoner se fait attaquer, Commoner et Defender iront l'aider, mais pas Merchant.
- si Defender se fait attaquer, Defender et Merchant iront l'aider, mais pas Commoner.
- si Merchant se fait attaquer, Merchant et Defender iront l'aider, mais pas Commoner.

On peut aussi créer une faction "Je m'en fous des autres" par exemple, qui serait neutre envers elle-même. Attaquer un "Je m'en fous des autres" ne provoquerait pas l'attaque d'un autre membre de cette faction.

En général, les campagnes intègrent un grand nombre de factions, les factions de base n'étant là qu'en tant que repère. Les campagnes officielles de NWN 1 et 2 en sont un exemple. Des factions de base, on ne conserve sûrement que la faction "Hostile" qui permet d'intégrer des monstres facilement, pour des combats rapides et sans thème précis.

Aussi pour ta campagne, je te conseille vivement d'intégrer un minimum de factions personnalisées. Se résoudre à n'utiliser que les factions de base te limiterait dans le futur.


Concernant le changement de réputation, il y a deux manières de les modifier. La première concernera les factions de base, la seconde concerne les factions personnalisées. Elle sont différentes, car l'une va remplacer la valeur de réputation, alors que l'autre procédera à une soustraction/addition.

Pour un seul joueur, modifier une faction de base (Commoner) :
Code PHP:

object oPC GetFirstPC();
int nReputation GetStandardFactionReputation(STANDARD_FACTION_COMMONER,oPC);
nReputation nReputation 5;
SetStandardFactionReputation(STANDARD_FACTION_COMMONER,nReputation,oPC); 
Pour un seul joueur, modifier une faction personnalisée, dépendante d'une créature placée en jeu, et si la créature du dialogue appartient à la faction concernée :
Code PHP:

object oPC GetFirstPC();
AdjustReputation(oPC,OBJECT_SELF,-5); 
A partir de là, mes connaissances se limitent :
- Je ne sais pas si l'ajustement de la réputation du joueur se répercute sur l'ensemble de son groupe, ou s'il faut modifier les valeurs individuellement (c'est pourquoi je n'ai détaillé les deux bouts de scripts que pour un seul joueur).
- Je n'ai pas encore vérifié si on pouvait réellement attaquer une créature sans affecter d'autres créatures neutres envers cette première créature. Ce n'est donc que pure théorie de ma part.


L'idéal pour une explication un peu plus détaillée, serait pour toi de prendre contact avec quelqu'un ayant créé un module de campagne.
Merci pour toutes ces informations, elles me seront déjà très utiles en l'état !!!

Pour le reste, je verrais en temps voulu (et surtout quand j'aurais atteint le problème)
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés