Beispiel #1
0
    public void saveServerMessages()
    {
        var tsn = new TableStartNotify();
        var ra  = fbGame.gamePlayers.GetEnumerator();

        while (ra.MoveNext())
        {
            tsn.allPlayerInfos.Add(new PlayerInfo
            {
                uid     = 0,
                frameId = (byte)ra.Current.Value.actor.id,
                roleId  = (ushort)ra.Current.Value.actor.roleId,
                team    = (byte)ra.Current.Value.actor.team,
                name    = ra.Current.Value.actor.name,
                ai      = ra.Current.Value.ai
            });
        }
        var fm = new FramesMsg();
        LinkedListNode <ServerFrameMsg> node = serverMessages.First;

        while (node != null)
        {
            fm.allFrameMessages.Add(node.Value);
            node = node.Next;
        }
        BytesStream stream = new BytesStream();

        tsn.marshal(stream);
        fm.marshal(stream);
//         tsn.serialize(stream);
//         fm.serialize(stream);
        ResourceManager.inst.saveToFile(stream, serverMessagesName, ResourceManager.PathType.PT_Resources);
    }
Beispiel #2
0
    void loadServerMessages()
    {
        if (fbGame != null)
        {
            fbGame.destory();
            fbGame = null;
        }

        //byte[] data = ResourcesManager.instance.getFileData(serverMessagesName);
        byte[]      data   = ConfigResourceLoader.inst.getFileData(serverMessagesName);
        BytesStream stream = new BytesStream(data);

        serverMessages.Clear();

        var tsn = new TableStartNotify();

        tsn.unMarshal(stream);
        //tsn.unserialize(stream);

        fbGame = new FBGame();
        LogicEvent.fire("onFBGameNewed", fbGame);
        fbGame.setupFBGame(tsn.tableId, tsn.mapId);

        fbGame.createCoach(string.Format("{0}/Resources/Config/Behaviac", UnityEngine.Application.dataPath));

        //创建玩家
        var playerCount = tsn.allPlayerInfos.Count;

        for (int i = 0; i < playerCount; ++i)
        {
            var player = tsn.allPlayerInfos[i];
            fbGame.createPlayer(0, player.frameId, player.roleId, player.team, "给我来段FreeStyle", false, player.ai);
        }

        //处理输入消息
        var fm = new FramesMsg();

        fm.unMarshal(stream);
        //fm.unserialize(stream);
        for (int i = 0; i < fm.allFrameMessages.Count; ++i)
        {
            var msg = fm.allFrameMessages[i];

            pushServerMessage(msg);
        }

        fbGame.changeState(GameState.Ready);
    }
Beispiel #3
0
    public void onTableStartNotify(TableStartNotify cmd)
    {
        LogicEvent.fire2Lua("onTableStartNotify");

        Game.instance.newFBGame();
        Game.instance.fbGame.setupFBGame(cmd.tableId, cmd.mapId);

        Game.instance.fbGame.createCoach(string.Format("{0}/Resources/Config/Behaviac", UnityEngine.Application.dataPath));

        cmd.allPlayerInfos.ForEach(a =>
        {
            var mainCharacter = a.uid == MainCharacter.instance.uid;
            if (mainCharacter)
            {
                MainCharacter.instance.team = (FBTeam)a.team;
            }
            Game.instance.fbGame.createPlayer(a.uid, a.frameId, a.roleId, a.team, a.name, mainCharacter, a.ai);
        });

        Game.instance.fbGame.fbGameCreateCompleted();
    }