コード例 #1
0
ファイル: MapService.cs プロジェクト: guipaz/stryfe-rpg
        void SendMapData(int playerId, NetConnection conn)
        {
            List<PlayerInfo> players = DataManager.Instance.Players.Values.ToList();
            //TODO: check surroundings

            SROrderMessage msg = new SROrderMessage(OrderType.UpdateMapInfo, new Dictionary<ArgumentName, object>()
            {
                { ArgumentName.VisiblePlayers, players }
            });
            ServerHandler.Instance.SendMessageToPlayer(msg, conn);
        }
コード例 #2
0
 public void Handle(SROrderMessage msg)
 {
     switch (msg.type)
     {
         case OrderType.UpdateMapInfo:
             UpdateMapInfo(msg.args);
             break;
         case OrderType.UpdateNPlayerInfo:
             UpdateNPlayerInfo(msg.args[ArgumentName.PlayerInfo] as PlayerInfo);
             break;
     }
 }
コード例 #3
0
ファイル: LoginService.cs プロジェクト: guipaz/stryfe-rpg
        public void SendServerList(NetConnection conn)
        {
            SROrderMessage msg = new SROrderMessage(OrderType.UpdateServerList);
            msg.args = new Dictionary<ArgumentName, object>()
                        {
                            {
                                ArgumentName.ServerList, new List<ServerInfo>() {
                                                         new ServerInfo("Normal", "localhost", 1234) }
                            }
                        };

            ServerHandler.Instance.SendMessageToPlayer(msg, conn);
        }
コード例 #4
0
ファイル: MapService.cs プロジェクト: guipaz/stryfe-rpg
        void UpdatePlayerPosition(Dictionary<ArgumentName, object> args, NetConnection conn)
        {
            PlayerInfo info = args[ArgumentName.PlayerInfo] as PlayerInfo;

            SROrderMessage msg = new SROrderMessage(OrderType.UpdateNPlayerInfo);
            msg.args[ArgumentName.PlayerInfo] = info;

            //TODO: check surroundings
            List<NetConnection> conns = DataManager.Instance.Connections.Values.ToList();
            conns.Remove(conn);

            if (conns.Count > 0)
                ServerHandler.Instance.SendMessageToMany(msg, conns);
        }
コード例 #5
0
 public void Handle(SROrderMessage msg)
 {
     switch (msg.type)
     {
         case OrderType.UpdateServerList:
             if (msg.args.ContainsKey(ArgumentName.ServerList))
                 UpdateServerList(msg.args[ArgumentName.ServerList] as List<ServerInfo>);
             break;
         case OrderType.SetPlayerInfo:
             if (msg.args.ContainsKey(ArgumentName.PlayerInfo))
                 SetPlayerInfo(msg.args[ArgumentName.PlayerInfo] as PlayerInfo);
             break;
     }
 }
コード例 #6
0
ファイル: LoginService.cs プロジェクト: guipaz/stryfe-rpg
        public void DoLogin(string username, string password, NetConnection conn)
        {
            //TODO: validate login
            Console.WriteLine("{0} - {1}", username, password);

            //TODO: get player information
            PlayerInfo info = new PlayerInfo();
            info.name = "Stryfe";
            info.x = 20;
            info.y = 15;
            info.id = debugId;

            debugId++;

            DataManager.Instance.UpdateConnection(info.id, conn);
            DataManager.Instance.UpdatePlayer(info.id, info);

            SROrderMessage msg = new SROrderMessage(OrderType.SetPlayerInfo, new Dictionary<ArgumentName, object>() { { ArgumentName.PlayerInfo, info } });
            ServerHandler.Instance.SendMessageToPlayer(msg, conn);
        }
コード例 #7
0
ファイル: ServerHandler.cs プロジェクト: guipaz/stryfe-rpg
 public void SendMessageToMany(SROrderMessage msg, List<NetConnection> conns)
 {
     server.SendMessage(CreateMessage(msg), conns, NetDeliveryMethod.ReliableOrdered, 0);
 }
コード例 #8
0
ファイル: ServerHandler.cs プロジェクト: guipaz/stryfe-rpg
 public void SendMessageToPlayer(SROrderMessage msg, NetConnection conn)
 {
     server.SendMessage(CreateMessage(msg), conn, NetDeliveryMethod.ReliableOrdered);
 }