public void Event_PlayerTurretAttach(SSPlayer attacher, SSPlayer host) { if (game_status == true) { RaceData.Race racer = m_RaceData.getRacer(attacher.PlayerName); if (!racer.Equals(".null")) { if (racer.reason == "" && racer.reach == false) { racer.reason = "Attaching to another player"; psyGame.Send(msg.pm(racer.name, "*specall")); psyGame.Send(msg.pm(racer.name, "Removed you from race! Reason: " + racer.reason)); } } } else { if (second >= 0 && second <= 20) { RaceData.Race racer = m_RaceData.getRacer(attacher.PlayerName); if (!racer.Equals(".null")) { psyGame.Send(msg.pm(racer.name, "*setship 8")); psyGame.Send(msg.pm(racer.name, "please don't attach to another player!")); } } } }
public void Event_PlayerLeft(SSPlayer ssp) { RaceData.Race racer = m_RaceData.getRacer(ssp.PlayerName); if (!racer.name.Equals(".null")) { racer.reason = "left arena"; } }
private void SavePlayerScore(RaceData.Race rp, SSPlayer ssp, TimeSpan time) { // user id never recorded, cant saveto file if (ssp.PlayerId <= 0) { return; } string sourceDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "/BaseRace/"; string pFolder = sourceDirectory + "Racers/" + ssp.SubspaceId.ToString(); System.IO.Directory.CreateDirectory(pFolder); if (!File.Exists(pFolder + "/profile.info")) { using (StreamWriter writer = new StreamWriter(pFolder + "/profile.info")) { writer.WriteLine("[Racer Information]"); writer.WriteLine("PlayerName:" + ssp.PlayerName); writer.WriteLine("FirstPlayed:" + DateTime.Now.ToShortDateString()); } } // Update BaseTime for player - adds a new line with time only - (dir) Racers/PlayerID/BaseID.times string pBaseFile = pFolder + "/" + this.m_Base.BaseID + ".times"; if (!File.Exists(pBaseFile)) { File.Create(pBaseFile).Close(); } using (StreamWriter w = File.AppendText(pBaseFile)) { w.WriteLine(time); } string bBaseFile = sourceDirectory + "Bases/" + this.m_Base.BaseID + ".times"; if (!File.Exists(bBaseFile)) { File.Create(bBaseFile).Close(); } using (StreamWriter w = File.AppendText(bBaseFile)) { w.WriteLine("Player:" + ssp.PlayerName); w.WriteLine("Time:" + time); } }
public void Event_ShipChange(SSPlayer ssp) { //SSPlayer myPlayer = this.m_Players.PlayerList.Find(item => item.PlayerName == "PsyOps"); //SSPlayer myPlayer2 = this.m_Players.PlayerList.Find(item => item.Frequency == 1234); //int freq0count = this.m_Players.PlayerList.FindAll(item => item.Frequency == 0 && item.Ship != ShipTypes.Spectator).Count; //foreach (SSPlayer player in this.m_Players.PlayerList){ } if (game_status == false) { if (second <= 20 && second >= 0) { RaceData.Race racer = m_RaceData.getRacer(ssp.PlayerName);// AhmadClass.RaceData.Race racer = m_RaceData.getRacer(e.PlayerName); if (!racer.name.Equals(".null")) { if (ssp.Ship != ShipTypes.Warbird) { if (ssp.Ship != ShipTypes.Spectator) { psyGame.Send(msg.warp(ssp.PlayerName, m_RaceData.Start_x, m_RaceData.Start_y)); psyGame.Send(msg.pm(ssp.PlayerName, "*setship " + ship)); psyGame.Send(msg.pm(ssp.PlayerName, "*prize -engineshutdown")); } else if (ssp.Ship == ShipTypes.Spectator) { m_RaceData.RemoveRacer(racer); } } } } } else { if (ssp.Ship != ShipTypes.Warbird) { RaceData.Race v = m_RaceData.getRacer(ssp.PlayerName); if (!v.name.Equals(".null")) { if (v.reason == "" && v.reach == false) { v.reason = "ShipChange"; } } } } }
//----------------------------------------------------------------------// // Game Functions // //----------------------------------------------------------------------// public void GameOver(Boolean msgz) { if (msgz == true) { psyGame.Send(msg.arena("Game Over", SoundCodes.Hallellula)); psyGame.Send(msg.arena("Type [ !br start ] to join again!")); // } } if (m_RaceData.isThereReach() == true) { psyGame.Send(msg.arena("+------+--------------+-----------------+")); psyGame.Send(msg.arena("| Rank | Player | Time |")); psyGame.Send(msg.arena("+------+--------------+-----------------+")); // getTopPlayers(); for (int i = 0; i < 11; ++i) { if (i >= 1 && i <= 10) { if (m_RaceData.top10[i] != "") { RaceData.Race racer = m_RaceData.getRacer(m_RaceData.top10[i]); string rankz = "" + racer.rank; string name = racer.name; string time = racer.ctime; psyGame.Send(msg.arena(String.Format("| {0,-4} | {1,-12} | {2,15} |", rankz, name, time))); //Game(msg.arena("| " + rankz.PadRight(4) + " | " + name.PadRight((getStringLen("+--------------+")-(name.Length+1))) + "|" + time.PadRight(getStringLen("+------+--------------+-----------------")) + "|")); } } } psyGame.Send(msg.arena("+------+--------------+-----------------+")); } this.loadNextBase(); game_status = false; if (m_Timer.Enabled) { m_Timer.Stop(); } second = -1; m_RaceData.top10 = new string[11] { "", "", "", "", "", "", "", "", "", "", "" }; rank = 0; m_RaceData.RaceItems.Clear(); }
//----------------------------------------------------------------------// // Events // //----------------------------------------------------------------------// public void Event_PlayerPosition(SSPlayer ssp) { int tilex = ssp.Position.MapPositionX / 16; int tiley = ssp.Position.MapPositionY / 16; int pixelx = ssp.Position.MapPositionX; int pixely = ssp.Position.MapPositionY;/// 16; //Game(msg.macro("X: " + tilex + " Y:" + tiley)); if (game_status == false) { if (second <= 20 && second >= 0) { if (!m_RaceData.getRacer(ssp.PlayerName).name.Equals(".null")) { if (InRegion(ssp.Position, m_BaseManager.Lobby.BaseDimension)) { psyGame.Send(msg.warp(ssp.PlayerName, m_RaceData.Start_x, m_RaceData.Start_y)); psyGame.Send(msg.pm(ssp.PlayerName, "*prize -engineshutdown")); // Game(msg.pm(e.PlayerName, "*setship " + ship)); } if (!InRegion(ssp.Position, m_Base.AlphaSafe)) { psyGame.Send(msg.warp(ssp.PlayerName, m_RaceData.Start_x, m_RaceData.Start_y)); psyGame.Send(msg.pm(ssp.PlayerName, "*prize -engineshutdown")); // Game(msg.pm(e.PlayerName, "*setship " + ship)); } if (!ssp.Position.ShipState.IsSafe) { psyGame.Send(msg.warp(ssp.PlayerName, m_RaceData.Start_x, m_RaceData.Start_y)); psyGame.Send(msg.pm(ssp.PlayerName, "*prize -engineshutdown")); } } } } else { RaceData.Race v = m_RaceData.getRacer(ssp.PlayerName); if (!v.name.Equals(".null")) { if (InRegion(ssp.Position, m_BaseManager.Lobby.BaseDimension)) { if (v.reason == "" && v.reach == false) { v.reason = "BackToCenter"; } //Game(msg.warp(e.PlayerName, m_RaceData.Start_x, m_RaceData.Start_y)); // Game(msg.pm(e.PlayerName, "*setship " + ship)); } // AhmadClass.RaceData.Race e = v;//foreach list only readable cann't write i create this line to set value for ctime m_RaceData.finish_x[0] = m_Base.BravoSafe[0]; m_RaceData.finish_y[0] = m_Base.BravoSafe[1]; m_RaceData.finish_x[1] = m_Base.BravoSafe[2]; m_RaceData.finish_y[1] = m_Base.BravoSafe[3]; if (m_RaceData.isInEnd(pixelx, pixely)) { if (v.reason == "" && v.reach == false) { TimeSpan m_MatchTotalTime = DateTime.Now - m_TimeStart; //m_TimeStart v.ctime = m_MatchTotalTime.Minutes.ToString().PadLeft(2, '0') + ":" + m_MatchTotalTime.Seconds.ToString().PadLeft(2, '0') + "." + m_MatchTotalTime.Milliseconds; v.reach = true; string mm_rank = ""; ++rank; RaceData.Race rp = m_RaceData.getRacer(ssp.PlayerName); rp.rank = rank; this.SavePlayerScore(rp, ssp, m_MatchTotalTime); if (rank == 1) { mm_rank = "1st"; } else if (rank == 2) { mm_rank = "2nd"; } else if (rank == 3) { mm_rank = "3rd"; } else if (rank >= 4) { mm_rank = rank + "th"; } if (rank >= 1 && rank <= 10) { m_RaceData.top10[rank] = ssp.PlayerName; } psyGame.Send(msg.arena(mm_rank + "- " + ssp.PlayerName + " Time:" + v.ctime, SoundCodes.VictoryBell)); } } } if (getTotalRacers() == 0) { GameOver(true); } TimeSpan m_TimeGameTimeSpan = DateTime.Now - m_TimeGame; if (m_TimeGameTimeSpan.Minutes >= 5) { foreach (RaceData.Race racer in m_RaceData.RaceItems) { psyGame.Send(msg.pm(racer.name, "*specall")); } GameOver(true); psyGame.Send(msg.arena("Game has been timed out. Baserace Reset")); } } // Game(msg.pub("tick")); }