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>
410 lines
16 KiB
C++
410 lines
16 KiB
C++
// HumanQuick.cpp: implementation of the CHumanQuick class.
|
||
//
|
||
//////////////////////////////////////////////////////////////////////
|
||
|
||
#include "ClientMain.h"
|
||
#include "HumanQuick.h"
|
||
#include "WinInput.h"
|
||
#include "GUITextEdit.h"
|
||
|
||
#include "Skill\SkillMgr.h"
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
// Construction/Destruction
|
||
//////////////////////////////////////////////////////////////////////
|
||
|
||
CHumanQuick::CHumanQuick()
|
||
{
|
||
|
||
}
|
||
|
||
CHumanQuick::~CHumanQuick()
|
||
{
|
||
|
||
}
|
||
|
||
BOOL CHumanQuick::Init(unsigned short x, unsigned short y)
|
||
{
|
||
CSprite *lpSprite;
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x, y, 0, 0, 40, 252, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x, y + 250, 82, 136, 120, 167, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
CGUIButton *lpButton;
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(0, 38, 206, 0, 244, 21, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(0, 38, 206, 21, 244, 42, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[198]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(0, 250, 206, 42, 244, 64, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(0, 250, 206, 65, 244, 87, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[199]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
m_dwWindowKind = WINDOW_FIX;
|
||
|
||
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
|
||
m_rcWindowSize.right = x + 40; m_rcWindowSize.bottom = y + 280;
|
||
|
||
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
|
||
m_rcMoveEdge.right = x + 40; m_rcMoveEdge.bottom = y + 280;
|
||
|
||
InitValue();
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
void CHumanQuick::InitValue(void)
|
||
{
|
||
}
|
||
|
||
BOOL CHumanQuick::Update(BOOL &bClick, BOOL &bEdge)
|
||
{
|
||
if(g_DeviceInput.InRect(m_rcWindowSize.left, m_rcWindowSize.top, m_rcWindowSize.right, m_rcWindowSize.bottom))
|
||
{
|
||
bEdge = TRUE;
|
||
|
||
if(g_DeviceInput.GetIsLeftMouseDown() || g_DeviceInput.GetIsMiddleMouseDown() || g_DeviceInput.GetIsRightMouseDown() ||
|
||
g_DeviceInput.GetIsLeftMousePress() || g_DeviceInput.GetIsMiddleMousePress() || g_DeviceInput.GetIsRightMousePress() ||
|
||
g_DeviceInput.GetIsLeftMouseUp() || g_DeviceInput.GetIsMiddleMouseUp() || g_DeviceInput.GetIsRightMouseUp())
|
||
{
|
||
bClick = TRUE;
|
||
}
|
||
}
|
||
|
||
if(g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_bStillCasting) return TRUE;
|
||
|
||
if(g_ClientMain.m_bSimpleMode)
|
||
{
|
||
m_ButtonManager.m_lstButton[1]->ShowButton(TRUE);
|
||
m_lstSprite[1]->SetPosition(m_rcWindowSize.left, m_rcWindowSize.top + 272);
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[1]->ShowButton(FALSE);
|
||
m_lstSprite[1]->SetPosition(m_rcWindowSize.left, m_rcWindowSize.top + 250);
|
||
}
|
||
|
||
m_ButtonManager.Update();
|
||
m_TooltipManager.Update();
|
||
|
||
if(!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('Z'))
|
||
{
|
||
g_ClientMain.m_dwStartQuickSlot = 0;
|
||
} else if(!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('X'))
|
||
{
|
||
g_ClientMain.m_dwStartQuickSlot = 5;
|
||
}
|
||
|
||
if(g_DeviceInput.InRect(m_rcWindowSize.left + 0, m_rcWindowSize.top + 38, m_rcWindowSize.left + 38, m_rcWindowSize.top + 59) && g_DeviceInput.GetIsLeftMouseDown())
|
||
{
|
||
if(g_ClientMain.m_dwStartQuickSlot)
|
||
g_ClientMain.m_dwStartQuickSlot = 0;
|
||
else
|
||
g_ClientMain.m_dwStartQuickSlot = 5;
|
||
|
||
return TRUE;
|
||
} else if(m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_CLICK)
|
||
{
|
||
g_ClientMain.m_bSimpleMode = FALSE;
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
if(g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->GetChantFlag(26))
|
||
return TRUE;
|
||
|
||
if(g_DeviceInput.InRect(m_rcWindowSize.left + 3, m_rcWindowSize.top + 3, m_rcWindowSize.left + 35, m_rcWindowSize.top + 35) && g_DeviceInput.GetIsLeftMouseDown() &&
|
||
g_ClientMain.m_lpPickItem && g_ClientMain.m_lpPickItem->m_bSkill)
|
||
{
|
||
for(int i = 0; i < 10; i++)
|
||
{
|
||
if(!g_ClientMain.m_csStatus.m_lstQuickSlot[i])
|
||
{
|
||
if((g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos().m_cIndex == i) && (g_ClientMain.m_lpPickItem->GetItemPos() == ClientSocket::ItemPos_QSlot))
|
||
{
|
||
// <20>ٷ<EFBFBD> <20><><EFBFBD>´<EFBFBD>.
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[i] = g_ClientMain.m_lpPickItem;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[i]->SetItemPos(ClientSocket::ItemPos_QSlot);
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[i]->SetPos(i);
|
||
g_ClientMain.SetPickItem(NULL);
|
||
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[i]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[i]);
|
||
} else
|
||
{
|
||
// <20><><EFBFBD>ÿ<EFBFBD> <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
g_ClientMain.m_Network.SendQuickSlotMove(g_ClientMain.m_lpPickItem, ClientSocket::ItemPos_QSlot, i, 0);
|
||
}
|
||
|
||
/* g_ClientMain.m_csStatus.m_lstQuickSlot[i] = g_ClientMain.m_lpPickItem;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[i]->m_dwItemPos = ClientSocket::ItemPos_QSlot;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[i]->m_lpItemBase->m_ItemInfo.m_nItemIndex.m_cIndex = i;
|
||
g_ClientMain.SetPickItem(NULL);
|
||
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected = g_ClientMain.m_csStatus.m_lstQuickSlot[i];*/
|
||
|
||
return TRUE;
|
||
}
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < 5; i++)
|
||
{
|
||
if(g_DeviceInput.InRect(3, 162 + i * 38, 35, 162 + 32 + i * 38))
|
||
{
|
||
if(g_DeviceInput.GetIsLeftMouseDown())
|
||
{
|
||
if(!g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i])
|
||
{ // <20><><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if(g_ClientMain.m_lpPickItem)
|
||
{
|
||
Item::ItemPos pItemIndex;
|
||
pItemIndex.m_cIndex = g_ClientMain.m_dwStartQuickSlot + i;
|
||
pItemIndex.m_cPos = ClientSocket::ItemPos_QSlot;
|
||
|
||
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
|
||
{ // <20>׳<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[pItemIndex.m_cIndex] = g_ClientMain.m_lpPickItem;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[pItemIndex.m_cIndex]->SetItemPos(ClientSocket::ItemPos_QSlot);
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[pItemIndex.m_cIndex]->SetPos(pItemIndex.m_cIndex);
|
||
g_ClientMain.SetPickItem(NULL);
|
||
} else if(g_ClientMain.m_lpPickItem->m_bSkill)
|
||
{
|
||
g_ClientMain.m_Network.SendQuickSlotMove(g_ClientMain.m_lpPickItem, ClientSocket::ItemPos_QSlot, pItemIndex.m_cIndex);
|
||
} else if(g_ClientMain.m_lpPickItem->m_lpItemBase->IsSet(Item::DetailData::QUICKSLOT_IN))
|
||
{
|
||
g_ClientMain.m_Network.SendQuickSlotMove(g_ClientMain.m_lpPickItem, ClientSocket::ItemPos_QSlot, pItemIndex.m_cIndex);
|
||
}
|
||
|
||
return TRUE;
|
||
}
|
||
} else
|
||
{
|
||
if(g_ClientMain.m_lpPickItem)
|
||
{
|
||
if(g_ClientMain.m_lpPickItem->GetItemPos() == ClientSocket::ItemPos_QSlot)
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ͼ<CFBE><EEB3AD>. but TakeItem<65><6D><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||
g_ClientMain.m_Network.SendQuickSlotMove(g_ClientMain.m_lpPickItem, ClientSocket::ItemPos_QSlot, g_ClientMain.m_dwStartQuickSlot + i);
|
||
|
||
// g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, ClientSocket::ItemPos_QSlot, &pItemIndex);
|
||
}
|
||
|
||
return TRUE;
|
||
} else
|
||
{
|
||
g_ClientMain.SetPickItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]);
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i] == g_ClientMain.m_csStatus.m_lpQuickSelected)
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
}
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i] = NULL;
|
||
|
||
return TRUE;
|
||
}
|
||
}
|
||
}
|
||
|
||
if(g_DeviceInput.GetIsRightMouseDown())
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i])
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]);
|
||
return TRUE;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0] && (!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('1')))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 0]);
|
||
|
||
return TRUE;
|
||
} else if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1] && (!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('2')))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 1]);
|
||
|
||
return TRUE;
|
||
} else if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2] && (!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('3')))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 2]);
|
||
|
||
return TRUE;
|
||
} else if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3] && (!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('4')))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 3]);
|
||
|
||
return TRUE;
|
||
} else if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4] && (!g_TextEdit.IsFocus() && g_DeviceInput.KeyDown('5')))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4]->m_bSkill)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4]->GetSkillType() == Skill::Type::CHANT &&
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected == g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4])
|
||
{
|
||
g_ClientMain.m_Network.SetChant(NULL);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(NULL);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SetChant(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4]);
|
||
g_ClientMain.m_csStatus.SetActivateSkill(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4]);
|
||
}
|
||
}
|
||
else
|
||
UseItem(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + 4]);
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
void CHumanQuick::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
|
||
{
|
||
m_lstSprite[0]->Render(lpD3DDevice);
|
||
m_lstSprite[1]->Render(lpD3DDevice);
|
||
|
||
for(int i = 0; i < 5; i++)
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i])
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_bSkill)
|
||
{
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_wPutX = m_rcWindowSize.left + 3;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_wPutY = m_rcWindowSize.top + 62 + i * 38;
|
||
} else
|
||
{
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_wPutX = m_rcWindowSize.left + 3 + 16 - g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_lpSprite->GetSizeX() / 2;
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_wPutY = m_rcWindowSize.top + 62 + i * 38 + 16 - g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->m_lpSprite->GetSizeY() / 2;
|
||
}
|
||
|
||
g_ClientMain.m_csStatus.m_lstQuickSlot[g_ClientMain.m_dwStartQuickSlot + i]->Render(lpD3DDevice);
|
||
}
|
||
}
|
||
|
||
if(g_ClientMain.m_csStatus.m_lpQuickSelected)
|
||
{
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected->m_wPutX = m_rcWindowSize.left + 3;
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected->m_wPutY = m_rcWindowSize.top + 3;
|
||
g_ClientMain.m_csStatus.m_lpQuickSelected->Render(lpD3DDevice);
|
||
}
|
||
|
||
if(g_ClientMain.m_dwStartQuickSlot)
|
||
{
|
||
m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_ON;
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_OFF;
|
||
}
|
||
|
||
m_ButtonManager.Render(lpD3DDevice);
|
||
}
|
||
|
||
void CHumanQuick::UseItem(CItemInstance *lpItem)
|
||
{
|
||
if(g_ClientMain.m_lpInterface && g_ClientMain.m_lpInterface->GetIsTrade()) return;
|
||
|
||
switch(lpItem->GetItemType())
|
||
{
|
||
case Item::CItemType::POTION:
|
||
if(g_ClientMain.m_csStatus.CheckUsePotion(lpItem))
|
||
{
|
||
CItemInstance *lpPotion = g_ClientMain.m_csStatus.GetInventoryItemfromID(lpItem->GetProtoTypeID());
|
||
if(lpPotion)
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
g_ClientMain.m_Network.m_nsNetworkState = NS_USEITEM;
|
||
g_ClientMain.m_Network.m_pSocket->CharUseItem(g_ClientMain.m_dwMyChrID, g_ClientMain.m_dwMyChrID, &lpPotion->m_lpItemBase->GetPos());
|
||
g_ClientMain.SetPotionCoolDown();
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|