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

[svn] * Avoid access to bag item prototype for getting bag size, use related item
update field instead as more fast source. source mangos.
* Further reduce of DB access in guild handlers.
* Multi-locale DBC extracting - source Foks

*** Devs not responsible if all your player items drop to the ground and get eaten by ants or rabbits.. or some kind of wierd ant-rabbits..

Original author: KingPin?
Date: 2008-11-06 08:20:26-06:00

Files:
1 modified

Legend:

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

    r173 r177  
    153153 
    154154    std::string plName; 
    155     uint64 plGuid; 
    156     uint32 plGuildId; 
    157     Guild *guild; 
    158     Player *player; 
    159155 
    160156    //sLog.outDebug("WORLD: Received CMSG_GUILD_REMOVE"); 
     
    165161        return; 
    166162 
    167     guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
     163    Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
    168164    if(!guild) 
    169165    { 
     
    178174    } 
    179175     
    180     player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 
    181     if(player) 
    182     { 
    183         plGuid = player->GetGUID(); 
    184         plGuildId = player->GetGuildId(); 
    185     } 
    186     else 
    187     { 
    188         plGuid = objmgr.GetPlayerGUIDByName(plName); 
    189         plGuildId = Player::GetGuildIdFromDB(plGuid); 
    190     } 
     176    uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
    191177 
    192178    if(!plGuid) 
     
    202188    } 
    203189 
    204     if(GetPlayer()->GetGuildId() != plGuildId) 
     190    if(!guild->IsMember(GUID_LOPART(plGuid))) 
    205191    { 
    206192        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
     
    488474 
    489475    std::string name; 
    490     Player *newLeader; 
    491     uint64 newLeaderGUID; 
    492     uint32 newLeaderGuild; 
    493476    Player *oldLeader = GetPlayer(); 
    494477    Guild *guild; 
     
    503486    guild = objmgr.GetGuildById(oldLeader->GetGuildId()); 
    504487     
    505     if(!guild) 
     488    if (!guild) 
    506489    { 
    507490        SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 
     
    509492    } 
    510493     
    511     if(oldLeader->GetGUID() != guild->GetLeader()) 
     494    if( oldLeader->GetGUID() != guild->GetLeader()) 
    512495    { 
    513496        SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 
     
    515498    } 
    516499 
    517     newLeader = ObjectAccessor::Instance().FindPlayerByName(name.c_str()); 
    518     if(newLeader) 
    519     { 
    520         newLeaderGUID = newLeader->GetGUID(); 
    521         newLeaderGuild = newLeader->GetGuildId(); 
    522     } 
    523     else 
    524     { 
    525         newLeaderGUID = objmgr.GetPlayerGUIDByName(name); 
    526         newLeaderGuild = Player::GetGuildIdFromDB(newLeaderGUID); 
    527     } 
    528     if(!newLeaderGUID) 
     500    uint64 newLeaderGUID = objmgr.GetPlayerGUIDByName(name); 
     501    if (!newLeaderGUID) 
    529502    { 
    530503        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); 
    531504        return; 
    532505    } 
    533     if(oldLeader->GetGuildId() != newLeaderGuild) 
     506    if(!guild->IsMember(GUID_LOPART(newLeaderGUID))) 
    534507    { 
    535508        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 
     
    589562    CHECK_PACKET_SIZE(recvPacket, 1); 
    590563 
    591     Guild *guild; 
    592     Player *player; 
    593     uint64 plGuid; 
    594     uint32 plGuildId; 
    595564    std::string name,PNOTE; 
    596565 
     
    602571        return; 
    603572 
    604     guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
    605     if(!guild) 
     573    Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
     574    if (!guild) 
    606575    { 
    607576        SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 
     
    609578    } 
    610579     
    611     if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EPNOTE)) 
     580    if (!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EPNOTE)) 
    612581    { 
    613582        SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 
     
    615584    } 
    616585     
    617     player = ObjectAccessor::Instance().FindPlayerByName(name.c_str()); 
    618     if(player) 
    619     { 
    620         plGuid = player->GetGUID(); 
    621         plGuildId = player->GetGuildId(); 
    622     } 
    623     else 
    624     { 
    625         plGuid = objmgr.GetPlayerGUIDByName(name); 
    626         plGuildId = Player::GetGuildIdFromDB(plGuid); 
    627     } 
    628  
    629     if(!plGuid) 
     586    uint64 plGuid = objmgr.GetPlayerGUIDByName(name); 
     587 
     588    if (!plGuid) 
    630589    { 
    631590        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); 
    632591        return; 
    633592    } 
    634     else if(GetPlayer()->GetGuildId() != plGuildId) 
     593     
     594    if (!guild->IsMember(GUID_LOPART(plGuid))) 
    635595    { 
    636596        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 
     
    648608    CHECK_PACKET_SIZE(recvPacket, 1); 
    649609 
    650     Guild *guild; 
    651     Player *player; 
    652     uint64 plGuid; 
    653     uint32 plGuildId; 
    654610    std::string plName, OFFNOTE; 
    655611 
     
    661617        return; 
    662618 
    663     guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
    664     if(!guild) 
     619    Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 
     620    if (!guild) 
    665621    { 
    666622        SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 
    667623        return; 
    668624    } 
    669     if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EOFFNOTE)) 
     625    if (!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EOFFNOTE)) 
    670626    { 
    671627        SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 
     
    673629    } 
    674630     
    675     player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 
    676     if(player) 
    677     { 
    678         plGuid = player->GetGUID(); 
    679         plGuildId = player->GetGuildId(); 
    680     } 
    681     else 
    682     { 
    683         plGuid = objmgr.GetPlayerGUIDByName(plName); 
    684         plGuildId = Player::GetGuildIdFromDB(plGuid); 
    685     } 
    686  
    687     if( !plGuid ) 
     631    uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
     632 
     633    if (!plGuid) 
    688634    { 
    689635        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 
    690636        return; 
    691637    } 
    692     else if(GetPlayer()->GetGuildId() != plGuildId) 
     638     
     639    if (!guild->IsMember(GUID_LOPART(plGuid))) 
    693640    { 
    694641        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S);