JeuxOnLineForumsPlusConnectés : 630 (sites) | 1490 (forums)Créer un compte
Neverwinter Nights 2
La Tour des Arcanes
Répondre
Partager Outils Rechercher
berylian33
Chevalier / Dame
 

Ajout de compagnon d'arme à ma campagne perso

Bonjour à tous,
Voilà j'explique mon problème... j'ai créer un module pour mettre en scène, auprès de mes joueurs, une partie JDR papier. Cela ajoute à mes descriptions orales une composante visuelle. Le module fonctionne parfaitement, mais j'aimerai ajouter à mon PJ principal des compagnons d'armes pour simuler l'équipe de PJs, et voir ainsi l'équipe au complet dans mon module pendant la partie. Est-ce que je dois créer les compagnons dans l'éditeur et leur ajouter un script pour leur permettre de se joindre au PJ principal?...
Ayant fait plusieurs fois le tour des forums je me doute que vais devoir utiliser "roster" mais je n'ai aucune idée de son fonctionnement. pourriez-vous m'éclairer... merci d'avance
Lien direct vers le message - Vieux
berylian33
Chevalier / Dame
 
et alors ...
il y a plus personne sur ce site....
Lien direct vers le message - Vieux
Avatar de Claudius33
Claudius33
Grand duc
 
Avatar de Claudius33
 
Bonjour,

Pas trop eu le temps de hanter les forums ces derniers temps.

Globalement la réponse est oui, création dans l'éditeur puis appel de scripts associés au roster généralement depuis une conversation pour les recruter.

Dans l'éditeur bien prévoir d'associer les scripts de type henchman ou compagnon (importer les propriétés)

Le plus simple est le mode henchman. Un henchman suit et combat mais ne peut être contrôlé par le joueur. Par ailleurs un henchman n'existe que dans un module et ne peut pas passer d'un module à l'autre dans une campagne.

Le script standard a appeler dans la conversation de recrutement est ga_henchman_add. Pour le faire sortir du groupe on peut utiliser ga_henchman_remove.

Un compagnon contrôlable par le joueur et passe d'un module à l'autre dans une campagne, comme Khelgar dans la campagne officielle.
Il y a une série de script standards à appeler dans la conversation de recrutement, il te faudra trouver un tuto ou reprendre un des miens qui s'occupe de tout. Il est générique pour une campagne solo et contient deux paramètres :
  • sRosterName : son futur nom dans le roster que je prends égal à son tag. Je recommande d'avoir toujours rostername = tag = ressource avec un nom ne comportant que des lettres minuscules.
  • nCampaignNPC : son numéro de compagnon dans la campagne en partant de 0 pour le premier compagnon.

Il suffit d'appeler ce script dans la conversation de recrutement. Le script prend en charge toutes les instructions nécessaires à passer, donne au compagnon le même niveau XP que le PJ et rend tout son inventaire identifié et fait entrer le compagnon dans le groupe.

Note
: il ne se préoccupe pas du nombre de compagnons à un instant t. A gérer par ailleurs si nécessaire. Script prévu pour une campagne solo.

Code:
// add a new companion

void MakeIdentified(int nSlot, object oC)
{         
   object oItem = GetItemInSlot(nSlot, oC);
   if (GetIsObjectValid(oItem)) SetIdentified(oItem, 1);
}

void main(string sRosterName, int nCampaignNPC)
{        
    object oNPC = GetObjectByTag(sRosterName); 
    object oPC = GetFirstPC();
    ChangeToStandardFaction(oNPC, STANDARD_FACTION_DEFENDER);
    AddRosterMemberByCharacter(sRosterName, oNPC);
    SetIsRosterMemberSelectable(sRosterName, TRUE);

    int nXP = GetXP(oPC);
    if (GetXP(oNPC) < nXP) GiveXPToCreature(oNPC, nXP);
    ForceRest(oNPC);
      
    AddRosterMemberToParty(sRosterName, oPC);
    SetIsRosterMemberCampaignNPC(sRosterName, nCampaignNPC); 

    // make the inventory identified

   object oItem = GetFirstItemInInventory(oNPC);
   while (GetIsObjectValid(oItem)) 
  {       
      SetIdentified(oItem,1); 
      oItem = GetNextItemInInventory(oNPC);
   } 

   int n;  
   for (n = 0; n < NUM_INVENTORY_SLOTS; n++) MakeIdentified(n, oNPC);

}

Dernière modification par Claudius33 ; 30/01/2016 à 16h02.
Lien direct vers le message - Vieux
Répondre

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 21h27.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite