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()); } }
/// 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; } }
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); } }
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(); } }