PDA

View Full Version : [JX] Mọi người xem và giúp đỡ mình 1 chút nhé (Source JX)



chungthanhphuo
05-08-12, 01:43 AM
Tình hình là mình đã build thành công source và đã viết thêm 2 tính năng

-Hiễn thị vạn lượng trong Hành trang và rương chứa đồ
-Hiễn thị vòng sáng Item không bị lệch tọa độ Item trong rương và hành trang

Nhưng không biết sao khi đeo vào thì lại không hiễn thị được vòng sáng item,mong mọi người giúp đở mình cái này
Nếu code nhưng vậy thì tất cả các Item đều có vòng sáng hết,mình không biết set như thế nào để Item nào cần có vòng sáng thì có vòng sáng còng Item nào mình không muốn cho nó có vòng sáng thì sẽ không hiễn thị vòng sáng,Mong mọi người giúp mình với :(:(:(

đây là một vài hình ảnh mình code được:

Vòng sáng Item trong hành trang:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Hiễn thị vạn lượng trong hành tran:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Hiễn thị vạn lượng trong rương chứa đồ:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Đây là ảnh mà mình đeo Item vào thì không có vòng sáng,ai biết giúp mình nhé:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

KingMax
05-08-12, 01:49 AM
tức là bạn phải xác định tọa độ UI của F3 nữa ,làm tương tự với file kia ... minh đoán thôi nhé ,nhưng chắc đúng 100% đó :D

chungthanhphuo
05-08-12, 01:53 AM
tức là bạn phải xác định tọa độ UI của F3 nữa ,làm tương tự với file kia ... minh đoán thôi nhé ,nhưng chắc đúng 100% đó :D

Bạn có thể nói rỏ hơn cho mình hiểu được không,bạn cho mình ví dụ luôn nhé.Toạn độ UI của khung F3 nằm trong file UiItem.CPP phải k bạn.Bạn nói rỏ hơn 1 chút nhé.Mình mới ngâm source khoản được 1 tuần thôi.Giúp mình nhé

banynavy
05-08-12, 07:11 AM
KWndObjectBox--> bạn mới làm hiện ở đây
KWndObjectMatrix--? chưa làm hiện
Bạn xem 2 cái này trong file WndObjContainer.cpp va .h sẽ làm được

chungthanhphuo
05-08-12, 02:33 PM
KWndObjectBox--> bạn mới làm hiện ở đây
KWndObjectMatrix--? chưa làm hiện
Bạn xem 2 cái này trong file WndObjContainer.cpp va .h sẽ làm được

Bạn ơi mình đã bỏ vào KWndObjectMatrix::PaintWindow() rồi nhưng đeo Item vào không hiện vòng sáng đâu.
có bỏ thêm cái gì vào trong hàm KWndObjectBox::PaintWindow() không vậy bạn.Bạn chỉ giúp mình cụ thể để mình làm luôn nhé

chungthanhphuo
05-08-12, 08:51 PM
Sao không ai giúp mình hết vậy

thaihoa91
06-08-12, 08:28 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

chungthanhphuo
06-08-12, 10:33 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Đây là đoạn code Paintwindow() của KWndObjectBox

void KWndObjectBox::PaintWindow()
{
KWndWindow::PaintWindow();
if (m_Object.uGenre != CGOG_NOTHING && g_pRepresentShell)
{
KRUShadow Shadow;
Shadow.Color.Color_dw = 0;
if (m_Style & OBJCONT_F_MOUSE_HOVER)
Shadow.Color.Color_dw = l_BgColors[3];
else if (m_Style & OBJCONT_S_HAVEOBJBGCOLOR)
{
KUiObjAtContRegion Obj;
Obj.Obj.uGenre = m_Object.uGenre;
Obj.Obj.uId = m_Object.uId;
Obj.Region.h = Obj.Region.v = 0;
Obj.Region.Width = Obj.Region.Height = 0;
Obj.nContainer = m_nContainerId;

ITEM_IN_ENVIRO_PROP eProp = (ITEM_IN_ENVIRO_PROP)g_pCoreShell->
GetGameData(GDI_ITEM_IN_ENVIRO_PROP, (unsigned int)&Obj, 0);
if (eProp == IIEP_NORMAL)
Shadow.Color.Color_dw = l_BgColors[0];
else if (eProp == IIEP_NOT_USEABLE)
Shadow.Color.Color_dw = l_BgColors[1];
else if (eProp == IIEP_SPECIAL)
Shadow.Color.Color_dw = l_BgColors[2];
}
if (Shadow.Color.Color_dw)
{
Shadow.oPosition.nX = m_nAbsoluteLeft;
Shadow.oPosition.nY = m_nAbsoluteTop;
Shadow.oEndPos.nX = m_nAbsoluteLeft + m_Width;
Shadow.oEndPos.nY = m_nAbsoluteTop + m_Height;
g_pRepresentShell->DrawPrimitives(1, &Shadow, RU_T_SHADOW, true);
}
g_pCoreShell->DrawGameObj(m_Object.uGenre, m_Object.uId,
m_nAbsoluteLeft, m_nAbsoluteTop, m_Width, m_Height, 0);


}
}
Đoạn code này mình chưa thêm gì cả,vì k dám thêm bậy.
Còn đoạn code PaintWindow() của KWndObjectMatrix mình đã làm theo hương dẩn như trên:

void KWndObjectMatrix::PaintWindow()
{
KWndWindow::PaintWindow();
KRUShadow Shadow;
for (int i = 0; i < m_nNumObjects; i++)
{
KUiDraggedObject* pObj = &m_pObjects[i];
Shadow.Color.Color_dw = 0;
if (i == REPLACE_ITEM_INDEX(m_nPutPosX))
Shadow.Color.Color_dw = l_BgColors[4];
else if ((m_Style & OBJCONT_F_MOUSE_HOVER) && m_nMouseOverObj == i)
Shadow.Color.Color_dw = l_BgColors[3];
else if (m_Style & OBJCONT_S_HAVEOBJBGCOLOR)
{
KUiObjAtContRegion Obj;
Obj.Obj.uGenre = pObj->uGenre;
Obj.Obj.uId = pObj->uId;
Obj.Region.h = Obj.Region.v = 0;
Obj.Region.Width = Obj.Region.Height = 0;
Obj.nContainer = m_nContainerId;

ITEM_IN_ENVIRO_PROP eProp = (ITEM_IN_ENVIRO_PROP)g_pCoreShell->
GetGameData(GDI_ITEM_IN_ENVIRO_PROP, (unsigned int)&Obj, 0);
if (eProp == IIEP_NORMAL)
Shadow.Color.Color_dw = l_BgColors[0];
else if (eProp == IIEP_NOT_USEABLE)
Shadow.Color.Color_dw = l_BgColors[1];
else if (eProp == IIEP_SPECIAL)
Shadow.Color.Color_dw = l_BgColors[2];
}

int width = m_nUnitWidth * pObj->DataW - m_nUnitBorder * 2;
int height = m_nUnitHeight * pObj->DataH - m_nUnitBorder * 2;
Shadow.oPosition.nX = m_nAbsoluteLeft + m_nUnitWidth * pObj->DataX + m_nUnitBorder;
Shadow.oPosition.nY = m_nAbsoluteTop + m_nUnitHeight * pObj->DataY + m_nUnitBorder;
if (Shadow.Color.Color_dw)
{
Shadow.oEndPos.nX = Shadow.oPosition.nX + width;
Shadow.oEndPos.nY = Shadow.oPosition.nY + height;
g_pRepresentShell->DrawPrimitives(1, &Shadow, RU_T_SHADOW, true);
}

g_pCoreShell->DrawGameObj(pObj->uGenre, pObj->uId,
Shadow.oPosition.nX, Shadow.oPosition.nY, width, height, 0);
this->PaintLight(Shadow.oPosition.nX,Shadow.oPosition.nY ,width,height); // ham moi them vao
}
if (m_nPutPosX >= 0)
{
Shadow.oPosition.nX = m_nAbsoluteLeft + m_nUnitWidth * m_nPutPosX + m_nUnitBorder;
Shadow.oPosition.nY = m_nAbsoluteTop + m_nUnitHeight * m_nPutPosY + m_nUnitBorder;
Shadow.oEndPos.nX = Shadow.oPosition.nX + m_nUnitWidth * m_nPutWidth - m_nUnitBorder * 2;
Shadow.oEndPos.nY = Shadow.oPosition.nY + m_nUnitHeight * m_nPutHeight - m_nUnitBorder * 2;
Shadow.Color.Color_dw = l_BgColors[4];
g_pRepresentShell->DrawPrimitives(1, &Shadow, RU_T_SHADOW, true);
}
}
this->PaintLight(Shadow.oPosition.nX,Shadow.oPosition.nY ,width,height) đoạn này là mình thêm vào như đã hương dẩn.