コード例 #1
0
ファイル: virtualRoom.cs プロジェクト: habb0/HoloRebirth
        internal void loadBots()
        {
            DataColumn dCol;
            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dCol = dbClient.getColumn("SELECT id FROM roombots WHERE roomid = '" + this.roomID + "'");
            }
            int[] IDs = dataHandling.dColToArray(dCol, null);
            for (int i = 0; i < IDs.Length; i++)
            {
                virtualBot roomBot = new virtualBot(IDs[i], getFreeRoomIdentifier(), this);
                roomBot.H = sqFLOORHEIGHT[roomBot.X, roomBot.Y];
                sqUNIT[roomBot.X, roomBot.Y] = true;

                _Bots.Add(roomBot.roomUID, roomBot);
                sendData(@"@\" + roomBot.detailsString);
                sendData("@b" + roomBot.statusString);
            }
        }
コード例 #2
0
ファイル: virtualRoom.cs プロジェクト: habb0/HoloRebirth
 /// <summary>
 /// Updates the status of a virtualBot object in room. If the bot is walking, then the bot isn't refreshed immediately but processed at the next cycle of the status thread, to prevent double status strings in @b.
 /// </summary>
 /// <param name="roomBot">The virtualBot object to update.</param>
 internal void Refresh(virtualBot roomBot)
 {
     try
     {
         if (roomBot.goalX == -1)
             _statusUpdates.Append(roomBot.statusString + Convert.ToChar(13));
     }
     catch { }
 }
コード例 #3
0
ファイル: virtualRoom.cs プロジェクト: habb0/HoloRebirth
 /// <summary>
 /// Sends a 'shout' chat message from a virtualBot to the room. All users will receive the message and bob their heads.
 /// </summary>
 /// <param name="sourceBot">The virtualRoomBot object that sent the message.</param>
 /// <param name="Message">The message that was sent.</param>
 internal void sendShout(virtualBot sourceUser, string Message)
 {
     sourceUser.handleStatus("talk", "", Message.Length * 190);
     string Data = "@Z" + Encoding.encodeVL64(sourceUser.roomUID) + Message + Convert.ToChar(2);
     lock (_Users)
     {
         foreach (virtualRoomUser roomUser in _Users.Values)
         {
             roomUser.User.sendData(Data);
         }
     }
 }
コード例 #4
0
ファイル: virtualRoom.cs プロジェクト: habb0/HoloRebirth
 /// <summary>
 /// Sends a 'say' chat message from a virtualBot to the room. Users in a range of 5 squares will receive the message and bob their heads.
 /// </summary>
 /// <param name="sourceBot">The virtualBot object that sent the message.</param>
 /// <param name="Message">The message that was sent.</param>
 internal void sendSaying(virtualBot sourceBot, string Message)
 {
     string Data = "@X" + Encoding.encodeVL64(sourceBot.roomUID) + Message + Convert.ToChar(2);
     lock (_Users)
     {
         foreach (virtualRoomUser roomUser in _Users.Values)
         {
             roomUser.User.sendData(Data);
         }
     }
 }
コード例 #5
0
        /// <summary>
        /// Sends a 'shout' chat message from a virtualBot to the room. All users will receive the message and bob their heads.
        /// </summary>
        /// <param name="sourceBot">The virtualRoomBot object that sent the message.</param>
        /// <param name="Message">The message that was sent.</param>
        internal void sendShout(virtualBot sourceBot, string Message)
        {
            //sourceBot.handleStatus("talk", "", Message.Length * 190);
            string Data = "@Z" + Encoding.encodeVL64(sourceBot.roomUID) + Message + Convert.ToChar(2);

            foreach (virtualRoomUser roomUser in ((Hashtable)_Users.Clone()).Values)
            {
                //if (roomUser.roomUID != sourceBot.roomUID && roomUser.goalX == -1)
                //{
                //    byte newHeadRotation = Pathfinding.Rotation.headRotation(roomUser.Z2, roomUser.X, roomUser.Y, sourceBot.X, sourceBot.Y);
                //    if (newHeadRotation < 10 && newHeadRotation != roomUser.Z1) // Rotation changed
                //    {
                //        roomUser.Z1 = newHeadRotation;
                //        _statusUpdates.Append(roomUser.statusString + Convert.ToChar(13));
                //    }
                //}
                roomUser.User.sendData(Data);
            }
        }
コード例 #6
0
        /// <summary>
        /// Sends a 'say' chat message from a virtualBot to the room. Users in a range of 5 squares will receive the message and bob their heads.
        /// </summary>
        /// <param name="sourceBot">The virtualBot object that sent the message.</param>
        /// <param name="Message">The message that was sent.</param>
        internal void sendSaying(virtualBot sourceBot, string Message)
        {
            string Data = "@X" + Encoding.encodeVL64(sourceBot.roomUID) + Message + Convert.ToChar(2);
            //sourceBot.handleStatus("talk", "", Message.Length * 190);

            foreach (virtualRoomUser roomUser in _Users.Values)
            {
                if (Math.Abs(roomUser.X - sourceBot.X) < 6 && Math.Abs(roomUser.Y - sourceBot.Y) < 6)
                {
                    //if (roomUser.goalX == -1)
                    //{
                    //    byte newHeadRotation = Pathfinding.Rotation.headRotation(roomUser.Z2, roomUser.X, roomUser.Y, sourceBot.X, sourceBot.Y);
                    //    if (newHeadRotation < 10 && newHeadRotation != roomUser.Z1) // Rotation changed
                    //    {
                    //        roomUser.Z1 = newHeadRotation;
                    //        _statusUpdates.Append(roomUser.statusString + Convert.ToChar(13));
                    //    }
                    //}
                    roomUser.User.sendData(Data);
                }
            }
        }
コード例 #7
0
        internal void loadBots()
        {
            int[] IDs = DB.runReadColumn("SELECT id FROM roombots WHERE roomid = '" + this.roomID + "'", 0, null);
            for (int i = 0; i < IDs.Length; i++)
            {
                virtualBot roomBot = new virtualBot(IDs[i], getFreeRoomIdentifier(), this);
                roomBot.H = sqFLOORHEIGHT[roomBot.X, roomBot.Y];
                sqUNIT[roomBot.X, roomBot.Y] = true;

                _Bots.Add(roomBot.roomUID, roomBot);
                sendData(@"@\" + roomBot.detailsString);
                sendData("@b" + roomBot.statusString);
            }
        }