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

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

?? recv.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
#define _RECV_C_#include "version.h"#include "main.h"#include "saacproto_util.h"#include "saacproto_serv.h"#include "saacproto_lserver.h"#include "saacproto_work.h"#include "recv.h"#include "char.h"#include "db.h"#include "mail.h"#include "lock.h"#include "util.h"#ifdef _SASQL1#include "sasql.h"#endif// CoolFish: Family 2001/5/9#include "acfamily.h"#include "version.h"#include <stdlib.h>#include <stdio.h>#ifdef _PAUCTION_MAN#include "auction.h"#endif#ifdef _DEATH_CONTEND#include "deathcontend.h"#endif#include "defend.h"#ifdef _UNIVERSE_CHATROOM#include "chatroom.h"#endif#ifdef _RECAL_BACKUP_PLAYER			// WON 回溯功能#include <dirent.h>#include <sys/stat.h>#define MAX_HAVE_ITEM	20#define MAX_POOL_ITEM	30#define MAX_HAVE_PET	5#define MAX_POOL_PET	20static int char_data_count=0;#endif#ifdef _CK_ONLINE_PLAYER_COUNT    // WON ADD 計算線上人數(shù)struct play_count{	int playcount;};struct play_count online_player[MAXCONNECTION];#endifchar retdata[CHARDATASIZE];     char result[CHARDATASIZE];        // Spock +1 2000/11/1#define MAX_PROCESS 16777216void saacproto_ACServerLogin_recv( int ti,char* servername ,                                   char* serverpas ){    login_game_server( ti ,             servername , serverpas ,             result , sizeof( result ) ,             retdata , sizeof( retdata ));    saacproto_ACServerLogin_send( ti ,result ,retdata );}/*   必□丞扔□田□互失市它件玄扔□田□井日夫弘失它玄允月[   int fd : 覆擂socket*/void  saacproto_ACServerLogout_recv( int ti  ){    logout_game_server( ti );}void saacproto_ACCharLoad_recv( int ti,char* id,char* pas,char* charname ,                                int lock,char* opt , int mesgid){    // Spock 2000/10/31    static int process = 0;    char buf[16];    // Spock end#ifdef _NewSave    int charindex = -1;#endif if (!sasql_query(id,pas)){		if(!sasql_register(id,pas)){	    log("密碼錯誤或沒有注冊\n");	    saacproto_ACCharList_send( ti , FAILED , "Password error" , mesgid);	    return;}}    if( !is_game_server_login( ti ) ){#ifdef _NewSave        saacproto_ACCharLoad_send( ti , FAILED , "not login" , mesgid, charindex );#else        saacproto_ACCharLoad_send( ti , FAILED , "not login" , mesgid );#endif        return;    }#ifdef _CHANGEGALAXY	if( isChangeGalaxyLocked( id) ) {		log(" 因星系移民被鎖 ");		saacproto_ACCharLoad_send( ti , FAILED , "CHANGE_GALAXY" , mesgid, charindex );		return;	}#endif#ifdef _UNLOCKPOOL // 登入時檢查是否已在UnlockPool中	if( inUnlockPool(id) ) {		log(" 已經(jīng)在UNLOCKPOOL中 ");		saacproto_ACCharLoad_send( ti , FAILED ,                                   "server load too high" , mesgid , charindex);		return;	}#endif    process++;    if ( process > MAX_PROCESS ) process = 1;    snprintf( buf , sizeof(buf) , "%d" , process );    if( addWorkerTask( id, pas , "2", charLoadCallback , ti ,                        id , pas , charname , buf , "" , lock, mesgid) < 0 ){#ifdef _NewSave        saacproto_ACCharLoad_send( ti , FAILED ,                                   "server load too high" , mesgid , charindex);#else        saacproto_ACCharLoad_send( ti , FAILED ,                                   "server load too high" , mesgid );#endif        return;    }    // Spock 2000/10/31    //log( "讀取檔案: 附加作業(yè) %s %s, 進程=%d\n", id,pas,process );    // Spock end}#ifdef _RELOGINvoid saacproto_ACCharLoadII_recv( int ti,char* id,char* pas,char* charname ,                                int lock,char* opt , int mesgid,int gs1, int gs2){    char buf[16];    int charindex = -1;       if( !is_game_server_login( ti ) ){        saacproto_ACCharLoad_send( ti , FAILED , "not login" , mesgid, charindex );        return;    }	// 檢查Buffer中的資料是否符合	// 檢查原先從Wgs傳回CharLoad做了什麼事	// 更新名片資料}#endif/*   平乓仿忡繡   char *id : ID   char *pas : 天允歹□升   char *charname : 平乓仿     char *opt : 左皿撲亦件  儂  [ CharList及午五卞丟乒午仄化忒允樹     char *charinfo : 白央奶伙卞忡繡允月平乓仿弁正及旦  □正旦樹  [   int id : 丟永本□斥id*/#ifdef _NewSavevoid saacproto_ACCharSave_recv( int ti, char* id,                                char *charname,char* opt ,                                char* charinfo , int unlock , int mesgid , int charindex )#elsevoid saacproto_ACCharSave_recv( int ti, char* id,                                char *charname,char* opt ,                                char* charinfo , int unlock , int mesgid )#endif{    char process[16];    int ret;    if( !is_game_server_login(ti) ){        saacproto_ACCharSave_send( ti , FAILED , "not login" , mesgid );        return;    }#ifdef _NewSave    ret = charSave( ti, id, charname, opt, charinfo,                      unlock,mesgid, charindex );#else    ret = charSave( ti, id, charname, opt, charinfo,                      unlock,mesgid );#endif    snprintf( process , sizeof(process) , "%d" , ret );//	log( "unlock:%d, process:%s\n", unlock, process);    if( unlock) {#ifdef _UNLOCKPOOL		if( addUnlockPool( ti, id, charname, process, mesgid) <0  ) {#else		if( addWorkerTask( id , "dummy" , "3" , dummyCallback , ti ,	                       id , "dummy" , charname , process ,"",	                       mesgid , 0 ) < 0 ) { #endif			log("游戲退出失敗, 進程=%s\n" , process );    	    } else {	        log("游戲退出成功, 進程=%s\n" , process );	    }    } else {	    log("自動保存\n\n");    }    log("在線玩家保存\n");}#ifdef _RELOGINvoid saacproto_ACCharSaveII_recv( int ti, char* id,                                char *charname,char* opt ,                                char* charinfo , int unlock , int mesgid , int charindex ){    char process[16];    int ret;        if( !is_game_server_login(ti) ){        saacproto_ACCharSave_send( ti , FAILED , "not login" , mesgid );        return;    }    ret = charSave( ti, id, charname, opt, charinfo,                      unlock,mesgid, charindex );	// 儲存人物資料	// 記錄相關資訊	// 不送GE至WGS	// 不更新名片資料    if (unlock) {#ifdef _UNLOCKPOOL		if( addUnlockPool( ti, id, charname, process, mesgid) <0  ) {#else		if( addWorkerTask( id , "dummy" , "3" , dummyCallback , ti ,	                       id , "dummy" , charname , process ,"",	                       mesgid , 0 ) < 0 ) { #endif		log("游戲退出失敗, 進程=%s\n" , process );    	    } else {	        log("游戲退出成功, 進程=%s\n" , process );	    }    } else {	    log("自動保存\n\n");    }    log("在線玩家保存\n");}#endifvoid saacproto_ACCharList_recv( int ti,char* id,char* pas , int mesgid){    static int process=0;    char buf[10];	//log(" get_charlist ");    process++;    if (process > MAX_PROCESS) process=1;    snprintf(buf, sizeof(buf), "%d", process);#ifdef _CHANGEGALAXY	if( isChangeGalaxyLocked( id) ) {		log(" 因星系移民被鎖 ");		saacproto_ACCharList_send( ti , FAILED , "CHANGE_GALAXY" , mesgid );		return;	}#endif    if( !is_game_server_login( ti ) ){        saacproto_ACCharList_send( ti , FAILED , "not login" , mesgid );        return;    }    if( addWorkerTask( id , pas , "1" , charListCallback , ti , id , pas , "", buf ,"0",                       mesgid , 0 ) < 0 ){        saacproto_ACCharList_send( ti , FAILED , "server load too high",                                   mesgid );        return;    }    log( "檔案列表: %s\n", id );}void saacproto_ACCharDelete_recv( int ti,char* id,char* pas,                                  char* charname , char *option , int mesgid){    if( !is_game_server_login(ti) ){        saacproto_ACCharDelete_send( ti , FAILED , "not login" , mesgid );        return;    }#ifdef _DEATH_FAMILY_LOGIN_CHECK //無法刪除人物資料	saacproto_ACCharDelete_send( ti , FAILED , "server load too high",							mesgid );	return;#endif#ifdef _DEATH_CONTEND //無法刪除人物資料	saacproto_ACCharDelete_send( ti , FAILED , "server load too high",							mesgid );	return;#endif    // Nuke    if( addWorkerTask( id , pas , "4" , charDeleteCallback , ti ,                       id , pas , charname , "0" ,"",                       mesgid , 0 ) < 0 ){        saacproto_ACCharDelete_send( ti , FAILED , "server load too high",                                   mesgid );        return;    }    log( "檔案刪除: 附加作業(yè) %s %s\n",id , pas );}void saacproto_ACLock_recv( int ti ,char* id,int lock,int mesgid ){	if( !is_game_server_login(ti) ){		saacproto_ACLock_send( ti , FAILED , "not login" , mesgid );		return;	}	// Arminius 7.25 test unlock	log("ACLock recv:%d\n",lock);    if (lock==2) {		char buf[4096];		if (GetMemLockState(getHash(id) & 0xff, id, buf)) {			sprintf(retdata, "USRLOCKED:%s", buf);		} else {			sprintf(retdata, "USRUNLOCKED:%s", buf);		}		log(retdata);    } else if (lock==3) {		int proc;		if (DeleteMemLock(getHash(id) & 0xff, id, &proc)) {			sprintf(retdata, "GMUNLOCKSUCCESS");		} else {			sprintf(retdata, "GMUNLOCKFAIL");		}		log(retdata);	} else if (lock==4) {		DeleteMemLockServer(id);		sprintf(retdata, "GMUNLOCKALL");    } else {#ifdef _LOCK_ADD_NAME		if ( lockUser( getGSName( ti ) , id , "" , "0" , lock , result,sizeof(result),										retdata ,sizeof( retdata ) , "0" , "0") < 0 ) {#else		if ( lockUser( getGSName( ti ) , id , "0" , lock , result,sizeof(result),										retdata ,sizeof( retdata ) , "0" , "0") < 0 ) {#endif			log( "鎖定用戶: %s 失敗\n" , id );		} else {			log( "鎖定用戶: %s 成功\n" , id );		}    }    // Spock end    saacproto_ACLock_send( ti , result , retdata , mesgid );}void saacproto_ACUCheck_recv( int ti , char *id , int status ){    if( !is_game_server_login(ti) ){        log( "UCHECK: server not logging in: ID:%s status:%d\n",             id, status );        return;    }		if( status == 0 ){       log( "UCHECK: user %s is not locked by %s\n", id , getGSName( ti ) );#ifdef _DELAY_UNLOCK	   //remeber the cdkey into delay unlock list.	   if( UNlockM_addPlayer( id) != -1 ){			log( "remeber:[%s] unlock 15min later!!\n", id);			saacproto_ACKick_recv( ti, id, 6, -1);	//unlock	   }#ifdef _WAEI_KICK		saacproto_ACKick_recv( ti, id, 1, -1);#endif#endif    } else {        log( "UCHECK: user %s is still locked by %s\n",             id , getGSName( ti ) );#ifdef _WAEI_KICK		saacproto_ACKick_recv( ti, id, 1, -1);#endif    }}void saacproto_DBUpdateEntryString_recv( int fd,                                         char* table,                                         char* key,                                         char* value,                                         int msgid,                                         int msgid2 ){    int r;    r = dbUpdateEntryString( table, key, value );	if( r != 0 ){		log( "failed: DBUpdateEntryString err !!\n");	}/* 2003/06/26    if( r == 0 ){//        saacproto_DBUpdateEntryString_send( fd, SUCCESSFUL,table,key,                                            msgid,msgid2 );    } else {//        saacproto_DBUpdateEntryString_send( fd, FAILED,table,key,                                            msgid,msgid2 );            }*/}void saacproto_DBDeleteEntryString_recv( int fd,                                         char* table,                                         char* key,                                         int msgid,                                         int msgid2 ){    int r;    r = dbDeleteEntryString( table,key );    if( r == 0 ){        saacproto_DBDeleteEntryString_send( fd,SUCCESSFUL,table,key,                                            msgid,msgid2 );    } else {        saacproto_DBDeleteEntryString_send( fd,FAILED,table,key,                                            msgid,msgid2 );            }}void saacproto_DBGetEntryString_recv( int fd,                                      char* table,                                      char* key,                                      int msgid,                                      int msgid2 ){    char output[16384];    int r;    r = dbGetEntryString( table, key, output, sizeof( output) );    if( r == 0 ){        saacproto_DBGetEntryString_send( fd,SUCCESSFUL,output,table,key,                                         msgid,msgid2 );    } else {        saacproto_DBGetEntryString_send( fd,FAILED,"",table,key,                                         msgid,msgid2 );            }    }void saacproto_DBUpdateEntryInt_recv( int fd,                                   char* table,                                   char* key,                                   int value,                                   char *info,                                   int msgid,                                   int msgid2){    if( !is_game_server_login(fd) ){        saacproto_DBUpdateEntryInt_send( fd, FAILED, "","",msgid, msgid2 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费的视频| 国产精品萝li| 国产精品色哟哟网站| 亚洲制服丝袜av| 国产精品一区二区久久不卡| 色噜噜狠狠成人中文综合| 精品久久人人做人人爽| 亚洲日本在线a| 顶级嫩模精品视频在线看| 欧美日韩一卡二卡| 国产拍欧美日韩视频二区| 日韩不卡一区二区三区| 一本色道久久综合亚洲91| 久久网这里都是精品| 无码av中文一区二区三区桃花岛| 99久久久久免费精品国产| 久久精品视频免费| 精品一区二区三区免费| 欧美日韩高清一区| 亚洲在线观看免费| jlzzjlzz亚洲日本少妇| 中文字幕的久久| 国产精品一区二区久激情瑜伽| 宅男在线国产精品| 丝袜国产日韩另类美女| 欧美主播一区二区三区| 亚洲另类色综合网站| 成人av免费网站| 欧美极品另类videosde| 精品一区二区三区视频在线观看 | 成人免费黄色在线| 久久久久久久av麻豆果冻| 麻豆国产精品一区二区三区| 7878成人国产在线观看| 日本成人在线不卡视频| 91精品国产综合久久香蕉的特点 | 精品对白一区国产伦| 视频一区二区不卡| 欧美精品粉嫩高潮一区二区| 午夜精品久久久久久久久| 欧美日韩第一区日日骚| 蜜臀av一区二区在线免费观看| 欧美老肥妇做.爰bbww| 亚洲va韩国va欧美va| 欧美日韩小视频| 奇米四色…亚洲| 2021国产精品久久精品| 从欧美一区二区三区| 最新热久久免费视频| 91福利在线观看| 日韩电影免费在线观看网站| 欧美一区二区三区人| 久久精品噜噜噜成人av农村| 久久美女艺术照精彩视频福利播放 | 69久久夜色精品国产69蝌蚪网| 日韩影视精彩在线| 精品sm在线观看| 91在线视频网址| 丝袜脚交一区二区| 久久久久久久综合| 97国产精品videossex| 日本午夜精品视频在线观看| 久久综合视频网| 色婷婷综合久久久中文一区二区 | 亚洲国产另类精品专区| 日韩欧美国产三级| 成人av在线电影| 丝袜亚洲另类欧美综合| 国产欧美一区二区精品久导航| 在线观看av一区二区| 国内成人自拍视频| 亚洲一区二区三区四区在线免费观看 | 在线视频你懂得一区| 久久精品国产一区二区三区免费看| 中文字幕av资源一区| 欧美日韩大陆一区二区| 国产成人免费视频一区| 同产精品九九九| 日本一区二区不卡视频| 777久久久精品| 91免费版在线| 成人夜色视频网站在线观看| 香蕉久久夜色精品国产使用方法 | 538在线一区二区精品国产| 国产高清亚洲一区| 五月婷婷另类国产| 亚洲色图欧美偷拍| 久久久不卡影院| 日韩欧美一级二级三级久久久| 色婷婷国产精品综合在线观看| 国产麻豆精品95视频| 青青草国产精品亚洲专区无| 亚洲精品乱码久久久久| 中日韩av电影| 久久精品一区二区三区不卡牛牛| 欧美日韩亚洲综合在线| 色婷婷av一区二区三区gif| 国产精品一区二区三区网站| 蜜臀av一级做a爰片久久| 五月开心婷婷久久| 亚洲午夜一区二区三区| 亚洲一区二区三区四区在线观看 | 亚洲五月六月丁香激情| 亚洲特黄一级片| 亚洲欧洲av另类| 中文字幕第一区第二区| 久久蜜桃av一区精品变态类天堂| 日韩欧美视频在线| 欧美一区二区成人6969| 欧美一区二区观看视频| 欧美另类高清zo欧美| 欧美日韩免费不卡视频一区二区三区| 91国偷自产一区二区三区观看| 99久久精品免费看| 成人av资源网站| 91在线看国产| 一本一道波多野结衣一区二区| 91麻豆精品秘密| 91在线高清观看| 欧美在线观看你懂的| 欧美亚洲国产一区二区三区va| 欧美图片一区二区三区| 欧美精品18+| 精品精品国产高清a毛片牛牛| 久久久久青草大香线综合精品| 久久精品夜色噜噜亚洲a∨| 久久精品一二三| 亚洲免费av高清| 亚洲va在线va天堂| 麻豆精品久久久| 国产精品18久久久久久久久久久久 | 91一区一区三区| 91美女片黄在线观看| 国产一区在线不卡| 国产美女视频91| 国产欧美日韩一区二区三区在线观看| 精品国产乱码久久久久久夜甘婷婷 | 日韩一级高清毛片| 一二三四区精品视频| 丰满少妇久久久久久久| 日韩午夜在线观看视频| 一区二区三区欧美日| 成人一区二区三区在线观看| 精品国产免费一区二区三区四区| 亚洲自拍另类综合| av在线这里只有精品| 欧美激情中文不卡| 国产在线不卡一区| 欧美一卡2卡3卡4卡| 亚洲成精国产精品女| 91丨porny丨首页| 国产精品美女一区二区三区| 极品少妇xxxx精品少妇偷拍| 91精品国产91综合久久蜜臀| 亚洲午夜国产一区99re久久| 色一情一伦一子一伦一区| 中文字幕一区日韩精品欧美| 成人午夜视频免费看| 欧美高清在线精品一区| 国产精品小仙女| 国产午夜精品在线观看| 国产成人免费在线视频| 国产视频一区在线观看| 国产成人综合网| 国产欧美日韩视频一区二区| 国产91精品欧美| 国产精品久久午夜夜伦鲁鲁| 成人免费毛片app| 国产精品伦一区| 色综合久久88色综合天天| 综合在线观看色| 欧美专区亚洲专区| 日韩影院精彩在线| 日韩欧美的一区| 国产精品资源在线| 亚洲欧洲精品一区二区三区 | 91亚洲永久精品| 亚洲精品视频观看| 91黄色免费看| 日日摸夜夜添夜夜添精品视频| 91精品国产高清一区二区三区| 日本不卡的三区四区五区| 精品人在线二区三区| 东方欧美亚洲色图在线| 亚洲伦理在线精品| 337p亚洲精品色噜噜| 国内成+人亚洲+欧美+综合在线| 精品成人在线观看| 成人美女视频在线观看18| 中文字幕视频一区| 欧美日韩精品一区二区天天拍小说| 日韩黄色在线观看| 国产喂奶挤奶一区二区三区| av亚洲精华国产精华精华| 亚洲va欧美va人人爽| 久久久亚洲高清| 91久久精品日日躁夜夜躁欧美| 日本sm残虐另类| 国产精品久久久久久亚洲伦 | 亚洲精品一卡二卡|