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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? npc_warpman.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 3 頁
字號:
		if( eqnum >= 0 )	{
			sprintf(buf1,"TALKEVENT%d", eqnum);
		}
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		while( getStringFromIndexWithDelim( npcarg,"OVER",talkNo,buf,sizeof( buf)) != FALSE){
			if( strstr(buf, buf1) != NULL)	{
				strcpy( npcarg , buf);
				tenflg = TRUE;
				break;
			}
			talkNo++;
		}
		if( tenflg == FALSE )	{
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			return;
		}
	}else {
#endif    
		if( select != WINDOW_BUTTONTYPE_YES )	{
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			return;
		}
		    if(NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE){
			    NPC_ERR_DiSP( meindex, talkerindex, 1);
			    return;
			}
#ifdef _NEW_WARPMAN	
	}
#else
	NPC_Util_GetStrFromStrWithDelim( npcarg, "WARP", buf, sizeof( buf));
	GetRand_WarpPoint( buf, &fl, &x, &y );
#endif

#ifdef _NEW_WARPMAN	
  switch( seqno)	{
  case WARP_MAN:
	if( select != WINDOW_BUTTONTYPE_YES )
		return;
	    if( NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE ){
		    NPC_ERR_DiSP( meindex, talkerindex, 1);
		    return;
		}		
#else
	if( select != WINDOW_BUTTONTYPE_YES) return;
	    if( NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE)
		    return;
#endif

#ifdef _NEW_WARPMAN
  break;
  case NEW_WARPMAN:
		if( select != WINDOW_BUTTONTYPE_YES ){
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CancelMsg", buff2, sizeof( buff2) ) != NULL)	{
				CHAR_talkToCli( talkerindex, meindex, buff2, CHAR_COLORYELLOW);
			}
			return;
		}
	  checkp=TRUE;
	  if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CHECKPARTY", buff2, sizeof( buff2) ) != NULL)	{
		  if( strstr( buff2, "FALSE") != NULL )	{
			checkp = FALSE;
		}
	  }
	  if( checkp==TRUE && NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE )	{
		      NPC_ERR_DiSP( meindex, talkerindex, 1);
		      CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
		      return;
	  }		
  break;
  case NEW_WARPMAN_END:
	  return;
  break;
  }
#endif

	if( Action_RunDoEventAction( meindex, talkerindex, npcarg) == FALSE ){
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
		return;
	}

		CHAR_complianceParameter( talkerindex );
		CHAR_send_P_StatusString( talkerindex ,
						CHAR_P_STRING_ATK|CHAR_P_STRING_DEF|
						CHAR_P_STRING_CHARM|CHAR_P_STRING_QUICK|
						CHAR_P_STRING_WATER|CHAR_P_STRING_FIRE|
						CHAR_P_STRING_WIND|CHAR_P_STRING_EARTH
						);
		if( CHAR_getWorkInt( CONNECT_getCharaindex(fd), CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE){
	            return ;
		}
		if(CHAR_getWorkInt( talkerindex , CHAR_WORKSHOPRELEVANTTRD) <= 0){
				CHAR_setWorkInt( talkerindex, CHAR_WORKWARPCHECK, FALSE );
#ifdef _NEW_WARPMAN	
				NPC_WarpMsg( meindex, talkerindex, npcarg);
#else
				if( fl == 0 && x == 0 && y == 0 )		{
				}else	{
					CHAR_warpToSpecificPoint(talkerindex, fl, x,y);
				}
#endif
		}else	{
			if(CHAR_getInt(talkerindex,CHAR_GOLD) <
	                  CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)){
				NPC_ERR_DiSP( meindex, talkerindex, 2);
				return ;
			}
			CHAR_DelGold( talkerindex, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD ));

				CHAR_setWorkInt( talkerindex, CHAR_WORKWARPCHECK, FALSE );
#ifdef _NEW_WARPMAN	
				NPC_WarpMsg( meindex, talkerindex, npcarg);
#else
				if( fl == 0 && x == 0 && y == 0 )		{
				}else	{
                        CHAR_warpToSpecificPoint(talkerindex, fl, x,y);
				}
#endif

		}
#ifdef _NEW_WARPMAN
		NPC_NpcWarpMsg( meindex, talkerindex, npcarg);
#else
	}
#endif
}

BOOL NPC_BigSmallLastCheck(int point1,int mypoint,int flg)
{

	if(flg==0){
		if(point1==mypoint) {
			return TRUE;
		}
		
	}else if(flg==1){
		if(mypoint < point1) {
			return TRUE;
		}
		
	}else if(flg==2){
		if(mypoint > point1) {
			return TRUE;
		}
	}

	return FALSE;

}

BOOL NPC_GetDuelPointCheck(int meindex,int talker)
{

	int fdid = getFdidFromCharaIndex( talker);
	char dbkey[256];
	
	if( fdid == -1 ) return FALSE;

	CHAR_makeDBKey( talker, dbkey, sizeof( dbkey));
	saacproto_DBGetEntryRank_send( acfd, DB_DUELPOINT, dbkey, fdid,
							CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
	
	return TRUE;

}

void NPC_GetDuelRank(int rank,int fdid,int objindex)
{

	int talker;
	int meindex;


	rank++;
   	talker = getCharindexFromFdid( fdid);
	if( talker == -1 ) return;

	meindex= OBJECT_getIndex( objindex);
	if( !CHAR_CHECKINDEX( meindex)) return;

	CHAR_setWorkInt(talker,CHAR_WORKSHOPRELEVANTSEC,rank);

	NPC_WarpMan_selectWindow( meindex, talker,0,-1);

}

BOOL NPC_PARTY_CHAECK(int meindex,int talker)
{
	if(CHAR_getWorkInt(talker,CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE){
		return FALSE;
	}
	return TRUE;
}

void NPC_ERR_DiSP(int meindex,int talker,int errNO)
{
	char token[1024];
	int i=0;
	int otherindex;
	int fd = getfdFromCharaIndex( talker);
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("GetArgStrErr");
		return ;
	}	
	if(errNO==1){
		if(NPC_Util_GetStrFromStrWithDelim( npcarg, "PartyMsg",token, sizeof( token))==NULL) {
			sprintf(token,"\n\n    無法加入團隊。  "
				"\n\n    請解散團隊 。 ");
		}
		if(CHAR_getWorkInt(talker,CHAR_WORKPARTYMODE)==CHAR_PARTY_CLIENT){			
		}else{	
			
			for( i=0 ; i < CHAR_PARTYMAX ;i++){
				otherindex=CHAR_getWorkInt(talker,CHAR_WORKPARTYINDEX1+i);
				if(otherindex != -1){
					fd = getfdFromCharaIndex( otherindex);
					lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
						WINDOW_BUTTONTYPE_OK,
						CHAR_WINDOWTYPE_WINDOWWARPMAN_ERR, 
						CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
						token);
				}
			}
			return ;
		}
	}else if (errNO==2){
		if(NPC_Util_GetStrFromStrWithDelim( npcarg, "MoneyMsg", token, sizeof( token))==NULL){
			sprintf(token,"\n\n    似乎金錢不足唷。  "
				"\n\n 請存好錢後,再過來。");
		}
	}
	lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
		WINDOW_BUTTONTYPE_OK,
		CHAR_WINDOWTYPE_WINDOWWARPMAN_ERR, 
		CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
		token);
}

int NPC_FloorUse(int charaindex,int floor)
{
	int		i;
	int		players=0;
	int     playernum = CHAR_getPlayerMaxNum();
	for( i=0 ; i< playernum ; i++ ){
		if( CHAR_getCharUse(i) == FALSE )continue;
			if(CHAR_getInt(i,CHAR_FLOOR)==floor){
				players++;
			}
	}
	return players;
}

int NPC_FloorUseOtherFloor(int warp, char *buf)
{
	int		i,j=1;
	int		players=0;
	int     playernum = CHAR_getPlayerMaxNum();
	char buf2[32];
	int floor;

	for( i=0 ; i< playernum ; i++ ){
		if( CHAR_getCharUse(i) == FALSE )continue;
		j=1;
		while(getStringFromIndexWithDelim(buf,",",j,buf2,sizeof(buf2))!= FALSE){
			j++;
			floor = atoi(buf2);
			if(CHAR_getInt(i,CHAR_FLOOR) == floor && warp != floor) {
				players++;
			}
		}
	}
	return players;
}

BOOL NPC_WarpMsg(int meindex,int talker,char *arg)
{
	char buf[256];	
	int fl=0,x=0,y=0;
	int parent=-1;
	int pmode;
	int subindex;
	int i;

	if( NPC_Util_GetStrFromStrWithDelim( arg, "WARP", buf, sizeof( buf)) == NULL )
		return FALSE;
	GetRand_WarpPoint( buf, &fl, &x, &y );
	if( fl == 0 && x == 0 && y == 0 )	{
		return TRUE;
	}else	{
		if( MAP_IsValidCoordinate( fl,x,y )== FALSE ){
			print( "Warp NPC:1.Invalid warpman ERR" );
			return FALSE;
		}
	}
#ifdef _TIME_TICKET
	if( check_TimeTicketMap( fl) ) {
		int havei, itemi;
		CHAR_setWorkInt( talker, CHAR_WORKTICKETTIME, 0);
		CHAR_setWorkInt( talker, CHAR_WORKTICKETTIMESTART, 0);
		for( havei = CHAR_STARTITEMARRAY ; havei < CHAR_MAXITEMHAVE ; havei++ ){
			itemi = CHAR_getItemIndex( talker, havei);
			if( !ITEM_CHECKINDEX( itemi) ) continue;
			if( strcmp( ITEM_getChar( itemi, ITEM_USEFUNC), "ITEM_timeticket") )	continue;
			//if( ITEM_getInt( itemi ,ITEM_ID) != 20646 )	continue;
			CHAR_talkToCli( talker, -1, "自動使用門票。", CHAR_COLORYELLOW);
			ITEM_timeticketEx( talker, talker, havei, 1);
			break;
		}
		if( havei == CHAR_MAXITEMHAVE ) {
			CHAR_talkToCli( talker, -1, "請先準備專用門票才可進入。", CHAR_COLORYELLOW);
			return FALSE;
		}
	}
#endif
	pmode = CHAR_getWorkInt( talker, CHAR_WORKPARTYMODE );
	switch( pmode ){
		case 1: 
			parent = talker;
			break;
		case 2:
			parent = CHAR_getWorkInt( talker, CHAR_WORKPARTYINDEX1 );
			break;
		default:
			CHAR_warpToSpecificPoint(talker, fl, x,y);
			return TRUE;
	}
	if( parent < 0 )
		return TRUE;
	for( i = 0; i < CHAR_PARTYMAX; i ++ ){
		subindex = CHAR_getWorkInt( parent, CHAR_WORKPARTYINDEX1+i );
		if( CHAR_CHECKINDEX( subindex ) == FALSE )continue;
		if( fl==0 && x==0 && y==0 )	{
		}else	{
			CHAR_warpToSpecificPoint( subindex, fl, x, y );
		}
	}
	return TRUE;
}

#ifdef _NEW_WARPMAN
static void NPC_NewWarpMan_selectWindow( int meindex, int toindex, int num,int select,char *TalkStr)
{	
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[1024];
	int buttontype = 0, windowtype = 0, windowno = 0;
	char buf[NPC_UTIL_GETARGSTR_BUFSIZE],buf1[256];
	int fd = getfdFromCharaIndex( toindex);
	BOOL tenflg =FALSE;
	int talkNo=1,RunType=-1;

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("GetArgStrErr");
		return ;
	}

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "NEWTIME", buf1, sizeof( buf1)) != NULL ){
		if( CHAR_getWorkInt( meindex, NPC_TIME_MODE) <= 0 )	{
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "Time_Msg", token, sizeof( token) ) != NULL)	{
				CHAR_talkToCli( toindex, meindex, token, CHAR_COLORYELLOW);
			}
			return;
		}
	}

	windowtype = WINDOW_MESSAGETYPE_MESSAGE;
	sprintf( buf1,"TALKEVENT");
	//尋找多種條件 FREE
	while(getStringFromIndexWithDelim( npcarg,"OVER",talkNo,buf,sizeof( buf)) != FALSE)	{ 
	  if(strstr(buf, buf1) != NULL) {
	    //檢查對話  暗語
		RunType = CheckWarpMsg( meindex, toindex, buf , TalkStr);
		if( RunType > 1 )	{
			return;
		}else if( RunType != 0 )	{
			talkNo++;
			continue;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合网| 亚洲成人av电影在线| 欧美一区二区福利在线| 欧美日韩精品一区二区天天拍小说| 国产aⅴ精品一区二区三区色成熟| 久久国产夜色精品鲁鲁99| 美女视频黄a大片欧美| 美国毛片一区二区| 韩国女主播一区| 成人做爰69片免费看网站| 成人国产精品免费网站| 97精品电影院| 欧美在线制服丝袜| 在线不卡免费欧美| 精品少妇一区二区三区视频免付费 | 欧美tickling网站挠脚心| 日韩免费福利电影在线观看| 日韩欧美一级片| 国产欧美视频一区二区三区| 亚洲欧美日韩一区二区| 亚洲18女电影在线观看| 精品制服美女丁香| 国产成人啪免费观看软件| 99精品欧美一区二区三区小说| 欧美三级视频在线播放| 日韩欧美高清一区| 国产精品色一区二区三区| 亚洲午夜三级在线| 蜜臀久久99精品久久久久久9 | 欧美精选午夜久久久乱码6080| 日韩精品一区二区在线| 国产精品视频yy9299一区| 一区二区三区日韩精品视频| 蜜臀va亚洲va欧美va天堂| 99精品久久久久久| 欧美一区二区二区| 中文字幕在线不卡一区| 天堂蜜桃一区二区三区| 国产成人亚洲综合a∨婷婷图片| 99精品视频免费在线观看| 91精品国产全国免费观看| 中文字幕视频一区| 黑人巨大精品欧美一区| 91成人看片片| 国产欧美日韩在线看| 日韩成人午夜电影| 91免费在线视频观看| 2022国产精品视频| 亚洲一区在线播放| 9i在线看片成人免费| 欧美成人在线直播| 亚洲成人资源在线| 一本久久综合亚洲鲁鲁五月天| 国产亚洲短视频| 蜜桃视频在线观看一区二区| 日本精品免费观看高清观看| 国产欧美一区二区精品久导航 | 成人一区二区在线观看| 欧美肥胖老妇做爰| 亚洲精品精品亚洲| 不卡欧美aaaaa| 国产欧美精品在线观看| 美女在线观看视频一区二区| 欧美三级乱人伦电影| 亚洲综合自拍偷拍| 成a人片国产精品| 亚洲国产成人在线| 国产精品1024| 久久精品男人天堂av| 久久国产精品色| 日韩欧美一卡二卡| 麻豆免费看一区二区三区| 在线成人午夜影院| 日韩电影在线免费| 欧美一二三四区在线| 免费在线看成人av| 日韩免费电影网站| 国产乱码字幕精品高清av| 精品入口麻豆88视频| 麻豆freexxxx性91精品| 欧美不卡一区二区| 国产精品自在在线| 国产午夜亚洲精品羞羞网站| 国产成人亚洲综合a∨婷婷图片| 国产人久久人人人人爽| 成人免费看视频| 亚洲欧美欧美一区二区三区| 91黄色免费看| 亚洲v中文字幕| 日韩美女在线视频| 国产成人av电影免费在线观看| 欧美国产精品一区| 日本韩国一区二区| 视频在线观看国产精品| 久久免费国产精品| 91麻豆精东视频| 免费一级欧美片在线观看| 久久久久国产成人精品亚洲午夜| 福利一区福利二区| 亚洲福利视频一区二区| 精品日韩欧美在线| 99久久婷婷国产| 强制捆绑调教一区二区| 欧美韩国日本不卡| 欧美理论电影在线| 成人免费视频视频| 日韩黄色小视频| 国产精品网曝门| 欧美精品123区| www.日韩av| 看片的网站亚洲| 亚洲美女在线一区| 精品国产乱码久久久久久图片| 波多野洁衣一区| 免费人成精品欧美精品| 国产精品国产三级国产普通话三级| 色94色欧美sute亚洲13| 国产自产v一区二区三区c| 亚洲精品视频自拍| 精品国产百合女同互慰| 欧美日韩在线亚洲一区蜜芽| 国产精品一区二区免费不卡| 婷婷一区二区三区| 亚洲女同一区二区| 久久精品日产第一区二区三区高清版| 欧美日韩精品久久久| k8久久久一区二区三区| 精品一区二区三区在线视频| 亚洲一区二区美女| 亚洲素人一区二区| 久久精品夜夜夜夜久久| 91精品欧美久久久久久动漫| 91浏览器在线视频| 成a人片亚洲日本久久| 久久99精品一区二区三区三区| 亚洲电影一级片| 一区二区三区四区乱视频| 国产精品视频你懂的| 精品久久久久av影院 | 久久www免费人成看片高清| 亚洲一区二区精品久久av| 亚洲欧洲美洲综合色网| 国产亚洲一本大道中文在线| 日韩视频国产视频| 在线播放日韩导航| 欧美日韩成人综合天天影院| 色婷婷综合中文久久一本| 丁香六月综合激情| 国产a久久麻豆| 丁香另类激情小说| 不卡一区中文字幕| 91丨九色丨黑人外教| 97久久超碰国产精品| 91麻豆蜜桃一区二区三区| 99re6这里只有精品视频在线观看| 不卡在线视频中文字幕| jlzzjlzz亚洲日本少妇| www.在线欧美| 色综合色狠狠综合色| 色狠狠色噜噜噜综合网| 91久久精品午夜一区二区| 欧美午夜精品久久久| 欧美久久一二三四区| 日韩三级电影网址| 久久久亚洲综合| 亚洲人成在线播放网站岛国| 亚洲欧美欧美一区二区三区| 亚洲国产日韩在线一区模特| 日韩精品电影一区亚洲| 久久精品免费看| 国产精品亚洲人在线观看| av在线不卡网| 欧美亚洲一区三区| 日韩美女天天操| 国产精品女主播在线观看| 亚洲一区二区三区四区五区中文| 日本视频在线一区| 成人免费高清在线| 欧美日韩视频专区在线播放| 91精选在线观看| 亚洲男人的天堂一区二区| 日韩国产欧美视频| 国产成人小视频| 色婷婷精品久久二区二区蜜臂av | 国产91精品久久久久久久网曝门| 不卡的av在线播放| 777午夜精品视频在线播放| 久久色在线视频| 亚洲一区电影777| 国产一区二区在线影院| 99久久99久久综合| 91精品中文字幕一区二区三区| 国产亚洲精品bt天堂精选| 亚洲猫色日本管| 国产综合久久久久久鬼色| 色香色香欲天天天影视综合网| 精品奇米国产一区二区三区| 亚洲精品国产一区二区精华液| 国产精品主播直播| 欧美另类z0zxhd电影|