ACR_ServerCommunicator.GameWorldManager.ReferenceCharacterById C# (CSharp) Method

ReferenceCharacterById() public method

Reference the data for a character by the character id. If the data was not yet available, it is retrieved from the database.
public ReferenceCharacterById ( int CharacterId, IALFADatabase Database, bool InitialDMState ) : ACR_ServerCommunicator.GameCharacter
CharacterId int Supplies the object id.
Database IALFADatabase Supplies the database connection to use for /// queries, if required. The active rowset may be consumed.
InitialDMState bool Supplies the initial DM state of the /// backing player object to update, for a synchronization of an /// existing player with a new character.
return ACR_ServerCommunicator.GameCharacter
        public GameCharacter ReferenceCharacterById(int CharacterId, IALFADatabase Database, bool? InitialDMState)
        {
            //
            // Check if the object is already known first.
            //

            GameCharacter Character = (from C in Characters
                                       where C.CharacterId == CharacterId
                                       select C).FirstOrDefault();

            if (Character != null)
                return Character;

            //
            // Need to pull the data from the database.
            //

            if (Database == null)
                return null;

            int ServerId;

            Database.ACR_SQLQuery(String.Format(
                "SELECT `Name`, `PlayerID`, `IsOnline`, `ServerID`, `Location` FROM `characters` WHERE `ID` = {0}",
                CharacterId));

            if (!Database.ACR_SQLFetch())
                return null;

            Character = new GameCharacter(this);

            Character.CharacterName = Database.ACR_SQLGetData(0);
            Character.CharacterId = CharacterId;
            Character.PlayerId = Convert.ToInt32(Database.ACR_SQLGetData(1));
            Character.Online = ConvertToBoolean(Database.ACR_SQLGetData(2));
            ServerId = Convert.ToInt32(Database.ACR_SQLGetData(3));
            Character.LocationString = Database.ACR_SQLGetData(4);

            InsertNewCharacter(Character, ServerId, Database, InitialDMState);

            return Character;
        }

Same methods

GameWorldManager::ReferenceCharacterById ( int CharacterId, IALFADatabase Database ) : ACR_ServerCommunicator.GameCharacter