?? 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 人物職業(yè)技能#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" );}/* * 戊穴件玉仿奶件毛質(zhì) 允月 * * 婁醒 * 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( "-------------[編碼] 無法設(shè)置 %s\n", getConfigfilename() ); printf( "----------------------------------------\n" ); exit( 1 ); }else{ // 巨件戊□玉平□毛澀爛 printf( "編碼 = %d\n", iWork ); } } // AcWBuff毛澀爛 { int iWork = setAcWBSize(); if( iWork == 0 ){ printf( "----------------------------------------\n" ); printf( "-------------[AC緩沖] 無法設(shè)置 %s\n", getConfigfilename() ); printf( "----------------------------------------\n" ); exit( 1 ); }else{ printf( "AC緩沖 = %d\n", iWork ); } } //ttom end if( getDebuglevel() >= 1 ){// print("ServerType: %d\n", getServerType() ); print("調(diào)試等級: %d\n" , getDebuglevel() ); print("內(nèi)存單元: %d\n" , getMemoryunit() ); print("內(nèi)存單元數(shù)量: %d\n" , getMemoryunitnum() ); print("賬號服務(wù)器地址: %s\n" , getAccountservername() ); print("賬號服務(wù)器端口: %d\n" , getAccountserverport() ); print("登陸服務(wù)器名稱: %s\n", getGameservername()); print("登陸服務(wù)器密碼: %s\n", getAccountserverpasswd()); print("等待連接端口: %d\n", getPortnumber() ); print("服務(wù)端序列號: %d\n", getServernumber() ); print("重復(fù)地址使用: %d\n", getReuseaddr() ); print("最大在線人數(shù): %d\n", getFdnum() ); print("最大在線寵數(shù): %d\n" , getPetcharnum() ); print("最大其他數(shù)目: %d\n" , getOtherscharnum() ); print("最大對象數(shù)目: %d\n", getObjnum() ); print("最大物品數(shù)目: %d\n", getItemnum() ); print("最大戰(zhàn)斗數(shù)目: %d\n", getBattlenum() );#ifdef _GET_BATTLE_EXP print("戰(zhàn)斗經(jīng)驗倍數(shù): %d\n", getBattleexp() );#endif print("頂層文件目錄: %s\n" , getTopdir()); print("地圖文件目錄: %s\n" , getMapdir()); print("地圖標(biāo)識文件: %s\n" , getMaptilefile()); print("物品配置文件: %s\n" , getItemfile()); print("不可戰(zhàn)斗文件: %s\n" , getInvfile()); print("顯示位置文件: %s\n" , getAppearfile()); print("遇敵配置文件: %s\n" , getEffectfile()); print("頭銜名稱文件: %s\n" , getTitleNamefile()); print("頭銜配置文件: %s\n" , getTitleConfigfile()); print("遇敵坐標(biāo)文件: %s\n" , getEncountfile()); print("遇敵組群文件: %s\n" , getGroupfile()); print("寵物基本文件: %s\n" , getEnemyBasefile()); print("創(chuàng)建寵物文件: %s\n" , getEnemyfile()); print("精靈魔法文件: %s\n" , getMagicfile());#ifdef __ATTACK_MAGIC print("攻擊魔法文件: %s\n" , getAttMagicfileName() );#endif print("寵物技能文件: %s\n" , getPetskillfile());#ifdef _PROFESSION_SKILL // WON ADD 人物職業(yè)技能 print("職業(yè)技能文件: %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的權(quán)限: %d\n", getChatMagicCDKeyCheck() ); print("NPC 模板數(shù)目: %d\n" , getNpctemplatenum() ); print("NPC 最大數(shù)目: %d\n" , getNpccreatenum() ); print("走路時間間隔: %d\n" , getWalksendinterval()); print("清除所有間隔: %d\n" , getCAsendinterval_ms()); print("清除目標(biāo)間隔: %d\n" , getCDsendinterval_ms()); print("執(zhí)行一次時間: %d\n" , getOnelooptime_ms()); print("寵物清除時間: %d\n" , getPetdeletetime()); print("道具清除時間: %d\n" , getItemdeletetime());#ifdef _DEL_DROP_GOLD print("石器清除時間: %d\n" , getGolddeletetime());#endif print("數(shù)據(jù)保存間隔: %d\n" , getCharSavesendinterval()); print("名片最大數(shù)目: %d\n",getAddressbookoffmsgnum()); print("讀取頻率協(xié)議: %d\n",getProtocolreadfrequency()); print("連接錯誤上限: %d\n",getAllowerrornum());#ifdef _M_SERVER print("GM服務(wù)器地址: %s\n",getmservername()); print("GM服務(wù)器端口: %d\n",getmserverport());#endif#ifdef _NPCSERVER_NEW print("Npc服務(wù)器地址: %s\n",getnpcserveraddr()); print("Npc服務(wù)器端口: %d\n",getnpcserverport());#endif#ifdef _NEW_PLAYER_CF print("出生人物轉(zhuǎn)數(shù): %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("人物等級轉(zhuǎn)數(shù): %d\n",getChartrans()); print("寵物等級轉(zhuǎn)數(shù): %d\n",getPettrans());#endif#ifdef _LOCK_IP print("封鎖 IP 設(shè)置: %s\n",getLockipPath());#endif } { //andy_add 2003/05/05 check GameServer Name char *GameServerName;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -