Aller au contenu

Photo

Party Picker Stage Issue


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

#1
Lucrane

Lucrane
  • Members
  • 163 messages
Hey All,

Ran into a bit of snag. I followed the wiki guide regarding the party picker, and it works great, except for one thing. When the partypicker opens/launches from conversations, the camera appears over the player, you can't see the stage at all, its just a top down view close to the players head. Not sure what is causing it. Anyone know a fix for this?
Much thanks.

Lucrane

#2
Proleric

Proleric
  • Members
  • 2 350 messages
Is the camera position correct when you launch the party picker from the GUI?

Are the position and orientation of the waypoints char_chargen and char_player identical to the OC char_stage?

#3
Lucrane

Lucrane
  • Members
  • 163 messages
I never noticed before but the button is actually having an issue too at the top of the screen. After I recruit the first party member via the conversation, it glows, but on mouse over it grays out and is unusuable. Not sure why. The GUI originally presents itself through the conversation with the first party member, but when it does here it opens with a camera view of the top of the players head, also unclear why.

#4
Lucrane

Lucrane
  • Members
  • 163 messages
No luck with anything atm. I'm using the wiki guide here http://social.biowar...lower_tutorial. Followed it verbatim but the result is not the same as in the first image. I have a party member and all my 2das set up.

What happens however is once I get to the line that "hires" the party member, it jumps to the "party picker" area, but the view it gives is of the top of the players head looking down can't seen anything else but that and the 4 party nodes, of which the party member is already accepted.

I can select accept and the party member is part of the party. But after that I cannot open the party picker from the GUI, the button is grayed out.

Am I missing something vital? I followed the wiki but I am uncertain why my camera angle is all screwy + the party picker GUI grayed out. Thanks in advance

~Lucrane

#5
Lucrane

Lucrane
  • Members
  • 163 messages
I've been using an error message recorder from one of the post to find out what's going on. So far all I know is I get the error

"follower=party_alucard not in party_picker/not in partypicker 2DA"

both of my 2DAs are party_picker_DAH and partypicker_DAH respectively

The hiring script does fire, the npc does end up joining the party, just that the party picker stage is all messed up

SetPartyPickerStage("dah_char_stage", "partypicker_DAH"); is in my module script as well, as well as all the other scripts

#6
Lucrane

Lucrane
  • Members
  • 163 messages
Well I'm stumped I've reworked my 2das a couple of times now checked everything I still get the error mentioned above regarding follower and the party picker still shows top down on the players head, and is not accessible via the GUI menu during live play. Any help appreciated

#7
Lucrane

Lucrane
  • Members
  • 163 messages
Update: using this error message script

void main()
{
object oFollower = OBJECT_SELF;
string sMessage = "Follower=" + GetTag(oFollower) + " ";
if (GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE) sMessage=sMessage+"Status incorrect / ";
if (!IsObjectValid(GetObjectByTag("char_" + GetTag(oFollower)))) sMessage = sMessage + "No waypoint found / ";
if (GetM2DAString(113, "Tag", 12) != GetTag(oFollower)) sMessage = sMessage + "not in party_picker 2DA / ";
if (GetM2DAString(158, "Tag", 12) != GetTag(oFollower)) sMessage = sMessage + "not in PartyPicker 2DA / ";
DisplayFloatyMessage(GetHero(), sMessage, FLOATY_MESSAGE, 0xff0000, 20.0);
}

and exporting everything now the message I get upon hiring the follower is "follower = party_alucard"

Nevertheless, the GUI opens to a view above the characters head, on the stage and the GUI cannot be accessed later.

#8
Lucrane

Lucrane
  • Members
  • 163 messages
correction the party picker GUI can be accessed from the HUD now, but the image is the same, top down view directly over the players head. :\\

#9
Proleric

Proleric
  • Members
  • 2 350 messages
Is the follower waypoint tagged as char_party_alucard?

Is the partypicker set in EVENT_TYPE_MODULE_GETCHARSTAGE?

Feel free to post tables and scripts if you get stuck.

#10
Lucrane

Lucrane
  • Members
  • 163 messages
I decided to clear out my module script, and create a fresh one just to tackle this issue, it provided the report above as well. The script I have been using for my module is this:

void main()

{

event ev = GetCurrentEvent();
int nEventType = GetEventType(ev);
switch(nEventType)


{

case EVENT_TYPE_MODULE_START:
{
object oHero = GetHero();

// skip character generation
Chargen_InitializeCharacter(oHero);
Chargen_SelectRace(oHero, RACE_HUMAN);
Chargen_SelectCoreclass(oHero, class_WARRIOR);
Chargen_SelectBackground(oHero, BACKGROUND_NOBLE);

// give the player some equipment
LoadItemsFromTemplate(oHero, "default_player.utc", TRUE);


RewardXP(oHero, RW_GetXPNeededForLevel(4), FALSE, FALSE);


break;
}

case EVENT_TYPE_MODULE_GETCHARSTAGE:

{

// Overlay the existing stage with my stage

// "my_char_stage" is the resource name of the overlay area

// "partypicker" is the name of the default GDA

SetPartyPickerStage("dah_char_stage", "partypicker_DAH");

break;

}


case EVENT_TYPE_PARTYMEMBER_ADDED:
{
object oFollower = GetEventObject(ev, 0);

SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0); //Allows the follower to gain XP

AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero()))); //Ensures follower appears at PC's location.

SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE); //Adds follower to the active party

if (GetTag(oFollower) == "party_alucard") //You must explicitly test for your follower's tag.
{
WR_SetPlotFlag(PLT_ALUCARD, PARTY_ALUCARD_IN_PARTY, TRUE); //Make sure you use your own flags!
}

break;
}

}

}

tables seem in order, feel free to poke around the script. Its finding the 2da, and the party member will join, just that the character stage for the party picker is a view of the players head from the top close up nothing else not sure why. The waypoint tag for Alucard is in the stage as well. Still totally stumped lol. Thanks in advance.

~Lucrane

#11
Proleric

Proleric
  • Members
  • 2 350 messages
That looks fine to me. Can you post the script that fires the party picker from conversation?

#12
Lucrane

Lucrane
  • Members
  • 163 messages
This is the script I've been using that fires from the conversation to hire the npc

#include "utility_h"

void main()

{

object oFollower = GetObjectByTag("party_alucard"); //Use CreateObject() if the creature isn't present in the module yet

UT_HireFollower(oFollower); //Hires the follower

SetPartyPickerGUIStatus(2);

ShowPartyPickerGUI(); //Shows the Party Picker; necessary for the follower to gain XP

string sMessage = "Follower=" + GetTag(oFollower) + " ";
if (GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE) sMessage=sMessage+"Status incorrect / ";
if (!IsObjectValid(GetObjectByTag("char_" + GetTag(oFollower)))) sMessage = sMessage + "No waypoint found / ";
if (GetM2DAString(113, "Tag", 12) != GetTag(oFollower)) sMessage = sMessage + "not in party_picker 2DA / ";
if (GetM2DAString(158, "Tag", 12) != GetTag(oFollower)) sMessage = sMessage + "not in PartyPicker 2DA / ";
DisplayFloatyMessage(GetHero(), sMessage, FLOATY_MESSAGE, 0xff0000, 20.0);

}

The later part is just the return error script when fired all this says is "follower = party_alucard". I've looked around and I don't see anything to control camera angles on that stage, so confusing lol.

~Lucrane

#13
Proleric

Proleric
  • Members
  • 2 350 messages
This hire script works for me. Maybe worth a try?

Since there is no stage resource in the area, I assume the party picker is hard-coded into the engine somehow. I can only think that the camera angle is fixed relative to either the area or one of the waypoints, hence my earlier question.

#14
Lucrane

Lucrane
  • Members
  • 163 messages
hmm working with it now having some trouble figuring out what I do with this script though:

// Party member id (e.g. 1=Alicia, 2=Godwin...)
int zzzPartyMemberID(object oPartyMember)
{
string sPartyMember = GetTag(oPartyMember);

if (sPartyMember == "zzzcr_alicia") return 1;
if (sPartyMember == "zzzcr_godwin") return 2;
if (sPartyMember == "zzzcr_harold") return 3;
if (sPartyMember == "zzzcr_lara" ) return 4;
return 0;
}

#15
Proleric

Proleric
  • Members
  • 2 350 messages
All that function does is to return a plot flag corresponding to a custom follower.

If you only have one follower, you can ignore the function. Just set the plot flag for your follower.

#16
Lucrane

Lucrane
  • Members
  • 163 messages
// PARTY HIRE PLOT SCRIPT
//
// This is called in conversation when a party member is hired for the first time.
// If the party is full, the party picker is displayed, which forces the PARTYMEMBER_ADDED
// module event.
//
// The flag value is never referenced, because the code is common for all party members.

#include "events_h"
#include "global_objects_h"
#include "utility_h"
#include "sys_rewards_h"
#include "log_h"
#include "utility_h"
#include "wrappers_h"
#include "plot_h"

#include "zzz_partyID" // A header containing the zzzPartyMemberID function
#include "plt_zzzpt_hired_alucard"
#include "plt_zzzpt_party_alucard"



int StartingConditional()
{
event eParms = GetCurrentEvent();
int nType = GetEventType(eParms); // GET or SET
string strPlot = GetEventString(eParms, 0); // Plot GUID
int nFlag = GetEventInteger(eParms, 1); // Plot flag
object oParty = GetEventCreator(eParms); // Plot table owner
object oFollower = GetEventObject(eParms, 0); // Conversation owner (if any)
int nPlotType = GetEventInteger(eParms, 5); // Plot type

int bIsTutorial = GetM2DAInt(TABLE_PLOT_TYPES, "IsTutorial", nPlotType);
int bIsCodex = GetM2DAInt(TABLE_PLOT_TYPES, "IsCodex", nPlotType);

int nResult = FALSE; // return value for DEFINED GET
object oPC = GetPartyLeader();

plot_GlobalPlotHandler(eParms); // any global plot operations, including debug info

if (nType == EVENT_TYPE_SET_PLOT) // actions -> normal flags only
{
int nValue = GetEventInteger(eParms, 2); // 0=Clear 1=Set
int nOldValue = GetEventInteger(eParms, 3); // Current flag value

if (nValue)
{
if (GetArraySize(GetPartyList(oPC)) < 4)
{
UT_HireFollower(oFollower);
SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);
AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));
SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);
WR_SetPlotFlag(PLT_ZZZPT_PARTY, zzzPartyMemberID(oFollower), TRUE);
}
else
{
WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);
SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);
SendPartyMemberHiredEvent(oFollower, TRUE);
// SetPartyPickerGUIStatus(PP_GUI_STATUS_USE);
// ShowPartyPickerGUI();
}
}
}
else // EVENT_TYPE_GET_PLOT -> defined conditions only
{
switch(nFlag)
{

}
}

plot_OutputDefinedFlag(eParms, nResult);
return nResult;
}

This is the script I have in my plot script for hired plot. I am just not sure how to make a new function with

// Party member id (e.g. 1=Alicia, 2=Godwin...)
int zzzPartyMemberID(object oPartyMember)
{
string sPartyMember = GetTag(oPartyMember);

if (sPartyMember == "zzzcr_alicia") return 1;
if (sPartyMember == "zzzcr_godwin") return 2;
if (sPartyMember == "zzzcr_harold") return 3;
if (sPartyMember == "zzzcr_lara" ) return 4;
return 0;
}

Does it need a main(), a conditional? I just get an error when I have this by itself. Where would the function go in its own file? Thanks in advance

#17
Lucrane

Lucrane
  • Members
  • 163 messages
Well I'm at an impasse, can't make heads or tails of any of it at this point both with the previous script and this one. Anyone know of any other partypicker tutorials, not the one on the wiki though, can't get that one to run properly for me at all. Thanks in advance

~Lucrane

#18
Lucrane

Lucrane
  • Members
  • 163 messages
Oddly after some searching found an image that looked exactly like my issue here:

http://www.thenexusf...hange-my-party/

don't know what this means just yet

#19
Proleric

Proleric
  • Members
  • 2 350 messages
It would put a very different complexion on the problem if you're working with saved games and/or mods. With any problem, try to reproduce it in a new game without any mods.

I'll explain the issues with the alternate script if you like, but checking your configuration sounds like the next step.

#20
Lucrane

Lucrane
  • Members
  • 163 messages
I've deleted what little mods I had from my system. Each time I test the module I created, which is standalone, I start from the beginning, but the image from http://www.thenexusf...hange-my-party/, is what I am presented with for the party GUI.

Followers can still join, I just can never select them because I can't see them in the partypicker since the camera orientation is messed up. I still have the official DLC from the game itself and I was already all patched up to the most recent game and toolset. Outside of that I have not modded or touched anything regarding the game itself, so an alternative method might be the best option.

The problem I had with the alternative method at the wiki is I basically got completely lost. I do want to use the zzzparty function because I will have more than 4 party members eventually, but I was not sure where I placed the function, because when I placed it in a separate script by itself I got a compile error.

I think I figured out the plot issue, but nevertheless, when that conversation fires with the alternate method, not only does the party picker GUI not fire and the HUD party picker GUI remain inactive, the follower no longer joins. Any help is appreciated.

~Lucrane

#21
Lucrane

Lucrane
  • Members
  • 163 messages
UPDATE:

I don't know if this means anything but even without the following script in the module:

case EVENT_TYPE_MODULE_GETCHARSTAGE:
{

// Overlay the existing stage with my stage

// "my_char_stage" is the resource name of the overlay area

// "partypicker" is the name of the default GDA

SetPartyPickerStage("mychar_stage", "partypicker_DAH");

break;

}

I still get that partypicker image where I have a top down view of the players head

#22
Apolyon6k

Apolyon6k
  • Members
  • 175 messages
Not sure if it might be part of the problem but which tutorial for the followers are you using?
I ask because there are three on one page, a simple one, an advanced one and an alternate approach.

I have a standalone mod with uses the alternate approach and my party picher works as it should be.
I can select the companions like in the OC.

#23
Lucrane

Lucrane
  • Members
  • 163 messages
I'm using the simple one, but that results in the odd camera positioning on the party picker screen. I then moved on to the alternative approach but could not make much out of it. So I returned to the simple, because at least with that the NPC still joined the party, the only issue was the bad camera angle on the party picker.

I am currently reinstalling everything to see if the problem still persist.

#24
Proleric

Proleric
  • Members
  • 2 350 messages
Regarding the function zzzPartyMemberID, that snippet is intended to be placed in a header which can be included in several scripts.

A header is just a script file. The #include directive includes its lines in another script, exactly as though you had typed those lines directly.

Headers don't need to be compiled - doing so does no harm, but it will fail because there's no Starting Conditional or Main. All you need to do is to compile the main script.

The purpose of the function is to associate a unique number with each of your party members. Initially, you'll only have one follower, so change the function to have one line that returns the value 1 when it matches your follower's tag.

Use the unique id as the plot flag for that follower in all the plots that track things like "has the follower been recruited?" and "is the follower currently in the party?".

The point is that you can then write one generic line of code that works for all followers in a standalone campaign (whereas the OC has very complicated scripts, full of constructions like "if Alistair then xxx else if Dog then yyyy else if Morrigan then zzzz...").

Let me know if you need any more on that.

Really, the only reason I suggested it was just in case the partypicker-related code in the main body of the tutorial was contributing to your problem.

Incidentally, does your partypicker still work in the OC?

#25
Lucrane

Lucrane
  • Members
  • 163 messages
The party picker in the OC still works just fine its only when I try to do a custom module or something that it does the strange camera positioning.

Nevertheless, after much recreation after reinstalling the game, I am pleased to announce that with the standard non-advanced scripts I was able to get the party picker to launch with the proper camera view! The only problem was Alucard, the npc, was not there. I must have overlooked something somewhere but I am sure I will find it and look into implementing the zzpartymemberID as well since I will have few more followers later on.

Overall, good progress so far, thanks all for working with me on this issue thus far.

~Lucrane