Jump to content

Home

Retexturing a module


Miltiades

Recommended Posts

Um, I drag-selected some of the little blobs, pressed the move button (the 4-way arrow), and switched to the directional moving method I find easiest (you can toggle the directional movement control with 'x'. Don't get it confused with Ctrl+x, though, which makes the perspective box go fullscreen :) ). Then I clicked 'delete'.

Link to comment
Share on other sites

  • Replies 113
  • Created
  • Last Reply

Ah. About saving it, I've found the AuroraBase button, which i find under Create -> Helpers, but when I click on it, nothing happens. I can't find the Mesh Settings Tab. What did happen was, when I clicked on the AuroraBase Button, and then clicked on the model, the options to export came up. The problem is that it'll probably only save what I have selected.

Link to comment
Share on other sites

Nonono. You can either save the whole thing as a .gmax - as a scene, which Gmax can open, or you can export it as a mdl. You have to select the existing Aurora Base -the little blue rectangle underneath the room model.

 

Also which Mesh Settings? The one on the right, which I have open in the screenshots, or the one on the NwMax console, on the left-hand side, where you click ResetXForm?

Link to comment
Share on other sites

Well, I think I made a mistake in saving, because the .mdl file has another name than the original and when I hex-edit, there's only numbers, no more texture names to be seen. I think it's best to put this aside and go on with what is certain to work. For the time being, I'll work around this problem.

 

I only have to find a way to have a one-to-one fight on the Bridge of the Harbinger and having enough space to do it.

 

Anyway, still have a question: Because the module 152Har isn't supported by the Module Editor in Kotor Tool, I'll need to do everything manually. Like placing items on certain places, using the Where_Am_I armband. Could it be that some placeables don't ork, because I wanted to place a Terminal somewhere, but it didn't spawn. I used the plc_comppnl file. Also, I'm not sure what to type in in the 'Bearing' field of a placeable in the .git file.

Link to comment
Share on other sites

Could it be that some placeables don't work, because I wanted to place a Terminal somewhere, but it didn't spawn. I used the plc_comppnl file. Also, I'm not sure what to type in in the 'Bearing' field of a placeable in the .git file.

 

Should work. Make sure you set the Z coordinate properly or the placeable might end up below the floor or above the ceiling. Unlike creatures a placeable can be placed anywhere in an area, even in "the void" outside the area model.

 

If I remember correctly the whereami armband should calculate bearings for you, though it's not completely accurate for all areas for some reason. If I remember correctly you get it by doing something like (Angle - 90.0) * (PI / 180.0), but that's from memory so it's most likely wrong. :)

Link to comment
Share on other sites

Oh, I think that'll be the problem. I just copied the Bearing number from another item. :lol:

 

Edit: Two more questions:

 

-Is it possible with the Module Editor to place custom made NPCs in a module?

 

-Some lights in the module are off. How can I turn these on?

Link to comment
Share on other sites

Heh, yeah, I know, it sounds stupid. I mean, in the Harbinger, you got like two sorts of lights. The flickering red lightbulbs, and the yellow lines. It's the yellow that are sometimes off.

 

Here's a picture with the lights on:

 

http://i141.photobucket.com/albums/r43/Speedhawk7/inv_1.jpg

 

And off:

 

http://i141.photobucket.com/albums/r43/Speedhawk7/inv_2.jpg

Link to comment
Share on other sites

Aww, that's too bad. Anyway, glad you like the retextures.

 

Still have a question though: I've placed a few placeables in module 152HAR, which isn't supported in the Module Editor. This means I had to place them manually, using the Where_Am_I Armband and fiddling in the .GIT file. The problem is, the placeable isn't facing to where it should, although when I was using the armband, I was facing correctly, and I filled in the number in the bearings field correctly.

Link to comment
Share on other sites

One last question (I hope): I've succesfully placed some force cages. When closed, how can I make them go open if I want to open them with a terminal?
They are turned off and on by having the cage play its open and close animation:

// Turn off force cage.
AssignCommand(oForceCage, ActionPlayAnimation(ANIMATION_PLACEABLE_OPEN, 1.0, 0.0));
// Turn on force cage again.
AssignCommand(oForceCage, ActionPlayAnimation(ANIMATION_PLACEABLE_CLOSE, 1.0, 0.0));

You should also destroy the force cage blocker if you have used one. In case you want to have sound effects as well, that should be done with sound objects. The blueprints can be found in 208TEL (elc_holding_cell.uts and elc_holding_off.uts).

Link to comment
Share on other sites

Is the blocker necessary, what exactly does it do?

 

And I have a little problem with the cages. I have placed 4 of those in a room, and used the same .utc file for all four (which shouldn't be a problem). The cages should be locked, but only one of them is locked. How can that be?

Link to comment
Share on other sites

The blocker is an invisible placeable that prevents passage. It's not required, but looks more realistic. Without it, any character can freely go through the activated force field of the cage which kind of beats its purpose. :) The template name is plc_forcecageblk, its tag is ForceCageBlocker. It should be placed near the location of the cage itself and has to be manually destroyed when the cage is open.

Link to comment
Share on other sites

No, it didn't. The NPC who was standing in it, and blocked the way. That's why the other cages where not locked. The ForcecageBlocker worked though.

 

Anyway, I'm not a scripter, so how to implement a the line to open a shut off a cage is beyond me. I tried searching in another module for such a script, but couldn't find any.

Link to comment
Share on other sites

Anyway, I'm not a scripter, so how to implement a the line to open a shut off a cage is beyond me. I tried searching in another module for such a script, but couldn't find any.

 

A script like this could probably be used to toggle the state of a force cage like an on/off switch. Replace the part in yellow with the tag of the Force Cage in question:

 

void main() {
   object oCage = GetObjectByTag("[color=Yellow]MyForceCage[/color]");
   int bActive = GetLocalBoolean(oCage, 140);

   // Cage is active, turn it off...
   if (bActive) {
       AssignCommand(oCage, PlayAnimation(ANIMATION_PLACEABLE_OPEN));
       DestroyObject(GetNearestObjectByTag("ForceCageBlocker", oCage));
       SetLocalBoolean(oCage, 140, FALSE);
   }
   // Cage is inactive, turn it on...
   else {
       AssignCommand(oCage, PlayAnimation(ANIMATION_PLACEABLE_CLOSE));
       CreateObject(OBJECT_TYPE_PLACEABLE, "plc_forcecageblk", GetLocation(oCage));
       SetLocalBoolean(oCage, 140, TRUE);  
   }

}

 

If you have sound objects playing a humming sound when the force fields are active you can make it stop and restart as well by adding SoundObjectPlay() and SoundObjectStop() function calls with the sound object as parameter.

 

Note the probably since this is untested, but in theory it should work. :)

Link to comment
Share on other sites

And I can just put the SoundObjectStop () under the SetLocalBoolean(oCage, 140, FALSE), and it should work?

 

And to have to cage shut off via a terminal, I just have to attach this script to a dialog? And if I don't want the cage to be turned on agin, can I safely remove the second part of the script?

Link to comment
Share on other sites

And I can just put the SoundObjectStop () under the SetLocalBoolean(oCage, 140, FALSE), and it should work?

 

And to have to cage shut off via a terminal, I just have to attach this script to a dialog? And if I don't want the cage to be turned on agin, can I safely remove the second part of the script?

 

Another version that uses sound objects and is meant to be used from a dialog. On the dialog node you assign the script as action script, set the P1 parameter to 0 to turn the cage off, or to 1 to turn the cage on, and the String Param parameter to the tag of your force cage.

 

This script makes the assumption that the sound object is placed very near the force cage. No changes to the script itself should be needed since you set the necessary data as parameters in the dialog node.

 

void main() {
   object oCage    = GetObjectByTag(GetScriptStringParameter());
   object oSound   = GetNearestObject(OBJECT_TYPE_SOUND, oCage);
   object oFF      = GetNearestObjectByTag("ForceCageBlocker", oCage);

   if (GetScriptParameter(1) == FALSE) {
       SoundObjectStop(oSound);
       AssignCommand(oCage, PlayAnimation(ANIMATION_PLACEABLE_OPEN));

       if (GetIsObjectValid(oFF) && (GetDistanceBetween(oCage, oFF) <= 1.0))
           DestroyObject(oFF);
   }
   else {
       SoundObjectPlay(oSound);
       AssignCommand(oCage, PlayAnimation(ANIMATION_PLACEABLE_CLOSE));

       if (!GetIsObjectValid(oFF) || (GetDistanceBetween(oCage, oFF) > 1.0))
           CreateObject(OBJECT_TYPE_PLACEABLE, "plc_forcecageblk", GetLocation(oCage));
   }
}

Link to comment
Share on other sites

Archived

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


×
×
  • Create New...