void CClientManager::UpdateHorseName(TPacketUpdateHorseName* data, CPeer* peer) { char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "REPLACE INTO horse_name VALUES(%u, '%s')", data->dwPlayerID, data->szHorseName); std::auto_ptr<SQLMsg> pmsg_insert(CDBManager::instance().DirectQuery(szQuery)); ForwardPacket(HEADER_DG_UPDATE_HORSE_NAME, data, sizeof(TPacketUpdateHorseName), 0, peer); }
void CClientManager::GuildAddMember(CPeer* peer, TPacketGDGuildAddMember * p) { CGuildManager::instance().TouchGuild(p->dwGuild); sys_log(0, "GuildAddMember %u %u", p->dwGuild, p->dwPID); char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "INSERT INTO guild_member%s VALUES(%u, %u, %d, 0, 0)", GetTablePostfix(), p->dwPID, p->dwGuild, p->bGrade); std::auto_ptr<SQLMsg> pmsg_insert(CDBManager::instance().DirectQuery(szQuery)); snprintf(szQuery, sizeof(szQuery), "SELECT pid, grade, is_general, offer, level, job, name FROM guild_member%s, player%s WHERE guild_id = %u and pid = id and pid = %u", GetTablePostfix(), GetTablePostfix(), p->dwGuild, p->dwPID); std::auto_ptr<SQLMsg> pmsg(CDBManager::instance().DirectQuery(szQuery)); if (pmsg->Get()->uiNumRows == 0) { sys_err("Query failed when getting guild member data %s", pmsg->stQuery.c_str()); return; } MYSQL_ROW row = mysql_fetch_row(pmsg->Get()->pSQLResult); if (!row[0] || !row[1]) return; TPacketDGGuildMember dg; dg.dwGuild = p->dwGuild; str_to_number(dg.dwPID, row[0]); str_to_number(dg.bGrade, row[1]); str_to_number(dg.isGeneral, row[2]); str_to_number(dg.dwOffer, row[3]); str_to_number(dg.bLevel, row[4]); str_to_number(dg.bJob, row[5]); strlcpymt(dg.szName, row[6], sizeof(dg.szName)); ForwardPacket(HEADER_DG_GUILD_ADD_MEMBER, &dg, sizeof(TPacketDGGuildMember)); }