ciabop
23-09-12, 10:38 PM
1: code Vạn Lương.
char szMoneyText[32];
dwColor = 0xFFFFFF;
if (m_nMoneyNum < 10000)
sprintf(szTextMoney, "%d l*îng", m_nMoneyNum);
else
{
if (m_nMoneyNum%10000 == 0)
sprintf(szTextMoney, "%d v¹n l*îng", m_nMoneyNum/10000);
else
sprintf(szTextMoney, "%d v¹n %d l*îng", m_nMoneyNum/10000, m_nMoneyNum%10000);
}
đó là code vạn lượng trong source. hiểu nôm na là như thế này
Nếu số tiền < 10000 thì in ra số tiền + lượng
ngược lại nếu > 10000 và chia cho 10000 lấy phần dư mà bằng 0 thì đó chính là vạn tức in ra số tiền chia cho 10000 lấy phần nguyên. ngược lại thì phần dư khác 0 thì phần vạn chính là số tiền chia 10000 lấy phần nguyên, phần lượng là số tiền chia cho 10000 lấy phần dư.
Ví dụ mẫu hiển thị vạn lượng ở hành trang
Vào S3Client\Ui\Uicase mở file UiItem.cpp lên tìm biến m_Money
Tìm
void KUiItem::UpdateData()
{
m_ItemBox.Clear();
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
m_Money.SetIntText(m_nMoney);
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;
}
}
thay đoạn m_Money.SetIntText(m_nMoney); bằng đoạn
char szMoneyText[50];
if (m_nMoney < 10000)
sprintf(szMoneyText, "%d l*îng", m_nMoney);
else
{
if (m_nMoney%10000 == 0)
sprintf(szMoneyText, "%d v¹n l*îng", m_nMoney/10000);
else
sprintf(szMoneyText, "%d v¹n %d l*îng", m_nMoney/10000, m_nMoney%10000);
}
m_Money.SetText(szMoneyText);
build lại S3Client rồi vào game test
Build soucre thì vào đây (<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>)
Nguồn: Cybergamevn
2: fife lỗi Skin Rồng cái Bang Không Ra Rồng , NgaMy Phong Sương Dánh có 1 Tia ....v.v.v.v..
3: Vòng Sáng trang Bị.
Demo:
<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>
Code:
[1] Khai báo các biến và các hàm
int m_color ;
int m_time ;
int n_mpoint;
int m_count[8];
unsigned int m_nColor;
int GetRectItem(int _w, int _h);
void DrawPoint(int x, int y, unsigned int wColor);
void DrawLight(int x, int y, int _w, int _h, int unit, int unitboder);
[2] Các hàm draw vòng sáng
int KWndObjectMatrix::GetRectItem(int _w, int _h)
{
int i;
if (_w == 1 && _h == 1) i = 0;
else if(_w == 1 && _h == 2) i = 1;
else if(_w == 1 && _h == 3) i = 2;
else if(_w == 1 && _h == 4) i = 3;
else if(_w == 1 && _h == 5) i = 4;
else if(_w == 2 && _h == 1) i = 5;
else if(_w == 2 && _h == 2) i = 6;
else if(_w == 2 && _h == 3) i = 7;
return i;
}
void KWndObjectMatrix::DrawPoint(int x, int y, unsigned int wColor)
{
KRUPoint Rect;
Rect.Color.Color_dw = wColor;
Rect.oPosition.nX = x;
Rect.oPosition.nY = y;
Rect.oPosition.nZ = 0;
g_pRepresentShell->DrawPrimitives(1, &Rect, RU_T_POINT, true);
}
void KWndObjectMatrix::DrawLight(int x, int y, int _w, int _h, int unit, int unitboder)
{
int r_color = 1; // 1::Yellow, 2::Purple, 3::White
x = x - 1;
y = y - 1;
int w = _w*unit - unitboder*2 + 1;
int h = _h*unit - unitboder*2 + 1;
int nX = x + w;
int nY = y + h;
int i = 0;
int j = 0;
int n_point = w + h;
int a[400];
int m_pb = 268/(w + h);
int color = 255;
for(i;i<2*n_point;i++)
{
if(color>=0)
{
a[i] = color;
color = color - m_pb;
}
else
{
a[i] = 0;
}
if(i==n_point)
color = 255;
}
i = m_count[GetRectItem( _w, _h)];
while (y < nY)
{
if(r_color == 1) // yellow
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | 0;
}
else if(r_color == 2) //purple
{
m_nColor = 0xFF000000 | a[i] << 16 | 0 | a[i] << 0;
}
else if(r_color == 3) //white
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | a[i] << 0;
}
this->DrawPoint(x+w,nY,m_nColor);
this->DrawPoint(x,y+j,m_nColor);
nY = nY - 1;
i++;
j++;
if(i == n_point) i=0;
if(m_count[GetRectItem( _w, _h)] >= n_point) m_count[GetRectItem( _w, _h)] = 0;
}
j=0;
i = m_count[GetRectItem( _w, _h)] + h;
while (x < nX)
{
if(r_color == 1) // yellow
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | 0;
}
else if(r_color == 2) //purple
{
m_nColor = 0xFF000000 | a[i] << 16 | 0 | a[i] << 0;
}
else if(r_color == 3) //white
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | a[i] << 0;
}
this->DrawPoint(nX,y,m_nColor);
this->DrawPoint(x + j,y+h,m_nColor);
nX = nX - 1;
i=i+1;
j=j+1;
if(i == n_point) i=0;
if(m_count[GetRectItem( _w, _h)] >= n_point) m_count[GetRectItem( _w, _h)] = 0;
}
}
[3] Cách sử dụng
void KWndObjectMatrix::PaintWindow()
{
++m_time;
if (m_time % 4 == 0)
{
for(int i =0;i<8;i++)
++m_count[i];
}
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->DrawLight(Shadow.oPosition.nX,Shadow.oPosition.nY, pObj->DataW, pObj->DataH , m_nUnitWidth, m_nUnitBorder);
}
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);
}
}
[4] Gợi ý phân loại Item cho ai chưa bik làm
Down code item do trananh share, thả vào source. thêm và KItem.h hàm
int GetType() const { return m_CommonAttrib.m_nTypeItem; };
Vào CoreShell tìm và khai báo CoreShell.h
virtual int GetItemType(int nID) = 0;
thêm hàm vào CoreShell.cpp
int KCoreShell::GetItemType(int nID)
{
return Item[nID].GetType();
}
cách dùng tự hiểu nhé ^^
Mì ăn liền:
<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>
Ai ko làm đc thì múc file về máy sài. ko spam hỏi linh tinh.
char szMoneyText[32];
dwColor = 0xFFFFFF;
if (m_nMoneyNum < 10000)
sprintf(szTextMoney, "%d l*îng", m_nMoneyNum);
else
{
if (m_nMoneyNum%10000 == 0)
sprintf(szTextMoney, "%d v¹n l*îng", m_nMoneyNum/10000);
else
sprintf(szTextMoney, "%d v¹n %d l*îng", m_nMoneyNum/10000, m_nMoneyNum%10000);
}
đó là code vạn lượng trong source. hiểu nôm na là như thế này
Nếu số tiền < 10000 thì in ra số tiền + lượng
ngược lại nếu > 10000 và chia cho 10000 lấy phần dư mà bằng 0 thì đó chính là vạn tức in ra số tiền chia cho 10000 lấy phần nguyên. ngược lại thì phần dư khác 0 thì phần vạn chính là số tiền chia 10000 lấy phần nguyên, phần lượng là số tiền chia cho 10000 lấy phần dư.
Ví dụ mẫu hiển thị vạn lượng ở hành trang
Vào S3Client\Ui\Uicase mở file UiItem.cpp lên tìm biến m_Money
Tìm
void KUiItem::UpdateData()
{
m_ItemBox.Clear();
m_nMoney = g_pCoreShell->GetGameData(GDI_PLAYER_HOLD_MONEY, 0, 0);
m_Money.SetIntText(m_nMoney);
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;
}
}
thay đoạn m_Money.SetIntText(m_nMoney); bằng đoạn
char szMoneyText[50];
if (m_nMoney < 10000)
sprintf(szMoneyText, "%d l*îng", m_nMoney);
else
{
if (m_nMoney%10000 == 0)
sprintf(szMoneyText, "%d v¹n l*îng", m_nMoney/10000);
else
sprintf(szMoneyText, "%d v¹n %d l*îng", m_nMoney/10000, m_nMoney%10000);
}
m_Money.SetText(szMoneyText);
build lại S3Client rồi vào game test
Build soucre thì vào đây (<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>)
Nguồn: Cybergamevn
2: fife lỗi Skin Rồng cái Bang Không Ra Rồng , NgaMy Phong Sương Dánh có 1 Tia ....v.v.v.v..
3: Vòng Sáng trang Bị.
Demo:
<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>
Code:
[1] Khai báo các biến và các hàm
int m_color ;
int m_time ;
int n_mpoint;
int m_count[8];
unsigned int m_nColor;
int GetRectItem(int _w, int _h);
void DrawPoint(int x, int y, unsigned int wColor);
void DrawLight(int x, int y, int _w, int _h, int unit, int unitboder);
[2] Các hàm draw vòng sáng
int KWndObjectMatrix::GetRectItem(int _w, int _h)
{
int i;
if (_w == 1 && _h == 1) i = 0;
else if(_w == 1 && _h == 2) i = 1;
else if(_w == 1 && _h == 3) i = 2;
else if(_w == 1 && _h == 4) i = 3;
else if(_w == 1 && _h == 5) i = 4;
else if(_w == 2 && _h == 1) i = 5;
else if(_w == 2 && _h == 2) i = 6;
else if(_w == 2 && _h == 3) i = 7;
return i;
}
void KWndObjectMatrix::DrawPoint(int x, int y, unsigned int wColor)
{
KRUPoint Rect;
Rect.Color.Color_dw = wColor;
Rect.oPosition.nX = x;
Rect.oPosition.nY = y;
Rect.oPosition.nZ = 0;
g_pRepresentShell->DrawPrimitives(1, &Rect, RU_T_POINT, true);
}
void KWndObjectMatrix::DrawLight(int x, int y, int _w, int _h, int unit, int unitboder)
{
int r_color = 1; // 1::Yellow, 2::Purple, 3::White
x = x - 1;
y = y - 1;
int w = _w*unit - unitboder*2 + 1;
int h = _h*unit - unitboder*2 + 1;
int nX = x + w;
int nY = y + h;
int i = 0;
int j = 0;
int n_point = w + h;
int a[400];
int m_pb = 268/(w + h);
int color = 255;
for(i;i<2*n_point;i++)
{
if(color>=0)
{
a[i] = color;
color = color - m_pb;
}
else
{
a[i] = 0;
}
if(i==n_point)
color = 255;
}
i = m_count[GetRectItem( _w, _h)];
while (y < nY)
{
if(r_color == 1) // yellow
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | 0;
}
else if(r_color == 2) //purple
{
m_nColor = 0xFF000000 | a[i] << 16 | 0 | a[i] << 0;
}
else if(r_color == 3) //white
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | a[i] << 0;
}
this->DrawPoint(x+w,nY,m_nColor);
this->DrawPoint(x,y+j,m_nColor);
nY = nY - 1;
i++;
j++;
if(i == n_point) i=0;
if(m_count[GetRectItem( _w, _h)] >= n_point) m_count[GetRectItem( _w, _h)] = 0;
}
j=0;
i = m_count[GetRectItem( _w, _h)] + h;
while (x < nX)
{
if(r_color == 1) // yellow
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | 0;
}
else if(r_color == 2) //purple
{
m_nColor = 0xFF000000 | a[i] << 16 | 0 | a[i] << 0;
}
else if(r_color == 3) //white
{
m_nColor = 0xFF000000 | a[i] << 16 | a[i] << 8 | a[i] << 0;
}
this->DrawPoint(nX,y,m_nColor);
this->DrawPoint(x + j,y+h,m_nColor);
nX = nX - 1;
i=i+1;
j=j+1;
if(i == n_point) i=0;
if(m_count[GetRectItem( _w, _h)] >= n_point) m_count[GetRectItem( _w, _h)] = 0;
}
}
[3] Cách sử dụng
void KWndObjectMatrix::PaintWindow()
{
++m_time;
if (m_time % 4 == 0)
{
for(int i =0;i<8;i++)
++m_count[i];
}
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->DrawLight(Shadow.oPosition.nX,Shadow.oPosition.nY, pObj->DataW, pObj->DataH , m_nUnitWidth, m_nUnitBorder);
}
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);
}
}
[4] Gợi ý phân loại Item cho ai chưa bik làm
Down code item do trananh share, thả vào source. thêm và KItem.h hàm
int GetType() const { return m_CommonAttrib.m_nTypeItem; };
Vào CoreShell tìm và khai báo CoreShell.h
virtual int GetItemType(int nID) = 0;
thêm hàm vào CoreShell.cpp
int KCoreShell::GetItemType(int nID)
{
return Item[nID].GetType();
}
cách dùng tự hiểu nhé ^^
Mì ăn liền:
<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>
Ai ko làm đc thì múc file về máy sài. ko spam hỏi linh tinh.