📄 callfromcli.c
字号:
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 ); } } } 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(!CONNECT_get_shutup(fd)){ //ttom add the shut up function CHAR_Talk( fd,fd_charaindex, message, color, area ); }}void lssproto_M_recv( int fd, int fl, int x1, int y1 , int x2, int y2 ){ char* mapdata; RECT seek={x1,y1,x2-x1,y2-y1},ret; CHECKFD; mapdata = MAP_getdataFromRECT(fl,&seek,&ret); if( mapdata != NULL ){ lssproto_M_send( fd, fl, ret.x, ret.y, ret.x+ret.width, ret.y+ret.height, mapdata ); }}/*------------------------------------------------------------ ------------------------------------------------------------*/void lssproto_C_recv( int fd, int index ){ /* 仇木分仃凛棉及涩烂毛苇卅中仪卞允月 */ CHECKFD; CHAR_sendCSpecifiedObjindex( fd, index);}void lssproto_S_recv( int fd, char* category ){ char* string; int fd_charaindex; fd_charaindex = CONNECT_getCharaindex( fd ); string = CHAR_makeStatusString( fd_charaindex, category ); if( string != NULL ) lssproto_S_send( fd , string );}void lssproto_EV_recv( int fd,int event,int seqno,int x,int y, int dir ){ int rc; int fx,fy; int fd_charaindex; CHECKFD; 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 ) ){ goto CK1; } goto OK; }CK1: { OBJECT object; int ix,iy,ifloor,i,j; int warp_point_x[9]; int warp_point_y[9]; int warp_point=0; ix=CHAR_getInt(fd_charaindex, CHAR_X); iy=CHAR_getInt(fd_charaindex, CHAR_Y); ifloor=CHAR_getInt(fd_charaindex,CHAR_FLOOR); for(i=iy-1;i<=iy+1;i++){ for(j=ix-1;j<=ix+1;j++){ for( object = MAP_getTopObj(ifloor,j,i) ; object ;object = NEXT_OBJECT(object ) ){ int o = GET_OBJINDEX(object); if( OBJECT_getType(o) == OBJTYPE_CHARA ){ int etype; int charaindex=OBJECT_getIndex(o); if( !CHAR_CHECKINDEX(charaindex) ) continue; etype = CHAR_getWorkInt( charaindex, CHAR_WORKEVENTTYPE); if( etype != CHAR_EVENT_NONE ) { if(etype==CHAR_EVENT_WARP){ warp_point_x[warp_point]=j; warp_point_y[warp_point]=i; warp_point++; } } }#ifdef _MAP_WARPPOINT else if( OBJECT_getType(o) == OBJTYPE_WARPPOINT ){ int etype = OBJECT_getchartype( o); if( etype != CHAR_EVENT_NONE ) { warp_point_x[warp_point]=j; warp_point_y[warp_point]=i; warp_point++; break; } }#endif } } } for(i=0;i<warp_point;i++){ if((x==warp_point_x[i])&& (y==warp_point_y[i])) goto OK; } x=CHAR_getInt(fd_charaindex, CHAR_X); y=CHAR_getInt(fd_charaindex, CHAR_Y); }OK: CHAR_setMyPosition( fd_charaindex, x,y,TRUE); CHAR_setWorkChar( fd_charaindex , CHAR_WORKWALKARRAY,""); if( dir < 0 || dir > 7) { fx = CHAR_getInt(fd_charaindex, CHAR_X); fy = CHAR_getInt(fd_charaindex, CHAR_Y); }else { CHAR_getCoordinationDir( dir, CHAR_getInt(fd_charaindex, CHAR_X), CHAR_getInt(fd_charaindex, CHAR_Y),1,&fx,&fy); } rc = EVENT_main(fd_charaindex, event,fx,fy); lssproto_EV_send( fd, seqno, rc);}/*------------------------------------------------------------ ------------------------------------------------------------*/void lssproto_EN_recv( int fd , int x,int y ){ int ret = FALSE, err = 0; int fd_charaindex; CHECKFD; fd_charaindex = CONNECT_getCharaindex( fd); //print(" EN_recv "); if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_CLIENT){ CHAR_setMyPosition( fd_charaindex, x,y,TRUE); CHAR_setWorkChar( fd_charaindex, CHAR_WORKWALKARRAY,""); err = BATTLE_CreateVsEnemy( fd_charaindex,0, -1); if( err != 0 ){ ret = FALSE; }else{ ret = TRUE; } }}/*------------------------------------------------------------ ------------------------------------------------------------*/void lssproto_DU_recv( int fd , int x,int y ){ OBJECT object; int fd_charaindex; int ret = FALSE, charaindex = -1, enemyindex; int frontx,fronty; int cnt = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -