📄 commongamefunc.cpp
字号:
#include "stdafx.h"
#include <map>
#include <string>
#include "MHFile.h"
using namespace std;
BOOL g_bAssertMsgBox = FALSE;
char _g_AssertErrorMessage[255];
#ifndef _MURIMNET_
#include <math.h>
#include "CommonGameFunc.h"
#ifdef _MHCLIENT_
#include "../ItemManager.h"
#include "../mhMap.h"
#include "../ChatManager.h"
#endif
#ifdef __MAPSERVER__
#ifndef _MURIMNET_
#include "itemManager.h"
#endif
#include "GameResourceManager.h"
#endif
// 公傍牢郸胶甫 逞扁搁 公傍狼 公扁蜡屈阑 府畔
// enum WP_KIND{GUM=0,GWUN,DO,CHANG,GUNG,AMGI,WP_MAX, WP_ERR};
/*
#define ATTACK_MUGONG_INTERVAL 200
#define DEFENSE_MUGONG_INTERVAL 100
#define ASSIST_MUGONG_INTERVAL 100
*/
DWORD DayOfMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
DWORD DayOfMonth_Yundal[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
#ifdef _MHCLIENT_
void AddComma( char* pBuf )
{
if( *pBuf == 0 ) return;
char buf[32];
strcpy( buf, pBuf ); //buf = 盔夯
char* p = buf;
*(pBuf++) = *(p++);
int n = strlen( pBuf ) % 3;
while( *p )
{
if( n != 0 )
{
*pBuf = *p;
++p;
}
else
{
*pBuf = ',';
}
++pBuf;
n = ( n == 0 ) ? 3 : n - 1;
}
*pBuf = 0;
}
char* AddComma( DWORD dwMoney )
{
static char buf[32];
wsprintf( buf, "%u", dwMoney );
AddComma( buf );
return buf;
}
char* RemoveComma( char* str )
{
static char buf[32];
char* p = buf;
while( *str )
{
if( *str != ',' )
{
*p = *str;
++p;
}
++str;
}
*p = 0;
return buf;
}
char* GetMapName(MAPTYPE mapnum)
{
ASSERT(mapnum != 0);
static char mapname[256];
#define MAPNAMEDEF(num,Name) case num: strcpy(mapname, Name ); break;
switch(mapnum)
{
//case hb001m: strcpy(mapname,"合版"); break;
MAPNAMEDEF(bukkyung, CHATMGR->GetChatMsg(481));
MAPNAMEDEF(taesan, CHATMGR->GetChatMsg(482));
MAPNAMEDEF(namdae, CHATMGR->GetChatMsg(483));
MAPNAMEDEF(sanhea, CHATMGR->GetChatMsg(484));
MAPNAMEDEF(gongmyo, CHATMGR->GetChatMsg(485));
MAPNAMEDEF(nakyang, CHATMGR->GetChatMsg(486));
MAPNAMEDEF(gaebong, CHATMGR->GetChatMsg(487));
MAPNAMEDEF(jungju, CHATMGR->GetChatMsg(488));
MAPNAMEDEF(hoangsan, CHATMGR->GetChatMsg(489));
MAPNAMEDEF(sungsan, CHATMGR->GetChatMsg(490));
MAPNAMEDEF(youngmun, CHATMGR->GetChatMsg(491));
MAPNAMEDEF(jangan, CHATMGR->GetChatMsg(492));
MAPNAMEDEF(hoajung, CHATMGR->GetChatMsg(493));
MAPNAMEDEF(daean, CHATMGR->GetChatMsg(494));
MAPNAMEDEF(jisi, CHATMGR->GetChatMsg(495));
MAPNAMEDEF(gunrung, CHATMGR->GetChatMsg(496));
MAPNAMEDEF(nanju, CHATMGR->GetChatMsg(497));
MAPNAMEDEF(donhoang_night, CHATMGR->GetChatMsg(498));
MAPNAMEDEF(okmun, CHATMGR->GetChatMsg(499));
MAPNAMEDEF(myungsa, CHATMGR->GetChatMsg(500));
MAPNAMEDEF(hyungju, CHATMGR->GetChatMsg(501));
MAPNAMEDEF(yangyang, CHATMGR->GetChatMsg(502));
MAPNAMEDEF(jangsa, CHATMGR->GetChatMsg(503));
MAPNAMEDEF(jukbyuk, CHATMGR->GetChatMsg(504));
MAPNAMEDEF(dongjung, CHATMGR->GetChatMsg(505));
MAPNAMEDEF(akyang, CHATMGR->GetChatMsg(506));
MAPNAMEDEF(hangju, CHATMGR->GetChatMsg(507));
MAPNAMEDEF(soju, CHATMGR->GetChatMsg(508));
MAPNAMEDEF(sangju, CHATMGR->GetChatMsg(509));
MAPNAMEDEF(hogu, CHATMGR->GetChatMsg(510));
MAPNAMEDEF(bota, CHATMGR->GetChatMsg(511));
MAPNAMEDEF(hopo, CHATMGR->GetChatMsg(512));
MAPNAMEDEF(sungdo, CHATMGR->GetChatMsg(513));
MAPNAMEDEF(ami, CHATMGR->GetChatMsg(514));
MAPNAMEDEF(hoangha, CHATMGR->GetChatMsg(515));
MAPNAMEDEF(sunyung, CHATMGR->GetChatMsg(516));
MAPNAMEDEF(guul, CHATMGR->GetChatMsg(517));
MAPNAMEDEF(hanbing, CHATMGR->GetChatMsg(518));
MAPNAMEDEF(gonryun, CHATMGR->GetChatMsg(519));
MAPNAMEDEF(tabi, CHATMGR->GetChatMsg(520));
MAPNAMEDEF(hohwa, CHATMGR->GetChatMsg(521));
MAPNAMEDEF(ordos, CHATMGR->GetChatMsg(522));
MAPNAMEDEF(daehung, CHATMGR->GetChatMsg(523));
MAPNAMEDEF(kan, CHATMGR->GetChatMsg(524));
MAPNAMEDEF(uru, CHATMGR->GetChatMsg(525));
MAPNAMEDEF(hwayuam, CHATMGR->GetChatMsg(526));
MAPNAMEDEF(bokju, CHATMGR->GetChatMsg(527));
MAPNAMEDEF(dwang, CHATMGR->GetChatMsg(528));
MAPNAMEDEF(dery, CHATMGR->GetChatMsg(529));
MAPNAMEDEF(samtop, CHATMGR->GetChatMsg(530));
MAPNAMEDEF(aesan, CHATMGR->GetChatMsg(531));
MAPNAMEDEF(sussang, CHATMGR->GetChatMsg(532));
MAPNAMEDEF(whangkua, CHATMGR->GetChatMsg(533));
MAPNAMEDEF(gooknae, CHATMGR->GetChatMsg(534));
MAPNAMEDEF(jangbeak, CHATMGR->GetChatMsg(535));
MAPNAMEDEF(janggun, CHATMGR->GetChatMsg(536));
MAPNAMEDEF(sangkyung, CHATMGR->GetChatMsg(537));
MAPNAMEDEF(dongkyung, CHATMGR->GetChatMsg(538));
MAPNAMEDEF(jisi_mid, CHATMGR->GetChatMsg(539));
MAPNAMEDEF(donhoang_day, CHATMGR->GetChatMsg(622));
MAPNAMEDEF(wallachun, CHATMGR->GetChatMsg(670));
MAPNAMEDEF(hwanghajubyun, CHATMGR->GetChatMsg(685));
MAPNAMEDEF(yongmunibgu, CHATMGR->GetChatMsg(686));
default: mapname[0] = 0; break;
}
return mapname;
}
WORD GetMapNumForName( char* pStrName )
{
if( strcmp( pStrName, CHATMGR->GetChatMsg(481) ) == 0 ) return bukkyung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(482) ) == 0 ) return taesan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(483) ) == 0 ) return namdae;
if( strcmp( pStrName, CHATMGR->GetChatMsg(484) ) == 0 ) return sanhea;
if( strcmp( pStrName, CHATMGR->GetChatMsg(485) ) == 0 ) return gongmyo;
if( strcmp( pStrName, CHATMGR->GetChatMsg(486) ) == 0 ) return nakyang;
if( strcmp( pStrName, CHATMGR->GetChatMsg(487) ) == 0 ) return gaebong;
if( strcmp( pStrName, CHATMGR->GetChatMsg(488) ) == 0 ) return jungju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(489) ) == 0 ) return hoangsan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(490) ) == 0 ) return sungsan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(491) ) == 0 ) return youngmun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(492) ) == 0 ) return jangan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(493) ) == 0 ) return hoajung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(494) ) == 0 ) return daean;
if( strcmp( pStrName, CHATMGR->GetChatMsg(495) ) == 0 ) return jisi;
if( strcmp( pStrName, CHATMGR->GetChatMsg(496) ) == 0 ) return gunrung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(497) ) == 0 ) return nanju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(498) ) == 0 ) return donhoang_night;
if( strcmp( pStrName, CHATMGR->GetChatMsg(499) ) == 0 ) return okmun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(500) ) == 0 ) return myungsa;
if( strcmp( pStrName, CHATMGR->GetChatMsg(501) ) == 0 ) return hyungju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(502) ) == 0 ) return yangyang;
if( strcmp( pStrName, CHATMGR->GetChatMsg(503) ) == 0 ) return jangsa;
if( strcmp( pStrName, CHATMGR->GetChatMsg(504) ) == 0 ) return jukbyuk;
if( strcmp( pStrName, CHATMGR->GetChatMsg(505) ) == 0 ) return dongjung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(506) ) == 0 ) return akyang;
if( strcmp( pStrName, CHATMGR->GetChatMsg(507) ) == 0 ) return hangju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(508) ) == 0 ) return soju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(509) ) == 0 ) return sangju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(510) ) == 0 ) return hogu;
if( strcmp( pStrName, CHATMGR->GetChatMsg(511) ) == 0 ) return bota;
if( strcmp( pStrName, CHATMGR->GetChatMsg(512) ) == 0 ) return hopo;
if( strcmp( pStrName, CHATMGR->GetChatMsg(513) ) == 0 ) return sungdo;
if( strcmp( pStrName, CHATMGR->GetChatMsg(514) ) == 0 ) return ami;
if( strcmp( pStrName, CHATMGR->GetChatMsg(515) ) == 0 ) return hoangha;
if( strcmp( pStrName, CHATMGR->GetChatMsg(516) ) == 0 ) return sunyung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(517) ) == 0 ) return guul;
if( strcmp( pStrName, CHATMGR->GetChatMsg(518) ) == 0 ) return hanbing;
if( strcmp( pStrName, CHATMGR->GetChatMsg(519) ) == 0 ) return gonryun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(520) ) == 0 ) return tabi;
if( strcmp( pStrName, CHATMGR->GetChatMsg(521) ) == 0 ) return hohwa;
if( strcmp( pStrName, CHATMGR->GetChatMsg(522) ) == 0 ) return ordos;
if( strcmp( pStrName, CHATMGR->GetChatMsg(523) ) == 0 ) return daehung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(524) ) == 0 ) return kan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(525) ) == 0 ) return uru;
if( strcmp( pStrName, CHATMGR->GetChatMsg(526) ) == 0 ) return hwayuam;
if( strcmp( pStrName, CHATMGR->GetChatMsg(527) ) == 0 ) return bokju;
if( strcmp( pStrName, CHATMGR->GetChatMsg(528) ) == 0 ) return dwang;
if( strcmp( pStrName, CHATMGR->GetChatMsg(529) ) == 0 ) return dery;
if( strcmp( pStrName, CHATMGR->GetChatMsg(530) ) == 0 ) return samtop;
if( strcmp( pStrName, CHATMGR->GetChatMsg(531) ) == 0 ) return aesan;
if( strcmp( pStrName, CHATMGR->GetChatMsg(532) ) == 0 ) return sussang;
if( strcmp( pStrName, CHATMGR->GetChatMsg(533) ) == 0 ) return whangkua;
if( strcmp( pStrName, CHATMGR->GetChatMsg(534) ) == 0 ) return gooknae;
if( strcmp( pStrName, CHATMGR->GetChatMsg(535) ) == 0 ) return jangbeak;
if( strcmp( pStrName, CHATMGR->GetChatMsg(536) ) == 0 ) return janggun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(537) ) == 0 ) return sangkyung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(538) ) == 0 ) return dongkyung;
if( strcmp( pStrName, CHATMGR->GetChatMsg(539) ) == 0 ) return jisi_mid;
if( strcmp( pStrName, CHATMGR->GetChatMsg(622) ) == 0 ) return donhoang_day;
if( strcmp( pStrName, CHATMGR->GetChatMsg(670) ) == 0 ) return wallachun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(685) ) == 0 ) return hwanghajubyun;
if( strcmp( pStrName, CHATMGR->GetChatMsg(686) ) == 0 ) return yongmunibgu;
return 0;
}
#else
char* GetMapName(MAPTYPE mapnum)
{
static char mapname[256];
#define MAPNAMEDEF(num,Name) case num: strcpy(mapname, #Name ); break;
switch(mapnum)
{
//case hb001m: strcpy(mapname,"合版"); break;
MAPNAMEDEF(bukkyung, bukkyung);
MAPNAMEDEF(taesan, taesan);
MAPNAMEDEF(namdae, namdae);
MAPNAMEDEF(sanhea, sanhea);
MAPNAMEDEF(gongmyo, gongmyo);
MAPNAMEDEF(nakyang, nakyang);
MAPNAMEDEF(gaebong, gaebong);
MAPNAMEDEF(jungju, jungju);
MAPNAMEDEF(hoangsan, hoangsan);
MAPNAMEDEF(sungsan, sungsan);
MAPNAMEDEF(youngmun, youngmun);
MAPNAMEDEF(jangan, jangan);
MAPNAMEDEF(hoajung, hoajung);
MAPNAMEDEF(daean, daean);
MAPNAMEDEF(jisi, jisi);
MAPNAMEDEF(gunrung, gunrung);
MAPNAMEDEF(nanju, nanju);
MAPNAMEDEF(donhoang_night, donhoang_night);
MAPNAMEDEF(okmun, okmun);
MAPNAMEDEF(myungsa, myungsa);
MAPNAMEDEF(hyungju, hyungju);
MAPNAMEDEF(yangyang,, yangyang);
MAPNAMEDEF(jangsa, , jangsa);
MAPNAMEDEF(jukbyuk, jukbyuk);
MAPNAMEDEF(dongjung, dongjung);
MAPNAMEDEF(akyang, , akyang);
MAPNAMEDEF(hangju, hangju);
MAPNAMEDEF(soju, soju);
MAPNAMEDEF(sangju, sangju);
MAPNAMEDEF(hogu, hogu);
MAPNAMEDEF(bota, bota);
MAPNAMEDEF(hopo, hopo);
MAPNAMEDEF(sungdo, sungdo);
MAPNAMEDEF(ami, ami);
MAPNAMEDEF(hoangha, hoangha);
MAPNAMEDEF(sunyung, sunyung);
MAPNAMEDEF(guul, guul);
MAPNAMEDEF(hanbing, hanbing);
MAPNAMEDEF(gonryun, gonryun);
MAPNAMEDEF(tabi, tabi);
MAPNAMEDEF(hohwa, hohwa);
MAPNAMEDEF(ordos, ordos);
MAPNAMEDEF(daehung, daehung);
MAPNAMEDEF(kan, kan);
MAPNAMEDEF(uru, uru);
MAPNAMEDEF(hwayuam, hwayuam);
MAPNAMEDEF(bokju, bokju);
MAPNAMEDEF(dwang, dwang);
MAPNAMEDEF(dery, dery);
MAPNAMEDEF(samtop, samtop);
MAPNAMEDEF(aesan, aesan);
MAPNAMEDEF(sussang, sussang);
MAPNAMEDEF(whangkua, whangkua);
MAPNAMEDEF(gooknae, gooknae);
MAPNAMEDEF(jangbeak, jangbeak);
MAPNAMEDEF(janggun, janggun);
MAPNAMEDEF(sangkyung, sangkyung);
MAPNAMEDEF(dongkyung, dongkyung);
MAPNAMEDEF(jisi_mid, jisi_mid);
MAPNAMEDEF(wallachun, wallachun);
MAPNAMEDEF(donhoang_day, donhoang_day);
MAPNAMEDEF(yongmunibgu, yongmunibgu);
MAPNAMEDEF(hwanghajubyun, hwanghajubyun);
default:jisi_mid, mapname[0] = 0;
}
return mapname;
}
#endif
void SetProtocol(MSGBASE* pMsg,BYTE bCategory,BYTE bProtocol)
{
pMsg->Category = bCategory;
pMsg->Protocol = bProtocol;
}
WP_KIND GetWeaponType(WORD mugongIdx)
{
// if(MIN_MUGONG_INDEX > mugongIdx || mugongIdx >= MAX_MUGONG_INDEX) return WP_ERR;
if(MIN_ATTACK_MUGONG_INDEX <= mugongIdx && mugongIdx < MAX_ATTACK_MUGONG_INDEX)
{
return (WP_KIND)((mugongIdx - MIN_ATTACK_MUGONG_INDEX)/ATTACK_MUGONG_INTERVAL);
}
else if(MIN_DEFENSE_MUGONG_INDEX <= mugongIdx && mugongIdx < MAX_DEFENSE_MUGONG_INDEX)
{
return (WP_KIND)((mugongIdx - MIN_DEFENSE_MUGONG_INDEX)/DEFENSE_MUGONG_INTERVAL);
}
else if(MIN_ASSIST_MUGONG_INDEX <= mugongIdx && mugongIdx < MAX_ASSIST_MUGONG_INDEX)
{
return (WP_KIND)((mugongIdx - MIN_ASSIST_MUGONG_INDEX)/ASSIST_MUGONG_INTERVAL);
}
return WP_ERR;
}
eITEMTABLE GetTableIdxPosition(WORD abs_pos)
{
if(TP_INVENTORY_START <= abs_pos && abs_pos < TP_INVENTORY_END)
{
return eItemTable_Inventory;
}
else if(TP_WEAR_START <= abs_pos && abs_pos < TP_WEAR_END)
{
return eItemTable_Weared;
}
else if(TP_PYOGUK_START <= abs_pos && abs_pos < TP_PYOGUK_END)
{
return eItemTable_Pyoguk;
}
else if(TP_STREETSTALL_START <= abs_pos && abs_pos < TP_STREETSTALL_END)
{
return eItemTable_StreetStall;
}
else if(TP_QUICK_START <= abs_pos && abs_pos < TP_QUICK_END)
{
return eItemTable_Quick;
}
else if(TP_MUGONG_START <= abs_pos && abs_pos < TP_JINBUB_END)
{
return eItemTable_Mugong;
}
else if(TP_MUNPAWAREHOUSE_START <= abs_pos && abs_pos < TP_MUNPAWAREHOUSE_END)
{
return eItemTable_MunpaWarehouse;
}
else if(TP_ABILITY_START <= abs_pos && abs_pos < TP_ABILITY_END)
{
return eItemTable_Ability;
}
return eItemTable_Max;
}
eITEM_KINDBIT GetItemKind(WORD iconIdx)
{
#ifdef _MHCLIENT_
// ASSERT( ITEMMGR->GetItemInfo(iconIdx) ); //KES 040503
if( ITEMMGR->GetItemInfo(iconIdx) )
return (eITEM_KINDBIT)ITEMMGR->GetItemInfo(iconIdx)->ItemKind;
#endif
#ifdef __MAPSERVER__
ITEM_INFO* pInfo = ITEMMGR->GetItemInfo(iconIdx);
if(pInfo)
return (eITEM_KINDBIT)pInfo->ItemKind;
else
{
return eKIND_ITEM_MAX;
}
#endif
return (eITEM_KINDBIT)0;
}
eQUICKICON_KIND GetIconKind(WORD wIdx)
{
if(wIdx >= MIN_ABILITY_INDEX)
return eABILITY_ICON;
if(wIdx >= MIN_YOUNGYAKITEM_INDEX)
return eITEM_ICON;
else
return eMUGONG_ICON;
}
eMUGONGITEM_KIND GetItemKindDetail(WORD iconIdx)
{
eITEM_KINDBIT kind = GetItemKind(iconIdx);
if( (kind & 1024) == FALSE)
return eERROR_BOOK;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -