hienquan
28-07-12, 05:33 PM
điều mình xắp nói không phải là mới nữa nhưng mình xin Releases chi tiết cho những ai chưa làm được::
1__Code Ngũ Hành
Đầu tiên các bạn vào file KNpc.h
Tìm đến đoạn code::
#ifndef _SERVER
int m_ResDir;
KNpcRes m_DataRes; // NpcµÄ¿Í»§¶Ë×ÊÔ´£¨Í¼Ïó¡¢ÉùÒ� �£©
// ÓÃÓÚÆÕͨս¶·npcðѪ´¦Àí
int m_nBloodNo;
int m_nBloodAlpha;
int m_nBloodTime;
char m_szBloodNo[32];
// Khoi tao bien img ve ngu hanh
KRUImage m_ImageSeries; // Ve hinh spr len client
các bạn khai báo biến:: KRUImage m_ImageSeries;(Như Trên)
___tiếp theo các bạn vào file KNpc.cpp khai báo nội dung cho biến::
các bạn tìm đến đoạn code::
KNpc::KNpc()
{
#ifdef _SERVER
m_AiSkillRadiusLoadFlag = 0; // Ö»ÐèÒªÔÚ¹¹ÔìµÄʱºò³õʼ»¯Ò »´Î
#endif
Init();
}
//bắt đầu thêm đoạn này
// Ham khoi tao ra 1 NPC
void KNpc::Init()
{
m_dwID = 0;
m_Index = 0;
m_nPlayerIdx = 0;
m_ProcessAI = 1;
m_Kind = kind_normal;
m_Series = series_metal; //series_metal = 0 = he kim
strcpy(m_nImageSeries, "\\Spr\\Ui3\\Npc\\series0.spr"); // coppy duong dan spr ngu hanh vao bien
m_Camp = camp_free;
m_CurrentCamp = camp_free;
m_Doing = do_stand;
m_Height = 0;
m_Frames.nCurrentFrame = 0;
m_Frames.nTotalFrame = 0;
m_SubWorldIndex = 0;
m_RegionIndex = -1;
m_Experience = 0;
m_ActiveSkillID = 0;
m_SkillParam1 = 0;
m_SkillParam2 = 0;
//kết thúc đoạn code đã thêm
#ifndef _SERVER
m_nChatContentLen = 0;
m_nCurChatTime = 0;
m_nChatNumLine = 0;
m_nChatFontWidth = 0;
m_nStature = 0;
#endif
Save lại và buil rùi kiểm tra KQ nhé
1___Code Vạn Lượng::
đầu tiên các bạn vao file uiItem và tim đến đoạn code::
void KUiItem::Breathe()
{
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
//m_Money.SetIntText(m_nMoney); ---->đoạn code cũ
m_Money.SetMoneyText(m_nMoney); ----> Khai Báo Biến Mới
}
void KUiItem::OnNpcTradeMode(bool bTrue)
{
if (m_pSelf)
m_pSelf->m_ItemBox.EnablePickPut(!bTrue);
}
tiếp theo tìm đến code::
void KUiItem::UpdateData()
{
m_ItemBox.Clear();
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
//m_Money.SetIntText(m_nMoney);
m_Money.SetMoneyText(m_nMoney);------>cũng khai báo biến mới ở đây
KUiObjAtRegion* pObjs = NULL;
int nCount = g_pCoreShell->GetGameData(GDI_ITEM_TAKEN_WITH, 0, 0);
if (nCount == 0)
return;
if (pObjs = (KUiObjAtRegion*)malloc(sizeof(KUiObjAtRegion) * nCount))
{
g_pCoreShell->GetGameData(GDI_ITEM_TAKEN_WITH, (unsigned int)pObjs, nCount);//µ¥Ïß³ÌÖ´ÐУ¬nCountÖµ²»±ä
for (int i = 0; i < nCount; i++)
{
KUiDraggedObject no;
no.uGenre = pObjs[i].Obj.uGenre;
no.uId = pObjs[i].Obj.uId;
no.DataX = pObjs[i].Region.h;
no.DataY = pObjs[i].Region.v;
no.DataW = pObjs[i].Region.Width;
no.DataH = pObjs[i].Region.Height;
m_ItemBox.AddObject(&no, 1);
}
free(pObjs);
pObjs = NULL;
}
}
tiếp theo các bạn vào file ::WndText.cpp và viết nội dung cho biến mới::
void KWndText::SetIntText(int nNumber, char Separator)
{
char Buff[16];
int nLen;
if (m_pText)
{
if (Separator)
nLen = sprintf(Buff, "%d%c", nNumber, Separator);
else
nLen = sprintf(Buff, "%d", nNumber);
SetText(Buff, nLen);
}
}
void KWndText::SetMoneyText(int nNumber, char Separator) // nội dung biến mới..
{
char Buff[16];
int nLen;
if (m_pText)
{
if (nNumber/10000 == 0)
nLen = sprintf(Buff, "%d luong",nNumber%10000);
else
{
if (nNumber%10000 == 0)
nLen = sprintf(Buff, "%dVan",nNumber/10000);
else
nLen = sprintf(Buff, "%dVan %d",nNumber/10000,nNumber%10000);
}
SetText(Buff, nLen);
}
}
Tương tự ỏ UiTrade Và Ui StoBox
các bạn chỉ việc thay biến
m_Money.SetIntText(m_nMoney); bằng biến m_Money.SetMoneyText(m_nMoney); là được
Vì Mình Bận nên Viết Cũng Chưa Được chi tiết lắm mong mọi người thông cảm
mình cũng chưa test hết nên có lỗi gì mong đừng ném đá nhé
Nếu thấy hay xin thanks để động viên viết tiếp các vòng sáng
______Xin Trân thành cảm Ơn trananh88vt đã hướng dẫn mình hoàn thành bài viết này
1__Code Ngũ Hành
Đầu tiên các bạn vào file KNpc.h
Tìm đến đoạn code::
#ifndef _SERVER
int m_ResDir;
KNpcRes m_DataRes; // NpcµÄ¿Í»§¶Ë×ÊÔ´£¨Í¼Ïó¡¢ÉùÒ� �£©
// ÓÃÓÚÆÕͨս¶·npcðѪ´¦Àí
int m_nBloodNo;
int m_nBloodAlpha;
int m_nBloodTime;
char m_szBloodNo[32];
// Khoi tao bien img ve ngu hanh
KRUImage m_ImageSeries; // Ve hinh spr len client
các bạn khai báo biến:: KRUImage m_ImageSeries;(Như Trên)
___tiếp theo các bạn vào file KNpc.cpp khai báo nội dung cho biến::
các bạn tìm đến đoạn code::
KNpc::KNpc()
{
#ifdef _SERVER
m_AiSkillRadiusLoadFlag = 0; // Ö»ÐèÒªÔÚ¹¹ÔìµÄʱºò³õʼ»¯Ò »´Î
#endif
Init();
}
//bắt đầu thêm đoạn này
// Ham khoi tao ra 1 NPC
void KNpc::Init()
{
m_dwID = 0;
m_Index = 0;
m_nPlayerIdx = 0;
m_ProcessAI = 1;
m_Kind = kind_normal;
m_Series = series_metal; //series_metal = 0 = he kim
strcpy(m_nImageSeries, "\\Spr\\Ui3\\Npc\\series0.spr"); // coppy duong dan spr ngu hanh vao bien
m_Camp = camp_free;
m_CurrentCamp = camp_free;
m_Doing = do_stand;
m_Height = 0;
m_Frames.nCurrentFrame = 0;
m_Frames.nTotalFrame = 0;
m_SubWorldIndex = 0;
m_RegionIndex = -1;
m_Experience = 0;
m_ActiveSkillID = 0;
m_SkillParam1 = 0;
m_SkillParam2 = 0;
//kết thúc đoạn code đã thêm
#ifndef _SERVER
m_nChatContentLen = 0;
m_nCurChatTime = 0;
m_nChatNumLine = 0;
m_nChatFontWidth = 0;
m_nStature = 0;
#endif
Save lại và buil rùi kiểm tra KQ nhé
1___Code Vạn Lượng::
đầu tiên các bạn vao file uiItem và tim đến đoạn code::
void KUiItem::Breathe()
{
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
//m_Money.SetIntText(m_nMoney); ---->đoạn code cũ
m_Money.SetMoneyText(m_nMoney); ----> Khai Báo Biến Mới
}
void KUiItem::OnNpcTradeMode(bool bTrue)
{
if (m_pSelf)
m_pSelf->m_ItemBox.EnablePickPut(!bTrue);
}
tiếp theo tìm đến code::
void KUiItem::UpdateData()
{
m_ItemBox.Clear();
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
//m_Money.SetIntText(m_nMoney);
m_Money.SetMoneyText(m_nMoney);------>cũng khai báo biến mới ở đây
KUiObjAtRegion* pObjs = NULL;
int nCount = g_pCoreShell->GetGameData(GDI_ITEM_TAKEN_WITH, 0, 0);
if (nCount == 0)
return;
if (pObjs = (KUiObjAtRegion*)malloc(sizeof(KUiObjAtRegion) * nCount))
{
g_pCoreShell->GetGameData(GDI_ITEM_TAKEN_WITH, (unsigned int)pObjs, nCount);//µ¥Ïß³ÌÖ´ÐУ¬nCountÖµ²»±ä
for (int i = 0; i < nCount; i++)
{
KUiDraggedObject no;
no.uGenre = pObjs[i].Obj.uGenre;
no.uId = pObjs[i].Obj.uId;
no.DataX = pObjs[i].Region.h;
no.DataY = pObjs[i].Region.v;
no.DataW = pObjs[i].Region.Width;
no.DataH = pObjs[i].Region.Height;
m_ItemBox.AddObject(&no, 1);
}
free(pObjs);
pObjs = NULL;
}
}
tiếp theo các bạn vào file ::WndText.cpp và viết nội dung cho biến mới::
void KWndText::SetIntText(int nNumber, char Separator)
{
char Buff[16];
int nLen;
if (m_pText)
{
if (Separator)
nLen = sprintf(Buff, "%d%c", nNumber, Separator);
else
nLen = sprintf(Buff, "%d", nNumber);
SetText(Buff, nLen);
}
}
void KWndText::SetMoneyText(int nNumber, char Separator) // nội dung biến mới..
{
char Buff[16];
int nLen;
if (m_pText)
{
if (nNumber/10000 == 0)
nLen = sprintf(Buff, "%d luong",nNumber%10000);
else
{
if (nNumber%10000 == 0)
nLen = sprintf(Buff, "%dVan",nNumber/10000);
else
nLen = sprintf(Buff, "%dVan %d",nNumber/10000,nNumber%10000);
}
SetText(Buff, nLen);
}
}
Tương tự ỏ UiTrade Và Ui StoBox
các bạn chỉ việc thay biến
m_Money.SetIntText(m_nMoney); bằng biến m_Money.SetMoneyText(m_nMoney); là được
Vì Mình Bận nên Viết Cũng Chưa Được chi tiết lắm mong mọi người thông cảm
mình cũng chưa test hết nên có lỗi gì mong đừng ném đá nhé
Nếu thấy hay xin thanks để động viên viết tiếp các vòng sáng
______Xin Trân thành cảm Ơn trananh88vt đã hướng dẫn mình hoàn thành bài viết này