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

📄 chatmagic.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "version.h"#include <stdio.h>#include <string.h>#include <ctype.h>#include <math.h>#include <malloc.h>#include <time.h>#include <stdlib.h>#include "common.h"#include "char.h"#include "util.h"#include "buf.h"#include "npcutil.h"#include "char_base.h"#include "object.h"#include "char_data.h"#include "handletime.h"#include "chatmagic.h"#include "configfile.h"#include "readmap.h"#include "map_deal.h"#include "lssproto_serv.h"#include "log.h"#include "battle.h"#include "pet.h"#include "enemy.h"#include "encount.h"#include "magic_base.h"#include "magic.h"#include "pet_skill.h"#include "pet_event.h"#include "item_gen.h"#include "npc_eventaction.h"#include "map_warppoint.h"#include "npc_manorsman.h"#include "net.h"#include "saacproto_cli.h"#include "npc_scheduleman.h"#include "trade.h"#include "npccreate.h"#include "char_talk.h"// WON ADD 修正族长问题#include "family.h"#include "petmail.h"#ifdef _AUTO_PK#include "npc_autopk.h"#endif// WON ADD 重新读取ITEMSET.TXT#include "item.h"extern	tagRidePetTable	ridePetTable[296];extern int *pWorkAttackPower;extern time_t initTime;int *pWorkAttackPower = NULL;struct GMINFO gminfo[GMMAXNUM];void CHAR_CHAT_DEBUG_warp( int charindex , char *message ){	char token[100];	int fl,x,y;	easyGetTokenFromString( message , 1 , token, sizeof(token));	fl = atoi( token );	easyGetTokenFromString( message , 2 , token , sizeof(token));	x = atoi( token );	easyGetTokenFromString( message , 3 , token , sizeof(token));	y = atoi( token );	CHAR_warpToSpecificPoint(charindex, fl, x, y);}void CHAR_CHAT_DEBUG_hp( int charindex , char *message ){	CHAR_setInt( charindex , CHAR_HP,atoi( message ) );	CHAR_complianceParameter( charindex );	CHAR_send_P_StatusString( charindex , CHAR_P_STRING_HP);}void CHAR_CHAT_DEBUG_setmp( int charindex , char *message ){	int i;	char setmp[15];	char cdkey[CDKEYLEN];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , setmp, sizeof(setmp));	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_MAXMP, atoi( setmp ) );		CHAR_setInt( i , CHAR_MP, atoi( setmp ) );			CHAR_complianceParameter( i );		CHAR_send_P_StatusString( i , CHAR_P_STRING_MP);		sprintf( token, "[GM]%s把你的MP设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(setmp)/100);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的MP的设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(setmp)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_MAXMP, atoi( setmp ) );		CHAR_setInt( charindex , CHAR_MP, atoi( setmp ) );			CHAR_complianceParameter( charindex );		CHAR_send_P_StatusString( charindex , CHAR_P_STRING_MP);		sprintf( token, "MP设置为%d!",(int)atoi(setmp)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_mp( int charindex , char *message ){	int Mymp;	CHAR_setInt( charindex , CHAR_MP, atoi( message ) );	Mymp = CHAR_getWorkInt( charindex , CHAR_WORKMAXMP);	if( Mymp > CHAR_getWorkInt( charindex , CHAR_WORKMAXMP) )		CHAR_setInt( charindex , CHAR_MP, CHAR_getWorkInt( charindex , CHAR_WORKMAXMP));	CHAR_complianceParameter( charindex );	//CHAR_sendStatusString( charindex , "P");	CHAR_send_P_StatusString( charindex , CHAR_P_STRING_MP);}void CHAR_CHAT_DEBUG_str( int charindex , char *message ){	int i;	char str[15];	char cdkey[CDKEYLEN];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , str, sizeof(str));	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_STR,atoi( str ) );		CHAR_complianceParameter( i );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( i ,CHAR_P_STRING_STR|CHAR_P_STRING_MAXHP|CHAR_P_STRING_ATK);		sprintf( token, "[GM]%s把你的腕力设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(str)/100);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的腕力设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(str)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_STR,atoi( str ) );		CHAR_complianceParameter( charindex );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( charindex ,CHAR_P_STRING_STR|CHAR_P_STRING_MAXHP|CHAR_P_STRING_ATK);		sprintf( token, "腕力设置为%d!",(int)atoi(str)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_tgh( int charindex , char *message ){	int i;	char tgh[15];	char cdkey[CDKEYLEN];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , tgh, sizeof(tgh));	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_TOUGH,atoi( tgh ) );		CHAR_complianceParameter( i );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( i ,CHAR_P_STRING_TOUGH|CHAR_P_STRING_MAXHP|CHAR_P_STRING_DEF);		sprintf( token, "[GM]%s把你的耐力设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(tgh)/100);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的耐力设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(tgh)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_TOUGH,atoi( tgh ) );		CHAR_complianceParameter( charindex );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( charindex ,CHAR_P_STRING_TOUGH|CHAR_P_STRING_MAXHP|CHAR_P_STRING_DEF);		sprintf( token, "耐力设置为%d!",(int)atoi(tgh)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_dex( int charindex , char *message ){	int i;	char dex[15];	char cdkey[CDKEYLEN];	char token[128];  int playernum = CHAR_getPlayerMaxNum();  easyGetTokenFromString( message , 1 , dex, sizeof(dex));  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_DEX,atoi( dex ) );		CHAR_complianceParameter( i );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( i ,CHAR_P_STRING_DEX|CHAR_P_STRING_MAXHP|CHAR_P_STRING_ATK|CHAR_P_STRING_QUICK);		sprintf( token, "[GM]%s把你的敏捷设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(dex)/100);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的敏捷设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(dex)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_DEX,atoi( dex ) );		CHAR_complianceParameter( charindex );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( charindex ,CHAR_P_STRING_DEX|CHAR_P_STRING_MAXHP|CHAR_P_STRING_ATK|CHAR_P_STRING_QUICK);		sprintf( token, "敏捷设置为%d!",(int)atoi(dex)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_vital( int charindex , char *message ){	int i;	char vital[15];	char cdkey[CDKEYLEN];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , vital, sizeof(vital));	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_VITAL,atoi( vital ) );		CHAR_complianceParameter( i );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( i ,CHAR_P_STRING_VITAL|CHAR_P_STRING_MAXHP|CHAR_P_STRING_DEF);		sprintf( token, "[GM]%s把你的体力设置为%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(vital)/100);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的体力设置为%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(vital)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_VITAL,atoi( vital ) );		CHAR_complianceParameter( charindex );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( charindex ,CHAR_P_STRING_VITAL|CHAR_P_STRING_MAXHP|CHAR_P_STRING_DEF);		sprintf( token, "体力设置为%d!",(int)atoi(vital)/100);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_luck( int charindex , char *message ){	int i;	char buf[64];	int luck;	char cdkey[CDKEYLEN];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , buf, sizeof(buf));	luck=atoi(buf);	easyGetTokenFromString( message , 2 , cdkey, sizeof(cdkey));	if(luck<1)		luck=1;	else if(luck>5)		luck=5;	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_LUCK,luck);		CHAR_complianceParameter( i );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( i , CHAR_P_STRING_LUCK);		sprintf( token, "[GM]%s把你的运气设置为%d!", CHAR_getChar( charindex, CHAR_NAME),luck);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的运气设置为%d!", CHAR_getChar( i, CHAR_NAME),luck);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_LUCK,luck);		CHAR_complianceParameter( charindex );		//CHAR_sendStatusString( charindex , "P");		CHAR_send_P_StatusString( charindex , CHAR_P_STRING_LUCK);		sprintf( token, "运气设置为%d!",luck);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}void CHAR_CHAT_DEBUG_gold( int charindex , char *message ){	int i, MaxGold, money;	char cdkey[CDKEYLEN];	char buf[64];	char token[128];	int playernum = CHAR_getPlayerMaxNum();	easyGetTokenFromString( message , 1 , buf, sizeof(buf));	money = atoi( buf );	easyGetTokenFromString( message , 2 , cdkey, sizeof(cdkey));	MaxGold = CHAR_getMaxHaveGold( charindex);	if( money > MaxGold )		money = MaxGold;	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_GOLD , money );		CHAR_complianceParameter( i );		CHAR_send_P_StatusString( i , CHAR_P_STRING_GOLD);		sprintf( token, "[GM]%s把你的金钱设置为%d!", CHAR_getChar( charindex, CHAR_NAME),money);		CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW );		sprintf( token, "玩家%s的金钱设置为%d!", CHAR_getChar( i, CHAR_NAME),money);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}else{		CHAR_setInt( charindex , CHAR_GOLD , money );		CHAR_complianceParameter( charindex );		CHAR_send_P_StatusString( charindex , CHAR_P_STRING_GOLD);		sprintf( token, "金钱设置为%d!",money);		CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW );	}}#ifdef _TEST_DROPITEMSvoid CHAR_CHAT_DEBUG_dropmypet( int charindex, char *message ){	char buf[256];	int petID, x, y, floor, objindex, petindex, count=0;	int i, j, k, petarray, cLeve=1;	if( getStringFromIndexWithDelim( message, " ", 1, buf, sizeof( buf)) == FALSE ) return;	petID = atoi( buf);	if( getStringFromIndexWithDelim( message, " ", 2, buf, sizeof( buf)) != FALSE ){		cLeve = 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);	}	for( i=(x-3); i<(x+3); i++)	{		for( j=(y-3); j<(y+3); j++)	{			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;

⌨️ 快捷键说明

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