CTP Gothic Interiors Question
CTP usage questions should be posted here.

Moderators: Winterhawk99, Mermut, Bannor Bloodfist, Black Rider

Guest

CTP Gothic Interiors Question

Post by Guest »

When using Chandigar's original version of the Gothic Interiors tileset, I ran into a problem where Druids and Wizards with animal companions/familiars were unable to make use of area transitions. Has this been addressed in the CTP version of the tileset?

I hope so, because this tileset would be awesome for adventures set in Eberron. Also, Resident Evil, Alone in the Dark, etc... mods.:p:

User avatar
Bannor Bloodfist
Posts: 1244
Joined: Fri Oct 09, 2009 11:45 pm
ctp: Yes
dla: Yes
TBotR: Yes
nwnihof: Yes

Post by Bannor Bloodfist »

[quote=dutch206]When using Chandigar's original version of the Gothic Interiors tileset, I ran into a problem where Druids and Wizards with animal companions/familiars were unable to make use of area transitions. Has this been addressed in the CTP version of the tileset?

I hope so, because this tileset would be awesome for adventures set in Eberron. Also, Resident Evil, Alone in the Dark, etc... mods.:p:[/quote]

Hmm, I have never heard of a tileset itself causing this sort of problem

I will be sure to test it out when we do final pass tests on that set. Have you tried with his latest version of that set? It has the same fixes done to it that we have done. Well, almost, we are planning on fixing one or two that got missed in the first major round of fixing that happened.

Anyway, I can test for that easily enough, by creating a level 5 wizard and/or a level 5 Druid and see what happens.

User avatar
DM_Mask
Posts: 181
Joined: Sun Jul 18, 2010 4:44 am

Post by DM_Mask »

I suspect its a "nested area" meaning 2+ seperate maps, connected through a door trans. By default, bioware door's tend to say "Screw your companions" if both doors are on the same physical map.

However in HoTU some scripting was put in to make the ones in the campaign be a bit more... Tolorable.

OldMansBeard
Posts: 363
Joined: Sat Dec 17, 2005 7:11 pm

Post by OldMansBeard »

It was the same with henchmen and secret doors in the original HotU. You can fix their heartbeats (or alternatively their OnPerception if you are cunning).

Otherwise they will only catch up if they can path-find a way around. It might be that the pathnodes in Gothic don't connect up well enough and the path-finding is failing because of that. We should perhaps look into that.

Chandigar
Posts: 153
Joined: Fri Apr 01, 2005 6:00 pm
ctp: No
dla: No
TBotR: No
nwnihof: No
Contact:

Post by Chandigar »

Hiya,

Seems like the problem is if you're using a transition to go from one area to another area on the same map, your companions get left behind unless they can find a path going from the first to 2nd spot?

IE in the sample map, if you go from downstairs to upstairs, your companions get left behind behind because theres not direct path from the first to 2nd floor?

Or is it broken for all transitions even going from one map to another map?

Guest

Post by Guest »

I was attempting to save space by making one big 16x16 area and placing both levels of the house on the same map. Bad idea?

Guest

maybe

Post by Guest »

I have done the same trick with a few areas before. I would say it’s an unnecessary shortcut, sure it saves time but it becomes a hassle latter on unless your keeping good notes.

User avatar
Bannor Bloodfist
Posts: 1244
Joined: Fri Oct 09, 2009 11:45 pm
ctp: Yes
dla: Yes
TBotR: Yes
nwnihof: Yes

Post by Bannor Bloodfist »

[quote=dutch206]I was attempting to save space by making one big 16x16 area and placing both levels of the house on the same map. Bad idea?[/quote]

Yes, bad idea.

What you would need to do, would be to create two seperate 16x16, for multiple houses, one for level one for the houses, one for level 2. Then, when you transition 'between' floors, you are actually transitioning between physical areas also... that would prevent the henchmen loss.

A little more work, maybe... but not a whole lot more.

so, you could place say two possibly 3 1st floor 'houses' in one 16x16 (depends on whether or not you care if they see the 'other' houses in the minimap scenes or not.) then create a 2nd 16x16 with the 2nd floor rooms for those houses.

For best usage, turn minimaps off for those 'small' houses, you shouldn't need a minimap in a 2 x 2 sized house anyway. not even a 3 x 3 or 4 x 4. But anything larger, and you should have the minimap turned on. AND should not try to place more than one of those in a single area.

Most homes in nwn land are the 2x2 or 3x3 size anyway.

Guest

Post by Guest »

[QUOTE=OldMansBeard]It was the same with henchmen and secret doors in the original HotU. You can fix their heartbeats (or alternatively their OnPerception if you are cunning).

Otherwise they will only catch up if they can path-find a way around. It might be that the pathnodes in Gothic don't connect up well enough and the path-finding is failing because of that. We should perhaps look into that.[/QUOTE]

I'll suggest this solution [pure scripty]:

http://nwvault.ign.com/View.php?view=sc ... il&id=2624

We do something similar by editting nw_g0_transition on our PW, but I'm at work and can't reference it directly, but this turned up on the vault.

-Dave

User avatar
DM_Mask
Posts: 181
Joined: Sun Jul 18, 2010 4:44 am

Post by DM_Mask »

Amatures(Not you Dave, but that Moon Person sure as hell is)..

Code: Select all

////////////////////////////////////////////////////////////
// OnClick/OnAreaTransitionClick
// NW_G0_Transition.nss
// Copyright (c) 2001 Bioware Corp. - Modified by Moon
////////////////////////////////////////////////////////////
// Created By: Sydney Tang
// Created On: 2001-10-26
// Description: This is the default script that is called
//              if no OnClick script is specified for an
//              Area Transition Trigger or
//              if no OnAreaTransitionClick script is
//              specified for a Door that has a LinkedTo
//              Destination Type other than None.
//              Modification: Ports Associates with PC.
////////////////////////////////////////////////////////////
void main()
{
  object oPC = GetClickingObject();
  object oTarget = GetTransitionTarget(OBJECT_SELF);

  SetAreaTransitionBMP(AREA_TRANSITION_RANDOM);
      // Jump the PC
    AssignCommand(oPC, ClearAllActions());
    AssignCommand(oPC, JumpToObject(oTarget));

    // Not a PC, so has no associates
    if (!GetIsPC(oPC))
        return;

    // Get all the possible associates of this PC
//  object oHench = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC);
    object oDomin = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
    object oFamil = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
    object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
    object oAnimalComp = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);

    // Jump any associates
    //Henchmen commented out
/*  if (GetIsObjectValid(oHench)) {
        AssignCommand(oHench, ClearAllActions());
        AssignCommand(oHench, JumpToObject(oTarget));
    }    */
    if (GetIsObjectValid(oDomin)) {
        AssignCommand(oDomin, ClearAllActions());
        AssignCommand(oDomin, JumpToObject(oTarget));
    }
    if (GetIsObjectValid(oFamil)) {
        AssignCommand(oFamil, ClearAllActions());
        AssignCommand(oFamil, JumpToObject(oTarget));
    }
    if (GetIsObjectValid(oSummon)) {
        AssignCommand(oSummon, ClearAllActions());
        AssignCommand(oSummon, JumpToObject(oTarget));
    }
    if (GetIsObjectValid(oAnimalComp)) {
        AssignCommand(oAnimalComp, ClearAllActions());
        AssignCommand(oAnimalComp, JumpToObject(oTarget));
    }

}

The above code is ugly, repetative, and sloppy. The Code below is none of those.

Code: Select all

////////////////////////////////////////////////////////////
// OnClick/OnAreaTransitionClick
// NW_G0_Transition.nss
// Copyright (c) 2001 Bioware Corp. - Modified by Moon
////////////////////////////////////////////////////////////
// Created By: Sydney Tang
// Created On: 2001-10-26
// Description: This is the default script that is called
//              if no OnClick script is specified for an
//              Area Transition Trigger or
//              if no OnAreaTransitionClick script is
//              specified for a Door that has a LinkedTo
//              Destination Type other than None.
//              Modification: Ports Associates with PC.
////////////////////////////////////////////////////////////

//oCritter is Moved to oTarget, fast cheap and easy.
void MoveMeBaby(object oCritter, object oTarget);

void main()
{
object oPC = GetClickingObject();
object oTarget = GetTransitionTarget(OBJECT_SELF);

SetAreaTransitionBMP(AREA_TRANSITION_RANDOM);
// Jump the PC
MoveMeBaby(oPC, oTarget);

// Not a PC, so has no associates
if (!GetIsPC(oPC))return;

// Get all the possible associates of this PC
object oHench = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC);
object oDomin = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
object oFamil = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
object oAnimalComp = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);

// Jump any associates
MoveMeBaby(oHench, oTarget);
MoveMeBaby(oDomin, oTarget);
MoveMeBaby(oFamil, oTarget);
MoveMeBaby(oSummon, oTarget);
MoveMeBaby(oAnimalComp, oTarget);
}

void MoveMeBaby(object oCritter, object oTarget)
{
if (GetIsObjectValid(oCritter))
    {
    AssignCommand(oCritter, ClearAllActions());
    AssignCommand(oCritter, JumpToObject(oTarget));
    }
}
mmm, I managed to trim off 6 lines of code rewriting this to a simpler format. Because function call count is identical, there will be no speed increase doing it this way, however, the script will take up less space, meaning the module will be maybe 0.1KB smaller. Trivial gain on something this small, but if that script off the vault is any indication, DM Moon needs to serirously consider re-reviewing his/her work for clarity and simplicity.

Also note this will only work with 1 henchmen, I can tweek this a bit further to handle all henchmen, if anyone wants it.

Post Reply