示例#1
0
    public void RecievePlaceHero(NetworkMessage netMsg)
    {
        PlaceHeroMessage msg = netMsg.ReadMessage <PlaceHeroMessage>();
        LogicArg         arg = new LogicArg(this);

        arg.AddMessage("msg", msg);
        M_Event.FireLogicEvent(LogicEvents.NetPlaceHero, arg);

        for (int i = 0; i < msg.heroInfo.Length; ++i)
        {
            Debug.Log("Recieve " + msg.heroInfo[i].ToString());
        }
    }
示例#2
0
 /// Network
 void OnPlaceHeroNetwork(LogicArg arg)
 {
     if (MState == State.WaitPlaceHero)
     {
         PlaceHeroMessage msg = (PlaceHeroMessage)arg.GetMessage("msg");
         foreach (RawHeroInfo hInfo in msg.heroInfo)
         {
             hInfo.block     = BattleField.GetReflectBlock(hInfo.block);
             hInfo.direction = BattleField.GetReflectDirection(hInfo.direction);
             HeroFactory.SetUpEnemyHero(hInfo);
         }
         m_stateMachine.State = State.Strategy;
     }
 }
示例#3
0
    public void SendPlaceHero(RawHeroInfo[] heros)
    {
        PlaceHeroMessage msg = new PlaceHeroMessage();

        msg.senderID = clientID;
        msg.heroInfo = new RawHeroInfo[heros.Length];
        for (int i = 0; i < msg.heroInfo.Length; ++i)
        {
            msg.heroInfo[i] = heros[i].Copy();
            Debug.Log("Send " + msg.heroInfo[i].ToString());
        }
        if (client != null)
        {
            client.Send((short)MyMsgType.PlaceHeroSend, msg);
        }
    }
示例#4
0
    void ServerPlaceHero(NetworkMessage netMsg)
    {
        PlaceHeroMessage msg = netMsg.ReadMessage <PlaceHeroMessage>();

        placeHeroMsgList.Add(msg);

        if (placeHeroMsgList.Count >= clients.Count)
        {
            foreach (PlaceHeroMessage phMsg in placeHeroMsgList)
            {
                foreach (int clientID in clients)
                {
                    // TODO : CHANGE TO !=
                    if (mirror)
                    {
                        if (clientID == phMsg.senderID)
                        {
                            msg.senderID = 2;
                            foreach (RawHeroInfo h in phMsg.heroInfo)
                            {
                                h.ID += 1000;
                            }

                            NetworkServer.SendToClient(clientID, (short)MyMsgType.PlaceHeroRecieve, phMsg);
                        }
                    }
                    else
                    {
                    }
                    if (clientID != phMsg.senderID)
                    {
                        Debug.Log("Send " + phMsg.senderID + " to " + clientID);
                        NetworkServer.SendToClient(clientID, (short)MyMsgType.PlaceHeroRecieve, phMsg);
                    }
                }
            }

            placeHeroMsgList.Clear();
        }
    }