public void StartGame() //основа { if (!model.workingGame && model.workingServer) { model.workingGame = true; ControllersS.cMap.createdZone(); for (int i = 0; i < model.ListUsers.Count; i++) { if (model.ListUsers[i] != null) { GetZoneStartInfo nextZoneInfo = new GetZoneStartInfo(); nextZoneInfo.nextZone = model.Map.NextZone; GetPrevZoneInfo prevZoneInfo = new GetPrevZoneInfo(); prevZoneInfo.prevZone = model.Map.PrevZone; CTransfers.Writing(nextZoneInfo, model.ListNs[i]); // Инфа о стартовой зоне CTransfers.Writing(prevZoneInfo, model.ListNs[i]); } } ControllersS.cPlay.timerZone = new System.Timers.Timer(); ControllersS.cPlay.timerZone.Interval = 1000; ControllersS.cPlay.timerZone.Elapsed += (x, y) => { ControllersS.cPlay.timerZone_Tick(); }; ControllersS.cPlay.timerZone.Start(); ControllersS.cPlay.timerUsersInZone = new System.Timers.Timer(); ControllersS.cPlay.timerUsersInZone.Interval = 1000; ControllersS.cPlay.timerUsersInZone.Elapsed += (x, y) => { ControllersS.cPlay.timerUsersInZone_Tick(); }; ControllersS.cPlay.timerUsersInZone.Start(); StartGameEvent("Игра идёт"); } }
public void Producer() { while (model.serverStart) { try { string tmpString = CTransfers.Reading(model.NStream); SecureQueue.Enqueue(JsonConvert.DeserializeObject <ProcessingClient>(tmpString, CTransfers.jss)); manualResetEvent.Set(); } catch { Disconnect(); } } }
public void ItemDroping() { Point mousLoc = new Point(model.MouseCoord.X - 300 + model.ThisUser.userLocation.X, model.MouseCoord.Y - 300 + model.ThisUser.userLocation.Y); for (int i = 1; i < model.ThisUser.Items.Length; i++) { if (i == model.ThisUser.thisItem && model.ThisUser.Items[model.ThisUser.thisItem].Name != null) { ItemDroping itemDrop = new ItemDroping(); List <Item> listItems = new List <Item>(); listItems.Add(model.ThisUser.Items[i]); itemDrop.items = listItems; itemDrop.num = model.number; itemDrop.itemLocation = model.ThisUser.userLocation; CTransfers.Writing(itemDrop, model.NStream); } } }
public void StopServer() //основа { if (model.workingServer) { ControllersS.cInfoUsers.PlayerSave(model.ListGInfo); model.number = -1; PublicHost.Stop(); PublicHost2.Stop(); PublicHost3.Stop(); if (model.workingGame) { ControllersS.cPlay.timerZone.Stop(); ControllersS.cPlay.timerUsersInZone.Stop(); } foreach (NetworkStream ns in model.ListNs) { if (ns != null) { Disconnect d = new Disconnect(); try { CTransfers.Writing(d, ns); } catch (Exception err) { ErrorEvent(err.Message + " |Ошибка в ControllerServer, методе StopServer"); } } } foreach (System.Timers.Timer t in model.ListTimers) { t.Stop(); } model.workingServer = false; model.workingThread = false; model.Remove(); model.workingGame = false; ControllersS.cPlay.manualResetEvent.Set(); Thread.Sleep(100); StopServerEvent("Сервер отключен"); } }
public void Mouse_Click() { Point mousLoc = new Point(model.MouseCoord.X - 300 + model.ThisUser.userLocation.X, model.MouseCoord.Y - 300 + model.ThisUser.userLocation.Y); foreach (Item item in model.Map.ListItems) { if ((mousLoc.X >= item.Location.X - 15 && mousLoc.X <= item.Location.X + 15) && (mousLoc.Y >= item.Location.Y - 15 && mousLoc.Y <= item.Location.Y + 15)) { if (Math.Abs(model.ThisUser.userLocation.X - item.Location.X) < 50 && Math.Abs(model.ThisUser.userLocation.Y - item.Location.Y) < 50) { ItemTaken itemTaken = new ItemTaken(); itemTaken.item = item; itemTaken.num = model.number; CTransfers.Writing(itemTaken, model.NStream); break; } else { // Сообщение о том, что игрок слишком далеко от желаемого предмета } } } }