- Katılım
- 6 May 2016
- Konular
- 1
- Mesajlar
- 65
- Çözüm
- 1
- Online süresi
- 3d 10h
- Reaksiyon Skoru
- 2
- Altın Konu
- 0
- TM Yaşı
- 10 Yıl 1 Ay 3 Gün
- Başarım Puanı
- 64
- MmoLira
- 570
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Hey Turkmmo!
pls help mee thanx
Kod:
/*
* PLAYER LOAD
*/
void CClientManager::QUERY_PLAYER_LOAD(CPeer * peer, DWORD dwHandle, TPlayerLoadPacket * packet)
{
CPlayerTableCache * c;
TPlayerTable * pTab;
//
// 한 계정에 속한 모든 캐릭터들 캐쉬처리
//
CLoginData * pLoginData = GetLoginDataByAID(packet->account_id);
if (pLoginData)
{
for (int n = 0; n < PLAYER_PER_ACCOUNT; ++n)
if (pLoginData->GetAccountRef().players[n].dwID != 0)
DeleteLogoutPlayer(pLoginData->GetAccountRef().players[n].dwID);
}
//----------------------------------------------------------------
// 1. 유저정보가 DBCache 에 존재 : DBCache에서
// 2. 유저정보가 DBCache 에 없음 : DB에서
// ---------------------------------------------------------------
//----------------------------------
// 1. 유저정보가 DBCache 에 존재 : DBCache에서
//----------------------------------
if ((c = GetPlayerCache(packet->player_id)))
{
CLoginData * pkLD = GetLoginDataByAID(packet->account_id);
if (!pkLD || pkLD->IsPlay())
{
sys_log(0, "PLAYER_LOAD_ERROR: LoginData %p IsPlay %d", pkLD, pkLD ? pkLD->IsPlay() : 0);
peer->EncodeHeader(HEADER_DG_PLAYER_LOAD_FAILED, dwHandle, 0);
return;
}
pTab = c->Get();
pkLD->SetPlay(true);
SendLoginToBilling(pkLD, true);
thecore_memcpy(pTab->aiPremiumTimes, pkLD->GetPremiumPtr(), sizeof(pTab->aiPremiumTimes));
peer->EncodeHeader(HEADER_DG_PLAYER_LOAD_SUCCESS, dwHandle, sizeof(TPlayerTable));
peer->Encode(pTab, sizeof(TPlayerTable));
if (packet->player_id != pkLD->GetLastPlayerID())
{
TPacketNeedLoginLogInfo logInfo;
logInfo.dwPlayerID = packet->player_id;
pkLD->SetLastPlayerID( packet->player_id );
peer->EncodeHeader( HEADER_DG_NEED_LOGIN_LOG, dwHandle, sizeof(TPacketNeedLoginLogInfo) );
peer->Encode( &logInfo, sizeof(TPacketNeedLoginLogInfo) );
}
char szQuery[1024] = { 0, };
TItemCacheSet * pSet = GetItemCacheSet(pTab->id);
sys_log(0, "[PLAYER_LOAD] ID %s pid %d gold %d ", pTab->name, pTab->id, pTab->gold);
//--------------------------------------------
// 아이템 & AFFECT & QUEST 로딩 :
//--------------------------------------------
// 1) 아이템이 DBCache 에 존재 : DBCache 에서 가져옴
// 2) 아이템이 DBCache 에 없음 : DB 에서 가져옴
/////////////////////////////////////////////
// 1) 아이템이 DBCache 에 존재 : DBCache 에서 가져옴
/////////////////////////////////////////////
if (pSet)
{
static std::vector<TPlayerItem> s_items;
s_items.resize(pSet->size());
DWORD dwCount = 0;
TItemCacheSet::iterator it = pSet->begin();
while (it != pSet->end())
{
CItemCache * c = *it++;
TPlayerItem * p = c->Get();
if (p->vnum) // vnum이 없으면 삭제된 아이템이다.
thecore_memcpy(&s_items[dwCount++], p, sizeof(TPlayerItem));
}
if (g_test_server)
sys_log(0, "ITEM_CACHE: HIT! %s count: %u", pTab->name, dwCount);
peer->EncodeHeader(HEADER_DG_ITEM_LOAD, dwHandle, sizeof(DWORD) + sizeof(TPlayerItem) * dwCount);
peer->EncodeDWORD(dwCount);
if (dwCount)
peer->Encode(&s_items[0], sizeof(TPlayerItem) * dwCount);
// Quest
snprintf(szQuery, sizeof(szQuery),
"SELECT dwPID,szName,szState,lValue FROM quest%s WHERE dwPID=%d AND lValue<>0",
GetTablePostfix(), pTab->id);
CDBManager::instance().ReturnQuery(szQuery, QID_QUEST, peer->GetHandle(), new ClientHandleInfo(dwHandle,0,packet->account_id));
// Affect
snprintf(szQuery, sizeof(szQuery),
"SELECT dwPID,bType,bApplyOn,lApplyValue,dwFlag,lDuration,lSPCost FROM affect%s WHERE dwPID=%d",
GetTablePostfix(), pTab->id);
CDBManager::instance().ReturnQuery(szQuery, QID_AFFECT, peer->GetHandle(), new ClientHandleInfo(dwHandle));
}
/////////////////////////////////////////////
// 2) 아이템이 DBCache 에 없음 : DB 에서 가져옴
/////////////////////////////////////////////
else
{
snprintf(szQuery, sizeof(szQuery),
"SELECT id,window+0,pos,count,vnum,transmutation,bind,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
"FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)",
GetTablePostfix(), pTab->id, SAFEBOX, DRAGON_SOUL_INVENTORY);
CDBManager::instance().ReturnQuery(szQuery,
QID_ITEM,
peer->GetHandle(),
new ClientHandleInfo(dwHandle, pTab->id));
snprintf(szQuery, sizeof(szQuery),
"SELECT dwPID, szName, szState, lValue FROM quest%s WHERE dwPID=%d",
GetTablePostfix(), pTab->id);
CDBManager::instance().ReturnQuery(szQuery,
QID_QUEST,
peer->GetHandle(),
new ClientHandleInfo(dwHandle, pTab->id));
snprintf(szQuery, sizeof(szQuery),
"SELECT dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost FROM affect%s WHERE dwPID=%d",
GetTablePostfix(), pTab->id);
CDBManager::instance().ReturnQuery(szQuery,
QID_AFFECT,
peer->GetHandle(),
new ClientHandleInfo(dwHandle, pTab->id));
}
//ljw
//return;
}
//----------------------------------
// 2. 유저정보가 DBCache 에 없음 : DB에서
//----------------------------------
else
{
sys_log(0, "[PLAYER_LOAD] Load from PlayerDB pid[%d]", packet->player_id);
char queryStr[QUERY_MAX_LEN];
//--------------------------------------------------------------
// 캐릭터 정보 얻어오기 : 무조건 DB에서
//--------------------------------------------------------------
snprintf(queryStr, sizeof(queryStr),
"SELECT "
"id, "
"name, "
"job, "
"voice, "
"dir, "
"x, "
"y, "
"z, "
"map_index, "
"exit_x, "
"exit_y, "
"exit_map_index, "
"hp, "
"mp, "
"stamina, "
"random_hp, "
"random_sp, "
"playtime, "
"gold, "
"level, "
"level_step, "
"st, "
"ht, "
"dx, "
"iq, "
"exp, "
"stat_point, "
"skill_point, "
"sub_skill_point, "
"stat_reset_count, "
"part_base, "
"part_hair, "
#ifdef __SASH_SYSTEM__
"part_sash, "
#endif
"skill_level, "
"quickslot, "
"skill_group, "
"alignment, "
"mobile, "
"horse_level, "
"horse_riding, "
"horse_hp, "
"horse_hp_droptime, "
"horse_stamina, "
"horse_skill_point, "
"UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(last_play), "
#ifdef __GAYA__
"gaya, "
#endif
#ifdef ENABLE_CHEQUE_SYSTEM
"cheque, "
#endif
#ifdef ENABLE_EXTEND_INVEN_SYSTEM
"envanter, "
#endif
#ifdef __ENABLE_BATTLE_FIELD__
"battle_points, "
#endif
"FROM player%s WHERE id=%d"
,
GetTablePostfix(),
packet->player_id
);
ClientHandleInfo * pkInfo = new ClientHandleInfo(dwHandle, packet->player_id);
pkInfo->account_id = packet->account_id;
CDBManager::instance().ReturnQuery(queryStr, QID_PLAYER, peer->GetHandle(), pkInfo);
//--------------------------------------------------------------
// 아이템 가져오기
//--------------------------------------------------------------
snprintf(queryStr, sizeof(queryStr),
"SELECT id,window+0,pos,count,vnum,transmutation,bind,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
"FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)",
GetTablePostfix(), packet->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY);
CDBManager::instance().ReturnQuery(queryStr, QID_ITEM, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id));
//--------------------------------------------------------------
// QUEST 가져오기
//--------------------------------------------------------------
snprintf(queryStr, sizeof(queryStr),
"SELECT dwPID,szName,szState,lValue FROM quest%s WHERE dwPID=%d",
GetTablePostfix(), packet->player_id);
CDBManager::instance().ReturnQuery(queryStr, QID_QUEST, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id,packet->account_id));
//독일 선물 기능에서 item_award테이블에서 login 정보를 얻기위해 account id도 넘겨준다
//--------------------------------------------------------------
// AFFECT 가져오기
//--------------------------------------------------------------
snprintf(queryStr, sizeof(queryStr),
"SELECT dwPID,bType,bApplyOn,lApplyValue,dwFlag,lDuration,lSPCost FROM affect%s WHERE dwPID=%d",
GetTablePostfix(), packet->player_id);
CDBManager::instance().ReturnQuery(queryStr, QID_AFFECT, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id));
}
}
Kod:
SYSERR: Dec 29 17:54:54.725868 :: ChildLoop: AsyncSQL: query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=1' at line 1 (query: SELECT id, name, job, voice, dir, x, y, z, map_index, exit_x, exit_y, exit_map_index, hp, mp, stamina, random_hp, random_sp, playtime, gold, level, level_step, st, ht, dx, iq, exp, stat_point, skill_point, sub_skill_point, stat_reset_count, part_base, part_hair, part_sash, skill_level, quickslot, skill_group, alignment, mobile, horse_level, horse_riding, horse_hp, horse_hp_droptime, horse_stamina, horse_skill_point, UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(last_play), gaya, cheque, envanter, battle_pointsFROM player WHERE id=1 errno: 1064)
SYSERR: Dec 29 17:54:54.825500 :: RESULT_COMPOSITE_PLAYER: null MYSQL_RES QID 0
pls help mee thanx
- Katılım
- 6 May 2016
- Konular
- 1
- Mesajlar
- 65
- Çözüm
- 1
- Online süresi
- 3d 10h
- Reaksiyon Skoru
- 2
- Altın Konu
- 0
- TM Yaşı
- 10 Yıl 1 Ay 3 Gün
- Başarım Puanı
- 64
- MmoLira
- 570
- DevLira
- 0
köszi a segitséget.....
- Katılım
- 21 Eki 2018
- Konular
- 78
- Mesajlar
- 2,354
- Çözüm
- 12
- Reaksiyon Skoru
- 854
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 7 Ay 21 Gün
- Başarım Puanı
- 182
- MmoLira
- 346
- DevLira
- -221
Teşekkürler
- Katılım
- 23 Eki 2018
- Konular
- 30
- Mesajlar
- 212
- Çözüm
- 11
- Online süresi
- 5d 2h
- Reaksiyon Skoru
- 18
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 7 Ay 19 Gün
- Başarım Puanı
- 87
- Yaş
- 23
- MmoLira
- 980
- DevLira
- 0
I have a simple problem
Kod:
SYSERR: Jul 2 07:18:40 :: ChildLoop: AsyncSQL: query failed: Unknown column 'battle_points' in 'field list' (query: SELECT id, name, job, voice, dir, x, y, z, map_index, exit_x, exit_y, exit_map_index, hp, mp, stamina, random_hp, random_sp, playtime, gold, battle_points,cheque, level, level_step, st, ht, dx, iq, exp, stat_point, skill_point, sub_skill_point, stat_reset_count, part_base, part_hair, part_sash, skill_level, quickslot, skill_group, alignment, mobile, horse_level, horse_riding, horse_hp, horse_hp_droptime, horse_stamina, UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(last_play), horse_skill_point ,gaya ,envanter FROM player WHERE id=19 errno: 1054)
SYSERR: Jul 2 07:18:40 :: RESULT_COMPOSITE_PLAYER: null MYSQL_RES QID 0
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
- Katılım
- 29 Eyl 2009
- Konular
- 1,298
- Mesajlar
- 18,700
- Çözüm
- 203
- Online süresi
- 7mo 19h
- Reaksiyon Skoru
- 9,275
- Altın Konu
- 377
- Başarım Puanı
- 426
- Yaş
- 32
- MmoLira
- 51,348
- DevLira
- 74
probably you made a mistake at clientmanagerplayer.cpp. you forgot to add "battle_points" field i guess.I have a simple problem
Kod:SYSERR: Jul 2 07:18:40 :: ChildLoop: AsyncSQL: query failed: Unknown column 'battle_points' in 'field list' (query: SELECT id, name, job, voice, dir, x, y, z, map_index, exit_x, exit_y, exit_map_index, hp, mp, stamina, random_hp, random_sp, playtime, gold, battle_points,cheque, level, level_step, st, ht, dx, iq, exp, stat_point, skill_point, sub_skill_point, stat_reset_count, part_base, part_hair, part_sash, skill_level, quickslot, skill_group, alignment, mobile, horse_level, horse_riding, horse_hp, horse_hp_droptime, horse_stamina, UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(last_play), horse_skill_point ,gaya ,envanter FROM player WHERE id=19 errno: 1054) SYSERR: Jul 2 07:18:40 :: RESULT_COMPOSITE_PLAYER: null MYSQL_RES QID 0
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 516
- Cevaplar
- 16
- Görüntüleme
- 3K
- Cevaplar
- 14
- Görüntüleme
- 798
- Cevaplar
- 19
- Görüntüleme
- 2K
- Cevaplar
- 8
- Görüntüleme
- 690







