⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commongamefunc.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#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
*/


#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));
	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;

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

	if(kind == 1038)
	{
		return eJINBUBBOOK;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -