?? callfromcli.c
字號:
//#endif CONNECT_setState( fd, WHILEDOWNLOADCHARLIST );}void lssproto_Echo_recv( int fd,char* arg0 ){ lssproto_Echo_send( fd , arg0 );}#define CHECKFD if( CONNECT_isCLI( fd ) == FALSE )return; if( CONNECT_isLOGIN(fd) == FALSE )return;#define CHECKFDANDTIME if( CONNECT_isCLI(fd) == FALSE )return; if( CONNECT_isLOGIN(fd) == FALSE )return;void lssproto_W_recv( int fd,int x,int y,char* direction ){ //ttom +3 int fd_charaindex, ix, iy; fd_charaindex = CONNECT_getCharaindex( fd ); ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); // CoolFish: Prevent Trade Cheat 2001/4/18 if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; // nuke 0407 if (checkNu(fd)<0) { // Robin 0521 print(" NU-Err "); CHAR_talkToCli(fd_charaindex, -1, "訊號錯誤。", CHAR_COLORYELLOW); CONNECT_setCloseRequest( fd , 1 ); return; } //ttom debug if((x==0)&&(y==0)){ //CHAR_talkToCli(fd_charaindex, -1, "因座標錯誤而斷線。", CHAR_COLORYELLOW); // Roibn 03/14 return; } //ttom avoid the warp at will 11/6 { int i_diff_x,i_diff_y; i_diff_x=abs(ix-x); i_diff_y=abs(iy-y); // Robin 03/14 if( (i_diff_x>1)||(i_diff_y>1) ){ // Robin 0518 //CHAR_talkToCli(fd_charaindex, -1, "因走路座標錯誤而斷線。", CHAR_COLORYELLOW); //return; x = ix; y = iy; } } if(!(MAP_walkAble(fd_charaindex,CHAR_getInt(fd_charaindex, CHAR_FLOOR),x,y))){ // Robin 03/14 x = ix; y = iy; }else{ } CHAR_walk_init( fd, x, y, direction, TRUE);}/*------------------------------------------------------------ * 洶仁 ------------------------------------------------------------*/void lssproto_W2_recv( int fd,int x,int y,char* direction ){ //ttom +3 int fd_charaindex, ix, iy, i_fl; //Char *chwk;// CoolFish: Rem 2001/4/18 fd_charaindex = CONNECT_getCharaindex( fd ); ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); i_fl=CHAR_getInt(fd_charaindex, CHAR_FLOOR); // CoolFish: Prevent Trade Cheat 2001/4/18 if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; //ttom avoid the warp at will 11/6 { int i_diff_x,i_diff_y; //ix=CHAR_getInt(fd_charaindex, CHAR_X); //iy=CHAR_getInt(fd_charaindex, CHAR_Y); //i_fl=CHAR_getInt(fd_charaindex, CHAR_FLOOR); i_diff_x=abs(ix-x); i_diff_y=abs(iy-y); if( (i_diff_x>1)||(i_diff_y>1) ){//2 //print("\n<www>Warp Error!!!!!!!!!"); //print("\n<www>the origion->fd=%d,x=%d,y=%d",fd,ix,iy); //print("\n<www>the modify-->fd=%d,X=%d,Y=%d,dir=%s",fd,x,y,direction); x=ix; y=iy; // Robin 03/14 //return; } //if((i_fl==117)&&(ix==225)&&(iy==13)) goto END_w; }//ttom if(!(MAP_walkAble(fd_charaindex,CHAR_getInt(fd_charaindex, CHAR_FLOOR),x,y))){ print("\n<wwww> the map is invaild(f:%d,x:%d,y:%d)",CHAR_getInt(fd_charaindex, CHAR_FLOOR),x,y); x = ix; y = iy; } //END_w: CHAR_walk_init( fd, x, y, direction, FALSE);}void lssproto_SKD_recv( int fd,int dir, int index){ CHECKFDANDTIME;}void lssproto_ID_recv( int fd,int x,int y,int haveitemindex,int toindex ){ int to_charaindex; int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); // CoolFish: Prevent Trade Cheat 2001/4/18 if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; /* 爵 凜反輪仁 仿弘匹仇木卞婁勻井井月第 嶺丐曰 */ if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; //ttom avoid the warp at will 12/5 { int ix,iy; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); x=ix; y=iy; } CHAR_setMyPosition( fd_charaindex, x,y,TRUE); to_charaindex = Callfromcli_Util_getTargetCharaindex( fd, toindex); CHAR_ItemUse( fd_charaindex, to_charaindex, haveitemindex );}/*------------------------------------------------------------ * 憊寞毛薊少 ------------------------------------------------------------*/void lssproto_ST_recv( int fd,int titleindex ){ CHECKFDANDTIME; CHAR_selectTitle( CONNECT_getCharaindex( fd) , titleindex );}/*------------------------------------------------------------ * 憊寞毛綽輪允月 ------------------------------------------------------------*/void lssproto_DT_recv( int fd,int titleindex ){ CHECKFDANDTIME; CHAR_deleteTitle( CONNECT_getCharaindex(fd) , titleindex );}/*------------------------------------------------------------ * 憤裘憊寞毛 允月 ------------------------------------------------------------*/void lssproto_FT_recv( int fd,char* data ){ CHECKFDANDTIME; // Robin 04/23 debug if( strlen(data) > 12 ) return; if( checkStringErr(data) ) return; CHAR_inputOwnTitle( CONNECT_getCharaindex(fd) , data);}/*------------------------------------------------------------ * 失奶 丞毛膠丹 ------------------------------------------------------------*/void lssproto_PI_recv( int fd,int x, int y, int dir ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); {//ttom avoid warp at will int ix,iy; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); if( (ix!=x)||(iy!=y)){ //print("\n<PI>--Error!!!!"); //print("\n<PI>origion x=%d,y=%d",ix,iy); //print("\n<PI>modify X=%d,Y=%d",x,y); x=ix; y=iy; } }//ttom end CHAR_setMyPosition( fd_charaindex, x,y,TRUE); if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; CHAR_PickUpItem( fd_charaindex, dir);}void lssproto_DI_recv( int fd,int x, int y, int itemindex ){ int charaindex; CHECKFDANDTIME; charaindex = CONNECT_getCharaindex( fd ); if( CHAR_getWorkInt(charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return; CHAR_setMyPosition( charaindex , CHAR_getInt( charaindex, CHAR_X), CHAR_getInt( charaindex, CHAR_Y), TRUE); CHAR_DropItem( charaindex, itemindex );}void lssproto_DP_recv( int fd,int x, int y, int petindex ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; { int ix,iy; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); x=ix; y=iy; } CHAR_setMyPosition( fd_charaindex , x,y,TRUE); if( CHAR_getWorkInt( fd_charaindex , CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; PET_dropPet( fd_charaindex, petindex);}/*------------------------------------------------------------ * 嗯毛 仁 ------------------------------------------------------------*/void lssproto_DG_recv( int fd,int x, int y, int amount ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); //ttom avoid the warp at will 12/15 { int ix,iy; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); x=ix; y=iy; } CHAR_setMyPosition( fd_charaindex, x,y,TRUE); /* 爵 反輪仁 仿弘匹仇木卞婁勻井井月第 嶺丐曰 */ if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; // CoolFish: Prevent Trade Cheat 2001/4/18 if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; CHAR_DropMoney( fd_charaindex, amount );}/*------------------------------------------------------------ * 失奶 丞毛啖 允月[隸 手仇木匹 ------------------------------------------------------------*/void lssproto_MI_recv( int fd,int fromindex,int toindex ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); // CoolFish: Prevent Trade Cheat 2001/4/18 if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE) return; /* 爵 反輪仁 仿弘匹仇木卞婁勻井井月第 嶺丐曰 */ if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; CHAR_moveEquipItem( fd_charaindex, fromindex, toindex );}/*------------------------------------------------------------ * 旦平伙失永皿 ------------------------------------------------------------*/void lssproto_SKUP_recv( int fd,int skillid ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex(fd); /* 爵 反輪仁 仿弘匹仇木卞婁勻井井月第 嶺丐曰 */ if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; CHAR_SkillUp(fd_charaindex,skillid);}/*------------------------------------------------------------ * 戊生弁撲亦件鍬澎卞丟永本□斥毛霜耨 ------------------------------------------------------------*/void lssproto_MSG_recv( int fd,int index,char* message, int color ){ int fd_charaindex; CHECKFD; fd_charaindex = CONNECT_getCharaindex( fd); ADDRESSBOOK_sendMessage( fd_charaindex, index,message, color );}/*------------------------------------------------------------ * 失玉伊旦皮永弁及 毛母它件夫□玉允月邰菲互 兇 ------------------------------------------------------------*/void lssproto_AB_recv( int fd ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); ADDRESSBOOK_sendAddressbookTable( fd_charaindex );}/*------------------------------------------------------------ * 失玉伊旦皮永弁及嫩 毛綽輪允月 ------------------------------------------------------------*/void lssproto_DAB_recv( int fd , int index){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); ADDRESSBOOK_deleteEntry( fd_charaindex ,index);}void lssproto_AAB_recv( int fd , int x, int y){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); { int ix,iy; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); if( (ix!=x)||(iy!=y)){ x=ix; y=iy; } } CHAR_setMyPosition( fd_charaindex , x,y,TRUE); ADDRESSBOOK_addEntry( fd_charaindex );}void lssproto_L_recv( int fd, int dir ){ int fd_charaindex; CHECKFDANDTIME; fd_charaindex = CONNECT_getCharaindex( fd ); CHAR_Look( fd_charaindex ,dir );}/*------------------------------------------------------------ * 民乓永玄迕丟永本□斥及霜耨 ------------------------------------------------------------*/void lssproto_TK_recv( int fd,int x, int y,char* message,int color, int area ){ int fd_charaindex,ix,iy;//ttom+2 int fmindex, channel; CHECKFD; fd_charaindex = CONNECT_getCharaindex( fd ); fmindex = CHAR_getInt( fd_charaindex, CHAR_FMINDEX ); channel = CHAR_getWorkInt( fd_charaindex, CHAR_WORKFMCHANNEL ); {// Robin 0629 silent int silentSec, talkCount; silentSec = CHAR_getInt(fd_charaindex,CHAR_SILENT); if( silentSec > 0 ) { int loginTime; char buf[256]; int leftSec; loginTime = CHAR_getWorkInt(fd_charaindex, CHAR_WORKLOGINTIME ); // 防止時間修正回朔後 異常禁言 Robin 20040817 if( (int)NowTime.tv_sec < loginTime) { CHAR_setInt(fd_charaindex, CHAR_SILENT, 0 ); return; } if( ((int)NowTime.tv_sec -loginTime) > silentSec ) { CHAR_setInt(fd_charaindex, CHAR_SILENT, 0 ); return; } silentSec += 10; //多禁10秒 leftSec = silentSec - ((int)NowTime.tv_sec - loginTime); sprintf(buf, "禁言中!!還有%d秒,再講多禁10秒鐘。", leftSec ); CHAR_talkToCli(fd_charaindex, -1, buf, color); CHAR_setInt(fd_charaindex, CHAR_SILENT, silentSec ); return; } talkCount = CHAR_getWorkInt(fd_charaindex, CHAR_WORKTALKCOUNT ); talkCount ++; CHAR_setWorkInt( fd_charaindex, CHAR_WORKTALKCOUNT, talkCount); if( talkCount > 8 ) { int lastTalkTime = CHAR_getWorkInt(fd_charaindex, CHAR_WORKTALKTIME ); if( (int)NowTime.tv_sec - lastTalkTime < 10 ) { CHAR_setInt( fd_charaindex,CHAR_SILENT, 60 ); CHAR_setWorkInt( fd_charaindex, CHAR_WORKLOGINTIME, (int)NowTime.tv_sec ); CHAR_talkToCli( fd_charaindex, -1, "你太多話了唷,請你的嘴巴先休息個一分鐘吧!", color); CHAR_setWorkInt(fd_charaindex, CHAR_WORKTALKCOUNT, 0 ); return; }else { CHAR_setWorkInt( fd_charaindex, CHAR_WORKTALKTIME, (int)NowTime.tv_sec ); CHAR_setWorkInt(fd_charaindex, CHAR_WORKTALKCOUNT, 0 ); } }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -