Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
129 lines
6.9 KiB
C++
129 lines
6.9 KiB
C++
#ifndef _RYL_ADMIN_MGR_DB_H_
|
|
#define _RYL_ADMIN_MGR_DB_H_
|
|
|
|
#include <RylServerLibrary/DB/DBComponent.h>
|
|
|
|
// 쿼리 모음
|
|
namespace QUERYZ
|
|
{
|
|
const char LoginInfo[] = "SELECT uid, strAdminID, strPasswd, strLevel, strName, strIP, CONVERT(varchar(11),dateRegit,102) FROM TblToolAdmin WHERE strAdminID = '%s'";
|
|
const char NewAdminAck[] = "SELECT strAdminID, strName, strIP, convert(varchar(11),dateRegit,102), strLevel FROM TblToolAdmin WHERE strAdminID='%s'";
|
|
const char LoginList[] = "SELECT LogID, CONVERT( varchar(20), Login, 120 ), CONVERT(varchar(20), Logout, 120 ), UseIP FROM TblLog WHERE UID=%d" ;
|
|
const char DetailLog[] = "SELECT DetailLogID, CONVERT(varchar(20), UpdateDate, 120), UpdateType FROM TblDetailLog WHERE LogID=%d" ;
|
|
const char ExitLog[] = "SELECT UseMsg FROM TblLog WHERE LogID = %d";
|
|
const char AdminList[] = "SELECT strAdminID, strName, strIP, CONVERT(varchar(11),dateRegit,102), strLevel FROM TblToolAdmin" ;
|
|
const char InsertDetailLog[] = "INSERT INTO TblDetailLog(LogID, UpdateType, Before, After) VALUES(%d, %d, '%s', '%s')";
|
|
const char BeforeAfter[] = "SELECT Before, After FROM TblDetailLog WHERE DetailLogID=%d" ;
|
|
const char GetLevel[] = "SELECT strLevel FROM TblToolAdmin WHERE strAdminID='%s'" ;
|
|
const char GetIP[] = "SELECT strIP FROM TblToolAdmin WHERE strAdminID='%s'" ;
|
|
const char GetPassword[] = "SELECT strPasswd FROM TblToolAdmin WHERE strAdminID='%s'" ;
|
|
const char GetDelHistory[] = "SELECT intCID, intUID, NewServerGroupID, OldServerGroupID, CONVERT(varchar(20), dateInsertTime, 120), CONVERT(varchar(20), dateDeleteTime, 120), Name, CAST(Level as INT), Gold FROM TblCharDelHistory JOIN CharInfo ON TblCharDelHistory.intCID = CharInfo.CID WHERE %s=%d AND NewServerGroupID = %u";
|
|
const char GetGuildInfo[] = "SELECT A.nGuildID, CAST(OldServerGroupID AS INT), strGuildName, CAST(tnGuildLevel AS INT), nGuildFame, nGuildGold, CAST(tnNationType as INT) FROM TblGuildInfo A JOIN TblGuildMember B ON A.nGuildID =B.nGuildID %s GROUP BY A.nGuildID, CAST(OldServerGroupID AS INT), strGuildName, CAST(tnGuildLevel as INT), nGuildFame, nGuildGold, CAST(tnNationType as INT)";
|
|
const char GetFortInfo[] = "SELECT A.nCampID, A.nGuildID, B.strGuildName, A.nHP, A.tnZone, A.tnChannel, A.snObjectType, A.tnState, A.tnSubState, A.tnUpgradeStep,"
|
|
"CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), A.fPosX, A.fPosY, A.fPosZ, A.tnMaterial, A.tnSiegeCount, A.bRight "
|
|
"FROM TblCampInfo A INNER JOIN TblGuildInfo B ON A.nGuildID = B.nGuildID %s"
|
|
"GROUP BY A.nCampID, A.nGuildID, B.strGuildName, A.nHP, A.tnZone, A.tnChannel, A.snObjectType,A.tnState, A.tnSubState, A.tnUpgradeStep,"
|
|
"CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), A.bRight, A.fPosX, A.fPosY, A.fPosZ, A.tnMaterial, A.tnSiegeCount";
|
|
const char GetMiningCamp[] = "SELECT * FROM TblCampMineralInfo %s";
|
|
const char GetShopCamp[] = "SELECT * FROM TblCampShopInfo %s";
|
|
const char GetCastleInfo[] = "SELECT * FROM TblCastleInfo %s";
|
|
const char GetCastleCreatureInfo[] = "SELECT nCreatureID, nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, "
|
|
"CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), fPosX, fPosY, fPosZ FROM TblCastleCreatureInfo %s";
|
|
const char GetGuildMemberList[] = "SELECT nGuildID, nCID, nPosition, nPositionInGuild, CONVERT(varchar(20), tLeaveGuildTime, 120), Name, CAST(Level as INT), Fame, Class, Gold FROM TblGuildMember JOIN CharInfo ON TblGuildMember.nCID = CharInfo.CID WHERE nGuildID = %s";
|
|
const char GetGuildRestoreData[] = "SELECT nGuildID, strGuildName, nGuildGold, CONVERT(varchar(20), tDeleteTime, 120) FROM TblGuildRestoreData";
|
|
// edith 2009.08.14 관심유저 버그수정 (ROW_Activity DB사용)
|
|
const char GetUserBillingLog[] = "SELECT strClientid, UID, CAST(tinyServerID AS INT), CONVERT(VARCHAR(20), FirstLoginTime, 120), CONVERT(VARCHAR(20), LogoutTime, 120), CAST(strIP AS VARCHAR(16)) FROM TblCurrentUser WHERE %s ORDER BY FirstLoginTime";
|
|
// const char GetUserBillingLog[] = "SELECT strClientid, UID, CAST(tinyServerID AS INT), CONVERT(VARCHAR(20), FirstLoginTime, 120), CONVERT(VARCHAR(20), LogoutTime, 120), CAST(strIP AS VARCHAR(16)) FROM TblCurrentUser_Log WHERE %s ORDER BY FirstLoginTime";
|
|
};
|
|
|
|
// 단순 참조용
|
|
namespace PktAdminMgr
|
|
{
|
|
struct PktNewAdmin;
|
|
struct PktUpdateLevel;
|
|
struct PktUpdateIP;
|
|
struct PktUpdatePasswd;
|
|
struct PktAddBlockUser;
|
|
struct PktDelBlockUser;
|
|
struct PktInterestedUser;
|
|
struct PktGMLogMsg;
|
|
};
|
|
|
|
/*!
|
|
\class CDBAdminTool
|
|
운영툴 데이터 베이스
|
|
*/
|
|
class CDBAdminTool : public CDBComponent
|
|
{
|
|
public:
|
|
#pragma pack(1)
|
|
// 관리자 아이템 창고정보
|
|
struct StoreInfo
|
|
{
|
|
enum TYPE
|
|
{
|
|
MAX_OWNER = 20,
|
|
MAX_ITEM_NAME = 32
|
|
};
|
|
|
|
unsigned char cServer;
|
|
unsigned char szOwner[MAX_OWNER];
|
|
unsigned char szItemName[MAX_ITEM_NAME];
|
|
};
|
|
|
|
// 관리자 아이템 창고정보
|
|
struct ItemInfo
|
|
{
|
|
enum TYPE
|
|
{
|
|
MAX_ITEM_ATTRIB = 90,
|
|
};
|
|
|
|
unsigned long dwLength;
|
|
char ItemAttrib[MAX_ITEM_ATTRIB];
|
|
};
|
|
#pragma pack()
|
|
|
|
public:
|
|
|
|
static CDBAdminTool& GetInstance();
|
|
|
|
bool ConnectAdminToolDB(); // SQL서버 접속
|
|
|
|
BYTE Login(char* szAccount, char* szPassword); // 로그인
|
|
BYTE CheckIP(char* AdminID, char* szIP); // 아이피 체크
|
|
bool AccountCheck(char* AdminID); // 중복여부 검사
|
|
BYTE NewAdmin(PktAdminMgr::PktNewAdmin* NewAdmin); // 새로운 계정 생성
|
|
bool DelAdmin(char* AdminID); // 계정 삭제
|
|
bool UpdateLevel(PktAdminMgr::PktUpdateLevel* UpdateLev); // 계정 등급 변경
|
|
bool UpdateIP(PktAdminMgr::PktUpdateIP* UpdateIP); // 계정 접속 IP변경
|
|
bool UpdatePasswd(PktAdminMgr::PktUpdatePasswd* UpdatePwd); // 계정 패스워드 변경
|
|
bool GetDate(char* DateTime); // 시간을 가져온다
|
|
bool StartupLog(unsigned int UID, char* UseIP); // 로그인함과 동시에 호출. 기본 셋팅
|
|
bool EndLog(unsigned int UID); // 로그아웃 정보 기록
|
|
int GetMyUID(char* szAccount); // 해당계정의 UID를 가져온다
|
|
int GetNowLogID(unsigned int UID); // 현재 사용중인 TblLog의 LogID를 가져온다
|
|
bool UpdateLogoutDate(int LogID, char* szDate); // 로그아웃한 날짜와 시간
|
|
bool UpdateExitLog(unsigned int LogID, char* szExitLog); // 사용사유 업데이트
|
|
bool UpdateZoneList(unsigned int UID, char* In_Data); // 존 정보 저장
|
|
bool GetZoneList(unsigned int UID, char* Out_Data); // 존 정보 가져오기
|
|
|
|
// 블럭
|
|
bool AddBlockUser(PktAdminMgr::PktAddBlockUser* lpBlock, char* lpAdminName, char* szClientID); // 블럭
|
|
bool DelBlockUser(PktAdminMgr::PktDelBlockUser* lpDelBlock); // 블럭 해제
|
|
|
|
// GM 로그 메세지 남기기
|
|
bool IsExistLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg);
|
|
bool InsertGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg, char* szAdminID);
|
|
bool UpdateGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg, char* szAdminID);
|
|
bool DeleteGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg);
|
|
|
|
private:
|
|
|
|
CDBAdminTool() { ;}
|
|
virtual ~CDBAdminTool() { ;}
|
|
|
|
char m_szQry[MAX_QUERY_LENGTH];
|
|
};
|
|
|
|
#endif |