1
0

31 Commits

Author SHA1 Message Date
Emagi
9250118b05 More work for /reload spells when multiple zones / players are on 2025-02-09 15:25:16 -05:00
Emagi
5d191927cf Fix spells to properly cleanup in function SpellProcess::CheckRemoveTargetFromSpell -- RemoveEffectsFromLuaSpell was not properly cleaning up special effects like sneak/snare/root/so on lingered on to cause a crash with dead spells with /reload spells or other activity 2025-02-04 18:45:48 -05:00
Emagi
41cc36de83 if no targets left in the spell its ok to remove, flip the flag to just remove the maintained part of the spell 2025-01-31 20:06:45 -05:00
Emagi
d463ed3dc5 avoid crash for disabled spell/no spell ptr 2025-01-29 22:01:51 -05:00
Emagi
e9936f1c80 script protection on spells against reuse of the lua state between proc / other spell processes 2025-01-18 18:54:10 -05:00
Emagi
dad7873dc5 LUA functions added: GetSpellCaster(Spell) and GetCasterSpellLevel(Spell) the Spell field is optional if in a spell script
db additionally had field added:

alter table character_spell_effects add column caster_level smallint(5) unsigned not null default 0;
2025-01-18 09:16:35 -05:00
Emagi
c300a5b066 Fixed hangup with remove spell due to remove target list lock 2025-01-16 12:51:09 -05:00
Emagi
3efce0abd6 call spell remove function for reason "target_dead" and "target_removed" also address the long delay between calling the remove function and the death of a spawn. Lastly made it so we can reference the spawn group id after death for a spawn since we remove it from a spawn group. 2025-01-16 12:29:24 -05:00
Emagi
c029874469 assure the spell is friendly when applying only to group members 2025-01-10 19:13:03 -05:00
Emagi
3162106580 Added Lua Functions PlayAnimationString(Spawn: Spawn, String: EmoteStringCommand, Spawn: OptTarget, Boolean: SetNoTarget, Boolean: UseAllSpellTargets, Boolean: IgnoreSelf) and GetSpellTargets(Optional_Spell) if no argument must be in spell script. Fixed spells with no range that are group based to apply to all in group. 2025-01-10 19:08:47 -05:00
Emagi
0a52ab2933 Update SpellProcess.cpp 2024-12-13 18:21:34 -05:00
Emagi
a736e1865f DoT/DD stacking with timers were causing lua state overruns, lua state was being removed from spell too early" 2024-12-02 09:19:28 -05:00
Emagi
716caffb14 Have zone pointer tracked in the luaspell so we can assure we delete the spell properly when zone shuts down or spawn is gone 2024-12-01 18:24:56 -05:00
Emagi
14bb60caf8 avoid crash on remove caster when in a spell attack 2024-12-01 06:29:13 -05:00
Emagi
52ed0cf1d3 make sure spell caster does not persist if they are removed from the spawn list 2024-11-29 09:49:57 -05:00
Emagi
d03c86efef CheckEncounterState behavior added 2024-11-27 17:17:26 -05:00
Emagi
68d1777cf4 avoid stacking spells when you have a conflicted spell removed, should address multiple tick/control effects stacking 2024-11-24 07:46:09 -05:00
Emagi
6b73d3617a avoid a lockup condition due to already locked mutexes 2024-11-22 17:35:53 -05:00
Emagi
315ab1d0e7 Project Nebulark Part 1, So much to list, this is a rough summary
- Raid support and cross peer support for Isle of Refuge, DoF, KoS and AoM clients.
- Zone Persistence added to non-instanced zones.
- Commands: /whogroup, /whoraid, /raidinvite, /raid_looter, /kickfromgroup, /kickfromraid, /leaveraid, /split, /raidsay (rsay) added.
- Cross peer zone and instance support
- Cross tell support (along with ignore)
- Cross ooc support
- Cross group support (can chat, leave group, disband cross peers, update group options)
- Cross who all support
- houses/instances fixed no more cross objects/spawns/etc from other houses
- houses now display characters name with the house zone description
- 1000's of house items now properly work with wall/ceiling
- debug messages removed from housing placement
- Encounters locked to raid instead of group
- group options restricted to raid leader
- reload rules for following are peer wide:
COMMAND_RELOADSTRUCTS
COMMAND_RELOAD_QUESTS
COMMAND_RELOAD_SPELLS
COMMAND_RELOAD_ZONESCRIPTS
COMMAND_RELOAD_FACTIONS
COMMAND_RELOAD_MAIL
COMMAND_RELOAD_GUILDS
COMMAND_RELOAD_RULES
COMMAND_RELOAD_STARTABILITIES
COMMAND_RELOAD_VOICEOVERS
COMMAND_RELOADSPAWNSCRIPTS
COMMAND_RELOADREGIONSCRIPTS
COMMAND_RELOADLUASYSTEM
- special/static zones (always_loaded) are now defined by a peer_priority unsigned short (smallint(5)) in zones table.  peer_priority = server_config world.peerpriority will spawn on that exe instance, if it is not available it is distributed to all peers.  Using the value of 0 (assuming no peer has priority of 0) or 65535 will result in peer distribution of zones.
server_config.json "WorldServer" block updated with the following (web peer port information), priority must be unique for EACH peer:
        "peeraddress": "10.1.1.2",
        "peerport": "9102",
        "peerpriority": "1",

New Command Line Run Arguments for World Exe to override server_config.json values
Allowed options:
  --worldaddress arg         World address
  --internalworldaddress arg Internal world address
  --worldport arg (=0)       Web world port
  --webworldaddress arg      Web world address
  --webworldport arg (=0)    Web world port
  --peerpriority arg (=0)    Peer priority

- fixed Isle of Refuge client group struct (raids added also)
- new log category Peering
- new LUA Functions AddRespawn(Zone, LocationID, RespawnTime) and CreatePersistedRespawn(LocationID, SpawnType, RespawnTime, ZoneID)
2024-11-18 11:13:04 -05:00
Emagi
e4fc6aad5a Zone ruleset_id support for most rules 2024-10-20 09:35:41 -04:00
Emagi
8ac01db525 address spell state not getting reset if call process failed to trigger 2024-09-25 07:35:27 -04:00
Emagi
e7a187cf86 active spells updates 2024-09-22 21:11:48 -04:00
Emagi
555045cbe2 reload spells now works with the lua state redesign and we delete spell in the spell_scripts instead of other places (casttimer, active_spells, so on) 2024-09-10 09:14:40 -04:00
Emagi
297c17b177 Changed to have DestroySpells handle luaspell delete instead of active_spells 2024-09-10 08:27:05 -04:00
Emagi
c4002c363e relocate RemoveCurrentSpell to apply whenever DeleteActiveSpell called (since its removal deletes the lua spell ptr) 2024-09-07 17:12:26 -04:00
Emagi
14003ee3a4 LUA Spell Scripts updated to have a queue much like SpawnScripts, but extended to LuaSpell for tracking procs and lifetime of the lua state
Need to avoid crashes/overrun of the lua stack.
2024-09-04 06:44:04 -04:00
Emagi
b7802d84db fix lua functions being called that don't exist 2024-09-02 10:01:04 -04:00
Emagi
184bc94aa1 lua function call protection 2024-09-02 09:45:36 -04:00
Emagi
950b8e1564 revert and check if "remove" function exists in script 2024-09-02 09:19:47 -04:00
Emagi
727040d2dd Attempt to fix deleting spells more than once if short durations 2024-09-02 08:15:41 -04:00
Emagi
89194da149 EQ2Emu Source Base July 2024 2024-07-22 08:52:28 -04:00