|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Feature Requests Post suggestions/feature requests here. |

11-06-2008, 01:53 PM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
and yeah as I said before- all these spells are Buffs.
this means just like you can put Enduring Breath on an item as worn effect to have it with unlimited duration - same way you should be able to put these Reverse Proc spells on ANY item as worn effect to have unlimited duration Defensive Proc
|
 |
|
 |

11-06-2008, 03:17 PM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
Based on those spells, it's Effect ID 323 (SE_DefensiveProc):
Code:
mysql> SELECT id, name, CONCAT(effectid1,'/',effect_base_value1,'/',effect_limit_value1) AS e1, CONCAT(effectid2,'/',effect_base_value2,'/',effect_limit_value2) AS e2, CONCAT(effectid3,'/',effect_base_value3,'/',effect_limit_value3) AS e3, CONCAT(effectid4,'/',effect_base_value4,'/',effect_limit_value4) AS e4, CONCAT(effectid5,'/',effect_base_value5,'/',effect_limit_value5) AS e5, CONCAT(effectid6,'/',effect_base_value6,'/',effect_limit_value6) AS e6, CONCAT(effectid7,'/',effect_base_value7,'/',effect_limit_value7) AS e7, CONCAT(effectid8,'/',effect_base_value8,'/',effect_limit_value8) AS e8, CONCAT(effectid9,'/',effect_base_value9,'/',effect_limit_value9) AS e9, CONCAT(effectid10,'/',effect_base_value10,'/',effect_limit_value10) AS e10, CONCAT(effectid11,'/',effect_base_value11,'/',effect_limit_value11) AS e11, CONCAT(effectid12,'/',effect_base_value12,'/',effect_limit_value12) AS e12 FROM spells_new WHERE effectid1 IN(323) OR effectid2 IN(323) OR effectid3 IN(323) OR effectid4 IN(323) OR effectid5 IN(323) OR effectid6 IN(323) OR effectid7 IN(323) OR effectid8 IN(323) OR effectid9 IN(323) OR effectid10 IN(323) OR effectid11 IN(323) OR effectid12 IN(323) ORDER BY id ASC;
+-------+------------------------------------+---------------+---------------+---------------+----------------+-----------+---------+---------+---------+---------+---------+---------+---------+
| id | name | e1 | e2 | e3 | e4 | e5 | e6 | e7 | e8 | e9 | e10 | e11 | e12 |
+-------+------------------------------------+---------------+---------------+---------------+----------------+-----------+---------+---------+---------+---------+---------+---------+---------+
| 5300 | Nature Veil | 323/5308/300 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 5356 | Oaken Guard | 162/75/0 | 323/6156/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 5866 | Divine Retribution | 323/5987/300 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 5903 | Color Shock | 323/6033/300 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6190 | Shocking Defense Discipline | 323/6202/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6195 | Counterforce Discipline | 323/6204/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6200 | Unpredictable Rage Discipline | 323/6207/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6244 | Elemental Conjunction | 85/6305/400 | 323/6306/100 | 10/0/0 | 79/800/0 | 69/800/0 | 10/0/0 | 10/0/0 | 10/0/0 | 10/0/0 | 10/0/0 | 15/10/0 | 0/20/0 |
| 6276 | Primal Fusion | 85/6317/400 | 323/6318/100 | 10/0/0 | 79/1000/0 | 69/1000/0 | 10/0/0 | 10/0/0 | 10/0/0 | 10/0/0 | 10/0/0 | 15/12/0 | 0/24/0 |
| 6377 | Pious Shield | 323/6408/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6393 | Blessed Shield | 323/6408/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6540 | Form of Lava | 323/6541/300 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6662 | Ward of Retribution | 323/6719/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6730 | Ward of Vengeance | 323/6748/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6902 | Ward of the Divine | 323/6904/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 6903 | Ward of Rebuke | 323/6905/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8008 | Skin of the Reptile | 10/0/0 | 10/0/0 | 10/0/0 | 323/8009/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8015 | Lingering Sloth | 10/0/0 | 10/0/0 | 323/8016/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8038 | Burning Aura | 323/8039/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8334 | Creeping Plague | 323/8335/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8476 | Bloodthirst | 10/0/0 | 10/0/0 | 323/8869/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8479 | Ward of Tunare | 2/25/0 | 10/0/0 | 4/60/0 | 323/8480/400 | 1/80/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8484 | Decrepit Skin | 323/8485/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 8506 | Ward of Bedazzlement | 323/8507/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9637 | Ward of Mysaphar | 10/0/0 | 10/0/0 | 10/0/0 | 323/11553/1000 | 10/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9639 | Scales of Draton`ra | 323/11554/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9653 | Ward of the Scribe | 10/0/0 | 10/0/0 | 10/0/0 | 323/11553/1000 | 10/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9655 | Putrid Skin | 323/11554/200 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9785 | Ward of Reprisal | 323/9788/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9786 | Ward of Reprisal Rk. II | 323/9789/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9787 | Ward of Reprisal Rk. III | 323/9790/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9905 | Direwood Guard | 162/75/0 | 323/9908/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9906 | Direwood Guard Rk. II | 162/75/0 | 323/9909/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 9907 | Direwood Guard Rk. III | 162/75/0 | 323/9910/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 10666 | Ward of Bewilderment | 323/10667/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 10862 | Tendrilmist Guard | 55/1800/0 | 333/10865/0 | 323/11912/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 10863 | Tendrilmist Guard Rk. II | 55/1875/0 | 333/10866/0 | 323/11912/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 10864 | Tendrilmist Guard Rk. III | 55/1950/0 | 333/10867/0 | 323/11912/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11291 | Wrath of God | 323/11292/300 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11782 | Lassitude | 10/0/0 | 10/0/0 | 323/11785/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11783 | Lassitude Rk. II | 10/0/0 | 10/0/0 | 323/11786/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11784 | Lassitude Rk. III | 10/0/0 | 10/0/0 | 323/11787/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11885 | Rune of the Kedge | 55/1800/0 | 323/11888/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11886 | Rune of the Kedge Rk. II | 55/1875/0 | 323/11889/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11887 | Rune of the Kedge Rk. III | 55/1950/0 | 323/11890/400 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11916 | Shocking Stance Discipline | 323/11919/125 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11917 | Shocking Stance Discipline Rk. II | 323/11920/150 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
| 11918 | Shocking Stance Discipline Rk. III | 323/11921/175 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 | 254/0/0 |
+-------+------------------------------------+---------------+---------------+---------------+----------------+-----------+---------+---------+---------+---------+---------+---------+---------+
48 rows in set (0.20 sec)
Looking at the spell descriptions on Allakhazam, it appears they work like a regular proc in that, it can proc on any swing, not just damaging hits. We should be able to add additional proc info into the mob class:
zone/mob.h
Code:
enum {MAX_PROCS = 4};
tProc PermaProcs[MAX_PROCS];
tProc RevPermaProcs[MAX_PROCS];
tProc SpellProcs[MAX_PROCS];
tProc RevSpellProcs[MAX_PROCS];
fill in the values (probably in zone/spells.cpp), then call it in the proc code:
zone/attack.cpp
Code:
uint32 i;
for(i = 0; i < MAX_PROCS; i++) {
if (PermaProcs[i].spellID != SPELL_UNKNOWN) {
if(MakeRandomInt(0, 100) < PermaProcs[i].chance) {
mlog(COMBAT__PROCS, "Permanent proc %d procing spell %d (%d percent chance)", i, PermaProcs[i].spellID, PermaProcs[i].chance);
ExecWeaponProc(PermaProcs[i].spellID, on);
} else {
mlog(COMBAT__PROCS, "Permanent proc %d failed to proc %d (%d percent chance)", i, PermaProcs[i].spellID, PermaProcs[i].chance);
}
}
if (SpellProcs[i].spellID != SPELL_UNKNOWN) {
int chance = ProcChance + SpellProcs[i].chance;
if(MakeRandomInt(0, 100) < chance) {
mlog(COMBAT__PROCS, "Spell proc %d procing spell %d (%d percent chance)", i, SpellProcs[i].spellID, chance);
ExecWeaponProc(SpellProcs[i].spellID, on);
} else {
mlog(COMBAT__PROCS, "Spell proc %d failed to proc %d (%d percent chance)", i, SpellProcs[i].spellID, chance);
}
}
if (on->RevPermaProcs[i].spellID != SPELL_UNKNOWN) {
if (MakeRandomInt(0, 100) < on->RevPermaProcs[i].chance) {
mlog(COMBAT__PROCS, "Reverse Permanent proc %d procing spell %d (%d percent chance)", i, on->RevPermaProcs[i].spellID, on->RevPermaProcs[i].chance);
on->ExecWeaponProc(on->RevPermaProcs[i].spellID, this);
} else {
mlog(COMBAT__PROCS, "Reverse Permanent proc %d failed to proc %d (%d percent chance)", i, on->RevPermaProcs[i].spellID, on->RevPermaProcs[i].chance);
}
}
if (on->RevSpellProcs[i].spellID != SPELL_UNKNOWN) {
if (MakeRandomInt(0, 100) < on->RevSpellProcs[i].chance) {
mlog(COMBAT__PROCS, "Reverse Spell proc %d procing spell %d (%d percent chance)", i, on->RevSpellProcs[i].spellID, on->RevSpellProcs[i].chance);
on->ExecWeaponProc(on->RevSpellProcs[i].spellID, this);
} else {
mlog(COMBAT__PROCS, "Reverse Spell proc %d failed to proc %d (%d percent chance)", i, on->RevSpellProcs[i].spellID, on->RevSpellProcs[i].chance);
}
}
}
Obviously, there's a lot more needed, but hopefully this will point us in the right direction. If I get some time, I may work the rest of this out, but if someone else wants to finish this off, feel free.
|
 |
|
 |

01-26-2009, 01:03 AM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
so guys- I hear that reverse procs working now? At least Skin of Reptile does on StormHeaven server
when did this got fixed?
Also - who ever fixed it - did you MAKE SURE that this ALSO works with WORN EFFECT items? (if an item should have a WORNEFFECT which is a reactive proc buff - its should work as if a person would have been buffed with that buff)
|

01-28-2009, 05:13 PM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
I think this was added in Rev 176.
changelog.txt:
Quote:
==11/07/2008
seveianrex: Added #melody as a supplement for /melody until the OPcode can be located. Don't forget to:
INSERT INTO commands (command, access, description) VALUES ('melody', 0, 'A supplement for /melody until the OP code is found.')
seveianrex: Added support for defensive and ranged spell-effect based procs. Having some zone-crash issues with the ranged proc code for some reason, so it's commented out until I can fix it.
|
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 05:34 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |