📄 configfile.c
字号:
{ "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 + -