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

📄 chatmagic.c.bak

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 BAK
📖 第 1 页 / 共 5 页
字号:
				CHAR_getPetSkill( index, 4),				CHAR_getPetSkill( index, 5),				CHAR_getPetSkill( index, 6));	}		CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) {		snprintf( line, sizeof( line),					  "poolpetindex [%d][%d][%d][%d][%d] " ,				CHAR_getCharPoolPet( index, 0),				CHAR_getCharPoolPet( index, 1),				CHAR_getCharPoolPet( index, 2),				CHAR_getCharPoolPet( index, 3),				CHAR_getCharPoolPet( index, 4));		CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );		snprintf( line, sizeof( line),					  "poolpetindex [%d][%d][%d][%d][%d] " ,				CHAR_getCharPoolPet( index, 5),				CHAR_getCharPoolPet( index, 6),				CHAR_getCharPoolPet( index, 7),				CHAR_getCharPoolPet( index, 8),				CHAR_getCharPoolPet( index, 9));		CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	}	snprintf( line, sizeof( line),				  "levelup [%d], 累积 %d   赌场积分[%d]" ,			CHAR_getInt( index, CHAR_LEVELUPPOINT),			CHAR_getWorkInt( index, 	CHAR_WORKULTIMATE),			CHAR_getInt( index, CHAR_GAMBLENUM) );	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );}void CHAR_CHAT_DEBUG_sysinfo( int charindex , char *message ){	char msg[1024],name[256];	int i;	time_t new_t;	int dd,hh,mm,ss;	int items=0 , chars=0, golds=0, nouses=0;	int	players=0,pets=0,others=0;	int	whichtype= -1;	int objnum = OBJECT_getNum();	int itemnum = ITEM_getITEM_itemnum();	int itemuse =0;	makeEscapeString( getGameserverID(), name, sizeof( name));	sprintf( msg, "GSID:%s GSNAME:%s", getGameserverID(), name);	CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW);	for( i=0 ; i<objnum ; i++){		switch( OBJECT_getType( i )){		case OBJTYPE_NOUSE:			nouses++;			break;		case OBJTYPE_CHARA:			chars++;			whichtype =  CHAR_getInt( OBJECT_getIndex( i), CHAR_WHICHTYPE);			if( whichtype == CHAR_TYPEPLAYER) players++;			else if( whichtype == CHAR_TYPEPET) pets++;			else others ++;			break;		case OBJTYPE_ITEM:			items++;			break;		case OBJTYPE_GOLD:			golds++;			break;		default:			break;		}	}	for( i=0 ; i<itemnum ; i++)		if( ITEM_getITEM_use(i) )			itemuse++;	snprintf( msg , sizeof(msg),			  "Object Char:%d Item:%d Gold:%d Nouse:%d Item use:%d",			  chars,items,golds, nouses, itemuse );	CHAR_talkToCli(charindex,-1,msg,CHAR_COLORYELLOW );	snprintf( msg , sizeof(msg),			  "player : %d  pet : %d  others  : %d",			  players, pets, others );	CHAR_talkToCli(charindex,-1,msg,CHAR_COLORYELLOW );		time(&new_t);	new_t -= initTime;        dd=(int) new_t / 86400; new_t=new_t % 86400;        hh=(int) new_t / 3600;  new_t=new_t % 3600;        mm=(int) new_t / 60;    new_t=new_t % 60;        ss=(int) new_t;	snprintf( msg, sizeof( msg ) ,          	"start: %d days %d hours %d min %d sec。",dd,hh,mm,ss);        CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW );	{		showMem( msg);		CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW);	}	snprintf( msg, sizeof( msg ) ,			"NPC_createnum:%d。",NPC_createnum);	CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW );}void CHAR_CHAT_DEBUG_announce(int charindex , char *message ){    int     i;    int     playernum = CHAR_getPlayerMaxNum();    for( i = 0 ; i < playernum ; i++) {        if( CHAR_getCharUse(i) != FALSE ) {			CHAR_talkToCli( i, -1, message, CHAR_COLORWHITE);        }	}}void CHAR_CHAT_DEBUG_level( int charaindex, char* message ){	int i, level;	char buf[64];	char cdkey[CDKEYLEN];	char token[255];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , buf, sizeof(buf));	level=atoi(buf);	easyGetTokenFromString( message , 2 , cdkey, sizeof(cdkey));	if(strlen(cdkey)>0){		for(i=0;i<playernum;i++){			if(CHAR_CHECKINDEX(i) == FALSE) continue;			if(!strcmp( CHAR_getChar( i, CHAR_CDKEY), cdkey))			{				break;			}		}		if (i>=playernum)		{		 	CHAR_talkToCli( charaindex, -1, "此账号不在线~", CHAR_COLORYELLOW );			return;		}		CHAR_setInt(i,CHAR_LV, atoi( message ));		CHAR_send_P_StatusString( i , CHAR_P_STRING_LV);		sprintf( token, "[GM]%s把你的等级设置为%d!", CHAR_getChar( charaindex, CHAR_NAME),level);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的等级设置为%d!", CHAR_getChar( i, CHAR_NAME),level);		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt(charaindex,CHAR_LV, atoi( message ));		CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_LV);		sprintf( token, "等级设置为%d!",level);		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_exp( int charaindex, char* message ){	int i;	char exp[15];	char cdkey[CDKEYLEN];	char token[255];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , exp, sizeof(exp));	easyGetTokenFromString( message , 2 , cdkey, sizeof(cdkey));	if(strlen(cdkey)>0){		for(i=0;i<playernum;i++){			if(CHAR_CHECKINDEX(i) == FALSE) continue;			if(!strcmp( CHAR_getChar( i, CHAR_CDKEY), cdkey))			{				break;			}		}		if (i>=playernum)		{		 	CHAR_talkToCli( charaindex, -1, "此账号不在线~", CHAR_COLORYELLOW );			return;		}		CHAR_setMaxExp( i, atoi( exp ));		CHAR_send_P_StatusString( i , CHAR_P_STRING_EXP);		sprintf( token, "[GM]%s把你的经验设置为%d!", CHAR_getChar( charaindex, CHAR_NAME),(int)atoi(exp));		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的经验设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(exp));		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setMaxExp( charaindex, atoi( exp ));		CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_EXP);		sprintf( token, "经验设置为%d!",(int)atoi(exp)/100);		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_delitem( int charindex , char *message ){	int		itemid;	if( strcmp( message, "all") == 0 ) {		int		i;		for( i = CHAR_STARTITEMARRAY; i < CHAR_MAXITEMHAVE; i ++ ) {		    itemid = CHAR_getItemIndex(charindex, i);			if( itemid != -1 ) {				{					LogItem(						CHAR_getChar( charindex, CHAR_NAME ),						CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名称						itemid,#else			       		ITEM_getInt( itemid, ITEM_ID ),#endif						"DelItem(删除道具GM)",						CHAR_getInt( charindex,CHAR_FLOOR),						CHAR_getInt( charindex,CHAR_X ), 			    	  	CHAR_getInt( charindex,CHAR_Y ),                        ITEM_getChar( itemid, ITEM_UNIQUECODE),						ITEM_getChar( itemid, ITEM_NAME),						ITEM_getInt( itemid, ITEM_ID)					);				}				CHAR_DelItem( charindex, i);			}		}	}else {		int		equipplace;		equipplace = atoi( message);		if( equipplace < CHAR_STARTITEMARRAY || equipplace > CHAR_MAXITEMHAVE -1 ) {			CHAR_talkToCli( charindex, -1, "号码不正确。",  CHAR_COLORWHITE);			return;		}	    itemid = CHAR_getItemIndex(charindex, equipplace);		if( itemid == -1 ) return;		{			LogItem(				CHAR_getChar( charindex, CHAR_NAME ),				CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名称				itemid,#else	       		ITEM_getInt( itemid, ITEM_ID ),#endif				"DelItem(删除道具GM)",				CHAR_getInt( charindex,CHAR_FLOOR),				CHAR_getInt( charindex,CHAR_X ), 	      		CHAR_getInt( charindex,CHAR_Y ),                ITEM_getChar( itemid, ITEM_UNIQUECODE),				ITEM_getChar( itemid, ITEM_NAME),				ITEM_getInt( itemid, ITEM_ID)			);		}		CHAR_DelItem( charindex, equipplace);	}}#ifdef _CHAR_PROFESSION			// WON ADD 人物职业void CHAR_CHAT_DEBUG_addsk( int charaindex, char* message ){	CHAR_HaveSkill *pSkil;	int	skill, i, j, level=1;	char cdkey[CDKEYLEN];	char msg1[20], msg2[20];  int playernum = CHAR_getPlayerMaxNum();  	getStringFromIndexWithDelim( message, " ", 1, msg1, sizeof( msg1));	getStringFromIndexWithDelim( message, " ", 2, msg2, sizeof( msg2));	getStringFromIndexWithDelim( message, " ", 3, cdkey, sizeof( cdkey));	skill = atoi(msg1);	level = atoi(msg2);	if( level > 100 ){		CHAR_talkToCli( charaindex, -1, "等级不正确",  CHAR_COLORWHITE);		return;	}	if( level < 1 ) level = 1;  if(strlen(cdkey)>0){	for(j=0;j<playernum;i++)	{	  if(CHAR_CHECKINDEX(i) == FALSE) continue;	  if(!strcmp( CHAR_getChar( j, CHAR_CDKEY), cdkey))	  {	    break;	  }	}	  if (j>=playernum)	  {	     CHAR_talkToCli( charaindex, -1, "此账号不在线~", CHAR_COLORYELLOW );   	     return;	  }	   	for( i = 0; i < CHAR_SKILLMAXHAVE; i ++ ){		int skill_id = -1;		pSkil = CHAR_getCharHaveSkill( j, i );		skill_id = SKILL_getInt( &pSkil->skill, SKILL_IDENTITY);		if( skill == skill_id && skill_id != -1 ){			CHAR_talkToCli(j,-1, "你已经学习过此技能", CHAR_COLORYELLOW);			CHAR_talkToCli(charaindex,-1, "玩家已经学习过此技能", CHAR_COLORYELLOW);			return;		}		if( pSkil == NULL )		continue;		if( pSkil->use != 0 )	continue;		break;	}	if( i >= CHAR_SKILLMAXHAVE ){		CHAR_talkToCli(j,-1, "技能数量已达上限", CHAR_COLORYELLOW);		CHAR_talkToCli(charaindex,-1, "玩家技能数量已达上限", CHAR_COLORYELLOW);		return;	}else{		level *= 100;		SKILL_makeSkillData( &pSkil->skill, skill, level);		pSkil->use = TRUE;	}	CHAR_sendStatusString( j , "S");	return;}	else{			for( i = 0; i < CHAR_SKILLMAXHAVE; i ++ ){		int skill_id = -1;		pSkil = CHAR_getCharHaveSkill( charaindex, i );		skill_id = SKILL_getInt( &pSkil->skill, SKILL_IDENTITY);		if( skill == skill_id && skill_id != -1 ){			CHAR_talkToCli(charaindex,-1, "你已经学习过此技能", CHAR_COLORYELLOW);			return;		}		if( pSkil == NULL )		continue;		if( pSkil->use != 0 )	continue;		break;	}	if( i >= CHAR_SKILLMAXHAVE ){		CHAR_talkToCli(charaindex,-1, "技能数量已达上限", CHAR_COLORYELLOW);		return;	}else{		level *= 100;		SKILL_makeSkillData( &pSkil->skill, skill, level);		pSkil->use = TRUE;	}	CHAR_sendStatusString( charaindex , "S");	return;}}void CHAR_CHAT_DEBUG_delsk( int charaindex, char* message ){	int	i;	CHAR_HaveSkill *pSkil;		if( strcmp( message, "all" ) == 0 ){//		CHAR_talkToCli( charaindex, -1, "清除所有技能",  CHAR_COLORWHITE);		for( i = CHAR_SKILLMAXHAVE-1; i >= 0; i -- ){			pSkil = CHAR_getCharHaveSkill( charaindex, i );			if( pSkil == NULL )continue;			if( pSkil->use == 0 )continue;						SKILL_makeSkillData( &pSkil->skill, 0, 0 );			pSkil->use = 0;		}	}	for( i = CHAR_SKILLMAXHAVE-1; i >= 0; i -- ){		pSkil = CHAR_getCharHaveSkill( charaindex, i );		if( pSkil == NULL )continue;		if( pSkil->use == 0 )continue;		print( "SKILUSE %d\n", pSkil->use );		break;	}	if( i < 0 ){//		CHAR_talkToCli( charaindex, -1, "已无法再削减了。",  CHAR_COLORWHITE);		;;	}else{		SKILL_makeSkillData( &pSkil->skill, 0, 0 );		pSkil->use = 0;	}	CHAR_sendStatusString( charaindex , "S");}#endifvoid CHAR_CHAT_Kusabana( int charaindex, char* message ){	int 	dir, ff, fx, fy;    int		tile, obj;	ff = CHAR_getInt( charaindex, CHAR_FLOOR );	fx = CHAR_getInt( charaindex, CHAR_X );	fy = CHAR_getInt( charaindex, CHAR_Y );	dir = CHAR_getInt( charaindex, CHAR_DIR );	fx += CHAR_getDX(dir);	fy += CHAR_getDY(dir);	if( MAP_getTileAndObjData( ff, fx, fy, &tile, &obj)	== FALSE )return;#if 0	{	char szBuffer[256];		snprintf( szBuffer, sizeof( szBuffer ), "TILE = %d, OBJ = %d",			tile, obj );		CHAR_talkToCli( charaindex, -1, szBuffer,  CHAR_COLORWHITE);	}#else

⌨️ 快捷键说明

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