📄 chrguild.cpp
字号:
// ChrGuild.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "ChrGuild.h"
#include "CharacterView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChrGuild dialog
CChrGuild::CChrGuild(CWnd* pParent /*=NULL*/)
: CDialog(CChrGuild::IDD, pParent)
{
//{{AFX_DATA_INIT(CChrGuild)
m_nGuildHead = 0;
m_nKing = 0;
m_nGuildCode = 0;
m_nOperator = 0;
m_nReporter = 0;
m_nUn3 = 0;
m_nUn4 = 0;
m_nUn6 = 0;
//}}AFX_DATA_INIT
}
void CChrGuild::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChrGuild)
DDX_Text(pDX, IDC_GUILDHEAD, m_nGuildHead);
DDX_Text(pDX, IDC_KING, m_nKing);
DDX_Text(pDX, IDC_GUILDCODE, m_nGuildCode);
DDX_Text(pDX, IDC_OPERATOR, m_nOperator);
DDX_Text(pDX, IDC_REPORTER, m_nReporter);
DDX_Text(pDX, IDC_UN3, m_nUn3);
DDX_Text(pDX, IDC_UN4, m_nUn4);
DDX_Text(pDX, IDC_UN6, m_nUn6);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChrGuild, CDialog)
//{{AFX_MSG_MAP(CChrGuild)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_BATTLE_SKILL_SAVE, OnBattleSkillSave)
ON_BN_CLICKED(IDC_BATTLESKILL_RESET, OnBattleskillReset)
ON_BN_CLICKED(IDC_BATTLESKILL_CLEAR, OnBattleskillClear)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChrGuild message handlers
BOOL CChrGuild::OnInitDialog()
{
CDialog::OnInitDialog();
m_pApp = (CRMToolApp*)AfxGetApp();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CChrGuild::OnSave()
{
// TODO: Add your control notification handler code here
if( !RIGHT(MASK_22) ) return;
if( MessageBox( "Do you want to Save Guild Datas?", "Save", MB_YESNO) != IDYES) return;
CCharacterView* pView = (CCharacterView*)GetParent();
UpdateData();
//pView->m_ChrInfo.nation.guild_code = m_nGuildCode;
pView->m_dwGuildCode = m_nGuildCode; //Changed Guild Code 030324
//::MessageBoxPrintf( MB_OK, "鞘靛 %d, 历厘%d", m_nGuildCode , pView->m_dwGuildCode);
pView->m_ChrInfo.nation.guild_master = m_nGuildHead;
pView->m_ChrInfo.nation.king = m_nKing;
pView->m_ChrInfo.nation.counselor = m_nOperator;
pView->m_ChrInfo.nation.reporter = m_nReporter;
pView->m_ChrInfo.nation.ultra_nk3 = m_nUn3;
pView->m_ChrInfo.nation.ultra_nk4 = m_nUn4;
pView->m_ChrInfo.nation.ultra_nk6 = m_nUn6;
//历厘窍扁
char szQuery[ 1024 ];
WCHAR wszQuery[ 1024 ];
sprintf(szQuery, "Update chr_info set nation=? where [name]='%s'",pView->m_szCurCharName);
int nColumn = 1;
DWORD dwParamOffset = 0;
DBBINDING* pBinding = g_pDb->CreateParamInfo( (BYTE)nColumn); if(!pBinding) { MessageBox("Failed CreateParamInfo"); return; }
pBinding[0].obValue = dwParamOffset;
pBinding[0].cbMaxLen = sizeof(pView->m_ChrInfo.nation);
pBinding[0].wType = DBTYPE_I4;
dwParamOffset += sizeof(pView->m_ChrInfo.nation);
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->ExecuteSQLByParam(wszQuery, pBinding, &pView->m_ChrInfo.nation, (BYTE)nColumn, (BYTE)CON);
if(!ret) //ret==0
{
MessageBox("Have no Charater!");
return;
}
else if(ret < 0)
{
MessageBox("fail to update chr_info_binary!");
return;
}
g_pDb->ReleaseParamInfo(pBinding, (BYTE)CON);
#ifndef OLD_GUILD_CODE // 030331
// if( pView->CHANGE_LIMITED_RESET_FORGUILD <= pView->m_ChrInfo.reset )
// {//reset蔼捞 矩朝 蔼捞搁 扁粮 辨靛内靛蔼阑 荤侩茄促.
sprintf(szQuery,"update chr_info set spritvalue = %d where [name]='%s'", pView->m_dwGuildCode, pView->m_szCurCharName);
g_pDb->KSCToUnicode(szQuery, wszQuery);
ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)CON);
sprintf(szQuery,"EXEC UP_RM_GUILD_MEMBER_LIST %d,%d,%s ", pView->m_dwGuildCode, m_nOperator, pView->m_szCurCharName);
g_pDb->KSCToUnicode(szQuery, wszQuery);
ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)CON);
if(ret < 0)
{
MessageBox("Query failed on EXEC UP_RM_GUILD_MEMBER_LIST!");
}
// }
#endif
//for ExtensionLog
WriteLog_Guild(); // 021130
#ifdef RM_LOG_MODE
CString str; str.Format("CChrGuild :: Saved guild/etc info(%s)",pView->m_szCurCharName);
m_pApp->LogChar(pView->m_nCurServerSet, str);
#endif
}
void CChrGuild::RefreshData()
{
CCharacterView* pView = (CCharacterView*)GetParent();
//Changed GuildCode // 030324
if( pView->CHANGE_LIMITED_RESET_FORGUILD > pView->m_ChrInfo.reset )
{//reset蔼捞 矩朝 蔼捞搁 扁粮 辨靛内靛蔼阑 荤侩茄促.
m_nGuildCode = pView->m_ChrInfo.nation.guild_code;
}
else
m_nGuildCode = pView->m_dwGuildCode;
#ifdef OLD_GUILD_CODE // 030331
m_nGuildCode = pView->m_ChrInfo.nation.guild_code;
#endif
m_nGuildHead = pView->m_ChrInfo.nation.guild_master;
m_nKing = pView->m_ChrInfo.nation.king;
m_nOperator = pView->m_ChrInfo.nation.counselor;
m_nReporter = pView->m_ChrInfo.nation.reporter;
m_nUn3 = pView->m_ChrInfo.nation.ultra_nk3;
m_nUn4 = pView->m_ChrInfo.nation.ultra_nk4;
m_nUn6 = pView->m_ChrInfo.nation.ultra_nk6;
static int edit_id[] = {
IDC_EDIT1 , IDC_EDIT2 , IDC_EDIT3 , IDC_EDIT4 , IDC_EDIT5 , IDC_EDIT6,
IDC_EDIT7 , IDC_EDIT8 , IDC_EDIT9 , IDC_EDIT10, IDC_EDIT11, IDC_EDIT12,
IDC_EDIT13, IDC_EDIT14, IDC_EDIT15, IDC_EDIT16, IDC_EDIT17, IDC_EDIT18,
IDC_EDIT19, IDC_EDIT20, IDC_EDIT21, IDC_EDIT22, IDC_EDIT23, IDC_EDIT24,
IDC_EDIT25, IDC_EDIT26, IDC_EDIT27, IDC_EDIT28, IDC_EDIT29, IDC_EDIT30,
IDC_EDIT31, IDC_EDIT32, IDC_EDIT33, IDC_EDIT34, IDC_EDIT35, IDC_EDIT36,
};
CString temp;
for( int i=0; i<36; i++ )
{
temp.Format( "%d", pView->m_ChrInfoEtc.skill[115+i] );
SetDlgItemText( edit_id[i], temp );
}
//Reserverd point
//int iReserved = (int)(pView->m_ChrInfo.guildname[ 16 ]);
int iReserved = pView->m_ChrInfo.guildname[ 16 ];
//ConvertLoad(
//char蔼捞骨肺 0捞 历厘登瘤 臼绰促. 弊贰辑 历厘且锭 +1阑 秦辑 历厘秦蝶.
//弊矾虐 锭巩俊 阂矾甸老锭 -1阑 茄促.
//_ASSERTE( iReserved > 0 );
_ASSERTE( NULL != temp.GetBuffer(0) );
//iReserved--;
temp.Format( "%d", iReserved );
SetDlgItemText( IDC_RESERVED_WARPOINT, temp );
UpdateData(FALSE);
}
void CChrGuild::BattlePointSave()
{
CCharacterView* pView = (CCharacterView*)GetParent();
static int edit_id[] = {
IDC_EDIT1 , IDC_EDIT2 , IDC_EDIT3 , IDC_EDIT4 , IDC_EDIT5 , IDC_EDIT6,
IDC_EDIT7 , IDC_EDIT8 , IDC_EDIT9 , IDC_EDIT10, IDC_EDIT11, IDC_EDIT12,
IDC_EDIT13, IDC_EDIT14, IDC_EDIT15, IDC_EDIT16, IDC_EDIT17, IDC_EDIT18,
IDC_EDIT19, IDC_EDIT20, IDC_EDIT21, IDC_EDIT22, IDC_EDIT23, IDC_EDIT24,
IDC_EDIT25, IDC_EDIT26, IDC_EDIT27, IDC_EDIT28, IDC_EDIT29, IDC_EDIT30,
IDC_EDIT31, IDC_EDIT32, IDC_EDIT33, IDC_EDIT34, IDC_EDIT35, IDC_EDIT36,
};
UpdateData(1);
char temp[5];
int value;
for( int i=0; i<36; i++ )
{
GetDlgItemText( edit_id[i], temp, 5);
value = atoi( temp );
pView->m_ChrInfoEtc.skill[115+i] = (BYTE)value;
}
BYTE pNewData[200];
int size = sizeof(BYTE)*200;
memcpy(pNewData, &pView->m_ChrInfoEtc.skill, size);
//Update 巩
char szQuery[ 1024 ];
WCHAR wszQuery[ 1024 ];
sprintf(szQuery, "Update chr_info set skill=? "
"where [name]='%s'",pView->m_szCurCharName);
int nColumn = 1;
DBBINDING* pBinding = g_pDb->CreateParamInfo( (BYTE)nColumn, (BYTE)CON);
if(!pBinding) { MessageBox("Failed CreateParamInfo"); return; }
pBinding[0].obValue = 0;
pBinding[0].cbMaxLen = size;
pBinding[0].wType = DBTYPE_BYTES;
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->ExecuteSQLByParam(wszQuery, pBinding, pNewData, (BYTE)nColumn, (BYTE)CON);
if(!ret)
{
MessageBox("Have no User!");
return;
}
else if(ret < 0)
{
MessageBox("fail to update chr_info_binary!");
return;
}
g_pDb->ReleaseParamInfo(pBinding, (BYTE)CON);
}
void CChrGuild::BattleReservedPointSave()
{
CCharacterView* pView = (CCharacterView*)GetParent();
CString temp;
GetDlgItemText( IDC_RESERVED_WARPOINT, temp);
int iReserved = atoi( temp.GetBuffer( 0 ) );
//char iReserved = temp.GetBuffer( 0 );
//iReserved ++; //char俊 历厘窍绰单 0阑 持栏搁 救登聪瘪.. +1茄促.
pView->m_ChrInfo.guildname[ 16 ] = (BYTE)iReserved;
//Update 巩
char szQuery[ 1024 ];
WCHAR wszQuery[ 1024 ];
int ret;
DBBINDING* pBinding;
//蔼阑 历厘茄促.
switch(g_iNation)
{
case NATION_JAPAN:
{
wchar_t pNewData[20];
pView->ConvertSave((char*)pView->m_ChrInfo.guildname, sizeof(pView->m_ChrInfo.guildname));
int isize = sizeof( pNewData);
//::WideCharToMultiByte(CP_ACP, 0,pView->m_ChrInfo.guildname, -1,pNewData, 100, NULL, NULL);
//wsprintf( pNewData, "%s", pView->m_ChrInfo.guildname);
g_pDb->KSCToUnicode( pView->m_ChrInfo.guildname, pNewData);
sprintf(szQuery, "Update chr_info set guildname=? "
"where [name]='%s'",pView->m_szCurCharName);
int nColumn = 1;
pBinding = g_pDb->CreateParamInfo( (BYTE)nColumn, (BYTE)CON);
if(!pBinding) { MessageBox("Failed CreateParamInfo"); return; }
pBinding[0].obValue = 0;
pBinding[0].cbMaxLen = isize;
pBinding[0].wType = DBTYPE_BYTES;
g_pDb->KSCToUnicode(szQuery,wszQuery);
//pView->ConvertSave((char*)pView->m_ChrInfo.guildname, sizeof(pView->m_ChrInfo.guildname));
ret = g_pDb->ExecuteSQLByParam(wszQuery, pBinding, pNewData, (BYTE)nColumn, (BYTE)CON);
break;
}
default:
{
BYTE pNewData[20];
int isize = sizeof( pView->m_ChrInfo.guildname ); //Siev绰 20;
pView->ConvertSave((char*)pView->m_ChrInfo.guildname, sizeof(pView->m_ChrInfo.guildname));
memcpy(pNewData, &pView->m_ChrInfo.guildname, isize);
sprintf(szQuery, "Update chr_info set guildname=? "
"where [name]='%s'",pView->m_szCurCharName);
int nColumn = 1;
pBinding = g_pDb->CreateParamInfo( (BYTE)nColumn, (BYTE)CON);
if(!pBinding) { MessageBox("Failed CreateParamInfo"); return; }
pBinding[0].obValue = 0;
pBinding[0].cbMaxLen = isize;
pBinding[0].wType = DBTYPE_BYTES;
g_pDb->KSCToUnicode(szQuery,wszQuery);
//pView->ConvertSave((char*)pView->m_ChrInfo.guildname, sizeof(pView->m_ChrInfo.guildname));
ret = g_pDb->ExecuteSQLByParam(wszQuery, pBinding, pNewData, (BYTE)nColumn, (BYTE)CON);
break;
}
}
if(!ret)
{
MessageBox("Have no User!");
return;
}
else if(ret < 0)
{
MessageBox("fail to update chr_info_binary!");
return;
}
g_pDb->ReleaseParamInfo(pBinding, (BYTE)CON);
}
void CChrGuild::OnBattleSkillSave()
{
//鼻茄 眉农
if( !RIGHT(MASK_23) ) return;
if( MessageBox( "Do you want to Save Combat Skill?", "Save", MB_YESNO) != IDYES) return;
BattlePointSave();
BattleReservedPointSave();
//for ExtensionLog
WriteLog_BattleSkill();
}
void CChrGuild::OnBattleskillReset()
{
// TODO: Add your control notification handler code here
CString temp;
GetDlgItemText( IDC_RESERVED_WARPOINT, temp);
int iReserved = atoi( temp.GetBuffer( 0 ) ); //巢篮 傈捧胶懦蔼
int iWritedPoint = ClearBattlePoint(); //敬 傈捧胶瓶蔼
CString szAfterReset;
szAfterReset.Format( "%d", iReserved+iWritedPoint );
SetDlgItemText( IDC_RESERVED_WARPOINT, szAfterReset );
}
void CChrGuild::OnBattleskillClear()
{
// TODO: Add your control notification handler code here
ClearBattlePoint();
}
int CChrGuild::ClearBattlePoint()
{
int edit_id[] = {
IDC_EDIT1 , IDC_EDIT2 , IDC_EDIT3 , IDC_EDIT4 , IDC_EDIT5 , IDC_EDIT6,
IDC_EDIT7 , IDC_EDIT8 , IDC_EDIT9 , IDC_EDIT10, IDC_EDIT11, IDC_EDIT12,
IDC_EDIT13, IDC_EDIT14, IDC_EDIT15, IDC_EDIT16, IDC_EDIT17, IDC_EDIT18,
IDC_EDIT19, IDC_EDIT20, IDC_EDIT21, IDC_EDIT22, IDC_EDIT23, IDC_EDIT24,
IDC_EDIT25, IDC_EDIT26, IDC_EDIT27, IDC_EDIT28, IDC_EDIT29, IDC_EDIT30,
IDC_EDIT31, IDC_EDIT32, IDC_EDIT33, IDC_EDIT34, IDC_EDIT35, IDC_EDIT36,
};
int iReserved = 0;
CString szPoint;
for( int i=0; i < 36; i++)
{
GetDlgItemText( edit_id[i], szPoint );
iReserved += atoi( szPoint.GetBuffer(0) );
SetDlgItemText( edit_id[i], "0" );
}
return iReserved;
}
void CChrGuild::WriteLog_Guild()
{
CCharacterView *pView = (CCharacterView*)GetParent();
if( pView->m_pcLogMgr == NULL)
{
MessageBoxPrintf( MB_OK, "NULL CLogMgr In Guild" );
return;
}
pView->m_pcLogMgr->CheckChrGuildInfo( pView->m_ChrInfo, pView->m_dwGuildCode ); //货肺 官诧郴侩捞 乐栏搁 肺弊巢变促.
pView->m_pcLogMgr->SetChrInfo( pView->m_ChrInfo ); //官诧吧肺 update茄促
pView->m_pcLogMgr->SetGuildCode( pView->m_dwGuildCode );
}
void CChrGuild::WriteLog_BattleSkill()
{
CCharacterView *pView = (CCharacterView*)GetParent();
if( pView->m_pcLogMgr == NULL)
{
MessageBoxPrintf( MB_OK, "NULL CLogMgr In Guild" );
return;
}
pView->m_pcLogMgr->CheckChrBattleSkill( pView->m_ChrInfoEtc ); //傈捧胶懦
pView->m_pcLogMgr->SetChrInfo_BattleSkill( pView->m_ChrInfoEtc);
//CString temp;
//GetDlgItemText( IDC_RESERVED_WARPOINT, temp);
//int iReserved = atoi( temp.GetBuffer( 0 ) );
pView->m_pcLogMgr->CheckChrBattleReserved( ((int)pView->m_ChrInfo.guildname[16]-1) ); //抗距器牢飘 捞芭尔 谍芭 -1捞たぉし 厚背づ
//pView->m_pcLogMgr->CheckChrBattleReserved( iReserved ); //抗距器牢飘
//pView->m_pcLogMgr->SetChrInfo_ReservedPoint( pView->m_ChrInfo.guildname[16] );
pView->m_pcLogMgr->SetChrInfo( pView->m_ChrInfo );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -