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

📄 chatmagic.c.bak

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 BAK
📖 第 1 页 / 共 5 页
字号:
	if( obj != 0 ){		CHAR_talkToCli( charaindex, -1, "有零件。",  CHAR_COLORWHITE);		return;	}	if( MAP_walkAbleFromPoint( ff, fx, fy, FALSE ) == FALSE ){		CHAR_talkToCli( charaindex, -1, "无法走了。",  CHAR_COLORWHITE);		return;	}	MAP_setObjData( ff, fx, fy, 3416, 100 );#if 1	{		char *stringdata;		RECT seekr , retr;		seekr.x = fx;		seekr.y = fy;		seekr.width = 1;		seekr.height = 1;		stringdata = MAP_getdataFromRECT(ff,&seekr,&retr);		if( stringdata ){			if( CHAR_getInt( charaindex , CHAR_WHICHTYPE )			== CHAR_TYPEPLAYER ){				int fd = getfdFromCharaIndex( charaindex );				lssproto_M_send(fd,ff,					retr.x,retr.y,					retr.x+retr.width,retr.y+retr.height,					stringdata );			}		} else {		}	}#endif#endif    return ;}void CHAR_CHAT_Fukuwa( int charaindex, char* message ){	int 	dir, ff, fx, fy, objindex, vs_index, vs_fd, stringlen;    OBJECT obj;	char szBuffer[2048];	stringlen = strlen( message );    if( message[0] == '[' && message[stringlen-1] == ']' ){		CHAR_talkToCli( charaindex, -1, "语言没有转换。",  CHAR_COLORWHITE);		return ;    }	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);	stringlen = strlen(  message  );	snprintf( szBuffer, sizeof( szBuffer ), "P|%s", message );    for( obj=MAP_getTopObj( ff, fx, fy ); obj; obj=NEXT_OBJECT(obj) ){        objindex = GET_OBJINDEX(obj);        if( OBJECT_getType(objindex) != OBJTYPE_CHARA )continue;		vs_index = OBJECT_getIndex(objindex);       	vs_fd = getfdFromCharaIndex( vs_index );		CHAR_Talk( vs_fd, vs_index,			szBuffer, CHAR_COLORWHITE, 3 );		break;	}}void CHAR_CHAT_DEBUG_superman( int charaindex, char* message ){#define		CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF		100000	int i;	char hp[15];	char cdkey[CDKEYLEN];	char token[255];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , hp, sizeof(hp));	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(charaindex,CHAR_SKILLUPPOINT, 32);		CHAR_Skillupsend(charaindex);		CHAR_setInt( charaindex , CHAR_HP, CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF);		CHAR_setInt( charaindex , CHAR_MP,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_MAXMP,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_STR,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_TOUGH,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_DEX , CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex,CHAR_LV, 200);			CHAR_complianceParameter( charaindex );		CHAR_sendStatusString( charaindex , "P");				sprintf( token, "[GM]%s把你为超人状态!", CHAR_getChar( charaindex, CHAR_NAME));		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s设置为超人状态!", CHAR_getChar( i, CHAR_NAME));		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt(charaindex,CHAR_SKILLUPPOINT, 32);		CHAR_Skillupsend(charaindex);		CHAR_setInt( charaindex , CHAR_HP, CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF);		CHAR_setInt( charaindex , CHAR_MP,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_MAXMP,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_STR,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_TOUGH,CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex , CHAR_DEX , CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF );		CHAR_setInt( charaindex,CHAR_LV, 200);			CHAR_complianceParameter( charaindex );		CHAR_sendStatusString( charaindex , "P");				CHAR_talkToCli( charaindex, -1,"设置超人状态!", CHAR_COLORYELLOW );	}#undef	CHAT_CHAT_DEBUG_SUPERMAN_PARAMDEF}void CHAR_CHAT_printcount( int charaindex, char* message ){	char	msgbuf[512];	snprintf( msgbuf,sizeof( msgbuf),			  "你说了 %d 次话,走了 %d 步路,死了 %d 次",			  CHAR_getInt( charaindex, CHAR_TALKCOUNT),			  CHAR_getInt( charaindex, CHAR_WALKCOUNT),			  CHAR_getInt( charaindex, CHAR_DEADCOUNT)			  );	CHAR_talkToCli( charaindex, -1, msgbuf,  CHAR_COLORWHITE);}void CHAR_CHAT_DEBUG_battlein( int charaindex, char* message ){	int fd = getfdFromCharaIndex( charaindex );	if( fd != -1) {		lssproto_EN_recv( fd,			CHAR_getInt( charaindex, CHAR_X),			CHAR_getInt( charaindex, CHAR_Y));	}}void CHAR_CHAT_DEBUG_battleout( int charaindex, char* message ){	BATTLE_WatchStop( charaindex );}void CHAR_CHAT_DEBUG_petmake( int charaindex, char* message ){	int	ret;	int	enemynum;	int	enemyid;	int	i,j;	int level=-1;	char buf[10];	char cdkey[CDKEYLEN];	char token[255];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , buf, sizeof(buf));	enemyid=atoi(buf);	easyGetTokenFromString( message , 2 , buf, sizeof(buf));	level=atoi(buf);	easyGetTokenFromString( message , 3 , cdkey, sizeof(cdkey));	if(strlen(cdkey)>0){		for(j=0;j<playernum;j++){			if(CHAR_CHECKINDEX(j) == FALSE) continue;			if(!strcmp( CHAR_getChar( j, CHAR_CDKEY), cdkey))			{				break;			}		}		if (j>=playernum)		{		 	CHAR_talkToCli( charaindex, -1, "此账号不在线~", CHAR_COLORYELLOW );			return;		}		enemynum = ENEMY_getEnemyNum();		for( i = 0; i < enemynum; i ++ ) {			if( ENEMY_getInt( i, ENEMY_ID) == enemyid) {				break;			}		}		if( i == enemynum )return;			ret = ENEMY_createPetFromEnemyIndex( j, i);		if( !CHAR_CHECKINDEX( ret))return;		snprintf( token,sizeof( token), "宠物制作成功\!",ret);		CHAR_talkToCli( charaindex, -1, token,  CHAR_COLORWHITE);		sprintf( token, "[GM]%s制作了只宠物给你!index[%d]", CHAR_getChar( charaindex, CHAR_NAME),ret);		CHAR_talkToCli( j, -1, token, CHAR_COLORYELLOW );		sprintf( token, "给玩家%s的宠物制作成功!index[%d]", CHAR_getChar( j, CHAR_NAME),ret);		CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW );		for( i = 0; i < CHAR_MAXPETHAVE; i ++ ){			if( CHAR_getCharPet( j, i ) == ret )break;		}		if( i == CHAR_MAXPETHAVE )i = 0;			if( CHAR_CHECKINDEX( ret ) == TRUE ){			CHAR_setMaxExpFromLevel( ret, CHAR_getInt( ret, CHAR_LV ));		}		if( level != -1 ){			if( level > 200 ) level = 200;			if( level < 0 ) level = 0;			level = level - CHAR_getInt( ret, CHAR_LV );			if( level > 0 ){				int k;				for( k = 1; k <= level; k ++ ){	//升级					CHAR_PetLevelUp( ret );					CHAR_PetAddVariableAi( ret, AI_FIX_PETLEVELUP );					CHAR_setInt( ret, CHAR_LV, CHAR_getInt( ret, CHAR_LV) +1 );				}			}		}			snprintf( token, sizeof( token ), "K%d", i );		CHAR_sendStatusString( j, token );		snprintf( token, sizeof( token ), "W%d", i );		CHAR_sendStatusString( j, token );	}else{		enemynum = ENEMY_getEnemyNum();		for( i = 0; i < enemynum; i ++ ) {			if( ENEMY_getInt( i, ENEMY_ID) == enemyid) {				break;			}		}		if( i == enemynum )return;			ret = ENEMY_createPetFromEnemyIndex(charaindex, i);		if( !CHAR_CHECKINDEX( ret))return;		snprintf( token,sizeof( token), "宠物制作成功\!index[%d]",ret);		CHAR_talkToCli( charaindex, -1, token,  CHAR_COLORWHITE);			for( i = 0; i < CHAR_MAXPETHAVE; i ++ ){			if( CHAR_getCharPet( charaindex, i ) == ret )break;		}		if( i == CHAR_MAXPETHAVE )i = 0;			if( CHAR_CHECKINDEX( ret ) == TRUE ){			CHAR_setMaxExpFromLevel( ret, CHAR_getInt( ret, CHAR_LV ));		}		if( level != -1 ){			if( level > 200 ) level = 200;			if( level < 0 ) level = 0;			level = level - CHAR_getInt( ret, CHAR_LV );				if( level > 0 ){				int k;				for( k = 1; k <= level; k ++ ){	//升级					CHAR_PetLevelUp( ret );					CHAR_PetAddVariableAi( ret, AI_FIX_PETLEVELUP );					CHAR_setInt( ret, CHAR_LV, CHAR_getInt( ret, CHAR_LV) +1 );				}			}		}			snprintf( token, sizeof( token ), "K%d", i );		CHAR_sendStatusString( charaindex, token );		snprintf( token, sizeof( token ), "W%d", i );		CHAR_sendStatusString( charaindex, token );	}}void CHAR_CHAT_DEBUG_deletepet( int charaindex, char* message ){	int i, pindex;	char category[12];  int playernum = CHAR_getPlayerMaxNum();  	for( i = 0; i < CHAR_MAXPETHAVE; i ++ ) {		pindex = CHAR_getCharPet( charaindex, i);		if( CHAR_CHECKINDEX( pindex)) {			CHAR_endCharOneArray( pindex );			CHAR_setCharPet( charaindex, i, -1);			snprintf( category, sizeof( category), "K%d",i);			CHAR_sendStatusString( charaindex, category );			snprintf( category, sizeof( category), "W%d",i);			CHAR_sendStatusString( charaindex, category );		}	}		CHAR_talkToCli( charaindex, -1, "清除身上所有宠物。",  CHAR_COLORWHITE);}#define MAXMESS_LISTNUM 8#define ALLRESET (MAXMESS_LISTNUM - 1)void CHAR_CHAT_DEBUG_reset( int charaindex, char* message ){	int i;	char mess[MAXMESS_LISTNUM][256]={ "enemy", "encount", "magic", "warppoint", "petskill", "pettalk", "npc", "all"};	for( i=0; i<MAXMESS_LISTNUM; i++){		if( !strcmp(  mess[i], message) )			break;	}	if( i >= MAXMESS_LISTNUM ){		CHAR_talkToCli( charaindex, -1, "指令错误",  CHAR_COLORRED);//CHAR_COLORYELLOW		return;	}	switch( i){	case ALLRESET:	case 0:		if( !ENEMYTEMP_reinitEnemy() || !ENEMY_reinitEnemy() ){			CHAR_talkToCli( charaindex, -1, "重新读取敌人基本资料失败。",  CHAR_COLORRED);			return;		}		if( i != ALLRESET ) break;	case 1:		if( !GROUP_reinitGroup() || !ENCOUNT_reinitEncount() ){			CHAR_talkToCli( charaindex, -1, "重新读取遭遇团队资料失败。",  CHAR_COLORRED);		}		if( i != ALLRESET ) break;	case 2:		if( !MAGIC_reinitMagic() || !ATTMAGIC_reinitMagic() ) {			CHAR_talkToCli( charaindex, -1, "重新读取咒术资料失败。",  CHAR_COLORRED);		}		if( i != ALLRESET ) break;	case 3:		MAPPOINT_resetMapWarpPoint( 1);		if( !MAPPOINT_loadMapWarpPoint() ){			CHAR_talkToCli( charaindex, -1, "重新读取跳跃点资料失败。",  CHAR_COLORRED);		}		if( i != ALLRESET ) break;	case 4:		if( !PETSKILL_reinitPetskill() ) {			CHAR_talkToCli( charaindex, -1, "重新读取宠物技能资料失败。",  CHAR_COLORRED);		}		if( i != ALLRESET ) break;	case 5:		LoadPetTalk();		if( i != ALLRESET ) break;		break;		case 6:			CHAR_talkToCli( charaindex, -1, "未开放", CHAR_COLORRED);			return;			if( i != ALLRESET ) break;			break;	}	CHAR_talkToCli( charaindex, -1, "重新读取游戏资料。",  CHAR_COLORYELLOW);}void CHAR_CHAT_DEBUG_enemyrestart( int charaindex, char* message ){	if( ENEMYTEMP_reinitEnemy()) {		CHAR_talkToCli( charaindex, -1, "再次读取敌人基本资料。",  CHAR_COLORWHITE);	}else {		CHAR_talkToCli( charaindex, -1, "再次读取敌人基本资料失败。",  CHAR_COLORWHITE);	}	if( ENEMY_reinitEnemy()) {		CHAR_talkToCli( charaindex, -1, "再次读取敌人资料。",  CHAR_COLORWHITE);	}else {		CHAR_talkToCli( charaindex, -1, "再次读取敌人基本资料失败。",  CHAR_COLORWHITE);	}	if( GROUP_reinitGroup()) {		CHAR_talkToCli( charaindex, -1, "再次读取团队资料。",  CHAR_COLORWHITE);	}else {		CHAR_talkToCli( charaindex, -1, "再次读取团队资料失败。",  CHAR_COLORWHITE);	}	if( ENCOUNT_reinitEncount()) {		CHAR_talkToCli( charaindex, -1, "再次读取遭遇资料。",  CHAR_COLORWHITE);	}	else {		CHAR_talkToCli( charaindex, -1, "再次读取遭遇资料失败。",  CHAR_COLORWHITE);	}	if( MAGIC_reinitMagic()) {		CHAR_talkToCli( charaindex, -1, "再次读取咒术资料。",  CHAR_COLORWHITE);	}	else {		CHAR_talkToCli( charaindex, -1, "再次读取咒术资料失败。",  CHAR_COLORWHITE);	}#ifdef __ATTACK_MAGIC  if( ATTMAGIC_reinitMagic() )    CHAR_talkToCli( charaindex , -1 , "再次读取咒术资料。" , CHAR_COLORWHITE );  else    CHAR_talkToCli( charaindex , -1 , "再次读取咒术资料失败。" , CHAR_COLORWHITE );#endif	if( PETSKILL_reinitPetskill()) {		CHAR_talkToCli( charaindex, -1, "再次读取宠物技能资料。",  CHAR_COLORWHITE);	}	else {		CHAR_talkToCli( charaindex, -1, "再次读取宠物技能资料失败。",  CHAR_COLORWHITE);	}		LoadPetTalk();	// Arminius 8.15 pet talk	CHAR_talkToCli( charaindex, -1, "再次读取宠物讲话资料。", CHAR_COLORWHITE);}void CHAR_CHAT_DEBUG_battlewatch( int charaindex, char* message ){	int fd = getfdFromCharaIndex( charaindex );	if( fd != -1) {		lssproto_LB_recv( fd,			CHAR_getInt( charaindex, CHAR_X),			CHAR_getInt( charaindex, CHAR_Y));

⌨️ 快捷键说明

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