internal static void PostSentMap(Player p, Level prev, Level lvl, bool announce) { Position pos = lvl.SpawnPos; Orientation rot = p.Rot; byte yaw = lvl.rotx, pitch = lvl.roty; // in case player disconnected mid-way through loading map if (p.Socket.Disconnected) { return; } OnPlayerSpawningEvent.Call(p, ref pos, ref yaw, ref pitch, false); rot.RotY = yaw; rot.HeadX = pitch; p.Pos = pos; p.SetYawPitch(yaw, pitch); if (p.Socket.Disconnected) { return; } Entities.SpawnEntities(p, pos, rot); OnJoinedLevelEvent.Call(p, prev, lvl, ref announce); if (!announce || !Server.Config.ShowWorldChanges) { return; } announce = !p.hidden && Server.Config.IRCShowWorldChanges; string msg = p.level.IsMuseum ? "λNICK %Swent to the " : "λNICK %Swent to "; Chat.MessageFrom(ChatScope.All, p, msg + lvl.ColoredName, null, FilterGoto(p, prev, lvl), announce); }
protected override void UnhookEventHandlers() { OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnJoinedLevelEvent.Unregister(HandleOnJoinedLevel); OnPlayerChatEvent.Unregister(HandlePlayerChat); base.UnhookEventHandlers(); }
// ============================================ PLUGIN ======================================= protected override void HookEventHandlers() { OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnJoinedLevelEvent.Register(HandleOnJoinedLevel, Priority.High); OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High); base.HookEventHandlers(); }
protected override void UnhookEventHandlers() { OnPlayerMoveEvent.Unregister(HandlePlayerMove); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnJoinedLevelEvent.Unregister(HandleOnJoinedLevel); OnGettingMotdEvent.Unregister(HandleGettingMotd); base.UnhookEventHandlers(); }
protected override void HookEventHandlers() { OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnJoinedLevelEvent.Register(HandleOnJoinedLevel, Priority.High); OnGettingMotdEvent.Register(HandleGettingMotd, Priority.High); base.HookEventHandlers(); }
protected override void UnhookEventHandlers() { OnPlayerChatEvent.Unregister(HandlePlayerChat); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnSentMapEvent.Unregister(HandleSentMap); OnJoinedLevelEvent.Unregister(HandleJoinedLevel); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); base.UnhookEventHandlers(); }
protected override void HookEventHandlers() { OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnSentMapEvent.Register(HandleSentMap, Priority.High); OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); base.HookEventHandlers(); }
protected override void UnhookEventHandlers() { OnPlayerDeathEvent.Unregister(HandlePlayerDeath); OnPlayerChatEvent.Unregister(HandlePlayerChat); OnPlayerCommandEvent.Unregister(HandlePlayerCommand); OnBlockChangeEvent.Unregister(HandleBlockChange); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); OnJoinedLevelEvent.Unregister(HandleJoinedLevel); base.UnhookEventHandlers(); }
protected override void HookEventHandlers() { OnPlayerDeathEvent.Register(HandlePlayerDeath, Priority.High); OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High); OnPlayerCommandEvent.Register(HandlePlayerCommand, Priority.High); OnBlockChangeEvent.Register(HandleBlockChange, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High); base.HookEventHandlers(); }
public override void Unload(bool shutdown) { OnEntitySpawnedEvent.Unregister(HandleEntitySpawned); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); OnMoneyChangedEvent.Unregister(HandleMoneyChanged); OnPlayerConnectEvent.Unregister(HandlePlayerConnect); OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect); OnPlayerMoveEvent.Unregister(HandlePlayerMove); OnPlayerActionEvent.Unregister(HandlePlayerAction); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnBlockChangeEvent.Unregister(HandleBlockChange); OnLevelUnloadEvent.Unregister(HandleLevelUnload); }
public override void Load(bool startup) { OnEntitySpawnedEvent.Register(HandleEntitySpawned, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); OnMoneyChangedEvent.Register(HandleMoneyChanged, Priority.High); OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.High); OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.High); OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnBlockChangeEvent.Register(HandleBlockChange, Priority.High); OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High); }
public override void Load(bool startup) { OnPlayerDeathEvent.Register(HandlePlayerDeath, Priority.High); OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High); OnPlayerCommandEvent.Register(HandlePlayerCommand, Priority.High); OnBlockChangeEvent.Register(HandleBlockChange, Priority.High); OnPlayerDisconnectEvent.Register(HandleDisconnect, Priority.High); OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); OnJoinedLevelEvent.Register(HandleOnJoinedLevel, Priority.High); }
public override void Unload(bool shutdown) { OnPlayerDeathEvent.Unregister(HandlePlayerDeath); OnPlayerChatEvent.Unregister(HandlePlayerChat); OnPlayerCommandEvent.Unregister(HandlePlayerCommand); OnBlockChangeEvent.Unregister(HandleBlockChange); OnPlayerDisconnectEvent.Unregister(HandleDisconnect); OnLevelUnloadEvent.Unregister(HandleLevelUnload); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); OnJoinedLevelEvent.Unregister(HandleOnJoinedLevel); }
public static void Respawn(Player p) { bool cpSpawn = p.useCheckpointSpawn; Position pos; pos.X = 16 + (cpSpawn ? p.checkpointX : p.level.spawnx) * 32; pos.Y = 32 + (cpSpawn ? p.checkpointY : p.level.spawny) * 32; pos.Z = 16 + (cpSpawn ? p.checkpointZ : p.level.spawnz) * 32; byte yaw = cpSpawn ? p.checkpointRotX : p.level.rotx; byte pitch = cpSpawn ? p.checkpointRotY : p.level.roty; OnPlayerSpawningEvent.Call(p, ref pos, ref yaw, ref pitch, true); p.SendPos(Entities.SelfID, pos, new Orientation(yaw, pitch)); }
protected override void UnhookEventHandlers() { OnEntitySpawnedEvent.Unregister(HandleEntitySpawned); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); OnMoneyChangedEvent.Unregister(HandleMoneyChanged); OnBlockChangeEvent.Unregister(HandleBlockChange); OnPlayerConnectEvent.Unregister(HandlePlayerConnect); OnPlayerMoveEvent.Unregister(HandlePlayerMove); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnJoinedLevelEvent.Unregister(HandleJoinedLevel); OnPlayerChatEvent.Unregister(HandlePlayerChat); base.UnhookEventHandlers(); }
protected override void HookEventHandlers() { OnEntitySpawnedEvent.Register(HandleEntitySpawned, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); OnMoneyChangedEvent.Register(HandleMoneyChanged, Priority.High); OnBlockChangeEvent.Register(HandleBlockChange, Priority.High); OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.High); OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High); OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High); base.HookEventHandlers(); }
void CompleteLoginProcess() { // Lock to ensure that no two players can end up with the same playerid lock (PlayerInfo.Online.locker) { id = NextFreeId(); PlayerInfo.Online.Add(this); } SendMap(null); if (disconnected) { return; } loggedIn = true; connections.Remove(this); RemoveFromPending(); Server.PlayerListUpdate(); SessionStartTime = DateTime.UtcNow; LastLogin = DateTime.Now; TotalTime = TimeSpan.FromSeconds(1); GetPlayerStats(); ShowWelcome(); Server.Background.QueueOnce(ShowAltsTask, name, TimeSpan.Zero); CheckState(); ZombieStats stats = Server.zombie.LoadZombieStats(name); Game.MaxInfected = stats.MaxInfected; Game.TotalInfected = stats.TotalInfected; Game.MaxRoundsSurvived = stats.MaxRounds; Game.TotalRoundsSurvived = stats.TotalRounds; if (!Directory.Exists("players")) { Directory.CreateDirectory("players"); } PlayerDB.Load(this); Game.Team = Team.TeamIn(this); SetPrefix(); LoadCpeData(); if (ServerConfig.verifyadmins && group.Permission >= ServerConfig.VerifyAdminsRank) { adminpen = true; } if (Server.noEmotes.Contains(name)) { parseEmotes = !ServerConfig.ParseEmotes; } LevelPermission adminChatRank = CommandExtraPerms.MinPerm("adminchat", LevelPermission.Admin); hidden = group.CanExecute("hide") && Server.hidden.Contains(name); if (hidden) { SendMessage("&8Reminder: You are still hidden."); } if (group.Permission >= adminChatRank && ServerConfig.AdminsJoinSilently) { hidden = true; adminchat = true; } OnPlayerConnectEvent.Call(this); if (cancellogin) { cancellogin = false; return; } string joinm = "&a+ " + FullName + " %S" + PlayerDB.GetLoginMessage(this); if (hidden) { joinm = "&8(hidden)" + joinm; } const LevelPermission perm = LevelPermission.Guest; if (group.Permission > perm || (ServerConfig.GuestJoinsNotify && group.Permission <= perm)) { Chat.MessageGlobal(this, joinm, false, true); } if (ServerConfig.AgreeToRulesOnEntry && group.Permission == LevelPermission.Guest && !Server.agreed.Contains(name)) { SendMessage("&9You must read the &c/Rules&9 and &c/Agree&9 to them before you can build and use commands!"); agreed = false; } if (ServerConfig.verifyadmins && group.Permission >= ServerConfig.VerifyAdminsRank) { if (!Directory.Exists("extra/passwords") || !File.Exists("extra/passwords/" + name + ".dat")) { SendMessage("&cPlease set your admin verification password with %T/SetPass [Password]!"); } else { SendMessage("&cPlease complete admin verification with %T/Pass [Password]!"); } } try { if (group.CanExecute("inbox") && Database.TableExists("Inbox" + name)) { using (DataTable table = Database.Backend.GetRows("Inbox" + name, "*")) { if (table.Rows.Count > 0) { SendMessage("You have &a" + table.Rows.Count + " %Smessages in %T/Inbox"); } } } } catch { } if (ServerConfig.PositionUpdateInterval > 1000) { SendMessage("Lowlag mode is currently &aON."); } if (String.IsNullOrEmpty(appName)) { Logger.Log(LogType.UserActivity, "{0} [{1}] connected.", name, ip); } else { Logger.Log(LogType.UserActivity, "{0} [{1}] connected using {2}.", name, ip, appName); } Game.InfectMessages = PlayerDB.GetInfectMessages(this); Server.lava.PlayerJoinedServer(this); Position pos = level.SpawnPos; byte yaw = level.rotx, pitch = level.roty; OnPlayerSpawningEvent.Call(this, ref pos, ref yaw, ref pitch, false); Pos = pos; SetYawPitch(yaw, pitch); Entities.SpawnEntities(this, true); PlayerActions.CheckGamesJoin(this, null); Loading = false; }