亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? npc_bus.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "version.h"
#include <string.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "npcutil.h"
#include "lssproto_serv.h"
#include "npc_bus.h"
#include "handletime.h"

/* 
 * 田旦心兇中卅儀毛允月NPC
 */
 
enum {
	NPC_WORK_ROUTETOX = CHAR_NPCWORKINT1,		/* 升仇尺"  甄   */
	NPC_WORK_ROUTETOY = CHAR_NPCWORKINT2,		/* 升仇尺"  甄   */
	NPC_WORK_ROUTEPOINT = CHAR_NPCWORKINT3,		/* 漆窒    井 */
	NPC_WORK_ROUNDTRIP = CHAR_NPCWORKINT4,		/* 墊五井窖曰井  ㄟ“墊五 ㄠ“窖曰  */
	NPC_WORK_MODE = CHAR_NPCWORKINT5,
	NPC_WORK_CURRENTROUTE = CHAR_NPCWORKINT6, 
	NPC_WORK_ROUTEMAX = CHAR_NPCWORKINT7,
	NPC_WORK_WAITTIME = CHAR_NPCWORKINT8,
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT9,
	NPC_WORK_SEFLG = CHAR_NPCWORKINT10,
};

/* 蛐  丟永本□斥及enum */
enum {
	NPC_BUS_MSG_GETTINGON,
	NPC_BUS_MSG_NOTPARTY,
	NPC_BUS_MSG_OVERPARTY,
	NPC_BUS_MSG_DENIEDITEM,
	NPC_BUS_MSG_ALLOWITEM,
	NPC_BUS_MSG_LEVEL,
	NPC_BUS_MSG_GOLD,
	NPC_BUS_MSG_EVENT,
	NPC_BUS_MSG_START,
	NPC_BUS_MSG_END,
};
typedef struct {
	char	option[32];
	char	defaultmsg[128];
}NPC_BUS_MSG;
NPC_BUS_MSG		busmsg[] = {
	{ "msg_gettingon",	"PAON!(你無法於中途加入我們唷!)"},
	{ "msg_notparty",	"PAPAON!!無法以團(tuán)隊(duì)加入唷!"},
	{ "msg_overparty",	"PAON!!人數(shù)已滿。"},
	{ "msg_denieditem",		"PAPAON!!我可不要這個道具!"},
	{ "msg_allowitem",		"哇喔~(想要那個道具啊!)"},
	{ "msglevel",		"PAPAON!!你的等級還不夠唷!"},
	{ "msg_stone",		"PAPAON!!金錢不足唷!"},
	{ "msg_event",		"PAON!!你無法加入唷!"},
	{ "msg_start",		"哇喔~(出發(fā)進(jìn)行)"},
	{ "msg_end",		"哇喔~(到羅)"}
	
};

static int NPC_BusSetPoint( int meindex, char *argstr);
static void NPC_BusSetDestPoint( int meindex, char *argstr);
static BOOL NPC_BusCheckDeniedItem( int meindex, int charaindex, char *argstr);
static BOOL NPC_BusCheckLevel( int meindex, int charaindex, char *argstr);
static int NPC_BusCheckStone( int meindex, int charaindex, char *argstr);
static void NPC_BusSendMsg( int meindex, int talkerindex, int tablenum);
static int NPC_BusGetRoutePointNum( int meindex, char *argstr );
static void NPC_Bus_walk( int meindex);

#define		NPC_BUS_LOOPTIME		200

/* 謹(jǐn)切凜棉犯白巧伙玄 */
#define		NPC_BUS_WAITTIME_DEFAULT	180

#define		NPC_BUS_WAITINGMODE_WAITTIME	5000

/*********************************
* 賡渝質(zhì)  
*********************************/
BOOL NPC_BusInit( int meindex )
{
	char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	int i;
	char	buf[256];
	int	routenum;
	int	waittime;
	int seflg;
	
	NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));

	/* 卅仃木壬中仃卅中婁醒及民尼永弁 */
	routenum = NPC_Util_GetNumFromStrWithDelim( argstr, "routenum");//行駛路線數(shù)量

	if( routenum == -1 ) {
		print( "npcbus:nothing routenum \n");
		return FALSE;
	}
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, routenum);
	
	for( i = 1; i <= routenum; i ++ ) {
		char routetostring[64];
		snprintf( routetostring, sizeof( routetostring), "routeto%d", i);
		if( NPC_Util_GetStrFromStrWithDelim( argstr, routetostring,buf, sizeof(buf))
			== NULL ) 
		{
			print( "npcbus:nothing route to \n");
			return FALSE;
		}

	}
	waittime = NPC_Util_GetNumFromStrWithDelim( argstr, "waittime");

	if( waittime == -1 ) waittime = NPC_BUS_WAITTIME_DEFAULT;
	CHAR_setWorkInt( meindex, NPC_WORK_WAITTIME, waittime);

	seflg = NPC_Util_GetNumFromStrWithDelim( argstr, "seflg");

	if( seflg == -1 ) seflg = TRUE;
	CHAR_setWorkInt( meindex, NPC_WORK_SEFLG, seflg);
    
    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEBUS );
	
	CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, 2);
	CHAR_setWorkInt( meindex, NPC_WORK_ROUNDTRIP, 0);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTROUTE, 0);
			
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, 
						NPC_BUS_WAITINGMODE_WAITTIME);
    
    /* 蜇箕及凜棉毛本永玄 */
    CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);

    for( i = 0; i < CHAR_PARTYMAX; i ++) {
    	CHAR_setWorkInt( meindex, CHAR_WORKPARTYINDEX1 + i, -1);
    }
	
	/* 伙□玄瑁爛允月 */
{
	int rev;
	int r = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEMAX);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTROUTE, RAND( 1, r));
	//print( "route:%d\n",CHAR_getWorkInt( meindex, NPC_WORK_CURRENTROUTE));

	/*   欠旦正□玄 */
	rev = NPC_Util_GetNumFromStrWithDelim( argstr, "reverse");

	if( rev == 1 ) {
		int num = NPC_BusGetRoutePointNum( meindex, argstr);

		if( num <= 0 ) {
			print( "npcbus:真奇怪!\n");
			return FALSE;
		}
		CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, num-1);
		CHAR_setWorkInt( meindex, NPC_WORK_ROUNDTRIP, 1);
	}
	/* 伙□玄毛本永玄允月 */
	NPC_BusSetPoint( meindex, argstr);
	/* 墊五燮毛  憎允月 */
	NPC_BusSetDestPoint( meindex, argstr);
}

    return TRUE;
}


/*********************************
*   仄井仃日木兇凜及質(zhì)  
*********************************/
void NPC_BusTalked( int meindex , int talkerindex , char *szMes ,
                     int color )
{
    int i;
    int	partyflg = FALSE;
	
    /* 皿伊奶乩□卞覆仄化分仃  殺允月 */
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	/* 憤坌及由□  奴  曇菸  井升丹井譬屯月 */
	for( i = 0; i < CHAR_PARTYMAX; i ++ ) {
		int index = CHAR_getWorkInt( meindex, CHAR_WORKPARTYINDEX1+i);
		if( CHAR_CHECKINDEX(index)){
			if( index == talkerindex) {
				partyflg = TRUE;
			}
		}
	}
	if( !partyflg ) {
		//NPC_BusCheckJoinParty( meindex, talkerindex, TRUE);
	}
	else {
		if( CHAR_getWorkInt( meindex, NPC_WORK_MODE) == 0 ) {
			int i;
	//		#define NPC_BUS_DEBUGROUTINTG	"routingtable:"
			if( strstr( szMes, "出發(fā)" )  ||
				strstr( szMes, "出發(fā)" )  ||
				strstr( szMes, "Go" )  ||
				strstr( szMes, "go" ))
			{
				CHAR_setWorkInt( meindex, NPC_WORK_MODE,1);
				
				/* 伙□皿楮醒及裟請仄毛洶仁簧蘸卞允月 */
	 			CHAR_setInt( meindex, CHAR_LOOPINTERVAL, NPC_BUS_LOOPTIME);
				/* SE   日允  穴件乒旦及陲太   */
				if( CHAR_getWorkInt( meindex, NPC_WORK_SEFLG )) {
					CHAR_sendSEoArroundCharacter( 
									CHAR_getInt( meindex, CHAR_FLOOR),
									CHAR_getInt( meindex, CHAR_X),
									CHAR_getInt( meindex, CHAR_Y),
									60,
									TRUE);
				}
				/* 請  允月凜及丟永本□斥*/
				for( i = 1; i < CHAR_PARTYMAX; i ++ ) {
					int partyindex = CHAR_getWorkInt( meindex, CHAR_WORKPARTYINDEX1+i);
					if( CHAR_CHECKINDEX( partyindex)) {
						NPC_BusSendMsg( meindex, partyindex, NPC_BUS_MSG_START);
					}
				}
			}
		}
#if 0
		else if( strstr( szMes, "停止" )  ||
			strstr( szMes, "停止" )  ||
			strstr( szMes, "stop" )  ||
			strstr( szMes, "Stop" ))
		{
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,2);

			/* 伙□皿楮醒及奶件正□田伙毛聶仁允月  */
			CHAR_setInt( meindex, CHAR_LOOPINTERVAL, 
						NPC_BUS_WAITINGMODE_WAITTIME);
		    /* 蜇箕及凜棉毛本永玄 */
		    CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
		}
		else if( strstr( szMes, NPC_BUS_DEBUGROUTINTG )) {
			/* 犯田永弘迕 */
			char *p = strstr( szMes,NPC_BUS_DEBUGROUTINTG);
			char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];

			NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
			if( p) {
				int a = atoi( p+strlen(NPC_BUS_DEBUGROUTINTG));
				if( a <0 ) a = 1;
				CHAR_setWorkInt( meindex, NPC_WORK_CURRENTROUTE, a);
			}
			//print( "route:%d\n",CHAR_getWorkInt( meindex, NPC_WORK_CURRENTROUTE));
			/* 伙□玄毛本永玄允月 */
			NPC_BusSetPoint( meindex, argstr);
		}
#endif
	}
}
/**************************************
 * 伙□皿楮醒
 **************************************/
void NPC_BusLoop( int meindex)
{
	int	i;
	switch( CHAR_getWorkInt( meindex, NPC_WORK_MODE )) {
	  case 0:
	    /* 謹(jǐn)切乒□玉及凜]凜棉毛民尼永弁允月 */
		/* 凜棉互煩勻兇及匹]請  允月 */
		if( CHAR_getWorkInt( meindex, NPC_WORK_CURRENTTIME) 
			+ CHAR_getWorkInt( meindex, NPC_WORK_WAITTIME) 
			< NowTime.tv_sec)
		{
			/* SE   日允  穴件乒旦及陲太   */
			if( CHAR_getWorkInt( meindex, NPC_WORK_SEFLG )) {
				CHAR_sendSEoArroundCharacter( 
								CHAR_getInt( meindex, CHAR_FLOOR),
								CHAR_getInt( meindex, CHAR_X),
								CHAR_getInt( meindex, CHAR_Y),
								60,
								TRUE);
			}
			/* 請  允月凜及丟永本□斥*/
			for( i = 1; i < CHAR_PARTYMAX; i ++ ) {
				int partyindex = CHAR_getWorkInt( meindex, CHAR_WORKPARTYINDEX1+i);
				if( CHAR_CHECKINDEX( partyindex)) {
					NPC_BusSendMsg( meindex, partyindex, NPC_BUS_MSG_START);
				}
			}
			
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,1);
			/* 伙□皿楮醒及裟請仄毛洶仁簧蘸卞允月 */
			CHAR_setInt( meindex, CHAR_LOOPINTERVAL, NPC_BUS_LOOPTIME);
		}
		return;
	  case 1:
	  	/* 洶仁 */
	  	NPC_Bus_walk( meindex);
	  case 2:
		/* 鞅引勻化中月乒□玉 */
		/* 凜棉互煩勻兇及匹]請  允月 */
		if( CHAR_getWorkInt( meindex, NPC_WORK_CURRENTTIME) 
			+ (CHAR_getWorkInt( meindex, NPC_WORK_WAITTIME) /3)
			< NowTime.tv_sec)
		{
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,1);
			/* 伙□皿楮醒及裟請仄毛洶仁簧蘸卞允月 */
			CHAR_setInt( meindex, CHAR_LOOPINTERVAL, NPC_BUS_LOOPTIME);
		
		}
		return;
	  case 3:
		/* 讒邋仄化手]弁仿奶失件玄及  樟謹(jǐn)切及啃卞]
		 * 劑仄仇仇匹它尼奶玄毛中木化支月
		 */
		if( CHAR_getWorkInt( meindex, NPC_WORK_CURRENTTIME) + 3
			< NowTime.tv_sec)
		{
			char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];

			NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
			/* 伙□皿楮醒及裟請仄毛贊仁允月 */
			CHAR_setInt( meindex, CHAR_LOOPINTERVAL, 
						NPC_BUS_WAITINGMODE_WAITTIME);
			
			/* 伙□玄瑁爛允月 */
			{
				int r = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEMAX);
				CHAR_setWorkInt( meindex, NPC_WORK_CURRENTROUTE, RAND( 1, r));
				//print( "route:%d\n",CHAR_getWorkInt( meindex, NPC_WORK_CURRENTROUTE));
			}
			/* 墊五窖曰白仿弘  凳 */
			CHAR_setWorkInt( meindex, NPC_WORK_ROUNDTRIP, 
							CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP)^1);

			/* 戚禾奶件玄及譬濡 */
			/* 窖曰反  潰質(zhì)   */
			if( CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP) == 1)  {
				/* 公及伙□玄及  嫖禾奶件玄醒毛  月 */
				int num = NPC_BusGetRoutePointNum( meindex, argstr);
				CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, num-1);
			}
			else {
				CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, 
							CHAR_getWorkInt( meindex, NPC_WORK_ROUTEPOINT) +1);
			}
			/* 戚及禾奶件玄及甄  毛本永玄允月 */
			NPC_BusSetPoint( meindex, argstr);
			/* 墊五燮毛  憎允月 */
			NPC_BusSetDestPoint( meindex, argstr);
			/* 由□  奴  仃月質(zhì)  毛允月 */
			CHAR_DischargeParty( meindex, 0);
		    /* 蜇箕及凜棉毛本永玄 */
		    CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
			/* 乒□玉弁伉失 */
			CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);
		}
		return;
	  default:
	    break;
	}
}
/**************************************
 * 洶仁[
 **************************************/
static void NPC_Bus_walk( int meindex)
{	
	POINT	start, end;
	int dir;
	int ret;
	int i;

	/* 洶仁楮溢 */
	/* 讒邋仄兇凜及質(zhì)   */
	start.x = CHAR_getInt( meindex, CHAR_X);
	start.y = CHAR_getInt( meindex, CHAR_Y);
	end.x = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOX);
	end.y = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOY);
	
	/* 讒邋仄兇及匹戚及禾奶件玄卞 */
	if( start.x == end.x && start.y == end.y ) {
		int add = 1;
		char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];

		NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));

		if( CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP ) == 1 ) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
18成人在线观看| 欧美mv日韩mv国产网站| 亚洲色图在线视频| 91在线播放网址| 一区二区三区在线观看网站| 色美美综合视频| 一区二区三区四区高清精品免费观看| 日本精品一区二区三区四区的功能| 伊人一区二区三区| 91精品在线一区二区| 久久99深爱久久99精品| 久久精品一级爱片| 91在线观看免费视频| 午夜精品免费在线| 亚洲精品一区二区三区99| 粉嫩13p一区二区三区| 亚洲欧美日韩久久| 91精品国产入口| 国产成人精品一区二区三区四区| 国产精品麻豆99久久久久久| 色哟哟精品一区| 日韩精品电影在线| 国产精品久久久久一区 | 紧缚奴在线一区二区三区| 久久免费美女视频| 一本色道久久综合精品竹菊| 一区二区三区自拍| 精品女同一区二区| 97精品电影院| 极品少妇一区二区三区精品视频 | 在线观看精品一区| 美国欧美日韩国产在线播放| 中文字幕巨乱亚洲| 欧美一级高清片| 色综合久久六月婷婷中文字幕| 免费观看一级特黄欧美大片| 中文字幕国产精品一区二区| 欧美福利视频一区| 粉嫩一区二区三区在线看| 日韩电影在线一区二区三区| 国产欧美日韩精品在线| 欧美剧在线免费观看网站| 成人激情黄色小说| 九色|91porny| 亚洲国产精品久久久久婷婷884| 2023国产一二三区日本精品2022| 在线观看不卡一区| 99视频一区二区三区| 美女精品自拍一二三四| 亚洲国产精品久久不卡毛片| 国产精品美女久久久久aⅴ| 欧美电影免费观看高清完整版在线| 在线亚洲高清视频| 成人av免费在线观看| 国产精品小仙女| 国产曰批免费观看久久久| 蜜臀91精品一区二区三区| 亚洲影院在线观看| 亚洲欧洲成人精品av97| 欧美激情在线一区二区三区| 精品福利一区二区三区 | 精品91自产拍在线观看一区| 欧美另类videos死尸| 色狠狠综合天天综合综合| av男人天堂一区| 国产成人精品亚洲午夜麻豆| 美女视频黄频大全不卡视频在线播放| 一区二区三区国产| 亚洲人吸女人奶水| 国产精品护士白丝一区av| 中日韩免费视频中文字幕| 久久精品免费在线观看| 欧美精品一区二| 日韩欧美一区二区视频| 69堂精品视频| 欧美一级高清大全免费观看| 欧美丰满高潮xxxx喷水动漫| 欧美日韩五月天| 欧美视频三区在线播放| 欧美日韩免费一区二区三区| 欧美影院午夜播放| 欧美日韩在线精品一区二区三区激情| 欧美专区日韩专区| 欧美日韩免费在线视频| 91精品国模一区二区三区| 日韩视频在线你懂得| 精品美女在线播放| 久久午夜电影网| 中国av一区二区三区| 国产精品第13页| 一区二区三区在线观看视频| 亚洲电影第三页| 蜜臂av日日欢夜夜爽一区| 国产在线视视频有精品| 国产成人自拍在线| 99久精品国产| 欧美日韩在线三区| 亚洲精品一区二区三区蜜桃下载| 国产欧美中文在线| 亚洲精品国产第一综合99久久| 亚洲国产精品一区二区www在线 | 欧美在线免费观看视频| 欧美精品黑人性xxxx| 欧美变态口味重另类| 国产欧美一区二区三区在线看蜜臀 | 国产在线不卡一区| www.欧美日韩| 欧美日韩国产免费| 久久久国产午夜精品| 综合久久久久久久| 日韩和欧美一区二区三区| 国产精品69久久久久水密桃| 色婷婷国产精品久久包臀| 欧美一区二区啪啪| 国产精品久久久久久久久久久免费看| 亚洲精品少妇30p| 久久精品国产精品亚洲精品| 99在线精品免费| 91麻豆精品国产| 亚洲视频免费在线| 久久精工是国产品牌吗| 91视频www| 久久综合中文字幕| 亚洲成人一区在线| 成人免费观看视频| 日韩一区二区三区电影在线观看 | 亚洲色图.com| 久久成人18免费观看| 99riav一区二区三区| 精品奇米国产一区二区三区| 日韩毛片一二三区| 国产剧情一区二区| 欧美日韩国产综合一区二区 | 26uuu亚洲综合色| 亚洲中国最大av网站| 国产**成人网毛片九色 | 国产人成一区二区三区影院| 亚洲图片欧美视频| 成人h动漫精品一区二| 欧美一级精品大片| 亚洲高清一区二区三区| a在线欧美一区| 久久久久久免费毛片精品| 日韩专区在线视频| 在线欧美日韩国产| 中文字幕在线不卡一区| 国产乱人伦偷精品视频不卡| 欧美精选午夜久久久乱码6080| 中文字幕一区av| 床上的激情91.| 2020国产精品久久精品美国| 午夜不卡av在线| 精品视频在线看| 亚洲综合成人在线| 色欧美片视频在线观看在线视频| 国产欧美在线观看一区| 国产精品一区二区三区99| 欧美本精品男人aⅴ天堂| 午夜精品福利一区二区三区av| 在线一区二区视频| 最新不卡av在线| 99精品在线观看视频| 中文字幕色av一区二区三区| 丁香天五香天堂综合| 国产亚洲综合av| 国产91丝袜在线观看| 国产日韩成人精品| 国产suv精品一区二区三区 | 国产精品午夜免费| 成人高清免费观看| 中文字幕中文字幕一区| 成人黄色小视频| 亚洲四区在线观看| 色综合久久久网| 亚洲成人免费看| 日韩欧美电影在线| 国产凹凸在线观看一区二区 | 亚洲欧美在线视频观看| 99国产精品国产精品久久| 亚洲精品国产精品乱码不99| 欧美在线播放高清精品| 日韩在线一区二区| 91精品国产91热久久久做人人| 奇米影视7777精品一区二区| 日韩欧美一区二区不卡| 国精产品一区一区三区mba桃花 | 亚洲精品在线三区| 国产成人综合视频| 亚洲人妖av一区二区| 欧美日韩国产精品成人| 久久久久久久久久久99999| 国产成人精品一区二 | 亚洲免费观看高清在线观看| 在线观看亚洲成人| 日本成人在线不卡视频| 久久精品夜色噜噜亚洲a∨| 91美女蜜桃在线| 日日摸夜夜添夜夜添精品视频 | 亚洲成人福利片| 久久综合色婷婷|