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

📄 callfromcli.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
	//家族频道开关	CHAR_setFlg(fd_charaindex,CHAR_ISFM,(flg & CHAR_FS_FM )? TRUE:FALSE);	//职业频道开关	CHAR_setFlg(fd_charaindex,CHAR_ISOCC,(flg & CHAR_FS_OCC )? TRUE:FALSE);	//聊天室	CHAR_setFlg(fd_charaindex,CHAR_ISCHAT,(flg & CHAR_FS_CHAT )? TRUE:FALSE);	//储存对话开关	CHAR_setFlg(fd_charaindex,CHAR_ISSAVE,(flg & CHAR_FS_SAVE )? TRUE:FALSE);#endif#ifdef _AUCPROTOCOL				// (不可开) Syu ADD 拍卖频道开关Protocol	CHAR_setFlg( fd_charaindex, CHAR_ISAUC,				(flg & CHAR_FS_AUC )? TRUE:FALSE);#endif        // CoolFish: Trade 2001/4/18        CHAR_setFlg( fd_charaindex, CHAR_ISTRADE,        	(flg & CHAR_FS_TRADE )? TRUE:FALSE);        /*        if (CHAR_getFlg(fd_charaindex, CHAR_ISTRADECARD) == TRUE)        	CHAR_setFlg(fd_charaindex, CHAR_ISTRADE, FALSE);        if (CHAR_getFlg(fd_charaindex, CHAR_ISTRADE) == TRUE)        	CHAR_setFlg(fd_charaindex, CHAR_ISTRADECARD, FALSE);        */                                                                                                	lssproto_FS_send( fd, flg);}/*------------------------------------------------------------ * 醮棉邰菲  戏[ ------------------------------------------------------------*/void lssproto_PR_recv( int fd,int x, int y, int request ){	int result = FALSE;    int fd_charaindex;    CHECKFDANDTIME;    fd_charaindex = CONNECT_getCharaindex( fd );#if 1 // 禁止组队区域	if( request == 1 )	{		int nowFloor;		nowFloor = CHAR_getInt( fd_charaindex, CHAR_FLOOR);		if(	nowFloor == 31706			|| nowFloor == 10204			|| (10601 <= nowFloor && nowFloor <= 10605 )			|| nowFloor == 10919 || nowFloor == 10920			|| nowFloor == 20711 || nowFloor == 20712			|| nowFloor == 1008 || nowFloor == 1021			|| nowFloor == 3008 || nowFloor == 3021 			|| ( nowFloor <= 8213 && nowFloor >= 8200 )			|| ( nowFloor >= 30017 && nowFloor <= 30021 )#ifdef _TIME_TICKET			|| check_TimeTicketMap(nowFloor)#endif			){			print("\n 改封包!禁止组队区域!!:%s ", CHAR_getChar( fd_charaindex, CHAR_CDKEY) );			return;		}	}#endif    {//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<PR>--Error!!!!");           //print("\n<PR>origion x=%d,y=%d",ix,iy);           //print("\n<PR>modify  X=%d,Y=%d",x,y);           x=ix;           y=iy;       }   }   CHAR_setMyPosition( fd_charaindex, x,y,TRUE);	if( request == 0 ) {		/* 轮迩允月 */		result = CHAR_DischargeParty(fd_charaindex, 0);	}	else if( request == 1 ) {		/*   迩允月 */		result = CHAR_JoinParty(fd_charaindex);	}}/*------------------------------------------------------------ * 爵  卞瓒  允月矢永玄毛蓟  仄凶[ ------------------------------------------------------------*/void lssproto_KS_recv( int fd,int petarray ){	int ret , fd_charaindex;    CHECKFDANDTIME;    fd_charaindex = CONNECT_getCharaindex( fd );    	    	if( CHAR_getInt( fd_charaindex, CHAR_RIDEPET) == petarray )    		lssproto_KS_send( fd, petarray, FALSE);    		ret = PET_SelectBattleEntryPet( fd_charaindex, petarray);	lssproto_KS_send( fd, petarray, ret);}#ifdef _STANDBYPETvoid lssproto_SPET_recv( int fd, int standbypet ){	int fd_charaindex;	int i, s_pet =0, cnt =0;    CHECKFDANDTIME;    fd_charaindex = CONNECT_getCharaindex( fd );	if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE 		&& standbypet >= CHAR_getWorkInt( fd_charaindex, CHAR_WORKSTANDBYPET) ) {		print("\n 改封包!??战斗中用SPET增加待机宠!!:%s ", CHAR_getChar( fd_charaindex, CHAR_CDKEY) );		return;	}    //if( CHAR_getInt( fd_charaindex, CHAR_RIDEPET) == petarray ) {    //	lssproto_SPET_send( fd, petarray, FALSE);	//}	for( i =0; i < CHAR_MAXPETHAVE; i++) {		if( standbypet & ( 1 << i ) ) {			//if( CHAR_getInt( fd_charaindex, CHAR_RIDEPET) == i )			//	continue;			cnt++;			if( cnt > 3 ) {				print("\n 改封包!待机宠超过数量!!:%s ", CHAR_getChar( fd_charaindex, CHAR_CDKEY) );				//lssproto_SPET_send( fd, s_pet, FALSE);				break;			}						s_pet |= ( 1 << i );		}	}	CHAR_setWorkInt( fd_charaindex, CHAR_WORKSTANDBYPET, s_pet);    		lssproto_SPET_send( fd, s_pet, TRUE);}#endif/*------------------------------------------------------------ * 减变升啼卅升及  蜇六方午熬仃午匀凶 ------------------------------------------------------------*/void lssproto_AC_recv( int fd,int x, int y,int actionno ){    int fd_charaindex;    CHECKFDANDTIME;    fd_charaindex = CONNECT_getCharaindex( fd );    {//ttom avoid the warp at will       Char *ch;       ch = CHAR_getCharPointer( fd_charaindex);	   // CoolFish: +1 2001/11/05	   if (!ch)	return;       if((ch->data[CHAR_X]!=x)||(ch->data[CHAR_Y]!=y)){           return;       }    }        CHAR_setMyPosition( fd_charaindex, x,y,TRUE);	CHAR_sendAction( fd_charaindex, actionno, FALSE);	return;}/*------------------------------------------------------------ *   芊毛银匀凶[ ------------------------------------------------------------*/void lssproto_MU_recv( int fd,int x,int y,int array,int toindex ){    int		to_charaindex = -1, 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<MU>--Error!!!!");           //print("\n<MU>origion x=%d,y=%d",ix,iy);           //print("\n<MU>modify  X=%d,Y=%d",x,y);           x=ix;           y=iy;       }   }                                                                                   	CHAR_setMyPosition( fd_charaindex, x,y,TRUE);	/* toindex 毛平乓仿弁正□犯□正及index卞  晶允月 */	to_charaindex = Callfromcli_Util_getTargetCharaindex( fd, toindex);	MAGIC_Use( fd_charaindex, array, to_charaindex);}void lssproto_JB_recv( int fd,int x,int y ){	int charaindex, floor;    CHECKFDANDTIME;    charaindex = CONNECT_getCharaindex( fd );    {       int ix,iy;       ix=CHAR_getInt(charaindex, CHAR_X);       iy=CHAR_getInt(charaindex, CHAR_Y);       if( (ix!=x)||(iy!=y)){            x=ix;            y=iy;       }   }                                                                                   	CHAR_setMyPosition( charaindex, x,y,TRUE);	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return;	floor = CHAR_getInt( charaindex, CHAR_FLOOR );	if( floor == 1007	|| floor == 2007	|| floor == 3007	|| floor == 4007	|| floor == 130	){		BATTLE_WatchTry( charaindex );	}else{		BATTLE_RescueTry( charaindex );	}}void lssproto_KN_recv( int fd,int havepetindex,char* data ){    int fd_charaindex;    CHECKFD;    fd_charaindex = CONNECT_getCharaindex( fd );        // Robin 04/26 debug    if( strlen(data) > 16 )	return;        // CoolFish: Prevent Trade Cheat 2001/4/18    if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE)	    	return;	if( checkStringErr(data) )	return;		CHAR_inputUserPetName( fd_charaindex, havepetindex, data);	}/*------------------------------------------------------------ * 它奴件玉它毛蓟  仄凶[ ------------------------------------------------------------*/void lssproto_WN_recv( int fd,int x,int y,int seqno,                       int objindex,int select, char* data ){    int fd_charaindex;    CHECKFDANDTIME;        if( checkStringErr(data) )	return;#ifdef _NO_WARP		{  		if(seqno!=CONNECT_get_seqno(fd)){			return;		}		if( !( (select)&(CONNECT_get_selectbutton(fd)) ) && select ){			if( CONNECT_get_seqno(fd)==CHAR_WINDOWTYPE_QUIZ_MAIN ){							}else if( (  (CONNECT_get_seqno(fd)==CHAR_WINDOWTYPE_SCHEDULEMAN_START)				     || (CONNECT_get_seqno(fd)==CHAR_WINDOWTYPE_SCHEDULEMAN_SELECT) )					 && (select==1) ){			}else{				return ;			}		}        } // shan End    #endif    fd_charaindex = CONNECT_getCharaindex( fd );    // CoolFish: Prevent Trade Cheat 2001/4/18    if (CHAR_getWorkInt(fd_charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE)	{		return;	}    // Robin    if( checkStringErr(data) )	return;#ifdef _ANGEL_SUMMON	if( seqno == CHAR_WINDOWTYPE_ANGEL_ASK )	{		print("\n CHAR_WINDOWTYPE_ANGEL_ASK objindex:%d select:%d data:%s ",			objindex, select, data );				if(select==WINDOW_BUTTONTYPE_YES ) {			if( AngelCreate( fd_charaindex) == FALSE ) {				sendAngelCleanToCli( fd );			}		}		else if(select==WINDOW_BUTTONTYPE_NO ) {			int mindex;			char nameinfo[64];			mindex = checkIfAngel( fd_charaindex);			print(" ====不接受召唤任务==== ");			getMissionNameInfo( fd_charaindex, nameinfo);			saacproto_ACMissionTable_send( acfd, mindex, 3, nameinfo, "");			lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK, -1, -1,			"真是遗憾。\n少了你的帮助,看来魔族会继续危害大陆的人民了。" );			//CHAR_talkToCli( fd_charaindex, -1, "天之声:真是可惜,这可是难得的机会呀。", CHAR_COLORYELLOW);						sendAngelCleanToCli( fd );		}	}#endif#ifdef _CONTRACT	if( seqno == CHAR_WINDOWTYPE_CONTRACT_ANSWER ) {		ITEM_contractSign( fd, objindex, select);	}#endif    {//ttom avoid the warp at will       Char *ch;       ch = CHAR_getCharPointer( fd_charaindex);	   // CoolFish: +1 2001/11/05	   if (!ch)	return;       if((ch->data[CHAR_X]!=x)||(ch->data[CHAR_Y]!=y)){           // Robin 04/20 test           return;           x=ch->data[CHAR_X];           y=ch->data[CHAR_Y];       }     //ttom avoid WN at will     if(seqno==CHAR_WINDOWTYPE_NPCENEMY_START){//      Char *ch;        OBJECT  object;        int ix,iy,ifloor,i,j;        int     whichtype= -1;        int enemy=0;        int enemy_index;        if(!CHECKOBJECT(objindex)){            goto  FIRST;        }        enemy_index=OBJECT_getIndex(objindex);//ttom 11/15/2000        ix    =ch->data[CHAR_X];        iy    =ch->data[CHAR_Y];        ifloor=ch->data[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 objindex = GET_OBJINDEX(object);                  switch( OBJECT_getType(objindex)  ){                          case OBJTYPE_CHARA:                               whichtype =  CHAR_getInt( OBJECT_getIndex( objindex), CHAR_WHICHTYPE);                               if( whichtype == CHAR_TYPENPCENEMY){                                   int i_ene_temp;                                   i_ene_temp=OBJECT_getIndex( objindex);                                   //print("\n<WN>--enetemp=%d",i_ene_temp);                                   if(i_ene_temp== enemy_index){                                       goto START_WN;                                   }else{                                       enemy=0;                                   }                               }                               break;                          case OBJTYPE_ITEM:                               break;                          case OBJTYPE_GOLD:                               break;                          default:                           break;                  }             }            }        }        if(enemy==0){FIRST:		           lssproto_EN_send( fd, FALSE, 0 );           CHAR_talkToCli(fd_charaindex, -1, "事件错误。", CHAR_COLORYELLOW);           goto END_WN;        }     }     }     //ttom endSTART_WN:        CHAR_setMyPosition( fd_charaindex, x,y,TRUE);	if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE) == BATTLE_CHARMODE_NONE){	         if(seqno==CHAR_WINDOWTYPE_WINDOWWARPMAN_MAIN){		         if(!CONNECT_get_first_warp(fd)){		             select=1;	        	 }		     }	         CHAR_processWindow( fd_charaindex, seqno,							select, objindex, makeStringFromEscaped(data));#ifdef _NO_WARP			 if (CONNECT_get_seqno(fd)==CHAR_WINDOWTYPE_WINDOWWARPMAN_MAIN)             {				 CONNECT_set_seqno(fd,-1);				 CONNECT_set_selectbutton(fd,1);			 }#endif	}//ttom+1END_WN:	return;          //CONNECT_set_pass(fd,TRUE);//ttom}/*------------------------------------------------------------ * 云踞仃乒□玉  凳毛熬仃凶 ------------------------------------------------------------*/void lssproto_HL_recv( int fd,int flg ){	char	msgbuf[128];	int		i, fd_charaindex;    CHECKFD;    fd_charaindex = CONNECT_getCharaindex( fd );	/* 爵    元扎卅井匀凶日  骰允月 */	if( CHAR_getWorkInt( fd_charaindex, CHAR_WORKBATTLEMODE)		== BATTLE_CHARMODE_NONE)	{		return;	}#ifdef _LOCKHELP_OK				// (不可开) Syu ADD 锁定不可加入战斗

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -