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

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

?? net.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 5 頁
字號:
    buf[bufuse-1] = '\0';    lssproto_CD_send(fd, buf );    CONNECT_setCDbufsiz(fd,0);}/*------------------------------------------------------------ * CD毛霜月[ * 婁醒 * 忒曰襖 *  卅仄 ------------------------------------------------------------*/ANYTHREAD void CDcheck( void ){    int     i;    unsigned int interval_us = getCDsendinterval_ms()*1000;    for(i=0; i<ConnectLen; i++ ){        struct timeval t;        if( !CONNECT_getUse_debug(i,1082) ) continue;        CONNECT_getLastCDsendtime( i, &t );        if( time_diff_us( NowTime, t ) > interval_us ){            CDsend( i);            CONNECT_setLastCDsendtime( i , &NowTime );        }    }}ANYTHREAD void CDflush( int charaindex ){    int i;    i = getfdFromCharaIndex( charaindex);    if( i == -1 )return;    CDsend(i);}void chardatasavecheck( void ){    int i;    int interval = getCharSavesendinterval();    static struct timeval chardatasavecheck_store;    if( NowTime.tv_sec > (chardatasavecheck_store.tv_sec +10)){        chardatasavecheck_store = NowTime;                for( i = 0; i < ConnectLen; i ++) {            CONNECT_LOCK(i);            if( Connect[i].use == TRUE                 && Connect[i].state == LOGIN                 && NowTime.tv_sec - Connect[i].lastCharSaveTime.tv_sec                 > interval ){                Connect[i].lastCharSaveTime = NowTime;                CONNECT_UNLOCK(i);                CHAR_charSaveFromConnect( i, FALSE );            } else {                CONNECT_UNLOCK(i);            }        }    } else {        ;    }} #ifdef _DEATH_FAMILY_STRUCT		// WON ADD 家族戰存放勝負資料void Init_FM_PK_STRUCT(){	saacproto_Init_FM_PK_STRUC_send( acfd  );}#endif#ifdef _GM_BROADCAST					// WON ADD 客服公告系統void Init_GM_BROADCAST( int loop, int time, int wait, char *msg ){	int i, count = 0;	char *temp;	BS.loop = loop;	BS.time = time;	BS.wait = wait;	BS.next_msg = 0;	// 清空msg	memset( BS.msg, -1, sizeof(BS.msg) );    // 載入公告訊息    if( ( temp = strtok( msg, " " ) ) ){		strcpy( BS.msg[count], temp );        for( i=1; i<10; i++ ){			char *temp1;            if( ( temp1 = strtok( NULL, " " ) ) ){                strcpy( BS.msg[++count], temp1 );			}		}	}	// 公告訊息數	BS.max_msg_line = count;	return;}void GM_BROADCAST(){    int i;    static struct timeval broadcast;	int next_msg = BS.next_msg;	static int wait_time=0;	if( BS.loop <= 0 ) return;    if( NowTime.tv_sec > (broadcast.tv_sec + BS.time + wait_time) ){        broadcast = NowTime;		wait_time = 0;		if( BS.msg[next_msg] != NULL ){			for( i = 0; i < ConnectLen; i ++) {				if( Connect[i].use == TRUE ){					if( Connect[i].charaindex >= 0 )						CHAR_talkToCli( Connect[i].charaindex, -1, BS.msg[next_msg], CHAR_COLORYELLOW);									}			}		}			if( ++BS.next_msg > BS.max_msg_line ){						BS.next_msg = 0;			wait_time = BS.wait;			// BS.loop = 1000 時一直公告			if( BS.loop < 1000 )	BS.loop--;		}    }}#endif/*------------------------------------------------------------ * fd 互 valid 卅手及井升丹井毛譬屯月 * 婁醒 *  fd          int         fd * 忒曰襖 *  valid   TRUE(1) *  invalid FALSE(0) ------------------------------------------------------------*/ANYTHREAD INLINE int CONNECT_checkfd( int fd ){    if( 0 > fd ||  fd >= ConnectLen ){        return FALSE;    }    CONNECT_LOCK(fd);    if( Connect[fd].use == FALSE ){        CONNECT_UNLOCK(fd);        return FALSE;    } else {        CONNECT_UNLOCK(fd);        return TRUE;    }}/*------------------------------------------------------------ * cdkey 井日 fd 毛  月[ * 婁醒 *  cd      char*       cdkey * 忒曰襖 *  白央奶伙犯奴旦弁伉皿正  方勻化} -1 及凜反巨仿□ ------------------------------------------------------------*/ANYTHREAD int getfdFromCdkey( char* cd ){    int i;    for( i = 0 ;i < ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE &&            strcmp( Connect[i].cdkey , cd ) == 0 ){            CONNECT_UNLOCK(i);            return i;        }        CONNECT_UNLOCK(i);    }    return -1;}/*------------------------------------------------------------ * charaindex 井日 fd 毛  月[ *   陸質  及民尼永弁毛聶仁仄兇[ * 婁醒 *  charaindex      int     平乓仿及奶件犯永弁旦 * 忒曰襖 *  白央奶伙犯奴旦弁伉皿正  方勻化} -1 及凜反巨仿□ ------------------------------------------------------------*/ANYTHREAD int getfdFromCharaIndex( int charaindex ){#if 1	int ret;	if( !CHAR_CHECKINDEX( charaindex)) return -1;	if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER) return -1;	ret = CHAR_getWorkInt( charaindex, CHAR_WORKFD);	if( ret < 0 || ret >= ConnectLen ) return -1;	return ret;#else    int i;    for( i = 0 ;i < ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE            && Connect[i].charaindex == charaindex ){            CONNECT_UNLOCK(i);            return i;        }        CONNECT_UNLOCK(i);    }    return -1;#endif}/*------------------------------------------------------------ * charaindex 井日 cdkey 毛  月[ * 婁醒 *  charaindex  int     平乓仿及奶件犯永弁旦 * 忒曰襖 *  0卅日岳  }  卅日撩   ------------------------------------------------------------*/ANYTHREAD int getcdkeyFromCharaIndex( int charaindex , char *out, int outlen ){    int i;    for( i = 0 ;i < ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE            && Connect[i].charaindex == charaindex ){            snprintf( out, outlen, "%s" , Connect[i].cdkey );            CONNECT_UNLOCK(i);            return 0;        }        CONNECT_UNLOCK(i);    }    return -1;}/*------------------------------------------------------------ *   元fdid 及蠱毛繭允 * 婁醒 *  fdid    int     fd及id * 忒曰襖 *  -1 及凜反巨仿□ ------------------------------------------------------------*/ANYTHREAD int getfdFromFdid( int fdid ){    int i;    for( i=0; i<ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE            && Connect[i].fdid == fdid ){            CONNECT_UNLOCK(i);            return i;        }        CONNECT_UNLOCK(i);    }    return -1;}/*------------------------------------------------------------ * fdid 井日平乓仿及index 毛手午戶月[ * 婁醒 *  fdid    int     fd及id * 忒曰襖 *  -1 及凜反夫弘奶件  及平乓仿反心勾井日卅井勻兇[0動曉卅日 * 夫弘奶件  及平乓仿及平乓仿反中木勾尺及 index ------------------------------------------------------------*/ANYTHREAD int getCharindexFromFdid( int fdid ){    int i;    for( i=0; i<ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE            && Connect[i].fdid == fdid &&            Connect[i].charaindex >= 0 ){            int a = Connect[i].charaindex;            CONNECT_UNLOCK(i);            return a;        }        CONNECT_UNLOCK(i);    }    return -1;}/*------------------------------------------------------------ * 平乓仿index 井日 fdid 毛手午戶月[ * 婁醒 *  charind  int     白央奶伙犯奴旦弁伉皿正 * 井尹曰切 fdid    分勻兇日平乓仿ind互云井仄中 ------------------------------------------------------------*/ANYTHREAD int getFdidFromCharaIndex( int charind ){    int i;    for( i=0; i<ConnectLen ; i ++ ){        CONNECT_LOCK(i);        if( Connect[i].use == TRUE            && Connect[i].charaindex == charind ){            int a = Connect[i].fdid;            CONNECT_UNLOCK(i);            return a;        }        CONNECT_UNLOCK(i);    }    return -1;}/*------------------------------------------------------------ * fd卞喃曰癲化日木兇濤糧互弁仿奶失件玄分午}BOOL毛忒允 * 稱中巨仿□民尼永弁反仄卅中[ * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isCLI( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].ctype == CLI ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * fd卞喃曰癲化日木兇濤糧互失市它件玄扔□田分午}BOOL毛忒允 * 稱中巨仿□民尼永弁反仄卅中[ * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isAC( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].ctype == AC ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * fd卞喃曰癲化日木兇濤糧互夫弘奶件橇謫匹丐月井升丹井 * 毛忒允 * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isUnderLogin( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].state == LOGIN ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * Login質    井升丹井譬屯月 * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isWhileLogin( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].state == WHILELOGIN ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * 夫弘奶件仄化中卅中橇謫井 * 升丹井毛忒允 * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isNOTLOGIN( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].state == NOTLOGIN ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * 夫弘奶件仄化中月橇謫井 * 升丹井毛忒允 * 婁醒 *  fd  int     白央奶伙犯奴旦弁伉皿正 ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_isLOGIN( int fd ){    int a;    CONNECT_LOCK(fd);    a = ( Connect[fd].state == LOGIN ? TRUE : FALSE  );    CONNECT_UNLOCK(fd);    return a;}/*------------------------------------------------------------ * 蟈夠及濤糧毛濠勻化}失市它件玄扔□田卞犯□正毛忡繡仄方丹午允月[ * 婁醒}忒曰襖 *  卅仄 ------------------------------------------------------------*/void closeAllConnectionandSaveData( void ){    int     i;	int		num;    /*  仇木動曉 accept 仄卅中方丹卞允月    */    SERVSTATE_setCloseallsocketnum(0);    /*  蟈  綽輪允月    */    for( i = 0 ; i<ConnectLen ; i++ ){        if( CONNECT_getUse_debug(i,1413) == TRUE ){            BOOL    clilogin=FALSE;            if( CONNECT_isAC( i ) )continue;            if( CONNECT_isCLI( i ) && CONNECT_isLOGIN( i ) )clilogin = TRUE;            CONNECT_endOne_debug(i);            close(i);            // Nuke +1 0901: Why close            //print("closed in closeAllConnectionandSaveData");                                    if( clilogin ){                CONNECT_setUse(i,TRUE);                CONNECT_setState(i,WHILECLOSEALLSOCKETSSAVE );                SERVSTATE_incrementCloseallsocketnum();            }        }    }    num = SERVSTATE_getCloseallsocketnum();    if( num == 0 ) {	    SERVSTATE_SetAcceptMore( -1 );	}else {	    SERVSTATE_SetAcceptMore( 0 );    }    print( "\n發送人物數據數目:%d\n", num );}//andy_add 2003/02/12void CONNECT_SysEvent_Loop( void){	static time_t checkT=0;	static int chikulatime = 0;#ifdef _PETSKILL_BECOMEPIG	static int chikulatime2 = 0;	static time_t checkT2=0;#endif	int NowTimes = time(NULL);	if( checkT != NowTimes && (checkT+10) <= NowTimes )	{		int i;		checkT = time(NULL);		chikulatime++;//每10秒		if( chikulatime > 10000 ) chikulatime = 0;#ifdef _NPCSERVER_NEW		if( npcfd != -1)			NPCS_SendProbe( npcfd);#endif		for (i=0;i<ConnectLen; i++)	{			if ((Connect[i].use) && (i!=acfd)#ifdef _M_SERVER				&& (i!=mfd)#endif#ifdef _NPCSERVER_NEW				&& (i!=npcfd)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级韩国三级日本三斤| 欧美韩日一区二区三区| 精品国产在天天线2019| 欧美经典一区二区| 亚洲欧美福利一区二区| 国产丝袜欧美中文另类| 国产精品久久毛片a| 国产一区不卡在线| 国产一区啦啦啦在线观看| 色婷婷久久99综合精品jk白丝| 久久久精品2019中文字幕之3| 亚洲成a天堂v人片| 欧美私模裸体表演在线观看| 在线观看视频一区| 亚洲欧美色综合| 国产三级精品三级在线专区| 亚洲美女视频在线| 国内外成人在线| 欧美中文字幕久久| 国产精品区一区二区三区| 亚洲成人777| 成熟亚洲日本毛茸茸凸凹| 欧美日韩国产影片| 亚洲激情网站免费观看| 成人激情开心网| 国产欧美一区二区精品婷婷| 狠狠色丁香久久婷婷综合丁香| 宅男噜噜噜66一区二区66| 亚洲第一精品在线| 91精品国产一区二区人妖| 首页综合国产亚洲丝袜| 欧美高清激情brazzers| 天堂av在线一区| 日韩视频一区二区| 精品一区二区三区免费播放| 亚洲精品在线观| 国产一区二区三区视频在线播放| 欧美一区二区免费视频| 久草在线在线精品观看| 久久久久国产精品麻豆| 国产精品一区二区三区网站| 2020日本不卡一区二区视频| 激情成人综合网| 日本一区二区成人在线| www.爱久久.com| 一区二区视频在线看| 欧美精品99久久久**| 久久99精品一区二区三区| 久久久青草青青国产亚洲免观| 豆国产96在线|亚洲| 亚洲欧美日韩国产综合| 欧美日韩一级视频| 激情五月激情综合网| |精品福利一区二区三区| 精品视频一区 二区 三区| 六月丁香综合在线视频| 国产欧美久久久精品影院| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲一区在线观看视频| 欧美一二三四区在线| 福利电影一区二区三区| 亚洲精品欧美综合四区| 91精品福利在线一区二区三区 | 波多野结衣在线一区| 中文字幕亚洲不卡| 欧美精品v国产精品v日韩精品| 激情综合五月天| 亚洲免费毛片网站| 日韩精品一区二区三区中文精品| 成人毛片老司机大片| 亚洲成人资源网| 国产女主播在线一区二区| 在线观看日韩一区| 国产精品 日产精品 欧美精品| 亚洲欧洲制服丝袜| 精品噜噜噜噜久久久久久久久试看 | 国产一区二区三区| 一区二区三区中文字幕精品精品| 欧美成人国产一区二区| 99re免费视频精品全部| 久久99深爱久久99精品| 亚洲国产wwwccc36天堂| 欧美国产精品中文字幕| 欧美一区二区黄色| 日本精品一级二级| 国产成人精品免费一区二区| 爽好多水快深点欧美视频| 1000精品久久久久久久久| 久久综合av免费| 欧美精品三级在线观看| 91网站最新网址| 国产成人av电影在线观看| 蜜臀av性久久久久蜜臀av麻豆| 亚洲精品欧美二区三区中文字幕| 国产亚洲精品aa| 欧美电影免费观看高清完整版在线观看| 色婷婷国产精品久久包臀 | 欧美精品一区二区三区在线播放| 91久久精品午夜一区二区| 国产suv精品一区二区6| 韩国视频一区二区| 蜜臀精品一区二区三区在线观看 | 国产色婷婷亚洲99精品小说| 欧美一区二区三区四区久久| 日本韩国一区二区三区视频| 成人精品视频网站| 国产精品一区二区你懂的| 男女男精品视频网| 天天av天天翘天天综合网| 日韩美女精品在线| 亚洲男同性恋视频| 国产精品女同互慰在线看| www久久精品| 久久久久久久电影| 久久这里都是精品| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美日本在线看| 欧美日产在线观看| 欧美夫妻性生活| 7777精品伊人久久久大香线蕉超级流畅| 在线免费一区三区| 欧美日韩情趣电影| 日韩一区二区电影网| 日韩一区二区免费在线电影| 欧美成人免费网站| 日本一区二区免费在线| 欧美高清在线视频| 一区二区三区成人在线视频| 午夜欧美2019年伦理| 欧美精品电影在线播放| 日韩欧美亚洲国产另类| 97久久人人超碰| 日本道在线观看一区二区| 欧美日韩综合在线免费观看| 制服丝袜成人动漫| 精品国产亚洲一区二区三区在线观看| 久久久久久久av麻豆果冻| 国产欧美日韩在线| 亚洲丝袜制服诱惑| 亚洲成a人片在线观看中文| 麻豆国产欧美日韩综合精品二区 | 国产激情视频一区二区在线观看| 成人免费电影视频| 欧美日韩第一区日日骚| 精品国产污网站| 国产精品蜜臀在线观看| 亚洲成人动漫一区| 国产中文一区二区三区| 色综合久久99| 欧美猛男超大videosgay| 97久久超碰国产精品| 在线亚洲一区观看| 2014亚洲片线观看视频免费| 蜜乳av一区二区三区| 成人一区二区三区| 91精品国产免费| 中文字幕免费在线观看视频一区| 91黄色免费观看| 午夜精品久久久久久久久 | 欧美成人video| 亚洲伦理在线精品| 精品一区二区免费在线观看| 91亚洲国产成人精品一区二三| 日韩欧美一级在线播放| 亚洲欧美偷拍三级| 激情欧美一区二区三区在线观看| 日本韩国精品在线| 国产农村妇女毛片精品久久麻豆| 亚洲成人激情社区| 99精品视频一区| 久久精品视频一区二区| 日韩制服丝袜av| 91免费看`日韩一区二区| 久久久激情视频| 狠狠色狠狠色综合日日91app| 欧美精品丝袜中出| 尤物av一区二区| 91在线小视频| 欧美经典一区二区| 国产麻豆日韩欧美久久| 日韩欧美中文字幕精品| 婷婷六月综合亚洲| 91福利在线观看| 综合色天天鬼久久鬼色| 国产.精品.日韩.另类.中文.在线.播放| 国产日韩欧美在线一区| 蜜臀av在线播放一区二区三区| 欧美天堂一区二区三区| 最新不卡av在线| 99视频在线观看一区三区| 国产三区在线成人av| 国产一区二区调教| 久久美女艺术照精彩视频福利播放 | 免费一级欧美片在线观看| 91在线免费看| 亚洲欧洲制服丝袜| 色哟哟一区二区| 亚洲欧美日韩国产综合| 一本色道久久综合亚洲精品按摩| 欧美激情中文字幕|