PDA

View Full Version : [JX] [Release] Code Vòng Sáng Trang Bị [VNG ISO]



FanLoveJX
13-09-12, 11:25 AM
Như đã hứa. hôm nay mình share code vòng sáng cho các bạn.

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.

assaa
13-09-12, 11:28 AM
tem thank
Cái này vẫn bị item nào cũng có vòng sáng phải ko bạn.

trananh88vt
13-09-12, 11:40 AM
Thanks pro đã có lòng share cho bọn newbie như em sài hihi !
Chờ mãi cũng có đc cái mình cần hihi
Đúng là OldDream.rar :P

ps1990
13-09-12, 11:46 AM
cho hỏi dùng được cho những sever nào thế hả bạn.Có dùng cho sever jxvietnam không hả bạn

CopBaDauRang
13-09-12, 11:50 AM
chưa biết cách làm nhưng củng thanks chủ thớt vì một vo lam off lớn mạnh

trananh88vt
13-09-12, 12:08 PM
cho hỏi dùng được cho những sever nào thế hả bạn.Có dùng cho sever jxvietnam không hả bạn

Cái này dùng cho Source của JX nha bạn hì !
Nếu bạn là dev source thì sẽ hiểu hì. :P

shocklads
13-09-12, 12:11 PM
Buồn vậy, hàng hot ntn mà chỉ dành cho Dev, ko biết đến bao giờ dân đen mới đc xài 8->

nhocken2030
13-09-12, 12:23 PM
Down về bỏ zô đâu zậy mọi người

trananh88vt
13-09-12, 12:27 PM
Down về bỏ zô đâu zậy mọi người

Down về bỏ vào src build Project xong thấy lỗi tắt đi ngủ hihi !
Mình cũng chưa test nữa hì !

assaa
13-09-12, 12:49 PM
vẫn chưa chuẩn như vng. :>8->8->8->

Chưa chuẩn nhưng cũng đủ để dùng mà ;))

nhocken2030
13-09-12, 12:55 PM
k Add đc
hjz hjz
30 charrrrrrrrrrrrrrrrrrr

FanLoveJX
13-09-12, 01:06 PM
vẫn chưa chuẩn như vng. :>8->8->8->

hoz bik bên VNG xoay như thế nào :D ntn là ngon rồi

assaa
13-09-12, 01:09 PM
hoz bik bên VNG xoay như thế nào :D ntn là ngon rồi

Sau khi build và test thì thấy 1 cái là chỉ có vòng sáng ở hành trang còn khi đeo vào sẽ ko có vòng sáng.

FanLoveJX
13-09-12, 01:13 PM
Sau khi build và test thì thấy 1 cái là chỉ có vòng sáng ở hành trang còn khi đeo vào sẽ ko có vòng sáng.

tất nhiên rồi, cái đó tự làm tiếp h chỉ việc copy và paste :D

biến hóa code thế nào là tùy ý tưởng các bạn

trananh88vt
13-09-12, 01:13 PM
Sau khi build và test thì thấy 1 cái là chỉ có vòng sáng ở hành trang còn khi đeo vào sẽ ko có vòng sáng.

Vậy là chuẩn lắm rùi ! Mình chỉ cần chế theo cách mình là đc thui mà hihi

runkissbig
13-09-12, 03:29 PM
Vậy là chuẩn lắm rùi ! Mình chỉ cần chế theo cách mình là đc thui mà hihi

Do trananhvt là dân dev game chuyên nghiệp:D hì

trananh88vt
13-09-12, 03:50 PM
Do trananhvt là dân dev game chuyên nghiệp:D hì

Chuyên nghiệp gì đâu bạn ! Mình cũng chỉ là newbie ! Bít chút xíu về C++ thui

mrtran0781
13-09-12, 07:45 PM
1 câu hõi hết sức gà cái này có dành cho sever của JxVietNam không bạn 30 charrrrrrrrrrrr

lzlsky301
13-09-12, 08:13 PM
1 câu hõi hết sức gà cái này có dành cho sever của JxVietNam không bạn 30 charrrrrrrrrrrr
Ko được đâu bạn à. Code này dùng để build source :)

nametruong00
13-09-12, 08:30 PM
oh my got cái này em mong đợi nhắm nè :))
bao lâu nay chỉ có cái vòng làm nhìu người bị uất ức thần chưởng đánh đau cả đít

jxvietnam
14-09-12, 07:09 AM
Chưa có máy để test, buồn ghê :D

runkissbig
14-09-12, 08:28 AM
Chưa có máy để test, buồn ghê :D

jxvietnam nếu làm được phân loại trang bị thì share nhé :X

runkissbig
14-09-12, 10:39 AM
Sau khi set các hàm thì build ko bị lỗi, nhưng qua ben s3client lấy biến
if (m_CommonAttrib.m_nTypeItem >= 1)
set điều kiện thì không được. Chủ topic cho hỏi, mình có thể lấy Biến nào ở core để set điều kiện được không?

FanLoveJX
14-09-12, 11:21 AM
Sau khi set các hàm thì build ko bị lỗi, nhưng qua ben s3client lấy biến
if (m_CommonAttrib.m_nTypeItem >= 1)
set điều kiện thì không được. Chủ topic cho hỏi, mình có thể lấy Biến nào ở core để set điều kiện được không?

<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>
<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>



int KCoreShell::GetItemType(int nID) { return Item[nID].GetType(); }


như vậy cần tạo thủ tục GetType() cho Item, vào KItem.h
khai báo


int GetType() const { return m_CommonAttrib.m_nTypeItem; };

khi muốn kiểm tra thì bên client ta dùng hàm

g_pCoreShell->GetItemType(m_Object.uId);

đến đây mà bạn ko làm đc nữa thì mình bó tay

runkissbig
14-09-12, 12:22 PM
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2065: 'm_Object' : undeclared identifier
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2228: left of '.uId' must have class/struct/union type
loi nay là sao vậy? ai sửa giúp cái :D

FanLoveJX
14-09-12, 12:29 PM
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2065: 'm_Object' : undeclared identifier
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2228: left of '.uId' must have class/struct/union type
loi nay là sao vậy? ai sửa giúp cái :D

sax mình chỉ hướng dẫn thôi mà bạn copy rồi dán vô thế này thì bó tay thật, bạn nên trainning c++ đi rồi hãy làm. mấy cái này hỏi ko ai rảnh trả lời bạn đâu.

trananh88vt
14-09-12, 12:32 PM
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2065: 'm_Object' : undeclared identifier
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(568) : error C2228: left of '.uId' must have class/struct/union type
loi nay là sao vậy? ai sửa giúp cái :D

Ôi thôi thế là xong ! Chưa đủ 30char nữa hả hihi

CopBaDauRang
15-09-12, 12:44 AM
Buồn vậy, hàng hot ntn mà chỉ dành cho Dev, ko biết đến bao giờ dân đen mới đc xài 8->

<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>

shocklads
15-09-12, 12:51 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>
Cũng muốn vì đang tham khảo về JX nhưng tg rảnh ko nhiều:-*

FanLoveJX
16-09-12, 08:56 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>

assaa
16-09-12, 09:12 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>
Chán nhỉ? hi vọng bạn sớm trở lại với jx

FanLoveJX
16-09-12, 09:23 AM
Chán nhỉ? hi vọng bạn sớm trở lại với jx

thât ra mấy cái này ko khó lắm đâu chỉ cần bạn có đam mê + quyết tâm thì gì cug làm đc

mình kỳ này học ASM nâng cao code 1 bài thôi mà hộc máu

assaa
16-09-12, 09:53 AM
Biết là có đam mê và quyết tâm nhưng kiến thức cũng còn hạn hẹp nên cũng phải cố gắng

trananh88vt
16-09-12, 10:49 AM
Biết là có đam mê và quyết tâm nhưng kiến thức cũng còn hạn hẹp nên cũng phải cố gắng

sao bùn quá zậy bin ! Vậy hít ng dev JX à huhu ! Ta cũng từ bỏ quá qua học web ! :P

runkissbig
16-09-12, 10:57 AM
thât ra mấy cái này ko khó lắm đâu chỉ cần bạn có đam mê + quyết tâm thì gì cug làm đc

mình kỳ này học ASM nâng cao code 1 bài thôi mà hộc máu

Nếu bạn học BKHCM thì mình xin chỉ giáo ít C++:D
À, bạn hướng dẫn tường tận cái code vòng sáng:D Xem như là món quà cho những ai chưa rành về C++. thanks nhiều:)

FanLoveJX
16-09-12, 11:38 AM
Nếu bạn học BKHCM thì mình xin chỉ giáo ít C++:D
À, bạn hướng dẫn tường tận cái code vòng sáng:D Xem như là món quà cho những ai chưa rành về C++. thanks nhiều:)

mình học BKDN, code vòng sáng thì khi nào rảnh mình viết giải thích sau nha ^^

runkissbig
18-09-12, 12:04 PM
hì, lâu ngày không ai vào. lên cho FanLoveJX :P

runkissbig
22-09-12, 10:33 AM
Cuôi tuần rồi, FanLoveJX chỉ cách đưa vào F3 đi:P

ciabop
23-09-12, 03:53 AM
ai rành làm hộ mình. xin cảm ơn .....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:-*:-*:-*:-*:-*:-*

madness96
29-11-12, 06:23 PM
vậy cho mình hỏi muốn làm vòng sáng đó thì mình nên vào file nào chỉnh sữa vậy thanks :D

shinrenkyo
12-04-13, 06:48 PM
có cách nào chỉnh tốc độ cho nó chậm lại ko mấy pro?
cho hỏi nó báo lỗi chỗ KRUPoint Rect;
before identifier 'Rect'
mình khai báo sao vậy mọi người
mong đc giúp đỡ

shinrenkyo
13-04-13, 08:02 AM
ai giúp mình với!!!!!!!!!!!!!!!!!1

zcomputerz
02-07-13, 10:23 PM
Mình Build thì bị lỗi này nhỉ, ai fix dùm mình với. đa tạ
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(303) : error C2065: 'GDI_ITEM_GENRE' : undeclared identifier
E:\JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\ WndObjContainer.cpp(304) : error C2065: 'GDI_ITEM_TYPE' : undeclared identifier

cauam.tapiu
07-07-13, 04:39 PM
thanks chủ thớt 1 phát lấy tinh thần :))

thanhdungcnty
24-03-14, 11:22 PM
:(( nhin ma phat them. bit bao h lam dc #-o
pb BFF thi co cai nay. pb Vo lam tim em minh thich choi hok co ~:>