⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callfromcli.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 4 页
字号:
	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 + -