Log in

View Full Version : WeaponProc Buff Spamming 25k after it recasts itself 2-3 times?


Hateborne
04-25-2012, 12:58 AM
Hello All, I broke something.

I have a buff that is recasting itself on first 2-3 'procs'. It then proceeds to spam 25k nukes.

The spell (which we will call SKBuff, spell id 1233) has:

Slot) Name // effect_base_value // max // effect_limit_value
1) WeaponProc 1234 0 400
2) ImprovedHeal -100 0 0
3) Illusion 161 0 0 (iksar skeleton)
4) CurrentHP -1000 0 0


SKBuff Trigger (spell id 1234) has:

Slot) Name // effect_base_value // max // effect_limit_value
1) CurrentHP -1000 0 0 0


The SKBuff is supposed to add weapon proc, drastically cut down the healing ability, keep illusion iksar (for giggles), and keep a steady DoT on player to encourage him/her not to run around in this form.


Like mentioned above, it does the "cast on you" and "emptiness fades" message twice and then spams 25k procs. Has anyone else experienced similar issues?


-Hate

Hateborne
04-25-2012, 01:50 AM
Deleted the spell, copied over a working version of a spell-buff weapon proc.

It's now casting the next rank of SKBuff (which then casts the next rank after that).

I broke something...hard.

-Hate

Hateborne
04-25-2012, 02:02 AM
Bloody hell, it's still chaining up through each rank of the spell.

The queries to add the items are here: http://hateborne.dyndns.org/ezserver/debug/wtfspells.sql

Or below:

INSERT INTO `spells_new` VALUES (10219, 'Call of the Void', 'PLAYER_1', '', '', '', 'A void forms in your body.', '\'s ara grows empty.', 'The emptiness fades.', 0, 0, 0, 0, 3000, 2250, 2250, 11, 1800, 0, 1850, 161, 10220, -100, 161, 0, 0, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 2105, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 1, 0, 0, 10, 85, 125, 58, 10, 10, 0, 254, 254, 254, 254, 254, 6, 5, 5, -1, 0, 0, 255, 255, 255, 255, 70, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 244, 0, -100, 0, 0, 0, 0, 0, 0, 0, 4063, 125, 17, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 134, -72, 46, 11, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);
INSERT INTO `spells_new` VALUES (10220, 'Call of the Void Strike', 'PLAYER_1', '', '', '', '', '', '', 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 2110, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 6, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 5, 0, 98, -1, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 161, 355, 1, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 25, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 100, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);
INSERT INTO `spells_new` VALUES (10221, 'Call of the Void II', 'PLAYER_1', '', '', '', 'A void forms in your body.', '\'s ara grows empty.', 'The emptiness fades.', 0, 0, 0, 0, 3000, 2250, 2250, 11, 1800, 0, 4850, 161, 10222, -225, 161, 0, 0, -2750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 2105, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 1, 0, 0, 10, 85, 125, 58, 10, 10, 0, 254, 254, 254, 254, 254, 6, 5, 5, -1, 0, 0, 255, 255, 255, 255, 70, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 244, 0, -250, 0, 0, 0, 0, 0, 0, 0, 4063, 125, 17, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 134, -72, 46, 11, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);
INSERT INTO `spells_new` VALUES (10222, 'Call of the Void II Strike', 'PLAYER_1', '', '', '', '', '', '', 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 2110, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 6, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 5, 0, 98, -1, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 161, 355, 1, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 25, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 100, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);
INSERT INTO `spells_new` VALUES (10223, 'Call of the Void III', 'PLAYER_1', '', '', '', 'A void forms in your body.', '\'s ara grows empty.', 'The emptiness fades.', 0, 0, 0, 0, 3000, 2250, 2250, 11, 1800, 0, 8850, 161, 10224, -500, 161, 0, 0, -5750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 2105, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 1, 0, 0, 10, 85, 125, 58, 10, 10, 0, 254, 254, 254, 254, 254, 6, 5, 5, -1, 0, 0, 255, 255, 255, 255, 70, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 244, 0, -250, 0, 0, 0, 0, 0, 0, 0, 4063, 125, 17, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 134, -72, 46, 11, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);
INSERT INTO `spells_new` VALUES (10224, 'Call of the Void III Strike', 'PLAYER_1', '', '', '', '', '', '', 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 2110, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 6, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 5, 0, 98, -1, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 43, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 161, 355, 1, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 25, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 100, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1);


I am at a COMPLETE loss.

-Hate

Hateborne
04-30-2012, 07:02 PM
This has been solved. SK only spells have that +1 to proc value.

I assume you mean you're using SE_WeaponProc (85).

The way the proc to add is calculated can be seen here:
//for some stupid reason SK procs return theirs one base off...
uint16 Mob::GetProcID(uint16 spell_id, uint8 effect_index) {
bool sk = false;
bool other = false;
for(int x = 0; x < 16; x++)
{
if(x == 4){
if(spells[spell_id].classes[4] < 255)
sk = true;
}
else{
if(spells[spell_id].classes[x] < 255)
other = true;
}
}

if(sk && !other)
{
return(spells[spell_id].base[effect_index] + 1);
}
else{
return(spells[spell_id].base[effect_index]);
}
}


So, whichever effect slot the 85 is in it appears you want the proc spell id in the corresponding base slot, and if it's a SK only spell you want to subtract 1 from the value.

Not sure why it would add more than one proc or vary the number chosen though. Seems like something you would want to debug to see where it's going wrong.

Thanks again!

-Hate