forked from metin2/server
1
0
Fork 0

revert name change removal

This commit is contained in:
Tr0n 2024-04-09 17:25:39 +02:00
parent 254f6f6664
commit cf66bb3310
No known key found for this signature in database
1 changed files with 58 additions and 1 deletions

View File

@ -2063,7 +2063,64 @@ teleport_area:
// 3: 이미 같은 이름이 사용중
// 4: 성공
// 5: 해당 기능 지원하지 않음
lua_pushnumber(L, 5);
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
if ( ch->GetNewName().size() != 0 )
{
lua_pushnumber(L, 0);
return 1;
}
if ( lua_isstring(L, 1) != true )
{
lua_pushnumber(L, 1);
return 1;
}
const char * szName = lua_tostring(L, 1);
if ( check_name(szName) == false )
{
lua_pushnumber(L, 2);
return 1;
}
char szQuery[1024];
snprintf(szQuery, sizeof(szQuery), "SELECT COUNT(*) FROM player%s WHERE name='%s'", get_table_postfix(), szName);
std::unique_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery(szQuery));
if ( pmsg->Get()->uiNumRows > 0 )
{
MYSQL_ROW row = mysql_fetch_row(pmsg->Get()->pSQLResult);
int count = 0;
str_to_number(count, row[0]);
// 이미 해당 이름을 가진 캐릭터가 있음
if ( count != 0 )
{
lua_pushnumber(L, 3);
return 1;
}
}
DWORD pid = ch->GetPlayerID();
db_clientdesc->DBPacketHeader(HEADER_GD_FLUSH_CACHE, 0, sizeof(DWORD));
db_clientdesc->Packet(&pid, sizeof(DWORD));
/* delete messenger list */
MessengerManager::instance().RemoveAllList(ch->GetName());
/* change_name_log */
LogManager::instance().ChangeNameLog(pid, ch->GetName(), szName, ch->GetDesc()->GetHostName());
snprintf(szQuery, sizeof(szQuery), "UPDATE player%s SET name='%s' WHERE id=%u", get_table_postfix(), szName, pid);
SQLMsg * msg = DBManager::instance().DirectQuery(szQuery);
M2_DELETE(msg);
ch->SetNewName(szName);
lua_pushnumber(L, 4);
return 1;
}