*Lay on hands should have heal amount = caster's max health.

*Let goober call zonescript when an event happens.
*Thanks Elron for the last rev (flight bug)

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-31 20:45:34 -05:00
parent 65e270ef7b
commit 5034078d49
3 changed files with 14 additions and 5 deletions
+1
View File
@@ -536,6 +536,7 @@ class TRINITY_DLL_SPEC WorldObject : public Object
Map const* GetBaseMap() const; Map const* GetBaseMap() const;
void SetZoneScript(); void SetZoneScript();
ZoneScript * GetZoneScript() const { return m_zoneScript; }
TempSummon* SummonCreature(uint32 id, float x, float y, float z, float ang = 0,TempSummonType spwtype = TEMPSUMMON_MANUAL_DESPAWN,uint32 despwtime = 0); TempSummon* SummonCreature(uint32 id, float x, float y, float z, float ang = 0,TempSummonType spwtype = TEMPSUMMON_MANUAL_DESPAWN,uint32 despwtime = 0);
Vehicle* SummonVehicle(uint32 entry, float x, float y, float z, float ang = 0); Vehicle* SummonVehicle(uint32 entry, float x, float y, float z, float ang = 0);
+7 -1
View File
@@ -2967,6 +2967,8 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
{ {
sLog.outDebug("Goober ScriptStart id %u for GO %u", gameObjTarget->GetGOInfo()->goober.eventId,gameObjTarget->GetDBTableGUIDLow()); sLog.outDebug("Goober ScriptStart id %u for GO %u", gameObjTarget->GetGOInfo()->goober.eventId,gameObjTarget->GetDBTableGUIDLow());
sWorld.ScriptsStart(sEventScripts, gameObjTarget->GetGOInfo()->goober.eventId, player, gameObjTarget); sWorld.ScriptsStart(sEventScripts, gameObjTarget->GetGOInfo()->goober.eventId, player, gameObjTarget);
if(gameObjTarget->GetZoneScript())
gameObjTarget->GetZoneScript()->ProcessEvent(gameObjTarget, gameObjTarget->GetGOInfo()->goober.eventId);
} }
// cast goober spell // cast goober spell
@@ -4395,7 +4397,11 @@ void Spell::EffectHealMaxHealth(uint32 /*i*/)
if(!unitTarget->isAlive()) if(!unitTarget->isAlive())
return; return;
int32 addhealth = unitTarget->GetMaxHealth() - unitTarget->GetHealth(); int32 addhealth;
if(m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN) // Lay on Hands
addhealth = m_caster->GetMaxHealth();
else
addhealth = unitTarget->GetMaxHealth() - unitTarget->GetHealth();
if(m_originalCaster) if(m_originalCaster)
m_originalCaster->DealHeal(unitTarget, addhealth, m_spellInfo); m_originalCaster->DealHeal(unitTarget, addhealth, m_spellInfo);
} }
+6 -4
View File
@@ -36,12 +36,14 @@ class TRINITY_DLL_SPEC ZoneScript
virtual void OnGameObjectCreate(GameObject *go, bool add) {} virtual void OnGameObjectCreate(GameObject *go, bool add) {}
//All-purpose data storage 64 bit //All-purpose data storage 64 bit
virtual uint64 GetData64(uint32 /*Data*/) { return 0; } virtual uint64 GetData64(uint32 /*DataId*/) { return 0; }
virtual void SetData64(uint32 /*Data*/, uint64 /*Value*/) {} virtual void SetData64(uint32 /*DataId*/, uint64 /*Value*/) {}
//All-purpose data storage 32 bit //All-purpose data storage 32 bit
virtual uint32 GetData(uint32) { return 0; } virtual uint32 GetData(uint32 /*DataId*/) { return 0; }
virtual void SetData(uint32, uint32 data) {} virtual void SetData(uint32 /*DataId*/, uint32 /*Value*/) {}
virtual void ProcessEvent(WorldObject *obj, uint32 eventId) {}
}; };
#endif #endif