private void UpdateMove(NetIncomingMessage incmsg) { string name = incmsg.ReadString(); World w = serverCore.GetWorld(); for (int i = 0; i < w.ships.Count; i++) { if (w.ships[i].shipName.Equals(name)) { w.ships[i].timeOut = 0; w.ships[i].cursorPosition = new Vector2(incmsg.ReadSingle(), incmsg.ReadSingle()); w.ships[i].isWPress = incmsg.ReadBoolean(); w.ships[i].isSPress = incmsg.ReadBoolean(); w.ships[i].isAPress = incmsg.ReadBoolean(); w.ships[i].isDPress = incmsg.ReadBoolean(); w.ships[i].isXPress = incmsg.ReadBoolean(); w.ships[i].isLeftPress = incmsg.ReadBoolean(); w.ships[i].isRightPress = incmsg.ReadBoolean(); return; } } NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.DestroyShip); outmsg.Write(name); ServerPacketSender.SendMessageTo(outmsg, incmsg.SenderConnection); }
private void Register(NetIncomingMessage incmsg) { string name = incmsg.ReadString(); string pass = incmsg.ReadString(); string s = serverCore.GetDataBase().Register(name, pass); NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.LogRegMsg); outmsg.Write(s); ServerPacketSender.SendMessageTo(outmsg, incmsg.SenderConnection); }
private void Connect(string playerName, NetIncomingMessage incmsg) { World w = serverCore.GetWorld(); DataBase db = serverCore.GetDataBase(); if (!serverCore.isDedicated()) { db.Login(playerName, "test", false); } bool playerRefhresh = true; for (int i = 0; i < w.ships.Count; i++) { if (w.ships[i].shipName.Equals(playerName)) { NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.Deny); ServerPacketSender.SendMessageTo(outmsg, incmsg.SenderConnection); System.Threading.Thread.Sleep(100); incmsg.SenderConnection.Disconnect("bye"); playerRefhresh = false; break; } } if (playerRefhresh == true) { //System.Threading.Thread.Sleep(100); int[] components = db.GetUserComponents(playerName);//{ 1, 1, 1, 1, 1, 1, 1 }; if (components != null && components[0] != 0 && components[1] != 0) { byte[] b = db.GetUserHangar(playerName); ShipType st = (ShipType)b[0]; Faction f = (Faction)b[1]; Vector2 pos = f == Faction.Human ? new Vector2(0, 1500) : f == Faction.Enemy ? new Vector2(-1500, -500) : new Vector2(1500, -500); ShipPlayer s = new ShipPlayer(pos, pos, f, st, components, w, 0, 0); s.shipName = playerName; GunSlot[] gs = db.GetUserGuns(playerName, s); s.AddGuns(gs); ServerPacketSender.SendAllShips(w, incmsg.SenderConnection); //timersToSendNpcs.Add(0); //netConnections.Add(incmsg.SenderConnection); ServerPacketSender.SendAllNpcs(w, incmsg.SenderConnection); w.ships.Add(s); ServerPacketSender.SendNewPlayer(s, false); ServerCore.LogAdd(playerName + " connected."); } else { ServerPacketSender.SendOpenGui(GuiType.SelectFaction, incmsg.SenderConnection); } } }
public void ReadPacket(PacketType pk, NetIncomingMessage incmsg) { switch (pk) { case PacketType.Message: Message(incmsg); break; case PacketType.Respawn: Respawn(incmsg); break; case PacketType.SelectShip: SelectShip(incmsg); break; case PacketType.ConfrimSelect: ConfrimSelect(incmsg); break; case PacketType.Register: Register(incmsg); break; case PacketType.Move: UpdateMove(incmsg); break; case PacketType.Disconnect: DisconnetPlayer(incmsg); break; case PacketType.Login: Login(incmsg); break; case PacketType.Connect: if (!serverCore.isDedicated()) { Connect(incmsg.ReadString(), incmsg); } break; case PacketType.Refresh: NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.Refresh); ServerPacketSender.SendMessageTo(outmsg, incmsg.SenderConnection); break; } }
private void Login(NetIncomingMessage incmsg) { string playerName = incmsg.ReadString(); string password = incmsg.ReadString(); string s = serverCore.GetDataBase().Login(playerName, password, serverCore.isDedicated()); if (s.Equals("Успешно")) { Connect(playerName, incmsg); } else { NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.LogRegMsg); outmsg.Write(s); ServerPacketSender.SendMessageTo(outmsg, incmsg.SenderConnection); } }