Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > PNJ amical qui devient agressif
PNJ amical qui devient agressif
Par Morethil le 24/10/2002 à 3:17:51 (#2394488)
J'ai un PNJ-A amical avec les PJ (Faction 50 avec eux) qui est a cote de PNJ-H hostile au PJ, mais pas au premier PNJ-A.
Dans mes tests, quand je rentre dans le champ de vision des PNJ-H avec un PJ (en partie normale, solo, pour tester) ceux-ci m'agresent, je me defend, et le PNJ-A commence lui aussi a lancer des sorts.
Il lance des sorts de défense, des invocation, et il me semble aussi des soins sur les PNJ-H.
Donc le programme semble indiquer a mon PJ que ce PNJ-A est agressif, du coup avec des armes a distance par exemple (ou encore avec le don enchainement) il arrive une fois sur 2 que le PJ se mette a attaquer le PNJ-A, le rendant cette fois totalement agressif.
Vu qu'il est censé converser après avec les PJ, sauriez vous résoudre ce problème autrement qu'en touchant aux factions ? Ce qui voudrait dire que ce PNJ a une faction pour lui seul.
PS : J'ai deja 4 factions qui se rencontrent, PJ inclus, j'avoue que ca m'ennuierait de devoir en inclure une 5eme :)
PSS : Au passage --> Si un PJ attaque un membre d'une faction non-hostile (donc devient hostile avec ce membre) passera-t-il automatiquement hostile avec tous les autres membre de la faction ? (dans le champ de vision ? dans la zone ? dans le module ? la campagne ?! (oO) Non, pas tous nwn quand même ?!)
Blague a part, entre vision et zone je ne sait pas, je me pose aussi la question pour le module.
Sur ce, bonne nuit :cool:
Par eMRaistlin le 24/10/2002 à 10:01:45 (#2395248)
Par Morethil le 24/10/2002 à 12:53:06 (#2396434)
Par coolstar le 24/10/2002 à 13:17:07 (#2396599)
Je constate que je croise souvent le terme Réputation... qu'en est-il exactement ? cela est-il un mécanisme pour gérer la "renomée" et donc les interractions extra-Factions ? où ça se trouve et comment ça se gère ? un exemple serait même le bien venu (avec commentaire si possible)... :D
Merci... :merci:
...
Par eMRaistlin le 24/10/2002 à 14:33:16 (#2397220)
Bon, colle ca dans le script OnPhysicalAtk et dans le script OnSpellCastAt de ton NPC :
//...reste du script...
object oAtk = GetLastHostileActor();
object oVictime = OBJECT_SELF;
int nRepVoulue = 50 //ou ce que tu veux dans onglet avancé des factions
int nRep = GetFactionAverageReputation(oVictime,oAtk);
if (GetIsPC(oAtk))
{
AssignCommand(oAtk,ClearAllActions));
AdjustFactionReputation(oAtk,oVictime,nRepVoulue -nRep);
ClearPersonalReputation(oAtk,oVictime);
}
CoolStar, j'essairai de te repondre plus tard, en fonction de ce que j'en sais (mais la, j'ai grave pas le temps :mdr: :mdr: :mdr: )
Par coolstar le 24/10/2002 à 16:11:44 (#2397970)
Par Morethil le 24/10/2002 à 18:08:58 (#2398769)
JOL Archives 1.0.1
@ JOL / JeuxOnLine