前回のGHに引き続き、今回はGHと同時実装の昔の時計塔を再現してみました。
時計塔が追加されるまでのアルデバランはルティエもジュノー方面も攻城戦マップもなかったので、寂しいマップでした。
ちなみに実装当初、BGMは51番「Believe in myself」(剣士・シーフ転職所などの曲)で実装されていました。
2年目のXmasパッチ時に曲が巻き戻ったり、時計といえばこの曲が合うという方もいるのではないでしょうか。
前回のGHに引き続き、今回はGHと同時実装の昔の時計塔を再現してみました。
時計塔が追加されるまでのアルデバランはルティエもジュノー方面も攻城戦マップもなかったので、寂しいマップでした。
ちなみに実装当初、BGMは51番「Believe in myself」(剣士・シーフ転職所などの曲)で実装されていました。
2年目のXmasパッチ時に曲が巻き戻ったり、時計といえばこの曲が合うという方もいるのではないでしょうか。
昔の時計…バフォJr懐かしいです(´Д⊂ヽ
ゲフェンダンジョンも、昔バージョンの方が好きだったなあ。今はいやらしい敵が増えて、1時職では行き辛くなりましたしね。
ちょっと昔を懐かしみながら、コンロンのモンスター配置変更前と現在のGH、新旧折衷のnpc_monsterを作ってみました。
もうほとんど昔の配置を忘れてしまいましたが、いい所だけ取り入れて再現してみました。
う~ん、昔もよかったなぁ・・・
ファイル 275-1.txt
↑ファイル
ちなみに実装前、新ダンジョン紹介記事として取り上げられたSS集。
http://www.4gamer.net/shots/ragnarok/ragna1.html
これを見た時はワクテカしてました。(確か発表時の名前は「ブラストハイム」だったような)
懐かしい・・・
あの頃のGH2Fは良かったですねぇ
バフォ部屋へ沸き時間に通ったものです
古城1には間違いなくジョーカーがいました。
あそこで友達と一緒にジョーカーc出しておおはしゃぎしました。
結局、ボクはそれから間もなく引退しちゃって、友達がジョカクリを使いこなしていたとか何とか。
ジョーカー相手にランドマイン足元重ね置きで戦って颯爽と去っていくハンターさんに惚れたのも良い思い出。
監獄の崖うちポイント、念マジで通いつめたなぁ。
たまに昔のAthenaのファイルを引っ張り出して、
湧きを配置変更前のに戻して遊んでます。ああ、いい気持ち。
古城1Fは1stWIZが転職したての頃によく通っていました。
ある日突然、ジョーカーの足が異常に速くなり、
それで戦意喪失したのを機に足が遠のきましたが。
しかしまあ、もう正式サービス開始から4年も経っているんですね。
この4年間で、どれだけROに青春を捧げてしまったかと思うと…恐ろしや!
やはりジョーカーがいたようですね。
今はほとんど追い出されてしまい、なかなか会う機会もないジョーカーでしたが、当時は厄介な存在として人気(?)がありましたよね。
他にも色々な場所の懐かしい場面を再現してみたいと思います。
懐かしいですねぇ~。
バフォがいたGH2Fは大好きでした。最も激しい場所でしたのでw
バフォタイムは死体が散乱、臨時だろうがなんだろうが関係なしに協力し合って倒してましたね。
プリで行くことが多かったので、臨時の帰りはポタに乗れず南無ったこと数えきれず…w
ROライフの中ではいい思い出ですw
室内にフクロウいましたね。
よく「ベース80代短剣持ち剣士」で羽毛集めに狩ったものです
ボスっていうのは、子分がいてからこそ成り立つもの。
アクションゲームなんかでも、子分を倒していって最後の場面でボスが登場するものです。
ということで、MVPの新沸きシステムのスクリプトを作ってみました。
マップ内の子分モンスターを全滅させると、ボスが出現します。
ボスを倒した後の子分再沸き時間も設定できます。(即沸きも可能)
しかし、同じマップに2体設置させようとするとおかしくなってしまったり、結構適当だったり・・・
普通に使う分には問題はないと思います。多分・・・
スクリプトは公開所に置いておきました。
ダウンロードはそちらからどうぞ。
設置後はnpc_monsterのMVPモンスターなどを削ることも忘れずに。
カレンダーを表示させるだけのNPCです。
結構前に書いたものを少し手直して、とりあえず当月の表示はできるようにしたものです。
適当なので、祝日は表示されません。
たしか興味本位で書いてみて、次以降の表示が面倒になってそのうちホコリをかぶった物だったと思います。
そのときはまだ青かったのでしょう、内容ダメダメでしたorz
これを今回引っ張りだしたのは、カレンダーを改良してユーザーがイベント告知を書き込めるイベントカレンダーたるものを作ってみようかと思ったので。
ビンゴと神器クエスト作成の合間に余興として書いてみたいと思います。
http://www.usamimi.info/~blaze/cgi-bin/diarypro/diary.cgi?no=72
過去にも何度か生体の湧き位置を調査しましたが、さすが高難度ダンジョン。
人も多く、調査も手こずってました。
まぁ時も経てば色々と情報も出回り、ついに本鯖仕様の湧き位置スクリプトが出来ました。
生体03の階段の占有防止のセシル&カトリも完全再現。
今では本鯖は逆利用されてウハウハですが・・・
hugeさんの所で編集できればいいのですが、如何せん数が多すぎ・・・
ここに置いておきますので、お持ち帰りしたい方はどうぞ。
ファイル 260-1.txt
そして懐かしい物も出てきた。
リニューアル前、ほんの一瞬公開した生体03のMobID一覧です。
今回のスクリプトもこのIDを少々修正して書いています。
ファイル 260-2.html
CSSや画像がついてないので崩れてますが、こんなのあったんだ~程度でご覧下さい。
ここまでSSがあると、BlazeさんはJRO一SSの数が多いプレイヤーなんじゃないかと勘ぐれます。
SS撮るのもいいですが、スペックに余裕があるなら動画を撮ってみては?
あとで「ここ撮っとけば良かった・・・」なんて事がなくなると思いますし、NPCと会話の度にSS撮る必要もなくなりますよ。
>apacheさん
いえいえ、世間は広いですしもっと保存数が多い方もいるでしょう。
もしそうだとしても、こんな思い出にもならないSSなんて・・・orz
>Cocoaさん
今でもSSとは別に動画もキャプチャーしています。
ですが必然的に画質が悪くなりメッセージ色などの判別が困難なのと、部分的に抜き出したい時に面倒なので、
動画保存は複雑なエフェクトの判別、タイマーイベントのタイム間隔取得、モンスター湧き位置調査など迄に留めています。
>必然的に画質が悪くなり
カハマルカの瞳ならBMPを最終データに出来ますよ。
スクリプトを書いていらっしゃる方が沢山来ていただいているようで、スクリプターとしては嬉しい限りです。
それに加え、スクリプトの質問をされる方も多くなってきました。
書き方のことで質問された方もいるので、いい機会に勝手ながらアドバイスをさせてもらいます。
※久しぶりに開発者よりの日記です。興味ない方ごめんなさいorz
-
最近のスクリプトを見てお気付きの方もいらっしゃると思いますが、menu・gotoなど、ラベルを使う命令を一切排除しています。
これは去年の1月からしているNo more "goto" Good bye "goto"運動(AthenaDevさんにて命名?)によるもので、スクリプトの見直し・整形を行いました。
実際に見てみると、最新のAthenaデフォルトではsampleスクリプトを除き、gotoは使われていないと思います。
なぜgotoやmenuがいけないのか、答えはswitch、selectなどで綺麗に簡潔に代用できるからです。
実際に昔のスクリプトと改修後のスクリプトを見てみると、
lou_fild01.gat,175,173,4scriptクエン ホ819,{
if(Lou_que1 == 4) goto L_OK2;
if(Lou_que1 == 3) goto L_OK1;
mes "[クエン ホ]";
mes "ここは危険だ。帰れよ。";
close2;
warp "lou_fild01.gat",200,174;
end;
L_OK1:
emotion 18;
mes "[クエン ホ]";
mes "どうだい、素敵だろ~。";
mes "落ち込んだり元気がなくなると";
mes "ここに来るんだ。";
mes "ここからじっと景色を眺めてると";
mes "落ち着くんだよ。";
next;
~~~~~略~~~~~
L_OK2:
mes "[クエン ホ]";
mes "どうする?";
next;
menu "叫ぶ",-,"帰る",L_CANCEL;
mes "[クエン ホ]";
mes "おし、叫んでみて!";
next;
input @annouce$;
announce "「"+strcharinfo(0)+"」の叫び : "+@annouce$,0x01;
mes "["+strcharinfo(0)+"]";
mes @annouce$;
next;
mes "[クエン ホ]";
mes "どう?すっきりした?";
mes "また叫びたくなったら来なよ。";
close;
L_CANCEL:
mes "[クエン ホ]";
mes "うん、じゃあまたね。";
close2;
warp "lou_fild01.gat",200,174;
end;
}
改修前の龍乃城NPC、クエン ホです。
まだフラグが少ないNPCなので何とか目で追っていけますが、もしもクエストフラグが何十にも及ぶと大変ですね。
一方改修後は
lou_fild01.gat,175,173,4scriptクエン ホ819,{
switch(LOU_1QUE) {
default: //3,4以外のとき
mes "[クエン ホ]";
mes "ここは危険だ。帰れよ。";
close2;
warp "lou_fild01.gat",200,174;
end;
case 3:
emotion 18;
mes "[クエン ホ]";
mes "どうだい、素敵だろ~。";
mes "落ち込んだり元気がなくなると";
mes "ここに来るんだ。";
mes "ここからじっと景色を眺めてると";
mes "落ち着くんだよ。";
next;
~~~~~略~~~~~
case 4:
mes "[クエン ホ]";
mes "どうする?";
next;
if(select("叫ぶ","帰る")==2) {
mes "[クエン ホ]";
mes "うん、じゃあまたね。";
close2;
warp "lou_fild01.gat",200,174;
end;
}
mes "[クエン ホ]";
mes "おし、叫んでみて!";
break;
}
next;
input '@word$;
announce "「"+strcharinfo(0)+"」の叫び : " +'@word$,1,0x9BFD00;
mes "["+strcharinfo(0)+"]";
mes '@word$;
next;
if(LOU_1QUE == 3) {
mes "[クエン ホ]";
mes "どう?すっきりしたかな?へへ。";
mes "ここには、好きに来ていいよ。";
mes "今日は本当にありがとう!";
set LOU_1QUE,4;
}
else {
mes "[クエン ホ]";
mes "どう?すっきりした?";
mes "また叫びたくなったら来なよ。";
}
close;
}
フラグの状況と進行具合が目で追って分かりやすいです。
breakなどによる共通部分の処理も気軽に出来る点も魅力です。
またラベルを使っていないので、衝突を意識する必要もありません。
この大改修でほとんどのスクリプトが見やすくなり、また後から手を加える人にとって大変ありがたい偉業となりました。
スクリプトを書く際少なくとも私はこの点に注意し、見た目的に分かりやすく美しく、を追求しています。
まだまだ未熟な部分もありますが・・・orz
「スクリプトなんて動けばいいじゃん」と思う方もいらっしゃるかもしれません。
ですがプログラムも然り、それを見る人・手を加える人がいる限り整合の必要性があります。
いきなりswitchやselectなんて・・・という方、私も最初はそうでしたorz
が、いざやってみるとゴチャゴチャしていた物がキレイになっていく感じで意外とハマり、無駄な処理・不要な部分という物が見えてきます。
それを排除していくことでより一層綺麗に仕上がると思います。
スクリプトを作ってる方、まずはgoto・menuの排除に挑戦してみてはいかがでしょうか。
スクリプト公開所の濃縮エルNPCでgoto使ってたorz
ちょっくら書き直してくるぜ!
λ=3......
確かにswitchのほうが高性能だけど、
個人的にはmenuとラベルのように
各処理部分をはっきり分けられて
初心者にわかりやすいところが好きです。
はっきりとmenuとラベルをスクリプトから排除するより
場合によって使い分けすべきではないかと考えてます。
好みの問題だからなぁ。
ボクはswitchのほうが好き。
C寄りの考え方に慣れてくると、多分switch派になるんじゃないかなぁ。
個人的にラベルはイベント時やcallsub等呼び出しのみの使用と考えています。
汎用性が低いもの、例えばcancel時はラベル呼び出しよりもその条件分岐地点にぶら下げる形がスマートだと思いますので・・・
私では現状の改修後のカタチに慣れてしまいましたが、やはり人それぞれ使いやすいカタチがありますよね。
自主的な概念を強要するつもりはありませんので、人それぞれの書きやすいカタチで書いていくのも個性的でいいかもですね。
swicthは便利だとは思うのですが、menuは全部排除となると躊躇します。
なぜならswicthだけだと、ラベルの全部が「CASE 数字」になってしまうので、mes文を読まないと
「これをしたのはNPCプログラムのどこだったっけ・・・?」
となってしまうから。
たとえば上のものだとLOU_1QUEが何の関数だったか忘れると一貫の終わりなわけで・・・
ラベルにそれこそLOWZENYとか具体的に書いてあればお金の足りない時の処理どうだったっけ・・・?を言葉で検索できますが、CASEだと全部読まないとムリになっちゃう。
明らかにBASIC臭い考えかただなぁと自分でも思いますけど orz
menuとラベルがAthenaから消えると自分はプログラム書くのきつくなっちゃいそうです。
goto,menuはあまり使わない派だけど、テストNPCを書くときはmenuやgoto使います
それにAthenaのスクリプトは普通書き捨てなので、使っていってかまわないと考えています
Gokismithさんの言うように、switch,select時は戻り値が整数になるので分岐を増やすと追いかけづらくなりますしね
個人的には饒舌なNPCだとmes命令が冗長になるのと、永続キャラクター変数に何も修飾されないのが辛いです
さすがBlazeさん。
この考えはダイクストラが唱えた構造化定理の提案と同じ考えですね。
「いかなる制御を行なうプログラムも、補助的なスイッチなどを用いればgoto文のないプログラム(gotoless program)を記述できる」ていうもの。
プログラマーとしてはこの構造化定理に沿って記述していくのが筋。
「gotoの方が使い易い」という人はまだ使い熟していない証拠でしょう。
友達の家で待たされている長い間、ヒマだったので書いていました。
持ち帰れるよう、ここに保存として置いていきます。
ファイル 212-1.txt
こんなのを他人の家で作ってる私の神経を疑いたい。
実は裏でパンヤもやってたり・・・
それだけ長い間ヒマだったということです。ハイ。
リヒタルゼンクエストの1つ、「隔たりの友情」の修正版です。
カットインが入ったり、メッセージの修正などに手を加えています。
本鯖リハビリその2。
全然スクリプト書いてないと、過去に自分が書いた物でも忘れるものですね・・・orz
無駄にNPCイラストが多い当クエスト。やっぱり結末が気に入らない。
あ、あと、過去に調査した時では捨てられた「友人の日記帳」がドロップ不可・売却不可になってました。
調査した頃、問題になってた巻き戻りのバグが治ったみたいですね。
リヒタルゼンで追加されたジュノーの図書館のスクリプトです。
館内には様々な本があり、クエストに関連するものなどがあります。
本鯖調査のリハビリ程度に調査してきたものです。
クエスト関連のものも混ざっていたりするので、一応ここに。
まとまってきたら、npc_town_yuno.txtに収納するつもりです。
司書のメッセージを書いてて、過去に調査してどこかに編集したような覚えがあるのですが・・・
気のせいでしょうか。う~ん、どこに行ったっけ・・・
さて、ジュノー図書館になんて行く人はどれ位いるのやら。