Skip to content

Commit 8faddea

Browse files
committed
feat: logout common event trigger
1 parent af2d28c commit 8faddea

File tree

4 files changed

+36
-40
lines changed

4 files changed

+36
-40
lines changed

Framework/Intersect.Framework.Core/GameObjects/Events/CommonEventTrigger.cs

+2
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,6 @@ public enum CommonEventTrigger
4141
UserVariableChange,
4242

4343
LevelDown,
44+
45+
Logout,
4446
}

Intersect.Editor/Forms/Editors/Events/frmEvent.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1007,10 +1007,7 @@ public void InitEditor(bool disableNaming, bool disableTriggers, bool questEvent
10071007
{
10081008
grpEntityOptions.Hide();
10091009
cmbTrigger.Items.Clear();
1010-
for (var i = 0; i < Strings.EventEditor.commontriggers.Count; i++)
1011-
{
1012-
cmbTrigger.Items.Add(Strings.EventEditor.commontriggers[i]);
1013-
}
1010+
cmbTrigger.Items.AddRange([.. Strings.EventEditor.CommonTriggers.Values]);
10141011
}
10151012
else
10161013
{

Intersect.Editor/Localization/Strings.cs

+22-21
Original file line numberDiff line numberDiff line change
@@ -2828,28 +2828,29 @@ public partial struct EventEditor
28282828

28292829
public static LocalizedString commandlist = @"Commands:";
28302830

2831-
public static Dictionary<int, LocalizedString> commontriggers = new Dictionary<int, LocalizedString>
2831+
public static Dictionary<CommonEventTrigger, LocalizedString> CommonTriggers = new()
28322832
{
2833-
{0, @"None"},
2834-
{1, @"Login"},
2835-
{2, @"Level Up"},
2836-
{3, @"On Respawn"},
2837-
{4, @"/Command"},
2838-
{5, @"Autorun"},
2839-
{6, @"PVP Kill"},
2840-
{7, @"PVP Death"},
2841-
{8, @"Player Interact"},
2842-
{9, @"Equipment Changed"},
2843-
{10, @"Player Variable Changed"},
2844-
{11, @"Server Variable Changed"},
2845-
{12, @"Guild Member Joined"},
2846-
{13, @"Guild Member Left"},
2847-
{14, @"Guild Member Kicked"},
2848-
{15, @"Guild Variable Changed"},
2849-
{16, @"Inventory Changed"},
2850-
{17, @"Map Changed"},
2851-
{18, @"User Variable Changed"},
2852-
{19, @"Level Down"},
2833+
{CommonEventTrigger.None, @"None"},
2834+
{CommonEventTrigger.Login, @"Login"},
2835+
{CommonEventTrigger.LevelUp, @"Level Up"},
2836+
{CommonEventTrigger.OnRespawn, @"On Respawn"},
2837+
{CommonEventTrigger.SlashCommand, @"/Command"},
2838+
{CommonEventTrigger.Autorun, @"Autorun"},
2839+
{CommonEventTrigger.PVPKill, @"PVP Kill"},
2840+
{CommonEventTrigger.PVPDeath, @"PVP Death"},
2841+
{CommonEventTrigger.PlayerInteract, @"Player Interact"},
2842+
{CommonEventTrigger.EquipChange, @"Equipment Changed"},
2843+
{CommonEventTrigger.PlayerVariableChange, @"Player Variable Changed"},
2844+
{CommonEventTrigger.ServerVariableChange, @"Server Variable Changed"},
2845+
{CommonEventTrigger.GuildMemberJoined, @"Guild Member Joined"},
2846+
{CommonEventTrigger.GuildMemberLeft, @"Guild Member Left"},
2847+
{CommonEventTrigger.GuildMemberKicked, @"Guild Member Kicked"},
2848+
{CommonEventTrigger.GuildVariableChange, @"Guild Variable Changed"},
2849+
{CommonEventTrigger.InventoryChanged, @"Inventory Changed"},
2850+
{CommonEventTrigger.MapChanged, @"Map Changed"},
2851+
{CommonEventTrigger.UserVariableChange, @"User Variable Changed"},
2852+
{CommonEventTrigger.LevelDown, @"Level Down"},
2853+
{CommonEventTrigger.Logout, @"Logout"},
28532854
};
28542855

28552856
public static LocalizedString conditions = @"Conditions";

Intersect.Server.Core/Entities/Player.cs

+11-15
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,11 @@ private void Logout(bool softLogout = false, TaskCompletionSource? logoutComplet
512512
instance.RemoveEntity(this);
513513
}
514514

515+
foreach (var player in OnlinePlayersById.Values)
516+
{
517+
player.StartCommonEventsWithTrigger(CommonEventTrigger.Logout, param: Name);
518+
}
519+
515520
RemoveFromInstanceController(MapInstanceId);
516521

517522
//Update parties
@@ -7202,39 +7207,30 @@ public bool UnsafeStartCommonEvent(
72027207

72037208
switch (trigger)
72047209
{
7205-
case CommonEventTrigger.None:
7206-
break;
7207-
case CommonEventTrigger.Login:
7208-
break;
7209-
case CommonEventTrigger.LevelUp:
7210-
break;
7211-
case CommonEventTrigger.OnRespawn:
7212-
break;
7213-
case CommonEventTrigger.SlashCommand:
7214-
break;
7215-
case CommonEventTrigger.Autorun:
7216-
break;
72177210
case CommonEventTrigger.PVPKill:
72187211
//Add victim as a parameter
72197212
newEvent.SetParam("victim", param);
7220-
72217213
break;
7214+
72227215
case CommonEventTrigger.PVPDeath:
72237216
//Add killer as a parameter
72247217
newEvent.SetParam("killer", param);
7225-
72267218
break;
7219+
72277220
case CommonEventTrigger.PlayerInteract:
72287221
//Interactee as a parameter
72297222
newEvent.SetParam("triggered", param);
7230-
72317223
break;
7224+
72327225
case CommonEventTrigger.GuildMemberJoined:
72337226
case CommonEventTrigger.GuildMemberKicked:
72347227
case CommonEventTrigger.GuildMemberLeft:
72357228
newEvent.SetParam("member", param);
72367229
newEvent.SetParam("guild", command);
7230+
break;
72377231

7232+
case CommonEventTrigger.Logout:
7233+
newEvent.SetParam("player", param);
72387234
break;
72397235
}
72407236

0 commit comments

Comments
 (0)