/*//////////////////////////////////////////////////////////////////////////////////////////////////// // Script Name: 0i_messages ////////////////////////////////////////////////////////////////////////////////////////////////////// Include script for sending messages to files and players on the server. *///////////////////////////////////////////////////////////////////////////////////////////////////// // Programmer: Philos ////////////////////////////////////////////////////////////////////////////////////////////////////// #include "0i_constants" #include "0i_color" // Sets up a Message on the module to be sent to the log and/or players. // sTextColor color of text sent to the players and DM's. // Use AI_COLOR_*. Where * is WHITE, RED, GREEN, BLUE, GRAY, or YELLOW. // If nLog is TRUE it will send the message to the log file. // If nToDMs is TRUE it will send the message to all DM's. // If oPC is set to a player then they will get the message as well. // Messages delivered by script should be colored as follows. // _Debug message = COLOR_WHITE // Generic messages for the player = AI_COLOR_YELLOW // Negative messages for the player = AI_COLOR_RED // Positive messages for the player = AI_COLOR_GREEN // System messages, things that are not part of Dnd = COLOR_GRAY // Descriptive in game messages = COLOR_BLUE void ai_SendMessages(string sMessage, string sTextColor = AI_COLOR_YELLOW, object oPC = OBJECT_INVALID, int nToDMs = FALSE, int nLog = FALSE); // Used for _debugging. Keeps all the information organized. // Sends info to first pc if true and sends information to log file. // sScriptName is the name of the script calling this function. // sLineNumber is the line number of the code calling this function. // sMessage is the description of the debug being sent. void ai_Debug(string sScriptName, string sLineNumber, string sMessage); // A counter to track microseconds in code. Start saves the counter. void ai_Counter_Start(); // A counter to track microseconds in code. End displays the time between Start // and End to the log file. void ai_Counter_End(string sMessage = ""); void ai_SendMessages(string sMessage, string sTextColor = AI_COLOR_YELLOW, object oPC = OBJECT_INVALID, int nToDMs = FALSE, int nLog = FALSE) { // if nLog is TRUE send the message to the log file. if(nLog) { sMessage = ai_StripColorCodes(sMessage); // Add PC name to log to know who it belongs to. string sLogPCName; if(oPC != OBJECT_INVALID) sLogPCName = "(" + GetName(oPC) + ") "; WriteTimestampedLogEntry("*** MESSAGE: " + sLogPCName + " " + sMessage); } sMessage = ai_AddColorToText(sMessage, sTextColor); if(oPC != OBJECT_INVALID) SendMessageToPC(oPC, sMessage); // If nToDMs is true send message to the DM's online. if(nToDMs) SendMessageToAllDMs(sMessage); } void ai_Debug(string sScriptName, string sLineNumber, string sMessage) { string sName = GetName(OBJECT_SELF); if(sName == GetLocalString(GetModule(), AI_RULE_DEBUG_CREATURE) && sName != "") { sMessage = "(((DEBUG)))[" + sScriptName + " - " + sLineNumber + " ]" + sMessage; sMessage = ai_StripColorCodes(sMessage); WriteTimestampedLogEntry(sMessage); return; } //sMessage = "(((DEBUG)))[" + sScriptName + " - " + sLineNumber + " ]" + sMessage; //sMessage = ai_StripColorCodes(sMessage); //SendMessageToPC(GetFirstPC(), sMessage); //WriteTimestampedLogEntry(sMessage); //if(GetLocalInt(OBJECT_SELF, "AI_DEBUG")) WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Kirrin") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Dorna Trapspringer") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Dire Spider") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Shadow Priest") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Tomi Undergallows") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Thello Colds") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Gert Sigers") WriteTimestampedLogEntry(sMessage); //if(GetName(OBJECT_SELF) == "Zombie") WriteTimestampedLogEntry(sMessage); } void ai_Counter_Start() { SetLocalInt(GetModule(), "0_MSCounter", GetMicrosecondCounter()); } void ai_Counter_End(string sMessage = "") { int nTime = GetMicrosecondCounter(); nTime = nTime - GetLocalInt(GetModule(), "0_MSCounter"); float fTime = nTime / 1000000.0; if(AI_DEBUG) ai_Debug("MICROSECOND_COUNTER", "", "Seconds: " + FloatToString(fTime, 0, 10) + " Microseconds: " + IntToString(nTime) + " " + sMessage); }