PDA

View Full Version : [JX] Code này sai chỗ nào mà không hoạt động?



dammejx
17-10-12, 05:16 PM
Code chuột phải item:

KItemList.cpp


BOOL KItemList::EatMecidine(int nIdx)
{
if (m_PlayerIdx <= 0)
return FALSE;
int nNpcIdx = Player[m_PlayerIdx].m_nIndex;
//int nGenre = Item[nIdx].GetGenre();
char DuongDanScript[100];
int nGenre = Item[nIdx].GetGenre();
int nDetailType = Item[nIdx].GetDetailType();
if (nGenre == item_task)
{
sprintf(DuongDanScript,"\\script\\itemquestkey\\%d .lua",nDetailType);
#ifdef _SERVER
Player[m_PlayerIdx].ExecuteScript(DuongDanScript, "main", 0);
Remove(nIdx);
ItemSet.Remove(nIdx);
#endif
}

_ASSERT(nGenre == item_medicine || nGenre == item_townportal);
if (nGenre == item_medicine)
Item[nIdx].ApplyMagicAttribToNPC(&Npc[nNpcIdx], 3);
if (nGenre == item_townportal)
{
if (!Npc[Player[m_PlayerIdx].m_nIndex].m_FightMode)
{
#ifndef _SERVER // ¿Í»§¶ËÏÈ¿´¿´ÊDz»ÊÇ·ÇÕ½¶·Ç ø£¬Èç¹ûÊǵĻ°¾Í±ð·¢¸øServerÁ Ë¡£
// ϵͳÏûÏ¢
KSystemMessage Msg;

Msg.byConfirmType = SMCT_CLICK;
Msg.byParamSize = 0;
Msg.byPriority = 1;
Msg.eType = SMT_PLAYER;
strcpy(Msg.szMessage, "ÎÞ·¨ÔÚÕâÀïʹÓÃÍÁµØ·û£¡");
CoreDataChanged(GDCNI_SYSTEM_MESSAGE, (unsigned int)&Msg, NULL);
#endif
return FALSE;
}
#ifdef _SERVER
Player[m_PlayerIdx].UseTownPortal();
#endif
}
#ifdef _SERVER
Remove(nIdx);
ItemSet.Remove(nIdx);
#endif
if (Npc[Player[m_PlayerIdx].m_nIndex].m_Doing == do_sit)
{
Npc[Player[m_PlayerIdx].m_nIndex].SendCommand(do_stand);
}
return TRUE;
}

#ifndef _SERVER




build thì ok, không có lỗi. nhưng test thì không hoạt động. ai giúp mình. đã chép coreclien với coreserver vào nhưng chuột phải không hoạt động

lzlsky301
17-10-12, 05:31 PM
Code chuột phải item:

KItemList.cpp


BOOL KItemList::EatMecidine(int nIdx)
{
if (m_PlayerIdx <= 0)
return FALSE;
int nNpcIdx = Player[m_PlayerIdx].m_nIndex;
//int nGenre = Item[nIdx].GetGenre();
char DuongDanScript[100];
int nGenre = Item[nIdx].GetGenre();
int nDetailType = Item[nIdx].GetDetailType();
if (nGenre == item_task)
{
sprintf(DuongDanScript,"\\script\\itemquestkey\\%d .lua",nDetailType);
#ifdef _SERVER
Player[m_PlayerIdx].ExecuteScript(DuongDanScript, "main", 0);
Remove(nIdx);
ItemSet.Remove(nIdx);
#endif
}

_ASSERT(nGenre == item_medicine || nGenre == item_townportal);
if (nGenre == item_medicine)
Item[nIdx].ApplyMagicAttribToNPC(&Npc[nNpcIdx], 3);
if (nGenre == item_townportal)
{
if (!Npc[Player[m_PlayerIdx].m_nIndex].m_FightMode)
{
#ifndef _SERVER // ¿Í»§¶ËÏÈ¿´¿´ÊDz»ÊÇ·ÇÕ½¶·Ç ø£¬Èç¹ûÊǵĻ°¾Í±ð·¢¸øServerÁ Ë¡£
// ϵͳÏûÏ¢
KSystemMessage Msg;

Msg.byConfirmType = SMCT_CLICK;
Msg.byParamSize = 0;
Msg.byPriority = 1;
Msg.eType = SMT_PLAYER;
strcpy(Msg.szMessage, "ÎÞ·¨ÔÚÕâÀïʹÓÃÍÁµØ·û£¡");
CoreDataChanged(GDCNI_SYSTEM_MESSAGE, (unsigned int)&Msg, NULL);
#endif
return FALSE;
}
#ifdef _SERVER
Player[m_PlayerIdx].UseTownPortal();
#endif
}
#ifdef _SERVER
Remove(nIdx);
ItemSet.Remove(nIdx);
#endif
if (Npc[Player[m_PlayerIdx].m_nIndex].m_Doing == do_sit)
{
Npc[Player[m_PlayerIdx].m_nIndex].SendCommand(do_stand);
}
return TRUE;
}

#ifndef _SERVER




build thì ok, không có lỗi. nhưng test thì không hoạt động. ai giúp mình. đã chép coreclien với coreserver vào nhưng chuột phải không hoạt động
Code bên Cyber phải ko. Ko xài dc đâu. bạn dùng code của trananh88vt ấy :D

dammejx
17-10-12, 07:06 PM
}

#ifdef _SERVER
if (nGenre != item_task)
{
Remove(nIdx);
ItemSet.Remove(nIdx);
}
else
{
// Tùy vào code của bạn cho cho phép del Item hay không khi Use item
}
#endif
if (Npc[Player[m_PlayerIdx].m_nIndex].m_Doing == do_sit)
{
Npc[Player[m_PlayerIdx].m_nIndex].SendCommand(do_stand);
}
return TRUE;
}



chổ đó thêm gì vậy bạn

SIR.ThaiBinh
17-10-12, 07:52 PM
}

#ifdef _SERVER
if (nGenre != item_task)
{
Remove(nIdx);
ItemSet.Remove(nIdx);
}
else
{
// Tùy vào code của bạn cho cho phép del Item hay không khi Use item
}
#endif
if (Npc[Player[m_PlayerIdx].m_nIndex].m_Doing == do_sit)
{
Npc[Player[m_PlayerIdx].m_nIndex].SendCommand(do_stand);
}
return TRUE;
}



chổ đó thêm gì vậy bạn
// Tùy vào code của bạn cho cho phép del Item hay không khi Use item  đây là 1 lời chú thích mà :-h:-h