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

[svn] *** Source: MaNGOS ***
* Fixed build extractor at Windows Vista. Author: Vladimir
* Fixed comment text and code indentifiers spelling. Author: Vladimir & Paradox.
* Access cached member lists in guild handlers instead of querying the DB. Author: Hunuza
* Small fixes in send/received packet and simple code cleanup also. Author: Vladimir
* Not output error at loading empty character_ticket table. Author: Vladimir
* Not reset display model at shapeshift aura remove if it not set at apply. Author: Arthorius
* Applied props to few files.

Original author: visagalis
Date: 2008-11-14 16:28:45-06:00

Files:
1 modified

Legend:

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

    r177 r229  
    174174    } 
    175175     
    176     uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
    177  
    178     if(!plGuid) 
    179     { 
    180         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 
    181         return; 
    182     } 
    183  
    184     if(plGuid == guild->GetLeader()) 
     176    uint64 plGuid; 
     177    MemberSlot* slot = guild->GetMemberSlot(plName, plGuid); 
     178    if(!slot) 
     179    { 
     180        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
     181        return; 
     182    } 
     183 
     184    if(slot->RankId == GR_GUILDMASTER) 
    185185    { 
    186186        SendGuildCommandResult(GUILD_QUIT_S, "", GUILD_LEADER_LEAVE); 
    187         return; 
    188     } 
    189  
    190     if(!guild->IsMember(GUID_LOPART(plGuid))) 
    191     { 
    192         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
    193187        return; 
    194188    } 
     
    302296    } 
    303297     
    304     uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
     298    uint64 plGuid; 
     299    MemberSlot* slot = guild->GetMemberSlot(plName, plGuid); 
     300 
     301    if(!slot) 
     302    { 
     303        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
     304        return; 
     305    } 
     306 
     307    if(plGuid == GetPlayer()->GetGUID()) 
     308    { 
     309        SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_NAME_INVALID); 
     310        return; 
     311    } 
    305312     
    306     if(!plGuid) 
    307     { 
    308         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 
    309         return; 
    310     } 
    311     else if(plGuid == GetPlayer()->GetGUID()) 
    312     { 
    313         SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_NAME_INVALID); 
    314         return; 
    315     } 
    316      
    317     int32 plRankId = guild->GetRank(GUID_LOPART(plGuid)); 
    318     if(plRankId == -1) 
    319     { 
    320         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
    321         return; 
    322     } 
    323     if(plRankId < 2 || (plRankId-1) < GetPlayer()->GetRank()) 
    324         return; 
    325  
    326     uint32 newRankId = plRankId < guild->GetNrRanks() ? plRankId-1 : guild->GetNrRanks()-1; 
     313    if(slot->RankId < 2 || (slot->RankId-1) < GetPlayer()->GetRank()) 
     314        return; 
     315 
     316    uint32 newRankId = slot->RankId < guild->GetNrRanks() ? slot->RankId-1 : guild->GetNrRanks()-1; 
    327317 
    328318    guild->ChangeRank(plGuid, newRankId); 
     
    366356    } 
    367357     
    368     uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
    369  
    370     if( !plGuid ) 
    371     { 
    372         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 
     358    uint64 plGuid; 
     359    MemberSlot* slot = guild->GetMemberSlot(plName, plGuid); 
     360 
     361    if (!slot) 
     362    { 
     363        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
    373364        return; 
    374365    } 
     
    380371    } 
    381372 
    382     int32 plRankId = guild->GetRank(GUID_LOPART(plGuid)); 
    383     if(plRankId == -1) 
    384     { 
    385         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 
    386         return; 
    387     } 
    388  
    389     if((plRankId+1) >= guild->GetNrRanks() || plRankId <= this->GetPlayer()->GetRank()) 
    390         return; 
    391  
    392     guild->ChangeRank(plGuid, (plRankId+1)); 
     373    if((slot->RankId+1) >= guild->GetNrRanks() || slot->RankId <= GetPlayer()->GetRank()) 
     374        return; 
     375 
     376    guild->ChangeRank(plGuid, (slot->RankId+1)); 
    393377    // Put record into guildlog 
    394     guild->LogGuildEvent(GUILD_EVENT_LOG_DEMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), (plRankId+1)); 
     378    guild->LogGuildEvent(GUILD_EVENT_LOG_DEMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), (slot->RankId+1)); 
    395379 
    396380    WorldPacket data(SMSG_GUILD_EVENT, (2+30));             // guess size 
     
    399383    data << GetPlayer()->GetName(); 
    400384    data << plName; 
    401     data << guild->GetRankName(plRankId+1); 
     385    data << guild->GetRankName(slot->RankId+1); 
    402386    guild->BroadcastPacket(&data); 
    403387} 
     
    498482    } 
    499483 
    500     uint64 newLeaderGUID = objmgr.GetPlayerGUIDByName(name); 
    501     if (!newLeaderGUID) 
    502     { 
    503         SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); 
    504         return; 
    505     } 
    506     if(!guild->IsMember(GUID_LOPART(newLeaderGUID))) 
     484    uint64 newLeaderGUID; 
     485    MemberSlot* slot = guild->GetMemberSlot(name, newLeaderGUID); 
     486 
     487    if (!slot) 
    507488    { 
    508489        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 
     
    584565    } 
    585566     
    586     uint64 plGuid = objmgr.GetPlayerGUIDByName(name); 
    587  
    588     if (!plGuid) 
    589     { 
    590         SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); 
    591         return; 
    592     } 
    593      
    594     if (!guild->IsMember(GUID_LOPART(plGuid))) 
     567    uint64 plGuid; 
     568    MemberSlot* slot = guild->GetMemberSlot(name, plGuid); 
     569 
     570    if (!slot) 
    595571    { 
    596572        SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 
     
    629605    } 
    630606     
    631     uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 
    632  
    633     if (!plGuid) 
    634     { 
    635         SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 
    636         return; 
    637     } 
     607    uint64 plGuid; 
     608    MemberSlot* slot = guild->GetMemberSlot(plName, plGuid); 
    638609     
    639     if (!guild->IsMember(GUID_LOPART(plGuid))) 
     610    if (!slot) 
    640611    { 
    641612        SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S);