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

📄 configfile.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
	{ "LOCKIP" ,config.lockip, sizeof( config.lockip),NULL,0},#endif};// Arminius 7.12 login announcechar announcetext[8192];void AnnounceToPlayer(int charaindex){  char *ptr,*qtr;    ptr=announcetext;  while ((qtr=strstr(ptr,"\n"))!=NULL) {    qtr[0]='\0';//    printf("ptr=%s\n",ptr);    CHAR_talkToCli(charaindex, -1, ptr, CHAR_COLORYELLOW);    qtr[0]='\n';    ptr=qtr+1;  }  CHAR_talkToCli(charaindex, -1, ptr, CHAR_COLORYELLOW);  }// Robin 0720void AnnounceToPlayerWN(int fd){	char buf[8192];	lssproto_WN_send( fd , WINDOW_MESSAGETYPE_LOGINMESSAGE,		WINDOW_BUTTONTYPE_OK,		-1, -1,		makeEscapeString( announcetext, buf, sizeof(buf))		);}void LoadAnnounce(void){    FILE *f;    memset(announcetext, 0, sizeof(announcetext));    if ((f=fopen("./announce.txt","r"))!=NULL) {      fread(announcetext, sizeof(announcetext), 1, f);      announcetext[sizeof(announcetext)-1]='\0';      fclose(f);    }}#ifdef _PET_TALKPROPTALK pettalktext[PETTALK_MAXID];void LoadPetTalk(void){	FILE *fp;	char fn[256];	char line[ 4096];	char talkmem[4096];	int maxid=0;	char buf1[256], buf2[256], buf3[256];	int talkNO=-1, mark=-1, i;	int len = sizeof( talkmem);		memset(talkmem, 0, sizeof(talkmem));	sprintf(fn, "%s/pettalk/pettalk.menu", getNpcdir());	for( i=0;i<PETTALK_MAXID;i++)	{		pettalktext[i].ID = -1;		strcpy( pettalktext[i].DATA, "\0");	}	print("\n装载宠物对话文件:%s...", fn);	fp = fopen( fn, "r");    if( fp != NULL ) {		while( fgets( line, sizeof( line), fp)) {			if( strlen( talkmem) != 0 ) {				if( talkmem[strlen( talkmem) -1] != '|' ) {					strcatsafe( talkmem, len, "|");						}			}			chompex( line);			strcatsafe( talkmem,len,  line);		}		fclose( fp);    }else	{		print("错误:找不到文件!");	}	talkNO=1;	while( getStringFromIndexWithDelim( talkmem,"END",talkNO, buf1, sizeof( buf1)) != FALSE	){		talkNO++;		if( NPC_Util_GetStrFromStrWithDelim( buf1, "PETTEMPNO", buf2, sizeof( buf2)) == NULL  )			continue;		mark=1;		strcpy( fn,"\0");		if( getStringFromIndexWithDelim( buf2,",", mark+1,buf3,sizeof( buf3)) != FALSE )	{			pettalktext[maxid].ID = atoi( buf3);			if( getStringFromIndexWithDelim( buf2,",", mark,buf3,sizeof( buf3)) != FALSE )	{				sprintf(fn, "%s/pettalk/%s", getNpcdir(), buf3);				//print("\n ...file:%s", fn);				fp = fopen( fn, "r");				if( fp != NULL )	{					char line[4096];					while( fgets( line, sizeof( line), fp ) ) {						if( strlen( pettalktext[maxid].DATA) != 0 ) {							if( pettalktext[maxid].DATA[strlen( pettalktext[maxid].DATA) -1] != '|' ) {								strcatsafe( pettalktext[maxid].DATA, sizeof( pettalktext[maxid].DATA), "|");							}						}						chompex( line);						strcatsafe( pettalktext[maxid].DATA, sizeof( pettalktext[maxid].DATA), line);					}					maxid++;					fclose( fp);				}else	{					print("错误:[%s] 找不到!", fn);					pettalktext[maxid].ID=-1;				}			}else	{				pettalktext[maxid].ID=-1;			}		}		print(".");		if( maxid >= PETTALK_MAXID )			break;	}	print("最大ID=%d...", maxid);	{		int haveid=0;		for( i=0;i<PETTALK_MAXID;i++)	{			if( pettalktext[i].ID >= 0 )	{				haveid++;			}		}		print("载入总数=%d", haveid);	}}#elsechar pettalktext[4096];void LoadPetTalk(void){  FILE *fp;  char fn[256];  char	line[ 4096];  int len = sizeof( pettalktext);    memset(pettalktext, 0, sizeof(pettalktext));  sprintf(fn, "%s/pettalk/pettalk.mem", getNpcdir());    fp = fopen( fn, "r");    if( fp != NULL ) {		print("\n\n 读取 pettalk.mem");		while( fgets( line, sizeof( line), fp)) {			if( strlen( pettalktext) != 0 ) {				if( pettalktext[strlen( pettalktext) -1] != '|' ) {					strcatsafe( pettalktext, len, "|");						}			}			chompex( line);			strcatsafe( pettalktext,len,  line);		}		fclose( fp);		print("\n %s", pettalktext);    }else	{		print("\n 不能找到 pettalk.mem");	}}#endif#ifdef _GAMBLE_BANKGAMBLEBANK_ITEMS GB_ITEMS[GAMBLEBANK_ITEMSMAX];void Load_GambleBankItems( void){	FILE *fp;	char filename[256];	char buf1[256];	char name[128];	int num,ID,type;	int i=0;	sprintf(filename, "./data/gambleitems.txt" );	print("\n加载赌博物品文件 %s ...", filename);	fp = fopen( filename, "r");    if( fp != NULL ) {		while( fgets( buf1, sizeof( buf1), fp) != NULL )	{			if( strstr( buf1, "#") != 0 ) continue;			sscanf( buf1,"%s %d %d %d", name, &ID, &num , &type);			strcpy( GB_ITEMS[i].name, name);			GB_ITEMS[i].Gnum = num;			GB_ITEMS[i].ItemId = ID;			GB_ITEMS[i].type = type;			i++;		}		print("最大ID: %d ", i);		fclose( fp);    }else	{		print("错误 找不到文件 %s", filename);	}}#endif#ifdef _CFREE_petskillPETSKILL_CODES Code_skill[PETSKILL_CODE];void Load_PetSkillCodes( void){	FILE *fp;	char filename[256];	char buf1[256];	char name[128];	char type[256];	int num,ID;	int i=0;	sprintf(filename, "./data/skillcode.txt" );	print("\n加载宠物技能编码文件:%s...", filename);	fp = fopen( filename, "r");    if( fp != NULL ) {		while( fgets( buf1, sizeof( buf1), fp) != NULL )	{			sscanf( buf1,"%s %d %d %s", name, &num, &ID, type);			strcpy( Code_skill[i].name, name);			Code_skill[i].TempNo = num;			Code_skill[i].PetId = ID;			strcpy( Code_skill[i].Code, type);			//print("\n %s|%d|%d|%s|", Code_skill[i].name, Code_skill[i].TempNo, 			//	Code_skill[i].PetId, Code_skill[i].Code);			i++;			if( i >= PETSKILL_CODE ) break;		}		fclose( fp);    }else	{		print("打不到文件 %s", filename);	}	print("完成\n");}#endif#ifdef _BLACK_MARKETBOOL LoadBMItem( char* filename){	FILE *fp;		int  i, j, k;	char line[512]="", cTmp[256]="";	char *ip=NULL, *gp=NULL;	    	for(i=0; i<BMIMAX; i++){				BMItem[i].iGraphicsNum      = 0;		BMItem[i].GCondition        = 0;		for(j=0; j<4; j++){					    BMItem[i].iCondition[j] = 0;			for(k=0; k<3; k++){							BMItem[i].iId[j][k] = 0;			}		}		strcpy( BMItem[i].iName, "");	}		for(i=0; i<12; i++) BMSellList[i] = -1;	fp = fopen( filename, "r");	if(fp==NULL){		print("\n故障!! 不能打开文件:%s ...\n", filename);		return FALSE;	}else{		while(fgets( line, sizeof(line), fp)!=NULL){						char cTmp1[256]="", cTmp2[256]="", cTmp3[256]="";			char iTmp1[128]="", iTmp2[128]="", iTmp3[128]="", iTmp4[128]="", iTmp5[128]="";			if(BMINum>=BMIMAX){				print("\n警告!! 物口数目超越范围(%d).", BMIMAX);				break;			}			sscanf( line, "%s %d %s %s %s %s %s", 				    BMItem[BMINum].iName,					&BMItem[BMINum].iGraphicsNum,				    iTmp1, iTmp2, iTmp3, iTmp4,	cTmp);			            for(i=0; i<3; i++){				if(getStringFromIndexWithDelim( iTmp1, ",", i+1, iTmp5, sizeof( iTmp5))!=FALSE)					BMItem[BMINum].iId[0][i] = atoi(iTmp5);				if(getStringFromIndexWithDelim( iTmp2, ",", i+1, iTmp5, sizeof( iTmp5))!=FALSE)					BMItem[BMINum].iId[1][i] = atoi(iTmp5);				if(getStringFromIndexWithDelim( iTmp3, ",", i+1, iTmp5, sizeof( iTmp5))!=FALSE)					BMItem[BMINum].iId[2][i] = atoi(iTmp5);				if(getStringFromIndexWithDelim( iTmp4, ",", i+1, iTmp5, sizeof( iTmp5))!=FALSE)					BMItem[BMINum].iId[3][i] = atoi(iTmp5);			}			ip = strstr( cTmp, "I");			gp = strstr( cTmp, "G");				if( ip && gp && gp>ip){				strncpy( cTmp1, ip+1, gp-ip-1);								for(i=0; i<4; i++)					if(getStringFromIndexWithDelim( cTmp1, ",", i+1, cTmp3, sizeof( cTmp3))!=FALSE)						BMItem[BMINum].iCondition[i] = atoi(cTmp3);							strcpy( cTmp2, gp+1);				BMItem[BMINum].GCondition = atoi(cTmp2);				}else if( ip && gp && gp<ip){				strcpy( cTmp1, ip+1);								for(i=0; i<4; i++)					if(getStringFromIndexWithDelim( cTmp1, ",", i+1, cTmp3, sizeof( cTmp3))!=FALSE)						BMItem[BMINum].iCondition[i] = atoi(cTmp3);								strncpy( cTmp2, gp+1, ip-gp-1);				BMItem[BMINum].GCondition = atoi(cTmp2);			}else if( gp && !ip){				strcpy( cTmp2, gp+1);				BMItem[BMINum].GCondition = atoi(cTmp2);			}else if( !gp && ip){				strcpy( cTmp1, ip+1);				for(i=0; i<4; i++)					if(getStringFromIndexWithDelim( cTmp1, ",", i+1, cTmp3, sizeof( cTmp3))!=FALSE)						BMItem[BMINum].iCondition[i] = atoi(cTmp3);			}else{				print("\n警告!! 这些不是物品和石币条件...");				continue;			}			BMINum++;		}	}	for(i=0; i<12; i++)	BMSellList[i] = RAND(0, BMINum-1);			fclose(fp);	return TRUE;}#endif#ifdef _GMRELOADBOOL LoadGMSet( char* filename ){	FILE* fp;	int i = 0, gm_num = 0;	fp = fopen(filename, "r");	if (fp == NULL)	{		print("无法打开文件\n");		return FALSE;	}	for (i = 0; i < GMMAXNUM; i++)	{		strcpy(gminfo[i].cdkey, "");		gminfo[i].level = 0;	}	while(1){		char	line[64], cdkey[64], level[64];		if (fgets(line, sizeof(line), fp) == NULL)	break;		chop(line);		//change 使gmset.txt可以增加注解*******		if( line[0] == '#' )			continue;		for( i=0; i<strlen(line); i++ ){            if( line[i] == '#' ){			    line[i] = '\0';		        break;			}		}		//*************************************		gm_num = gm_num + 1;		if (gm_num > GMMAXNUM)	break;		easyGetTokenFromString(line, 1, cdkey, sizeof(cdkey));		if (strcmp(cdkey, "") == 0)	break;		strncpy(gminfo[gm_num].cdkey, cdkey, sizeof(gminfo[gm_num].cdkey));		easyGetTokenFromString(line, 2, level, sizeof(level));		if (strcmp(level, "") == 0)	break;		gminfo[gm_num].level = atoi(level);//		print("\ncdkey:%s, level:%d", gminfo[gm_num].cdkey, gminfo[gm_num].level);	}	fclose(fp);	return TRUE;}#endif/*------------------------------------------------------------ * 皿夫弘仿丞  毛  月 * 娄醒 *  卅仄 * 忒曰袄 *  cahr* ------------------------------------------------------------*/char* getProgname( void ){    return config.progname;}/*------------------------------------------------------------ * configfilename 毛  月[ * 娄醒 *  卅仄 * 忒曰袄 *  char* ------------------------------------------------------------*/char* getConfigfilename( void ){    return config.configfilename;}/*------------------------------------------------------------ * configfilename 毛涩烂允月[ * 娄醒 *  newv    char*   蕙仄中袄 * 忒曰袄 *  卅仄 ------------------------------------------------------------*/void setConfigfilename( char* newv ){    strcpysafe( config.configfilename, sizeof( config.configfilename ),                newv );}/*------------------------------------------------------------ * 犯田永弘伊矛伙毛  月 * 娄醒 *  卅仄 * 忒曰袄 *  unsigned int ------------------------------------------------------------*/unsigned int getDebuglevel( void ){    return config.debuglevel;}/*------------------------------------------------------------ * 犯田永弘伊矛伙毛涩烂允月 * 娄醒 *  newv    int     蕙仄中袄 * 忒曰袄 *  unsigned int    樯及袄 ------------------------------------------------------------*/unsigned int setDebuglevel( unsigned int newv ){    int old;    old = config.debuglevel;    config.debuglevel = newv;    return old;}/*------------------------------------------------------------ * memoryunit 毛  月 * 娄醒 *  卅仄 * 忒曰袄 *  unsigned int ------------------------------------------------------------*/unsigned int getMemoryunit( void ){    return config.usememoryunit;}/*------------------------------------------------------------ * memoryunitnum 毛  月 * 娄醒 *  卅仄 * 忒曰袄 *  unsigned int ------------------------------------------------------------*/unsigned int getMemoryunitnum( void ){    return config.usememoryunitnum;}/*------------------------------------------------------------ * 失市它件玄扔□田及失玉伊旦毛  月 * 娄醒 *  卅仄 * 忒曰袄 *  char* ------------------------------------------------------------*/char*   getAccountservername( void ){    return config.asname;}/*------------------------------------------------------------ * 失市它件玄扔□田及禾□玄毛  月 * 娄醒

⌨️ 快捷键说明

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