142 lines
4.9 KiB
Plaintext
Raw Normal View History

2024-08-03 14:13:18 -04:00
// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
// ::::::::::Extension: Moon's Subrace Selection Converstion for SSE :::::::::::
// ::::::::::::Contact: http://p2.forumforfree.com/shayan.html::::::::::::::::::
// ::::
// :::: Written by: DM_Moon
// ::
// :: Description: Subrace Conversation used in SSE's Wand system.
// ::
#include "sha_subr_methds"
//Conversation Consts
const int CONV_START = 1;
const int CONV_SELECT_NEW_TARGET = 2;
const int CONV_LIST_OBJECTS = 3;
const int CONV_LIST_RACES = 4;
const int CONV_READ_RACE = 5;
const int CONV_CACHED_OBJECT_LIST = 11;
const int CONV_REASON = 12;
const int CONV_WORK_TARGET = 14;
const int CONV_MATCH = 15;
const int CONV_TEST_LETO = 16;
const int CONV_CONFIRM_SUBRACE_CHANGE = 17;
const int CONV_DO_FUNCTION = 0x80000000;
const int CONV_REMOVE_PARAM = 0x000000FF;
//MENU const
const int MENU_NEXT = 0x00000001;
const int MENU_PREV = 0x00000002;
//PARAM/FUNCTION const
const int FUNCTION_DO_RESET = 0x00010000;
const int FUNCTION_BUILD_CACHE = 0x00020000;
const int FUNCTION_CACHE_2_TARGET = 0x00040000;
const int FUNCTION_CHANGE_SUBRACE = 0x00080000;
const int FUNCTION_DO_DISABLE_ENGINE = 0x00100000;
const int FUNCTION_DO_SHUTDOWN_ENGINE =0x00200000;
const int FUNCTION_RELOAD_SUBRACE = 0x00400000;
//Conversation Header.
int moon_conv_Start_DM(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_Start_PC(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ListObjects(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ListRaces(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ReadRaces_DM(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ReadRaces_PC(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_WorkWithTarget_DM(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_WorkWithTarget_PC(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_Match_DM(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_Match_PC(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_LetoTest(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ConfirmSubraceChange_DM(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
int moon_conv_ConfirmSubraceChange_PC(int nCurrent, int nChoice, int iParams = 0, int iFunction = 0);
//The Speaker (DM, PC whatever) The NPC (if any) is OBJECT_SELF
object oMySpeaker = GetLastSpeaker();
//returns the current selected target.
object GetMyTarget();
//Sets the current target to oTarget.
void SetMyTarget(object oTarget);
//returns Character Name, Login and Location (by Area) on oTarget. (Use on PC)
string GetInfoCurrentTarget(object oTarget);
//Saves either all or just a given character.
void SaveCharacter(int All=TRUE, object oPlayer=OBJECT_INVALID);
//Returns the level of o in the Class position of iPos (1 - 3 )
string GetClassAndLevel(int iPos, object o);
//Sends a message to all DMs
void Moon_DM_MSG(string sMSG);
//Sends a message to a given PC
void Moon_PC_MSG(object oPC, string sMSG);
//Writes input into the log file.
void WriteLog(string s);
//Standard Message handling (especially useful for live testing :P)
//returns the string with the given Prefix:
//if iPart:
//0 DEBUG
//1 ERROR
//2 SUCCESS
//3 WARNING
//4 ATTENTION
//5 GRANTED
//6 DENIED
string CreateDebugString(int iPart=0, string s="");
//Put in RangeMin and RangeMax
int FeatStuff(object oTarget, int RangeMin, int RangeMax);
//input 0 to 6;
string GetRaceByFlagNumber(int iNumber);
//returns a little information about the given subrace.
//used for listing subraces.
//For Dialog
string OutputSubraceInformation(string subraceName);
//returns all information about the given subrace.
//For Dialog
string OutputFullSubraceInformation(string subraceName);
//returns the req. of subraces coloured by whether or not oTarget
//fulfills them.
//For Dialog
string GetTestMatch(object oTarget, string subraceName);
const string _TAB_ = " ";
const string COLOUR_RED = "<22> ";
const string COLOUR_GREEN = " <20> ";
const string COLOUR_BLUE = " <20>";
const string COLOUR_YELLOW = "<22><> ";
const string COLOUR_PURPLE = "<22> <20>";
const string COLOUR_TEAL = " <20><>";
const string COLOUR_LRED = "<22>dd";
const string COLOUR_LGREEN = "d<>d";
const string COLOUR_LBLUE = "dd<64>";
const string COLOUR_LYELLOW = "<22><>d";
const string COLOUR_LPURPLE = "<22>d<EFBFBD>";
const string COLOUR_LTEAL = "d<><64>";
const string COLOUR_WHITE = "<22><><EFBFBD>";
const string COLOUR_DARK = "ddd";
const string COLOUR_BLACK = " ";
const string COLOUR_GREEN_SSE = "<01>";
string Moon_ColourString(string sText, string sColour=COLOUR_GREEN);
string Moon_ColourString(string sText, string sColour=COLOUR_GREEN)
{
return "<c"+sColour+">" +sText + "</c>";
}