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

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

?? callfromcli.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 5 頁
字號:
#include "version.h"#include <stdio.h>#include <time.h>#include <stdlib.h>#include "common.h"#include "util.h"#include "lssproto_serv.h"#include "saacproto_cli.h"#include "net.h"#include "char.h"#include "object.h"#include "readmap.h"#include "addressbook.h"#include "handletime.h"#include "configfile.h"#include "event.h"#include "pet.h"#include "battle.h"#include "battle_command.h"#include "magic.h"#include "petmail.h"#include "item_gen.h"#include "pet_skill.h"#include "log.h"  //add this because the second had it#include "map_deal.h" // CoolFish: 2001/4/18#include "trade.h" // CoolFish: Trade 2001/4/18#include "family.h" // CoolFish: Family 2001/5/24#include "item_event.h" // shan: blackmarket#ifdef _PROFESSION_SKILL			// WON ADD 人物職業技能#include "profession_skill.h"#endif#ifdef _CHATROOMPROTOCOL			// (不可開) Syu ADD 聊天室頻道#include "chatroom.h"#endifBOOL checkStringErr( char * );// shan addextern struct FM_PKFLOOR fmpkflnum[FAMILY_FMPKFLOOR];/* ----------------------------------------------------------------------- * 薊  仄兇  讀及  寞井日平乓仿奶件犯永弁旦毛  月 * ----------------------------------------------------------------------*/static int Callfromcli_Util_getTargetCharaindex( int fd, int toindex){	int	to_charaindex = -1;    int fd_charaindex = CONNECT_getCharaindex( fd );	/* 憤坌憤褥 */	if( toindex == 0 ) {		to_charaindex = fd_charaindex;	}	/* 矢永玄 1   5 */	else if( toindex > 0 && toindex < 6 ) {		to_charaindex = CHAR_getCharPet( fd_charaindex, toindex-1);		if( !CHAR_CHECKINDEX( to_charaindex)) {			to_charaindex = -1;		}	}	/* 醮棉 6   10 */	else if( toindex > 5 && toindex < 11 ) {		to_charaindex = CHAR_getPartyIndex( fd_charaindex, toindex - 6);	}	return to_charaindex;}/*---------------------------------------- * 弁仿奶失件玄互夫弘奶件允月 匹手丟乒伉卞巹戶月分仃卅及匹民尼永弁反卅中 * 仇木毛裟少午 CLI 卞卅月[ ----------------------------------------*/void lssproto_ClientLogin_recv( int fd,char* cdkey, char* passwd ){    /*  2褐卞仇木互裟壬木月及反中中    */    /*  由旦伐□玉  凳毛仄化岳  分勻兇日瘋太仇木毛裟少儀[*/    {//ttom avoid the restore 2001/01/09     int fd_charaindex;     Char *chwk;    // CoolFish: +2 2001/4/18    fd_charaindex = CONNECT_getCharaindex(fd);    chwk = CHAR_getCharPointer(fd_charaindex);		if(CONNECT_isNOTLOGIN(fd)==FALSE){			print("\n the Client had  Logined fd=%d",fd);			return;		}    }    //print( "CliLogin cdkey=%s\n" , cdkey );    /* connect卞戊疋□允月 */    CONNECT_setCdkey( fd, cdkey );    CONNECT_setPasswd( fd, passwd );    CONNECT_setCtype( fd, CLI );    {//ttom       unsigned long ip;       int a,b,c,d;       int i;       ip=CONNECT_get_userip(fd);       a=(ip % 0x100); ip=ip / 0x100;       b=(ip % 0x100); ip=ip / 0x100;       c=(ip % 0x100); ip=ip / 0x100;       d=(ip % 0x100);       print( "\n登陸賬號=%s 來自 %d.%d.%d.%d \n",cdkey,a,b,c,d);			 for(i=0;i<getMaxLockip();i++)			 	 if(cmpLockip(i,a,b,c,d,1))return;    }    /* 忒蠶 */    lssproto_ClientLogin_send( fd , "ok" );}void lssproto_CreateNewChar_recv( int fd,int dataplacenum,char* charname,								  int imgno,int faceimgno,								  int vital,int str,int tgh,int dex,								  int earth,int water,int fire,int wind,								  int hometown ){    char cdkey[CDKEYLEN];    if( CONNECT_isCLI( fd ) == FALSE )return;    if( CONNECT_isNOTLOGIN(fd) == FALSE ){        lssproto_CreateNewChar_send( fd, FAILED, "Not NOTLOGIN State\n" );        return;    }#ifdef _DEATH_FAMILY_LOGIN_CHECK 	// pk戰無法創新人物		lssproto_CreateNewChar_send( fd, FAILED, "" );		return;#endif#ifdef _DEATH_CONTEND	// pk戰無法創新人物		lssproto_CreateNewChar_send( fd, FAILED, "" );		return;#endif    if( strlen( charname ) == 0 ){        lssproto_CreateNewChar_send(fd,FAILED, "0 length name\n");        return;    }else if( strlen(charname) >= 32 ){        lssproto_CreateNewChar_send(fd,FAILED, "Too long charname\n");        return;    // Nuke start 0711: Avoid naming as WAEI    }else if (strstr(charname,"華義")  // WON ADD			 || strstr(charname,"gm")   || strstr(charname,"GM")  			 || strstr(charname,"Gm")   || strstr(charname,"gM")  			 || strstr(charname,"gm") || strstr(charname,"GM") 			 || strstr(charname,"Gm") || strstr(charname,"gM") #ifdef _UNREG_NEMA			 || (strstr(charname,getUnregname(0)) && strlen(getUnregname(0))>0)			 || (strstr(charname,getUnregname(1)) && strlen(getUnregname(1))>0)			 || (strstr(charname,getUnregname(2)) && strlen(getUnregname(2))>0)			 || (strstr(charname,getUnregname(3)) && strlen(getUnregname(3))>0)			 || (strstr(charname,getUnregname(4)) && strlen(getUnregname(4))>0)#endif			 || strstr(charname,"神秘人物")// WON END		) { 	unsigned ip=CONNECT_get_userip(fd);	int a, b, c, d, ck;                    	a=(ip % 0x100); ip=ip / 0x100;	b=(ip % 0x100); ip=ip / 0x100;	c=(ip % 0x100); ip=ip / 0x100;	d=(ip % 0x100);                                                    	ck= (			( (a== 10) && (b==0)   && (c==0) ) ||			( (a==211) && (b==76) && (c==176) && (d==21) ) ||	// 臺北wayi			( (a==210) && (b==64)  && (c==97)  && ((d>=21)&&(d<=25)) ) ||			( (a==61)  && (b==222) && (c==142) && (d==66) )		);                                                                            	print(" name_WAEI_IP:%d.%d.%d.%d ck:%d ",a,b,c,d,ck );                                                                                        	if( !ck ) {		lssproto_CreateNewChar_send(fd,FAILED, "Invalid charname\n");		return;	}    }    {	// Nuke start 0801,0916: Avoid strange name        int i,ach;        for (i=0,ach=0;i<strlen(charname);i++) {        	if ((unsigned char)charname[i]==0xff) { ach=1; break; } // Force no 0xff                if (((unsigned char)charname[i]>=0x7f)&&                    ((unsigned char)charname[i]<=0xa0)) { ach=1; break; } // Force no 0x7f~0xa0                if ((unsigned char)charname[i]<=0x20) { ach=1; break; } // Force greater than 0x20                if (ach) {                	if ((((unsigned char)charname[i]>=0x40)&&((unsigned char)charname[i]<=0x7e))||                        (((unsigned char)charname[i]>=0xa1)&&((unsigned char)charname[i]<=0xfe))) ach=0;                } else {                	if (((unsigned char)charname[i]>=0xa1)&&((unsigned char)charname[i]<=0xfe)) ach=1;                }	}	if (ach) { lssproto_CreateNewChar_send(fd,FAILED, "Error in Chinese\n"); return; }        // Nuke end    }    // Nuke end                                        CONNECT_getCdkey( fd, cdkey, sizeof( cdkey ));    CHAR_createNewChar( fd, dataplacenum, charname ,imgno, faceimgno,    					vital, str, tgh, dex,    					earth, water, fire, wind,    					hometown , cdkey );}void lssproto_CharLogin_recv( int fd,char* charname ){    char cdkey[CDKEYLEN], passwd[PASSWDLEN];    if( CONNECT_isCLI( fd ) == FALSE )return;    print( "\n嘗試登陸: 人物名稱=%s\n", charname);    if( charname[0] == '\0' ){        lssproto_CharLogin_send( fd, FAILED, "\n人物名稱含有不能訪問字符\n" );        return;    }    if( CONNECT_isNOTLOGIN(fd) == FALSE ){        lssproto_CharLogin_send( fd, FAILED, "Already Logged in\n" );        return;    }    CONNECT_setCharname( fd, charname );    CONNECT_getCdkey( fd, cdkey, sizeof( cdkey ));    CONNECT_getPasswd( fd, passwd, sizeof(passwd));    saacproto_ACCharLoad_send( acfd, cdkey,passwd, charname,1,"",                               CONNECT_getFdid(fd) );    CONNECT_setState( fd, WHILELOGIN );}#ifdef _ITEM_CHECKDROPATLOGOUTBOOL CheckDropatLogout(int charaindex ){	int i;	for( i=0 ; i<CHAR_MAXITEMHAVE ; i++ ){		int     itemindex;		itemindex = CHAR_getItemIndex(charaindex,i);		if( ITEM_CHECKINDEX(itemindex) == FALSE )continue;		if( ITEM_getInt(itemindex,ITEM_DROPATLOGOUT ) == TRUE ) {			return TRUE;		}	}	return FALSE;}	#endifvoid lssproto_CharLogout_recv( int fd, int flg){    char cdkey[CDKEYLEN] , charname[CHARNAMELEN];    if( CONNECT_isCLI( fd ) == FALSE )return;    if( CONNECT_isLOGIN(fd) == FALSE ){        lssproto_CharLogout_send( fd, FAILED, "Not Logged in\n" );        return;    }    {        int charaindex=CONNECT_getCharaindex(fd);        int fl,x,y;        // CoolFish: 2001/10/18        if (!CHAR_CHECKINDEX(charaindex))	return;#ifdef _MUSEUM		if( (CHAR_getInt( charaindex, CHAR_LASTTALKELDER) >= 0) || getMuseum() )#else		if( CHAR_getInt( charaindex, CHAR_LASTTALKELDER) >= 0 )#endif		{#ifdef _MUSEUM			if( getMuseum() ) {				fl = 9000; x = 40; y = 40;			}			else {				CHAR_getElderPosition( CHAR_getInt( charaindex, CHAR_LASTTALKELDER),	&fl, &x, &y );			}#else			CHAR_getElderPosition( CHAR_getInt( charaindex, CHAR_LASTTALKELDER),	&fl, &x, &y );#endif#ifdef _CHAR_NEWLOGOUT			if( flg == 1 ){//回紀錄點				if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE){					CHAR_talkToCli( charaindex, -1, "戰斗中無法回紀錄點!", CHAR_COLORYELLOW);					return;				}#ifdef _ITEM_CHECKWARES				if( CHAR_CheckInItemForWares( charaindex, 0) == FALSE ){					CHAR_talkToCli( charaindex, -1, "攜帶貨物無法使用。", CHAR_COLORYELLOW);					return;				}#endif#ifdef _BAD_PLAYER             // WON ADD 送壞玩家去關				if( (CHAR_getInt(charaindex,CHAR_FLOOR)==117)||(CHAR_getInt(charaindex,CHAR_FLOOR)==887) ){					CHAR_talkToCli( charaindex, -1, "此處無法使用。", CHAR_COLORYELLOW);					return;				}#endif				if( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE ) != CHAR_PARTY_NONE ){					CHAR_talkToCli( charaindex, -1, "團隊中無法回紀錄點!", CHAR_COLORYELLOW);					return;				}#ifdef _ITEM_CHECKDROPATLOGOUT				if( CheckDropatLogout( charaindex ) ){					CHAR_talkToCli( charaindex, -1, "攜帶的物品使你無法回紀錄點!", CHAR_COLORYELLOW);					return;				}#endif#ifdef _DEATH_CONTEND/*				if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) == BATTLE_CHARMODE_NONE){					if( CHAR_getInt( charaindex, CHAR_FLOOR) != 8250 &&						CHAR_getInt( charaindex, CHAR_PKLISTLEADER) == 1 ){						//andy_log						print("PlayerLogout_Exit()\n");						NPC_PKLIST_PlayerLogout_Exit( charaindex );						CHAR_warpToSpecificPoint( charaindex, 8250, 17, 17 );					}				}*/#else				if( CHAR_getInt( charaindex,CHAR_FLOOR ) != 117 &&					CHAR_getInt( charaindex,CHAR_FLOOR ) != 887 #ifdef _ADD_DUNGEON            //追加地牢                    && CHAR_getInt( charaindex,CHAR_FLOOR ) != 8513#endif					){					CHAR_warpToSpecificPoint( charaindex, fl, x, y );				}#endif				return;			}#else	        if( CHAR_getInt(charaindex,CHAR_FLOOR ) == 117){	           CHAR_setInt(charaindex,CHAR_X,225);	           CHAR_setInt(charaindex,CHAR_Y,13);	        }else{			   CHAR_setInt(charaindex,CHAR_FLOOR,fl);			   CHAR_setInt(charaindex,CHAR_X,x);			   CHAR_setInt(charaindex,CHAR_Y,y);			}#endif		}		// Robin add		//CHAR_setInt( charaindex, CHAR_LASTLEAVETIME, (int)time(NULL));    }    CHAR_logout(fd,TRUE);    CONNECT_setState( fd, WHILELOGOUTSAVE );    CONNECT_setCharaindex( fd, -1 );    CONNECT_getCdkey( fd, cdkey, sizeof(cdkey ));    CONNECT_getCharname( fd, charname, sizeof(charname));    print( "Logout cdkey:%s charname=%s\n" , cdkey, charname );}void lssproto_CharDelete_recv( int fd , char* charname){    char cdkey[CDKEYLEN],passwd[PASSWDLEN];    int fdid;    if( CONNECT_isCLI( fd ) == FALSE )return;    if( CONNECT_isNOTLOGIN( fd ) == FALSE ){        lssproto_CharDelete_send( fd, FAILED, "Already Logged in\n" );        return;    }    CONNECT_getCdkey( fd, cdkey, sizeof(cdkey));    CONNECT_getPasswd( fd, passwd, sizeof(passwd));    fdid = CONNECT_getFdid(fd);    saacproto_ACCharDelete_send( acfd, cdkey,passwd, charname , "" ,fdid );#ifndef _DEATH_CONTEND	{		char buff[512];		char escapebuf[1024];		snprintf( buff, sizeof(buff), "%s_%s", cdkey, charname);		makeEscapeString( buff, escapebuf, sizeof(escapebuf));		saacproto_DBDeleteEntryInt_send(acfd, DB_DUELPOINT, escapebuf, fdid, 0 );		saacproto_DBDeleteEntryString_send(	acfd, DB_ADDRESSBOOK, escapebuf, fdid, 0 );	}	saacproto_Broadcast_send( acfd, cdkey, charname, "chardelete", 0);#endif    CONNECT_setState( fd, WHILECHARDELETE );}void lssproto_CharList_recv( int fd ){    char cdkey[CDKEYLEN], passwd[PASSWDLEN];    int fdid=-1;    if( CONNECT_isCLI( fd ) == FALSE )return;    if( CONNECT_isNOTLOGIN( fd ) == FALSE ){        lssproto_CharList_send( fd, FAILED, "Already Logged in\n" );        return;    }    CONNECT_getCdkey( fd, cdkey, sizeof(cdkey));    CONNECT_getPasswd( fd, passwd, sizeof(passwd));    fdid = CONNECT_getFdid( fd );	{		int i;		int playernum = CHAR_getPlayerMaxNum();		for( i=0; i<playernum; i++){			if( !CHAR_CHECKINDEX( i) )continue;			if( !strcmp( CHAR_getChar( i, CHAR_CDKEY), cdkey) ){				lssproto_CharList_send( fd, FAILED, "-1" );				CONNECT_setState( fd, NOTLOGIN );				return;			}		}	}//#ifdef _PKSEVER_VER//	saacproto_ACCharList_send(acfd, cdkey, passwd, fdid, star);//#else    saacproto_ACCharList_send(acfd, cdkey, passwd, fdid );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一品二品| 欧美成人一级视频| 91精品国产综合久久香蕉的特点| 欧美一区二区三区性视频| 国产女人18水真多18精品一级做| 亚洲成人资源网| 成人深夜视频在线观看| 3atv一区二区三区| 亚洲精品五月天| 国产**成人网毛片九色 | 国产日韩欧美精品综合| 亚洲成人免费av| 日本精品视频一区二区三区| 中文字幕成人在线观看| 国产经典欧美精品| 精品国产乱码久久| 奇米精品一区二区三区在线观看| 91麻豆自制传媒国产之光| 久久久亚洲高清| 精品夜夜嗨av一区二区三区| 在线观看91精品国产麻豆| 一级特黄大欧美久久久| 色综合久久88色综合天天| 国产精品美女久久久久久久 | 久久女同精品一区二区| 毛片基地黄久久久久久天堂| 91麻豆精品国产91久久久更新时间 | 肉色丝袜一区二区| 欧美亚洲一区二区在线| 亚洲专区一二三| 色系网站成人免费| 一区二区三区四区在线播放| 91原创在线视频| 亚洲色图一区二区三区| 在线免费观看成人短视频| 一区二区三区在线免费播放| 国产亚洲一区二区在线观看| 国产剧情av麻豆香蕉精品| xf在线a精品一区二区视频网站| 婷婷六月综合网| 欧美一级午夜免费电影| 琪琪久久久久日韩精品| 精品嫩草影院久久| 成人福利视频网站| 亚洲女同ⅹxx女同tv| 在线日韩av片| 日av在线不卡| 国产欧美日韩激情| 91毛片在线观看| 婷婷综合在线观看| 久久色成人在线| 91亚洲资源网| 日韩国产欧美在线观看| 2020国产精品自拍| 色丁香久综合在线久综合在线观看| 亚洲线精品一区二区三区| 欧美一区二区三区喷汁尤物| 精品一区二区三区在线观看| 国产精品卡一卡二| 欧美精品丝袜久久久中文字幕| 国产在线精品一区二区不卡了| 久久九九影视网| 欧美亚洲自拍偷拍| 韩国成人精品a∨在线观看| 亚洲欧洲另类国产综合| 91精品欧美久久久久久动漫 | 美国毛片一区二区三区| 国产精品麻豆一区二区| 在线成人av网站| 成人高清视频在线观看| 三级欧美在线一区| 国产精品电影一区二区| 日韩欧美国产电影| 91麻豆高清视频| 国产一区在线观看视频| 亚洲国产成人精品视频| 日本一区二区三区久久久久久久久不 | 欧美一a一片一级一片| 国产剧情一区二区| 视频一区二区不卡| 亚洲欧洲综合另类在线 | 欧美午夜一区二区三区免费大片| 国内欧美视频一区二区| 亚洲成人激情社区| 亚洲天堂a在线| 久久综合九色欧美综合狠狠| 7777精品伊人久久久大香线蕉的 | 91行情网站电视在线观看高清版| 久久激五月天综合精品| 亚洲国产美女搞黄色| 国产精品视频麻豆| 精品乱码亚洲一区二区不卡| 欧美日韩国产综合视频在线观看| 波多野结衣欧美| 色综合视频在线观看| 国产精品中文字幕一区二区三区| 亚洲成人福利片| 一个色综合网站| 1024国产精品| 中文字幕永久在线不卡| 国产偷国产偷亚洲高清人白洁| 日韩一级免费观看| 欧美一区在线视频| 欧美电影一区二区| 69久久99精品久久久久婷婷 | 91久久国产最好的精华液| 成人av先锋影音| 成人免费视频视频| 国产成人av一区二区三区在线 | 国产成人8x视频一区二区| 美女免费视频一区二区| 日本午夜精品视频在线观看| 亚洲国产精品视频| 五月激情六月综合| 日韩精品高清不卡| 日本成人在线不卡视频| 免费成人结看片| 捆绑调教一区二区三区| 久久精品国产一区二区三| 麻豆精品在线看| 国产在线精品不卡| 国产91综合一区在线观看| 福利91精品一区二区三区| 国产99一区视频免费| 成人av电影在线| 色综合久久天天综合网| 欧美图区在线视频| 91精品国产一区二区| 日韩美女视频一区二区在线观看| 日韩欧美中文字幕制服| 精品国产一区二区三区不卡| 久久久精品国产免大香伊| 国产日产欧美一区二区视频| 中文字幕亚洲欧美在线不卡| 亚洲人妖av一区二区| 亚洲国产欧美另类丝袜| 麻豆成人91精品二区三区| 国产成人av影院| 日本高清不卡在线观看| 日韩一区二区免费在线观看| 2022国产精品视频| 亚洲美女视频在线| 久久精品久久久精品美女| 国产91精品免费| 欧美日韩一区二区欧美激情| 欧美va亚洲va在线观看蝴蝶网| 亚洲国产精品ⅴa在线观看| 亚洲成人av一区二区| 国产在线播放一区| 色综合中文字幕国产| 在线亚洲欧美专区二区| 精品嫩草影院久久| 一区二区三区日韩在线观看| 久久99热这里只有精品| 91久久一区二区| 久久综合九色综合欧美亚洲| 亚洲午夜激情网页| 成人动漫一区二区在线| 91精品国产一区二区人妖| 中文字幕综合网| 国产在线日韩欧美| 欧美三级日韩在线| 国产精品亲子伦对白| 日韩vs国产vs欧美| 99免费精品视频| 亚洲精品在线三区| 婷婷中文字幕一区三区| 9l国产精品久久久久麻豆| 欧美一卡二卡三卡四卡| 亚洲精品菠萝久久久久久久| 国产精品一区二区无线| 欧美精品高清视频| 一区二区三区中文字幕精品精品| 国产精品一二一区| 日韩一区二区三区在线观看| 亚洲男女一区二区三区| 成人av在线播放网址| 国产日韩欧美制服另类| 蜜桃91丨九色丨蝌蚪91桃色| 欧美色欧美亚洲另类二区| 亚洲欧美视频一区| 成人av免费观看| 国产精品无人区| 国产成人在线观看| 久久蜜桃av一区精品变态类天堂| 日本成人在线视频网站| 欧美精品xxxxbbbb| 亚洲va欧美va国产va天堂影院| av不卡一区二区三区| 中文字幕一区二区三| 风间由美性色一区二区三区| 国产日韩欧美一区二区三区综合| 捆绑调教一区二区三区| 日韩精品一区二区三区中文不卡| 天堂午夜影视日韩欧美一区二区| 欧美综合色免费| 亚洲国产精品一区二区www在线 | 99久久精品免费看| 中文天堂在线一区| 波多野结衣在线一区|