Pour créer un script c'est effectivement Ficher/Nouveau/Script ou click droit - ajouter dans la fenêtre qui liste les scripts si elle est affichée.
J'ai du le mettre" déjà quelque part mais je ne sais plus où, alors je remets ce script qui permet d'ajouter un compagnon sans modifier ses caractéristiques, et en lui donnant la même XP que le PJ.
Pour créer le compagnon "toto" (tag "toto") avec le n° 0, il suffira d'appeler les script dans une convo de recrutement :
Prêt à vous suivre grand chef! add_companion("toto", 0)
et pour le suivant :
Comme tu es beau, je viens de suite. add_companion("zaza", 1)
Le script prend 2 paramètres :
le tag du futur companion
son n° dans le roster (commencer par 0, ne pas laisser de trous, un numéro unique par compagnon)
Il te suffit de faire ficher/nouveau/script copier coller et F7 (compiler et sauvegarder). Je te conseille de préfixer le nom du script (tu peux faire click droit renommer) avec 2 lettres initiales de ton mod par exemple mm et de l’appeler mm_add_companion (tu retrouveras ainsi plus facilement test scripts)
Le script :
// add a new companion
void main(string sRosterName, int nCampaignNPC)
{
object oNPC = GetObjectByTag(sRosterName);
object oPC = GetFirstPC();
ChangeToStandardFaction(oNPC, STANDARD_FACTION_DEFENDER); //met la faction à celle du PJ (en, général DEFENDER)
AddRosterMemberByCharacter(sRosterName, oNPC); // l'ajoute au roster
SetIsRosterMemberSelectable(sRosterName, TRUE); // le rend sélectionnable
int nXP = GetXP(oPC); // lui donne l'XP du joueur
GiveXPToCreature(oNPC, nXP);
ForceRest(oNPC); // une sieste
AddRosterMemberToParty(sRosterName, oPC); // l'ajoute au groupe (optionnel)
SetIsRosterMemberCampaignNPC(sRosterName, nCampaignNPC); // le déclare compagnon de campagne avec son n°)
// make the inventory identified - identifie tous les objets de l'inventaire
object oItem = GetFirstItemInInventory(oNPC);
while (GetIsObjectValid(oItem))
{
SetIdentified(oItem,1);
oItem = GetNextItemInInventory(oNPC);
}
}