mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[8320] Imporovements in wild summoned gameobjects work.
* Not set owner for will summoned gameobjects. Its not expected to have owner, and must be accessable to all players (or team). * Set for all objects summoned by spells: despawned by deafult for proper despawn withut owner. * Cleanup Spell::EffectSummonObjectWild.
This commit is contained in:
parent
82782779f7
commit
0d96fc06a6
3 changed files with 39 additions and 33 deletions
|
|
@ -4737,39 +4737,40 @@ void Spell::EffectSummonObjectWild(uint32 i)
|
|||
}
|
||||
|
||||
int32 duration = GetSpellDuration(m_spellInfo);
|
||||
|
||||
pGameObj->SetRespawnTime(duration > 0 ? duration/IN_MILISECONDS : 0);
|
||||
pGameObj->SetSpellId(m_spellInfo->Id);
|
||||
|
||||
if(pGameObj->GetGoType() != GAMEOBJECT_TYPE_FLAGDROP) // make dropped flag clickable for other players (not set owner guid (created by) for this)...
|
||||
m_caster->AddGameObject(pGameObj);
|
||||
// Wild object not have owner and check clickable by players
|
||||
map->Add(pGameObj);
|
||||
|
||||
if(pGameObj->GetMapId() == 489 && pGameObj->GetGoType() == GAMEOBJECT_TYPE_FLAGDROP) //WS
|
||||
if(pGameObj->GetGoType() == GAMEOBJECT_TYPE_FLAGDROP && m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
if(m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
Player *pl = (Player*)m_caster;
|
||||
BattleGround* bg = ((Player *)m_caster)->GetBattleGround();
|
||||
|
||||
switch(pGameObj->GetMapId())
|
||||
{
|
||||
Player *pl = (Player*)m_caster;
|
||||
BattleGround* bg = ((Player *)m_caster)->GetBattleGround();
|
||||
if(bg && bg->GetTypeID()==BATTLEGROUND_WS && bg->GetStatus() == STATUS_IN_PROGRESS)
|
||||
case 489: //WS
|
||||
{
|
||||
uint32 team = ALLIANCE;
|
||||
if(bg && bg->GetTypeID()==BATTLEGROUND_WS && bg->GetStatus() == STATUS_IN_PROGRESS)
|
||||
{
|
||||
uint32 team = ALLIANCE;
|
||||
|
||||
if(pl->GetTeam() == team)
|
||||
team = HORDE;
|
||||
if(pl->GetTeam() == team)
|
||||
team = HORDE;
|
||||
|
||||
((BattleGroundWS*)bg)->SetDroppedFlagGUID(pGameObj->GetGUID(),team);
|
||||
((BattleGroundWS*)bg)->SetDroppedFlagGUID(pGameObj->GetGUID(),team);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(pGameObj->GetMapId() == 566 && pGameObj->GetGoType() == GAMEOBJECT_TYPE_FLAGDROP) //EY
|
||||
{
|
||||
if(m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
BattleGround* bg = ((Player *)m_caster)->GetBattleGround();
|
||||
if(bg && bg->GetTypeID()==BATTLEGROUND_EY && bg->GetStatus() == STATUS_IN_PROGRESS)
|
||||
case 566: //EY
|
||||
{
|
||||
((BattleGroundEY*)bg)->SetDroppedFlagGUID(pGameObj->GetGUID());
|
||||
if(bg && bg->GetTypeID()==BATTLEGROUND_EY && bg->GetStatus() == STATUS_IN_PROGRESS)
|
||||
{
|
||||
((BattleGroundEY*)bg)->SetDroppedFlagGUID(pGameObj->GetGUID());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4783,7 +4784,7 @@ void Spell::EffectSummonObjectWild(uint32 i)
|
|||
linkedGO->SetRespawnTime(duration > 0 ? duration/IN_MILISECONDS : 0);
|
||||
linkedGO->SetSpellId(m_spellInfo->Id);
|
||||
|
||||
m_caster->AddGameObject(linkedGO);
|
||||
// Wild object not have owner and check clickable by players
|
||||
map->Add(linkedGO);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue