PDA

View Full Version : [JX] Source code - Hàm Say version 2



thienthanden2
29-01-13, 06:41 AM
Dear All!
Hôm nay mình xin hướng dẫn source newbie làm bảng Say2 (nói chuyện có hì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>
Đầu tiên thì các bạn cần thiết lập file ini trong thư mục Ui\UI3\ cho phù hợp với source của các bạn.
Tiếp theo tạo ra 2 file UiMsgSel2.h và và UiMsgSel2.cpp bằng cách copy từ file gốc UiMsgSel.h và UiMsgSel.cpp, replace cụm từ uimsgsel bằng uimsgsel2.
Bây giờ tiến hành làm:
1.File \JX\swrod3\SwordOnline\Sources\Core\Src\GameDataDe f.h
Gần struct KUiQuestionAndAnswer thêm:

struct KUiNpcSpr
{
char ImageFile[128];
unsigned short MaxFrame;
};
2. File \JX\swrod3\SwordOnline\Headers\KProtocol.h
Tìm struct PLAYER_SCRIPTACTION_SYNC thêm 1 biến m_Select

typedef struct
{
BYTE ProtocolType;
WORD m_wProtocolLong;
BYTE m_nOperateType; //操作类型
BYTE m_bUIId, m_bOptionNum, m_bParam1, m_bParam2, m_Select;// chỉ thêm 1 biến ở dòng này
int m_nParam;
int m_nBufferLen;
char m_pContent[MAX_SCIRPTACTION_BUFFERNUM]; //带控制符
} PLAYER_SCRIPTACTION_SYNC;
3.File \JX\swrod3\SwordOnline\Sources\Core\Src\ScriptFuns .cpp
Tìm và thêm 1 hàm vào gần hàm Say như thế này:

{"Say", LuaSelectUI},
{"Say2", LuaSaySPR},
Tạo hàm LuaSaySPR y chang hàm LuaSelectUI
Tại hàm LuaSelectUI Tìm và thêm biến mới tạo lúc nãy vào như thế này:

PLAYER_SCRIPTACTION_SYNC UiInfo;
UiInfo.m_bUIId = UI_SELECTDIALOG;
UiInfo.m_bParam1 = nDataType;//主信息的类型,字符串(0)或数字(1)
UiInfo.m_bOptionNum = nOptionNum;
UiInfo.m_nOperateType = SCRIPTACTION_UISHOW;
UiInfo.m_Select = 0; //Từ nay 0 là Say, 1 là Say2
Tương tự tại hàm LuaSaySPR mới tạo:

PLAYER_SCRIPTACTION_SYNC UiInfo;
UiInfo.m_bUIId = UI_SELECTDIALOG;
UiInfo.m_bParam1 = nDataType;//主信息的类型,字符串(0)或数字(1)
UiInfo.m_bOptionNum = nOptionNum;
UiInfo.m_nOperateType = SCRIPTACTION_UISHOW;
UiInfo.m_Select = 1; //Say2
Vậy là đã có 1 hàm lua mới rồi, bây giờ mình bắt đầu xử lý hàm đó.
4.File \JX\swrod3\SwordOnline\Sources\Core\Src\KPlayer.h
Tìm chỗ nào có public: thì thêm biến vào:

#ifndef _SERVER
int m_nImageNpcID; //id npc
#endif
5.File \JX\swrod3\SwordOnline\Sources\Core\Src\KPlayer.cp p
Hàm void KPlayer::Release()

void KPlayer::Release()
{
#ifndef _SERVER
m_RunStatus = 0;
m_dwNextLevelLeadExp = 0;
m_nLeftSkillID = 0;
m_nLeftSkillLevel = 0;
m_nRightSkillID = 0;
m_nRightSkillLevel = 0;
m_nSendMoveFrames = defMAX_PLAYER_SEND_MOVE_FRAME;
m_MouseDown[0] = FALSE;
m_MouseDown[1] = FALSE;
m_nImageNpcID = 0; //khởi tạo
#endif
Tìm và sửa cái hàm này

void KPlayer::FindSelectNpc(int x, int y, int nRelation)
{
int nNpcIdx = 0;

nNpcIdx = NpcSet.SearchNpcAt(x, y, nRelation, 40);

if (nNpcIdx)
{
m_nPeapleIdx = nNpcIdx;
m_nImageNpcID = nNpcIdx; // chỉ thêm có dòng này thui
}
else
m_nPeapleIdx = 0;
}
Tiếp theo tìm hàm này void KPlayer::OnScriptAction(PLAYER_SCRIPTACTION_SYNC * pMsg) sẽ thấy ngay case UI_SELECTDIALOG, thêm vào 1 ít code như sau, mình chỉ thêm mấy dòng có chú thích và đoạn ***** mà thôi:

case UI_SELECTDIALOG://通知客户端显示选择窗口
{
KUiQuestionAndAnswer *pQuest = NULL;
KUiNpcSpr *pImage = NULL; // thêm dòng này

if (pScriptAction->m_nBufferLen <= 0) break;

if (pScriptAction->m_bOptionNum <= 0)
pQuest = (KUiQuestionAndAnswer *)malloc(sizeof(KUiQuestionAndAnswer));
else
pQuest = (KUiQuestionAndAnswer *)malloc(sizeof(KUiQuestionAndAnswer) + sizeof(KUiAnswer) * (pScriptAction->m_bOptionNum - 1));
pImage = (KUiNpcSpr *)malloc(sizeof(KUiNpcSpr)); // thêm dòng này
char strContent[1024];
char * pAnswer = NULL;
pQuest->AnswerCount = 0;
//主信息为字符串
if (pScriptAction->m_bParam1 == 0)
{
g_StrCpyLen(strContent, pScriptAction->m_pContent, pScriptAction->m_nBufferLen + 1);
pAnswer = strstr(strContent, "|");
if (!pAnswer)
{
pScriptAction->m_bOptionNum = 0;
pQuest->AnswerCount = 0;
}
else
*pAnswer++ = 0;

g_StrCpyLen(pQuest->Question, strContent, sizeof(pQuest->Question));
pQuest->QuestionLen = TEncodeText(pQuest->Question, strlen(pQuest->Question));
}
//主信息为数字标识
else
{
g_StrCpyLen(pQuest->Question, g_GetStringRes(*(int *)pScriptAction->m_pContent, szString, 1000), sizeof(pQuest->Question));
pQuest->QuestionLen = TEncodeText(pQuest->Question, strlen(pQuest->Question));

g_StrCpyLen(strContent, pScriptAction->m_pContent + sizeof(int), pScriptAction->m_nBufferLen - sizeof(int) + 1);
pAnswer = strContent + 1;
}

for (int i = 0; i < pScriptAction->m_bOptionNum; i ++)
{
char * pNewAnswer = strstr(pAnswer, "|");

if (pNewAnswer)
{
*pNewAnswer = 0;
strcpy(pQuest->Answer[i].AnswerText, pAnswer);
pQuest->Answer[i].AnswerLen = -1;
pAnswer = pNewAnswer + 1;
}
else
{
strcpy(pQuest->Answer[i].AnswerText, pAnswer);
pQuest->Answer[i].AnswerLen = -1;
pQuest->AnswerCount = i + 1;
break;
}
}

g_bUISelIntelActiveWithServer = pScriptAction->m_bParam2;
g_bUISelLastSelCount = pQuest->AnswerCount;
/*******************************************Code by thienthanden2************************************* ******************/
if (m_nImageNpcID)
{
char szBuffer[128];
for (int i = 0; i < 16; i++)
{ Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetFileName(i, 3, 0, "", szBuffer, sizeof(szBuffer));
if (szBuffer[0])
{
strcpy(pImage->ImageFile, szBuffer);
pImage->MaxFrame = (Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetTotalFrames(i, 3, 0, 16))/
(Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetTotalDirs(i, 3, 0, 16)); goto Next;
}
}
for (int j = 0; j < 16; j++)
{
Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetFileName(j, 0, 0, "", szBuffer, sizeof(szBuffer));
if (szBuffer[0])
{
strcpy(pImage->ImageFile, szBuffer);
pImage->MaxFrame = (Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetTotalFrames(j, 0, 0, 16))/
(Npc[m_nImageNpcID].GetNpcRes()->m_pcResNode->GetTotalDirs(j, 0, 0, 16)); goto Next;
}
}

}
Next:
if (pScriptAction->m_Select == 1 && m_nImageNpcID)
CoreDataChanged(GDCNI_QUESTION_CHOOSE,(unsigned int) pQuest, (int) pImage);
else CoreDataChanged(GDCNI_QUESTION_CHOOSE,(unsigned int) pQuest, 0);
free(pImage);
pImage = NULL;
/******************************************Kết thúc********************************************* ***********/

free(pQuest);
pQuest = NULL;
}
break;
6.File \JX\swrod3\SwordOnline\Sources\S3Client\Ui\GameSpa ceChangedNotify.cpp
inlude thêm vào:

#include "UiCase/UiMsgSel.h"
#include "UiCase/UiMsgSel2.h"//tìm cái kia và inlude cái này kế bên
Tìm case GDCNI_QUESTION_CHOOSE và sửa lại:

case GDCNI_QUESTION_CHOOSE:
{
if (nParam)
KUiMsgSel2::OpenWindow((KUiQuestionAndAnswer*)uPar am, (KUiNpcSpr*)nParam);
else KUiMsgSel::OpenWindow((KUiQuestionAndAnswer*)uPara m);
}break;
7.File \JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\Wn dImage.h
Khai báo thêm 1 hàm void SetMaxFrame(int nMaxFrame);
8.File \JX\swrod3\SwordOnline\Sources\S3Client\Ui\Elem\Wn dImage.cpp
Nãy mới tạo hàm thì giờ xử lý hàm:

void KWndImage::SetMaxFrame(int nMaxFrame)
{
m_Image.nNumFrames = nMaxFrame;
}
9.1.Giai đoạn cuối File UiMsgSel2.h mới tạo ở đầu trang
Sửa lại thông số cho hàm static KUiMsgSel2* OpenWindow(KUiQuestionAndAnswer* pContent, KUiNpcSpr* pImage); //thêm param thứ 2
Khai báo thêm 1 biến chứa hình ảnh npc:

KWndImage m_NpcSpr;
9.2. File UiMsgSel2.cpp mới tạo
Sửa lại hàm openwindow và 1 số thứ:

#define SCHEME_INI "Say2Fun.ini" //Sửa đường dẫn file ini cho phù hợp với source của các bạn, file ini do các bạn tạo ra từ file ini có sẵn của hàm Say

KUiMsgSel2* KUiMsgSel2::OpenWindow(KUiQuestionAndAnswer* pContent, KUiNpcSpr *pImage)
{
if (m_pSelf == NULL)
{
m_pSelf = new KUiMsgSel2;
if (m_pSelf)
{
m_pSelf->Initialize();
m_pSelf->m_NpcSpr.SetImage(ISI_T_SPR,pImage->ImageFile,true);
int nWidth, nHeight;
m_pSelf->m_NpcSpr.GetSize(&nWidth, &nHeight);
m_pSelf->m_NpcSpr.SetPosition(80 -nWidth/2, 80 -nHeight/2);
m_pSelf->m_NpcSpr.SetMaxFrame(pImage->MaxFrame);
}
}
if (m_pSelf)
{ m_pSelf->m_NpcSpr.SetImage(ISI_T_SPR,pImage->ImageFile,true);
int nWidth, nHeight;
m_pSelf->m_NpcSpr.GetSize(&nWidth, &nHeight);
m_pSelf->m_NpcSpr.SetPosition(80 -nWidth/2, 80 -nHeight/2);
m_pSelf->m_NpcSpr.SetMaxFrame(pImage->MaxFrame);
UiSoundPlay(UI_SI_WND_OPENCLOSE);
m_pSelf->BringToTop();
m_pSelf->Show(pContent);
}
return m_pSelf;
}

int KUiMsgSel2::Initialize()
{
AddChild(&m_NpcSpr); // dòng thêm
AddChild(&m_MsgScrollList);
AddChild(&m_InfoText);
m_Style &= ~WND_S_VISIBLE;
Wnd_AddWindow(this, WL_TOPMOST);

char Scheme[256];
g_UiBase.GetCurSchemePath(Scheme, 256);
LoadScheme(Scheme);

return true;
}

void KUiMsgSel2::LoadScheme(const char* pScheme)
{
if (m_pSelf == NULL)
return;
char Buff[128];
KIniFile Ini;
sprintf(Buff, "%s\\"SCHEME_INI, pScheme);
if (Ini.Load(Buff))
{
m_pSelf->Init(&Ini, "Main");
m_pSelf->m_MsgScrollList.Init(&Ini, "Select");
m_pSelf->m_InfoText.Init(&Ini, "InfoText");
m_pSelf->m_NpcSpr.Init(&Ini, "NpcSpr"); // dòng này là khởi tạo theo file ini, khỏi cũng được
}
}

void KUiMsgSel2::Breathe()
{ if (m_NpcSpr.IsVisible())
m_NpcSpr.NextFrame(); //thêm
if (m_bAutoUp)
{
if (IR_IsTimePassed(200, m_uLastScrollTime))
{
ChangeCurSel(false);
m_uLastScrollTime = IR_GetCurrentTime();
}
}

if (m_bAutoDown)
{
if (IR_IsTimePassed(200, m_uLastScrollTime))
{
ChangeCurSel(true);
m_uLastScrollTime = IR_GetCurrentTime();
}
}
}
He he đến đây các bạn đã hoàn thành, build core và client lại. Bây giờ các bạn có thể Say2 với bất cứ Npc nào rồi. Vẫn còn 1 thanh cuộn các bạn phải thêm vào ở infotext nếu muốn giống VNG. Cũng rất đơn giản, chỉ cần xem các Ui có thanh cuộn và làm theo. Chúc các bạn thành công! :)>-

greentears
29-01-13, 06:51 AM
pro nào mới xuất hiện $-)
.........................................

assaa
30-01-13, 07:48 AM
Cách sử dụng hình ảnh npc trên bảng say này có giống bên CBT ko bạn. có thể hd cách hiển thị được ko bạn

thienthanden2
30-01-13, 09:28 AM
Cách sử dụng hình ảnh npc trên bảng say này có giống bên CBT ko bạn. có thể hd cách hiển thị được ko bạn

Tự động nó có hình rùi, ko cần thiết lập gì thêm. Nhưng muốn hoàn thiện phải đọc hiểu và chỉnh source lại theo ý mình :D

jxvietnam
31-01-13, 04:42 PM
nếu rãnh thì hd làm cái pass rương nhập số từ bàn phím luôn nha bạn :)

radise
31-01-13, 06:08 PM
:) chia sẻ thế này thì ai cũng tự làm cho mình 1 sever đc rồi =P~

thienthanden2
31-01-13, 06:24 PM
nếu rãnh thì hd làm cái pass rương nhập số từ bàn phím luôn nha bạn :)

Pass rương mình làm rồi, nhưng code lằn nhằn phức tạp quá nên ko viết tut đc. Mấy cái phức tạp thì có lẽ phải tùy vào sự tìm tòi của mỗi người thui.

Bi_Dep_Trai
31-01-13, 06:31 PM
Pass rương mình làm rồi, nhưng code lằn nhằn phức tạp quá nên ko viết tut đc. Mấy cái phức tạp thì có lẽ phải tùy vào sự tìm tòi của mỗi người thui.

<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ái này là nó tự thay đổi theo npc luôn àh vị dú lick vào npc nào là ra hình npc đó hả

thienthanden2
31-01-13, 10:23 PM
<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ái này là nó tự thay đổi theo npc luôn àh vị dú lick vào npc nào là ra hình npc đó hả

Chính xác là vậy, đọc hiểu code là biết rồi. Tuy nhiên các bạn cần lấy ID ở hàm OnButtonDown thì chính xác hơn hàm FindSelectNpc. Nói chung phải linh hoạt mà tùy chỉnh. Đây chỉ là hướng dẫn cơ bản mà thôi.

Smile68
31-01-13, 10:39 PM
Chính xác là vậy, đọc hiểu code là biết rồi. Tuy nhiên các bạn cần lấy ID ở hàm OnButtonDown thì chính xác hơn hàm FindSelectNpc. Nói chung phải linh hoạt mà tùy chỉnh. Đây chỉ là hướng dẫn cơ bản mà thôi.


pro hướng dẫn làm mua số lượng đi :">

jxvietnam
10-02-13, 12:53 AM
mình làm theo bạn hd rồi
build core ok, nhưng tới khi build s3client thì bị lỗi này


chả hiểu sao up ảnh toàn hình nhỏ xíu ko à
bạn chịu khó vô đây coi hình nha <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>

:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.h(21) : error C2061: syntax error : identifier 'KUiNpcSpr'
E:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.cpp(27) : error C2511: 'OpenWindow' : overloaded member function 'class KUiMsgSelNew *(struct KUiQuestionAndAnswer *,struct KUiNpcSpr *)' not found in 'KUiMsgSelNew'
E:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.h(17) : see declaration of 'KUiMsgSelNew'
Error executing cl.exe.

thienthanden2
10-02-13, 01:02 AM
mình làm theo bạn hd rồi
build core ok, nhưng tới khi build s3client thì bị lỗi này


chả hiểu sao up ảnh toàn hình nhỏ xíu ko à
bạn chịu khó vô đây coi hình nha <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>

:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.h(21) : error C2061: syntax error : identifier 'KUiNpcSpr'
E:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.cpp(27) : error C2511: 'OpenWindow' : overloaded member function 'class KUiMsgSelNew *(struct KUiQuestionAndAnswer *,struct KUiNpcSpr *)' not found in 'KUiMsgSelNew'
E:\Source JX Full\JX\swrod3\SwordOnline\Sources\S3Client\Ui\UiC ase\UiMsgSelNew.h(17) : see declaration of 'KUiMsgSelNew'
Error executing cl.exe.

Bạn chưa khai báo struct KUiNpcSpr trong cái file .h đó. Cụ thể là vầy :

#include "../Elem/WndMessageListBox.h"
#include "../Elem/WndShowAnimate.h"
#include "../Elem/WndScrollBar.h"
#include "../Elem/WndText.h"
#include "../Elem/WndImage.h"
#include "../Elem/UiImage.h"

struct KUiQuestionAndAnswer;
struct KUiNpcSpr; //khai báo đây nè
class KUiMsgSel2 : protected KWndShowAnimate
{
public:
//----界面面板统一的接口函数----
static KUiMsgSel2* OpenWindow(KUiQuestionAndAnswer* pContent, KUiNpcSpr* pImage); //打开窗口,返回唯一的一个类对象实� �
static KUiMsgSel2* GetIfVisible();
static void LoadScheme(const char* pScheme); //载入界面方案
static void CloseWindow(bool bDestroy); //关闭窗口

danghai1993
16-05-13, 02:05 PM
Mình xd core tốt ngưng tới s3client thì bị cái này:


UiSoundSetting.cpp
GameSpaceChangedNotify.cpp
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2065: 'OpenWindow' : undeclared identifier
ShortcutKey.cpp
UiBase.cpp
UiShell.cpp
ChatFilter.cpp
FilterTextLib.cpp
S3Client.cpp
NetConnectAgent.cpp
Login.cpp
TextCtrlCmd.cpp
ErrorCode.cpp
Generating Code...
Error executing cl.exe.

Game.exe - 2 error(s), 0 warning(s)

Mong mọi người vào giúp =((

ngaunachay
16-05-13, 02:30 PM
Mình xd core tốt ngưng tới s3client thì bị cái này:


UiSoundSetting.cpp
GameSpaceChangedNotify.cpp
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2065: 'OpenWindow' : undeclared identifier
ShortcutKey.cpp
UiBase.cpp
UiShell.cpp
ChatFilter.cpp
FilterTextLib.cpp
S3Client.cpp
NetConnectAgent.cpp
Login.cpp
TextCtrlCmd.cpp
ErrorCode.cpp
Generating Code...
Error executing cl.exe.

Game.exe - 2 error(s), 0 warning(s)

Mong mọi người vào giúp =((

Úp luôn cho ông, mình làm theo anh topic như cũng bị lỗi vậy ai giúp với!!!
À cho em hỏi luôn "Đầu tiên thì các bạn cần thiết lập file ini trong thư mục Ui\UI3\ cho phù hợp với source của các bạn."
Mình đặt file nó tên *.ini vậy

thienthanden2
16-05-13, 03:51 PM
Các bạn chưa #include UiMsgSel2.h vào đầu file GameSpaceChangedNotify.cpp nên bị lỗi undeclared đó mà.
Còn file ini thì copy của hàm Say cũ và đặt tên gì cũng được hết. Đặt tên gì thì khi load trong source phải đúng cái tên đó (hàm load trong file UiMsgSel2.cpp).

ngaunachay
17-05-13, 12:00 AM
Các bạn chưa #include UiMsgSel2.h vào đầu file GameSpaceChangedNotify.cpp nên bị lỗi undeclared đó mà.
Còn file ini thì copy của hàm Say cũ và đặt tên gì cũng được hết. Đặt tên gì thì khi load trong source phải đúng cái tên đó (hàm load trong file UiMsgSel2.cpp).

em thêm biến vào sau public: của KPlayer.h nó cứ báo lỗi

C:\AWJX\SwordOnline\Sources\Core\Src\KPlayer.h(271 ) : error C2086: 'm_nImageNpcID' : redefinition
C:\AWJX\SwordOnline\Sources\Core\Src\KPlayer.h(530 ) : error C2086: 'm_nImageNpcID' : redefinition
Và đã #include UiMsgSel2.h vào đầu file GameSpaceChangedNotify.cpp vẫn bị lỗi
C:\AWJX\SwordOnline\Sources\S3Client\Ui\GameSpaceC hangedNotify.cpp(267) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
C:\AWJX\SwordOnline\Sources\S3Client\Ui\GameSpaceC hangedNotify.cpp(267) : error C2065: 'OpenWindow' : undeclared identifier

thienthanden2
17-05-13, 09:06 AM
em thêm biến vào sau public: của KPlayer.h nó cứ báo lỗi

C:\AWJX\SwordOnline\Sources\Core\Src\KPlayer.h(271 ) : error C2086: 'm_nImageNpcID' : redefinition
C:\AWJX\SwordOnline\Sources\Core\Src\KPlayer.h(530 ) : error C2086: 'm_nImageNpcID' : redefinition
Và đã #include UiMsgSel2.h vào đầu file GameSpaceChangedNotify.cpp vẫn bị lỗi
C:\AWJX\SwordOnline\Sources\S3Client\Ui\GameSpaceC hangedNotify.cpp(267) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
C:\AWJX\SwordOnline\Sources\S3Client\Ui\GameSpaceC hangedNotify.cpp(267) : error C2065: 'OpenWindow' : undeclared identifier

cái biến đó hình như là bạn đã khai trùng 2 lần. Còn class KUiMsgSel2 thì coi kỹ lại 2 file UiMsgSel2.h và UiMsgSel2.cpp coi có thay toàn bộ UiMsgSel thành UiMsgSel2 chưa. Và đã add vào trong project của visual hay chưa.

ngaunachay
17-05-13, 02:18 PM
cái biến đó hình như là bạn đã khai trùng 2 lần. Còn class KUiMsgSel2 thì coi kỹ lại 2 file UiMsgSel2.h và UiMsgSel2.cpp coi có thay toàn bộ UiMsgSel thành UiMsgSel2 chưa. Và đã add vào trong project của visual hay chưa.

Add 2 file mới tạo vào project thì bị lỗi này nữa :(:(

C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(27) : error C2511: 'OpenWindow' : overloaded member function 'class KUiMsgSel2 *(struct KUiQuestionAndAnswer *)' not found in 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(50) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(50) : error C2228: left of '.SetImage' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(52) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(52) : error C2228: left of '.GetSize' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(53) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(53) : error C2228: left of '.SetPosition' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(54) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(54) : error C2228: left of '.SetMaxFrame' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(58) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(58) : error C2228: left of '.SetImage' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(60) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(60) : error C2228: left of '.GetSize' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(61) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(61) : error C2228: left of '.SetPosition' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(62) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(62) : error C2228: left of '.SetMaxFrame' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(124) : error C2039: 'm_NpcSpr' : is not a member of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.h(17) : see declaration of 'KUiMsgSel2'
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(124) : error C2228: left of '.Init' must have class/struct/union type
C:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiM sgSel2.cpp(268) : error C2228: left of '.NextFrame' must have class/struct/union type
Generating Code...
Error executing cl.exe.

Game.exe - 20 error(s), 0 warning(s)

danghai1993
17-05-13, 05:48 PM
Sao mình nhấn vào Npc nói chuyện, có tới 2 bảng xuất hiện.

1 bảng là Say bình thường.

1 bảng là Say2 mới làm. :(

Say2 nằm chồng lên Say

ngaunachay
17-05-13, 06:22 PM
Sao mình nhấn vào Npc nói chuyện, có tới 2 bảng xuất hiện.

1 bảng là Say bình thường.

1 bảng là Say2 mới làm. :(

Say2 nằm chồng lên Say

bạn fix được lối kia rồi hả chỉ mình fix với

danghai1993
17-05-13, 06:31 PM
bạn fix được lối kia rồi hả chỉ mình fix với

Mình add vào project thì đâu có bị lỗi như bạn ?

Bạn xem lại đã làm kỹ các bước chưa. ?

Mình làm còn chưa hoàn thiện đây này. :((

Mình bị lỗi hiện Say và Say2 1 lúc, đang mò, ko bik ai chỉ ko nhỉ ?

ngaunachay
17-05-13, 06:35 PM
Mình add vào project thì đâu có bị lỗi như bạn ?

Bạn xem lại đã làm kỹ các bước chưa. ?

Mình làm còn chưa hoàn thiện đây này. :((

Mình bị lỗi hiện Say và Say2 1 lúc, đang mò, ko bik ai chỉ ko 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>

shinrenkyo
17-05-13, 08:28 PM
Bạn chưa khai báo struct KUiNpcSpr trong cái file .h đó. Cụ thể là vầy :

#include "../Elem/WndMessageListBox.h"
#include "../Elem/WndShowAnimate.h"
#include "../Elem/WndScrollBar.h"
#include "../Elem/WndText.h"
#include "../Elem/WndImage.h"
#include "../Elem/UiImage.h"

struct KUiQuestionAndAnswer;
struct KUiNpcSpr; //khai báo đây nè
class KUiMsgSel2 : protected KWndShowAnimate
{
public:
//----界面面板统一的接口函数----
static KUiMsgSel2* OpenWindow(KUiQuestionAndAnswer* pContent, KUiNpcSpr* pImage); //打开窗口,返回唯一的一个类对象实� �
static KUiMsgSel2* GetIfVisible();
static void LoadScheme(const char* pScheme); //载入界面方案
static void CloseWindow(bool bDestroy); //关闭窗口
đã khai báo như thế nhưng bị lỗi này là sao bạn:

:\Documents and Settings\Administrator\Desktop\AWJX\SwordOnline\So urces\S3Client\Ui\UiCase/UiMsgSel2.h(22) : error C2143: syntax error : missing ';' before '*'
C:\Documents and Settings\Administrator\Desktop\AWJX\SwordOnline\So urces\S3Client\Ui\UiCase/UiMsgSel2.h(22) : error C2501: 'OpenWindow' : missing storage-class or type specifiers
C:\Documents and Settings\Administrator\Desktop\AWJX\SwordOnline\So urces\S3Client\Ui\GameSpaceChangedNotify.cpp(267) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
C:\Documents and Settings\Administrator\Desktop\AWJX\SwordOnline\So urces\S3Client\Ui\GameSpaceChangedNotify.cpp(267) : error C2065: 'OpenWindow' : undeclared identifier

Với lại cho mình hỏi chổ này mình ko rõ lắm

#define SCHEME_INI "Say2Fun.ini" //Sửa đường dẫn file ini cho phù hợp với source của các bạn, file ini do các bạn tạo ra từ file ini có sẵn của hàm Say
ko biet thêm cái đó chỗ nào
với lại cái này
Đầu tiên thì các bạn cần thiết lập file ini trong thư mục Ui\UI3\ cho phù hợp với source của các bạn.
giúp mình cái nha

thienthanden2
18-05-13, 11:07 AM
Các bạn khi copy code qua thì phải hiểu nó có tác dụng gì nhé. Lúc đó mới biết là tại sao lại gặp lỗi. Phải có căn bản về c++ trước đã. Nếu ko mình cũng ko biết là giúp thế nào.

ngaunachay
18-05-13, 11:20 AM
Các bạn khi copy code qua thì phải hiểu nó có tác dụng gì nhé. Lúc đó mới biết là tại sao lại gặp lỗi. Phải có căn bản về c++ trước đã. Nếu ko mình cũng ko biết là giúp thế nào.

Cho em hỏi muốn việt hóa npc trong thành vào file nào vậy anh!

thienthanden2
18-05-13, 11:40 AM
Cho em hỏi muốn việt hóa npc trong thành vào file nào vậy anh!

Sửa trong \setting\Npcs.txt. Nếu vẫn ko được thì xóa luôn cái region_S.dat của map đó rồi add lại bằng hàm AddNpc(...).

ngaunachay
18-05-13, 11:44 AM
Sửa trong \setting\Npcs.txt. Nếu vẫn ko được thì xóa luôn cái region_S.dat của map đó rồi add lại bằng hàm AddNpc(...).

vậy xóa hết region_S.dat của mỗi map hả anh

danghai1993
18-05-13, 12:09 PM
Sửa trong \setting\Npcs.txt. Nếu vẫn ko được thì xóa luôn cái region_S.dat của map đó rồi add lại bằng hàm AddNpc(...).

Bạn cho hỏi là khi nhấp vào Npc thì xuất hiện 2 bảng Say (Say + Say2) cùng 1 lúc.

Như thế sửa thế nào ?

thienthanden2
18-05-13, 03:20 PM
vậy xóa hết region_S.dat của mỗi map hả anh

Xóa map nào cần chỉnh thui. :-s


Bạn cho hỏi là khi nhấp vào Npc thì xuất hiện 2 bảng Say (Say + Say2) cùng 1 lúc.

Như thế sửa thế nào ?

Mình chưa hề gặp trường hợp như vậy, có thể là trong file UiMsgSel2.cpp bạn chưa có đổi cụm từ UiMsgSel thành UiMsgSel2, đoạn code mà mở ra cửa sổ là ở đây, bạn coi kỹ lại sai chỗ nào:

Next:
if (pScriptAction->m_Select == 1 && m_nImageNpcID)
CoreDataChanged(GDCNI_QUESTION_CHOOSE,(unsigned int) pQuest, (int) pImage); //cái này là mở Say2
else CoreDataChanged(GDCNI_QUESTION_CHOOSE,(unsigned int) pQuest, 0); //cái này là mở Say cũ


case GDCNI_QUESTION_CHOOSE:
{
if (nParam)
KUiMsgSel2::OpenWindow((KUiQuestionAndAnswer*)uPar am, (KUiNpcSpr*)nParam); // mở Say2
else KUiMsgSel::OpenWindow((KUiQuestionAndAnswer*)uPara m); // mở Say cũ
}break;

shinrenkyo
18-05-13, 05:53 PM
Mình xd core tốt ngưng tới s3client thì bị cái này:


UiSoundSetting.cpp
GameSpaceChangedNotify.cpp
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2065: 'OpenWindow' : undeclared identifier
ShortcutKey.cpp
UiBase.cpp
UiShell.cpp
ChatFilter.cpp
FilterTextLib.cpp
S3Client.cpp
NetConnectAgent.cpp
Login.cpp
TextCtrlCmd.cpp
ErrorCode.cpp
Generating Code...
Error executing cl.exe.

Game.exe - 2 error(s), 0 warning(s)

Mong mọi người vào giúp =((
Lỗi trên sao khi sửa KUiMsgSel2 thành Kuimgsel2
thì bị thế nà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>
<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>
Release/Game.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Game.exe - 2 error(s), 0 warning(s)

chưa từng thấy cái lỗi

ngaunachay
18-05-13, 06:51 PM
úi giời ơi, dính cái này rồi, đã include như bạn thienthanden2 chỉ nhưng vẫn bị,giúp mình với

add 2 file đó vào project cửa VS chưa :-*:-*:-*:-*

shinrenkyo
18-05-13, 10:10 PM
add 2 file đó vào project cửa VS chưa :-*:-*:-*:-*
là sao? ômg ol pm tiui cái

,.........................................

shinrenkyo
20-05-13, 07:23 AM
Lỗi trên sao khi sửa KUiMsgSel2 thành Kuimgsel2
thì bị thế này
chưa từng thấy cái lỗi
help meeeeeeeeeeeeeeeeeee
30charrrrrrrrrrrrr

ngaunachay
20-05-13, 07:38 AM
help meeeeeeeeeeeeeeeeeee
30charrrrrrrrrrrrr

file KUiMgsSel2.h chưa đổi hết __UMsgSel__ thành UMsgSel2

shinrenkyo
20-05-13, 07:42 AM
file KUiMgsSel2.h chưa đổi hết __UMsgSel__ thành UMsgSel2
<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>
làm gì có file KUiMgsSel2.h
chỉ có UiMgsSel2.h thôi đổi thành

#ifndef __uimsgsel2_H__
#define __uimsgsel2_H__
hết rồi mà

hupchao
20-05-13, 07:52 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>
làm gì có file KUiMgsSel2.h
chỉ có UiMgsSel2.h thôi đổi thành

hết rồi mà

shinrenkyo ơi bạn có thể teamviewer giúp mình vấn đề này được không,mình mới down 1 bộ web jx về mà khi chạy localhost ko đc,web chạy ở xampp :(

shinrenkyo
20-05-13, 07:54 AM
shinrenkyo ơi bạn có thể teamviewer giúp mình vấn đề này được không,mình mới down 1 bộ web jx về mà khi chạy localhost ko đc,web chạy ở xampp :(
mình ko chạy web lần nào cả bạn àk:(
sr ko giúp đc bạn,mình cũng đang sần đầu đây

shinrenkyo
20-05-13, 08:02 AM
add 2 file đó vào project cửa VS chưa :-*:-*:-*:-*
ông ra teamview add project giúp tui cái,chưa làm bao giờ

danghai1993
20-05-13, 09:27 AM
Chỉ cần bạn làm kỹ những bước trên.

Thêm bước add vào project.

Chỗ hàm show trong UiMsgSel2.cpp thiếu 1 biến.

shinrenkyo
20-05-13, 09:31 AM
Chỉ cần bạn làm kỹ những bước trên.

Thêm bước add vào project.

Chỗ hàm show trong UiMsgSel2.cpp thiếu 1 biến.
thiếu biến nào bạn chỉ dùm mình
mình chưa biết add project nên mới ác

danghai1993
20-05-13, 09:43 AM
Vào project, có chữ add đó, add vào là hết bị lỗi đó

shinrenkyo
20-05-13, 09:55 AM
Vào project, có chữ add đó, add vào là hết bị lỗi đó
cho mình xin cái ảnh đi bạn
mới làm phát 107 lổi hoảng wa:))

danghai1993
20-05-13, 09:57 AM
cho mình xin cái ảnh đi bạn
mới làm phát 107 lổi hoảng wa:))

Project là chỗ mình xóa đường dẫn á, có chữ add.

Mình hơi bất tiện khi úp ảnh, bạn th6ng cảm

shinrenkyo
20-05-13, 10:05 AM
Project là chỗ mình xóa đường dẫn á, có chữ add.

Mình hơi bất tiện khi úp ảnh, bạn th6ng cảm
àk,ra để mình thử?
bạn mở map đc ko?

shinrenkyo
20-05-13, 10:18 AM
Mình xd core tốt ngưng tới s3client thì bị cái này:


UiSoundSetting.cpp
GameSpaceChangedNotify.cpp
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2653: 'KUiMsgSel2' : is not a class or namespace name
D:\sourceJX\swrod3\SwordOnline\Sources\S3Client\Ui \GameSpaceChangedNotify.cpp(258) : error C2065: 'OpenWindow' : undeclared identifier
ShortcutKey.cpp
UiBase.cpp
UiShell.cpp
ChatFilter.cpp
FilterTextLib.cpp
S3Client.cpp
NetConnectAgent.cpp
Login.cpp
TextCtrlCmd.cpp
ErrorCode.cpp
Generating Code...
Error executing cl.exe.

Game.exe - 2 error(s), 0 warning(s)

Mong mọi người vào giúp =((
add project rồi mà vẫn bị thế này?
kobie61t add có đúng ko?

shinrenkyo
23-05-13, 10:08 PM
đã thành công, bạn nào cho mình xin cái scrip hàm saynew mới làm coi thử
cảm ơn các bạn nhìu

shinrenkyo
24-05-13, 03:08 PM
nếu làm theo y chang trên thì giờ vào scrip mình để saynew hay say2 vậy mọi người

thienthanden2
24-05-13, 04:19 PM
nếu làm theo y chang trên thì giờ vào scrip mình để saynew hay say2 vậy mọi người

Say2(........................) tùy bạn đặt tên là gì thì nó là cái đó.

shinrenkyo
24-05-13, 05:02 PM
Say2(........................) tùy bạn đặt tên là gì thì nó là cái đó.
đặt tên chỗ nào trong source bạn? mình xem ko thấy nên mới hỏi

dang_gamezone
03-06-13, 10:25 PM
Deleting intermediate files and output files for project 'S3Client - Win32 Release'.
--------------------Configuration: S3Client - Win32 Release--------------------
Compiling resources...
Compiling...
stdafx.cpp
Compiling...
AutoLocateWnd.cpp
ComWindow.cpp
MouseHover.cpp
PopupMenu.cpp
SpecialFuncs.cpp
TextPic.cpp
UiCursor.cpp
UiImage.cpp
vongsang.cpp
WndButton.cpp
WndChessPanel.cpp
WndEdit.cpp
WndImage.cpp
E:\AWJX\SwordOnline\Sources\S3Client\Ui\Elem\WndIm age.cpp(109) : error C2039: 'SetMaxFrame' : is not a member of 'KWndImage'
E:\AWJX\SwordOnline\Sources\S3Client\Ui\Elem\WndIm age.h(15) : see declaration of 'KWndImage'
E:\AWJX\SwordOnline\Sources\S3Client\Ui\Elem\WndIm age.cpp(111) : error C2065: 'm_Image' : undeclared identifier
E:\AWJX\SwordOnline\Sources\S3Client\Ui\Elem\WndIm age.cpp(111) : error C2228: left of '.nNumFrames' must have class/struct/union type
WndImagePart.cpp
WndLabeledButton.cpp
WndList.cpp
WndList2.cpp
WndMessageListBox.cpp
WndMovingImage.cpp
WndObjContainer.cpp
Generating Code...
Compiling...
WndPage.cpp
WndPureTextBtn.cpp
Wnds.cpp
WndScrollBar.cpp
WndShadow.cpp
WndShowAnimate.cpp
WndText.cpp
WndToolBar.cpp
WndValueImage.cpp
WndWindow.cpp
UiConnectInfo.cpp
UiLogin.cpp
UiLoginBg.cpp
UiSelServer.cpp
UiContainer.cpp
UiFaceSelector.cpp
UiPlayerBar.cpp
UiStatus.cpp
UiOptions.cpp
UiInit.cpp
Generating Code...
E:\AWJX\SwordOnline\Sources\S3Client\Ui\UiCase\UiS elServer.cpp(336) : warning C4700: local variable 'aDestroy' used without having been initialized
Compiling...
UiGetMoney.cpp
UiItem.cpp
UiSkills.cpp
UiSkillTree.cpp
UiStoreBox.cpp
UiESCDlg.cpp
UiGetString.cpp
UiGive.cpp
UiMsgSel.cpp
UiParadeItem.cpp
UiSelPlayerNearby.cpp
UiNewPlayer.cpp
UiSelNativePlace.cpp
UiSelPlayer.cpp
UiChannelSubscibe.cpp
UiChatCentre.cpp
UiChatPhrase.cpp
UiChatStatus.cpp
UiInformation.cpp
UiInformation2.cpp
Generating Code...
Compiling...
UiTeamManage.cpp
UiHeaderControlBar.cpp
UiMsgCentrePad.cpp
UiToolsControlBar.cpp
UiPlayerShop.cpp
UiShop.cpp
UiTrade.cpp
UiTradeConfirmWnd.cpp
UiGame.cpp
UiSysMsgCentre.cpp
UiMiniMap.cpp
UiSelColor.cpp
UiNewPlayerStartMsg.cpp
UiPlayVideo.cpp
UiHelper.cpp
UiHelper2.cpp
UiReconnect.cpp
UiTaskDataFile.cpp
UiTaskNote.cpp
UiWorldMap.cpp
Generating Code...
Compiling...
UiNewsMessage.cpp
UiStrengthRank.cpp
UiTongAssignBox.cpp
UiTongGetString.cpp
UiCompoundItem.cpp
UiTrembleItem.cpp
UiSoundSetting.cpp
GameSpaceChangedNotify.cpp
ShortcutKey.cpp
UiBase.cpp
UiShell.cpp
ChatFilter.cpp
FilterTextLib.cpp
S3Client.cpp
NetConnectAgent.cpp
Login.cpp
TextCtrlCmd.cpp
ErrorCode.cpp
Generating Code...
Error executing cl.exe.

Game.exe - 3 error(s), 1 warning(s)

cai nay fix duoc roi, loi o duoi lam sao fix


UiPopupPasswordQuery.cpp
UiTongCreateSheet.cpp
UiTongManager.cpp
Generating Code...
Linking...
<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>
Release/Game.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Game.exe - 2 error(s), 1 warning(s)

ai giup em voi, khong biet fix