View Single Post
  #3  
Old 08-22-2008, 12:26 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Here's what I've been able to find in the source as far as procs go:
zone/attack.cpp
Code:
 1077 	////////////////////////////////////////////////////////////
 1078 	////////  PROC CODE
 1079 	////////  Kaiyodo - Check for proc on weapon based on DEX
 1080 	///////////////////////////////////////////////////////////
 1081 	if(other->GetHP() > -10 && !bRiposte && !IsDead()) {
 1082 		TryWeaponProc(weapon, other);
 1083 	}
and further down, in Mob::TryWeaponProc
Code:
 2596 	uint32 i;
 2597 	for(i = 0; i < MAX_PROCS; i++) {
 2598 		if (PermaProcs[i].spellID != SPELL_UNKNOWN) {
 2599 			if(MakeRandomInt(0, 100) < PermaProcs[i].chance) {
 2600 				mlog(COMBAT__PROCS, "Permanent proc %d procing spell %d (%d percent chance)", i, PermaProcs[i].spellID, PermaProcs[i].chance);
 2601 				ExecWeaponProc(PermaProcs[i].spellID, on);
 2602 			} else {
 2603 				mlog(COMBAT__PROCS, "Permanent proc %d failed to proc %d (%d percent chance)", i, PermaProcs[i].spellID, PermaProcs[i].chance);
 2604 			}
 2605 		}
 2606 		if (SpellProcs[i].spellID != SPELL_UNKNOWN) {
 2607 			int chance = ProcChance + SpellProcs[i].chance;
 2608 			if(MakeRandomInt(0, 100) < chance) {
 2609 				mlog(COMBAT__PROCS, "Spell proc %d procing spell %d (%d percent chance)", i, SpellProcs[i].spellID, chance);
 2610 				ExecWeaponProc(SpellProcs[i].spellID, on);
 2611 			} else {
 2612 				mlog(COMBAT__PROCS, "Spell proc %d failed to proc %d (%d percent chance)", i, SpellProcs[i].spellID, chance);
 2613 			}
 2614 		}
 2615 	}
I'm wondering if SpellProcs is only set in the zone process itself, and not carried from zone-to-zone. That could explain why it happens when you cast it in the same zone. And since weapons are checked pretty much every hit, on-weapon procs are fine.

However, if that's the problem, I'm not really sure what the best fix would be... Maybe adding a hack somewhere to check & see if it's defined?
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote