Jump to content

Home

[TSL] A few scripting questions


Miles Edgeworth

Recommended Posts

1. Suppose I have a party member, then I want him to leave the party. Later I want the party member to come back, but with all the stats he had before, how would I do this? Would I add him to the puppet table and then remove him and add him to the party?

 

2. Also, is it possible to change someone appearance, based on what they are wearing?

 

3. I probably missed it, but what makes it so certain party members can't go on certain planets?

Link to comment
Share on other sites

1. Yes, adding the character to the puppet table when the character is removed from the party temporarily will allow that character to retain all the items, levels, etc. I'm not sure if it's a side effect, but scads of XP sometimes go with this. When the character is ready to be added to the party again, you can spawn them from the puppet table and they'll have all the items, feats, what-have-you from when they were put in the puppet table. I'll post the scripts that put Dustil into the puppet table and pull him out again--this one puts him in the puppet table when he temporarily leaves the party:

 

  //Dustil removed from party

void main() {
   object oDust = GetObjectByTag("HK47");
   [color=lime]AddAvailablePUPByObject(PUP_OTHER1, oDust);[/color] // Add to puppet table
   RemoveNPCFromPartyToBase(NPC_HK_47);
   RemoveAvailableNPC(NPC_HK_47); // Remove from party table
}

 

2. Depends on how you mean--change their faces and portraits? Yes, it can be done, if you make the clothes a disguise item and add a row to appearance.2da that the disguise references if it's not an already existing row. It won't work for just any clothes/robes/armor though.

 

3. It's usually in the on_enter script for the planet. For instance, Kreia is kept off Korriban in k_701area_enter here--the dark orange shows how she's locked off Korriban. (The green is the code that pulls Dustil out of the puppet table...though technically, it doesn't actually remove him from it; if another mod spawns from that puppet slot, Dustil will show up if he's been placed in the puppet table by the first script, assuming no other puppets have been placed in that table slot and boots him from it before he's spawned.)

 

#include "k_inc_glob_party"

void main() {
   object oEntering = GetEnteringObject();
   if ((oEntering == GetFirstPC())) {
       [color=DarkOrange]SetNPCSelectability(NPC_KREIA, FALSE);[/color]

       if  (GetGlobalNumber("Dustil_Recruit") == 1) {
           int iIdx = 0;
           int bFound = FALSE;
           object oDust = GetObjectByTag(GetNPCTag(NPC_HK_47), iIdx);      

           while (GetIsObjectValid(oDust)) {
               if (GetName(oDust) == "Dustil Onasi") {
                   bFound = TRUE;
                   break;  
               }
               oDust = GetObjectByTag(GetNPCTag(NPC_HK_47), ++iIdx);
           }

           if (!bFound) {
               [color=Lime]SpawnAvailablePUP(PUP_OTHER1, Location(Vector(95.28, 216.02, 1.07), 131.5));[/color]
           }           
       }
   }
}

 

The rest of the script for Dustil makes sure he doesn't spawn twice and makes sure that if HK is in the party, the game won't get confused.

Link to comment
Share on other sites

OK, all of that seemed to work.

 

2. Depends on how you mean--change their faces and portraits? Yes, it can be done, if you make the clothes a disguise item and add a row to appearance.2da that the disguise references if it's not an already existing row. It won't work for just any clothes/robes/armor though.

 

I don't mean a disguise item, I think it would be a heartbeat script. So it's an item anyone can wear, but when put on a certain person, that person's appearance changes. I think Stoffe might have made a script like that for Chainz's Kreia's Assorted Robe Collection, I'll have to check.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...