mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-10-02 10:01:34 -04:00
And also fix CTF to send you to spawn too
This commit is contained in:
parent
8ce87ed122
commit
2f4c18c83b
@ -35,6 +35,7 @@ namespace MCGalaxy.Games {
|
|||||||
|
|
||||||
OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
|
OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
|
||||||
OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High);
|
OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High);
|
||||||
|
OnSentMapEvent.Register(HandleSentMap, Priority.High);
|
||||||
OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High);
|
OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High);
|
||||||
|
|
||||||
base.HookEventHandlers();
|
base.HookEventHandlers();
|
||||||
@ -48,6 +49,7 @@ namespace MCGalaxy.Games {
|
|||||||
|
|
||||||
OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
|
OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
|
||||||
OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded);
|
OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded);
|
||||||
|
OnSentMapEvent.Unregister(HandleSentMap);
|
||||||
OnJoinedLevelEvent.Unregister(HandleJoinedLevel);
|
OnJoinedLevelEvent.Unregister(HandleJoinedLevel);
|
||||||
|
|
||||||
base.UnhookEventHandlers();
|
base.UnhookEventHandlers();
|
||||||
@ -131,21 +133,14 @@ namespace MCGalaxy.Games {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) {
|
void HandleSentMap(Player p, Level prevLevel, Level level) {
|
||||||
HandleJoinedCommon(p, prevLevel, level, ref announce);
|
|
||||||
|
|
||||||
if (level != Map) return;
|
if (level != Map) return;
|
||||||
MessageMapInfo(p);
|
MessageMapInfo(p);
|
||||||
if (TeamOf(p) != null) return;
|
if (TeamOf(p) == null) AutoAssignTeam(p);
|
||||||
|
}
|
||||||
if (Blue.Members.Count > Red.Members.Count) {
|
|
||||||
JoinTeam(p, Red);
|
void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) {
|
||||||
} else if (Red.Members.Count > Blue.Members.Count) {
|
HandleJoinedCommon(p, prevLevel, level, ref announce);
|
||||||
JoinTeam(p, Blue);
|
|
||||||
} else {
|
|
||||||
bool red = new Random().Next(2) == 0;
|
|
||||||
JoinTeam(p, red ? Red : Blue);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,7 @@ namespace MCGalaxy.Games {
|
|||||||
|
|
||||||
public override void PlayerJoinedGame(Player p) {
|
public override void PlayerJoinedGame(Player p) {
|
||||||
bool announce = false;
|
bool announce = false;
|
||||||
|
HandleSentMap(p, Map, Map);
|
||||||
HandleJoinedLevel(p, Map, Map, ref announce);
|
HandleJoinedLevel(p, Map, Map, ref announce);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,6 +157,17 @@ namespace MCGalaxy.Games {
|
|||||||
DropFlag(p, team);
|
DropFlag(p, team);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AutoAssignTeam(Player p) {
|
||||||
|
if (Blue.Members.Count > Red.Members.Count) {
|
||||||
|
JoinTeam(p, Red);
|
||||||
|
} else if (Red.Members.Count > Blue.Members.Count) {
|
||||||
|
JoinTeam(p, Blue);
|
||||||
|
} else {
|
||||||
|
bool red = new Random().Next(2) == 0;
|
||||||
|
JoinTeam(p, red ? Red : Blue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void JoinTeam(Player p, CtfTeam team) {
|
void JoinTeam(Player p, CtfTeam team) {
|
||||||
Get(p).HasFlag = false;
|
Get(p).HasFlag = false;
|
||||||
team.Members.Add(p);
|
team.Members.Add(p);
|
||||||
|
@ -104,7 +104,6 @@ namespace MCGalaxy.Games {
|
|||||||
|
|
||||||
void HandleSentMap(Player p, Level prevLevel, Level level) {
|
void HandleSentMap(Player p, Level prevLevel, Level level) {
|
||||||
if (level != Map) return;
|
if (level != Map) return;
|
||||||
|
|
||||||
MessageMapInfo(p);
|
MessageMapInfo(p);
|
||||||
if (TeamOf(p) == null) AutoAssignTeam(p);
|
if (TeamOf(p) == null) AutoAssignTeam(p);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user