?? init.c
字號:
GameServerName = getGameserverID(); if( GameServerName == NULL || strlen( GameServerName) <= 0 ) return FALSE; print("\n游戲服務器ID: %s\n", GameServerName ); } print("開始初始化\n" );//#define DEBUG1( arg... ) if( getDebuglevel()>1 ){##arg} print( "建立內存空間..." ); GOTORETURNFALSEIFFALSE(configmem( getMemoryunit(), getMemoryunitnum() ) ); GOTORETURNFALSEIFFALSE(memInit()); print( "完成\n" ); if( !initConnect(getFdnum()) ) goto MEMEND; while( 1 ){ print( "嘗試綁定本地端口 %d... " , getPortnumber()); bindedfd = bindlocalhost( getPortnumber() ); if( bindedfd == -1 ) sleep( 10 ); else break; } print( "完成\n" ); print( "建立對象..." ); if( !initObjectArray( getObjnum()) ) goto CLOSEBIND; print( "完成\n" ); print( "建立人物..." ); if(!CHAR_initCharArray( getFdnum(), getPetcharnum(),getOtherscharnum()) ) goto CLOSEBIND; print( "完成\n" ); print( "建立物品:%s...", getItemfile()); if(!ITEM_readItemConfFile( getItemfile()) ) goto CLOSEBIND; if(!ITEM_initExistItemsArray( getItemnum() ) ) goto CLOSEBIND; print( "完成\n" ); print( "建立戰斗..." ); if(!BATTLE_initBattleArray( getBattlenum() ) ) goto CLOSEBIND; print( "完成\n" ); print( "建立功能模塊..." ); if( !initFunctionTable() ) goto CLOSEBIND; print( "完成\n" ); print( "初始化郵件..." ); if( !PETMAIL_initOffmsgBuffer( getAddressbookoffmsgnum() )) goto CLOSEBIND; print( "完成\n" ); print( "讀取不可戰斗文件..." ); if( !CHAR_initInvinciblePlace( getInvfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取顯示位置文件..." ); if( !CHAR_initAppearPosition( getAppearfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取頭銜名稱文件..." ); if( !TITLE_initTitleName( getTitleNamefile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取頭銜配置文件..." ); if( !TITLE_initTitleConfig( getTitleConfigfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取遇敵坐標文件..." ); if( !ENCOUNT_initEncount( getEncountfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取寵物基本文件..." ); if( !ENEMYTEMP_initEnemy( getEnemyBasefile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取創建寵物文件..." ); if( !ENEMY_initEnemy( getEnemyfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取遇敵組群文件..." ); if( !GROUP_initGroup( getGroupfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取魔法文件..." ); if( !MAGIC_initMagic( getMagicfile() ) ) goto CLOSEBIND; print( "完成\n" ); #ifdef __ATTACK_MAGIC print( "讀取魔法攻擊文件..." ); if( !ATTMAGIC_initMagic( getAttMagicfileName() ) )// if( !ATTMAGIC_initMagic( getMagicfile() ) ) goto CLOSEBIND; print( "魔法攻擊文件 -->%s..." , getAttMagicfileName()); print( "完成\n" ); #endif print( "讀取寵物技能文件..." ); if( !PETSKILL_initPetskill( getPetskillfile() ) ) goto CLOSEBIND; print( "完成\n" );#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能 print( "讀取職業技能文件..." ); if( !PROFESSION_initSkill( getProfession() ) ){ goto CLOSEBIND; } print( "完成\n" );#endif /* 失奶 丞及箋 毛 戈 */ print( "讀取物品成份文件..." ); if( !ITEM_initItemAtom( getItematomfile()) ) goto CLOSEBIND; print("完成\n" ); print( "初始化物品高速緩沖..." ); if( !ITEM_initItemIngCache() ) goto CLOSEBIND; print("完成\n" ); print( "初始化物品名稱..." ); if( !ITEM_initRandTable() ) goto CLOSEBIND; print("完成\n" ); print( "讀取遇敵配置文件..." ); if( !CHAR_initEffectSetting( getEffectfile() ) ) goto CLOSEBIND; print( "完成\n" ); print( "讀取猜迷問題文件..." ); if( !QUIZ_initQuiz( getQuizfile() ) ) goto CLOSEBIND; print( "完成\n" );#ifdef _BLACK_MARKET print( "地下市場文件..." ); if ( !LoadBMItem(getBMItemFile()) ) goto CLOSEBIND; print( "完成\n" );#endif#ifdef _GMRELOAD print( "讀取GM配置文件..." ); if ( !LoadGMSet( getGMSetfile() ) ) goto CLOSEBIND; print( "完成\n" );#endif#ifdef _GMRELOAD print( "讀取經驗配置文件..." ); if ( !LoadEXP( getEXPfile() ) ) goto CLOSEBIND; print("最高等級: %d...",getMaxLevel()); print("一般等級: %d...",getYBLevel()); print( "完成\n" );#endif#ifdef _ANGEL_SUMMON print("讀取任務列表文件..."); if( !LoadMissionList( ) ) goto CLOSEBIND; print("完成\n");#endif#ifdef _CONTRACT print("讀取契約文件..."); //if( !LoadMissionList( ) ) // goto CLOSEBIND; if( !ITEM_initContractTable() ) goto CLOSEBIND; print("完成\n");#endif#ifdef _JOBDAILY print("讀取任務日志文件..."); if(!LoadJobdailyfile()) goto CLOSEBIND; print("完成\n");#endif#ifdef _RACEMAN print("讀取寵物賽跑文件..."); if(!LoadRacepetfile()) goto CLOSEBIND; print("完成\n");#endif#ifdef _LOCK_IP print("讀取鎖定IP文件..."); if(!loadLockip( getLockipPath())) goto CLOSEBIND; print("完成\n");#endif print( "建立地圖..." ); if( !MAP_initReadMap( getMaptilefile() , getMapdir() )) goto CLOSEBIND; print( "完成\n" ); print( "讀取NPC文件..." ); if( !NPC_readNPCSettingFiles( getNpcdir(), getNpctemplatenum(), getNpccreatenum() ) ) goto CLOSEBIND; print( "完成\n" ); print( "初始化 NPC 服務器... " ); if( lssproto_InitServer( lsrpcClientWriteFunc, LSGENWORKINGBUFFER ) < 0 ) goto CLOSEBIND; print( "完成\n" ); print( "嘗試連接賬號服務器... " ); acfd = connectHost( getAccountservername(), getAccountserverport()); if(acfd == -1) goto CLOSEBIND;/* { int errorcode; int errorcodelen; int qs; errorcodelen = sizeof(errorcode); qs = getsockopt( acfd, SOL_SOCKET, SO_RCVBUF , &errorcode, &errorcodelen); //andy_log print("\n\n GETSOCKOPT SO_RCVBUF: [ %d, %d, %d] \n", qs, errorcode, errorcodelen); }*/ print( "完成\n" ); initConnectOne( acfd, NULL , 0 ); if( !CONNECT_acfdInitRB( acfd)) goto CLOSEAC; if( !CONNECT_acfdInitWB( acfd)) goto CLOSEAC; CONNECT_setCtype( acfd, AC ); print( "初始化 NPC 客戶端 ... " ); /* rpc(client)及賡渝祭 */ if( saacproto_InitClient( lsrpcClientWriteFunc,LSGENWORKINGBUFFER, acfd) < 0 ) goto CLOSEAC; print( "完成\n" ); print( "向賬號服務器發送登陸請求... " ); /* 夫弘奶件邰菲毛請允 */ saacproto_ACServerLogin_send(acfd, getGameservername(), getAccountserverpasswd()); print( "完成\n" ); if( isExistFile( getLsgenlogfilename() ) ){ lssproto_SetServerLogFiles( getLsgenlogfilename(), getLsgenlogfilename() ); saacproto_SetClientLogFiles( getLsgenlogfilename(), getLsgenlogfilename() ); } print( "初始化已完成\n" );#ifdef _MUSEUM if( getMuseum() ) print("\n這是石器博物館!!\n"); else print("\n這是普通星球!!\n");#endif print( "開始記始日志\n" ); { char logconffile[512]; snprintf( logconffile, sizeof( logconffile), "%s/%s" , getLogdir(), getLogconffile() ); if( !initLog( logconffile ) ) goto CLOSEAC; }#ifdef _M_SERVER print( "嘗試連接GM服務器... " ); mfd = connectmServer( getmservername(), getmserverport()); if (mfd ==-1 ){ print( "連接GM服務器失敗... " ); }else{ initConnectOne( mfd, NULL , 0 ); print( "成敗連接GM服務器... " ); }#endif#ifdef _NPCSERVER_NEW npcfd = connectNpcServer( getnpcserveraddr(), getnpcserverport()); if( npcfd == -1 ){ print( "連接NPC服務器失敗... " ); }else{ initConnectOne( npcfd, NULL , 0 ); print( "成敗連接NPC服務器... " ); NPCS_NpcSLogin_send( npcfd); }#endif #ifdef _ITEM_QUITPARTY print( "讀取隊伍解散物品消失文件..." ); //讀取檔案 f = fopen( getitemquitparty(), "r" ); if( f != NULL ){ while( fgets( line, sizeof( line ), f ) ){ if( line[0] == '#' )continue; if( line[0] == '\n' )continue; chomp( line ); itemquitparty_num++; } if( fseek( f, 0, SEEK_SET ) == -1 ){ print( "物品錄找錯誤\n" ); fclose(f); goto CLOSEAC; } //配記憶體 Disappear_Item = allocateMemory( sizeof(struct tagDisappearItem) * itemquitparty_num ); if( Disappear_Item == NULL ){ print( "無法分配內存 %d\n", sizeof(struct tagDisappearItem) * itemquitparty_num ); fclose( f ); goto CLOSEAC; } i = 0; //將道具編號存入 Disappear_Item.string while( fgets( line, sizeof( line ), f ) ){ if( line[0] == '#' )continue; if( line[0] == '\n' )continue; chomp( line ); sprintf( Disappear_Item[i].string,"%s",line ); print("\n道具編號:%s", Disappear_Item[i].string ); i++; } fclose(f); }#endif DEBUG_ADJUSTTIME = 0; print( "\n" ); return TRUE;CLOSEAC: close( acfd );CLOSEBIND: close( bindedfd ); endConnect();MEMEND: memEnd();RETURNFALSE: return FALSE;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -