Contact Struct
From OuroDev
typedef struct ContactDef { const char* filename; const char* displayname; // var unless where attached to an PNPC, can be var for call only contacts/tips const char* profession; const char* description; Gender gender; ContactSocialStatus status; ContactAlliance alliance; ContactUniverse universe; TipType tipType; //is this a what type of tip contact is this? See TipType enumeration for more details. const char* tipTypeStr; // string that will get translated const char* hello; // generic greeting const char* SOLhello; // Say Out Loud: generic greeting const char* dontknow; // displayed if contact has not been introduced by the player const char* SOLdontknow; // Say Out Loud: displayed if contact has not been introduced by the player const char* firstVisit; // displayed instead of hello if this is the first time the player has visited this contact const char* SOLfirstVisit; // Say Out Loud: displayed instead of hello if this is the first time the player has visited this contact const char* noTasksRemaining; // displayed instead of hello if contact doesn't have any tasks remaining for player const char* SOLnoTasksRemaining; // Say Out Loud: displayed instead of hello if contact doesn't have any tasks remaining for player const char* playerBusy; // displayed instead of hello if player is full up on tasks const char* SOLplayerBusy; // Say Out Loud: displayed instead of hello if player is full up on tasks const char* comeBackLater; // displayed instead of hello if player isn't right level for tasks const char* SOLcomeBackLater; // Say Out Loud: displayed instead of hello if player isn't right level for tasks const char* zeroRelPoints; // Displayed if you have 0 relationship points with contact (for tutorial contacts) const char* SOLzeroRelPoints; // Say Out Loud: Displayed if you have 0 relationship points with contact (for tutorial contacts) const char* neverIssuedTask; // Displayed if you have never taken a task (for tutorial contacts) const char* SOLneverIssuedTask; // Say Out Loud: Displayed if you have never taken a task (for tutorial contacts) const char* relToFriend; // Displayed once when the contact relationship changes to friend. const char* relToConfidant; // Displayed once when the contact relationship changes to confidant. const char* introduction; // allows {Accept} and {ContactName}, used to intro this contact const char* introductionAccept; // Response text for this contact's introduction. const char* introductionSendoff; // Contact's reply after player chose to be introduced.d const char* SOLintroductionSendoff; // Say Out Loud: Contact's reply after player chose to be introduced.d const char* introduceOneContact; // allows {ContactName}, Displayed when I am going to introduce a single contact const char* introduceTwoContacts; // Displayed when I am going to introduce two contacts (give choice) const char* failsafeString; // Displayed when the character is too high a level to talk to me const char* SOLfailsafeString; // Say Out Loud: Displayed when the character is too high a level to talk to me const char* locationName; // The description of a contact's location const char* wrongAlliance; // Displayed if the player is not of the same alliance as the Contact const char* wrongUniverse; // Displayed if the player is not from the same universe as the Contact const char* SOLwrongAlliance; // Say Out Loud: Displayed if the player is not of the same alliance as the Contact const char* SOLwrongUniverse; // Say Out Loud: Displayed if the player is not from the same universe as the Contact //UI overrides const char *callTextOverride; // Text that will display in the "investigate" button of the contact UI const char *askAboutTextOverride; // Text that will display in the "Ask about available contacts" button const char *leaveTextOverride; // Text that will display in the "leave" button of the contact UI const char *imageOverride; // "none" or a model name that will be used for the contact image. const char *dismissOptionOverride; // Text that will display in the "Dismiss this contact" option on the front page of the contact dialog. const char *dismissConfirmTextOverride; // Text that will display in the top half of the dismissal confirmation page of the contact dialog. const char *dismissConfirmYesOverride; // Text that will display in the "Yes, really dismiss this contact" option on the dismissal confirmation page. const char *dismissConfirmNoOverride; // Text that will display in the "No thanks" option in the dismissal confirmation page. const char *dismissSuccessOverride; // Text that will display in the top half of the dismissal success page of the contact dialog. const char *dismissUnableOverride; // Text that will display in the top half of the contact dialog if an error occurs during the dismissal process. const char *taskDeclineOverride; // Text that will display in the "Talk about something else" option in the task introduction page of the contact dialog. const char *noCellOverride; // Text that will display when the player attempts to interact with the contact via cell phone when not allowed. F32 minutesExpire; //the number of minutes that a contact is valid before it auto-revokes // Subcontacts for MetaContacts const char** subContacts; const char** subContactsDisplay; // Only exists if a script has given a map token to flag this contact as usable const char* mapTokenRequired; // Players cannot have this contact unless the maps have this token // Requires Statement Requirements const char** interactionRequires; // You must meet the requires statement before the contact will talk to you int interactionRequiresTipIndex; // If not zero, then this is a tip and it shares the same interactionRequires statement with all other contact defs that have the same index const char* interactionRequiresFailString; // Displayed to let player know this contact doesn't meet the requires statement // Badge Requirements const char* requiredBadge; // Badge required before the contact will talk to you const char* badgeNeededString; // Displayed to let player know this contact requires a badge const char* SOLbadgeNeededString; // Say Out Loud: Displayed to let player know this contact requires a badge const char* badgeFirstTick; // 0-25% complete with badge, use this text const char* badgeSecondTick; // 25-50% complete with badge, use this text const char* badgeThirdTick; // 50-75% complete with badge, use this text const char* badgeFourthTick; // 75-100% complete with badge, use this text const char* dontHaveToken; // (task force) player doesn't have required token to start TF const char* SOLdontHaveToken; // (task force) Say Out Loud: player doesn't have required token to start TF const char* levelTooLow; // (task force) player level is too low const char* levelTooHigh; // (task force) player level is too high const char* needLargeTeam; // (task force) player needs to be on team of >= 5 const char* needTeamLeader; // (task force) player needs to be team leader const char* needTeamOnMap; // (task force) player's team needs to be on this map const char* badTeamLevel; // (task force) player's team doesn't meet the level requirements const char* taskForceInvite; // (task force) prompt the player to create a task force const char** taskForceRewardRequires; // (task force) requires expression for final reward of this task force const char* taskForceRewardRequiresText; // (task force) message given to players when there are players who fail the requires expression for final reward of this task force const char* taskForceName; // (task force, var) the name given to the task force created int taskForceLevelAdjust; // (task force) level to adjust the players task force by (positive or negative) const char* requiredToken; // (task force) this token is required to start TF const StoryTask** mytasks; // tasks actually loaded with this contact const StoryTaskInclude** taskIncludes; // references to task sets - on load, references copied to tasks array const StoryTask** tasks; // references only -> mytasks + taskIncludes const StoryArcRef** storyarcrefs; // story arc files that belong to this contact const DialogDef **dialogDefs; int stature; // Which level is this contact on in the contact tree? const char* statureSet; // Never introduce players to another contact of the same stature + set. const char* nextStatureSet; // Always introduce players to another contact of higher stature in this set. const char* nextStatureSet2; // If present, contact will attempt to give players choice between nextStatureSet and nextStatureSet2 ContactHandle brokerFriend; // Used for brokers, stores the handle of the other broker in the zone int contactsAtOnce; // How many contacts will this contact attempt to introduce at once? int friendCP; // When does a player become a friend of this contact? int confidantCP; // When does a player become a confidant of this contact? int completeCP; // When should a player be introduce to a contact of a higher stature? int heistCP; // When should I start offering heists to a player? int completePlayerLevel; int failsafePlayerLevel; // When should the contact refuse to give a player any more tasks? int minPlayerLevel; // What character level range this contact is designed for int maxPlayerLevel; // (limits villain levels on missions) int minTaskForceSize; // changes BEGIN_TASKFORCE_SIZE (mainly for debugging) ContactStore store; // What kind of specializations does this contact sell? MultiStore stores; // What kind of specializations does this contact sell? int accessibleContactValue; const char* old_text; // DEPRECATED // flags - all deprecated, should be using new <flags> field bool deprecated; // if non-zero, this contact will not be issued bool taskforceContact; // If non-zero, this contact is a taskforce contact bool noFriendIntro; // if non-zero, this contact will not attempt to introduce a player to a friend bool tutorialContact; // if non-zero, this contact is allowed looser restrictions on language to accomodate starter contacts bool teleportOnComplete; // if non-zero, this contact will do a new player teleport if player has completed contact and closes the dialog bool autoIssue; // if non-zero, this contact will be issued as soon as the player clicks on them bool autoHide; // if non-zero, this contact doesn't show in the contact list unless the player has a task for them bool canTrain; // If non-zero, the contact can train heroes up in level bool canTailor; const StoryReward** dismissReward; // all the flags are in here now U32 flags[CONTACT_DEF_FLAGS_SIZE]; // new flags field const VillainGroupEnum * knownVillainGroups; // for newspaper tasks, IDs of all known villain groups SCRIPTVARS_STD_FIELD } ContactDef;