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

[svn] * Added ACE for Linux and Windows (Thanks Derex for Linux part and partial Windows part)
* Updated to 6721 and 676
* Fixed TrinityScript? logo
* Version updated to 0.2.6721.676

Original author: Neo2003
Date: 2008-10-04 06:17:19-05:00

Files:
1 modified

Legend:

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

    r2 r6  
    3434#include "GameEvent.h" 
    3535#include "SpellMgr.h" 
     36#include "AccountMgr.h" 
    3637#include "WaypointManager.h" 
    3738#include "Util.h" 
     
    208209            result = WorldDatabase.PQuery( 
    209210                "SELECT guid, id, position_x, position_y, position_z, orientation, map, (POW(position_x - %f, 2) + POW(position_y - %f, 2) + POW(position_z - %f, 2)) AS order_ " 
    210                 "FROM gameobject,gameobject_template WHERE gameobject_template.entry = gameobject.id AND map = %i AND name "_LIKE_" '""%%%s%%""' ORDER BY order_ ASC LIMIT 1", 
     211                "FROM gameobject,gameobject_template WHERE gameobject_template.entry = gameobject.id AND map = %i AND name "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'")" ORDER BY order_ ASC LIMIT 1", 
    211212                pl->GetPositionX(), pl->GetPositionY(), pl->GetPositionZ(), pl->GetMapId(),name.c_str()); 
    212213        } 
     
    39473948    return false; 
    39483949} 
     3950 
     3951bool ChatHandler::HandleLookupPlayerIpCommand(const char* args) 
     3952{ 
     3953   
     3954    if(!*args) 
     3955        return false; 
     3956 
     3957    std::string ip = strtok((char*)args, " "); 
     3958    char* limit_str = strtok(NULL, " "); 
     3959    int32 limit = limit_str ? atoi(limit_str) : -1; 
     3960 
     3961    loginDatabase.escape_string(ip); 
     3962 
     3963    QueryResult* result = loginDatabase.PQuery("SELECT id,username FROM account WHERE last_ip = '%s'", ip.c_str()); 
     3964 
     3965    return LookupPlayerSearchCommand(result,limit); 
     3966} 
     3967 
     3968bool ChatHandler::HandleLookupPlayerAccountCommand(const char* args) 
     3969{ 
     3970    if(!*args) 
     3971        return false; 
     3972 
     3973    std::string account = strtok((char*)args, " "); 
     3974    char* limit_str = strtok(NULL, " "); 
     3975    int32 limit = limit_str ? atoi(limit_str) : -1; 
     3976 
     3977    if(!AccountMgr::normilizeString(account)) 
     3978        return false; 
     3979 
     3980    loginDatabase.escape_string(account); 
     3981 
     3982    QueryResult* result = loginDatabase.PQuery("SELECT id,username FROM account WHERE username = '%s'", account.c_str()); 
     3983 
     3984    return LookupPlayerSearchCommand(result,limit); 
     3985} 
     3986 
     3987bool ChatHandler::HandleLookupPlayerEmailCommand(const char* args) 
     3988{ 
     3989   
     3990    if(!*args) 
     3991        return false; 
     3992 
     3993    std::string email = strtok((char*)args, " "); 
     3994    char* limit_str = strtok(NULL, " "); 
     3995    int32 limit = limit_str ? atoi(limit_str) : -1; 
     3996 
     3997    loginDatabase.escape_string(email); 
     3998 
     3999    QueryResult* result = loginDatabase.PQuery("SELECT id,username FROM account WHERE email = '%s'", email.c_str()); 
     4000 
     4001    return LookupPlayerSearchCommand(result,limit); 
     4002} 
     4003 
     4004bool ChatHandler::LookupPlayerSearchCommand(QueryResult* result, int32 limit) 
     4005{ 
     4006    if(!result) 
     4007    { 
     4008        PSendSysMessage(LANG_NO_PLAYERS_FOUND); 
     4009        SetSentErrorMessage(true); 
     4010        return false; 
     4011    } 
     4012 
     4013    int i =0; 
     4014    do 
     4015    { 
     4016        Field* fields = result->Fetch(); 
     4017        uint32 acc_id = fields[0].GetUInt32(); 
     4018        std::string acc_name = fields[1].GetCppString(); 
     4019         
     4020        QueryResult* chars = CharacterDatabase.PQuery("SELECT guid,name FROM characters WHERE account = '%u'", acc_id); 
     4021        if(chars) 
     4022        { 
     4023            PSendSysMessage(LANG_LOOKUP_PLAYER_ACCOUNT,acc_name.c_str(),acc_id); 
     4024 
     4025            uint64 guid = 0; 
     4026            std::string name; 
     4027 
     4028            do 
     4029            { 
     4030                Field* charfields = chars->Fetch(); 
     4031                guid = charfields[0].GetUInt64(); 
     4032                name = charfields[1].GetCppString(); 
     4033 
     4034                PSendSysMessage(LANG_LOOKUP_PLAYER_CHARACTER,name.c_str(),guid); 
     4035                ++i; 
     4036 
     4037            } while( chars->NextRow() && ( limit == -1 || i < limit ) ); 
     4038 
     4039            delete chars; 
     4040        } 
     4041    } while(result->NextRow()); 
     4042 
     4043    delete result; 
     4044 
     4045    return true; 
     4046}