Пример #1
0
    public void SetValue(MjData data)
    {
        this.data = data;

        Player player = data.player;

        if (player != null)
        {
            gameObject.SetActive(true);
            //detail.Ready_Text.text = player.isReady[0] ? "已准备" : "未准备";

            if (player.offline)
            {
                detail.AwayFlag_Image.gameObject.SetActive(false);
                detail.OfflineFlag_Image.gameObject.SetActive(true);
            }
            else
            {
                detail.AwayFlag_Image.gameObject.SetActive(player.leave);
                detail.OfflineFlag_Image.gameObject.SetActive(false);
            }

            //players[p.index].detail.Zhuang_Text.gameObject.SetActive(Game.MJMgr.makersIndex == p.playerInfo.Index);
            detail.Ting_Image.gameObject.SetActive(player.ting);
            bool IsMakers = Game.MJMgr.MakersPosition == player.position;
            detail.Zhuang_Image.gameObject.SetActive(IsMakers);

            //detail.Icon_Image.sprite = Game.IconMgr.GetFace(player.headImg);
            Game.IconMgr.SetFace(detail.Icon_Image, player.headImg);

            detail.Name_Text.text = player.nickName;
            if (RoomMgr.IsVipRoom() || RoomMgr.IsSingeRoom())
            {
                detail.Coins_Text.text = player.score.ToString();
            }
            else
            {
                detail.Coins_Text.text = player.coin.ToString();
            }
            detail.TalkingFlag_Image.gameObject.SetActive(showVoice);
            detail.WordRoot_Text.gameObject.SetActive(showWord);
            detail.MoodRoot_UIItem.gameObject.SetActive(showMood);

            detail.Icon_Button.onClick.AddListener(showUserInfo);
            detail.userInfo_Button.onClick.AddListener(closeUserInfo);

            bool isActivePlayer = Game.MJMgr.ActivePosition == player.position;
            //
            if (null == eff)
            {
                eff = Game.PoolManager.EffectPool.Spawn("FrameEffect");
                eff.transform.SetParent(this.transform);
                eff.transform.localPosition = Vector3.zero;
                eff.transform.localScale    = Vector3.one;
            }
            eff.SetActive(isActivePlayer);
        }
        else
        {
            gameObject.SetActive(false);
            //players[p.index].detail.Coins_Text.text = "100";
            //players[p.index].detail.Ready_Text.text = "";
            //players[p.index].detail.OfflineFlag_Text.text = "";
        }
    }
Пример #2
0
        /// <summary>
        /// Handles the server action
        /// </summary>
        /// <param name="parameters"></param>
        public void OnAction(Hashtable parameters)
        {
            Console.WriteLine("This server DDTankII, edit and build by Trminhpc!");
            Console.WriteLine("Starting GameServer ... please wait a moment!");
            GameServer.CreateInstance(new GameServerConfig());
            GameServer.Instance.Start();
            GameServer.KeepRunning = true;

            Console.WriteLine("Server started!");
            ConsoleClient client = new ConsoleClient();

            while (GameServer.KeepRunning)
            {
                try
                {
                    handler = ConsoleCtrHandler;
                    SetConsoleCtrlHandler(handler, true);

                    Console.Write("> ");
                    string   line = Console.ReadLine();
                    string[] para = line.Split(' ');
                    switch (para[0])
                    {
                    case "exit":
                        GameServer.KeepRunning = false;
                        break;

                    case "cp":
                        GameClient[] clients     = GameServer.Instance.GetAllClients();
                        int          clientCount = clients == null ? 0 : clients.Length;

                        GamePlayer[]    players     = WorldMgr.GetAllPlayers();
                        int             playerCount = players == null ? 0 : players.Length;
                        List <BaseRoom> rooms       = RoomMgr.GetAllUsingRoom();
                        int             roomCount   = 0;
                        int             gameCount   = 0;
                        foreach (BaseRoom r in rooms)
                        {
                            if (!r.IsEmpty)
                            {
                                roomCount++;
                                if (r.IsPlaying)
                                {
                                    gameCount++;
                                }
                            }
                        }

                        double memoryCount = GC.GetTotalMemory(false);
                        Console.WriteLine(string.Format("Total Clients/Players:{0}/{1}", clientCount, playerCount));
                        Console.WriteLine(string.Format("Total Rooms/Games:{0}/{1}", roomCount, gameCount));
                        Console.WriteLine(string.Format("Total Momey Used:{0} MB", memoryCount / 1024 / 1024));
                        break;

                    case "shutdown":

                        _count = 6;
                        //_timer = new Timer(new TimerCallback(GameServer.Instance.ShutDownCallBack), null, 0, 60 * 1000);
                        _timer = new Timer(new TimerCallback(ShutDownCallBack), null, 0, 60 * 1000);
                        break;

                    case "savemap":

                        //TODO:

                        break;

                    case "clear":
                        Console.Clear();
                        break;

                    case "ball&reload":
                        if (BallMgr.ReLoad())
                        {
                            Console.WriteLine("Ball info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("Ball info is Error!");
                        }
                        break;

                    case "map&reload":
                        if (MapMgr.ReLoadMap())
                        {
                            Console.WriteLine("Map info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("Map info is Error!");
                        }
                        break;

                    case "mapserver&reload":
                        if (MapMgr.ReLoadMapServer())
                        {
                            Console.WriteLine("mapserver info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("mapserver info is Error!");
                        }
                        break;

                    case "prop&reload":
                        if (PropItemMgr.Reload())
                        {
                            Console.WriteLine("prop info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("prop info is Error!");
                        }
                        break;

                    case "item&reload":
                        if (ItemMgr.ReLoad())
                        {
                            Console.WriteLine("item info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("item info is Error!");
                        }
                        break;

                    case "shop&reload":

                        if (ShopMgr.ReLoad())
                        {
                            Console.WriteLine("shop info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("shop info is Error!");
                        }
                        break;

                    case "quest&reload":
                        if (QuestMgr.ReLoad())
                        {
                            Console.WriteLine("quest info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("quest info is Error!");
                        }
                        break;

                    case "fusion&reload":
                        if (FusionMgr.ReLoad())
                        {
                            Console.WriteLine("fusion info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("fusion info is Error!");
                        }
                        break;

                    case "consortia&reload":
                        if (ConsortiaMgr.ReLoad())
                        {
                            Console.WriteLine("consortiaMgr info is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("consortiaMgr info is Error!");
                        }
                        break;

                    case "rate&reload":
                        if (RateMgr.ReLoad())
                        {
                            Console.WriteLine("Rate Rate is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("Rate Rate is Error!");
                        }
                        break;

                    case "fight&reload":
                        if (FightRateMgr.ReLoad())
                        {
                            Console.WriteLine("FightRateMgr is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("FightRateMgr is Error!");
                        }
                        break;

                    case "dailyaward&reload":
                        if (AwardMgr.ReLoad())
                        {
                            Console.WriteLine("dailyaward is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("dailyaward is Error!");
                        }
                        break;

                    case "language&reload":
                        if (LanguageMgr.Reload(""))
                        {
                            Console.WriteLine("language is Reload!");
                        }
                        else
                        {
                            Console.WriteLine("language is Error!");
                        }
                        break;

                    case "nickname":
                        Console.WriteLine("Please enter the nickname");
                        string nickname = Console.ReadLine();
                        string state    = WorldMgr.GetPlayerStringByPlayerNickName(nickname);
                        Console.WriteLine(state);
                        break;

                    default:
                        if (line.Length <= 0)
                        {
                            break;
                        }
                        if (line[0] == '/')
                        {
                            line = line.Remove(0, 1);
                            line = line.Insert(0, "&");
                        }

                        try
                        {
                            bool res = CommandMgr.HandleCommandNoPlvl(client, line);
                            if (!res)
                            {
                                Console.WriteLine("Unknown command: " + line);
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.ToString());
                        }
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }

            if (GameServer.Instance != null)
            {
                GameServer.Instance.Stop();
            }

            LogManager.Shutdown();
        }
 public int HandlePacket(GameClient client, GSPacketIn packet)
 {
     RoomMgr.ExitWaitingRoom(client.Player);
     return(0);
 }
Пример #4
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            switch (packet.ReadInt())
            {
            case 0:
            {
                byte   roomType = packet.ReadByte();
                byte   timeType = packet.ReadByte();
                string name     = packet.ReadString();
                string password = packet.ReadString();
                RoomMgr.CreateRoom(client.Player, name, password, (eRoomType)roomType, timeType);
                break;
            }

            case 1:
            {
                packet.ReadBoolean();
                int    num    = packet.ReadInt();
                int    num2   = packet.ReadInt();
                int    roomId = -1;
                string pwd    = null;
                if (num2 == -1)
                {
                    roomId = packet.ReadInt();
                    pwd    = packet.ReadString();
                }
                if (num == 1)
                {
                    num = 0;
                }
                else
                {
                    if (num == 2)
                    {
                        num = 4;
                    }
                }
                RoomMgr.EnterRoom(client.Player, roomId, pwd, num);
                break;
            }

            case 2:
                if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host && !client.Player.CurrentRoom.IsPlaying)
                {
                    int       num3        = packet.ReadInt();
                    eRoomType roomType2   = (eRoomType)packet.ReadByte();
                    bool      isOpenBoss  = packet.ReadBoolean();
                    string    password2   = packet.ReadString();
                    string    roomname    = packet.ReadString();
                    byte      timeMode    = packet.ReadByte();
                    byte      hardLevel   = packet.ReadByte();
                    int       levelLimits = packet.ReadInt();
                    bool      isCrosszone = packet.ReadBoolean();
                    packet.ReadInt();
                    Console.WriteLine("=====>MapID: " + num3.ToString() + " |roomType: " + roomType2.ToString());
                    if (num3 == 0)
                    {
                        num3 = 401;                        //ME CUNG
                    }
                    RoomMgr.UpdateRoomGameType(client.Player.CurrentRoom, roomType2, timeMode, (eHardLevel)hardLevel, levelLimits, num3, password2, roomname, isCrosszone, isOpenBoss);
                    //log.Error("=====>1: " + client.Player.CurrentRoom + " |2: " + roomType2 + " |3: " + timeMode + " |4: " + (eHardLevel)hardLevel + " |5: " + levelLimits + " |6: " + num3 + " |7: " + password2 + " |8: " + roomname + " |9: " + isCrosszone + " |10: " + isOpenBoss);
                }
                break;

            case 3:
                if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host)
                {
                    RoomMgr.KickPlayer(client.Player.CurrentRoom, packet.ReadByte());
                }
                break;

            case 5:
                if (client.Player.CurrentRoom != null)
                {
                    RoomMgr.ExitRoom(client.Player.CurrentRoom, client.Player);
                }
                break;

            case 6:
                if (client.Player.CurrentRoom == null || client.Player.CurrentRoom.RoomType == eRoomType.Match)
                {
                    return(0);
                }
                RoomMgr.SwitchTeam(client.Player);
                break;

            case 7:
            {
                BaseRoom currentRoom = client.Player.CurrentRoom;
                if (currentRoom != null && currentRoom.Host == client.Player)
                {
                    if (client.Player.MainWeapon == null)
                    {
                        client.Player.SendMessage(LanguageMgr.GetTranslation("Game.Server.SceneGames.NoEquip", new object[0]));
                        return(0);
                    }
                    if (currentRoom.RoomType == eRoomType.Dungeon && !client.Player.IsPvePermission(currentRoom.MapId, currentRoom.HardLevel))
                    {
                        client.Player.SendMessage("Do not PvePermission enter this map!");
                        return(0);
                    }
                    RoomMgr.StartGame(client.Player.CurrentRoom);
                }
                break;
            }

            case 9:
            {
                packet.ReadInt();
                int num4 = packet.ReadInt();
                int num5 = 1011;
                if (num4 == -2)
                {
                    packet.ReadInt();
                    num5 = packet.ReadInt();
                }
                BaseRoom[]      rooms = RoomMgr.Rooms;
                List <BaseRoom> list  = new List <BaseRoom>();
                for (int i = 0; i < rooms.Length; i++)
                {
                    if (!rooms[i].IsEmpty)
                    {
                        switch (num4)
                        {
                        case 3:
                            if (rooms[i].RoomType == eRoomType.Match || rooms[i].RoomType == eRoomType.Freedom)
                            {
                                list.Add(rooms[i]);
                            }
                            break;

                        case 4:
                            if (rooms[i].RoomType == eRoomType.Match)
                            {
                                list.Add(rooms[i]);
                            }
                            break;

                        case 5:
                            if (rooms[i].RoomType == eRoomType.Freedom)
                            {
                                list.Add(rooms[i]);
                            }
                            break;

                        default:
                            if (rooms[i].RoomType == eRoomType.Dungeon)
                            {
                                switch (num5)
                                {
                                case 1007:
                                    if (rooms[i].HardLevel == eHardLevel.Simple)
                                    {
                                        list.Add(rooms[i]);
                                    }
                                    break;

                                case 1008:
                                    if (rooms[i].HardLevel == eHardLevel.Normal)
                                    {
                                        list.Add(rooms[i]);
                                    }
                                    break;

                                case 1009:
                                    if (rooms[i].HardLevel == eHardLevel.Hard)
                                    {
                                        list.Add(rooms[i]);
                                    }
                                    break;

                                case 1010:
                                    if (rooms[i].HardLevel == eHardLevel.Terror)
                                    {
                                        list.Add(rooms[i]);
                                    }
                                    break;

                                default:
                                    list.Add(rooms[i]);
                                    break;
                                }
                            }
                            break;
                        }
                    }
                }
                if (list.Count > 0)
                {
                    client.Out.SendUpdateRoomList(list);
                }
                break;
            }

            case 10:
                if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host)
                {
                    byte pos       = packet.ReadByte();
                    int  place     = packet.ReadInt();
                    bool isOpened  = packet.ReadBoolean();
                    int  placeView = packet.ReadInt();
                    RoomMgr.UpdateRoomPos(client.Player.CurrentRoom, (int)pos, isOpened, place, placeView);
                }
                break;

            case 11:
                if (client.Player.CurrentRoom != null && client.Player.CurrentRoom.BattleServer != null)
                {
                    client.Player.CurrentRoom.BattleServer.RemoveRoom(client.Player.CurrentRoom);
                    if (client.Player != client.Player.CurrentRoom.Host)
                    {
                        client.Player.CurrentRoom.Host.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("Game.Server.SceneGames.PairUp.Failed", new object[0]));
                        RoomMgr.UpdatePlayerState(client.Player, 0);
                    }
                    else
                    {
                        RoomMgr.UpdatePlayerState(client.Player, 2);
                    }
                }
                break;

            case 12:
                packet.ReadInt();
                if (client.Player.CurrentRoom != null)
                {
                    int num6 = packet.ReadInt();
                    int num7 = num6;
                    if (num7 == 0)
                    {
                        client.Player.CurrentRoom.GameType = eGameType.Free;
                    }
                    else
                    {
                        client.Player.CurrentRoom.GameType = eGameType.Guild;
                    }
                    GSPacketIn pkg = client.Player.Out.SendRoomType(client.Player, client.Player.CurrentRoom);
                    client.Player.CurrentRoom.SendToAll(pkg, client.Player);
                }
                break;

            case 15:
                if (client.Player.MainWeapon == null)
                {
                    client.Player.SendMessage(LanguageMgr.GetTranslation("Game.Server.SceneGames.NoEquip", new object[0]));
                    return(0);
                }
                if (client.Player.CurrentRoom != null)
                {
                    RoomMgr.UpdatePlayerState(client.Player, packet.ReadByte());
                }
                break;
            }
            return(0);
        }
Пример #5
0
    void showDissolveNotice(DissolveInfo dv)
    {
        RoomMgr rm = RoomMgr.GetInstance();

        mDissolve.SetActive(true);

        int now = (int)((DateTime.Now.Ticks - DateTime.Parse("1970-01-01").Ticks) / 10000000);

        mEndTime = dv.time + now;

        UIGrid grid = mSeats[0].GetComponentInParent <UIGrid>();

        int index = 0;

        for (int i = 0; i < rm.players.Count && i < mSeats.Count; i++, index++)
        {
            Transform  s = mSeats[i];
            PlayerInfo p = rm.players[i];

            s.gameObject.SetActive(true);
            s.Find("bghead/icon").GetComponent <IconLoader>().setUserID(p.userid);
            s.Find("name").GetComponent <UILabel>().text = p.name;
        }

        for (int i = index; i < mSeats.Count; i++)
        {
            mSeats[i].gameObject.SetActive(false);
        }

        string[] descs = new string[] { "等待中", "已拒绝", "已同意", "离线", "申请解散" };

        for (int i = 0; i < rm.players.Count && i < mSeats.Count; i++)
        {
            Transform status = mSeats [i].Find("status");

            UILabel   desc  = status.GetComponentInChildren <UILabel>();
            SpriteMgr sm    = status.Find("icon").GetComponent <SpriteMgr>();
            int       state = dv.states[i];
            int       id    = 0;

            if (state > 2)
            {
                id = 4;
            }

            bool online = dv.online[i];
            if (state <= 2)
            {
                if (!online)
                {
                    id = 3;
                }
                else
                {
                    id = state;
                }
            }

            sm.setIndex(id);
            desc.text = descs[id];
        }

        grid.Reposition();

        int si = rm.seatindex;
        int st = dv.states[si];

        bool[] check = new bool[] { false, false, false, false };

        if (dv.reason == "offline")
        {
            check [2] = true;
        }
        else
        {
            if (0 == st)
            {
                check [0] = true;
                check [1] = true;
            }
            else
            {
                check [3] = true;
            }
        }

        mBtnAgree.SetActive(check[0]);
        mBtnReject.SetActive(check[1]);
        mBtnDissolve.SetActive(check[2]);
    }
Пример #6
0
 public override int HandlePacket(GamePlayer player, GSPacketIn packet)
 {
     RoomMgr.ExitWaitingRoom(player);
     return(0);
 }
    public FightHandler(BaseServer server)
    {
        baseServer = server;

        roomMgr = new RoomMgr();
    }
Пример #8
0
        public void OnAction(Hashtable parameters)
        {
            Console.WriteLine("This server GunnyII, edit and build by SkelletonX!");
            Console.WriteLine("Starting GameServer ... please wait a moment!");
            GameServer.CreateInstance(new GameServerConfig());
            GameServer.Instance.Start();
            GameServer.KeepRunning = true;
            Console.WriteLine("Server started!");
            ConsoleClient client = new ConsoleClient();

            while (GameServer.KeepRunning)
            {
                try
                {
                    ConsoleStart.handler = new ConsoleStart.ConsoleCtrlDelegate(ConsoleStart.ConsoleCtrHandler);
                    ConsoleStart.SetConsoleCtrlHandler(ConsoleStart.handler, true);
                    Console.Write("> ");
                    string   text  = Console.ReadLine();
                    string[] array = text.Split(new char[]
                    {
                        ' '
                    });
                    string key;
                    switch (key = array[0])
                    {
                    case "exit":
                        GameServer.KeepRunning = false;
                        continue;

                    //dragonares
                    case "lock":
                        Console.Clear();
                        Console.WriteLine("Ten tai khoan: ");
                        string bnickname = Console.ReadLine();
                        Console.WriteLine("Ly do band: ");
                        string   breason = Console.ReadLine();
                        DateTime dt2     = new DateTime(2014, 07, 02); //Tempo de banimento
                        using (ManageBussiness mg = new ManageBussiness())
                        {
                            mg.ForbidPlayerByNickName(bnickname, dt2, false);
                        }
                        Console.WriteLine("Nguoi dung " + bnickname + " da bi khoa.");

                        break;

                    case "unlock":
                        Console.Clear();
                        Console.WriteLine("Ten tai khoan: ");
                        string   bnickname2 = Console.ReadLine();
                        DateTime dt22       = new DateTime(2014, 07, 02); //Tempo de banimento
                        using (ManageBussiness mg = new ManageBussiness())
                        {
                            mg.ForbidPlayerByNickName(bnickname2, dt22, true);
                        }
                        Console.WriteLine("Nguoi dung " + bnickname2 + " da mo khoa.");

                        break;

                    case "thongbao":
                    {
                        Console.WriteLine("Thong bao: ");
                        string value = Console.ReadLine();
                        Console.WriteLine(string.Format(value));
                        Console.WriteLine("Thong bao thanh cong .");
                        continue;
                    }

                    case "cp":
                    {
                        GameClient[]    allClients   = GameServer.Instance.GetAllClients();
                        int             num2         = (allClients == null) ? 0 : allClients.Length;
                        GamePlayer[]    allPlayers   = WorldMgr.GetAllPlayers();
                        int             num3         = (allPlayers == null) ? 0 : allPlayers.Length;
                        List <BaseRoom> allUsingRoom = RoomMgr.GetAllUsingRoom();
                        int             num4         = 0;
                        int             num5         = 0;
                        foreach (BaseRoom current in allUsingRoom)
                        {
                            if (!current.IsEmpty)
                            {
                                num4++;
                                if (current.IsPlaying)
                                {
                                    num5++;
                                }
                            }
                        }
                        double num6 = (double)GC.GetTotalMemory(false);
                        Console.WriteLine(string.Format("Total Clients/Players:{0}/{1}", num2, num3));
                        Console.WriteLine(string.Format("Total Rooms/Games:{0}/{1}", num4, num5));
                        Console.WriteLine(string.Format("Total Momey Used:{0} MB", num6 / 1024.0 / 1024.0));
                        continue;
                    }

                    case "shutdown":
                        ConsoleStart._count = 6;
                        ConsoleStart._timer = new Timer(new TimerCallback(ConsoleStart.ShutDownCallBack), null, 0, 60000);
                        continue;

                    case "savemap":
                        continue;

                    case "clear":
                        Console.Clear();
                        continue;

                    case "ball&reload":
                        if (BallMgr.ReLoad())
                        {
                            Console.WriteLine("Ball info is Reload!");
                            continue;
                        }
                        Console.WriteLine("Ball info is Error!");
                        continue;

                    case "map&reload":
                        if (MapMgr.ReLoadMap())
                        {
                            Console.WriteLine("Map info is Reload!");
                            continue;
                        }
                        Console.WriteLine("Map info is Error!");
                        continue;

                    case "mapserver&reload":
                        if (MapMgr.ReLoadMapServer())
                        {
                            Console.WriteLine("mapserver info is Reload!");
                            continue;
                        }
                        Console.WriteLine("mapserver info is Error!");
                        continue;

                    case "prop&reload":
                        if (PropItemMgr.Reload())
                        {
                            Console.WriteLine("prop info is Reload!");
                            continue;
                        }
                        Console.WriteLine("prop info is Error!");
                        continue;

                    case "item&reload":
                        if (ItemMgr.ReLoad())
                        {
                            Console.WriteLine("item info is Reload!");
                            continue;
                        }
                        Console.WriteLine("item info is Error!");
                        continue;

                    case "shop&reload":
                        if (ShopMgr.ReLoad())
                        {
                            Console.WriteLine("shop info is Reload!");
                            continue;
                        }
                        Console.WriteLine("shop info is Error!");
                        continue;

                    case "quest&reload":
                        if (QuestMgr.ReLoad())
                        {
                            Console.WriteLine("quest info is Reload!");
                            continue;
                        }
                        Console.WriteLine("quest info is Error!");
                        continue;

                    case "fusion&reload":
                        if (FusionMgr.ReLoad())
                        {
                            Console.WriteLine("fusion info is Reload!");
                            continue;
                        }
                        Console.WriteLine("fusion info is Error!");
                        continue;

                    case "consortia&reload":
                        if (ConsortiaMgr.ReLoad())
                        {
                            Console.WriteLine("consortiaMgr info is Reload!");
                            continue;
                        }
                        Console.WriteLine("consortiaMgr info is Error!");
                        continue;

                    case "rate&reload":
                        if (RateMgr.ReLoad())
                        {
                            Console.WriteLine("Rate Rate is Reload!");
                            continue;
                        }
                        Console.WriteLine("Rate Rate is Error!");
                        continue;

                    case "fight&reload":
                        if (FightRateMgr.ReLoad())
                        {
                            Console.WriteLine("FightRateMgr is Reload!");
                            continue;
                        }
                        Console.WriteLine("FightRateMgr is Error!");
                        continue;

                    case "dailyaward&reload":
                        if (AwardMgr.ReLoad())
                        {
                            Console.WriteLine("dailyaward is Reload!");
                            continue;
                        }
                        Console.WriteLine("dailyaward is Error!");
                        continue;

                    case "language&reload":
                        if (LanguageMgr.Reload(""))
                        {
                            Console.WriteLine("language is Reload!");
                            continue;
                        }
                        Console.WriteLine("language is Error!");
                        continue;

                    case "nickname":
                    {
                        Console.WriteLine("Please enter the nickname");
                        string nickName = Console.ReadLine();
                        string playerStringByPlayerNickName = WorldMgr.GetPlayerStringByPlayerNickName(nickName);
                        Console.WriteLine(playerStringByPlayerNickName);
                        continue;
                    }
                    }
                    if (text.Length > 0)
                    {
                        if (text[0] == '/')
                        {
                            text = text.Remove(0, 1);
                            text = text.Insert(0, "&");
                        }
                        try
                        {
                            if (!CommandMgr.HandleCommandNoPlvl(client, text))
                            {
                                Console.WriteLine("Unknown command: " + text);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                    }
                }
                catch (Exception value)
                {
                    Console.WriteLine(value);
                }
            }
            if (GameServer.Instance != null)
            {
                GameServer.Instance.Stop();
            }
            LogManager.Shutdown();
        }
Пример #9
0
        public override bool Start()
        {
            bool result = true;

            try
            {
                IsRunning = 0;
                Thread.CurrentThread.Priority = ThreadPriority.Normal;
                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(this.CurrentDomain_UnhandledException);


                if (!this.StartScriptComponents())
                {
                    result = false;
                    GameServer.log.Error("初始化脚本失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化脚本成功!");

                if (!this.InitSocket(IPAddress.Parse(this.Config.GameIP), this.Config.GamePort))
                {
                    result = false;
                    GameServer.log.Error("初始化监听端口失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化监听端口成功!");

                if (!this.AllocatePacketBuffers())
                {
                    result = false;
                    GameServer.log.Error("分配数据包缓冲区失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("分配数据包缓冲区成功!");

                //LogMgr.Setup

                if (!WorldMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化世界场景失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化世界场景成功!");



                if (!FusionMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化熔炼失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化熔炼成功!");

                if (!AwardMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化奖励失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化奖励成功!");


                if (!MissionInfoMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化关卡失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化关卡成功!");

                if (!PveInfoMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化pve失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化pve成功!");



                if (!FightRateMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化战斗倍率失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化战斗倍率成功!");

                if (!ConsortiaLevelMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化公会等级失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化公会等级成功!");

                if (!StrengthenMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化强化失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化强化成功!");

                if (!ShopMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化商店失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化商店成功!");

                if (!BoxMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化时间宝箱失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化时间宝箱成功!");

                if (!QuestMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化任务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化任务成功!");

                if (!AchievementMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化成就失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化成就成功!");

                if (!AchievementMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化成就失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化成就成功!");

                if (!RoomMgr.Setup(this.Config.MaxRoomCount))
                {
                    result = false;
                    GameServer.log.Error("初始化房间管理服务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化房间管理服务成功!");

                if (!GameMgr.Setup(1, 4))
                {
                    result = false;
                    GameServer.log.Error("初始化游戏管理服务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化游戏管理服务成功!");

                if (!ConsortiaMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化公会失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化公会成功!");


                if (!Game.Server.Managers.RateMgr.Init(this.Config))
                {
                    result = false;
                    GameServer.log.Error("初始化经验倍率管理服务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化经验倍率管理服务成功!");

                if (!MacroDropMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化宏观掉落失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化宏观掉落成功!");


                if (!BattleMgr.Setup(this.Config))
                {
                    result = false;
                    GameServer.log.Error("加载战斗管理服务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("加载战斗管理服务成功!");

                if (!this.InitGlobalTimer())
                {
                    result = false;
                    GameServer.log.Error("初始化全局Timers失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化全局Timers成功!");

                if (!this.InitLoginServer())
                {
                    result = false;
                    GameServer.log.Error("登陆到中心服务器失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("登陆到中心服务器成功!");

                if (!MarryRoomMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化礼堂失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化礼堂成功!");

                if (!SpaRoomMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化温泉失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化温泉成功!");

                if (!ActiveMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化活动失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化活动成功!");
                if (!VIPMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化VIP失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化VIP成功!");
                if (!LevelMgr.Init())
                {
                    result = false;
                    GameServer.log.Error("初始化等级失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("初始化等级成功!");

                /*  if (!WorldBossMgr.Init())
                 * {
                 *    result = false;
                 *    GameServer.log.Error("初始化世界Boss失败,请检查!");
                 *    return result;
                 * }
                 * GameServer.log.Info("初始化世界Boss成功!");
                 */
                RoomMgr.Start();
                GameMgr.Start();
                BattleMgr.Start();
                MacroDropMgr.Start();

                if (!base.Start())
                {
                    result = false;
                    GameServer.log.Error("启动基础服务失败,请检查!");
                    return(result);
                }
                GameServer.log.Info("启动基础服务成功!");

                GameEventMgr.Notify(ScriptEvent.Loaded);
                GC.Collect(GC.MaxGeneration);
                //LogMgr.Setup(1, 1, 1);
                GameServer.log.Warn("游戏服务器启动成功!");
                IsRunning = 1;
            }
            catch (Exception e)
            {
                GameServer.log.Error("Failed to start the server", e);
                // throw e;
                result = false;
            }
            return(result);
        }
Пример #10
0
 public RoomMgr()
 {
     instance = this;
     RoomNum  = 0;
 }