Show
Ignore:
Timestamp:
11/19/08 13:43:15 (17 years ago)
Author:
yumileroy
Message:

[svn] Implemented player on player and player on creature possession:
* Implemented packet and vision forwarding through possessed units
* Added new OnPossess? script call alerting scripts on when possession is applied/removed
* Moved fall damage and fall under map calculations into the Player class
* Added new PossessedAI that is applied only while possession on creature is active
* Implemented summon possessed spell effect
* Fixed Eyes of the Beast

Original author: gvcoman
Date: 2008-11-05 20:51:05-06:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/ObjectAccessor.cpp

    r126 r174  
    623623{ 
    624624    for(PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter) 
    625         if(iter->getSource()->HaveAtClient(&i_object)) 
    626             ObjectAccessor::_buildPacket(iter->getSource(), &i_object, i_updateDatas); 
     625    { 
     626        BuildPacket(iter->getSource()); 
     627        if (iter->getSource()->isPossessedByPlayer()) 
     628            BuildPacket((Player*)iter->getSource()->GetCharmer()); 
     629    } 
     630} 
     631 
     632void 
     633ObjectAccessor::WorldObjectChangeAccumulator::Visit(CreatureMapType &m) 
     634{ 
     635    for(CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) 
     636        if (iter->getSource()->isPossessedByPlayer()) 
     637            BuildPacket((Player*)iter->getSource()->GetCharmer()); 
     638} 
     639 
     640void 
     641ObjectAccessor::WorldObjectChangeAccumulator::BuildPacket(Player* plr) 
     642{ 
     643    // Only send update once to a player 
     644    if (plr_list.find(plr->GetGUID()) == plr_list.end() && plr->HaveAtClient(&i_object)) 
     645    { 
     646        ObjectAccessor::_buildPacket(plr, &i_object, i_updateDatas); 
     647        plr_list.insert(plr->GetGUID()); 
     648    } 
    627649} 
    628650