- #bot ai mez is now #bot mez
- #bot bindme is now #bot bind
- #bot runeme is now #bot rune
- #bot augmentitem now has an alias of #bot ai
- #bot giveitem now has an alias of #bot gi
- Removed unused #bot groupmessages
- Removed useless additional parameters (c->GetName()/sep->arg[2])
- Formatted loops and conditionals.
This increases the timer that mobs will send out updates
(It could probably be increased more)
This will also reset the timer every time SendHPUpdate is called
to prevent sending like 3+ completely useless updates at once
Also skip sending the update to the client if we're sending an
OP_Damage with the damage since the client will apply this number
Changes Speed from float to int. EQ client deals with int step locs better than it does floats according to Haynar's testing.
This also contains mob runspeed changes. I recommend you set runspeeds to start in the DB 1.25 for NPCs below 1.25 which will match player runspeeds almost equally. Existing DBs will need to be updated.
General Cleanup of MobAI functions. Mobs now change their heading on AIMovement timers if their targets' heading has changed since that time. This prevents players from being able to land backstabs inbetween mob swings.
Charmed/feared players now send the appropriate packet, there was a missing CastToClient() in spells that was missing.
Mob runspeed can no longer be snared to 0%, instead, 1% of their base runspeed is the maximum. Roots apply as roots instead of a modifier under this code.
There is going to be bugs with this code. It's better we push through it than revert it. Sanctuary has been running this for a good week and we've worked through the issues.
Misc updates:
Exported some variables to perl, including:
EVENT_ITE_CLICK_CAST:
EVENT_ITEM_CLICK:
spell_id - returns the spell_id of the click effect.
return value - cancels the cast.
EVENT_DROP_ITEM:
quantity - returns the # of items dropped in the packet. If the item has charges, charges are returned here instead.
itemname - name of the item being dropped
itemid - id of the item being droppped
spell_id - spell_id associated with the item's click effect.
slotid - the inventory slot id of the item being dropped.
return value - cancels the item from being dropped.
Added Perl function: CalcEXP. Calculates the experience you would gain for an NPC that cons a specific con value to you.
Fixed a bug where you would receive the group experience bonus and group experience messages for simply being in a group, regardless of the player being in the same zone as you.
Changes:
Mods are now saved for in the DB so they are loaded on zone
This allows long duration buffs from bards that get mods to keep their mods
Ex. Selo's, Symphony of Battle
Instrument mods are applied to basically anything that is an instrument skill
The only exception to this is discs (ex. Puretone is Singing but always 10)
Singing spells from procs (Ex. Storm Blade) that are instrument skills should
inherit their buffs instrument mod. Doom effects should also. This isn't
implemented yet.
worn bonuses than what was prior implemented.
Removed old rule RuleB(Spells, AdditiveBonusValues)
Replaced with new rule RuleI(AdditiveBonusWornType)
The rule value denotes a specific 'worntype' that is to be
checked on items. If the items 'worntype' matches the rules worntype
then any worn effect on that item will be cacluated additively
instead of taking the highest value. This will also stack with
regular worn effects that take highest value. Unless the value
is set to (2) which is what all live items use. If set to 2 then
all worn effects will be calculated additively (same as what the old
rule did).
In laymans terms. You can take 3 Cleave I items and put them on a character
and they will all add together if you set the worn type = 3 and the rule = 3.
Which would also add to any regular cleave set to worn type = 2.
Hope you enjoyed the novel.