📄 init.c
字号:
#include "version.h"#include <unistd.h>#include <stdio.h>#include <strings.h>#include <unistd.h>#include "configfile.h"#include "util.h"#include "net.h"#include "msignal.h"#include "buf.h"#include "object.h"#include "char.h"#include "char_data.h"#include "item.h"#include "readmap.h"#include "function.h"#include "saacproto_cli.h"#include "lssproto_serv.h"#include "readnpc.h"#include "log.h"#include "handletime.h"#include "title.h"#include "encount.h"#include "enemy.h"#include "battle.h"#include "magic_base.h"#include "pet_skill.h"#include "item_gen.h"#include "petmail.h"#include "npc_quiz.h"#ifdef _M_SERVER#include "mclient.h"#endif#ifdef _NPCSERVER_NEW#include "npcserver.h"#endif#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能#include "profession_skill.h"#endif#ifdef _ITEM_QUITPARTY#include "init.h"//int itemquitparty_num = 0;//static DisappearItem *Disappear_Item;#endif#define MESSAGEFILE "hoge.txt"#define OPTIONSTRING "d:f:h"#define usage() print( "Usage: %s ["OPTIONSTRING"]\n", getProgname() );void printUsage( void ){ usage(); /*print( "Usage: %s ["OPTIONSTRING"]\n", progname );*/ print( " [-d debuglevel] default value is 0\n" ); print( " [-f configfilename] default value is setup.cf\n" );}/* * 戊穴件玉仿奶件毛质 允月 * * 娄醒 * argc 侬 及醒 * argv 侬 及 * 忒曰袄 * TRUE(1) 恳橘卅戊穴件玉仿奶件娄醒分匀凶日 * FALSE(0) 唱橘卅戊穴件玉仿奶件娄醒分匀凶日 */BOOL parseCommandLine( int argc , char** argv ){ int c; /* getopt 匹银丹 */ extern char* optarg; /* getopt 匹银丹 */ while( ( c = getopt( argc, argv ,OPTIONSTRING )) != -1 ){ switch( c ){ case 'd': { int debuglevel; if( !strtolchecknum( optarg, (int*)&debuglevel, 10, INT)){ print( "Specify digit number\n" ); return FALSE; } setDebuglevel( debuglevel ); break; } case 'f': setConfigfilename( optarg ); break; case 'h': printUsage(); return FALSE; break; default: printUsage(); return FALSE; break; } } return TRUE;}/* * 棕雁 醒毛由□旦允月 * 娄醒 * env 棕雁 醒及 * * 漆及赭窒手仄卅中 */BOOL parseEnvironment( char** env ){ if( getDebuglevel() >= 3 ){ int index=0; while( env[index] != NULL )print( "%s " , env[index++] ); print( "\n" ); } return TRUE;}/*lsgen迕及伐□平件弘田永白央及 五今*/#define LSGENWORKINGBUFFER 65536*4#define GOTORETURNFALSEIFFALSE(x) if(!(x))goto RETURNFALSE/* * 赓渝祭伙□民件 * 娄醒 * argc argv及醒 * argv 戊穴件玉仿奶件娄醒 * env 棕雁 醒 * 忒曰袄 * TRUE(1) 岳 * FALSE(1) 撩 */BOOL init(int argc , char** argv , char** env ){#ifdef _ITEM_QUITPARTY FILE *f; int i; char line[256];#endif srand( getpid()); print( "This Program is compiled at %s %s by gcc %s\n", __DATE__ , __TIME__ , __VERSION__ ); defaultConfig( argv[0] ); signalset(); GOTORETURNFALSEIFFALSE(parseCommandLine( argc , argv )); GOTORETURNFALSEIFFALSE(parseEnvironment( env )); { Char aho; debug( sizeof( aho ), d); debug( sizeof( aho.data ), d); debug( sizeof( aho.string ), d); debug( sizeof( aho.flg ),d); debug( sizeof( aho.indexOfExistItems ), d); debug( sizeof( aho.haveSkill ), d); debug( sizeof( aho.indexOfHaveTitle ), d); debug( sizeof( aho.addressBook ),d); debug( sizeof( aho.workint ),d); debug( sizeof( aho.workchar ),d); } print( "配置文件: %s\n" , getConfigfilename() ); GOTORETURNFALSEIFFALSE(readconfigfile( getConfigfilename() ) ); //ttom start { int iWork = setEncodeKey(); if( iWork == 0 ){ // 巨件戊□玉平□毛涩烂 printf( "----------------------------------------\n" ); printf( "-------------[编码] 无法设置 %s\n", getConfigfilename() ); printf( "----------------------------------------\n" ); exit( 1 ); }else{ // 巨件戊□玉平□毛涩烂 printf( "编码 = %d\n", iWork ); } } // AcWBuff毛涩烂 { int iWork = setAcWBSize(); if( iWork == 0 ){ printf( "----------------------------------------\n" ); printf( "-------------[AC缓冲] 无法设置 %s\n", getConfigfilename() ); printf( "----------------------------------------\n" ); exit( 1 ); }else{ printf( "AC缓冲 = %d\n", iWork ); } } //ttom end if( getDebuglevel() >= 1 ){// print("ServerType: %d\n", getServerType() ); print("调试等级: %d\n" , getDebuglevel() ); print("内存单元: %d\n" , getMemoryunit() ); print("内存单元数量: %d\n" , getMemoryunitnum() ); print("账号服务器地址: %s\n" , getAccountservername() ); print("账号服务器端口: %d\n" , getAccountserverport() ); print("登陆服务器名称: %s\n", getGameservername()); print("登陆服务器密码: %s\n", getAccountserverpasswd()); print("等待连接端口: %d\n", getPortnumber() ); print("服务端序列号: %d\n", getServernumber() ); print("重复地址使用: %d\n", getReuseaddr() ); print("最大在线人数: %d\n", getFdnum() ); print("最大在线宠数: %d\n" , getPetcharnum() ); print("最大其他数目: %d\n" , getOtherscharnum() ); print("最大对象数目: %d\n", getObjnum() ); print("最大物品数目: %d\n", getItemnum() ); print("最大战斗数目: %d\n", getBattlenum() );#ifdef _GET_BATTLE_EXP print("战斗经验倍数: %d\n", getBattleexp() );#endif print("顶层文件目录: %s\n" , getTopdir()); print("地图文件目录: %s\n" , getMapdir()); print("地图标识文件: %s\n" , getMaptilefile()); print("物品配置文件: %s\n" , getItemfile()); print("不可战斗文件: %s\n" , getInvfile()); print("显示位置文件: %s\n" , getAppearfile()); print("遇敌配置文件: %s\n" , getEffectfile()); print("头衔名称文件: %s\n" , getTitleNamefile()); print("头衔配置文件: %s\n" , getTitleConfigfile()); print("遇敌坐标文件: %s\n" , getEncountfile()); print("遇敌组群文件: %s\n" , getGroupfile()); print("宠物基本文件: %s\n" , getEnemyBasefile()); print("创建宠物文件: %s\n" , getEnemyfile()); print("精灵魔法文件: %s\n" , getMagicfile());#ifdef __ATTACK_MAGIC print("攻击魔法文件: %s\n" , getAttMagicfileName() );#endif print("宠物技能文件: %s\n" , getPetskillfile());#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能 print("职业技能文件: %s\n" , getProfession());#endif print("物品成份文件: %s\n", getItematomfile()); print("猜迷问题文件: %s\n", getQuizfile());#ifdef _BLACK_MARKET print("地下市场文件: %s\n", getBMItemFile());#endif#ifdef _GMRELOAD print("G M 配置文件: %s\n", getGMSetfile());#endif print("日志记录文件: %s\n" , getLsgenlogfilename() ); print("还原资料目录: %s\n" , getStoredir()); print("NPC 配置目录: %s\n" , getNpcdir()); print("日志记载文件: %s\n", getLogdir()); print("日志配置文件: %s\n", getLogconffile() ); print("GM的指命密码: %s\n", getChatMagicPasswd() ); print("使用GM的权限: %d\n", getChatMagicCDKeyCheck() ); print("NPC 模板数目: %d\n" , getNpctemplatenum() ); print("NPC 最大数目: %d\n" , getNpccreatenum() ); print("走路时间间隔: %d\n" , getWalksendinterval()); print("清除所有间隔: %d\n" , getCAsendinterval_ms()); print("清除目标间隔: %d\n" , getCDsendinterval_ms()); print("执行一次时间: %d\n" , getOnelooptime_ms()); print("宠物清除时间: %d\n" , getPetdeletetime()); print("道具清除时间: %d\n" , getItemdeletetime());#ifdef _DEL_DROP_GOLD print("石器清除时间: %d\n" , getGolddeletetime());#endif print("数据保存间隔: %d\n" , getCharSavesendinterval()); print("名片最大数目: %d\n",getAddressbookoffmsgnum()); print("读取频率协议: %d\n",getProtocolreadfrequency()); print("连接错误上限: %d\n",getAllowerrornum());#ifdef _M_SERVER print("GM服务器地址: %s\n",getmservername()); print("GM服务器端口: %d\n",getmserverport());#endif#ifdef _NPCSERVER_NEW print("Npc服务器地址: %s\n",getnpcserveraddr()); print("Npc服务器端口: %d\n",getnpcserverport());#endif#ifdef _NEW_PLAYER_CF print("出生人物转数: %d\n",getNewplayertrans()); print("出生人物等级: %d\n",getNewplayerlv()); print("出生人物金钱: %d\n",getNewplayergivegold()); print("出生宠物等级: %d\n",getNewplayerpetlv()); print("出生拥有宠物: NO1:%d NO2:%d NO3:%d NO4:%d NO5:%d\n",getNewplayergivepet(0), getNewplayergivepet(1), getNewplayergivepet(2), getNewplayergivepet(3), getNewplayergivepet(4)); print("出生拥有物品: ITEM1:%d ITEM2:%d ITEM3:%d ITEM4:%d ITEM5:%d\n" " ITEM1:%d ITEM2:%d ITEM3:%d ITEM4:%d ITEM5:%d\n" " ITEM1:%d ITEM2:%d ITEM3:%d ITEM4:%d ITEM5:%d\n" ,getNewplayergiveitem(0) ,getNewplayergiveitem(1) ,getNewplayergiveitem(2) ,getNewplayergiveitem(3) ,getNewplayergiveitem(4) ,getNewplayergiveitem(5) ,getNewplayergiveitem(6) ,getNewplayergiveitem(7) ,getNewplayergiveitem(8) ,getNewplayergiveitem(9) ,getNewplayergiveitem(10) ,getNewplayergiveitem(11) ,getNewplayergiveitem(12) ,getNewplayergiveitem(13) ,getNewplayergiveitem(14));#endif#ifdef _UNLAW_WARP_FLOOR print("禁止传送地图: FLOOR1:%d FLOOR2:%d FLOOR3:%d FLOOR4:%d FLOOR5:%d\n",getUnlawwarpfloor(0), getUnlawwarpfloor(1), getUnlawwarpfloor(2), getUnlawwarpfloor(3), getUnlawwarpfloor(4));#endif#ifdef _UNREG_NEMA print("禁止人物名称: NAME1:%s NAME2:%s NAME3:%s NAME4:%s NAME5:%s\n",getUnregname(0), getUnregname(1), getUnregname(2), getUnregname(3), getUnregname(4));#endif#ifdef _TRANS_LEVEL_CF print("人物等级转数: %d\n",getChartrans()); print("宠物等级转数: %d\n",getPettrans());#endif#ifdef _LOCK_IP print("封锁 IP 设置: %s\n",getLockipPath());#endif } { //andy_add 2003/05/05 check GameServer Name char *GameServerName;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -