/// <summary> /// Dispatch the event (in a script context). /// </summary> /// <param name="Script">Supplies the script object.</param> /// <param name="Database">Supplies the database connection.</param> public void DispatchEvent(ACR_ServerCommunicator Script, ALFA.Database Database) { foreach (uint PlayerObject in Script.GetPlayers(true)) { if (Database.ACR_GetPlayerID(PlayerObject) != Player.PlayerId) continue; Database.ACR_IncrementStatistic("DISCONNECT_PLAYER"); Script.WriteTimestampedLogEntry("DisconnectPlayerEvent.DispatchEvent: Disconnecting player " + Script.GetPCPlayerName(PlayerObject) + " due to IPC request."); Script.BootPC(PlayerObject); return; } Script.WriteTimestampedLogEntry("DisconnectPlayerEvent.DispatchEvent: No player '" + Player.PlayerName + "' found locally connected to disconnect."); }
/// <summary> /// Dispatch the event (in a script context). /// </summary> /// <param name="Script">Supplies the script object.</param> /// <param name="Database">Supplies the database connection.</param> public void DispatchEvent(ACR_ServerCommunicator Script, ALFA.Database Database) { foreach (uint PlayerObject in Script.GetPlayers(true)) { if (Database.ACR_GetPlayerID(PlayerObject) != Recipient.PlayerId) continue; string FormattedMessage = String.Format( "</c><c=#FFCC99>{0}: </c><c=#30DDCC>[Page] {1}</c>", Sender.PlayerName, Message); Script.SendChatMessage( CLRScriptBase.OBJECT_INVALID, PlayerObject, CLRScriptBase.CHAT_MODE_SERVER, FormattedMessage, CLRScriptBase.FALSE); break; } }
/// <summary> /// Dispatch the event (in a script context). /// </summary> /// <param name="Script">Supplies the script object.</param> /// <param name="Database">Supplies the database connection.</param> public void DispatchEvent(ACR_ServerCommunicator Script, ALFA.Database Database) { foreach (uint PlayerObject in Script.GetPlayers(true)) { if (Database.ACR_GetPlayerID(PlayerObject) != Recipient.PlayerId) continue; string FormattedMessage = String.Format( "</c><c=#FFCC99>{0}: </c><c=#30DDCC>[ServerTell] {1}</c>", Sender.CharacterName, Message); Script.SetLastTellFromPlayerId(PlayerObject, Sender.Player.PlayerId); Script.SendChatMessage( CLRScriptBase.OBJECT_INVALID, PlayerObject, CLRScriptBase.CHAT_MODE_SERVER, FormattedMessage, CLRScriptBase.FALSE); // // If this is the first time that we have delivered a // cross-server tell to this player (since login), remind them // of how to respond. // if ((Database.ACR_GetPCLocalFlags(PlayerObject) & ALFA.Database.ACR_PC_LOCAL_FLAG_SERVER_TELL_HELP) == 0) { Script.SendMessageToPC( PlayerObject, "To respond to a [ServerTell] from a player on a different server, type: #re [message], or #t \"character name\" [message], or #tp \"player name\" [message]. Quotes are optional unless the name has spaces. The #rt [message] command will send a tell to the last player that you had sent a tell to."); Database.ACR_SetPCLocalFlags( PlayerObject, Database.ACR_GetPCLocalFlags(PlayerObject) | ALFA.Database.ACR_PC_LOCAL_FLAG_SERVER_TELL_HELP); } break; } }