#267 stop spell stacking of same spell

Stängd
öppnade 3 år sedan av image · 4 kommentarer
image kommenterad 3 år sedan

We don't have code for this AFAIK. Need a way to do this, sadly might have to regex through the spell names to see if it matches the new spell, there doesn't seem to be any matching way to do it other than that they may call the same LUA file (but may not!)

We don't have code for this AFAIK. Need a way to do this, sadly might have to regex through the spell names to see if it matches the new spell, there doesn't seem to be any matching way to do it other than that they may call the same LUA file (but may not!)
neatz09 kommenterad 3 år sedan
Deltagare

we do not. the best approach would probably have a DB entry similar to linked_ID but use it to cancel out/lock out unstackable spells. mobs can stack some the "unstackable" spells as long as they come from a different source. i.e 2 mobs hit with quickstrike they will stack as long as one trigger comes from each mob.

we do not. the best approach would probably have a DB entry similar to linked_ID but use it to cancel out/lock out unstackable spells. mobs can stack some the "unstackable" spells as long as they come from a different source. i.e 2 mobs hit with quickstrike they will stack as long as one trigger comes from each mob.
image kommenterad 3 år sedan
Deltagare
  • Spells are now tracked by the link_timer_id, this means that like spells (eg. Arctic Blast I, Arctic Blast II, etc.) will not stack. The lesser spells will be rejected if the higher tier is already casted on the mob.
  • Spells of same or higher tier that are unfriendly spells will replace the existing.
  • Friendly spells of higher tier will cause the previous tier spell to cancel out on the maintained list, subsequent queueing will put higher tier spell on maintained spells.
  • If there are multiple casters on a mob, unless it is a DEBUFF they will stack. Same rules apply above to the caster on target.
- Spells are now tracked by the link_timer_id, this means that like spells (eg. Arctic Blast I, Arctic Blast II, etc.) will not stack. The lesser spells will be rejected if the higher tier is already casted on the mob. - Spells of same or higher tier that are unfriendly spells will replace the existing. - Friendly spells of higher tier will cause the previous tier spell to cancel out on the maintained list, subsequent queueing will put higher tier spell on maintained spells. - If there are multiple casters on a mob, unless it is a DEBUFF they will stack. Same rules apply above to the caster on target.
image kommenterad 3 år sedan
Deltagare

other than DD and DOT other spells will not stack with each other if in the same linked group. We may need an extended way to group spells beyond that 'linked group' like spell_type_group.

#define SPELL_TYPE_UNSET        1
#define SPELL_TYPE_DD           2
#define SPELL_TYPE_DOT          3
#define SPELL_TYPE_HEAL         4
#define SPELL_TYPE_HOT_WARD     5
#define SPELL_TYPE_DEBUFF       6
#define SPELL_TYPE_BUFF         7
#define SPELL_TYPE_COMBATBUFF   8
#define SPELL_TYPE_TAUNT        9
#define SPELL_TYPE_DETAUNT      10
#define SPELL_TYPE_REZ          11
#define SPELL_TYPE_CURE         12
other than DD and DOT other spells will not stack with each other if in the same linked group. We may need an extended way to group spells beyond that 'linked group' like spell_type_group. ``` #define SPELL_TYPE_UNSET 1 #define SPELL_TYPE_DD 2 #define SPELL_TYPE_DOT 3 #define SPELL_TYPE_HEAL 4 #define SPELL_TYPE_HOT_WARD 5 #define SPELL_TYPE_DEBUFF 6 #define SPELL_TYPE_BUFF 7 #define SPELL_TYPE_COMBATBUFF 8 #define SPELL_TYPE_TAUNT 9 #define SPELL_TYPE_DETAUNT 10 #define SPELL_TYPE_REZ 11 #define SPELL_TYPE_CURE 12 ```
image kommenterad 3 år sedan
Deltagare
alter table spells add column type_group_spell_id int(10) signed not null default '0';
type_group_spell_id = 0 - follows other criteria (linked timer id, spell id, etc.)
type_group_spell_id > 0 - this is another way beyond the linked_timer to restrict spells being casted on a target
type_group_spell_id = -1 - allows stacking with other players spells
type_group_spell_id <= -2 - allows stacking with other players and self
``` alter table spells add column type_group_spell_id int(10) signed not null default '0'; ``` ``` type_group_spell_id = 0 - follows other criteria (linked timer id, spell id, etc.) type_group_spell_id > 0 - this is another way beyond the linked_timer to restrict spells being casted on a target type_group_spell_id = -1 - allows stacking with other players spells type_group_spell_id <= -2 - allows stacking with other players and self ```
Logga in för att delta i denna konversation.
Laddar...
Avbryt
Spara
Det finns inget innehåll än.