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

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

?? char_talk.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 4 頁
字號:
 * 婁醒 *  message     char*           丟永本□斥     *  kind        char*           p or s or i卅及丟永本□斥 *  kindlen     int             kind 及贏今 *  body        char**          丟永本□斥    及禾奶件正□及傘  樺赭 * 忒曰襖 *  卅仄 ------------------------------------------------------------*/void CHAR_getMessageBody(char* message,char* kind,int kindlen,char** body){    int firstchar;	/* 1  儂  毛切之勻仁[1  儂匹丐月仇午反lssproto.html互忡據 */	// Nuke +1: For invalid message attack	*body = 0;    firstchar = message[0];    if( firstchar == 'P' ||        firstchar == 'S' ||        firstchar == 'D'        // CoolFish: Trade 2001/4/18	|| firstchar == 'C'        || firstchar == 'T'        || firstchar == 'W'                                        // CoolFish: Family 2001/5/28	|| firstchar == 'A'        || firstchar == 'J'        || firstchar == 'E'        || firstchar == 'M'                || firstchar == 'B'        || firstchar == 'X'        || firstchar == 'R'        || firstchar == 'L'         ){        if( kindlen >= 2 ){            kind[0] = firstchar;            kind[1] = '\0';        } else {            return;        }    } else {        return;    }	*body = message + 2;}static BOOL CHAR_Talk_check( int talkerindex, int talkedindex, int micflg ){#if 1	if( !CHAR_getFlg( talkerindex, CHAR_ISPARTYCHAT )){		int talker_b_mode = CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEMODE);		int talked_b_mode = CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEMODE);		if( talker_b_mode != BATTLE_CHARMODE_NONE			&& CHAR_getInt( talkedindex, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER){			return FALSE;		}		if( micflg != 0 )return TRUE;		if( talker_b_mode != BATTLE_CHARMODE_NONE && talked_b_mode != BATTLE_CHARMODE_NONE){			if( CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEINDEX)				!= CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEINDEX)){				return FALSE;			}		}else if( talker_b_mode != BATTLE_CHARMODE_NONE || talked_b_mode != BATTLE_CHARMODE_NONE){		 	return FALSE;		}		return TRUE;	}	if( CHAR_getInt( talkerindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) {		int talker_b_mode = CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEMODE);		int talked_b_mode = CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEMODE);		if( talker_b_mode != BATTLE_CHARMODE_NONE && CHAR_getInt( talkedindex, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER){			return FALSE;		}		if( micflg != 0 )return TRUE;		if( CHAR_getWorkInt( talkerindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE ){			if( CHAR_getWorkInt( talkedindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE){				if( CHAR_getWorkInt( talkerindex, CHAR_WORKPARTYINDEX1)					== CHAR_getWorkInt( talkedindex, CHAR_WORKPARTYINDEX1) ){					return TRUE;				}			}		}else {			if( talker_b_mode != BATTLE_CHARMODE_NONE && talked_b_mode != BATTLE_CHARMODE_NONE){				if( CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEINDEX)					!= CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEINDEX)){					return FALSE;				}			}else if( talker_b_mode != BATTLE_CHARMODE_NONE ||					talked_b_mode != BATTLE_CHARMODE_NONE){			 	return FALSE;			}			return TRUE;		}	}	return FALSE;#else	int		MyBattleMode;	int		ToBattleMode;	MyBattleMode = CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEMODE);	ToBattleMode = CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEMODE);	/*   爵    及凜 */	if( MyBattleMode == BATTLE_CHARMODE_NONE ) {		if( ToBattleMode == BATTLE_CHARMODE_NONE ) {			return TRUE;		}		else {			return FALSE;		}	}	/* 爵    及凜 */	else {		/* 爵  仄化中卅中諦卞反霜日卅中[ */		if( ToBattleMode == BATTLE_CHARMODE_NONE) {			return FALSE;		}		/*   元爵  匹  元扔奶玉及諦卞仄井霜耨請  卅中 */		if( CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLEINDEX)			== CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLEINDEX) &&			CHAR_getWorkInt( talkerindex, CHAR_WORKBATTLESIDE)			== CHAR_getWorkInt( talkedindex, CHAR_WORKBATTLESIDE ) )		{			return TRUE;		}		else {			return FALSE;		}	}	return FALSE;#endif}#ifdef _TELLCHANNEL				// (不可開) Syu ADD 密語頻道static int TalkCount = 0 ; void OneByOneTkChannel ( int fd , char *tmp1 , char *tmp2 , int color ){	int i ; 	int myindex ;     int playernum = CHAR_getPlayerMaxNum();	char buf[512];	int IndexList[10] = { 0 } ; 	int IndexCount = 0 ; 	char *addr;	int target;	myindex = CONNECT_getCharaindex(fd);DebugPoint=300;	if( strlen( tmp2) > (sizeof(buf)-1) ) return;DebugPoint=301;	memset ( IndexList , -1 , sizeof( IndexList ) ); DebugPoint=302;	for( i = 0 ; i < playernum ; i++) {		if( CHAR_getCharUse(i) != FALSE ) {			if (!CHAR_CHECKINDEX(i))       				continue;			if ( strcmp ( tmp1 , CHAR_getChar( i , CHAR_NAME ) ) == 0 ) {				IndexList[ IndexCount ] = i ; 				IndexCount ++ ; 				if ( IndexCount >= 10 ) break;			}		}	}DebugPoint=303;	if ( IndexCount == 1 ) {DebugPoint=304;		if ( myindex == IndexList[0] )			return;#ifdef _CHANNEL_MODIFY		if(CHAR_getFlg(IndexList[0],CHAR_ISTELL) == FALSE){			snprintf(buf,sizeof(buf) - 1,"%s 關閉了此頻道" ,tmp1);			CHAR_talkToCli(myindex,-1,buf,color);			return;		}#endif#ifndef _CHANNEL_MODIFY		snprintf( buf, sizeof( buf)-1, "你告訴%s:%s" , tmp1 , tmp2 ) ; 		CHAR_talkToCli( myindex, -1, buf , color);		snprintf( buf , sizeof( buf)-1,"%s告訴你:%s" , CHAR_getChar ( myindex , CHAR_NAME ) , tmp2 ) ; 		CHAR_talkToCli( IndexList[0] , -1, buf , color);#else		snprintf(buf,sizeof(buf) - 1,"P|M|你告訴%s:%s",tmp1,tmp2); 		lssproto_TK_send(fd,CHAR_getWorkInt(myindex,CHAR_WORKOBJINDEX),buf,color);		snprintf(buf,sizeof(buf) - 1,"P|M|%s告訴你:%s",CHAR_getChar(myindex,CHAR_NAME),tmp2);		lssproto_TK_send(getfdFromCharaIndex(IndexList[0]),CHAR_getWorkInt(IndexList[0],CHAR_WORKOBJINDEX),buf,color);#endif		TalkCount ++ ; 	}else if ( IndexCount > 1 && IndexCount < 10 ) {DebugPoint=305;		print( "\nSyu log 進入同名Func" );		if ( ( addr = strstr ( tmp2 , "/T" ) ) != NULL ) {			addr = addr + 2 ; 			target = atoi ( addr ) ; 			print ( "\nSyu log addr => %s , target => %d " , addr , target ) ; 			addr = strtok ( tmp2 , "/T" ) ; 			if (!CHAR_CHECKINDEX(IndexList[target]))       				return;			if ( strcmp ( tmp1 , CHAR_getChar ( IndexList[ target ] , CHAR_NAME ) ) == 0 &&				IndexList[ target ] != -1 ) {				if ( myindex == IndexList[ target ] ) 					return ; #ifdef _CHANNEL_MODIFY				if(CHAR_getFlg(IndexList[target],CHAR_ISTELL) == FALSE){					snprintf(buf,sizeof(buf) - 1,"%s 關閉了此頻道" ,tmp1);					CHAR_talkToCli(myindex,-1,buf,color);					return;				}#endif#ifndef _CHANNEL_MODIFY				snprintf( buf , sizeof( buf)-1, "你告訴%s:%s" , tmp1 , addr ) ; 				CHAR_talkToCli( myindex, -1, buf , color);				snprintf( buf , sizeof( buf)-1, "%s告訴你:%s" , CHAR_getChar ( myindex , CHAR_NAME ) , addr ) ; 				CHAR_talkToCli( IndexList[ target ] , -1, buf , color);#else				snprintf(buf,sizeof(buf) - 1,"P|M|你告訴%s:%s",tmp1,addr); 				lssproto_TK_send(fd,CHAR_getWorkInt(myindex,CHAR_WORKOBJINDEX),buf,color);				snprintf(buf,sizeof(buf) - 1,"P|M|%s告訴你:%s",CHAR_getChar(myindex,CHAR_NAME),addr);				lssproto_TK_send(getfdFromCharaIndex(IndexList[target]),CHAR_getWorkInt(IndexList[target],CHAR_WORKOBJINDEX),buf,color);#endif				TalkCount ++ ;			}		}else {DebugPoint=306;			for ( i = 0 ; i < 10 ; i ++ ) {				if ( IndexList[ i ] == -1 ) break;				if (!CHAR_CHECKINDEX(IndexList[i])) break;#ifndef _CHANNEL_MODIFY				sprintf( buf , "TK|%d|%d|%d|%s|%s" , 					i , 					CHAR_getInt ( IndexList[ i ] , CHAR_TRANSMIGRATION ) , 					CHAR_getInt ( IndexList[ i ] , CHAR_LV ) , 					CHAR_getChar ( IndexList[ i ] , CHAR_NAME ) , 					CHAR_getChar ( IndexList[ i ] , CHAR_OWNTITLE )  					 ) ; 				CHAR_talkToCli( myindex , -1, buf , color);#else				sprintf( buf , "P|TK|%d|%d|%d|%s|%s" , 					i , 					CHAR_getInt ( IndexList[ i ] , CHAR_TRANSMIGRATION ) , 					CHAR_getInt ( IndexList[ i ] , CHAR_LV ) , 					CHAR_getChar ( IndexList[ i ] , CHAR_NAME ) , 					CHAR_getChar ( IndexList[ i ] , CHAR_OWNTITLE )  					 ) ; 				lssproto_TK_send(fd,CHAR_getWorkInt(myindex,CHAR_WORKOBJINDEX),buf,color);#endif			}#ifndef _CHANNEL_MODIFY			snprintf( buf , sizeof( buf)-1, "TE|%s" , tmp2 ) ; 			CHAR_talkToCli ( myindex , -1 , buf , color ) ; #else			snprintf( buf , sizeof( buf)-1, "P|TE|%s" , tmp2 ) ; 			lssproto_TK_send(fd,CHAR_getWorkInt(myindex,CHAR_WORKOBJINDEX),buf,color);#endif		}	}else if ( IndexCount == 0 ) {DebugPoint=307;		sprintf( buf , "沒有這個人或不位於這個星球" ) ; 		CHAR_talkToCli( myindex, -1, buf , color);	}DebugPoint=308;//	print ( "\nSyu log TkChannel use ratio : %d " , TalkCount ) ; }#endifvoid CHAR_Talk( int fd, int index,char* message,int color, int area ){	char    firstToken[64];	char    messageeraseescape[512];	char*   messagebody;	int     mesgvolume=0;	int     lastvolume=0;	int     fl,x,y;	int     stringlen;	int		micflg = 0;#ifdef _TELLCHANNEL				// (不可開) Syu ADD 密語頻道	char    tmp1[128] ; 	char	*tmp2;#endif		int	fmindexi = CHAR_getWorkInt( index, CHAR_WORKFMINDEXI );	int	channel = CHAR_getWorkInt( index, CHAR_WORKFMCHANNEL );	int	quickchannel = CHAR_getWorkInt( index, CHAR_WORKFMCHANNELQUICK );	{		char   *cdkey = CHAR_getChar( index, CHAR_CDKEY);		char *charname = CHAR_getChar( index, CHAR_NAME);		if( strlen(message) > 3 ){			if( CHAR_getWorkInt( index, CHAR_WORKFLG) & WORKFLG_DEBUGMODE )	{				// shan begin				if(strstr( message, "[")&&strstr( message, "]")){				}else{					// original					LogTalk( charname, cdkey, CHAR_getInt( index, CHAR_FLOOR),							 CHAR_getInt( index, CHAR_X), CHAR_getInt( index, CHAR_Y),							 message );				}				// end			}		}	}	//bg|0|r0|fc|d4B8|p0|bn|10|bt|10| 	// Nuke +1 08/27: For invalid message attack	if (*message==0) return;	CHAR_getMessageBody(message,firstToken,sizeof(firstToken),						&messagebody);        // Nuke +1: For invalid message attack        if (!messagebody) return;                							strcpysafe( messageeraseescape,sizeof(messageeraseescape),				messagebody );	makeStringFromEscaped( messageeraseescape );	stringlen = strlen(  messageeraseescape  );	if( stringlen <= 0 ) return;#ifdef _TELLCHANNEL				// (不可開) Syu ADD 密語頻道	if (messageeraseescape[0]== '/' && messageeraseescape[1]== 't' &&		messageeraseescape[2]== 'e' && messageeraseescape[3]== 'l' && 		messageeraseescape[4]== 'l'){DebugPoint=310;		getStringFromIndexWithDelim( message , " ", 2, tmp1, sizeof(tmp1));		if ( (tmp2 = strstr ( message , tmp1 )) != NULL ) {			//strcpy ( message , tmp2 + strlen ( tmp1 ) + 1 ) ;			message = tmp2 + strlen(tmp1) + 1 ; 			if( message == NULL || strlen( message ) <= 0 ) 				return;		}DebugPoint=308;		OneByOneTkChannel ( fd , tmp1 , message , color ) ; DebugPoint=309;		return;	}#endif#ifdef _M_SERVER	if (messageeraseescape[0]== '/' && messageeraseescape[1]== 'G' &&		messageeraseescape[2]== 'M' && messageeraseescape[3]== '/' ){		if( mfd != -1 )	{			int  fdid=CONNECT_getFdid(fd);			if( MSBUF_CHECKbuflen( strlen(messageeraseescape), 0.8) == FALSE ){				print("\n msbuf full !!");				CHAR_talkToCli(index,-1,"線上服務系統忙碌,請稍候再試",CHAR_COLORRED);				return;			}			mproto_Que_Send( mfd, fdid, index, messageeraseescape+4);			return;		}else	{			CHAR_talkToCli(index,-1,"暫時不提供此服務",CHAR_COLORRED);			return;		}	}#endif#ifdef _CHANNEL_MODIFY	// 家族頻道	if(messageeraseescape[0] == '/' && messageeraseescape[1] == 'F' && messageeraseescape[2] == 'M'){		sprintf(messageeraseescape,"%s",messageeraseescape + 3);	}	else channel = -1;	// 職業頻道	if(messageeraseescape[0] == '/' && messageeraseescape[1] == 'O' &&		 messageeraseescape[2] == 'C' && messageeraseescape[3] == 'C'){		int i,pclass = CHAR_getInt(index,PROFESSION_CLASS) - 1,TalkTo;		char buf[512];		sprintf(messageeraseescape,"%s",messageeraseescape + 4);		for(i=0;i<getFdnum();i++){			TalkTo = *(piOccChannelMember + (pclass * getFdnum()) + i);			if(TalkTo > -1){				// 如果對方有開頻道				if(CHAR_getFlg(TalkTo,CHAR_ISOCC) == TRUE){					char escapebuf[2048];					//snprintf(buf,sizeof(buf) - 1,"P|O|[職]%s",messageeraseescape);					snprintf(buf,sizeof(buf) - 1,"P|O|[職]%s", makeEscapeString( messageeraseescape, escapebuf, sizeof(escapebuf)) );					lssproto_TK_send(getfdFromCharaIndex(TalkTo),CHAR_getWorkInt(TalkTo,CHAR_WORKOBJINDEX),buf,color);				}			}		}		return;	}#endif	if( messageeraseescape[0] == '['		&& messageeraseescape[stringlen-1] == ']' ){		char*   pass;		// Arminius: limit ip +2

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看视频一区| 欧美人与z0zoxxxx视频| 久久久久亚洲蜜桃| 久久狠狠亚洲综合| 国产亚洲精久久久久久| 成人爱爱电影网址| 亚洲图片欧美色图| 91精品在线观看入口| 激情综合亚洲精品| 中文字幕的久久| 欧美性大战久久久久久久蜜臀| 亚洲成人精品一区| 欧美成人免费网站| 成人精品一区二区三区中文字幕| 中文字幕一区二区三区四区| 欧美视频自拍偷拍| 国产乱人伦精品一区二区在线观看| 国产精品无码永久免费888| 一本久道久久综合中文字幕| 秋霞国产午夜精品免费视频| 欧美国产欧美综合| 欧美色图免费看| 亚洲国产成人91porn| 久久久不卡影院| 日本大香伊一区二区三区| 麻豆精品在线播放| 国产精品色婷婷| 6080日韩午夜伦伦午夜伦| 高清beeg欧美| 日韩电影在线一区| 亚洲日本在线看| 精品三级在线看| 91成人国产精品| 国产高清不卡二三区| 亚洲va欧美va天堂v国产综合| 日韩精品自拍偷拍| 欧美亚洲国产一区二区三区va | 亚洲综合一区二区三区| 日韩一区二区在线播放| gogogo免费视频观看亚洲一| 麻豆视频一区二区| 亚洲综合视频网| 中文字幕在线视频一区| 精品嫩草影院久久| 欧美区一区二区三区| 不卡av免费在线观看| 精品一区二区日韩| 日韩和欧美一区二区三区| 国产精品久久久久久久久免费丝袜| 欧美一区二区三区四区高清| 色婷婷久久综合| 成人午夜激情影院| 韩国成人在线视频| 美洲天堂一区二卡三卡四卡视频| 一区二区三区成人在线视频| 国产精品毛片无遮挡高清| 337p日本欧洲亚洲大胆精品| 欧美挠脚心视频网站| 91福利精品视频| 91视频免费观看| aaa欧美大片| 国产精品一区二区在线观看不卡| 日本不卡一二三区黄网| 午夜精品久久久久久久99水蜜桃| 国产精品国产馆在线真实露脸| 久久精品视频网| 久久蜜桃香蕉精品一区二区三区| 欧美一区二区免费视频| 日韩一级片网址| 欧美一区二区成人| 欧美一二三四在线| 欧美一级夜夜爽| 欧美电视剧在线看免费| 欧美成人欧美edvon| 精品国产伦一区二区三区免费 | 国产日产欧美一区二区视频| 久久综合久久综合久久| 久久精品人人爽人人爽| 久久久国际精品| 中文字幕在线不卡一区| 自拍偷拍国产精品| 亚洲女性喷水在线观看一区| 亚洲欧美视频在线观看| 亚洲精品国产一区二区三区四区在线| 中文字幕一区视频| 亚洲一区二区三区四区在线观看| 亚洲午夜一区二区| 日韩精品电影一区亚洲| 久久国产精品99精品国产| 韩国av一区二区三区在线观看| 国产一区二区不卡在线 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久久国产精华| 17c精品麻豆一区二区免费| 亚洲日本在线a| 日韩精品久久理论片| 另类欧美日韩国产在线| 国产精品小仙女| 99久久婷婷国产| 555夜色666亚洲国产免| 久久久久久毛片| 亚洲欧洲中文日韩久久av乱码| 亚洲国产色一区| 国内精品伊人久久久久影院对白| 国产精品一区免费视频| 在线看日韩精品电影| 日韩免费成人网| 亚洲视频免费观看| 日韩高清不卡一区| 成人精品视频一区二区三区尤物| 色狠狠一区二区三区香蕉| 欧美一级日韩免费不卡| 国产精品美女久久久久高潮| 天天做天天摸天天爽国产一区| 精品一区二区在线看| 在线观看日韩av先锋影音电影院| 日韩视频在线永久播放| 日韩理论电影院| 经典三级视频一区| 欧美性猛交xxxxxx富婆| 久久婷婷国产综合国色天香| 亚洲欧美另类图片小说| 麻豆91在线观看| 91视频www| 2023国产精品自拍| 亚洲第一会所有码转帖| 成人一级片网址| 欧美电影免费观看高清完整版在| 亚洲男人的天堂在线aⅴ视频| 免费成人在线视频观看| 欧美亚洲国产一区二区三区va| 久久精品视频免费| 免费精品视频最新在线| 欧美在线制服丝袜| 亚洲欧美自拍偷拍| 国产一区二区视频在线| 51午夜精品国产| 一区二区三区四区在线| av在线播放成人| 久久久久久99久久久精品网站| 日本在线不卡视频| 欧美性猛交xxxxxxxx| 亚洲女厕所小便bbb| 国产成人8x视频一区二区| 精品人在线二区三区| 天堂蜜桃一区二区三区| 色狠狠一区二区| 亚洲色图视频免费播放| 成人性色生活片| 久久久久青草大香线综合精品| 男女男精品视频网| 欧美电影影音先锋| 亚洲丶国产丶欧美一区二区三区| 91久久线看在观草草青青| 国产精品乱码一区二三区小蝌蚪| 国产主播一区二区| 精品三级在线看| 久久国产福利国产秒拍| 91精品午夜视频| 青青草原综合久久大伊人精品 | 91亚洲精品乱码久久久久久蜜桃| 国产日产精品1区| 国产成人久久精品77777最新版本| xfplay精品久久| 国产精品99久久久久久久女警 | 日韩精品成人一区二区三区| 日本丶国产丶欧美色综合| 一区二区视频免费在线观看| 在线观看免费一区| 午夜精品福利在线| 91精品国产欧美一区二区 | 国产综合一区二区| 久久久久国产精品免费免费搜索| 国产一区二三区好的| 国产亚洲福利社区一区| 国产成人日日夜夜| 国产精品国产三级国产| 在线影院国内精品| 日韩高清一区在线| 久久综合av免费| 成人性色生活片| 亚洲一级二级在线| 日韩一区二区三区在线视频| 国产一区美女在线| 国产精品剧情在线亚洲| 日本精品免费观看高清观看| 亚洲国产精品精华液网站| 91精品国产综合久久国产大片| 精品一区二区三区av| 国产精品区一区二区三区| 在线观看国产一区二区| 天天综合日日夜夜精品| 精品欧美一区二区在线观看| 国产精品一卡二| 亚洲三级在线看| 日韩一二三区不卡| 成人爱爱电影网址| 奇米影视一区二区三区| 国产精品午夜在线| 91精品婷婷国产综合久久性色|