コード例 #1
0
ファイル: CreateActorAction.cs プロジェクト: CookiRui/script
        public override void serialize(BytesStream stream)
        {
            base.serialize(stream);
            stream.Write((byte)team);
            stream.write(position);
            stream.Write(height);
            for (int i = 0; i < runAnimiationNormalSpeeds.Length; ++i)
            {
                stream.Write(runAnimiationNormalSpeeds[i]);
            }

            //avatar相关 begin
            stream.WriteStringByte(avatarName);
            int index = 0;

            foreach (var dict in avatarPart)
            {
                stream.WriteStringByte(dict.Key);
                stream.WriteStringByte(dict.Value);
                index++;
            }

            for (int i = index; i < maxAvatarPartNum; i++)
            {
                stream.WriteStringByte("");
                stream.WriteStringByte("");
            }
            //avatar相关 end

            stream.Write(gk);
            stream.WriteStringByte(name);
            stream.Write((byte)element);
            stream.Write(roleId);
        }
コード例 #2
0
ファイル: FrameRecording.cs プロジェクト: CookiRui/script
    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);
    }
コード例 #3
0
ファイル: TurningAction.cs プロジェクト: CookiRui/script
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(startDirection);
     stream.write(endDirection);
     stream.Write(ignoreTimeAction);
 }
コード例 #4
0
ファイル: TurningAction.cs プロジェクト: CookiRui/script
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     startDirection   = stream.readVector2();
     endDirection     = stream.readVector2();
     ignoreTimeAction = stream.ReadBoolean();
 }
コード例 #5
0
ファイル: CreateBallAction.cs プロジェクト: CookiRui/script
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     position = stream.readVector2();
     prefab   = stream.ReadString();
     radius   = stream.ReadSingle();
 }
コード例 #6
0
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     velocity = stream.readVector3();
     angle    = stream.ReadSingle();
     target   = stream.readVector3();
 }
コード例 #7
0
ファイル: CreateBallAction.cs プロジェクト: CookiRui/script
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(position);
     stream.WriteStringByte(prefab);
     stream.Write(radius);
 }
コード例 #8
0
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(velocity);
     stream.Write(angle);
     stream.write(target);
 }
コード例 #9
0
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     point         = stream.readVector3();
     normal        = stream.readVector3();
     velocity      = stream.readVector3();
     kickerElement = (FiveElements)stream.ReadByte();
 }
コード例 #10
0
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(point);
     stream.write(normal);
     stream.write(velocity);
     stream.Write((byte)kickerElement);
 }
コード例 #11
0
ファイル: CreateWorldAction.cs プロジェクト: CookiRui/script
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(mainExtent);
     stream.write(doorExtent);
     stream.Write(doorHeight);
     stream.Write(mapID);
 }
コード例 #12
0
ファイル: CreateWorldAction.cs プロジェクト: CookiRui/script
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     mainExtent = stream.readVector2();
     doorExtent = stream.readVector2();
     doorHeight = stream.ReadSingle();
     mapID      = stream.ReadUInt16();
 }
コード例 #13
0
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     point             = stream.readVector2();
     pass              = stream.ReadBoolean();
     times             = stream.ReadByte();
     velocity          = stream.readVector3();
     preHeightVelocity = stream.ReadSingle();
 }
コード例 #14
0
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.write(point);
     stream.Write(pass);
     stream.Write(times);
     stream.write(velocity);
     stream.Write(preHeightVelocity);
 }
コード例 #15
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
 public override byte[] marshal(BytesStream stream)
 {
     stream.Write(uid);
     stream.Write(frameId);
     stream.Write(roleId);
     stream.Write(team);
     stream.WriteStringByte(name);
     stream.Write(ai);
     return(stream.GetUsedBytes());
 }
コード例 #16
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
 public override bool unMarshal(BytesStream stream)
 {
     uid     = stream.ReadUInt64();
     frameId = stream.ReadByte();
     roleId  = stream.ReadUInt16();
     team    = stream.ReadByte();
     name    = stream.ReadString();
     ai      = stream.ReadBoolean();
     return(true);
 }
コード例 #17
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override byte[] marshal(BytesStream stream)
    {
        stream.Write((ushort)allFrameMessages.Count);

        for (int i = 0; i < allFrameMessages.Count; ++i)
        {
            allFrameMessages[i].marshal(stream);
        }

        return(stream.GetUsedBytes());
    }
コード例 #18
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override bool unMarshal(BytesStream stream)
    {
        frameNum = stream.ReadUInt16();
        uint count = stream.ReadByte();

        for (uint i = 0; i < count; ++i)
        {
            ServerFrameInputEvent evt = new ServerFrameInputEvent();
            evt.unMarshal(stream);
            events.Add(evt);
        }
        return(true);
    }
コード例 #19
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override bool unMarshal(BytesStream stream)
    {
        var frameCount = stream.ReadUInt16();

        while (stream.Pos < stream.Buf.Length - 1 && allFrameMessages.Count < frameCount)
        {
            ServerFrameMsg evt = new ServerFrameMsg();
            evt.unMarshal(stream);
            allFrameMessages.Add(evt);
        }

        return(true);
    }
コード例 #20
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override byte[] marshal(BytesStream stream)
    {
        stream.Write(frameNum);
        byte count = (byte)events.Count;

        stream.Write(count);
        for (int i = 0; i < events.Count; ++i)
        {
            events[i].marshal(stream);
        }

        return(stream.GetUsedBytes());
    }
コード例 #21
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override byte[] marshal(BytesStream stream)
    {
        stream.Write(tableId);
        stream.Write(mapId);
        stream.Write((byte)allPlayerInfos.Count);

        for (int i = 0; i < allPlayerInfos.Count; ++i)
        {
            allPlayerInfos[i].marshal(stream);
        }

        return(stream.GetUsedBytes());
    }
コード例 #22
0
ファイル: MsgStruct.cs プロジェクト: CookiRui/script
    public override bool unMarshal(BytesStream stream)
    {
        tableId = stream.ReadUInt64();
        mapId   = stream.ReadUInt32();
        var playerCount = stream.ReadByte();

        while (stream.Pos < stream.Buf.Length - 1 && allPlayerInfos.Count < playerCount)
        {
            PlayerInfo evt = new PlayerInfo();
            evt.unMarshal(stream);
            allPlayerInfos.Add(evt);
        }

        return(true);
    }
コード例 #23
0
ファイル: FrameRecording.cs プロジェクト: CookiRui/script
    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);
    }
コード例 #24
0
ファイル: GameStateAction.cs プロジェクト: CookiRui/script
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     beginFrame          = stream.ReadUInt32();
     endFrame            = stream.ReadUInt32();
     replayTime          = stream.ReadByte();
     goalDoor            = (Location)stream.ReadByte();
     positionRandomValue = stream.ReadSingle();
     shootRandomValue    = stream.ReadSingle();
     goalRandomValue     = stream.ReadSingle();
     goaler    = stream.ReadUInt64();
     blueScore = stream.ReadUInt16();
     redScore  = stream.ReadUInt16();
     goalTime  = stream.ReadUInt16();
     goalTeam  = (FBTeam)stream.ReadByte();
 }
コード例 #25
0
ファイル: GameStateAction.cs プロジェクト: CookiRui/script
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.Write(beginFrame);
     stream.Write(endFrame);
     stream.Write(replayTime);
     stream.Write((byte)goalDoor);
     stream.Write(positionRandomValue);
     stream.Write(shootRandomValue);
     stream.Write(goalRandomValue);
     stream.Write(goaler);
     stream.Write(blueScore);
     stream.Write(redScore);
     stream.Write(goalTime);
     stream.Write((byte)goalTeam);
 }
コード例 #26
0
    public void saveToFile(BytesStream stream, string filename, PathType pathType = PathType.PT_Writable)
    {
        string tempPath = getPathByType(pathType) + filename;

        if (Directory.Exists(Path.GetDirectoryName(tempPath)))
        {
            if (File.Exists(tempPath))
            {
                File.Delete(tempPath);
            }
        }
        else
        {
            Directory.CreateDirectory(Path.GetDirectoryName(tempPath));
        }

        //临时写文件
        FileStream fs = new FileStream(tempPath, FileMode.CreateNew);

        fs.Write(stream.Buf, 0, stream.Used);
        fs.Close();
    }
コード例 #27
0
ファイル: CreateActorAction.cs プロジェクト: CookiRui/script
        public override void unserialize(BytesStream stream)
        {
            base.unserialize(stream);
            team     = (FBTeam)stream.ReadByte();
            position = stream.readVector2();
            height   = stream.ReadSingle();
            for (int i = 0; i < runAnimiationNormalSpeeds.Length; ++i)
            {
                runAnimiationNormalSpeeds[i] = stream.ReadSingle();
            }

            //avatar相关 begin
            avatarName = stream.ReadString();
            for (int i = 0; i < maxAvatarPartNum; i++)
            {
                avatarPart.Add(stream.ReadString(), stream.ReadString());
            }
            //avatar相关 end

            gk      = stream.ReadBoolean();
            name    = stream.ReadString();
            element = (FiveElements)stream.ReadByte();
            roleId  = stream.ReadUInt32();
        }
コード例 #28
0
ファイル: CreateActorAction.cs プロジェクト: CookiRui/script
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     team = (FBTeam)stream.ReadByte();
 }
コード例 #29
0
ファイル: CreateActorAction.cs プロジェクト: CookiRui/script
 public override void serialize(BytesStream stream)
 {
     base.serialize(stream);
     stream.Write((byte)team);
 }
コード例 #30
0
 public override void unserialize(BytesStream stream)
 {
     base.unserialize(stream);
     passBallType.data = stream.ReadBytes(1);
 }