
NPCを作る
今日からちょっとずつサーバをいじっていこうと思う。サーバとしてどうあるべきかというコンセプトを考えることと、実際にどうやってサーバを設定していくのかという二本立てでいく。前者はゲームとしてどうあるべきか、というところで後者はツクールの使い方だ。
さて、今日はそのツクール部分で、NPCを設定してみようと思う。NPCを設置するのはサーバのデータベースのいじり方としてチュートリアルでeqemuにドキュメントがあるのでそれをなぞるだけだ。まずは、PEQ Database Editorを開く
そこでゾーンを選択し、Add NPCを選ぶ。ゾーンは今回PoKにしてみた。
次に、名前、種族、クラス等々を設定する。名前はTesutoで、種族はAviakにした。このNPCはPoKにいるし、戦わないので戦闘でのステータスは設定しない。
ついでにaggroもしないように設定する。無敵かどうかの設定はないので、たぶん、殺したくないならレジストを100%に設定するのだろう。
またNPCはトラック可能で、ファインドウインドウに表示をさせるようにした。またついでにスクリプトの練習台にしたいのでクエストを設定できるようにした。
できた。この状態だとデータベースにNPCを登録しただけで、まだスポーンしていない。次に実際に設置してみる。
Spawnsのタブを選び、ゾーンをPoK、NPCをTesutoとして選択する。ここで、create a new spawngroupを選ぶ。
スポーングループというのができる。ほとんどの項目がなにかわからんが、とりあえずmindelayとdelayを0に設定する。
次にSpawn Pointの設定を行う。位置は、PoKのMBの近くにしよう
この辺。EQ上で/locを取る。EQではY,X,Zと表示されるので間違えないように設定する。
チュートリアルでは、NPCを動かすためにpathgridの設定をしているが、とりあえず立たせておくために0に設定しておく。あと、Hailしたら返事をするようなスクリプトも追加しておく。perlで書いたが、これからは全部luaで書いたほうがいいな。perlは15年以上使っていないし、luaに至ってはほんのちょっといじったくらいだ。勉強しなきゃいけないことが多すぎる。
スポーン時にメッセージをだすのと、Hailされた場合返事をするようにした。
とりあえずデータベース側の設定は済んだ。ここでGMコマンドでNPCのrepop、クエストのリロードを行うのだが、repopは上手くいくものの、クエストのリロードを行うとサーバ側はなぜかOut of Memoryのエラーがでて、サーバ自体は存続するが、クライアントが追い出される...これはマシンが悪いのだろうか。よくわからんなあ。しょうがないからサーバを再起動する。
お、popしていた。うまく動いたようだ。話しかけてみよう。
ちゃんと返事をするな。これでNPCをおいてなにかをさせることはできるようになった。結構簡単だなあ。それにしてもクエストのリロードを行うと落ちるのはいただけない。これはマシンが悪いのか、なにかインストールを間違えているのか、設定が悪いのか。謎な部分が多いな。いずれにしろこのマシンはなにかをやるのにいちいち遅くて、学生のときに使っていた286を積んだ10MHzくらいのパソコンを思い起こさせられる。あのころはフロッピーの読み込みがいちいち遅くて漫画読みながらゲームしてたなあ。なにげにHDDからSSDにうつったときの感動よりも、フロッピーからHDDへうつったときの感動のほうが大きかったな。いずれにしろQoLを良くするためにまともなPCにちゃんとLinuxいれるか。またインストールしなおしだよ。