449 Commits

Author SHA1 Message Date
Emagi
dce6e16ddb clean up former unnecessary logging for vault/broker 2025-08-30 06:33:15 -04:00
Emagi
9871d5cee1 Update client.cpp 2025-08-27 22:12:50 -04:00
Emagi
4286879e08 heroic op spells are recognized as such with ProcessSpell (in_heroic_op) 2025-08-27 22:04:34 -04:00
Emagi
00ed1f99a9 Don't allow food/drink to be consumed while dead 2025-08-27 22:04:14 -04:00
Emagi
f1c4a91b01 Enforce regen refresh after combat, avoid loot method being out of range 2025-08-27 07:42:20 -04:00
Emagi
3045b15f88 ZoneServer::KillSpawnByDistance deadlock fixed by calling outside of grid mutex lock. Killing spawn resulted in dropping loot chest, then Entity::DropChest calls SetLocation which calls AddSpawnToGrid causing deadlock. 2025-08-26 09:00:59 -04:00
Emagi
1bc87d6617 LUA RemoveSpell(Spawn, spell_id, ..) added, Illusion is a control effect, Redesign of control effects, immunities, effect flags away from mutex lists
RemoveSpell(Spawn, SpellID, MaintainedSpell, ReasonString) - maintainedspell is a boolean, default false it will remove an effect (per target) otherwise setting to true will remove the entire spell, maintained, if that is the caster.  Reason String is "canceled" by default unless overwritten

Illusions made to a control effect so we can enforce an existing illusion
2025-08-25 09:18:34 -04:00
Emagi
765a110732 assure we remove the spell from all targets even if the caster is not set/present 2025-08-21 08:59:48 -04:00
Emagi
14a03bf255 remove unnecessary logging / old comments unrelated or repetitive 2025-08-21 08:59:34 -04:00
Emagi
9c1b996b47 set logging level for player broker to debug level 2025-08-20 11:57:41 -04:00
Emagi
e0356472d6 address respawning/zoning with wrong grid id 2025-08-20 11:55:15 -04:00
Emagi
d593ceafff Added playerscripts lua function on_level_up_complete called at the end of level change
returning -1 in the global.lua for on_level_up_complete will abort the zone script if necessary
2025-08-18 17:44:12 -04:00
Emagi
eb6da37e3b keep propertiesMutex only for the initial set attempt, not for Register/SetProperty 2025-08-18 15:12:41 -04:00
Emagi
9162692a9f don't process combat if player doesn't have a zone set 2025-08-18 14:57:50 -04:00
Emagi
a117d6c3fd LUA Function RemoveCharacterProperty(Player, "somevar") to remove any set into the info struct dynamically 2025-08-18 13:57:49 -04:00
Emagi
fae7cf7773 character properties not hard coded are now dynamically fed into the info struct string, we can now SetInfoStruct(Player, "somevar", "avalue") and it will save to the DB to persist cross zone with GetInfoStruct(Player, "somevar") 2025-08-18 13:56:53 -04:00
Emagi
05f5061c19 don't allow zone to shutdown while spawn process takes place, check by using MMasterSpawnLock first 2025-08-17 18:18:29 -04:00
Emagi
2858455d9d IsAggroed is redundant in these areas now since its based on engaged_encounter 2025-08-17 14:31:17 -04:00
Emagi
8f402eb781 IsAggroed now defers to info struct for engaged_encounter to assure we are in/out of combat for various game instructions. Add /spawn details hated to show hated by list for players/entities, 2025-08-17 14:29:01 -04:00
Emagi
7869c2abcb PrintPacket cleanup 2025-08-17 10:50:33 -04:00
Emagi
4e077ed3d8 make sure the client GetCurrentZone pointer is valid for SendFriendList and SendChatRelationship 2025-08-17 10:44:51 -04:00
Emagi
c5e9adc069 Support SLOW item stat (percentage, ideally 1.0 - 100.0%). If enough slow stacks then it will immobilize the entity completely (could not find any classic limit). 2025-08-17 08:46:42 -04:00
Emagi
fd2a9566fe Disabled/Removed DumpPacket, Logging, Type-casting cleanup 2025-08-17 08:46:05 -04:00
Emagi
879a00676c Avoid CheckWards->DeleteCasterSpell->RemoveWard(LuaSpell) deadlocking 2025-08-17 06:19:12 -04:00
Emagi
9274bc9ced Don't allow the target lists to build up existing entries so as to overload the DB 2025-08-16 19:56:19 -04:00
Emagi
65aa15d70e Add HP and Power Regen to the /spawn details view below base stats STR, STA, so on. 2025-08-16 18:46:47 -04:00
Emagi
a30996efd1 Fix having the item unique id for food/drink set BEFORE consuming item as it could be deleted after due to no more count 2025-08-16 18:46:23 -04:00
Emagi
1817dbe216 moved broker db loading to debug level to avoid noise on startup 2025-08-16 09:05:43 -04:00
Emagi
277cdc24bc protection around use of GetCurrentZone in client packets 2025-08-16 08:08:55 -04:00
Emagi
807b7f254b Avoid crashing when HandleHouseEntityCommands is called with no current zone, make sure zone id and instance id are set immediately when zoning in the group member info 2025-08-16 07:43:58 -04:00
Emagi
dbbb1d4015 Update ConfigReader.cpp 2025-08-15 21:47:00 -04:00
Emagi
24f5a566ae Assure HearDispell is not accidentally sent to old clients causing a crash 2025-08-15 21:06:36 -04:00
Emagi
093cba8c37 WS_HearDispell wasn't added until past KoS, the code isn't properly rejecting the packet based on missing opcode so fixing version on the struct 2025-08-15 21:06:21 -04:00
Emagi
c38eab8325 extend player check logic from groups to raids 2025-08-15 19:06:45 -04:00
Emagi
231ce9e9bb break out of the for loop if we successfully find the instance 2025-08-15 18:19:28 -04:00
Emagi
8a4eacdb70 Fixed when a client/player was transitioning and we couldn't establish their zone correctly, pull it based on their instance id from the zone list 2025-08-15 18:17:58 -04:00
Emagi
653d504c8d added tracking of spell recast when player zones so we know not to re-add buffs to existing players 2025-08-15 18:17:33 -04:00
Emagi
fa44363a97 added aura vision as vision 5 2025-08-15 18:16:59 -04:00
Emagi
69f257303d added int32 redlight, greenlight, bluelight into info struct for character sheet spell state colors 2025-08-14 17:44:28 -04:00
Emagi
8d8aa020dd support ultravision, infravision, sonicvision and fishvision in KoS, DoF and earlier classic clients 2025-08-14 17:17:54 -04:00
Emagi
2dedddabf0 don't limit the hate to 1 or higher since we can return negative values for calculating hate amount 2025-08-14 09:49:16 -04:00
Emagi
097ee61ea4 item stat 624 (hate gain % mod) now supported 2025-08-14 09:06:17 -04:00
Emagi
a7260e9f72 Keep player at same Y position and grid_id (added new column to characters table) to address falling through objects after logging out
DB Update:
alter table characters add column grid_id int(10) unsigned not null default 0;
2025-08-13 09:57:27 -04:00
Emagi
2f558184b9 added proc type 20 (physical attack damage attempt) and type 21 (magical attack damage attempt) -- these will serve as attempts to hit, not requiring a successful hit 2025-08-10 17:15:33 -04:00
Emagi
2515b55e56 Disable the zone enter timer until we need it later on in the client process 2025-08-09 10:30:05 -04:00
Emagi
5d1dbf962d Zone in process for player is now delayed until player is no longer on pending spawn list, assures player_entry is called after and spells bonuses are properly assigned to the player. 2025-08-09 08:36:44 -04:00
Emagi
1c61c95f4a Fixed if we do not call obtained (potential of removing item) we skip the item_deleted task because the item could not have been deleted (and there is no lua data to validate it anyway since the runitemscript failed) 2025-08-08 19:46:36 -04:00
Emagi
dded41a000 protect DeleteCasterSpell since spell->spell may be nullptr 2025-08-08 16:36:57 -04:00
Emagi
a663178bda Address issue with spawns getting stuck when using MoveToLocation 2025-08-08 16:14:00 -04:00
Emagi
4d0ef974ae On zone shutdown purge all spells pending to be deleted so we do not reference dead spell->zone ptr 2025-08-08 14:40:30 -04:00