Commit graph

280 commits

Author SHA1 Message Date
Image
4bbc783c28 crash fix for RemovePrimaryEntityCommand 2020-05-19 16:06:28 -04:00
Image
6c7f11fd70 LUA Commands Added/Updated for controlling primary commands
Fix 

Examples:

--AddPrimaryEntityCommand(Spawn,NPC,"",0,"") -- removes all the primary entity commands (including hail)

--AddPrimaryEntityCommand(Spawn,NPC,"hail",10000,"hail") -- adds the hail command back to the npc

--SendUpdateDefaultCommand(NPC,10000,"hail") -- returns the bubble option when you hover over the spawn/npc

--AddPrimaryEntityCommand(Spawn,NPC,"hail2",10000,"hail2","",0,0,1) -- 1 at the end sets this as a default DENY list, if Spawn is supplied and not null/not player then that player gets default allow access.  Any other players must be added (either by calling the AddPrimaryEntityCommand or subsequently SetAccessToEntityCommand)

--SetAccessToEntityCommand(Spawn,NPC,"hail2",0) -- removes access to the just created hail2 for that player

--SetAccessToEntityCommand(Spawn,NPC,"hail2",1) -- adds access to hail2 for that Spawn (player)

--RemovePrimaryEntityCommand(NPC,"hail2") -- removes hail2 command for all players
2020-05-19 13:38:11 -04:00
Image
a25166ad8d LUAFunctions CanSeeInvis(spawn,target) SetSeeInvis(spawn,1/0) SetSeeHide(spawn,1/0)
Query required to enable see invisibility spell: update spells set is_active=1 where id=210013;
2020-05-18 23:05:10 -04:00
Image
54088ff196 Fix for interception / redirect, that damage will not send an absorb packet, instead a special intercept packet
Completes fix .

There may be a special damage packet?  I am not seeing a viable one identified, the Message type will be used in place for now (hear from peak some messages for combat are sent this way anyway).
2020-05-18 16:11:19 -04:00
Image
3bb92c110d Max level support for knowledge sort filter
Help resolve issue 
2020-05-17 23:31:14 -04:00
Image
6e7fc01ab5 Revert "Revert "Exe Updates""
This reverts commit c251091291.
2020-05-17 19:34:12 -04:00
Image
c251091291 Revert "Exe Updates"
This reverts commit f0c58aff35.
2020-05-17 19:33:29 -04:00
Image
f0c58aff35 Exe Updates 2020-05-17 19:32:38 -04:00
Image
e3a8597f78 Exposed max level argument to ResortSpellBook, still need to allow filtering by max lvl
work in progress for issue 
2020-05-17 18:40:00 -04:00
Image
ad3e0ba069 Support for knowledge book sorting, begins resolution for issue
Requires SQL update:
update commands set handler=511 where command='knowledgewindow_sort';

- Support for ordering knowledge books by alphabetical, category, and level.  There is some quirky sorting if you try sorting multiple times on category/level, to be addressed.

MaxLevel only checkbox is not implemented
patterns are not implemented
2020-05-17 18:06:55 -04:00
Image
2c62893333 Fixed Raid / Group Target Type
Fixed Group / Raid target type
2020-05-16 23:32:36 -04:00
Image
07c14f1d92 Wards support is now fully extended to allow divine aura / stoneskin / intercept as possible solutions
Addresses issue  - minus fervor needs its own work implemented.

AddWard(dmg,keepward,wardtype,damagetype,dmgabsorptionpct,damageabsorptionmaxhealthpct,redirectdmgpct,maxhitcount)
2020-05-16 23:32:13 -04:00
Image
91cb109799 Added GetWardValue in support of Issue
GetWardValue(Ward, "type")

types:
damageleft - amount of damage left ward can absorb
basedamage - original amount of damage ward can absorb in total
keepward - keep ward (don't remove spell from spawn) if it expires by absorbing all the damage
wardtype - limit damage type:
#define WARD_TYPE_ALL 0
#define WARD_TYPE_PHYSICAL 1
#define WARD_TYPE_MAGICAL 2

dmgabsorptionpct - max damage ward can absorb (eg 50% of 100 means 50 absorbed, 50 damage still hits)
dmgabsorptionmaxhealthpct - max damage ward can absorb (eg if 1000 health and 50%, any damage 500+ will not be absorbed)
2020-05-16 10:46:51 -04:00
Image
0e2ac675b7 Quest crash fix if step was NULL 2020-05-16 08:02:26 -04:00
Image
b3ffa77c42 AddWard updates in support of Issue
Helps address issue 

two new arguments added:
AddWard(dmg,keepWard,wardType,damageTypes,dmgAbsorptionPct,dmgAbsorptionMaxHealthPct)

dmgAbsorptionPct - max percentage of the damage that can be absorbed per hit (eg 100 damage, 50% absorption, 50 absorbed, 50 damage left)
dmgAbsorptionMaxHealthPct - Max absorption percentage against the targets total hp, eg 1000 hp 50% absorption, if the hit is 500 dmg or more, then no damage absorbed
2020-05-16 08:02:16 -04:00
Image
e97475c1aa Crash fixes for quests 2020-05-14 23:58:41 -04:00
Image
234ac02d0e Update zoneserver.cpp
was out of date with local src wrong boolean on EngagedInCombat
2020-05-13 23:29:27 -04:00
Image
c79989f68b CPU fixes 2020-05-13 23:26:40 -04:00
Image
310060300f Reduced logging to make debug startup easier to process 2020-05-13 23:26:08 -04:00
Image
4330ef93f6 Additional reduction of mutex locks in zone server processing/spawn processing/etc -- also replaced locks in EQStream to try to avoid additional desyncs 2020-05-12 23:16:37 -04:00
Image
9aedae89f1 added check for loot drops table being empty 2020-05-12 08:35:09 -04:00
Image
a79b48aeb4 Restored mob movement command mutex to avoid crashes 2020-05-12 08:34:55 -04:00
Image
56f4d39864 Speed/CPU improvements
Reverted movement manager to Entity, limited to just entity (NPC/Player)
spawn add timer moved to 1000 ms (or trigger on new spawn)
CombatProcess migrated to either movement check (100ms) or aggro check (every 2s) -- in other words not every 10ms.
Set a 1 ms sleep in the CombinePacketLoop
2020-05-12 00:49:13 -04:00
Image
423163d30c Revert "Reducing mutex locks, reducing unnecessary calls by timers increased/utilized for certain processes"
This reverts commit cb352a6632.
2020-05-12 00:35:16 -04:00
Image
cb352a6632 Reducing mutex locks, reducing unnecessary calls by timers increased/utilized for certain processes 2020-05-11 23:01:58 -04:00
Image
44537ad063 Revert "Disable LogWrite in EQStream causing high cpu even when debug not enabled"
This reverts commit 0f4b2a0ee4.
2020-05-11 15:38:26 -04:00
Image
0f4b2a0ee4 Disable LogWrite in EQStream causing high cpu even when debug not enabled 2020-05-11 15:35:48 -04:00
Image
492c430229 Revert "Disabled EQStream LogWrite, was causing high cpu"
This reverts commit 57f395bf8c.
2020-05-11 15:32:01 -04:00
Image
57f395bf8c Disabled EQStream LogWrite, was causing high cpu 2020-05-11 15:31:26 -04:00
Image
48b973454c Fixed the proximities changes 2020-05-11 11:58:35 -04:00
Image
5bd0deb900 avoid unnecessary processing for spawns that don't have spawn proximities (cpu improvement) 2020-05-11 11:49:26 -04:00
Image
49a0072218 Better logging for 'proc' function not triggering right so we know which spell 2020-05-11 11:49:06 -04:00
Image
de551afbbe CheckProcs should be just using a vector 2020-05-11 08:57:35 -04:00
Image
07f9f741b5 Loot Chests and other specified objects will show interactive hand icon 2020-05-11 08:46:14 -04:00
Image
e3683ce088 Potential deadlock fix for CheckProc/RemoveProc
11:32:11 E Mutex     : The mutex Entity::m_procList called from RemoveProc at line 1269 timed out while waiting on readers!
11:32:11 E Mutex     : The following functions had locks:
11:32:11 E Mutex     : CheckProcs, number of locks = 1

Note: Might need to reinstantiate the spell pointer.. that remains to be seen
2020-05-11 08:44:49 -04:00
Image
569f9e8df2 Deadlock fix for SpellProcess
11:32:06 E Mutex     : The mutex SpellProcess::SpellCancelList called from AddSpellCancel at line 2266 timed out waiting on another writelock!
11:32:06 E Mutex     : The following functions had locks:
11:32:06 E Mutex     : Process, number of locks = 1
2020-05-11 08:43:36 -04:00
Image
9c71a0ebe0 PVP AE Player Group support 2020-05-10 22:10:31 -04:00
Image
79af63b919 Additional spell PVP fixes
if secondary target is available, we check if target is an enemy player first, if not then we attempt to see if secondary target is an 'enemy'
2020-05-10 19:58:43 -04:00
Image
58a94e862f Fixed some spells not setting their direct target in PVP 2020-05-10 19:07:59 -04:00
Image
42c26f4150 MovementMgr now takes in Spawn not Entity, also protected the command queue with a mutex due to cross thread contamination 2020-05-10 18:18:17 -04:00
Image
7f24a9e0d9 Limit bug reports on spell range being 0 to a single report per startup of world 2020-05-10 14:09:08 -04:00
Image
3ef309619f AFK Visual for players now works for newer clients (1188+) 2020-05-10 14:08:41 -04:00
Image
6b7c210fc1 resolve constant sheething of weapons in combat -- outstanding problem weapon swinging 2020-05-10 11:03:44 -04:00
Image
25d9c9d93f potential crash fix 2020-05-10 11:03:14 -04:00
Image
c0632906b6 Fixed issues with some LUA movement scripts, also mobs engaged in combat should stop more abruptly and not run past you 2020-05-09 23:31:48 -04:00
Image
cbcac95674 Added Spawn Proximity code
Fix 

LUA AddSpawnProximity added:
Argument 1 is spawn to add the proximity
Argument 2 is spawn id OR location id
Argument 3 is 0 for spawn id OR 1 for location id
Argument 4 is distance
Argument 5 is in range function
Argument 6 is out of range function
AddSpawnProximity(NPC,locationid,1,15,"InRange","OutRange")AddSpawnProximity(NPC,spawnid,0,15,"InRange","OutRange")

created 'prespawn' LUA function, AddSpawnProximity can be called before the spawn is added
2020-05-09 20:57:21 -04:00
Image
d8c99e2229 guild create command crashed worldserver, also guild name was passing 'create' as part of the guild name
Fix 
2020-05-09 20:54:46 -04:00
Image
9134eadf80 LUA SetFactionID and GetFactionID support for Spawn
Partially addresses issue 
2020-05-09 13:24:10 -04:00
Image
3f751b18f0 Fix a crash on zone startup if the EQ2Map isn't present 2020-05-09 11:42:03 -04:00
Image
c4ad6568d5 Created HaltMovement to send a client update of no further forward movement, used for fear and mez currently
Fixes 
2020-05-09 09:05:22 -04:00