You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Refactored client update pipeline to separate time-based eligibility from throughput-based execution
- Introduced bounded worker pool with per-client in-flight gating to prevent overlapping updates
- Removed unnecessary async/await from client update path (synchronous Update() semantics)
- Ensured server tick never blocks on slow or stalled clients
- Range-bounded ground quality pillar updates to nearby items only
Copy file name to clipboardExpand all lines: Zolian.Server.Base/GameScripts/Monsters/AdvancedMonsterAI.cs
+255-1Lines changed: 255 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,7 @@
5
5
usingDarkages.Enums;
6
6
usingDarkages.Network.Client;
7
7
usingDarkages.Network.Server;
8
+
usingDarkages.Object;
8
9
usingDarkages.ScriptingBase;
9
10
usingDarkages.Sprites;
10
11
usingDarkages.Sprites.Entity;
@@ -1619,4 +1620,257 @@ public override void OnApproach(WorldClient client)
1619
1620
AddObject(summoned);
1620
1621
}
1621
1622
}
1622
-
}
1623
+
}
1624
+
1625
+
[Script("ChaosHydraLava")]
1626
+
publicclassChaosHydraLava:MonsterScript
1627
+
{
1628
+
privatereadonlystring_aosdaSayings="Teine remembers all who burn… and all who scream.|You step into my fire. Is mise an tine.|My heads speak with one voice, bás i ngach lasair.|Stone fears me. Water flees me. Flesh feeds me.";
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Shout,$"{monster.Name}: Every age ends in fire. I am merely patient."));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Shout,$"{monster.Name}: The world was forged once. I am what remains."));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Shout,$"{monster.Name}: Fire is not chaos. Fire is memory."));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Normal,$"{monster.Name}: Remember my name when the fire takes you."));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Normal,$"{monster.Name}: Enough. Éiríonn an tine fiáin!"));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Normal,$"{monster.Name}: {GhostChat[RandomNumberGenerator.GetInt32(Count+1)%GhostChat.Length]}"));
monster.SendTargetedClientMethod(PlayerScope.NearbyAislings, c =>c.SendPublicMessage(monster.Serial,PublicMessageType.Normal,$"{monster.Name}: One head watches. One judges. One burns."));
1863
+
1864
+
varscripts=monster.SpellScripts;
1865
+
1866
+
// Training Dummy or other enemies who can't attack
0 commit comments