public void Process(int start, int length, int num, int whoAmI, byte[] readBuffer, byte bufferData) { int playerIndex = readBuffer[num++]; if (playerIndex == Main.myPlayer) { return; } playerIndex = whoAmI; int direction = (int)(readBuffer[num++] - 1); short damage = BitConverter.ToInt16(readBuffer, num); num += 2; byte pvpFlag = readBuffer[num++]; String deathText = Encoding.ASCII.GetString(readBuffer, num, length - num + start); bool pvp = (pvpFlag != 0); PlayerDeathEvent pDeath = new PlayerDeathEvent(); pDeath.DeathMessage = deathText; pDeath.Sender = Main.players[playerIndex]; Program.server.PluginManager.processHook(Hooks.PLAYER_DEATH, pDeath); if (pDeath.Cancelled) { return; } Main.players[playerIndex].KillMe((double)damage, direction, pvp, deathText); NetMessage.SendData(44, -1, whoAmI, deathText, playerIndex, (float)direction, (float)damage, (float)pvpFlag); }
public void Process(int start, int length, int num, int whoAmI, byte[] readBuffer, byte bufferData) { int playerIndex = readBuffer[num++]; if (playerIndex != whoAmI) { Netplay.slots[whoAmI].Kick ("Cheating detected (KILL_PLAYER forgery)."); return; } playerIndex = whoAmI; int direction = (int)(readBuffer[num++] - 1); short damage = BitConverter.ToInt16(readBuffer, num); num += 2; byte pvpFlag = readBuffer[num++]; String deathText = Encoding.ASCII.GetString(readBuffer, num, length - num + start); bool pvp = (pvpFlag != 0); var player = Main.players[playerIndex]; PlayerDeathEvent pDeath = new PlayerDeathEvent(); pDeath.DeathMessage = deathText; pDeath.Sender = player; Program.server.PluginManager.processHook(Hooks.PLAYER_DEATH, pDeath); if (pDeath.Cancelled) { return; } ProgramLog.Death.Log ("{0} @ {1}: [Death] {2}{3}", player.IPAddress, whoAmI, player.Name ?? "<null>", deathText); Main.players[playerIndex].KillMe((double)damage, direction, pvp, deathText); NetMessage.SendData(44, -1, whoAmI, deathText, playerIndex, (float)direction, (float)damage, (float)pvpFlag); }
/// <summary> /// Hook method for a player death /// </summary> /// <param name="Event">PlayerDeathEvent info</param> public virtual void onPlayerDeath(PlayerDeathEvent Event) { }
public override void onPlayerDeath(PlayerDeathEvent Event) { String msg = Event.Sender.Name + Event.DeathMessage; if (mircc.getIrcColors()) { msg = AIRCH.CODE_COLOR + "4" + msg; } mircc.sendToChan(msg); base.onPlayerDeath(Event); }
public override void onPlayerDeath(PlayerDeathEvent Event) { }
public override void onPlayerDeath(PlayerDeathEvent Event) { if (warpHomeOnDeath) { warpDriveEngine.warp(Event.Player, "home"); } }