From 8e61158d69f512342c58ebc84763842ab9f7cd44 Mon Sep 17 00:00:00 2001 From: Tahsin Date: Fri, 19 Jul 2024 23:28:25 +0200 Subject: [PATCH 1/6] Overlapped texts fix UISkillTreeDlg.cpp --- src/game/UISkillTreeDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index 63c5fab7..e629b258 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -1617,7 +1617,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr CN3UIBase * pBase = NULL; CN3UIButton * pButton = NULL; for (int i = 0; i < 4; i++) { - pBase = GetChildBaseByName(std::format("img_{}{}", szFN, i)); + pBase = GetChildBaseByName(std::format("img_{}_{}", szFN, i)); if (pBase) { pBase->SetVisible(bTrueOrNot); } From 07a6d001bd13c943c6d0d7b53ce0fb1033ca8026 Mon Sep 17 00:00:00 2001 From: Tahsin Date: Fri, 19 Jul 2024 23:36:24 +0200 Subject: [PATCH 2/6] Fix overlapped mastery images UISkillTreeDlg.cpp Fix overlapped mastery images on top UISkillTreeDlg.cpp --- src/game/UISkillTreeDlg.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index e629b258..22b9f8bf 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -1617,7 +1617,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr CN3UIBase * pBase = NULL; CN3UIButton * pButton = NULL; for (int i = 0; i < 4; i++) { - pBase = GetChildBaseByName(std::format("img_{}_{}", szFN, i)); + pBase = GetChildBaseByName(std::format("img_{}{}", szFN, i)); if (pBase) { pBase->SetVisible(bTrueOrNot); } @@ -1646,6 +1646,10 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr AllClearImageByName("berserker", false); AllClearImageByName("sorcerer", false); AllClearImageByName("shaman", false); + AllClearImageByName("Shadow Knight", false); // Master Class + AllClearImageByName("Elemental Lord", false); // Master Class + AllClearImageByName("Shadow Bane", false); // Master Class + AllClearImageByName("Berserker Hero", false); // Master Class // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { @@ -1679,6 +1683,10 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr AllClearImageByName("blade", false); AllClearImageByName("mage", false); AllClearImageByName("cleric", false); + AllClearImageByName("Paladin", false); // Master Class + AllClearImageByName("Arc Mage", false); // Master Class + AllClearImageByName("kasar hood", false); // Master Class + AllClearImageByName("Blade Master", false); // Master Class // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { From b1818564f8ef874fecde2e386178151272fa0d46 Mon Sep 17 00:00:00 2001 From: Tahsin Date: Fri, 19 Jul 2024 23:40:29 +0200 Subject: [PATCH 3/6] Update UISkillTreeDlg.cpp --- src/game/UISkillTreeDlg.cpp | 146 ++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index 22b9f8bf..20c9e04e 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -29,9 +29,9 @@ ////////////////////////////////////////////////////////////////////// CUISkillTreeDlg::CUISkillTreeDlg() { - m_bOpenningNow = false; // ִ.. - m_bClosingNow = false; // ִ.. - m_fMoveDelta = 0.0f; // ε巴 ؼ ġ 꿡 εҼ .. + m_bOpenningNow = false; // 열리고 있다.. + m_bClosingNow = false; // 닫히고 있다.. + m_fMoveDelta = 0.0f; // 부드럽게 열리고 닫히게 만들기 위해서 현재위치 계산에 부동소수점을 쓴다.. m_iRBtnDownOffs = -1; m_iCurKindOf = 0; @@ -75,9 +75,9 @@ CUISkillTreeDlg::~CUISkillTreeDlg() { void CUISkillTreeDlg::Release() { CN3UIBase::Release(); - m_bOpenningNow = false; // ִ.. - m_bClosingNow = false; // ִ.. - m_fMoveDelta = 0.0f; // ε巴 ؼ ġ 꿡 εҼ .. + m_bOpenningNow = false; // 열리고 있다.. + m_bClosingNow = false; // 닫히고 있다.. + m_fMoveDelta = 0.0f; // 부드럽게 열리고 닫히게 만들기 위해서 현재위치 계산에 부동소수점을 쓴다.. for (int i = 0; i < MAX_SKILL_KIND_OF; i++) { for (int j = 0; j < MAX_SKILL_PAGE_NUM; j++) { @@ -131,7 +131,7 @@ void CUISkillTreeDlg::UpdateDisableCheck() { } void CUISkillTreeDlg::Tick() { - if (m_bOpenningNow) // ʿ ... Ѵٸ.. + if (m_bOpenningNow) // 오른쪽에서 왼쪽으로 스르륵...열려야 한다면.. { POINT ptCur = this->GetPos(); RECT rc = this->GetRegion(); @@ -146,14 +146,14 @@ void CUISkillTreeDlg::Tick() { int iXLimit = CN3Base::s_CameraData.vp.Width - (int)fWidth; ptCur.x = CN3Base::s_CameraData.vp.Width - (int)m_fMoveDelta; - if (ptCur.x <= iXLimit) // ٿȴ!! + if (ptCur.x <= iXLimit) // 다열렸다!! { ptCur.x = iXLimit; m_bOpenningNow = false; } this->SetPos(ptCur.x, ptCur.y); - } else if (m_bClosingNow) // ʿ ... Ѵٸ.. + } else if (m_bClosingNow) // 오른쪽에서 왼쪽으로 스르륵...열려야 한다면.. { POINT ptCur = this->GetPos(); RECT rc = this->GetRegion(); @@ -168,12 +168,12 @@ void CUISkillTreeDlg::Tick() { int iXLimit = CN3Base::s_CameraData.vp.Width; ptCur.x = CN3Base::s_CameraData.vp.Width - (int)(fWidth - m_fMoveDelta); - if (ptCur.x >= iXLimit) // ..!! + if (ptCur.x >= iXLimit) // 다 닫혔다..!! { ptCur.x = iXLimit; m_bClosingNow = false; - this->SetVisibleWithNoSound(false, false, true); // Ⱥ̰ Ѵ. + this->SetVisibleWithNoSound(false, false, true); // 다 닫혔으니 눈에서 안보이게 한다. } this->SetPos(ptCur.x, ptCur.y); @@ -188,13 +188,13 @@ DWORD CUISkillTreeDlg::MouseProc(DWORD dwFlags, const POINT & ptCur, const POINT dwRet |= CN3UIBase::MouseProc(dwFlags, ptCur, ptOld); return dwRet; } - // ʴ´.. + // 실제로 쓰진 않는다.. if (CN3UIWndBase::m_sRecoveryJobInfo.m_bWaitFromServer) { dwRet |= CN3UIBase::MouseProc(dwFlags, ptCur, ptOld); return dwRet; } - // 巡 Ǵ .. + // 드래그 되는 아이콘 갱신.. if (GetState() == UI_STATE_ICON_MOVING) { if (CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo) { CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo->pUIIcon->SetRegion(GetSampleRect()); @@ -314,7 +314,7 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { case UIMSG_ICON_RUP: { int iRBtn = GetIndexInArea(ptCur); if (iRBtn != -1 && m_iRBtnDownOffs != -1 && m_iRBtnDownOffs == iRBtn) { - //  ڸ ִ ˻.. + // 들어갈 자리가 있는지 검사.. CUIHotKeyDlg * pDlg = CGameProcedure::s_pProcMain->m_pUIHotKeyDlg; int iIndex; if (pDlg->GetEmptySlotIndex(iIndex)) { @@ -325,7 +325,7 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { spSkillCopy->pSkill = spSkill->pSkill; spSkillCopy->szIconFN = spSkill->szIconFN; - // εϱ.. ^^ + // 아이콘 로드하기.. ^^ spSkillCopy->pUIIcon = new CN3UIIcon; spSkillCopy->pUIIcon->Init(this); spSkillCopy->pUIIcon->SetTex(spSkill->szIconFN); @@ -354,12 +354,12 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { // Get Item.. spSkill = GetHighlightIconItem((CN3UIIcon *)pSender); - // 纻 .. + // 복사본을 만든다.. spSkillCopy = new __IconItemSkill(); spSkillCopy->pSkill = spSkill->pSkill; spSkillCopy->szIconFN = spSkill->szIconFN; - // εϱ.. ^^ + // 아이콘 로드하기.. ^^ spSkillCopy->pUIIcon = new CN3UIIcon; spSkillCopy->pUIIcon->Init(this); spSkillCopy->pUIIcon->SetTex(spSkill->szIconFN); @@ -390,18 +390,18 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { break; case UIMSG_ICON_UP: - // Hot Key 츦 ٴϸ鼭 ˻.. + // Hot Key 윈도우를 돌아 다니면서 검사.. { CUIHotKeyDlg * pDlg = CGameProcedure::s_pProcMain->m_pUIHotKeyDlg; if (!IsIn(ptCur.x, ptCur.y) && pDlg->IsIn(ptCur.x, ptCur.y)) { if (!pDlg->IsSelectedSkillInRealIconArea()) { - // ҽ Free.. + // 리소스 Free.. spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // Ŵ .. + // 매니저에서 제거.. RemoveChild(spSkill->pUIIcon); - // ҽ .. + // 리소스 제거.. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -410,13 +410,13 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { } } } else { - // ҽ Free.. + // 리소스 Free.. spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // Ŵ .. + // 매니저에서 제거.. RemoveChild(spSkill->pUIIcon); - // ҽ .. + // 리소스 제거.. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -460,7 +460,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { iCurKindOfBackup = m_iCurKindOf; iCurSkillPageBackup = m_iCurSkillPage; - int iSkillExtra; // ųâ .. + int iSkillExtra; // 스킬창의 값.. int iSkillPoint; std::string str; CN3UIString *pStrName = NULL, *pStrName2 = NULL; @@ -484,14 +484,14 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { return; } - // ¸.. ų ø .. + // 전직하지 않은 상태면.. 전문스킬은 올릴수 없다.. switch (iValue) { case 5: case 6: case 7: case 8: { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // ī罺.. + case NATION_KARUS: // 카루스.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_WARRIOR: case CLASS_KA_ROGUE: @@ -505,7 +505,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // .. + case NATION_ELMORAD: // 엘모라도.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_WARRIOR: case CLASS_EL_ROGUE: @@ -524,7 +524,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 8) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // ī罺.. + case NATION_KARUS: // 카루스.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_SORCERER: case CLASS_KA_HUNTER: @@ -537,7 +537,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // .. + case NATION_ELMORAD: // 엘모라도.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_MAGE: case CLASS_EL_RANGER: @@ -554,7 +554,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 7) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // ī罺.. + case NATION_KARUS: // 카루스.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_BERSERKER: { std::string szMsg; @@ -565,7 +565,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // .. + case NATION_ELMORAD: // 엘모라도.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_BLADE: { std::string szMsg; @@ -580,7 +580,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 6) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // ī罺.. + case NATION_KARUS: // 카루스.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_HUNTER: { std::string szMsg; @@ -591,7 +591,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // .. + case NATION_ELMORAD: // 엘모라도.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_RANGER: { std::string szMsg; @@ -649,7 +649,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { str = pStrName2->GetString(); iSkillPoint = atoi(str.c_str()); - // ڱ ڽ ϼ .. + // 자기 자신 레벨보다 높일수 없다.. if (iSkillPoint >= CGameBase::s_pPlayer->m_InfoBase.iLevel) { std::string szMsg; ::_LoadStringFromResource(IDS_SKILL_UP_INVALID, szMsg); @@ -657,14 +657,14 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { return; } - // .. Ʈ.. + // 써버에게 보내고.. 숫자 업데이트.. BYTE byBuff[4]; int iOffset = 0; CAPISocket::MP_AddByte(byBuff, iOffset, N3_SKILL_CHANGE); CAPISocket::MP_AddByte(byBuff, iOffset, (BYTE)iValue); CGameProcedure::s_pSocket->Send(byBuff, iOffset); - // ų Ʈ Ʈ.. + // 스킬 포인트 업데이트.. iSkillExtra--; pStrName->SetStringAsInt(iSkillExtra); m_iSkillInfo[0] = iSkillExtra; @@ -700,7 +700,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { break; } - switch (iValue) // ų Ʈ.. + switch (iValue) // 스킬 아이콘 업데이트.. { case 5: case 6: @@ -715,7 +715,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { void CUISkillTreeDlg::Render() { if (!m_bVisible) { - return; // ڽĵ render ʴ´. + return; // 보이지 않으면 자식들을 render하지 않는다. } __IconItemSkill * spSkill = NULL; @@ -1063,17 +1063,17 @@ void CUISkillTreeDlg::InitIconWnd(e_UIWND eWnd) { void CUISkillTreeDlg::InitIconUpdate() { __TABLE_UPC_SKILL * pUSkill = NULL; - // Ŭ.. + // 기존 아이콘 모두 클리어.. for (int i = 0; i < MAX_SKILL_KIND_OF; i++) { for (int j = 0; j < MAX_SKILL_PAGE_NUM; j++) { for (int k = 0; k < MAX_SKILL_IN_PAGE; k++) { if (m_pMySkillTree[i][j][k] != NULL) { __IconItemSkill * spSkill = m_pMySkillTree[i][j][k]; - // Ŵ .. + // 매니저에서 제거.. RemoveChild(spSkill->pUIIcon); - // ҽ .. + // 리소스 제거.. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -1085,7 +1085,7 @@ void CUISkillTreeDlg::InitIconUpdate() { } } - // ̵ = ڵ*1000 + 001.. ( ڵ+1)*100 + 001.. + // 아이디 = 직업 코드*1000 + 001부터.. (직업 코드+1)*100 + 001까지.. int iSkillIDFirst, iSkillIndexFirst, iSkillIndexLast, iModulo; iSkillIDFirst = CGameBase::s_pPlayer->m_InfoBase.eClass * 1000 + 1; iSkillIndexFirst = CGameBase::s_pTbl_Skill->IDToIndex(iSkillIDFirst); @@ -1093,7 +1093,7 @@ void CUISkillTreeDlg::InitIconUpdate() { if (iSkillIndexFirst == -1) { PageButtonInitialize(); - return; // ù° ų .. ȵȴ.. + return; // 첫번째 스킬이 없으면.. 안된다.. } if (CGameBase::s_pPlayer->m_InfoBase.eClass != CLASS_EL_DRUID) { @@ -1116,34 +1116,34 @@ void CUISkillTreeDlg::InitIconUpdate() { continue; } - // Ǵ ȮѴ.. + // 조건이 충족 되는지 확인한다.. iModulo = pUSkill->iNeedSkill % 10; switch (iModulo) { - case 0: // Base Skill.. ǴѴ.. - if (pUSkill->iNeedLevel <= CGameBase::s_pPlayer->m_InfoBase.iLevel) { // ų .. + case 0: // Base Skill.. 레벨 점보만으로 판단한다.. + if (pUSkill->iNeedLevel <= CGameBase::s_pPlayer->m_InfoBase.iLevel) { // 내 레벨보다 같거나 작으면.. AddSkillToPage(pUSkill); } break; - case 5: // Skill.. ٸ.. + case 5: // 전문 Skill.. 직업마다 다르다.. if (pUSkill->iNeedLevel <= m_iSkillInfo[5]) { AddSkillToPage(pUSkill, 1); } break; - case 6: // Skill.. ٸ.. + case 6: // 전문 Skill.. 직업마다 다르다.. if (pUSkill->iNeedLevel <= m_iSkillInfo[6]) { AddSkillToPage(pUSkill, 2); } break; - case 7: // Skill.. ٸ.. + case 7: // 전문 Skill.. 직업마다 다르다.. if (pUSkill->iNeedLevel <= m_iSkillInfo[7]) { AddSkillToPage(pUSkill, 3); } break; - case 8: // Skill.. ٸ.. + case 8: // 전문 Skill.. 직업마다 다르다.. if (pUSkill->iNeedLevel <= m_iSkillInfo[8]) { AddSkillToPage(pUSkill, 4); } @@ -1158,7 +1158,7 @@ void CUISkillTreeDlg::PageButtonInitialize() { SetPageInIconRegion(0, 0); SetPageInCharRegion(); - // .. m_iSkillInfo[MAX_SKILL_FROM_SERVER]; // ޴ .. + // 서버에게 받은 값으로 세팅.. m_iSkillInfo[MAX_SKILL_FROM_SERVER]; // 서버로 받는 슬롯 정보.. CN3UIString * pStrName = (CN3UIString *)GetChildByID("string_skillpoint"); __ASSERT(pStrName, "NULL UI Component!!"); pStrName->SetStringAsInt(m_iSkillInfo[0]); @@ -1417,7 +1417,7 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { int i, j; bool bFound = false; - // m_pMySkillTree[iOffset] ̵ ִ 캻.. + // m_pMySkillTree[iOffset]에 같은 아이디가 있는지 살펴본다.. for (i = 0; i < MAX_SKILL_PAGE_NUM; i++) { for (j = 0; j < MAX_SKILL_IN_PAGE; j++) { if (m_pMySkillTree[iOffset][i][j] != NULL) { @@ -1428,7 +1428,7 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { } } - // m_pMySkillTree[iOffset]  ִ 캻.. + // m_pMySkillTree[iOffset]에 들어갈 수 있는지 살펴본다.. for (i = 0; i < MAX_SKILL_PAGE_NUM; i++) { for (j = 0; j < MAX_SKILL_IN_PAGE; j++) { if (m_pMySkillTree[iOffset][i][j] == NULL) { @@ -1446,10 +1446,10 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { __IconItemSkill * spSkill = new __IconItemSkill(); spSkill->pSkill = pUSkill; - // ̸ .. ^^ + // 아이콘 이름 만들기.. ^^ spSkill->szIconFN = std::format("UI\\skillicon_{:02d}_{:d}.dxt", pUSkill->dwID % 100, pUSkill->dwID / 100); - // εϱ.. ^^ + // 아이콘 로드하기.. ^^ spSkill->pUIIcon = new CN3UIIcon; spSkill->pUIIcon->Init(this); spSkill->pUIIcon->SetTex(spSkill->szIconFN); @@ -1464,12 +1464,12 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { spSkill->pUIIcon->SetMoveRect(pArea->GetRegion()); } - // .. + // 아이콘 정보 저장.. m_pMySkillTree[iOffset][i][j] = spSkill; } void CUISkillTreeDlg::Open() { - // !! + // 스르륵 열린다!! SetVisible(true); this->SetPos(CN3Base::s_CameraData.vp.Width, 10); m_fMoveDelta = 0; @@ -1480,14 +1480,14 @@ void CUISkillTreeDlg::Open() { } void CUISkillTreeDlg::Close() { - // ҽ Free.. + // 리소스 Free.. __IconItemSkill * spSkill = NULL; spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // Ŵ .. + // 매니저에서 제거.. RemoveChild(spSkill->pUIIcon); - // ҽ .. + // 리소스 제거.. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -1498,8 +1498,8 @@ void CUISkillTreeDlg::Close() { SetState(UI_STATE_COMMON_NONE); CN3UIWndBase::AllHighLightIconFree(); - // ..!! - // SetVisible(false); // ش.. + // 스르륵 닫힌다..!! + // SetVisible(false); // 다 닫히고 나서 해준다.. RECT rc = this->GetRegion(); this->SetPos(CN3Base::s_CameraData.vp.Width - (rc.right - rc.left), 10); m_fMoveDelta = 0; @@ -1507,7 +1507,7 @@ void CUISkillTreeDlg::Close() { m_bClosingNow = true; if (m_pSnd_CloseUI) { - m_pSnd_CloseUI->Play(); // ݴ Ҹ.. + m_pSnd_CloseUI->Play(); // 닫는 소리.. } m_iRBtnDownOffs = -1; @@ -1551,7 +1551,7 @@ RECT CUISkillTreeDlg::GetSampleRect() { return rect; } -void CUISkillTreeDlg::SetPageInIconRegion(int iKindOf, int iPageNum) // .. +void CUISkillTreeDlg::SetPageInIconRegion(int iKindOf, int iPageNum) // 아이콘 역역에서 현재 페이지 설정.. { if ((iKindOf >= MAX_SKILL_KIND_OF) || (iPageNum >= MAX_SKILL_PAGE_NUM)) { return; @@ -1588,7 +1588,7 @@ RECT CUISkillTreeDlg::GetSampleRect() { } } - // ڿ Ʈ.. ų ų ̸ String̰.. ƴϸ Ⱥ̰.. + // 아이콘 설명 문자열 업데이트.. 현재 스킬 종류와 현재 스킬 페이지중 아이콘이 보이면 String보이게.. 아니면 안보이게.. CN3UIString * pStrName = NULL; for (int k = 0; k < MAX_SKILL_IN_PAGE; k++) { if (m_pMySkillTree[m_iCurKindOf][m_iCurSkillPage][k] != NULL) { @@ -1617,7 +1617,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr CN3UIBase * pBase = NULL; CN3UIButton * pButton = NULL; for (int i = 0; i < 4; i++) { - pBase = GetChildBaseByName(std::format("img_{}{}", szFN, i)); + pBase = GetChildBaseByName(std::format("img_{}_{}", szFN, i)); if (pBase) { pBase->SetVisible(bTrueOrNot); } @@ -1636,12 +1636,12 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr } } -void CUISkillTreeDlg::SetPageInCharRegion() // .. +void CUISkillTreeDlg::SetPageInCharRegion() // 문자 역역에서 현재 페이지 설정.. { AllClearImageByName("public", false); switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // ī罺.. + case NATION_KARUS: // 카루스.. AllClearImageByName("hunter", false); AllClearImageByName("berserker", false); AllClearImageByName("sorcerer", false); @@ -1651,7 +1651,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr AllClearImageByName("Shadow Bane", false); // Master Class AllClearImageByName("Berserker Hero", false); // Master Class - // .. + // 직업.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_WARRIOR: case CLASS_KA_ROGUE: @@ -1678,7 +1678,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr } break; - case NATION_ELMORAD: // .. + case NATION_ELMORAD: // 엘모라도.. AllClearImageByName("ranger", false); AllClearImageByName("blade", false); AllClearImageByName("mage", false); @@ -1688,7 +1688,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr AllClearImageByName("kasar hood", false); // Master Class AllClearImageByName("Blade Master", false); // Master Class - // .. + // 직업.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_WARRIOR: case CLASS_EL_ROGUE: @@ -1789,4 +1789,4 @@ void CUISkillTreeDlg::SetVisible(bool bVisible) { CGameProcedure::s_pUIMgr->ReFocusUI(); //this_ui } } -//this_ui_add_end \ No newline at end of file +//this_ui_add_end From dd2db85fa45622dd68e2600aab9b7d27e5665e5c Mon Sep 17 00:00:00 2001 From: Tahsin Date: Fri, 19 Jul 2024 23:44:16 +0200 Subject: [PATCH 4/6] Revert "Update UISkillTreeDlg.cpp" This reverts commit b1818564f8ef874fecde2e386178151272fa0d46. --- src/game/UISkillTreeDlg.cpp | 146 ++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index 20c9e04e..22b9f8bf 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -29,9 +29,9 @@ ////////////////////////////////////////////////////////////////////// CUISkillTreeDlg::CUISkillTreeDlg() { - m_bOpenningNow = false; // 열리고 있다.. - m_bClosingNow = false; // 닫히고 있다.. - m_fMoveDelta = 0.0f; // 부드럽게 열리고 닫히게 만들기 위해서 현재위치 계산에 부동소수점을 쓴다.. + m_bOpenningNow = false; // ִ.. + m_bClosingNow = false; // ִ.. + m_fMoveDelta = 0.0f; // ε巴 ؼ ġ 꿡 εҼ .. m_iRBtnDownOffs = -1; m_iCurKindOf = 0; @@ -75,9 +75,9 @@ CUISkillTreeDlg::~CUISkillTreeDlg() { void CUISkillTreeDlg::Release() { CN3UIBase::Release(); - m_bOpenningNow = false; // 열리고 있다.. - m_bClosingNow = false; // 닫히고 있다.. - m_fMoveDelta = 0.0f; // 부드럽게 열리고 닫히게 만들기 위해서 현재위치 계산에 부동소수점을 쓴다.. + m_bOpenningNow = false; // ִ.. + m_bClosingNow = false; // ִ.. + m_fMoveDelta = 0.0f; // ε巴 ؼ ġ 꿡 εҼ .. for (int i = 0; i < MAX_SKILL_KIND_OF; i++) { for (int j = 0; j < MAX_SKILL_PAGE_NUM; j++) { @@ -131,7 +131,7 @@ void CUISkillTreeDlg::UpdateDisableCheck() { } void CUISkillTreeDlg::Tick() { - if (m_bOpenningNow) // 오른쪽에서 왼쪽으로 스르륵...열려야 한다면.. + if (m_bOpenningNow) // ʿ ... Ѵٸ.. { POINT ptCur = this->GetPos(); RECT rc = this->GetRegion(); @@ -146,14 +146,14 @@ void CUISkillTreeDlg::Tick() { int iXLimit = CN3Base::s_CameraData.vp.Width - (int)fWidth; ptCur.x = CN3Base::s_CameraData.vp.Width - (int)m_fMoveDelta; - if (ptCur.x <= iXLimit) // 다열렸다!! + if (ptCur.x <= iXLimit) // ٿȴ!! { ptCur.x = iXLimit; m_bOpenningNow = false; } this->SetPos(ptCur.x, ptCur.y); - } else if (m_bClosingNow) // 오른쪽에서 왼쪽으로 스르륵...열려야 한다면.. + } else if (m_bClosingNow) // ʿ ... Ѵٸ.. { POINT ptCur = this->GetPos(); RECT rc = this->GetRegion(); @@ -168,12 +168,12 @@ void CUISkillTreeDlg::Tick() { int iXLimit = CN3Base::s_CameraData.vp.Width; ptCur.x = CN3Base::s_CameraData.vp.Width - (int)(fWidth - m_fMoveDelta); - if (ptCur.x >= iXLimit) // 다 닫혔다..!! + if (ptCur.x >= iXLimit) // ..!! { ptCur.x = iXLimit; m_bClosingNow = false; - this->SetVisibleWithNoSound(false, false, true); // 다 닫혔으니 눈에서 안보이게 한다. + this->SetVisibleWithNoSound(false, false, true); // Ⱥ̰ Ѵ. } this->SetPos(ptCur.x, ptCur.y); @@ -188,13 +188,13 @@ DWORD CUISkillTreeDlg::MouseProc(DWORD dwFlags, const POINT & ptCur, const POINT dwRet |= CN3UIBase::MouseProc(dwFlags, ptCur, ptOld); return dwRet; } - // 실제로 쓰진 않는다.. + // ʴ´.. if (CN3UIWndBase::m_sRecoveryJobInfo.m_bWaitFromServer) { dwRet |= CN3UIBase::MouseProc(dwFlags, ptCur, ptOld); return dwRet; } - // 드래그 되는 아이콘 갱신.. + // 巡 Ǵ .. if (GetState() == UI_STATE_ICON_MOVING) { if (CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo) { CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo->pUIIcon->SetRegion(GetSampleRect()); @@ -314,7 +314,7 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { case UIMSG_ICON_RUP: { int iRBtn = GetIndexInArea(ptCur); if (iRBtn != -1 && m_iRBtnDownOffs != -1 && m_iRBtnDownOffs == iRBtn) { - // 들어갈 자리가 있는지 검사.. + //  ڸ ִ ˻.. CUIHotKeyDlg * pDlg = CGameProcedure::s_pProcMain->m_pUIHotKeyDlg; int iIndex; if (pDlg->GetEmptySlotIndex(iIndex)) { @@ -325,7 +325,7 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { spSkillCopy->pSkill = spSkill->pSkill; spSkillCopy->szIconFN = spSkill->szIconFN; - // 아이콘 로드하기.. ^^ + // εϱ.. ^^ spSkillCopy->pUIIcon = new CN3UIIcon; spSkillCopy->pUIIcon->Init(this); spSkillCopy->pUIIcon->SetTex(spSkill->szIconFN); @@ -354,12 +354,12 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { // Get Item.. spSkill = GetHighlightIconItem((CN3UIIcon *)pSender); - // 복사본을 만든다.. + // 纻 .. spSkillCopy = new __IconItemSkill(); spSkillCopy->pSkill = spSkill->pSkill; spSkillCopy->szIconFN = spSkill->szIconFN; - // 아이콘 로드하기.. ^^ + // εϱ.. ^^ spSkillCopy->pUIIcon = new CN3UIIcon; spSkillCopy->pUIIcon->Init(this); spSkillCopy->pUIIcon->SetTex(spSkill->szIconFN); @@ -390,18 +390,18 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { break; case UIMSG_ICON_UP: - // Hot Key 윈도우를 돌아 다니면서 검사.. + // Hot Key 츦 ٴϸ鼭 ˻.. { CUIHotKeyDlg * pDlg = CGameProcedure::s_pProcMain->m_pUIHotKeyDlg; if (!IsIn(ptCur.x, ptCur.y) && pDlg->IsIn(ptCur.x, ptCur.y)) { if (!pDlg->IsSelectedSkillInRealIconArea()) { - // 리소스 Free.. + // ҽ Free.. spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // 매니저에서 제거.. + // Ŵ .. RemoveChild(spSkill->pUIIcon); - // 리소스 제거.. + // ҽ .. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -410,13 +410,13 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { } } } else { - // 리소스 Free.. + // ҽ Free.. spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // 매니저에서 제거.. + // Ŵ .. RemoveChild(spSkill->pUIIcon); - // 리소스 제거.. + // ҽ .. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -460,7 +460,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { iCurKindOfBackup = m_iCurKindOf; iCurSkillPageBackup = m_iCurSkillPage; - int iSkillExtra; // 스킬창의 값.. + int iSkillExtra; // ųâ .. int iSkillPoint; std::string str; CN3UIString *pStrName = NULL, *pStrName2 = NULL; @@ -484,14 +484,14 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { return; } - // 전직하지 않은 상태면.. 전문스킬은 올릴수 없다.. + // ¸.. ų ø .. switch (iValue) { case 5: case 6: case 7: case 8: { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // 카루스.. + case NATION_KARUS: // ī罺.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_WARRIOR: case CLASS_KA_ROGUE: @@ -505,7 +505,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // 엘모라도.. + case NATION_ELMORAD: // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_WARRIOR: case CLASS_EL_ROGUE: @@ -524,7 +524,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 8) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // 카루스.. + case NATION_KARUS: // ī罺.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_SORCERER: case CLASS_KA_HUNTER: @@ -537,7 +537,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // 엘모라도.. + case NATION_ELMORAD: // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_MAGE: case CLASS_EL_RANGER: @@ -554,7 +554,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 7) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // 카루스.. + case NATION_KARUS: // ī罺.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_BERSERKER: { std::string szMsg; @@ -565,7 +565,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // 엘모라도.. + case NATION_ELMORAD: // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_BLADE: { std::string szMsg; @@ -580,7 +580,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { if (iValue == 6) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // 카루스.. + case NATION_KARUS: // ī罺.. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_HUNTER: { std::string szMsg; @@ -591,7 +591,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { } break; - case NATION_ELMORAD: // 엘모라도.. + case NATION_ELMORAD: // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_RANGER: { std::string szMsg; @@ -649,7 +649,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { str = pStrName2->GetString(); iSkillPoint = atoi(str.c_str()); - // 자기 자신 레벨보다 높일수 없다.. + // ڱ ڽ ϼ .. if (iSkillPoint >= CGameBase::s_pPlayer->m_InfoBase.iLevel) { std::string szMsg; ::_LoadStringFromResource(IDS_SKILL_UP_INVALID, szMsg); @@ -657,14 +657,14 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { return; } - // 써버에게 보내고.. 숫자 업데이트.. + // .. Ʈ.. BYTE byBuff[4]; int iOffset = 0; CAPISocket::MP_AddByte(byBuff, iOffset, N3_SKILL_CHANGE); CAPISocket::MP_AddByte(byBuff, iOffset, (BYTE)iValue); CGameProcedure::s_pSocket->Send(byBuff, iOffset); - // 스킬 포인트 업데이트.. + // ų Ʈ Ʈ.. iSkillExtra--; pStrName->SetStringAsInt(iSkillExtra); m_iSkillInfo[0] = iSkillExtra; @@ -700,7 +700,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { break; } - switch (iValue) // 스킬 아이콘 업데이트.. + switch (iValue) // ų Ʈ.. { case 5: case 6: @@ -715,7 +715,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { void CUISkillTreeDlg::Render() { if (!m_bVisible) { - return; // 보이지 않으면 자식들을 render하지 않는다. + return; // ڽĵ render ʴ´. } __IconItemSkill * spSkill = NULL; @@ -1063,17 +1063,17 @@ void CUISkillTreeDlg::InitIconWnd(e_UIWND eWnd) { void CUISkillTreeDlg::InitIconUpdate() { __TABLE_UPC_SKILL * pUSkill = NULL; - // 기존 아이콘 모두 클리어.. + // Ŭ.. for (int i = 0; i < MAX_SKILL_KIND_OF; i++) { for (int j = 0; j < MAX_SKILL_PAGE_NUM; j++) { for (int k = 0; k < MAX_SKILL_IN_PAGE; k++) { if (m_pMySkillTree[i][j][k] != NULL) { __IconItemSkill * spSkill = m_pMySkillTree[i][j][k]; - // 매니저에서 제거.. + // Ŵ .. RemoveChild(spSkill->pUIIcon); - // 리소스 제거.. + // ҽ .. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -1085,7 +1085,7 @@ void CUISkillTreeDlg::InitIconUpdate() { } } - // 아이디 = 직업 코드*1000 + 001부터.. (직업 코드+1)*100 + 001까지.. + // ̵ = ڵ*1000 + 001.. ( ڵ+1)*100 + 001.. int iSkillIDFirst, iSkillIndexFirst, iSkillIndexLast, iModulo; iSkillIDFirst = CGameBase::s_pPlayer->m_InfoBase.eClass * 1000 + 1; iSkillIndexFirst = CGameBase::s_pTbl_Skill->IDToIndex(iSkillIDFirst); @@ -1093,7 +1093,7 @@ void CUISkillTreeDlg::InitIconUpdate() { if (iSkillIndexFirst == -1) { PageButtonInitialize(); - return; // 첫번째 스킬이 없으면.. 안된다.. + return; // ù° ų .. ȵȴ.. } if (CGameBase::s_pPlayer->m_InfoBase.eClass != CLASS_EL_DRUID) { @@ -1116,34 +1116,34 @@ void CUISkillTreeDlg::InitIconUpdate() { continue; } - // 조건이 충족 되는지 확인한다.. + // Ǵ ȮѴ.. iModulo = pUSkill->iNeedSkill % 10; switch (iModulo) { - case 0: // Base Skill.. 레벨 점보만으로 판단한다.. - if (pUSkill->iNeedLevel <= CGameBase::s_pPlayer->m_InfoBase.iLevel) { // 내 레벨보다 같거나 작으면.. + case 0: // Base Skill.. ǴѴ.. + if (pUSkill->iNeedLevel <= CGameBase::s_pPlayer->m_InfoBase.iLevel) { // ų .. AddSkillToPage(pUSkill); } break; - case 5: // 전문 Skill.. 직업마다 다르다.. + case 5: // Skill.. ٸ.. if (pUSkill->iNeedLevel <= m_iSkillInfo[5]) { AddSkillToPage(pUSkill, 1); } break; - case 6: // 전문 Skill.. 직업마다 다르다.. + case 6: // Skill.. ٸ.. if (pUSkill->iNeedLevel <= m_iSkillInfo[6]) { AddSkillToPage(pUSkill, 2); } break; - case 7: // 전문 Skill.. 직업마다 다르다.. + case 7: // Skill.. ٸ.. if (pUSkill->iNeedLevel <= m_iSkillInfo[7]) { AddSkillToPage(pUSkill, 3); } break; - case 8: // 전문 Skill.. 직업마다 다르다.. + case 8: // Skill.. ٸ.. if (pUSkill->iNeedLevel <= m_iSkillInfo[8]) { AddSkillToPage(pUSkill, 4); } @@ -1158,7 +1158,7 @@ void CUISkillTreeDlg::PageButtonInitialize() { SetPageInIconRegion(0, 0); SetPageInCharRegion(); - // 서버에게 받은 값으로 세팅.. m_iSkillInfo[MAX_SKILL_FROM_SERVER]; // 서버로 받는 슬롯 정보.. + // .. m_iSkillInfo[MAX_SKILL_FROM_SERVER]; // ޴ .. CN3UIString * pStrName = (CN3UIString *)GetChildByID("string_skillpoint"); __ASSERT(pStrName, "NULL UI Component!!"); pStrName->SetStringAsInt(m_iSkillInfo[0]); @@ -1417,7 +1417,7 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { int i, j; bool bFound = false; - // m_pMySkillTree[iOffset]에 같은 아이디가 있는지 살펴본다.. + // m_pMySkillTree[iOffset] ̵ ִ 캻.. for (i = 0; i < MAX_SKILL_PAGE_NUM; i++) { for (j = 0; j < MAX_SKILL_IN_PAGE; j++) { if (m_pMySkillTree[iOffset][i][j] != NULL) { @@ -1428,7 +1428,7 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { } } - // m_pMySkillTree[iOffset]에 들어갈 수 있는지 살펴본다.. + // m_pMySkillTree[iOffset]  ִ 캻.. for (i = 0; i < MAX_SKILL_PAGE_NUM; i++) { for (j = 0; j < MAX_SKILL_IN_PAGE; j++) { if (m_pMySkillTree[iOffset][i][j] == NULL) { @@ -1446,10 +1446,10 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { __IconItemSkill * spSkill = new __IconItemSkill(); spSkill->pSkill = pUSkill; - // 아이콘 이름 만들기.. ^^ + // ̸ .. ^^ spSkill->szIconFN = std::format("UI\\skillicon_{:02d}_{:d}.dxt", pUSkill->dwID % 100, pUSkill->dwID / 100); - // 아이콘 로드하기.. ^^ + // εϱ.. ^^ spSkill->pUIIcon = new CN3UIIcon; spSkill->pUIIcon->Init(this); spSkill->pUIIcon->SetTex(spSkill->szIconFN); @@ -1464,12 +1464,12 @@ void CUISkillTreeDlg::AddSkillToPage(__TABLE_UPC_SKILL * pUSkill, int iOffset) { spSkill->pUIIcon->SetMoveRect(pArea->GetRegion()); } - // 아이콘 정보 저장.. + // .. m_pMySkillTree[iOffset][i][j] = spSkill; } void CUISkillTreeDlg::Open() { - // 스르륵 열린다!! + // !! SetVisible(true); this->SetPos(CN3Base::s_CameraData.vp.Width, 10); m_fMoveDelta = 0; @@ -1480,14 +1480,14 @@ void CUISkillTreeDlg::Open() { } void CUISkillTreeDlg::Close() { - // 리소스 Free.. + // ҽ Free.. __IconItemSkill * spSkill = NULL; spSkill = CN3UIWndBase::m_sSkillSelectInfo.pSkillDoneInfo; if (spSkill) { - // 매니저에서 제거.. + // Ŵ .. RemoveChild(spSkill->pUIIcon); - // 리소스 제거.. + // ҽ .. spSkill->pUIIcon->Release(); delete spSkill->pUIIcon; spSkill->pUIIcon = NULL; @@ -1498,8 +1498,8 @@ void CUISkillTreeDlg::Close() { SetState(UI_STATE_COMMON_NONE); CN3UIWndBase::AllHighLightIconFree(); - // 스르륵 닫힌다..!! - // SetVisible(false); // 다 닫히고 나서 해준다.. + // ..!! + // SetVisible(false); // ش.. RECT rc = this->GetRegion(); this->SetPos(CN3Base::s_CameraData.vp.Width - (rc.right - rc.left), 10); m_fMoveDelta = 0; @@ -1507,7 +1507,7 @@ void CUISkillTreeDlg::Close() { m_bClosingNow = true; if (m_pSnd_CloseUI) { - m_pSnd_CloseUI->Play(); // 닫는 소리.. + m_pSnd_CloseUI->Play(); // ݴ Ҹ.. } m_iRBtnDownOffs = -1; @@ -1551,7 +1551,7 @@ RECT CUISkillTreeDlg::GetSampleRect() { return rect; } -void CUISkillTreeDlg::SetPageInIconRegion(int iKindOf, int iPageNum) // 아이콘 역역에서 현재 페이지 설정.. +void CUISkillTreeDlg::SetPageInIconRegion(int iKindOf, int iPageNum) // .. { if ((iKindOf >= MAX_SKILL_KIND_OF) || (iPageNum >= MAX_SKILL_PAGE_NUM)) { return; @@ -1588,7 +1588,7 @@ void CUISkillTreeDlg::SetPageInIconRegion(int iKindOf, int iPageNum) // 아이 } } - // 아이콘 설명 문자열 업데이트.. 현재 스킬 종류와 현재 스킬 페이지중 아이콘이 보이면 String보이게.. 아니면 안보이게.. + // ڿ Ʈ.. ų ų ̸ String̰.. ƴϸ Ⱥ̰.. CN3UIString * pStrName = NULL; for (int k = 0; k < MAX_SKILL_IN_PAGE; k++) { if (m_pMySkillTree[m_iCurKindOf][m_iCurSkillPage][k] != NULL) { @@ -1617,7 +1617,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr CN3UIBase * pBase = NULL; CN3UIButton * pButton = NULL; for (int i = 0; i < 4; i++) { - pBase = GetChildBaseByName(std::format("img_{}_{}", szFN, i)); + pBase = GetChildBaseByName(std::format("img_{}{}", szFN, i)); if (pBase) { pBase->SetVisible(bTrueOrNot); } @@ -1636,12 +1636,12 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr } } -void CUISkillTreeDlg::SetPageInCharRegion() // 문자 역역에서 현재 페이지 설정.. +void CUISkillTreeDlg::SetPageInCharRegion() // .. { AllClearImageByName("public", false); switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { - case NATION_KARUS: // 카루스.. + case NATION_KARUS: // ī罺.. AllClearImageByName("hunter", false); AllClearImageByName("berserker", false); AllClearImageByName("sorcerer", false); @@ -1651,7 +1651,7 @@ void CUISkillTreeDlg::SetPageInCharRegion() // 문자 역역에서 현재 페이 AllClearImageByName("Shadow Bane", false); // Master Class AllClearImageByName("Berserker Hero", false); // Master Class - // 직업.. + // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_KA_WARRIOR: case CLASS_KA_ROGUE: @@ -1678,7 +1678,7 @@ void CUISkillTreeDlg::SetPageInCharRegion() // 문자 역역에서 현재 페이 } break; - case NATION_ELMORAD: // 엘모라도.. + case NATION_ELMORAD: // .. AllClearImageByName("ranger", false); AllClearImageByName("blade", false); AllClearImageByName("mage", false); @@ -1688,7 +1688,7 @@ void CUISkillTreeDlg::SetPageInCharRegion() // 문자 역역에서 현재 페이 AllClearImageByName("kasar hood", false); // Master Class AllClearImageByName("Blade Master", false); // Master Class - // 직업.. + // .. switch (CGameBase::s_pPlayer->m_InfoBase.eClass) { case CLASS_EL_WARRIOR: case CLASS_EL_ROGUE: @@ -1789,4 +1789,4 @@ void CUISkillTreeDlg::SetVisible(bool bVisible) { CGameProcedure::s_pUIMgr->ReFocusUI(); //this_ui } } -//this_ui_add_end +//this_ui_add_end \ No newline at end of file From 84f2db5b1d2a2743b331b1a70c0b6dbe39773368 Mon Sep 17 00:00:00 2001 From: Tahsin Date: Sat, 20 Jul 2024 01:21:46 +0200 Subject: [PATCH 5/6] UISkillTreeDlg.cpp UISkilltreDlg.cpp Fixed wrong page numbers, allowed user to put points in passion and assassin skills. Hid mastery and other strings, show mastery for master class and hide basic class top string. --- src/game/UISkillTreeDlg.cpp | 165 ++++++++++++++++++++++++++++++++++-- 1 file changed, 158 insertions(+), 7 deletions(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index 22b9f8bf..c882d075 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -284,10 +284,8 @@ bool CUISkillTreeDlg::ReceiveMessage(CN3UIBase * pSender, DWORD dwMsg) { (pSender->m_szID == "btn_sorcerer2") || (pSender->m_szID == "btn_shaman2")) { SetPageInIconRegion(3, 0); } - //if( (pSender->m_szID == "btn_ranger3") || (pSender->m_szID == "btn_blade3") || (pSender->m_szID == "btn_mage3") || - // (pSender->m_szID == "btn_cleric3") || (pSender->m_szID == "btn_hunter3") || (pSender->m_szID == "btn_berserker3") || - // (pSender->m_szID == "btn_sorcerer3") || (pSender->m_szID == "btn_shaman3") ) - // SetPageInIconRegion(4, 0); + if(pSender->m_szID == "btn_master") + SetPageInIconRegion(4, 0); } // Temp Define @@ -551,7 +549,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { break; } } - + /* if (iValue == 7) { switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { case NATION_KARUS: // ī罺.. @@ -603,7 +601,7 @@ void CUISkillTreeDlg::PointPushUpButton(int iValue) { break; } } - + */ switch (iValue) { case 1: pStrName2 = (CN3UIString *)GetChildByID("string_0"); @@ -1371,6 +1369,46 @@ void CUISkillTreeDlg::ButtonVisibleStateSet() { //pButton = (CN3UIButton* )GetChildByID("btn_sorcerer3"); ASSET_4 break; + case CLASS_KA_GUARDIAN: + pButton = (CN3UIButton *)GetChildByID("btn_berserker0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_berserker1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_berserker2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_KA_PENETRATOR: + pButton = (CN3UIButton *)GetChildByID("btn_hunter0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_hunter1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_hunter2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_KA_NECROMANCER: + pButton = (CN3UIButton *)GetChildByID("btn_sorcerer0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_sorcerer1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_sorcerer2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_KA_DARKPRIEST: + pButton = (CN3UIButton *)GetChildByID("btn_shaman0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_shaman1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_shaman2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + case CLASS_EL_BLADE: pButton = (CN3UIButton *)GetChildByID("btn_blade0"); ASSET_1 @@ -1410,6 +1448,46 @@ void CUISkillTreeDlg::ButtonVisibleStateSet() { ASSET_3 //pButton = (CN3UIButton* )GetChildByID("btn_mage3"); ASSET_4 break; + + case CLASS_EL_PROTECTOR: + pButton = (CN3UIButton *)GetChildByID("btn_blade0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_blade1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_blade2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_EL_ASSASIN: + pButton = (CN3UIButton *)GetChildByID("btn_ranger0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_ranger1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_ranger2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_EL_ENCHANTER: + pButton = (CN3UIButton *)GetChildByID("btn_mage0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_mage1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_mage2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; + + case CLASS_EL_DRUID: + pButton = (CN3UIButton *)GetChildByID("btn_cleric0"); + ASSET_1 + pButton = (CN3UIButton *)GetChildByID("btn_cleric1"); + ASSET_2 + pButton = (CN3UIButton *)GetChildByID("btn_cleric2"); + ASSET_3 + //pButton = (CN3UIButton* )GetChildByID("btn_master"); ASSET_4 + break; } } @@ -1617,7 +1695,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr CN3UIBase * pBase = NULL; CN3UIButton * pButton = NULL; for (int i = 0; i < 4; i++) { - pBase = GetChildBaseByName(std::format("img_{}{}", szFN, i)); + pBase = GetChildBaseByName(std::format("img_{}_{}", szFN, i)); if (pBase) { pBase->SetVisible(bTrueOrNot); } @@ -1638,6 +1716,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr void CUISkillTreeDlg::SetPageInCharRegion() // .. { + CN3UIBase * pBaseNonMaster; AllClearImageByName("public", false); switch (CGameBase::s_pPlayer->m_InfoBase.eNation) { @@ -1675,6 +1754,42 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr case CLASS_KA_SHAMAN: AllClearImageByName("shaman", true); break; + + case CLASS_KA_GUARDIAN: + AllClearImageByName("berserker", true); + AllClearImageByName("Berserker Hero", true); + pBaseNonMaster = GetChildImageByName("img_berserker"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_KA_PENETRATOR: + AllClearImageByName("hunter", true); + AllClearImageByName("Shadow Bane", true); + pBaseNonMaster = GetChildImageByName("img_hunter"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_KA_NECROMANCER: + AllClearImageByName("sorcerer", true); + AllClearImageByName("Elemental Lord", true); + pBaseNonMaster = GetChildImageByName("img_sorcerer"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_KA_DARKPRIEST: + AllClearImageByName("shaman", true); + AllClearImageByName("Shadow Knight", true); + pBaseNonMaster = GetChildImageByName("img_shaman"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; } break; @@ -1712,6 +1827,42 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr case CLASS_EL_CLERIC: AllClearImageByName("cleric", true); break; + + case CLASS_EL_PROTECTOR: + AllClearImageByName("blade", true); + AllClearImageByName("Blade Master", true); + pBaseNonMaster = GetChildImageByName("img_blade"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_EL_ASSASIN: + AllClearImageByName("ranger", true); + AllClearImageByName("kasar hood", true); + pBaseNonMaster = GetChildImageByName("img_ranger"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_EL_ENCHANTER: + AllClearImageByName("mage", true); + AllClearImageByName("Arc Mage", true); + pBaseNonMaster = GetChildImageByName("img_mage"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; + + case CLASS_EL_DRUID: + AllClearImageByName("img_cleric", true); + AllClearImageByName("Paladin", true); + pBaseNonMaster = GetChildImageByName("img_cleric"); + if (pBaseNonMaster) { + pBaseNonMaster->SetVisible(false); + } + break; } break; } From c5c8ba70623eedbe5b261405799a9c06ca5ec825 Mon Sep 17 00:00:00 2001 From: Tahsin Date: Sat, 20 Jul 2024 01:28:09 +0200 Subject: [PATCH 6/6] Update UISkillTreeDlg.cpp --- src/game/UISkillTreeDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/UISkillTreeDlg.cpp b/src/game/UISkillTreeDlg.cpp index c882d075..cfaeda20 100644 --- a/src/game/UISkillTreeDlg.cpp +++ b/src/game/UISkillTreeDlg.cpp @@ -1856,7 +1856,7 @@ void CUISkillTreeDlg::AllClearImageByName(const std::string & szFN, bool bTrueOr break; case CLASS_EL_DRUID: - AllClearImageByName("img_cleric", true); + AllClearImageByName("cleric", true); AllClearImageByName("Paladin", true); pBaseNonMaster = GetChildImageByName("img_cleric"); if (pBaseNonMaster) {