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

📄 item_event.c.bak

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 BAK
📖 第 1 页 / 共 5 页
字号:
	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩  	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else	if( battlemode ){		ITEM_useStatusChange_Battle( charaindex, toindex, haveitemindex );	}else{	}}void ITEM_useStatusRecovery( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩  	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else	if( battlemode ){		ITEM_useStatusRecovery_Battle( charaindex, toindex, haveitemindex );	}else{	}}void ITEM_useMagicDef( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return;	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else	if( battlemode ){		ITEM_useMagicDef_Battle( charaindex, toindex, haveitemindex );	}else{	}}void ITEM_useParamChange( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ;	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else		if( battlemode ){			ITEM_useParamChange_Battle( charaindex, toindex, haveitemindex );		}}void ITEM_useFieldChange( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ;	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else		if( battlemode ){			ITEM_useFieldChange_Battle( charaindex, toindex, haveitemindex );		}}void ITEM_useAttReverse( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return;	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else	if( battlemode ){		ITEM_useAttReverse_Battle( charaindex, toindex, haveitemindex );	}else{	}}void ITEM_useMic( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return;	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else		if( battlemode ){		}else{			ITEM_useMic_Field( charaindex, toindex, haveitemindex );		}}void ITEM_useCaptureUp( int charaindex, int toindex, int haveitemindex){	int battlemode;	if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩  	battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );	if( battlemode == BATTLE_CHARMODE_INIT ){	}else	if( battlemode ){		ITEM_useCaptureUp_Battle( charaindex, toindex, haveitemindex );	}else{	}}#ifdef _PETSKILL_CANNEDFOODstatic void ITEM_usePetSkillCanned_PrintWindow( int charaindex, int flg){	int fd;	char	message[256], buf[2048];	if( !CHAR_CHECKINDEX( charaindex )) return;	fd = getfdFromCharaIndex( charaindex);	if( fd == - 1 ) return;	memset( message, 0, sizeof(message));	sprintf( message, "%d", flg);	lssproto_WN_send( fd, WINDOWS_MESSAGETYPE_PETSKILLSHOW, 					WINDOW_BUTTONTYPE_NONE,					ITEM_WINDOWTYPE_SELECTPETSKILL_SELECT,					-1,					makeEscapeString( message, buf, sizeof( buf)));}void ITEM_usePetSkillCanned_WindowResult( int charaindex, int seqno, int select, char * data){	int itemindex=-1, itemNo, petindex=-1, petNo;	int SkillNo, SkillID;	char buf1[256];	char *skillarg=NULL;	petNo = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM);	itemNo = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMINDEX);	itemindex = CHAR_getItemIndex( charaindex, itemNo);	if( !ITEM_CHECKINDEX( itemindex) )	return;	petindex = CHAR_getCharPet( charaindex, petNo);	if( !CHAR_CHECKINDEX(petindex) ) return;	SkillNo = atoi( data);	if( SkillNo < 0 || SkillNo >= CHAR_MAXPETSKILLHAVE ) return;	skillarg = ITEM_getChar( itemindex, ITEM_ARGUMENT);	SkillID = atoi( skillarg);#ifdef _CFREE_petskill	if( NPC_CHECKFREEPETSKILL( charaindex, petindex, SkillID) == FALSE ){		CHAR_talkToCli( charaindex, -1, "该宠物无法学习此项技能!", CHAR_COLORYELLOW);		return;	}#endif	CHAR_setPetSkill( petindex, SkillNo, SkillID);	memset( buf1, 0, sizeof(buf1));	snprintf( buf1, sizeof( buf1 ), "W%d", petNo);	CHAR_sendStatusString( charaindex, buf1 );	CHAR_sendStatusString( charaindex, "P");	{		int skillarray = PETSKILL_getPetskillArray( SkillID);		sprintf( buf1, "宠物%s学习%s,道具 %s消失了。",			CHAR_getUseName( petindex), PETSKILL_getChar( skillarray, PETSKILL_NAME),			ITEM_getChar( itemindex, ITEM_NAME) );	}	CHAR_talkToCli( charaindex, -1, buf1, CHAR_COLORYELLOW);	CHAR_setItemIndex( charaindex, itemNo ,-1);	CHAR_sendItemDataOne( charaindex, itemNo);	ITEM_endExistItemsOne( itemindex);}#endifstatic void ITEM_useRenameItem_PrintWindow( int charaindex, int page){	int fd;	int	pos = 0;	int i;	int btntype = WINDOW_BUTTONTYPE_CANCEL;	char	message[1024];	char	msgwk[1024];	char	buf[2048];	if( !CHAR_CHECKINDEX( charaindex )) return;	if( page < 0 || page > 3 ) {		print( "%s:%d err\n", __FILE__, __LINE__);		return;	}	fd = getfdFromCharaIndex( charaindex);	if( fd == - 1 ) return;		snprintf( message, sizeof( message),				"2\n   要变更那个项目的名称呢\n"				"                               Page:%d\n", page +1);		for( i = page *5; i < page *5 +5; i ++ ) {		int itemindex = CHAR_getItemIndex( charaindex, i);		BOOL	flg = FALSE;		while( 1 ) {			char *cdkey;			if( !ITEM_CHECKINDEX( itemindex)) break;			cdkey = ITEM_getChar( itemindex, ITEM_CDKEY);			if( !cdkey) {				print( "%s:%d err\n", __FILE__, __LINE__);				break;			}			if( ITEM_getInt( itemindex, ITEM_MERGEFLG) != 1) break;			if( ITEM_getInt( itemindex, ITEM_TYPE) == ITEM_DISH) break;			if( ITEM_getInt( itemindex, ITEM_CRUSHLEVEL) != 0 ) break;			if( strlen( cdkey) != 0 ) {				if( strcmp( cdkey, CHAR_getChar( charaindex, CHAR_CDKEY)) != 0 ) {					break;				}			}			flg = TRUE;			break;		}		if( flg ) {			char *nm = ITEM_getChar( itemindex, ITEM_SECRETNAME);			char wk[256];			if( pos +strlen( nm) +1 > sizeof( msgwk)) {				print( "buffer over error %s:%d\n", __FILE__, __LINE__);				break;			}			snprintf( wk, sizeof( wk), "%s\n", nm);			strncpy( &msgwk[pos],  wk, sizeof( msgwk) -pos -1);			pos += strlen( wk);		}		else {			if( pos +2 > sizeof( msgwk)) {				print( "buffer over error %s:%d\n", __FILE__, __LINE__);				break;			}			strncpy( &msgwk[pos], "\n", sizeof( msgwk) -pos -1 );			pos += 1;		}	}	strcat( message, msgwk);	switch( page){	  case 0:	  	btntype |= WINDOW_BUTTONTYPE_NEXT;	  	break;	  case 3:	  	btntype |= WINDOW_BUTTONTYPE_PREV;	  	break;	  case 1:	  case 2:	  	btntype |= WINDOW_BUTTONTYPE_PREV|WINDOW_BUTTONTYPE_NEXT;	  	break;	}	lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT, 					btntype,					CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1+page,					-1,					makeEscapeString( message, buf, sizeof(buf)));}void ITEM_useRenameItem( int charaindex, int toindex, int haveitemindex){	ITEM_useRenameItem_PrintWindow( charaindex, 0);	CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM, -1);	CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMINDEX, haveitemindex);/*	char buf[256];	int itemindex = CHAR_getItemIndex( charaindex, haveitemindex);	if( !ITEM_CHECKINDEX( itemindex) ) return;	sprintf( buf, "%s功能已被取消。", ITEM_getChar( itemindex, ITEM_NAME));	CHAR_talkToCli( charaindex, -1, "功能已被取消。", CHAR_COLORRED );	{		LogItem(			CHAR_getChar( charaindex, CHAR_NAME ),			CHAR_getChar( charaindex, CHAR_CDKEY ),			itemindex,			"魔术笔DEL",			CHAR_getInt( charaindex, CHAR_FLOOR),			CHAR_getInt( charaindex, CHAR_X ), 	      	CHAR_getInt( charaindex, CHAR_Y ),	        ITEM_getChar( itemindex, ITEM_UNIQUECODE),			ITEM_getChar( itemindex, ITEM_NAME),			ITEM_getInt( itemindex, ITEM_ID)		);	}	CHAR_setItemIndex( charaindex, haveitemindex, -1);	CHAR_sendItemDataOne( charaindex, haveitemindex);	ITEM_endExistItemsOne( itemindex );*/}void ITEM_useRenameItem_WindowResult( int charaindex, int seqno, int select, char * data){	int page = 0;	int fd;	if( select == WINDOW_BUTTONTYPE_CANCEL) return;	fd = getfdFromCharaIndex( charaindex);	if( fd == - 1 ) return;	if( seqno != CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME ) {		if( select == WINDOW_BUTTONTYPE_NEXT ) page = 1;		else if( select == WINDOW_BUTTONTYPE_PREV ) page = -1;		if( select == WINDOW_BUTTONTYPE_NEXT || select == WINDOW_BUTTONTYPE_PREV ) {			int winno = seqno - CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1;			winno += page;			if( winno < 0 ) winno = 0;			if( winno > 3 ) winno = 3;			ITEM_useRenameItem_PrintWindow( charaindex, winno);		}else {			char	message[1024];			char	buf[2048];			char	haveitemindex = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM);			int		itemindex;			if( haveitemindex == -1 ) {				haveitemindex = (seqno - CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1) * 5 + 								( atoi(data)-1);				CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM, haveitemindex);			}			itemindex = CHAR_getItemIndex( charaindex, haveitemindex);			snprintf( message, sizeof( message),							"%s 名字要更改\n"							"请输入姓名\n"							"全形13个字, 半形26个字",							ITEM_getChar( itemindex, ITEM_NAME));									lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT, 							WINDOW_BUTTONTYPE_OKCANCEL,							CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME,							-1,							makeEscapeString( message, buf, sizeof(buf)));					}	}	else {		BOOL	flg = FALSE;		char	message[1024];		char	buf[2048];		while( 1 ) {			char	*p;			if( strlen( data) > 26 || strlen( data) < 1) {				if( strlen( data) > 26 ) {					strcpy( message, "超过文字限制");				}else {					strcpy( message, "请输入一个文字以上");				}				break;			}            // WON ADD 修正魔术笔改名问题			flg = TRUE;			for( p = data; *p ; p ++) {				if( *p == ' '){					strcpy( message, "不可空白");					flg = FALSE;					break;				}				if( strncmp( p, " ",2) == 0 ) {					strcpy( message, "不可空白");					flg = FALSE;					break;				}				if( *p == '|'){					strcpy( message, "不可有特殊符号");					flg = FALSE;					break;				}			}				break;		}		if( !flg ) {			lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, 							WINDOW_BUTTONTYPE_OK,							CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME_ATTENTION,							-1,							makeEscapeString( message, buf, sizeof(buf)));		}		else {			char	haveitemindex = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM);			int		itemindex;			int		renameitemindex;			int		renameitemhaveindex;			int		remain;			char msgbuf[128];			itemindex = CHAR_getItemIndex( charaindex, haveitemindex);			if( !ITEM_CHECKINDEX( itemindex)) {				print( "%s %d err\n", __FILE__, __LINE__);				return;			}			ITEM_setChar( itemindex, ITEM_SECRETNAME, data);			ITEM_setChar( itemindex, ITEM_CDKEY, 						CHAR_getChar( charaindex, CHAR_CDKEY));			CHAR_sendItemDataOne( charaindex, haveitemindex);			snprintf( msgbuf, sizeof(msgbuf),"把 %s 命名成 %s ", 					ITEM_getChar( itemindex, ITEM_NAME), data);		    CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);

⌨️ 快捷键说明

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