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

📄 chatmagic.c.bak

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 BAK
📖 第 1 页 / 共 5 页
字号:
			petarray = ENEMY_getEnemyArrayFromId( petID);			petindex = ENEMY_TEST_createPetIndex( petarray );			if( !CHAR_CHECKINDEX( petindex) ){				CHAR_talkToCli( charindex, -1, "err Can't create pet", CHAR_COLORYELLOW);				return;			}			CHAR_complianceParameter( petindex );			objindex = PET_dropPetAbsolute( petindex, floor, i, j, FALSE );			if( objindex == -1 ){				CHAR_talkToCli( charindex, -1, "err Can't Drop", CHAR_COLORYELLOW);				return;			}			for( k = 1; k < cLeve; k ++ ){	//升级				CHAR_PetLevelUp( petindex );				CHAR_PetAddVariableAi( petindex, AI_FIX_PETLEVELUP );				CHAR_setInt( petindex, CHAR_LV, CHAR_getInt( petindex, CHAR_LV) +1 );			}			CHAR_complianceParameter( petindex );			CHAR_setInt( petindex , CHAR_HP , CHAR_getWorkInt( petindex , CHAR_WORKMAXHP ) );			CHAR_setWorkInt( petindex, CHAR_WORKOBJINDEX, objindex );			CHAR_setInt( petindex, CHAR_FLOOR, floor);			CHAR_setInt( petindex, CHAR_X, i);			CHAR_setInt( petindex, CHAR_Y, j);			CHAR_sendCToArroundCharacter( objindex);			CHAR_setInt( petindex, CHAR_PUTPETTIME, NowTime.tv_sec);			CHAR_setChar( petindex, CHAR_OWNERCDKEY, "SYSTEM_WAYI" );			CHAR_setChar( petindex, CHAR_OWNERCHARANAME, "SYSTEM_WAYI" );			count++;		}	}	sprintf( buf, "总共丢掷 %d只宠物。", count);	CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW);}void CHAR_CHAT_DEBUG_dropmyitem( int charindex, char *message ){	char buf[256];	int itemID, SitemID, maxflg=0,emptyitemindexinchara, i, j;	int floor, x, y, objindex;	if( getStringFromIndexWithDelim( message, " ", 1, buf, sizeof( buf)) == FALSE ) return;	SitemID = atoi( buf);	if( getStringFromIndexWithDelim( message, " ", 2, buf, sizeof( buf)) != FALSE ){		maxflg = atoi( buf);	}	floor = CHAR_getInt( charindex, CHAR_FLOOR);	x = CHAR_getInt( charindex, CHAR_X);	y = CHAR_getInt( charindex, CHAR_Y);	if( getStringFromIndexWithDelim( message, " ", 3, buf, sizeof( buf)) != FALSE ){		floor = atoi( buf);	}	if( getStringFromIndexWithDelim( message, " ", 4, buf, sizeof( buf)) != FALSE ){		x = atoi( buf);	}	if( getStringFromIndexWithDelim( message, " ", 5, buf, sizeof( buf)) != FALSE ){		y = atoi( buf);	}	itemID = SitemID;		for( i=(x-3); i<(x+3); i++)	{		for( j=(y-3); j<(y+3); j++)	{			int ret = 0 , count=0;			int itemindex;			while( count < 10 ){				count++;				itemindex = ITEM_makeItemAndRegist( itemID );				if( maxflg == 1 ) itemID++;				if( !ITEM_CHECKINDEX( itemindex)) continue;				break;			}			emptyitemindexinchara = CHAR_findEmptyItemBox( charindex );			CHAR_setItemIndex( charindex, emptyitemindexinchara, itemindex );			ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1);			ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex);			CHAR_sendItemDataOne( charindex, emptyitemindexinchara);			//drop			if( (ret = CHAR_DropItemFXY( charindex, emptyitemindexinchara,				floor, i, j, &objindex )) != 0 ){				char buf[256];				sprintf( buf, "错误%d", ret);				CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW);			}			ITEM_setInt(itemindex,ITEM_PUTTIME,NowTime.tv_sec);			CHAR_sendWatchEvent(objindex,CHAR_ACTSTAND,NULL,0,TRUE);			CHAR_setItemIndex(charindex, emptyitemindexinchara ,-1);			CHAR_sendItemDataOne(charindex, emptyitemindexinchara);			CHAR_sendCToArroundCharacter(CHAR_getWorkInt( charindex, CHAR_WORKOBJINDEX));		}	}	{				char buf[256];				sprintf( buf, "最後ID%d", itemID-1);				CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW);	}}#endifvoid CHAR_CHAT_DEBUG_additem( int charindex , char *message ){  int emptyitemindexinchara, itemindex;	int	i;	int num = 0;	int itemid;	char buf[64];	char	msgbuf[128];  char cdkey[CDKEYLEN];	easyGetTokenFromString( message , 1 , buf, sizeof(buf));	itemid = atoi( buf);	easyGetTokenFromString( message , 2 , buf, sizeof(buf));	num = atoi( buf);	easyGetTokenFromString( message , 3 , cdkey, sizeof(cdkey));	if( num <= 0 ) num = 1;	if(strlen(cdkey)>0){		int playernum = CHAR_getPlayerMaxNum();		int j;		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( charindex, -1, "此账号不在线~", CHAR_COLORYELLOW );   	       return;	    }		for( i = 0; i < num; i ++ ) {		    emptyitemindexinchara = CHAR_findEmptyItemBox( j );				if( emptyitemindexinchara < 0 ){				sprintf( msgbuf, "玩家%s物品栏位不足。", CHAR_getChar( j, CHAR_NAME ));				CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW);				sprintf( msgbuf, "你的%s物品栏位不足。", CHAR_getChar( j, CHAR_NAME ));				CHAR_talkToCli( j, -1, msgbuf, CHAR_COLORYELLOW);				return;			}			itemindex = ITEM_makeItemAndRegist( itemid );			    if( itemindex != -1 ){		        CHAR_setItemIndex( j, emptyitemindexinchara, itemindex );		        ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1);		        ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex);		       	CHAR_sendItemDataOne( j, emptyitemindexinchara);				LogItem(					CHAR_getChar( charindex, CHAR_NAME ),					CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名称		itemindex,#else		atoi( message),#endif					"AddItem(制作道具GM)",			       	CHAR_getInt( charindex,CHAR_FLOOR),					CHAR_getInt( charindex,CHAR_X ),		 	      	CHAR_getInt( charindex,CHAR_Y ),	                ITEM_getChar( itemindex, ITEM_UNIQUECODE),						ITEM_getChar( itemindex, ITEM_NAME),						ITEM_getInt( itemindex, ITEM_ID)					);				snprintf( msgbuf, sizeof( msgbuf), "[GM]%s给你制作%s成功\。",											CHAR_getChar( charindex, CHAR_NAME ),ITEM_getChar( itemindex, ITEM_NAME));				CHAR_talkToCli( j, -1,msgbuf, CHAR_COLORYELLOW);				snprintf( msgbuf, sizeof( msgbuf), "成功为%s制作 %s\。",											CHAR_getChar( j, CHAR_NAME ),ITEM_getChar( itemindex, ITEM_NAME));				CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW);			}else{				sprintf( msgbuf, "制作道具失败。" );				CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW);			}		}	}else{		for( i = 0; i < num; i ++ ) {	    emptyitemindexinchara = CHAR_findEmptyItemBox( charindex );		if( emptyitemindexinchara < 0 ){			sprintf( msgbuf, "物品栏位不足。" );			CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW);			return;		}		itemindex = ITEM_makeItemAndRegist( itemid );	    if( itemindex != -1 ){	        CHAR_setItemIndex( charindex, emptyitemindexinchara, itemindex );	        ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1);	        ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex);	       	CHAR_sendItemDataOne( charindex, emptyitemindexinchara);			LogItem(				CHAR_getChar( charindex, CHAR_NAME ),				CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名称				itemindex,#else				atoi( message),#endif				"AddItem(制作道具GM)",		       	CHAR_getInt( charindex,CHAR_FLOOR),				CHAR_getInt( charindex,CHAR_X ),	 	      	CHAR_getInt( charindex,CHAR_Y ),                ITEM_getChar( itemindex, ITEM_UNIQUECODE),					ITEM_getChar( itemindex, ITEM_NAME),					ITEM_getInt( itemindex, ITEM_ID)			);			snprintf( msgbuf, sizeof( msgbuf), "制作%s成功\。",										ITEM_getChar( itemindex, ITEM_NAME));				CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW);			}else{				sprintf( msgbuf, "制作道具失败。" );				CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW);			}		}	}}void CHAR_CHAT_DEBUG_metamo( int charindex , char *message ){		char metamoid[7];    char cdkey[CDKEYLEN];		char token[255];    int i=0;    int playernum = CHAR_getPlayerMaxNum();    easyGetTokenFromString( message , 1 , metamoid, sizeof(metamoid));    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( charindex, -1, "此账号不在线~", CHAR_COLORYELLOW );   	        return;	     }			CHAR_setInt( i , CHAR_BASEIMAGENUMBER , atoi( metamoid ) );			CHAR_setInt( i , CHAR_BASEBASEIMAGENUMBER , atoi( metamoid ) );				CHAR_complianceParameter( i );			CHAR_sendCToArroundCharacter( CHAR_getWorkInt( i , CHAR_WORKOBJINDEX ));			CHAR_send_P_StatusString( i , CHAR_P_STRING_BASEBASEIMAGENUMBER);			sprintf( token, "[GM]%s把你的人物形象设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(metamoid));			CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );			sprintf( token, "玩家%s的人物形象设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(metamoid));			CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );    }else{			CHAR_setInt( charindex , CHAR_BASEIMAGENUMBER , atoi( metamoid ) );			CHAR_setInt( charindex , CHAR_BASEBASEIMAGENUMBER , atoi( metamoid ) );				CHAR_complianceParameter( charindex );			CHAR_sendCToArroundCharacter( CHAR_getWorkInt( charindex , CHAR_WORKOBJINDEX ));			CHAR_send_P_StatusString( charindex , CHAR_P_STRING_BASEBASEIMAGENUMBER);			sprintf( token, "人物形象设置为%d!",(int)atoi(metamoid));			CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );		}}void CHAR_CHAT_DEBUG_info( int charindex , char *message ){	char line[256];	int		index;	if( strlen( message) != 0 ) {		index = atoi( message);	}	else {		index = charindex;	}	if( !CHAR_CHECKINDEX( index)) {		CHAR_talkToCli( charindex, -1 , "该index无法使用。" , CHAR_COLORWHITE );		return;	}	snprintf( line, sizeof( line),			  "name:%s i:%d B:%d BB:%d LV:%d EXP:%d MakeSeq:%d",			  CHAR_getChar( index, CHAR_NAME),			  charindex,			  CHAR_getInt( index, CHAR_BASEIMAGENUMBER ),			  CHAR_getInt( index, CHAR_BASEBASEIMAGENUMBER ),			  CHAR_getInt( index, CHAR_LV ),			  CHAR_getInt( index, CHAR_EXP ),			  CHAR_getCharMakeSequenceNumber( index));	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	snprintf( line, sizeof( line),			  "Gold:%d HP:%d MP/MHP:%d/%d" ,			  CHAR_getInt( index, CHAR_GOLD ),			  CHAR_getInt( index, CHAR_HP ),			  CHAR_getInt( index, CHAR_MP ),			  CHAR_getInt( index, CHAR_MAXMP ));	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	if( CHAR_getInt( index, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){		snprintf( line, sizeof(line),			  "体:%d 力:%d 丈:%d 早:%d 耐:%d 攻:%d 守:%d 敏:%d 忠修:%d 忠变:%.2f 编码:%s",			  CHAR_getInt( index, CHAR_VITAL )/100,			  CHAR_getInt( index, CHAR_STR )/100,			  CHAR_getInt( index, CHAR_TOUGH )/100,			  CHAR_getInt( index, CHAR_DEX )/100,			  CHAR_getWorkInt( index, CHAR_WORKFIXVITAL ),			  CHAR_getWorkInt( index, CHAR_WORKATTACKPOWER ),			  CHAR_getWorkInt( index, CHAR_WORKDEFENCEPOWER ),//CHAR_WORKFIXDEX			  CHAR_getWorkInt( index, CHAR_WORKQUICK ),			  CHAR_getInt( index, CHAR_MODAI ),			  CHAR_getInt( index, CHAR_VARIABLEAI ) * 0.01,			  			  CHAR_getChar( index, CHAR_UNIQUECODE) );	}else{		snprintf( line, sizeof(line),			  "体:%d 力:%d 丈:%d 早:%d 耐:%d 攻:%d 守:%d 魅:%d 运:%d",			  CHAR_getInt( index, CHAR_VITAL )/100,			  CHAR_getInt( index, CHAR_STR )/100,			  CHAR_getInt( index, CHAR_TOUGH )/100,			  CHAR_getInt( index, CHAR_DEX )/100,			  CHAR_getWorkInt( index, CHAR_WORKFIXVITAL ),			  CHAR_getWorkInt( index, CHAR_WORKATTACKPOWER ),			  CHAR_getWorkInt( index, CHAR_WORKDEFENCEPOWER ),			  CHAR_getWorkInt( index, CHAR_WORKFIXCHARM ),			  CHAR_getWorkInt( index, CHAR_WORKFIXLUCK ));	}	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	snprintf( line, sizeof(line),			  "土:%d 水:%d 火:%d 风:%d",			  CHAR_getWorkInt( index, CHAR_WORKFIXEARTHAT ),			  CHAR_getWorkInt( index, CHAR_WORKFIXWATERAT ),			  CHAR_getWorkInt( index, CHAR_WORKFIXFIREAT ),			  CHAR_getWorkInt( index, CHAR_WORKFIXWINDAT ));	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	snprintf( line, sizeof( line),			  "Sk Itm:%d ChV:%d Rad:%d" ,			  CHAR_MAXITEMHAVE,			  CHAR_getInt( index, CHAR_CHATVOLUME ),			  CHAR_getInt( index, CHAR_RADARSTRENGTH ) );	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	snprintf( line, sizeof( line),			  "Status 毒:%d 麻:%d 默:%d 石:%d 暗:%d 乱:%d" ,			  CHAR_getInt( index , CHAR_POISON ),			  CHAR_getInt( index , CHAR_PARALYSIS ),			  CHAR_getInt( index , CHAR_SLEEP ),			  CHAR_getInt( index , CHAR_STONE ),			  CHAR_getInt( index , CHAR_DRUNK ),			  CHAR_getInt( index , CHAR_CONFUSION ) );	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );#ifdef _PERSONAL_FAME	// Arminius: 家族个人声望	snprintf( line, sizeof( line),#ifdef _NEW_MANOR_LAW				"TitInd:%d FL:%d X:%d Y:%d DIR:%d FAME:%d MOMENTUM:%d" ,#else			  "TitInd:%d FL:%d X:%d Y:%d DIR:%d FAME:%d" ,#endif			  CHAR_getInt( index , CHAR_INDEXOFEQTITLE ),			  CHAR_getInt( index , CHAR_FLOOR ),			  CHAR_getInt( index , CHAR_X ),			  CHAR_getInt( index , CHAR_Y ),			  CHAR_getInt( index , CHAR_DIR ),			  CHAR_getInt( index , CHAR_FAME)#ifdef _NEW_MANOR_LAW				,CHAR_getInt( index , CHAR_MOMENTUM)#endif				);#else	snprintf( line, sizeof( line),				  "TitInd:%d FL:%d X:%d Y:%d DIR:%d" ,			  CHAR_getInt( index , CHAR_INDEXOFEQTITLE ),			  CHAR_getInt( index , CHAR_FLOOR ),			  CHAR_getInt( index , CHAR_X ),			  CHAR_getInt( index , CHAR_Y ),			  CHAR_getInt( index , CHAR_DIR ) );#endif	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	snprintf( line, sizeof( line),				  "walk:%d dead:%d ItemMergecnt:%d" ,			  CHAR_getInt( index , CHAR_WALKCOUNT ) ,			  CHAR_getInt( index , CHAR_DEADCOUNT ) ,			  CHAR_getInt( index, CHAR_MERGEITEMCOUNT)			  );	CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );	if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) {		snprintf( line, sizeof( line),					  "petindex [%d][%d][%d][%d][%d] " ,				CHAR_getCharPet( index, 0),				CHAR_getCharPet( index, 1),				CHAR_getCharPet( index, 2),				CHAR_getCharPet( index, 3),				CHAR_getCharPet( index, 4));	}	else {		snprintf( line, sizeof( line),					  "PetskillIndex [%d][%d][%d][%d][%d][%d][%d] " ,				CHAR_getPetSkill( index, 0),				CHAR_getPetSkill( index, 1),				CHAR_getPetSkill( index, 2),				CHAR_getPetSkill( index, 3),

⌨️ 快捷键说明

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