Restructure repository to include all source folders
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>
This commit is contained in:
145
Server/AdminTool/AdminToolClient/CharSkillEditDlg.cpp
Normal file
145
Server/AdminTool/AdminToolClient/CharSkillEditDlg.cpp
Normal file
@@ -0,0 +1,145 @@
|
||||
// CharSkillEditDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "CharSkillEditDlg.h"
|
||||
#include "CharSkillPage.h"
|
||||
#include "GlobalFunctions.h"
|
||||
#include "PacketManager.h"
|
||||
|
||||
#include <Skill/SkillMgr.h>
|
||||
#include <Character/ModifyCharacter.h>
|
||||
|
||||
// CCharSkillEditDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CCharSkillEditDlg, CDialog)
|
||||
CCharSkillEditDlg::CCharSkillEditDlg(unsigned char cDlgType, CWnd* pParent)
|
||||
: CDialog(CCharSkillEditDlg::IDD, pParent)
|
||||
, m_lpParent(pParent)
|
||||
, m_cDlgType(cDlgType)
|
||||
{
|
||||
}
|
||||
|
||||
CCharSkillEditDlg::~CCharSkillEditDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CCharSkillEditDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Control(pDX, IDC_SKILLLEVELEDIT, m_ctrlSkillLevelEdit);
|
||||
DDX_Text(pDX, IDC_CURRENT_SKILL_NAME, m_strSkillName);
|
||||
DDX_Text(pDX, IDC_CURRENT_SKILL_LV, m_cSkillLevel);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCharSkillEditDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_SKILLLV_EDIT, OnBnClickedSkillLVEdit)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CCharSkillEditDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
BOOL CCharSkillEditDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
CString strWindowText = _T("Don't use thjs dialog~ -_ -;");
|
||||
|
||||
if(m_cDlgType == SKILL_ADD)
|
||||
{
|
||||
strWindowText = GetLocalString("SKILL_ADD");
|
||||
}
|
||||
else if(m_cDlgType == SKILL_EDIT)
|
||||
{
|
||||
strWindowText = GetLocalString("SKILL_EDIT");
|
||||
}
|
||||
|
||||
CCharSkillPage* lpSkillPage = static_cast<CCharSkillPage*>(m_lpParent);
|
||||
|
||||
CModifyCharacter* lpCharacter = lpSkillPage->GetCharacter();
|
||||
SKILLSLOT& SkillSlot = lpSkillPage->GetLastSkill();
|
||||
|
||||
const Skill::ProtoType* lpPrototype =
|
||||
CSkillMgr::GetInstance().GetSkillProtoType(SkillSlot.SKILLINFO.wSkill);
|
||||
|
||||
if((NULL != lpPrototype) && (NULL != lpCharacter))
|
||||
{
|
||||
char cLockCount = SkillSlot.SKILLINFO.cLockCount;
|
||||
|
||||
if(cLockCount <= CSkillMgr::MAX_SKILL_LOCKCOUNT)
|
||||
{
|
||||
m_strSkillName.Format(_T("%s"), lpPrototype[cLockCount].m_SpriteInfo.m_szName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
short wSkillLevel = lpCharacter->GetSkillLevelEX(SkillSlot.SKILLINFO.wSkill, cLockCount);
|
||||
|
||||
if(-1 != wSkillLevel)
|
||||
{
|
||||
m_cSkillLevel = (unsigned char)wSkillLevel;
|
||||
m_ctrlSkillLevelEdit.SetCurSel((int)m_cSkillLevel);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_cSkillLevel = 0;
|
||||
m_ctrlSkillLevelEdit.SetCurSel(0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int nSkillLV = 0;
|
||||
if(0 == SkillSlot.SKILLINFO.cLockCount)
|
||||
{
|
||||
nSkillLV = 1;
|
||||
}
|
||||
|
||||
for(nSkillLV; nSkillLV <= CSkillMgr::MAX_SKILL_LEVEL; ++nSkillLV)
|
||||
{
|
||||
CString strSkillLevel;
|
||||
strSkillLevel.Format(_T("LV %d"), nSkillLV);
|
||||
m_ctrlSkillLevelEdit.AddString(strSkillLevel);
|
||||
}
|
||||
|
||||
UpdateData(false);
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_SKILLADDEDIT_01, "IDC_SKILLADDEDIT_01");
|
||||
SetWindowText(strWindowText);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CCharSkillEditDlg::OnBnClickedSkillLVEdit()
|
||||
{
|
||||
CCharSkillPage* lpSkillPage = (CCharSkillPage*)m_lpParent;
|
||||
CModifyCharacter* lpCharacter = lpSkillPage->GetCharacter();
|
||||
SKILLSLOT& SkillSlot = lpSkillPage->GetLastSkill();
|
||||
CCharSkillPage::SKILL_EDIT_MODE eSkillMode = lpSkillPage->GetMode();
|
||||
|
||||
int iSkillLevel = m_ctrlSkillLevelEdit.GetCurSel();
|
||||
|
||||
if(0 == SkillSlot.SKILLINFO.cLockCount)
|
||||
{
|
||||
++iSkillLevel; // 0<>ܰ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD>쿡<EFBFBD><ECBFA1> <20><EFBFBD><DEBA>ڽ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> + 1
|
||||
}
|
||||
|
||||
if((CCharSkillPage::MODE_EMPTY != eSkillMode) && (-1 != iSkillLevel))
|
||||
{
|
||||
SkillSlot.SKILLINFO.cSkillLevel = (char)iSkillLevel;
|
||||
|
||||
CPacketMgr::GetInstance()->SendPktSkillEdit(
|
||||
lpCharacter->GetUID(), lpCharacter->GetCID(), lpCharacter->GetServerGroup(),
|
||||
lpCharacter->GetClientKey(), SkillSlot.SKILLINFO.wSkill, (char)iSkillLevel,
|
||||
SkillSlot.SKILLINFO.cLockCount, lpSkillPage->GetMode());
|
||||
}
|
||||
|
||||
EndDialog(IDOK);
|
||||
}
|
||||
Reference in New Issue
Block a user