HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1011
V.as/.hsp以外からのスクリプト実行について9解決


V

リンク

2012/10/11(Thu) 16:17:23|NO.49905

初めまして。
最近HSPを勉強し始めました。
ゲームを作っていて問題が発生したのですが、どう検索しても自分では答えを見つけられませんでした。

コンパイル後に、任意の拡張子を持つファイル(例えば.sceneなど)に記述されたスクリプトを実行したいのですがこのような場合はどうすればよいのでしょうか?
また、スクリプトを記述したファイルはバイナリ形式で保存したいと考えています。
#includeや#additionでは.asまたは.hspしかできないとのことなので、これを可能にするプラグインなどがあれば教えてほしいです。



この記事に返信する


荒河

リンク

2012/10/11(Thu) 16:54:06|NO.49906

恐らくhsp3impという拡張プラグインで可能かと思います。
このhsp3impプラグインはスクリプトエディタから「コンパイル」すると出来る拡張子axのファイルを実行することが出来ます。
しかし、axファイルに記されたスクリプトが終了するまで呼び出した側のスクリプトは停止します。



KA

リンク

2012/10/11(Thu) 17:51:03|NO.49909

各スクリプトを実行形式にして、メインから実行します。

と言う答えで良いのかな、質問の意図が半透明です。



V

リンク

2012/10/11(Thu) 17:58:25|NO.49910

解答ありがとうございます。
hsp3imp.dllについて調べてみました。

以下のようなアルゴリズムを考えていたのですが、この場合は6の手順のところにhsp3imp.dllを用いてシーンファイル.axを実行すればよいのでしょうか?
また、6の手順でhsp3imp.dllを用いた場合システム変数を含む変数はどうなりますか?
・アルゴリズム
 1.version.datから現バージョンのファイルリストを配列に格納し、ファイルが存在するかチェックする。
   →エラー:エラーメッセージ(”ファイル ファイル名 が存在しません。”)をダイアログし、errorlog.txtを更新しプログラムを終了。
 2.unification.datのシーンファイルリストから配列”scenes”連想配列”scene””sceneflgs”を作成し、変数”thiscene”にtitleを代入。
   ※scenes,scene,sceneflgsについて
    ・scenes:シーンファイルのリスト
    ・scene:シーンの流れの制御に使用
    ・sceneflgs:次のシーンに移行するために必要な条件(値)
 3.db.datから各種データを配列化。
   →エラー:エラーメッセージ(”ファイル db.dat が壊れています。”)をダイアログし、errorlog.txtを更新してプログラムを終了。
 4.scene[now] = thisscene
 5.【分岐】次のシーンに移行するための条件を満たしているかどうか
   →真:scene[prev] = thisscene : thisscene = scene[next]し、4番へ。
    ※scene[next]は各シーンファイルで更新。
 6.シーンファイルのスクリプトを実行。
 7.4番に戻る。
   ※プレイヤーの操作によってscene[next]に移行せず、ほかのシーンファイルを呼び出す場合(コンフィグ画面やメニュー画面の呼び出しなど)があるため。



skyblue

リンク

2012/10/11(Thu) 18:45:19|NO.49911

どのようなジャンルのゲームを作ろうとしているのですか?



f(鯖から異音中; ;)

リンク

2012/10/12(Fri) 06:08:36|NO.49940

まず、その
「バイナリで保存」される予定の
「任意の拡張子を持つファイル」内に記述される
「スクリプト」なるものが


・HSPのスクリプトの事なのか
・そのゲーム用に作った独自のスクリプトの事なのか


はっきりさせるべき。

後者ならbloadで読めば良ええやんか的感じだが
前者だとすると質問内容の意味がわからない。



V

リンク

2012/10/12(Fri) 16:03:38|NO.49944

作ろうとしているゲームはシミュレーション+コマンドバトルです。
プレイヤーがミッションを受諾し、ミッションごとに決められたマップへ赴き目的を達成するというのが大筋の流れです。
ミッション中のマップはスパロボみたいな感じで、接敵するとコマンドバトルモードに移行します。

また、完成しても新たなシステムや特殊な処理が追加されているミッションをアップデートで追加したりしたいので、外部ファイルの中のスクリプトを実行できるようにしたいです。
外部ファイルの中身はHSPで書こうと思っています。



f(終業前)

リンク

2012/10/12(Fri) 16:50:12|NO.49945

>また、完成しても新たなシステムや特殊な処理が追加されているミッションをアップデートで追加したり
>したいので、外部ファイルの中のスクリプトを実行できるようにしたいです。
>外部ファイルの中身はHSPで書こうと思っています。

俺的には
「まず完成させてから言えや。
 下らんことに拘るあまり結局完成しないパターンに嵌るぞ」
とゆー気もしないでもないが

とりあえずエディタにrunと打ち込んでそれにカーソル合わせてf1押せば良いんでね。



skyblue

リンク

2012/10/12(Fri) 19:24:29|NO.49954

>外部ファイルの中身はHSPで書こうと思っています。
外部ファイルはHSPでなくてもできます。
fさんの言う通りに追加できないゲームを作ってからにした方がいいです。
さらに言えばコンフィグ画面やメニュー画面なんて大抵はほとんど変わらないです。
なのでゲームの中に組み込まれているのが普通で
外部ファイルと言う形で分けたりしないです。



V

リンク

2012/10/12(Fri) 20:10:55|NO.49956

なるほど……。
とても参考になりました!
まずはシステムの追加などは一切考えずに作ってみることにしようと思います。
みなさん解答どうもありがとうございました。
まだまだ始めたばかりですのでこれからも頼ってしまうことがあると思いますが、その際はまた教えていただけると嬉しいです。
よろしくお願いしますm(__)mペコリ



ONION software Copyright 1997-2021(c) All rights reserved.