Aller au contenu

Photo

Stubborn followers refuse to use coordinates


  • Veuillez vous connecter pour répondre
16 réponses à ce sujet

#1
Lady Honor

Lady Honor
  • Members
  • 131 messages
I have 4 custom followers, two females and two males. The two females follow the orientation coordinates fine, but the guys are stubborn and look in the direct opposite I scripted them to. I adjusted it as detailed in the pcrscr tutorial, but they still refuse to do as they are told. Has anyone else ever had this problem and does anyone know how to fix it?

#2
MerAnne

MerAnne
  • Members
  • 1 170 messages

I really need more information to be able to provide any answer.  For example, your scripts.



#3
Lady Honor

Lady Honor
  • Members
  • 131 messages
I have no idea how this going to look but here it is. it's a pcrscr script to get them to behave in camp.

#include "utility_h" #include "wrappers_h" #include "plot_h" #include "sys_ambient_h" #include "lhc_ability_h" #include "lhc_party_h" #include "plt_lhc_party" void main() { if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_HIRED) == TRUE) { object oFollower = GetObjectByTag("lhc_william"); object oArea = GetObjectByTag("cam100ar_camp_plains"); location vFollowerLocation = Location(GetArea(oArea), Vector(134.688,123.257,-0.23894), 75.8); command cMoveFollower = CommandJumpToLocation(vFollowerLocation); AddCommand(oFollower, cMoveFollower); SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oFollower, TRUE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_CAMP, TRUE, FALSE); Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 24, AMBIENT_ANIM_FREQ_ORDERED); } if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_HIRED) == TRUE) { object oFollower = GetObjectByTag("lhc_roland"); object oArea = GetObjectByTag("cam100ar_camp_plains"); location vFollowerLocation = Location(GetArea(oArea), Vector(131.067,117.606,-0.406573), 116.5); command cMoveFollower = CommandJumpToLocation(vFollowerLocation); AddCommand(oFollower, cMoveFollower); SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oFollower, TRUE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_CAMP, TRUE, FALSE); Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 19, AMBIENT_ANIM_FREQ_ORDERED); } if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_HIRED) == TRUE) { object oFollower = GetObjectByTag("lhc_helena"); object oArea = GetObjectByTag("cam100ar_camp_plains"); location vFollowerLocation = Location(GetArea(oArea), Vector(142.29,124.933,-0.414535), 50.0); command cMoveFollower = CommandJumpToLocation(vFollowerLocation); AddCommand(oFollower, cMoveFollower); SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oFollower, TRUE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_CAMP, TRUE, FALSE); Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 70, AMBIENT_ANIM_FREQ_ORDERED); } if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WREN_HIRED) == TRUE) { object oFollower = GetObjectByTag("lhc_wren"); object oArea = GetObjectByTag("cam100ar_camp_plains"); location vFollowerLocation = Location(GetArea(oArea), Vector(134.486,115.054,-0.48935), 155.3); command cMoveFollower = CommandJumpToLocation(vFollowerLocation); AddCommand(oFollower, cMoveFollower); SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oFollower, TRUE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_CAMP, TRUE, FALSE); Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 85, AMBIENT_ANIM_FREQ_ORDERED); } }

#4
Lady Honor

Lady Honor
  • Members
  • 131 messages
sorry but my WiFi is jacked up again.

#5
Lady Honor

Lady Honor
  • Members
  • 131 messages
This MIGHT look better...
#include "utility_h"
#include "wrappers_h"
#include "plot_h"
#include "sys_ambient_h"
#include "lhc_ability_h"
#include "lhc_party_h"
#include "plt_lhc_party"

void main()
{
if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_HIRED) == TRUE)
{
object oFollower = GetObjectByTag("lhc_william");
object oArea = GetObjectByTag("cam100ar_camp_plains");
location vFollowerLocation = Location(GetArea(oArea), Vector(134.688,123.257,-0.23894), 75.8);
command cMoveFollower = CommandJumpToLocation(vFollowerLocation);

AddCommand(oFollower, cMoveFollower);
SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);
WR_SetObjectActive(oFollower, TRUE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_PARTY, FALSE, FALSE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_CAMP, TRUE, FALSE);
Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 24, AMBIENT_ANIM_FREQ_ORDERED);
}
if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_HIRED) == TRUE)
{
object oFollower = GetObjectByTag("lhc_roland");
object oArea = GetObjectByTag("cam100ar_camp_plains");
location vFollowerLocation = Location(GetArea(oArea), Vector(131.067,117.606,-0.406573), 116.5);
command cMoveFollower = CommandJumpToLocation(vFollowerLocation);

AddCommand(oFollower, cMoveFollower);
SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);
WR_SetObjectActive(oFollower, TRUE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_PARTY, FALSE, FALSE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_CAMP, TRUE, FALSE);
Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 19, AMBIENT_ANIM_FREQ_ORDERED);
}
if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_HIRED) == TRUE)
{
object oFollower = GetObjectByTag("lhc_helena");
object oArea = GetObjectByTag("cam100ar_camp_plains");
location vFollowerLocation = Location(GetArea(oArea), Vector(142.29,124.933,-0.414535), 50.0);
command cMoveFollower = CommandJumpToLocation(vFollowerLocation);

AddCommand(oFollower, cMoveFollower);
SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);
WR_SetObjectActive(oFollower, TRUE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_PARTY, FALSE, FALSE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_CAMP, TRUE, FALSE);
Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 70, AMBIENT_ANIM_FREQ_ORDERED);
}
if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WREN_HIRED) == TRUE)
{
object oFollower = GetObjectByTag("lhc_wren");
object oArea = GetObjectByTag("cam100ar_camp_plains");
location vFollowerLocation = Location(GetArea(oArea), Vector(134.486,115.054,-0.48935), 155.3);
command cMoveFollower = CommandJumpToLocation(vFollowerLocation);

AddCommand(oFollower, cMoveFollower);
SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);
WR_SetObjectActive(oFollower, TRUE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_PARTY, FALSE, FALSE);
WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_CAMP, TRUE, FALSE);
Ambient_Start(oFollower, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 85, AMBIENT_ANIM_FREQ_ORDERED);
}
}

#6
MerAnne

MerAnne
  • Members
  • 1 170 messages

The first thing that strikes me is that you are setting the location THEN you are making them active and finally you give them ambient action.  I'm not sure what that would do.

 

If it was mine, I would comment out all except one of the Companions and get one working at a time.  The 'ladies' may be working by virtue of being the last ones in the file rather than the first.

 

I'm also not sure what is in your header files.  Those might not be needed in this script.



#7
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
Use [­CODE] [­/CODE] tags to wrap your script and you'll preserve the formatting.

#8
Lady Honor

Lady Honor
  • Members
  • 131 messages
I don't really know why I included plot_h, utility_h, and lhc_party_h. It's a copy paste from an older script I had saved. lhc_ability_h is a script to turn off modal abilities which I forgot to include in the main script. I changed the move command to come after I set them active, but they still face in the opposite direction.

#9
MerAnne

MerAnne
  • Members
  • 1 170 messages

If they are facing the opposite direction from 'the ladies', it would be because there is close to a 90 degree difference in their orientation.



#10
Tchos

Tchos
  • Members
  • 5 055 messages

180 degrees.



#11
Lady Honor

Lady Honor
  • Members
  • 131 messages
I've tried it with and without adjusting it, but they still refuse to listen. Grrrr....but like i said, it's pieced together from an old script unused for my stand alone. It was sooooo long ago I don't know why did half the stuff I did. Lol i have all my current mods scripts that in saved as text files on my external hard drive like the hiring, approval, a mod core plus the functions but for some dumb butt reason I neglected to save the camp scripts. Thisbwont work the way It is anyway. They go where they are supposed to go and do (almost) like they are supposed to do, but where my stand alone has only one camp, the oc has 5. So I'm just going rewrite another one likevi should have done in the first place.

#12
Lady Honor

Lady Honor
  • Members
  • 131 messages
I rewrote the entire script and cleaned it up a bit. Everyone is behaving, even the guys. Here's the revised version.

#include "wrappers_h"#include "sys_rewards_h"#include "sys_ambient_h"#include "lhc_ability_h"#include "plt_lhc_party"                                                          void main(){    object oWilliam = GetObjectByTag("lhc_william");    object oRoland = GetObjectByTag("lhc_roland");    object oHelena = GetObjectByTag("lhc_helena");    object oWren = GetObjectByTag("lhc_wren");    location vWilliamLocation = Location(GetArea(GetHero()), Vector(134.688,123.257,-0.23894), -75.8);    command cMoveWilliam = CommandJumpToLocation(vWilliamLocation);    location vRolandLocation = Location(GetArea(GetHero()), Vector(131.067,117.606,-0.406573), -116.5);    command cMoveRoland = CommandJumpToLocation(vRolandLocation);    location vWrenLocation = Location(GetArea(GetHero()), Vector(134.486,115.054,-0.48935), 155.3);    command cMoveWren = CommandJumpToLocation(vWrenLocation);    location vHelenaLocation = Location(GetArea(GetHero()), Vector(142.29,124.933,-0.414535), 50.0);    command cMoveHelena = CommandJumpToLocation(vHelenaLocation);    string  sTag   =   GetTag(GetArea(GetHero()));    if (sTag == "cam100ar_camp_plains" || sTag == "cam110ar_camp_arch3" || sTag == "cam104ar_camp_arch1")    {        if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_HIRED))        {            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_PARTY, FALSE, FALSE);            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_CAMP, TRUE, TRUE);            SetFollowerState(oWilliam, FOLLOWER_STATE_AVAILABLE);            WR_SetObjectActive(oWilliam, TRUE);            RW_CatchUpToPlayer(oWilliam);            lhcDeactivateModalAbilities();            AddCommand(oWilliam, cMoveWilliam);            Ambient_Start(oWilliam, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 24, AMBIENT_ANIM_FREQ_ORDERED);        }        if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_HIRED))        {            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_PARTY, FALSE, FALSE);            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_CAMP, TRUE, TRUE);            SetFollowerState(oRoland, FOLLOWER_STATE_AVAILABLE);            WR_SetObjectActive(oRoland, TRUE);            RW_CatchUpToPlayer(oRoland);            lhcDeactivateModalAbilities();            AddCommand(oRoland, cMoveRoland);            Ambient_Start(oRoland, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 19, AMBIENT_ANIM_FREQ_ORDERED);        }        if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WREN_HIRED))        {            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_PARTY, FALSE, FALSE);            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_CAMP, TRUE, TRUE);            SetFollowerState(oWren, FOLLOWER_STATE_AVAILABLE);            WR_SetObjectActive(oWren, TRUE);            RW_CatchUpToPlayer(oWren);            lhcDeactivateModalAbilities();            AddCommand(oWren, cMoveWren);            Ambient_Start(oWren, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 85, AMBIENT_ANIM_FREQ_ORDERED);        }        if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_HIRED))        {            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_PARTY, FALSE, FALSE);            WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_CAMP, TRUE, TRUE);            SetFollowerState(oHelena, FOLLOWER_STATE_AVAILABLE);            WR_SetObjectActive(oHelena, TRUE);            RW_CatchUpToPlayer(oHelena);            lhcDeactivateModalAbilities();            AddCommand(oHelena, cMoveHelena);            Ambient_Start(oHelena, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 70, AMBIENT_ANIM_FREQ_ORDERED);        }    }}


#13
Lady Honor

Lady Honor
  • Members
  • 131 messages
Dang it. It looks like junk but it works. ...on a different note does anyone have any idea why win 10 keeps uninstalling my wifi?

#14
MerAnne

MerAnne
  • Members
  • 1 170 messages

180 degrees.

except her script showed something more like 90 degrees. 



#15
MerAnne

MerAnne
  • Members
  • 1 170 messages
#include "wrappers_h"
#include "sys_rewards_h"
#include "sys_ambient_h"
#include "lhc_ability_h"
#include "plt_lhc_party" 

void main()
{ 
    object oWilliam = GetObjectByTag("lhc_william"); 
    object oRoland = GetObjectByTag("lhc_roland"); 
    object oHelena = GetObjectByTag("lhc_helena"); 
    object oWren = GetObjectByTag("lhc_wren"); 

    location vWilliamLocation = Location(GetArea(GetHero()), Vector(134.688,123.257,-0.23894), -75.8); 
    command cMoveWilliam = CommandJumpToLocation(vWilliamLocation); 

    location vRolandLocation = Location(GetArea(GetHero()), Vector(131.067,117.606,-0.406573), -116.5); 
    command cMoveRoland = CommandJumpToLocation(vRolandLocation); 

    location vWrenLocation = Location(GetArea(GetHero()), Vector(134.486,115.054,-0.48935), 155.3); 
    command cMoveWren = CommandJumpToLocation(vWrenLocation); 

    location vHelenaLocation = Location(GetArea(GetHero()), Vector(142.29,124.933,-0.414535), 50.0); 
    command cMoveHelena = CommandJumpToLocation(vHelenaLocation); 

    string sTag = GetTag(GetArea(GetHero())); 

    if (sTag == "cam100ar_camp_plains" || sTag == "cam110ar_camp_arch3" || 
        sTag == "cam104ar_camp_arch1") 
    { 
         if (WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_HIRED)) 
        {
              WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_PARTY, FALSE, FALSE);
              WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WILLIAM_IN_CAMP, TRUE, TRUE); 
              SetFollowerState(oWilliam, FOLLOWER_STATE_AVAILABLE); 
              WR_SetObjectActive(oWilliam, TRUE); 
              RW_CatchUpToPlayer(oWilliam); 
              lhcDeactivateModalAbilities(); 
              AddCommand(oWilliam, cMoveWilliam); 
              Ambient_Start(oWilliam, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 24, AMBIENT_ANIM_FREQ_ORDERED); 
         } 


         if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_HIRED)) { WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_ROLAND_IN_CAMP, TRUE, TRUE); SetFollowerState(oRoland, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oRoland, TRUE); RW_CatchUpToPlayer(oRoland); lhcDeactivateModalAbilities(); AddCommand(oRoland, cMoveRoland); Ambient_Start(oRoland, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 19, AMBIENT_ANIM_FREQ_ORDERED); } if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_WREN_HIRED)) { WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_WREN_IN_CAMP, TRUE, TRUE); SetFollowerState(oWren, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oWren, TRUE); RW_CatchUpToPlayer(oWren); lhcDeactivateModalAbilities(); AddCommand(oWren, cMoveWren); Ambient_Start(oWren, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 85, AMBIENT_ANIM_FREQ_ORDERED); } if(WR_GetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_HIRED)) { WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_PARTY, FALSE, FALSE); WR_SetPlotFlag(PLT_LHC_PARTY, LHC_HELENA_IN_CAMP, TRUE, TRUE); SetFollowerState(oHelena, FOLLOWER_STATE_AVAILABLE); WR_SetObjectActive(oHelena, TRUE); RW_CatchUpToPlayer(oHelena); lhcDeactivateModalAbilities(); AddCommand(oHelena, cMoveHelena); Ambient_Start(oHelena, AMBIENT_SYSTEM_ENABLED, AMBIENT_MOVE_NONE, AMBIENT_MOVE_PREFIX_NONE, 70, AMBIENT_ANIM_FREQ_ORDERED); } }}
 
 

I had to reformat some of the code to find out what the original problem was.

 

Tchos was correct, you had a 180 degree issue.  You forgot the negative signs William's and Roland's locations



#16
Lady Honor

Lady Honor
  • Members
  • 131 messages
That wasn't the problem. I tried it with and without the negative signs plus moving them slightly over a bit and they never turned. I have no idea what was causing it, it was a crappy script anyway and that's what happens I suppose when I try to be lazy. Lol like i said it was from my stand alone and written a few years ago. That one used waypoints tho and I tried to make it work with minimal effort. What's really sad is I know better now and should have written one from scratch at the start.

#17
MerAnne

MerAnne
  • Members
  • 1 170 messages

Right  :huh: