📄 configfile.c
字号:
break; case DOUBLE: *(double*)to = (double)value; break; }}/*------------------------------------------------------------ * 涩烂白央奶伙毛 戈 * 娄醒 * filename 白央奶伙 * 忒曰袄 * TRUE(1) 岳 * FALSE(0) 撩 -> 白央奶伙及左□皿件卞撩 仄凶 ------------------------------------------------------------*/BOOL readconfigfile( char* filename ){ FILE* f=NULL; char linebuf[256]; /* 域垫 心 戈田永白央 */ int linenum=0; /* 垫醒毛醒尹月 */ char realopenfilename[256]; /* 端卞open 允月白央奶伙 */ char hostname[128]; /* 石旦玄 毛菲户月 */ if( gethostname( hostname, sizeof(hostname) ) != -1 ){ char* initdot; initdot = index( hostname, '.' ); if( initdot != NULL ) *initdot = '\0'; snprintf( realopenfilename, sizeof(realopenfilename), "%s.%s" , filename, hostname); /* 白央奶伙及左□皿件 */ f=fopen( realopenfilename, "r" ); if( f == NULL ) print( "Can't open %s. use %s instead\n", realopenfilename, filename ); } if( f == NULL ){ f=fopen( filename , "r" ); /* 白央奶伙及左□皿件 */ if( f == NULL ){ print( "Can't open %s\n", filename ); return FALSE; } } /* 域垫勿勾 心 戈 */ while( fgets( linebuf , sizeof( linebuf ), f ) ){ char firstToken[256]; /*1 及 侬 */ int i; /*伙□皿 醒*/ int ret; /*伉正□件戊□玉*/ linenum ++; deleteWhiteSpace(linebuf); /* remove whitespace */ if( linebuf[0] == '#' )continue; /* comment */ if( linebuf[0] == '\n' )continue; /* none */ chomp( linebuf ); /* remove tail newline */ /* delim "=" 匹 赓(1)及玄□弁件毛 月*/ ret = getStringFromIndexWithDelim( linebuf , "=", 1, firstToken, sizeof(firstToken) ); if( ret == FALSE ){ print( "Find error at %s in line %d. Ignore\n", filename , linenum); continue; } /* readconf 及扔奶术匹伙□皿 */ for( i = 0 ; i < arraysizeof( readconf ) ; i ++ ){ if( strcmp( readconf[i].name ,firstToken ) == 0 ){ /* match */ char secondToken[256]; /*2 及 侬 */ /* delim "=" 匹2 及玄□弁件毛 月*/ ret = getStringFromIndexWithDelim( linebuf , "=" , 2 , secondToken , sizeof(secondToken) ); /* NULL 侬井升丹井毛譬屯月 */ if( ret == FALSE ){ print( "Find error at %s in line %d. Ignore", filename , linenum); break; } /*NULL分匀凶日医 仄卅中*/ if( readconf[i].charvalue != NULL ) strcpysafe( readconf[i].charvalue ,readconf[i].charsize, secondToken); /*NULL分匀凶日医 仄卅中*/ if( readconf[i].value != NULL ) { if( strcmp( "ON" ,secondToken ) == 0 ) { /*ON分匀凶日1毛 木月*/ substitutePointerFromType( readconf[i].value, readconf[i].valuetype, 1.0); }else if( strcmp( "OFF" ,secondToken ) == 0 ) { /*OFF分匀凶日1毛 木月*/ substitutePointerFromType( readconf[i].value, readconf[i].valuetype, 1.0); }else { strtolchecknum(secondToken, (int*)readconf[i].value, 10, readconf[i].valuetype); } } break; } } } fclose( f ); lastConfig(); return TRUE;}//ttom add this becaus the second had this function /*------------------------------------------------------------ * 巨件戊□玉平□毛涩烂允月 * 娄醒 * 卅仄 * 忒曰袄 * unsigned int 平□毛忒允------------------------------------------------------------*/unsigned int setEncodeKey( void ){ JENCODE_KEY = config.encodekey; return JENCODE_KEY;}/*------------------------------------------------------------* 失市它件玄扔□田□卞踏五 戈田永白央及扔奶术毛涩烂允月* 娄醒* 卅仄* 忒曰袄* unsigned int 平□毛忒允------------------------------------------------------------*/unsigned int setAcWBSize( void ){ AC_WBSIZE = config.acwbsize; return AC_WBSIZE;}unsigned int getAcwriteSize( void ){ return config.acwritesize;}unsigned int getErrUserDownFlg( void ){ return config.ErrUserDownFlg;} //tom end#ifdef _M_SERVERchar* getmservername(void){ return config.msname;}void setmservername( char *msname){ sprintf( config.msname, "%s", msname);}unsigned int getmserverport(void){ return config.msport;}void setmserverport( int port){ config.msport = port;}#endif#ifdef _NPCSERVER_NEWchar *getnpcserveraddr(void){ return config.nsaddress;}unsigned int getnpcserverport(void){ return config.nsport;}void NS_setAddressAndPort( char *address, int nport){ sprintf( config.nsaddress, "%s", address); config.nsport = nport;}#endif#ifdef _MUSEUMint getMuseum( void ){ return config.museum;}#endif#ifdef _DEL_DROP_GOLDunsigned int getGolddeletetime( void ){ if( config.Golddeletetime > 0 ) return config.Golddeletetime; else return config.Itemdeletetime;}void setIGolddeletetime( unsigned int interval ){ config.Golddeletetime = interval;}#endif#ifdef _NEW_PLAYER_CFint getNewplayertrans( void ){ if(config.newplayertrans > 7) return 7; else if(config.newplayertrans >= 0) return config.newplayertrans; else return 0;}int getNewplayerlv( void ){ if(config.newplayerlv > 160) return 160; else if(config.newplayerlv >0) return config.newplayerlv; else return 0;}int getNewplayerpetlv( void ){ if(config.newplayerpetlv > 160) return 160; else if(config.newplayerpetlv > 0) return config.newplayerpetlv; else return 0;}int getNewplayergivepet( unsigned int index ){ if(config.newplayergivepet[index] > 0 ) return config.newplayergivepet[index]; else return -1;}int getNewplayergiveitem( unsigned int index ){ if(config.newplayergiveitem[index] > 0 ) return config.newplayergiveitem[index]; else return -1;}void setNewplayergivepet( unsigned int index ,unsigned int interval){ config.newplayergivepet[index] = interval;}unsigned int getNewplayergivegold( void ){ if(config.newplayergivegold > 1000000) return 1000000; else if(config.newplayergivegold >= 0) return config.newplayergivegold; else return 0;}#endif#ifdef _UNLAW_WARP_FLOORint getUnlawwarpfloor( unsigned int index ){ if(config.unlawwarpfloor[index] > 0 ) return config.unlawwarpfloor[index]; else return -1;}#endif#ifdef _ANGEL_SUMMONextern int mission_num;BOOL LoadMissionList( ){ FILE* fp; int i = 0; mission_num = 0; fp = fopen("./data/mission.txt", "r"); if (fp == NULL) { print("任务文件打开错误\n"); return FALSE; } memset( missionlist, 0, sizeof(missionlist)); while(1){ char line[1024], level[64]; char token[1024]; int mindex; if (fgets(line, sizeof(line), fp) == NULL) break; print("\n %s ", line); chop(line); // 以#为注解******* if( line[0] == '#' ) continue; for( i=0; i<strlen(line); i++ ){ if( line[i] == '#' ){ line[i] = '\0'; break; } } //************************************* //格式 #任务编号,必要等级,任务说明,奖品ID,限制时间(小时) getStringFromIndexWithDelim(line, ",", 1, token, sizeof(token)); if (strcmp(token, "") == 0) break; mindex = atoi( token); if( mindex <= 0 || mindex >= MAXMISSION) break; missionlist[mindex].id = mindex; getStringFromIndexWithDelim(line, ",", 2, token, sizeof(token)); if (strcmp(token, "") == 0) break; missionlist[mindex].level = atoi( token); getStringFromIndexWithDelim(line, ",", 3, token, sizeof(token)); if (strcmp(token, "") == 0) break; strcpy( missionlist[mindex].eventflag, token); getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token)); if (strcmp(token, "") == 0) break; strcpy( missionlist[mindex].detail, token); //getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token)); //if (strcmp(token, "") == 0) break; //strcpy( missionlist[mindex].bonus, token); getStringFromIndexWithDelim(line, ",", 5, token, sizeof(token)); if (strcmp(token, "") == 0) break; missionlist[mindex].limittime = atoi( token); /*print("\nMISSION[%d] lv:%d ef:%s detail:%s limit:%d ", mindex, missionlist[mindex].level, missionlist[mindex].eventflag, missionlist[mindex].detail, missionlist[mindex].limittime ); */ mission_num++; //if (mission_num > MAXMISSION) break; } fclose(fp); return TRUE;}BOOL LoadMissionCleanList( ){ // 格式... 使者,勇者,任务,奖赏 FILE* fp; int listindex =0; int i = 0; memset( missiontable, 0, sizeof(missiontable)); fp = fopen("./data/missionclean.txt", "r"); if (fp == NULL) { print("清除任务文件打开错误\n"); return FALSE; } while(1){ char line[1024], angelinfo[128], heroinfo[128]; char token[1024]; if (fgets(line, sizeof(line), fp) == NULL) break; print("\n %s ", line); chop(line); // 以#为注解******* if( line[0] == '#' ) continue; for( i=0; i<strlen(line); i++ ){ if( line[i] == '#' ){ line[i] = '\0'; break; } } getStringFromIndexWithDelim(line, ",", 1, token, sizeof(token)); if (strcmp(token, "") == 0) break; strcpy( missiontable[listindex].angelinfo, token); getStringFromIndexWithDelim(line, ",", 2, token, sizeof(token)); if (strcmp(token, "") == 0) break; strcpy( missiontable[listindex].heroinfo, token); getStringFromIndexWithDelim(line, ",", 3, token, sizeof(token)); if (strcmp(token, "") == 0) break; missiontable[listindex].mission = atoi( token); getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token)); //if (strcmp(token, "") == 0) break; missiontable[listindex].flag = atoi( token); getStringFromIndexWithDelim(line, ",", 5, token, sizeof(token)); if (strcmp(token, "") == 0) break; missiontable[listindex].time = atoi( token); print("\nMISSIONCLEAN[%d] %s %s %d %d %d", listindex, missiontable[listindex].angelinfo, missiontable[listindex].heroinfo, missiontable[listindex].mission, missiontable[listindex].flag, missiontable[listindex].time ); listindex++; if ( listindex >= MAXMISSIONTABLE) break; } fclose(fp); return TRUE;}#endif#ifdef _JOBDAILYextern DailyFileType dailyfile[MAXDAILYLIST];BOOL LoadJobdailyfile(void){ char line[20000]; char token[16384]; int listindex =0; int i; FILE* fp; fp = fopen("./data/jobdaily.txt", "r"); if (fp == NULL) { print("日常工作文件打开错误\n"); return FALSE; } memset( dailyfile, 0, sizeof(dailyfile)); while(1){ line[0]='\0'; if (fgets(line, sizeof(line), fp) == NULL) break; //print("\n %s ", line); chop(line); // #为注解 if(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -