DragonNest/GameCommon/DnMechanicModeBlow.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

137 lines
No EOL
3.1 KiB
C++

#include "StdAfx.h"
#include "DnMechanicModeBlow.h"
#ifdef _CLIENT
#include "DnInterface.h"
#include "EtUIDialogGroup.h"
#include "DnQuickSlotDlg.h"
#include "SmartPtrDef.h"
#include "DnMainDlg.h"
#include "DnItemTask.h"
#endif
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#endif
CDnMechanicModeBlow::CDnMechanicModeBlow(DnActorHandle hActor, const char* szValue) : CDnBlow(hActor)
{
m_StateBlow.emBlowIndex = STATE_BLOW::BLOW_345;
SetValue(szValue);
DNVector(std::string) m_pVecSkill;
TokenizeA(szValue, m_pVecSkill, ";");
for (DWORD i = 0; i < m_pVecSkill.size();i++)
{
m_pVecFindSkills.push_back(atoi(m_pVecSkill[i].c_str()));
i++;
m_pVecNewSkills.push_back(atoi(m_pVecSkill[i].c_str()));
}
}
CDnMechanicModeBlow::~CDnMechanicModeBlow(void)
{
}
void CDnMechanicModeBlow::OnBegin(LOCAL_TIME LocalTime, float fDelta)
{
OutputDebug("CDnMechanicModeBlow::OnBegin");
OutputDebug("%s elements: %d", __FUNCTION__, m_pVecFindSkills.size());
#ifdef _CLIENT
CDnMainDlg *pMainBarDlg = GetInterface().GetMainBarDialog();
if (pMainBarDlg)
{
CEtUIDialogGroup *pQuickSlotDlgGroup = pMainBarDlg->GetQuickSlotDialogGroup();
if (pQuickSlotDlgGroup)
{
for(int i=0;i<2;i++)//tab 1+2
{
CDnQuickSlotDlg *pEventQuickSlotDlg = static_cast<CDnQuickSlotDlg*>(pQuickSlotDlgGroup->GetDialog(i));
for (DWORD i = 0; i<m_pVecFindSkills.size(); i++)
{
int nSlot = pEventQuickSlotDlg->FindSkillQuickSlotIndexAndReplace(m_pVecFindSkills[i], m_pVecNewSkills[i]);
}
}
}
}
#endif
}
void CDnMechanicModeBlow::Process(LOCAL_TIME LocalTime, float fDelta)
{
CDnBlow::Process(LocalTime, fDelta);
}
void CDnMechanicModeBlow::OnEnd(LOCAL_TIME LocalTime, float fDelta)
{
OutputDebug("CDnMechanicModeBlow::OnEnd");
#ifdef _CLIENT
CDnMainDlg *pMainBarDlg = GetInterface().GetMainBarDialog();
if (pMainBarDlg)
{
CEtUIDialogGroup *pQuickSlotDlgGroup = pMainBarDlg->GetQuickSlotDialogGroup();
if (pQuickSlotDlgGroup)
{
for (int i = 0; i<2; i++)//tab 1+2
{
CDnQuickSlotDlg *pEventQuickSlotDlg = static_cast<CDnQuickSlotDlg*>(pQuickSlotDlgGroup->GetDialog(i));
for (DWORD i = 0; i<m_pVecFindSkills.size(); i++)
{
int nSlot = pEventQuickSlotDlg->FindSkillQuickSlotIndexAndReplace(m_pVecNewSkills[i], m_pVecFindSkills[i], true);
}
}
}
}
#endif
}
#if defined(PRE_ADD_PREFIX_SYSTE_RENEW)
void CDnMechanicModeBlow::AddStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue)
{
char szBuff[128] = { 0, };
szNewValue = szOrigValue;
}
void CDnMechanicModeBlow::RemoveStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue)
{
char szBuff[128] = { 0, };
szNewValue = szOrigValue;
}
#endif // PRE_ADD_PREFIX_SYSTE_RENEW
bool CDnMechanicModeBlow::CanUseSkill(int nSkillID)
{
for (DWORD i = 0; i < m_pVecNewSkills.size(); i++)
{
if (m_pVecNewSkills[i] == nSkillID)
return true;
}
return false;
}
int CDnMechanicModeBlow::GetReplaceSkill(int nSkillID)
{
for (DWORD i = 0; i < m_pVecFindSkills.size(); i++)
{
if (m_pVecFindSkills[i] == nSkillID)
return m_pVecNewSkills[i];
}
return 0;
}