Show
Ignore:
Timestamp:
11/22/08 00:35:41 (17 years ago)
Author:
yumileroy
Message:

Delete possessed AI only on creature delete.

Original author: gvcoman
Date: 2008-11-16 14:38:02-05:00

Files:
1 modified

Legend:

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

    r262 r272  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
    1919 */ 
    2020 
     
    6565    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADGROUP,           "SELECT leaderGuid FROM group_member WHERE memberGuid ='%u'", GUID_LOPART(m_guid)); 
    6666    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES,  "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    67     res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS,           "SELECT caster_guid,spell,effect_index,stackcount,amount,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'", GUID_LOPART(m_guid)); 
     67    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS,           "SELECT caster_guid,spell,effect_index,amount,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    6868    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADSPELLS,          "SELECT spell,slot,active,disabled FROM character_spell WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    6969    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADQUESTSTATUS,     "SELECT quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4 FROM character_queststatus WHERE guid = '%u'", GUID_LOPART(m_guid)); 
     
    181181    std::string name; 
    182182    uint8 race_,class_; 
    183  
    184183    recv_data >> name; 
    185184 
     
    216215    ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(class_); 
    217216    ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(race_); 
    218  
    219217    if( !classEntry || !raceEntry ) 
    220218    { 
     
    610608    } 
    611609 
    612     if (!pCurrChar->GetMap()->Add(pCurrChar)) 
     610    if (!MapManager::Instance().GetMap(pCurrChar->GetMapId(), pCurrChar)->Add(pCurrChar)) 
    613611    { 
    614612        AreaTrigger const* at = objmgr.GetGoBackTrigger(pCurrChar->GetMapId()); 
     
    10021000    uint64 guid; 
    10031001 
    1004     CHECK_PACKET_SIZE(recv_data, 8); 
     1002    CHECK_PACKET_SIZE(recv_data, 8+6); 
    10051003    recv_data >> guid; 
    10061004 
    10071005    // not accept declined names for unsupported languages 
    10081006    std::string name; 
    1009     if(!objmgr.GetPlayerNameByGUID(guid, name)) 
    1010     { 
    1011         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1012         data << uint32(1); 
    1013         data << uint64(guid); 
     1007    if(!objmgr.GetPlayerNameByGUID(guid,name)) 
     1008    { 
     1009        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1010        data << (uint32)1; 
     1011        data << guid; 
    10141012        SendPacket(&data); 
    10151013        return; 
     
    10171015 
    10181016    std::wstring wname; 
    1019     if(!Utf8toWStr(name, wname)) 
    1020     { 
    1021         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1022         data << uint32(1); 
    1023         data << uint64(guid); 
     1017    if(!Utf8toWStr(name,wname)) 
     1018    { 
     1019        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1020        data << (uint32)1; 
     1021        data << guid; 
    10241022        SendPacket(&data); 
    10251023        return; 
     
    10281026    if(!isCyrillicCharacter(wname[0]))                      // name already stored as only single alphabet using 
    10291027    { 
    1030         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1031         data << uint32(1); 
    1032         data << uint64(guid); 
     1028        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1029        data << (uint32)1; 
     1030        data << guid; 
    10331031        SendPacket(&data); 
    10341032        return; 
     
    10381036    DeclinedName declinedname; 
    10391037 
    1040     CHECK_PACKET_SIZE(recv_data, recv_data.rpos() + 1); 
    10411038    recv_data >> name2; 
    10421039 
    1043     if(name2 != name)                                       // character have different name 
    1044     { 
    1045         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1046         data << uint32(1); 
    1047         data << uint64(guid); 
     1040    if(name2!=name)                                         // character have different name 
     1041    { 
     1042        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1043        data << (uint32)1; 
     1044        data << guid; 
    10481045        SendPacket(&data); 
    10491046        return; 
     
    10521049    for(int i = 0; i < MAX_DECLINED_NAME_CASES; ++i) 
    10531050    { 
    1054         CHECK_PACKET_SIZE(recv_data, recv_data.rpos() + 1); 
    10551051        recv_data >> declinedname.name[i]; 
    10561052        if(!normalizePlayerName(declinedname.name[i])) 
    10571053        { 
    1058             WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1059             data << uint32(1); 
    1060             data << uint64(guid); 
     1054            WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1055            data << (uint32)1; 
     1056            data << guid; 
    10611057            SendPacket(&data); 
    10621058            return; 
     
    10641060    } 
    10651061 
    1066     if(!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname, 0), declinedname)) 
    1067     { 
    1068         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1069         data << uint32(1); 
    1070         data << uint64(guid); 
     1062    if(!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname,0),declinedname)) 
     1063    { 
     1064        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1065        data << (uint32)1; 
     1066        data << guid; 
    10711067        SendPacket(&data); 
    10721068        return; 
     
    10791075    CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid = '%u'", GUID_LOPART(guid)); 
    10801076    CharacterDatabase.PExecute("INSERT INTO character_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES ('%u','%s','%s','%s','%s','%s')", 
    1081         GUID_LOPART(guid), declinedname.name[0].c_str(), declinedname.name[1].c_str(), declinedname.name[2].c_str(), declinedname.name[3].c_str(), declinedname.name[4].c_str()); 
     1077        GUID_LOPART(guid), declinedname.name[0].c_str(),declinedname.name[1].c_str(),declinedname.name[2].c_str(),declinedname.name[3].c_str(),declinedname.name[4].c_str()); 
    10821078    CharacterDatabase.CommitTransaction(); 
    10831079 
    1084     WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
    1085     data << uint32(0);                                      // OK 
    1086     data << uint64(guid); 
     1080    WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
     1081    data << (uint32)0;                                      // OK 
     1082    data << guid; 
    10871083    SendPacket(&data); 
    10881084}