Aller au contenu

Photo

Follower Tutorial


  • Veuillez vous connecter pour répondre
1 réponse à ce sujet

#1
Lucrane

Lucrane
  • Members
  • 163 messages
Hey all, I had these scripts and hiring procedures working, but I checked on them yesterday and suddenly they are not. Not sure what changed.

If I remember correctly I used the steps here: http://social.biowar...wer_tutorial    under advanced follower creation: an alternative approach.

I made a gen00pt script similar to the original with all my relevant characters in place and all relevant constants created. Its rather long so I won't post that here, but it compiles just fine.

Now here is the relevant section for my on module load script:

        // Party member added to active party using the party GUI
        case EVENT_TYPE_PARTYMEMBER_ADDED:
        {
            object oFollower = GetEventObject(ev, 0);
            Log_Trace(LOG_CHANNEL_EVENTS, GetCurrentScriptName(), "EVENT_TYPE_PARTYMEMBER_ADDED, follower: " + GetTag(oFollower));

            WR_SetObjectActive(oFollower, TRUE);

            string sTag = GetTag(oFollower);
            if(sTag == GENFL_GWEN) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GWEN_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_AGATHA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_AGATHA_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_BASRA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_BASRA_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_DESMOND) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_DESMOND_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_DREVICK) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_DREVICK_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_FIONA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_FIONA_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_GAUTRIK) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GAUTRIK_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_GUSTAF) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GUSTAF_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_NOEL) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_NOEL_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_QUINNE) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_QUINNE_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_THOMAS) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_THOMAS_IN_PARTY, TRUE, TRUE);
            else if(sTag == GENFL_VELEN) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_VELEN_IN_PARTY, TRUE, TRUE);

            break;
        }
        // Party member removed from active party using the party GUI
        case EVENT_TYPE_PARTYMEMBER_DROPPED:
        {
            object oFollower = GetEventObject(ev, 0);
            Log_Trace(LOG_CHANNEL_EVENTS, GetCurrentScriptName(), "EVENT_TYPE_PARTYMEMBER_DROPPED, follower: " + GetTag(oFollower));

            string sTag = GetTag(oFollower);
            if(sTag == GENFL_GWEN) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GWEN_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_AGATHA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_AGATHA_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_BASRA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_BASRA_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_DESMOND) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_DESMOND_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_DREVICK) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_DREVICK_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_FIONA) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_FIONA_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_GAUTRIK) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GAUTRIK_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_GUSTAF) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_GUSTAF_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_NOEL) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_NOEL_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_QUINNE) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_QUINNE_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_THOMAS) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_THOMAS_IN_CAMP, TRUE, TRUE);
            else if(sTag == GENFL_VELEN) WR_SetPlotFlag(PLT_GEN00PT_PARTY_LGDS, GEN_VELEN_IN_CAMP, TRUE, TRUE);

            WR_SetObjectActive(oFollower, FALSE);
            break;
        }

And here is a screen shot of the implementation in the conversation editor. According to the tutorial having the plost selected recruit as here should recruit the character. It used to, but now it does nothing. And even when I had it working it would auto level the characters to the player level. Now that I am having trouble with it, it first stopped doing the autolevel, and recently stopped working altogether. Little help? Thanks.

Posted Image

Modifié par Lucrane, 04 janvier 2013 - 08:52 .


#2
Lucrane

Lucrane
  • Members
  • 163 messages
So using:
case GEN_HIRE_FOLLOWER:
{
UT_HireFollower(oConversationOwner);
break;
}

and setting GEN_HIRE_FOLLOWER in the plt convo actually hires the conversation owner, but they are level one each time. Additionally, I cannot get this case to appear in another plot doesn't appear to work if I do, only works with the original gen00pt for some reason??