Aller au contenu

Photo

Odd question - Possible to switch to a different PC?


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

#1
madsabroo

madsabroo
  • Members
  • 259 messages
I was thinking it might be neat to have a bit of story-telling in my stand-alone happen from a different character's perspective.  I know it would be possible with cutscenes, but would it even be possible to make them playable for a while?  The actual PC would have to be teleported to wherever they are, I imagine, and the new "PC" made some sort of companion, perhaps?

It would probably be a nightmare to make work, but I'm curious if it's even possible with the tools we have.

#2
Proleric

Proleric
  • Members
  • 2 352 messages
Yes, it's very possible. For example, in the OC Arl Eamon story, someone has to go into the Fade to free Connor from a demon, but that someone doesn't have to be the player or even a follower (without posting a spoiler here). Have a look at how Bioware did it.

#3
madsabroo

madsabroo
  • Members
  • 259 messages
Oh, good point! I didn't even think of that example. I usually have Morrigan go so I was thinking of party members in that instance. I'll take a look at their scripts. Thanks again for good advice. :)

#4
madsabroo

madsabroo
  • Members
  • 259 messages
Hmm, I found the script and it actually doesn't look too complicated. The weird thing is, I'm not seeing where they actually do the area transition to the Fade. Here's a snippet of the code, it has the usual opening and then this (some spoilers for those not at this part yet):



case ARL_FADE_FADE_ENTERED:

{

//This is triggered once when the player enters the fade.



int bMorriganActive = WR_GetPlotFlag(PLT_ARL300PT_FADE, ARL_FADE_MORRIGAN_IN_FADE);

int bWynneActive = WR_GetPlotFlag(PLT_ARL300PT_FADE, ARL_FADE_WYNNE_IN_FADE);

int bJowanActive = WR_GetPlotFlag(PLT_ARL300PT_FADE, ARL_FADE_JOWAN_IN_FADE);

int bIrvingActive = WR_GetPlotFlag(PLT_ARL300PT_FADE, ARL_FADE_IRVING_IN_FADE);

object oMorrigan = UT_GetNearestCreatureByTag(oPC, GEN_FL_MORRIGAN);

object oWynne = UT_GetNearestCreatureByTag(oPC, GEN_FL_WYNNE);

object oJowan = UT_GetNearestCreatureByTag(oPC, ARL_CR_JOWAN);

object oIrving = UT_GetNearestCreatureByTag(oPC, ARL_CR_IRVING);



object oPartyInventoryStorage = UT_GetNearestObjectByTag(oPC, ARL_IP_FADE_PARTY_INVENTORY_STORAGE);



object [] arParty = GetPartyList(GetHero());

int nSize = GetArraySize(arParty);

int nIndex;

object oCurrent;



//Remove all party members from the party and store them to be added later.

UT_PartyStore();





//set all (former) party members other than the hero, Wynne and Morrigan to inactive.

for(nIndex = 0; nIndex < nSize; nIndex++)

{

oCurrent = arParty[nIndex];



if ((IsHero(oCurrent) == FALSE) && (oCurrent != oWynne) && (oCurrent != oMorrigan))

{

WR_SetObjectActive(oCurrent, FALSE);

}

}



I mean, I see this "//This is triggered once when the player enters the fade" but there's no actual area transition call. Am I not seeing something? I checked the constants and functions and I didn't see anything there that looks like it sends you to the Fade either. Help. :(

#5
Proleric

Proleric
  • Members
  • 2 352 messages
The area transition occurs when plot flag ARL_REMOVE_DEMON_JUMP_TO_FADE is set in the plot script arl200pt_remove_demon.

That happens in the next two cases of that script.

On entry to the fade, the area script arl300ar_fade sets the flag you mentioned.

Modifié par Proleric1, 02 février 2011 - 07:36 .


#6
madsabroo

madsabroo
  • Members
  • 259 messages
Ahh, thank you! I'll check it out.