NEET STYLE

Game, Movie, Music, etc...

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

自動再起

アラスカ鯖でこっそり狩りをしてたんですが
どうやら鯖が落ちたみたいです。

2時間くらいでもうちょっと狩り無理かな(>早い)
ってなってたんでちょうどよかったんですけどね。

でも、自動再起を導入しないのは何でだろうと思って
BBS覗いてみたら、前期で何か不具合があったそうで。

Shutdownコマンド使えば問題ないとは思うんだけど
強制で落としてたんだろうか。

言われんでも知ってるわ!はげ!
って感じだったら申し訳ないんですが
参考になればいいなと自動再起のやり方書いときます。


UWSCとかのマクロツールつかってtelnetで
shutdownコマンドを打ち込み再起動するっていう手もあるんだけど

UWSC慣れて無くて設定が面倒で僕はちょっと違うやり方でやってました。
あんましスマートじゃないとは思いますが…。

取りあえず
GameServer.getInstance().shutdownWithCountdown(1800);
//1800は秒数、仮に30分後
これをどっかに埋め込んどけばShutdownコマンド発動するわけです。

あとはタイマーとセットにすればいいんですけど
DBで時間ぱぱっと変えれるように僕はスポーンに埋め込みました。
以下手順

① まずは /model/L1Spawn.javaに追記。

}
if (npcId == 45573 && mob.getMapId() == 2) { // バフォメット
for (L1PcInstance pc : L1World.getInstance().getAllPlayers()) {
if (pc.getMapId() == 2) {
L1Teleport.teleport(pc, 32664, 32797, (short) 2, 0,
true);
}
}
//バフォスポーンの記述の下ら辺に以下のソース

if (npcId == 再起動ボスID && mob.getMapId() == 湧かせるマップ) {
GameServer.getInstance().shutdownWithCountdown(1800);
//1800は秒数、仮に30分後
}



②再起動用ボスの作成
適当にNPCを作る。IDだけは上のオレンジと一緒で

③②でつくったNPCをBossSpawnテーブルで設定して湧かせる
 
④BossCycleのXML(ボス周期決めるやつ)で
 サーバーを落としたい時間に設定する。
 上のソースだと湧いてから30分後に鯖が落ちるから鯖落としたい30分前に設定。

⑤あとはUWSCなどで鯖が落ちたあとに鯖を立ち上げるようにすればOK

以上で自動再起は完了なんだけど、
鯖がシャットダウンされてから立ち上げまでを簡略化するために
http://www.mediafire.com/?nfuhr876e0tsgn6   (リンク張り直し)
↑のバッチファイルを
ServerStart.batと同じ階層に添付ファイルを置いて、
サーバー起動時はこのファイルをダブルクリックでサーバを起動します。  

このバッチファイルは鯖が落ちた後
そのまますぐに鯖が再起動するように細工してあるものです。


この状態でUWSCで何かしらのキーを1分おきに押す設定をしていれば
外出先でもリモートで鯖落とせば
勝手に再起動するというワンダフルな鯖になります。


以上!


長文疲れちゃった。
スポンサーサイト
  1. 2012/07/29(日) 11:07:06|
  2. Game - Lineage
  3. | トラックバック:0
  4. | コメント:7
次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。