321 Commits

Author SHA1 Message Date
Michael Cook (mackal)
286bfa7af6 Implement the PC/NPC only flag 2016-11-30 20:53:39 -05:00
Michael Cook (mackal)
3dec02881a Revamp Buff slots
Server side we now have 63 total buff slots for clients
They match RoF/RoF2 and are mapped as 42 long, 20 short, 1 disc

The player is limited to what their clients supports, so
Tit players can have 25 buffs and 12 songs, while other can have more

When you log in, we only load up to the max your client supports,
the rest of the buffs are thrown away

Also changed is the default Max Buff slots for NPCs, they now match Tit (60)
If you are thinking about raising that, here are what some other clients support
Tit - SoF 60, SoD - UF 85, RoF - RoF2 97 (although UI only has 85 slots, you can
edit it if you want more)

Also SoD+ the pet limits match the NPC limits.

This will increase memory usage a bit, but I don't see a solution to that
Plus I think most people want this.
2016-11-15 01:37:58 -05:00
Michael Cook (mackal)
b9fefc95e8 Enforce 4 sec Sneak Attack rule fixes #569
Spells flagged with SNEAK_ATTACK requires you to be hidden for
about 4 seconds before you can cast them
2016-10-25 23:19:20 -04:00
Michael Cook (mackal)
a6f5571750 Fix infinite loops 2016-10-24 13:29:07 -04:00
Michael Cook (mackal)
95064947b6 Hack to fix long recast bard songs 2016-10-21 20:48:18 -04:00
Uleat
bfd07b1010 Added class EQEmu::InventorySlot 2016-10-16 21:36:39 -04:00
Uleat
8b5dd58e96 Renamed struct EQEmu::ItemBase to EQEmu::ItemData and class ItemInst to EQEmu::ItemInstance 2016-10-16 05:10:54 -04:00
Uleat
decaadfe7d Merge branch 'master' of https://github.com/EQEmu/Server
# Conflicts:
#	changelog.txt
2016-10-15 22:27:14 -04:00
Uleat
16642b7c4c Filename changes to facilitate future updates 2016-10-15 22:14:03 -04:00
Michael Cook (mackal)
e86fca3aff Add NPC NPC faction check to BeamDirectional 2016-10-14 13:59:45 -04:00
Michael Cook (mackal)
46cbd147b5 clang format BeamDirectional 2016-10-14 13:58:20 -04:00
Michael Cook (mackal)
05ed623056 Add NPC NPC faction check to ConeDirectional 2016-10-14 13:55:04 -04:00
Michael Cook (mackal)
c90a436db3 Clang format ConeDirectional 2016-10-14 13:52:01 -04:00
Michael Cook (mackal)
739b1bfaa3 Fix target buffs showing PC songs 2016-09-03 21:54:59 -04:00
Michael Cook (mackal)
fa337d441e Use StopCasting when we send SPELL_RECAST error 2016-08-29 14:08:22 -04:00
Michael Cook (mackal)
ea1ae1a0a4 Use StopCasting instead of Interrupt on SpellFinished failure
Most of these failures already show a message, live doesn't double
up on failure message + interrupt message, so lets not

There are a few logic error returns, but those really shouldn't happen
2016-08-29 13:27:42 -04:00
Michael Cook (mackal)
f67cd057f3 Fix issue with linked spell timers 2016-08-18 21:09:02 -04:00
Michael Cook (mackal)
0789d10d3e Add logging message for setting linked reuse 2016-08-18 20:51:58 -04:00
Michael Cook (mackal)
5a0d2b527b Add a StopCasting function and make some use of it
Unsure if all of these cases should use interrupt or stop casting
2016-08-16 17:52:14 -04:00
Michael Cook (mackal)
3d64878e60 Skip OP_BeginCast for discs 2016-08-15 15:23:37 -04:00
Michael Cook (mackal)
26772b721c Fix overhaste stack check 2016-08-15 14:21:39 -04:00
Michael Cook (mackal)
ae5689ffb4 Clean up OP_ManaChange 2016-08-15 01:17:53 -04:00
Michael Cook (mackal)
e894e96404 Implement Linked Spell Reuse Timers
They started linked spells at OoW launch (I think)

At least canni was linked then.

This is rather user unfriendly, but that's live like.
Ex. the spells aren't actually put on cool down so you can attempt to cast them
still but you will be interrupted.

Titanium is particularly unfriendly with large differences in reuse times
2016-08-14 23:32:27 -04:00
Michael Cook (mackal)
69f06f736c Fix potential crashes in zone/spells.cpp 2016-08-13 17:15:00 -04:00
Michael Cook (mackal)
4e4d82857c Move OP_BeginCast above instant cast shortcut
For casted seplls, we should always see this. Mostly this shortcut breaks
spell awareness for NPC spells. (most of them are instant cast)
2016-08-12 22:07:03 -04:00
Michael Cook (mackal)
039e0fbb83 NPC innate procs overwrite TargetType to ST_Target 2016-08-12 21:53:14 -04:00
Russell Kinasz
c1c9ec2790 Prevent crash in spell casting when group doesn't exist 2016-08-11 11:04:03 -07:00
Michael Cook (mackal)
38d3f9b7c0 Client checks song flag first
This fixes bugs with buffs marked as disc and song (they go to the song window now)
Before the client got confused and gave up displaying them at all!
2016-08-10 13:16:32 -04:00
Michael Cook (mackal)
27f6826fd3 Add rule Spells:AllowItemTGB for custom servers 2016-08-08 20:21:38 -04:00
Michael Cook (mackal)
c81a5e0783 Limit casting skill ups to casting skills 2016-08-03 23:06:00 -04:00
Michael Cook (mackal)
d68a3b191e Give pets 30 buff because that's what they got 2016-08-02 21:08:05 -04:00
Michael Cook (mackal)
64cf613189 Update GetCurrentBuffSlots() for TSS free slots
The client also checks if you have any bonus from spells and items
so why not check that as well
2016-08-02 19:00:33 -04:00
Michael Cook (mackal)
2bae779a9b NPCs don't have separate buff windows 2016-08-02 16:48:58 -04:00
Michael Cook (mackal)
f612f8be42 Fix typo 2016-07-31 17:35:33 -04:00
Michael Cook (mackal)
ef2c17748e Implement extra spell gems!
New limits:
    Tit: 9
    SoF: 9
    SoD: 10
    UF: 12
    RoF: 12
    RoF2: 12

The SoF client doesn't actually support 10 like SoF should
RoF/RoF2 actually have 4 extra broken spell gems in the UI. They don't work and
will likely crash your client

Quest stuff assumes you are passing in valid slots.
(note the old default of 10 should be 22)

There are still somethings to do like clean up the memmed spells if one switches
to an older client that doesn't support as many as their previous client.
2016-07-31 17:16:23 -04:00
Michael Cook (mackal)
2a2ce6da5d Fix item clicks being TGBable 2016-07-29 15:14:26 -04:00
Michael Cook (mackal)
de5170c5cb Fix mana burn 2016-07-26 17:10:06 -04:00
Michael Cook (mackal)
7674b3a077 Fix some same spell stacking issues 2016-07-26 16:25:19 -04:00
Michael Cook (mackal)
bda4fcfb26 Fix up SpellBuff struct
Please report any bugs you find. There shouldn't be unless I messed up the struct
for a client I didn't throughly test for
2016-07-25 16:22:48 -04:00
Michael Cook (mackal)
f42b0351fd Improve list of skipped effects in stacking code
This is the list according to the client (RoF2)

Please report any stacking anomalies
2016-07-24 22:24:53 -04:00
Michael Cook (mackal)
8983f3c5dc Merge pull request #537 from noudess/master
Fix for BuffDurationPacket on movement speed buffs.
2016-07-18 16:05:28 -04:00
Paul Coene
9349d5d473 Another fix for when BuffDurationPacket breaks client effects on spells.
In this case run speed spells like SoW.
2016-07-18 15:30:55 -04:00
Michael Cook (mackal)
d4df2e7351 Exclude Minor Illusion and Illusion: Tree from perma 2016-07-16 19:33:36 -04:00
Michael Cook (mackal)
9cf553232d Tweak spell dot stacking exempt based on client 2016-07-16 18:18:41 -04:00
Paul Coene
9a010a90a9 Added Client:UseLiveBlockedMessage rule 2016-06-28 08:27:31 -04:00
Paul Coene
02ec76d2aa Res effects now block certain buffs like on live.
Blocked spells generate message as on live.
2016-06-27 11:14:33 -04:00
Paul Coene
306ecf003a Spells like listless power and dread touch should be taking down/blocking
spells like augmentation and strenthen respectively.  The stacking code
was being bypassed when a beneficial spell and a detrimental spell for the
same effect were being compared.

With this code removed, the spells are compared and the stonger of the two
spells wins and replaces or blocks the other.

Without this change, for example, dread touch takes down strengthen on the
client, but the server still things strength is up, causing a mismatch.

With this change, client/server match.
2016-06-13 09:06:44 -04:00
Uleat
579efe83af Renamed EQEmu::Item_Struct to EQEmu::ItemBase to coincide with new inventory naming conventions (re-run shared_memory.exe) 2016-05-27 22:22:19 -04:00
KimLS
4c3947efa6 Changes to UF and above clients on how spell buff tics are synced. 2016-05-25 22:00:28 -04:00
Uleat
71f128731f Renamed and moved SkillUseTypes enumeration to EQEmu::skills::SkillType; eq_dictionary work 2016-05-25 18:50:26 -04:00