📄 mapdata.cpp
字号:
memcpy(pName, m_pData[iX][iY].m_cDeadOwnerName, 10);
// 苞芭 困摹俊辑 昏力
m_pData[iX][iY].m_wDeadObjectID = NULL; // -1; v1.41
m_pData[iX][iY].m_iDeadChatMsg = NULL;
m_pData[iX][iY].m_sDeadOwnerType = NULL;
ZeroMemory(m_pData[iX][iY].m_cDeadOwnerName, sizeof(m_pData[iX][iY].m_cDeadOwnerName));
// v1.41 某浆 谅钎 历厘
m_iObjectIDcacheLocX[wObjectID] = -1*(dX + m_sPivotX);
m_iObjectIDcacheLocY[wObjectID] = -1*(dY + m_sPivotY);
// 瘤奎栏聪 公狼固茄 风橇甫 呕免.
goto EXIT_SEARCH_LOOP;
}
}
////////////////////////////////////////////
// 困狼 八祸俊辑 茫瘤 给沁促搁 咯扁辑 贸府茄促.
// ObjectID 蔼栏肺 八祸窍绰 版快.
// 鞍篮 ObjectID甫 爱绰 object甫 茫酒 捞抚, 漂己摹殿殿阑 汗荤秦辑 荤侩茄促. 绢恫 谅钎蔼档 绝促!!!
for (iX = 0; iX < MAPDATASIZEX; iX++)
for (iY = 0; iY < MAPDATASIZEY; iY++) {
if (m_pData[iX][iY].m_wObjectID == wObjectID) {
// 牢立茄 镑俊辑 鞍篮 ObjectID甫 啊柳 坷宏璃飘甫 惯斑窍看促.
// 悼累俊 蝶弗 弥辆 困摹 拌魂.
// 捞镑俊 促弗 坷宏璃飘啊 捞固 乐促搁 疙飞篮 秒家登绊 葛电 单捞磐 傈价阑 夸备窍霸 等促.
dX = iX;
dY = iY;
switch (sAction) {
case DEF_OBJECTRUN:
case DEF_OBJECTMOVE:
case DEF_OBJECTDAMAGEMOVE:
case DEF_OBJECTATTACKMOVE:
switch (cDir) {
case 1: dY--; break;
case 2: dY--; dX++; break;
case 3: dX++; break;
case 4: dX++; dY++; break;
case 5: dY++; break;
case 6: dX--; dY++; break;
case 7: dX--; break;
case 8: dX--; dY--; break;
}
break;
default:
break;
}
if ((wObjectID != (WORD)m_pGame->m_sPlayerObjectID) &&
(m_pData[dX][dY].m_sOwnerType != NULL) && (m_pData[dX][dY].m_wObjectID != wObjectID)) {
// 货肺 且寸窍绊磊 窍绰 镑俊 磊脚捞 酒囱 促弗 坷宏璃飘啊 辑 乐促搁 且寸且 荐 绝绊,
// 捞 坷宏璃飘狼 泅犁 困摹甫 夸没茄促.
// 傈眉 单捞磐啊 绝绰 坷宏璃飘狼 捞亥飘捞促. 辑滚肺 傈眉 单捞磐甫 夸没茄促.
m_pGame->RequestFullObjectData(wObjectID);
ZeroMemory(pName, strlen(pName));
return FALSE;
}
// 单捞磐甫 归诀
iChatIndex = m_pData[iX][iY].m_iChatMsg;
if (sAction != DEF_OBJECTNULLACTION) {
sType = m_pData[iX][iY].m_sOwnerType; //v1.12 拉临俊辑 器窃凳
sAppr1 = m_pData[iX][iY].m_sAppr1;
sAppr2 = m_pData[iX][iY].m_sAppr2;
sAppr3 = m_pData[iX][iY].m_sAppr3;
sAppr4 = m_pData[iX][iY].m_sAppr4;
iApprColor = m_pData[iX][iY].m_iApprColor; // v1.4
sStatus = m_pData[iX][iY].m_sStatus;
//v1.432
iEffectType = m_pData[iX][iY].m_iEffectType;
iEffectFrame = m_pData[iX][iY].m_iEffectFrame;
iEffectTotalFrame = m_pData[iX][iY].m_iEffectTotalFrame;
}
ZeroMemory(cTmpName, sizeof(cTmpName));
memcpy(cTmpName, m_pData[iX][iY].m_cOwnerName, 10);
// 捞抚蔼篮 馆券 !!
ZeroMemory(pName, sizeof(pName));
memcpy(pName, m_pData[iX][iY].m_cOwnerName, 10);
// 苞芭 困摹俊辑 昏力
m_pData[iX][iY].m_wObjectID = NULL; //-1; v1.41
m_pData[iX][iY].m_iChatMsg = NULL;
m_pData[iX][iY].m_sOwnerType = NULL;
m_pData[iX][iY].m_iEffectType = NULL;
ZeroMemory(m_pData[iX][iY].m_cOwnerName, sizeof(m_pData[iX][iY].m_cOwnerName));
// v1.41 某浆 谅钎 历厘
m_iObjectIDcacheLocX[wObjectID] = dX + m_sPivotX;
m_iObjectIDcacheLocY[wObjectID] = dY + m_sPivotY;
// 瘤奎栏聪 公狼固茄 风橇甫 呕免茄促.
goto EXIT_SEARCH_LOOP;
}
if (m_pData[iX][iY].m_wDeadObjectID == wObjectID) {
// 牢立茄 镑俊辑 鞍篮 ObjectID甫 啊柳 坷宏璃飘甫 惯斑窍看促.
// 悼累俊 蝶弗 弥辆 困摹 拌魂
// 捞镑俊 促弗 坷宏璃飘啊 捞固 乐促搁 疙飞篮 秒家登绊 葛电 单捞磐 傈价阑 夸备窍霸 等促.
dX = iX;
dY = iY;
switch (sAction) {
case DEF_OBJECTMOVE:
case DEF_OBJECTRUN:
case DEF_OBJECTDAMAGEMOVE:
case DEF_OBJECTATTACKMOVE:
switch (cDir) {
case 1: dY--; break;
case 2: dY--; dX++; break;
case 3: dX++; break;
case 4: dX++; dY++; break;
case 5: dY++; break;
case 6: dX--; dY++; break;
case 7: dX--; break;
case 8: dX--; dY--; break;
}
break;
default:
break;
}
if ((wObjectID != (WORD)m_pGame->m_sPlayerObjectID) &&
(m_pData[dX][dY].m_sOwnerType != NULL) && (m_pData[dX][dY].m_wObjectID != wObjectID)) {
// 货肺 且寸窍绊磊 窍绰 镑俊 磊脚捞 酒囱 促弗 坷宏璃飘啊 辑 乐促搁 且寸且 荐 绝绊,
// 捞 坷宏璃飘狼 泅犁 困摹甫 夸没茄促.
// 傈眉 单捞磐啊 绝绰 坷宏璃飘狼 捞亥飘捞促. 辑滚肺 傈眉 单捞磐甫 夸没茄促.
m_pGame->RequestFullObjectData(wObjectID);
ZeroMemory(pName, strlen(pName));
return FALSE;
}
// 单捞磐甫 归诀
iChatIndex = m_pData[iX][iY].m_iDeadChatMsg;
if (sAction != DEF_OBJECTNULLACTION) {
sType = m_pData[iX][iY].m_sDeadOwnerType; // v1.12 拉临俊辑 器窃凳
sAppr1 = m_pData[iX][iY].m_sDeadAppr1;
sAppr2 = m_pData[iX][iY].m_sDeadAppr2;
sAppr3 = m_pData[iX][iY].m_sDeadAppr3;
sAppr4 = m_pData[iX][iY].m_sDeadAppr4;
iApprColor = m_pData[iX][iY].m_iDeadApprColor; // v1.4
sStatus = m_pData[iX][iY].m_sDeadStatus;
}
ZeroMemory(cTmpName, sizeof(cTmpName));
memcpy(cTmpName, m_pData[iX][iY].m_cDeadOwnerName, 10);
// 捞抚蔼篮 馆券 !!
ZeroMemory(pName, sizeof(pName));
memcpy(pName, m_pData[iX][iY].m_cDeadOwnerName, 10);
// 苞芭 困摹俊辑 昏力
m_pData[iX][iY].m_wDeadObjectID = NULL; //-1; v1.41
m_pData[iX][iY].m_iDeadChatMsg = NULL;
m_pData[iX][iY].m_sDeadOwnerType = NULL;
m_pData[iX][iY].m_iEffectType = NULL;
ZeroMemory(m_pData[iX][iY].m_cDeadOwnerName, sizeof(m_pData[iX][iY].m_cDeadOwnerName));
// v1.41 某浆 谅钎 历厘
m_iObjectIDcacheLocX[wObjectID] = -1*(dX + m_sPivotX);
m_iObjectIDcacheLocY[wObjectID] = -1*(dY + m_sPivotY);
// 瘤奎栏聪 公狼固茄 风橇甫 呕免茄促.
goto EXIT_SEARCH_LOOP;
}
}
// 傈眉 单捞磐啊 绝绰 坷宏璃飘狼 捞亥飘捞促. 辑滚肺 傈眉 单捞磐甫 夸没茄促.
m_pGame->RequestFullObjectData(wObjectID);
ZeroMemory(pName, strlen(pName));
return FALSE;
}
EXIT_SEARCH_LOOP:;
// 扁粮狼 困摹甫 瘤奎促. 单捞磐档 啊廉吭促.
if (sAction == DEF_OBJECTDYING) {
// 磷绰 悼累捞扼搁 傈价等 困摹肺 犁且寸茄促.
dX = sX - m_sPivotX;
dY = sY - m_sPivotY;
}
if ((iPreLoc == 0) && (m_pData[dX][dY].m_sOwnerType != NULL) && (m_pData[dX][dY].m_cOwnerAction == DEF_OBJECTDYING)) { // v1.4
// 且寸瞪 困摹俊 磷绰 悼累吝牢 某腐磐啊 乐促搁 弊措肺 颗变促.
m_pData[dX][dY].m_wDeadObjectID = m_pData[dX][dY].m_wObjectID;
m_pData[dX][dY].m_sDeadOwnerType = m_pData[dX][dY].m_sOwnerType;
m_pData[dX][dY].m_cDeadDir = m_pData[dX][dY].m_cDir;
m_pData[dX][dY].m_sDeadAppr1 = m_pData[dX][dY].m_sAppr1;
m_pData[dX][dY].m_sDeadAppr2 = m_pData[dX][dY].m_sAppr2;
m_pData[dX][dY].m_sDeadAppr3 = m_pData[dX][dY].m_sAppr3;
m_pData[dX][dY].m_sDeadAppr4 = m_pData[dX][dY].m_sAppr4;
m_pData[dX][dY].m_iDeadApprColor = m_pData[dX][dY].m_iApprColor; // v1.4
m_pData[dX][dY].m_sDeadStatus = m_pData[dX][dY].m_sStatus;
m_pData[dX][dY].m_cDeadOwnerFrame = -1;
m_pData[dX][dY].m_dwDeadOwnerTime = dwTime;
memcpy(m_pData[dX][dY].m_cDeadOwnerName, m_pData[dX][dY].m_cOwnerName, 11);
m_pData[dX][dY].m_iDeadChatMsg = m_pData[dX][dY].m_iChatMsg;
// 辑乐带 困摹俊辑 瘤款促.
m_pData[dX][dY].m_wObjectID = NULL;
m_pData[dX][dY].m_sOwnerType = NULL;
m_pData[dX][dY].m_iChatMsg = NULL;
ZeroMemory(m_pData[dX][dY].m_cOwnerName, sizeof(m_pData[dX][dY].m_cOwnerName));
m_iObjectIDcacheLocX[m_pData[dX][dY].m_wDeadObjectID] = -1*m_iObjectIDcacheLocX[m_pData[dX][dY].m_wDeadObjectID];//dX; // v1.4
m_iObjectIDcacheLocY[m_pData[dX][dY].m_wDeadObjectID] = -1*m_iObjectIDcacheLocY[m_pData[dX][dY].m_wDeadObjectID];//dY;
if (m_pData[dX][dY].m_iEffectType != 0) {
// v1.432 磷澜苞 悼矫俊 瓤苞甫 绝矩促.
m_pData[dX][dY].m_iEffectType = 0;
m_pData[dX][dY].m_iEffectFrame = 0;
m_pData[dX][dY].m_iEffectTotalFrame = 0;
m_pData[dX][dY].m_dwEffectTime = 0;
}
}
// 且寸且 困摹俊 促弗 坷宏璃飘啊 粮犁茄促搁
if (m_pData[dX][dY].m_sOwnerType != NULL) {
if ((wObjectID != (WORD)m_pGame->m_sPlayerObjectID) &&
(m_pData[dX][dY].m_wObjectID == (WORD)m_pGame->m_sPlayerObjectID)) {
// 敲饭捞绢 磊脚捞 粮犁茄促.
return FALSE;
}
else {
return FALSE;
}
}
// 货肺款 困摹俊 且寸茄促.
if (iPreLoc == 0) {
m_pData[dX][dY].m_wObjectID = wObjectID;
m_pData[dX][dY].m_sOwnerType = sType;
m_pData[dX][dY].m_cDir = cDir;
m_pData[dX][dY].m_sAppr1 = sAppr1;
m_pData[dX][dY].m_sAppr2 = sAppr2;
m_pData[dX][dY].m_sAppr3 = sAppr3;
m_pData[dX][dY].m_sAppr4 = sAppr4;
m_pData[dX][dY].m_iApprColor = iApprColor; // v1.4
m_pData[dX][dY].m_sStatus = sStatus;
m_pData[dX][dY].m_sV1 = sV1;
m_pData[dX][dY].m_sV2 = sV2;
m_pData[dX][dY].m_sV3 = sV3;
m_pData[dX][dY].m_iEffectType = iEffectType;
m_pData[dX][dY].m_iEffectFrame = iEffectFrame;
m_pData[dX][dY].m_iEffectTotalFrame = iEffectTotalFrame;
ZeroMemory(m_pData[dX][dY].m_cOwnerName, sizeof(m_pData[dX][dY].m_cOwnerName));
strcpy(m_pData[dX][dY].m_cOwnerName, cTmpName);
if ((sAction != DEF_OBJECTNULLACTION) && (sAction != DEF_MSGTYPE_CONFIRM) && (sAction != DEF_MSGTYPE_REJECT)) {
m_pData[dX][dY].m_cOwnerFrame = iFrame; // 0
m_pData[dX][dY].m_cOwnerAction = (char)sAction;
}
m_pData[dX][dY].m_dwOwnerTime = dwTime;
m_pData[dX][dY].m_iChatMsg = iChatIndex;
if ((sAppr4 & 0x00F0) != 0) {
// v1.432 EffectFlag啊 技飘登绢 乐促搁
m_pData[dX][dY].m_iEffectType = (sAppr4 & 0x00F0) >> 4;
if (sAction == DEF_OBJECTNULLACTION) {
m_pData[dX][dY].m_iEffectFrame = 0;
m_pData[dX][dY].m_dwEffectTime = dwTime;
}
switch (m_pData[dX][dY].m_iEffectType) {
case 1: m_pData[dX][dY].m_iEffectTotalFrame = 13; break;
case 2: m_pData[dX][dY].m_iEffectTotalFrame = 11; break;
}
}
else {
m_pData[dX][dY].m_iEffectType = 0;
}
}
else {
// iPreLoc == 1
m_pData[dX][dY].m_wDeadObjectID = wObjectID;
m_pData[dX][dY].m_sDeadOwnerType = sType;
m_pData[dX][dY].m_cDeadDir = cDir;
m_pData[dX][dY].m_sDeadAppr1 = sAppr1;
m_pData[dX][dY].m_sDeadAppr2 = sAppr2;
m_pData[dX][dY].m_sDeadAppr3 = sAppr3;
m_pData[dX][dY].m_sDeadAppr4 = sAppr4;
m_pData[dX][dY].m_iDeadApprColor = iApprColor; // v1.4
m_pData[dX][dY].m_sDeadStatus = sStatus;
ZeroMemory(m_pData[dX][dY].m_cDeadOwnerName, sizeof(m_pData[dX][dY].m_cDeadOwnerName));
strcpy(m_pData[dX][dY].m_cDeadOwnerName, cTmpName);
m_pData[dX][dY].m_dwDeadOwnerTime = dwTime;
m_pData[dX][dY].m_iDeadChatMsg = iChatIndex;
if ((sAppr4 & 0x00F0) != 0) {
// v1.432 EffectFlag啊 技飘登绢 乐促搁
m_pData[dX][dY].m_iEffectType = (sAppr4 & 0x00F0) >> 4;
if (sAction == DEF_OBJECTNULLACTION) {
m_pData[dX][dY].m_iEffectFrame = 0;
m_pData[dX][dY].m_dwEffectTime = dwTime;
}
switch (m_pData[dX][dY].m_iEffectType) {
case 1: m_pData[dX][dY].m_iEffectTotalFrame = 13; break;
case 2: m_pData[dX][dY].m_iEffectTotalFrame = 11; break;
}
}
else {
m_pData[dX][dY].m_iEffectType = 0;
}
}
return TRUE;
}
BOOL __fastcall CMapData::bGetOwner(short sX, short sY, short * pOwnerType, char * pDir, short * pAppr1, short * pAppr2, short * pAppr3, short * pAppr4, int * pApprColor, short * pStatus, char * pName, char * pAction, char * pFrame, int * pChatIndex, short * pV1, short * pV2)
{
int dX, dY;
if ((sX < m_sPivotX) || (sX > m_sPivotX + MAPDATASIZEX) ||
(sY < m_sPivotY) || (sY > m_sPivotY + MAPDATASIZEY)) {
ZeroMemory(pName,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -