Jump to content

Home

Always equipped items and unavailable NPC's


boinga1

Recommended Posts

Two questions: Is there any way to make any item that can't be unequipped, like Mandalore's armor? I'm trying to make a breath mask to give a character kind of a mechanical feel, but this won't work if it isn't equipped.

 

Second: How to you make party members unavailable (like Kreia on Korriban). I need to disable three party members at a certain part of Dantooine.

Link to comment
Share on other sites

Is there any way to make any item that can't be unequipped, like Mandalore's armor?

 

To do this you have to edit and npc row or make a new npc row. and add the number for the equipe slot you want to lock in the column "equipslotlock" (last column in appearance.2da) So to lock the mask slot type a 1 in that column. You will want to equip a mask in the mask slot in the utc. you won't be able to ingame.

 

Sorry I can't help you with your second question.

Link to comment
Share on other sites

Originally posted by boinga1

Second: How to you make party members unavailable (like Kreia on Korriban). I need to disable three party members at a certain part of Dantooine.

 

Use the SetNPCSelectability() function, like:

 

SetNPCSelectability(NPC_KREIA, FALSE);

 

That will make the specified party member unselectable/dimmed at the party selection screen until you set it back to TRUE again.

 

Note however that Kreia and Atton automatically gets set to Selectable whenever you enter the Ebon Hawk, since it's the Ebon Hawks exit script that determines if they should get set to unselectable in the normal game (when exiting to Korriban and Dxun respectively). Here's code for that script if you need to modify this behavior:

 

// ST: tr_leave_ehawk.nss (tr_leave_ehawk.ncs in 003EBO_s.rim)

#include "k_inc_hawk"

void ExitToDxunOnderon();
void ExitToKorriban();
void DoEbo004ExitHawk();

void main() {
   object oEnter = GetEnteringObject();

   // ST: Merged tr_leave_ehawk from 003EBO and 004EBO so they both
   //     work if put in Override.
   if (GetTag(GetArea(oEnter)) == "004EBO") {
       DoEbo004ExitHawk();
       return; 
   }

   SetNPCSelectability(NPC_KREIA, TRUE);
   SetNPCSelectability(NPC_ATTON, TRUE);

   if (oEnter == GetFirstPC()) {
       // ST: In combat
       if (GetGlobalNumber("003_IN_COMBAT") == 1) {
           BarkString(OBJECT_INVALID, 135165); 
           return;
       }       
       // ST: In space
       else if (GetGlobalNumber("003EBO_RETURN_DEST") == 8) {
           BarkString(OBJECT_INVALID, 129942); 
           return;         
       }
       // ST: Landed on Dxun
       else if (GetGlobalNumber("003EBO_RETURN_DEST") == 4) {
           SetGlobalFadeOut();
           SetFadeUntilScript();
           AurPostString("Leaving the hawk", 15, 22, 10.0);
           DelayCommand(1.0, ExitToDxunOnderon());
       }   
       // ST: Landed on Korriban       
       else if (GetGlobalNumber("003EBO_RETURN_DEST") == 6) {
           SetGlobalFadeOut();
           SetFadeUntilScript();
           AurPostString("Leaving the hawk", 15, 22, 10.0);
           DelayCommand(1.0, ExitToKorriban());
       }
       else {
           SetGlobalFadeOut();
           SetFadeUntilScript();   
           ShowPartySelectionGUI("check_party_gui", -1, -1, TRUE);     
       }           
   }
}

void ExitToDxunOnderon () {
   if (GetGlobalBoolean("401_FIRST_ENTER") && (GetGlobalNumber("502OND_End_First") > 0)) {
       AurPostString("Atton is selectable", 5, 19, 10.0);
       SetNPCSelectability(NPC_ATTON, TRUE);
   }
   else {
       SetNPCSelectability(NPC_ATTON, FALSE);
       AurPostString("Atton is NOT selectable", 5, 19, 10.0);
   }   
   AurPostString("Showing party selection", 5, 20, 10.0);
   ShowPartySelectionGUI("check_party_gui"); 
}

void ExitToKorriban() {
   SetNPCSelectability(NPC_KREIA, FALSE);
   AurPostString("Kreia is NOT selectable", 5, 19, 10.0);
   AurPostString("Showing party selection", 5, 20, 10.0);
   ShowPartySelectionGUI("check_party_gui");   
}

void DoEbo004ExitHawk() {
   if (GetEnteringObject() == GetFirstPC()) {
       int nDest = GetGlobalNumber("003EBO_RETURN_DEST");
       string sDest;

       switch (nDest) {
           case 0:  sDest = "106PER"; break;
           case 1:  sDest = "201TEL"; break;
           case 2:  sDest = "262TEL"; break;
           case 3:  sDest = "301NAR"; break;
           case 4:  sDest = "401DXN"; break;
           case 5:  sDest = "601DAN"; break;
           case 6:  sDest = "701KOR"; break;
           case 7:  sDest = "801DRO"; break;
           case 8:  sDest = "ERROR";  break;
           case 9:  sDest = "901MAL"; break;
           case 10: sDest = "ERROR";  break;
           default: sDest = "ERROR";
       }

       if (sDest == "ERROR")
           AurPostString("EBO ERROR: No module sepcified!", 5, 15, 10.0);
       else
           StartNewModule(sDest, "WP_from_ebonhawk");
   }
}

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...