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

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

?? recv.c

?? cygwin環(huán)境編譯,saac登陸服務端,石器2最新代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
#define _RECV_C_#include "version.h"#include "main.h"#include "saacproto_util.h"#include "saacproto_serv.h"#include "recv.h"#include "char.h"#include "db.h"#include "mail.h"#include "lock.h"#include "util.h"#ifdef _SASQL#include "sasql.h"#endif// CoolFish: Family 2001/5/9#include "acfamily.h"#include "version.h"#include <stdlib.h>#include <stdio.h>char retdata[CHARDATASIZE];     char result[CHARDATASIZE];        // Spock +1 2000/11/1#define MAX_PROCESS 16777216#ifdef _VIPvoid saacproto_ACServerLogin_recv( int ti,char* servername , char* serverpas, int checkvip ){    login_game_server( ti , servername , serverpas, checkvip,												             result , sizeof( result ) ,												             retdata , sizeof( retdata ));    saacproto_ACServerLogin_send( ti ,result ,retdata );}#elsevoid 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 );}#endif/*   必□丞扔□田□互失市它件玄扔□田□井日夫弘失它玄允月[   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( !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;    }    process++;    if ( process > MAX_PROCESS ) process = 1;    snprintf( buf , sizeof(buf) , "%d" , process );		charLoadCallback(ti,0,id,pas,charname,buf,"",lock,mesgid);    // Spock 2000/10/31    //log( "讀取檔案: 附加作業(yè) %s %s, 進程=%d\n", id,pas,process );    // Spock end}/*   平乓仿忡繡   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) {			dummyCallback(ti,0,id,"dummy",charname,process,"",mesgid,0);    }    log("玩家已保存保存\n");}void 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);    if( !is_game_server_login( ti ) ){        saacproto_ACCharList_send( ti , FAILED , "not login" , mesgid );        return;    }		charListCallback(ti,0,id,pas,"",buf,"0",mesgid,0);    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;    }    // Nuke    charDeleteCallback(ti,0,id,pas,charname,"0","",mesgid,0);    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 {			if ( lockUser( getGSName( ti ) , id , "0" , lock , result,sizeof(result),										retdata ,sizeof( retdata ) , "0" , "0") < 0 ) {			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( "服務器發(fā)現(xiàn)賬號:%s status:%d\n",             id, status );        return;    }	if( status == 0 ){       log( "用戶 %s 在 %s 并未鎖定!\n", id , getGSName( ti ) );       saacproto_ACKick_recv( ti, id, 6, -1);    } else {        log( "用戶 %s 在 %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 );        return;    }        if( dbUpdateEntryInt( table , key , value, info ) == 0 ){        saacproto_DBUpdateEntryInt_send(            fd , SUCCESSFUL ,table,key, msgid, msgid2 );    } else {        saacproto_DBUpdateEntryInt_send( fd , FAILED , table,key, msgid, msgid2 );            }}#ifdef _ALLDOMAN					// (不可開) Syu ADD 排行榜NPCvoid saacproto_UpdataStele_recv( int fd , char *cdkey , char *name , char *title ,								int level , int trns , int time , int floor ){	int i, min=140, minnum=-1, nameflag=-1;	for ( i=0; i<MAX_HERO_LIST; i ++ ) {		if( atoi( Herolist[i][6] ) <  min ) {			min = atoi (Herolist[i][6]) ; 			minnum=i;		}		if ( strcmp ( Herolist[i][0] , cdkey ) == 0 && strcmp ( Herolist[i][1] , name ) == 0 )			nameflag = i ; 	}	if( strcmp ( cdkey , "FirstLoad") == 0 &&		strcmp ( name , "LoadHerolist") == 0 &&		floor == 999 )		Send_A_herolist( fd );	else if ( nameflag != -1 && floor > atoi(Herolist[nameflag][6]) ) {		Send_S_herolist ( Herolist[nameflag][0] , Herolist[nameflag][1] , 			cdkey , name , title , level , trns , floor ) ; 		sprintf ( Herolist[nameflag][2] , "%s" , title ) ; 		sprintf ( Herolist[nameflag][3] , "%d" , level ) ; 		sprintf ( Herolist[nameflag][4] , "%d" , trns ) ; 		sprintf ( Herolist[nameflag][5] , "%d" , time ) ; 		sprintf ( Herolist[nameflag][6] , "%d" , floor ) ; 		SAVE_herolist( fd );	}else if ( nameflag == -1 && floor > min ) {		Send_S_herolist ( Herolist[minnum][0] , Herolist[minnum][1] , 			cdkey , name , title , level , trns , floor ) ; 		sprintf ( Herolist[minnum][0] , "%s" , cdkey ) ; 		sprintf ( Herolist[minnum][1] , "%s" , name  ) ; 		sprintf ( Herolist[minnum][2] , "%s" , title ) ; 		sprintf ( Herolist[minnum][3] , "%d" , level ) ; 		sprintf ( Herolist[minnum][4] , "%d" , trns ) ; 		sprintf ( Herolist[minnum][5] , "%d" , time ) ; 		sprintf ( Herolist[minnum][6] , "%d" , floor ) ; 		SAVE_herolist( fd );	}}#endifvoid saacproto_DBGetEntryRank_recv( int fd,                                    char* table,                                    char* key,                                    int msgid,                                    int msgid2){    int rk,c;    if( !is_game_server_login(fd) ){        saacproto_DBGetEntryRank_send( fd, FAILED, 0,0,"","",msgid, msgid2 );        return;    }        dbGetEntryRank( table, key , &rk, &c );    if( rk <0 ){        saacproto_DBGetEntryRank_send(            fd, FAILED, -1, -1, table, key, msgid, msgid2 );    } else {        saacproto_DBGetEntryRank_send( fd, SUCCESSFUL,                                       rk, c, table, key, msgid, msgid2 );    }}void saacproto_DBDeleteEntryInt_recv( int fd,                                   char* table,                                   char* key,                                   int msgid,                                   int msgid2){    if( !is_game_server_login(fd) ){        saacproto_DBDeleteEntryInt_send( fd, FAILED,"","",msgid, msgid2 );        return;    }        if( dbDeleteEntryInt( table, key ) < 0 ){        saacproto_DBDeleteEntryInt_send(            fd, FAILED, table, key, msgid, msgid2 );    } else {        saacproto_DBDeleteEntryInt_send(            fd, SUCCESSFUL, table, key, msgid, msgid2 );    }}    void saacproto_DBGetEntryInt_recv( int fd,                                char* table,                                char* key,                                int msgid,                                int msgid2){    int r ;    int output;    if( !is_game_server_login(fd) ){        saacproto_DBGetEntryInt_send( fd, FAILED,-1,"","",msgid, msgid2 );        return;    }        r = dbGetEntryInt( table, key, &output );        if( r < 0 ){        saacproto_DBGetEntryInt_send( fd,                                      FAILED, -1, table, key, msgid, msgid2);    } else {        saacproto_DBGetEntryInt_send(            fd, SUCCESSFUL, output, table, key, msgid, msgid2 );    }}void saacproto_DBGetEntryByRank_recv( int fd,                                char* table,                                int start, int end,                                int msgid ,                                int msgid2){    char output[16384];    int r;    if( !is_game_server_login(fd) ){        saacproto_DBGetEntryByRank_send( fd, FAILED,"","",msgid, msgid2 );        return;    }        r = dbGetEntryRankRange( table, start, end, output, sizeof( output ));    if( r < 0 ){        saacproto_DBGetEntryByRank_send(            fd, FAILED, "", table, msgid, msgid2 );    } else {        saacproto_DBGetEntryByRank_send(            fd, SUCCESSFUL, output,table, msgid, msgid2 );    }}void saacproto_DBGetEntryByCount_recv( int fd,                                       char* table,                                       int count_start,                                       int num,                                       int msgid ,                                       int msgid2){    char output[16384];    int r;    if( !is_game_server_login(fd) ){        saacproto_DBGetEntryByCount_send(            fd, FAILED,"",table,count_start,msgid, msgid2 );        return;    }        r = dbGetEntryCountRange( table, count_start, num, output, sizeof(output));    if( r < 0 ){        saacproto_DBGetEntryByCount_send( fd, FAILED, "", table,                                          count_start, msgid, msgid2 );    } else {        saacproto_DBGetEntryByCount_send( fd, SUCCESSFUL, output, table,                                          count_start,  msgid, msgid2 );           }}void saacproto_Broadcast_recv( int fd, char* id, char* charname, char* message, int flag){    if( !is_game_server_login( fd) ){        log( "Broadcast: no login. id:%s charname:%s message:%s flag:%d\n",             id, charname, message , flag );        return;    }    gmsvBroadcast( fd, id, charname, message , flag );}void saacproto_Message_recv( int fd,                             char* id_from,                             char* charname_from,                             char* id_to,                             char* charname_to,                             char* message,                             int option ){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播放三区四区| 91超碰这里只有精品国产| 亚洲一区二区三区三| 日韩午夜在线影院| 国产欧美一区视频| 91麻豆视频网站| 六月丁香婷婷久久| 欧美日韩国产一二三| 亚洲午夜av在线| 精品捆绑美女sm三区| 久久不见久久见免费视频7| 国产精品黄色在线观看| www.综合网.com| 精品一区二区三区香蕉蜜桃| 中文字幕一区二区三区不卡| 欧美精品一卡两卡| 91精品国产色综合久久ai换脸 | 婷婷丁香激情综合| 国产精品久久久久久亚洲伦| 麻豆一区二区三| 国产精品久久综合| 精品久久久久久久久久久院品网 | 成人伦理片在线| 蜜臀久久99精品久久久画质超高清| 中文字幕日本不卡| 久久女同性恋中文字幕| 欧美日本韩国一区| 色哟哟国产精品| 白白色 亚洲乱淫| 成人一级视频在线观看| 国产自产视频一区二区三区| 秋霞国产午夜精品免费视频| 五月天一区二区三区| 一区二区三区色| 亚洲欧美日韩精品久久久久| 国产日韩精品久久久| 2023国产一二三区日本精品2022| 欧美成va人片在线观看| 91精品国产综合久久久久久久| 欧美日韩国产综合视频在线观看| 欧美性猛交xxxx乱大交退制版 | 国产精品美日韩| 国产精品入口麻豆原神| 国产三级精品三级在线专区| 久久久亚洲精华液精华液精华液| 久久精品视频在线看| 久久精品视频免费| 国产精品女主播在线观看| 欧美国产综合一区二区| 国产精品久久久久久久久图文区 | 欧美精品一区二区三区久久久| 欧美一级二级三级乱码| 日韩亚洲欧美成人一区| 欧美不卡视频一区| 精品国产一区二区亚洲人成毛片| 欧美一区二区三区日韩视频| 日韩欧美国产一二三区| 久久综合999| 欧美国产一区二区在线观看| 1区2区3区国产精品| 樱花影视一区二区| 亚洲bt欧美bt精品| 日韩精品久久久久久| 精品一区二区免费在线观看| 国产成人免费网站| 成人福利视频在线| 欧美午夜一区二区三区| 欧美一卡二卡三卡| 欧美国产激情二区三区| 亚洲免费大片在线观看| 日韩国产欧美三级| 国产美女精品人人做人人爽| 色综合久久精品| 欧美一区二区三区成人| 久久久久久久网| 亚洲色图一区二区| 亚洲国产精品尤物yw在线观看| 久久爱另类一区二区小说| 成人免费毛片片v| 欧美日韩成人在线一区| 久久精品无码一区二区三区| 一区二区三区不卡视频在线观看| 日韩福利电影在线观看| 成人av网站在线观看| 欧美性大战久久| 国产亚洲一区二区三区| 亚洲精品成人在线| 麻豆91免费观看| 91美女蜜桃在线| 精品国免费一区二区三区| 亚洲欧美另类在线| 九九视频精品免费| 91浏览器打开| 精品卡一卡二卡三卡四在线| 一区2区3区在线看| 国产一区二区影院| 欧美日韩在线观看一区二区 | 久久久久久久久岛国免费| 亚洲美女偷拍久久| 国产一区二区三区四| 欧美视频完全免费看| 国产喂奶挤奶一区二区三区| 日韩二区三区在线观看| 色呦呦国产精品| 久久精品欧美一区二区三区麻豆| 亚洲国产精品综合小说图片区| 成人av在线网站| 欧美精品一区二区久久久| 亚洲一区二区欧美| 国产.欧美.日韩| 欧美成人性福生活免费看| 亚洲自拍偷拍九九九| 99久久er热在这里只有精品66| 日韩你懂的在线观看| 亚洲电影中文字幕在线观看| 91亚洲永久精品| 欧美极品aⅴ影院| 狠狠色狠狠色综合日日91app| 欧美精品在线观看播放| 一区二区三区资源| 成人黄色av电影| 国产欧美精品一区| 黄色日韩三级电影| 日韩三级免费观看| 午夜视频一区二区| 在线观看一区二区精品视频| 亚洲欧洲av一区二区三区久久| 国产精品亚洲а∨天堂免在线| 精品国产污污免费网站入口| 男人操女人的视频在线观看欧美| 欧美日韩视频专区在线播放| 一区二区在线观看视频| 91影视在线播放| 亚洲日本丝袜连裤袜办公室| 99麻豆久久久国产精品免费| 欧美国产禁国产网站cc| 成人一级黄色片| 欧美激情一区二区三区不卡 | 一本久久综合亚洲鲁鲁五月天 | 国产伦精品一区二区三区视频青涩| 欧美一区二区人人喊爽| 日韩高清不卡在线| 日韩一区二区三| 日本不卡一区二区三区| 91麻豆精品国产综合久久久久久| 日韩精品欧美成人高清一区二区| 在线综合+亚洲+欧美中文字幕| 日本va欧美va欧美va精品| 日韩欧美成人激情| 久草精品在线观看| 久久人人爽爽爽人久久久| 国产一区二区日韩精品| 国产午夜精品一区二区三区嫩草| 国产成人精品在线看| 亚洲欧洲av色图| 在线观看日韩毛片| 性欧美疯狂xxxxbbbb| 日韩一级片网站| 国产毛片精品国产一区二区三区| 国产精品美女一区二区三区| 在线观看三级视频欧美| 日韩国产成人精品| 精品国产乱码久久久久久1区2区| 黄色日韩三级电影| 中文字幕一区二区三区四区| 日本大香伊一区二区三区| 日本系列欧美系列| 久久精品一区二区三区四区| 91香蕉视频污在线| 日本午夜精品视频在线观看| 亚洲精品一区二区三区影院| 不卡一区在线观看| 亚洲国产日产av| 久久久久久久久99精品| 91麻豆精东视频| 日韩av成人高清| 中文字幕欧美国产| 欧美伊人久久大香线蕉综合69 | 欧美一级高清大全免费观看| 国产iv一区二区三区| 亚洲一区二区精品久久av| 精品欧美乱码久久久久久 | 国产精品乱码一区二区三区软件 | 国产一区91精品张津瑜| 日韩伦理免费电影| 日韩欧美不卡一区| 99re成人精品视频| 免费成人美女在线观看.| 国产精品丝袜久久久久久app| 在线观看91精品国产麻豆| 国产成人自拍网| 午夜精品久久久久影视| 国产亲近乱来精品视频 | 色8久久人人97超碰香蕉987| 久久国产精品99久久人人澡| 亚洲免费观看在线观看| 欧美成人在线直播| 91精品办公室少妇高潮对白| 国产一区二区在线免费观看| 午夜精品福利一区二区蜜股av|