ご質問の文章からは具体的に何をしたいのか分からないので、スクリプトから推理して読み解く事にします。
> expandFilestart = "*"+refstr+"main"
> goto *expandFilestart
この書き方は、ご利用になれません。
gotoでジャンプするラベルは変数に格納することができますが、文字列ではありません。
ラベルを変数(ラベル型変数)に格納して使用する場合、次のようにして使用します。
mes "1"
a = *sub
gosub a
mes "2"
stop
*sub
mes "サブルーチン"
return
ご覧の通り、ラベル型変数は1つだけだとあまり意味がないので、配列で使用すると便利です。
> oncmd gosub *WM_SIZE,0x0005
ウィンドウサイズを変更した際に何かしたいスクリプトのようです。では動くスクリプトを書いてみます。
ウィンドウ0はウィンドウサイズ固定なので、1以降を使うと簡単です。
#define WM_SIZE $5
gsel 0, -1 ; 0は使わないので非表示にする。
screen 1 ; 1以降は可変ウィンドウ
oncmd gosub *l_WM_SIZE, WM_SIZE ;ウィンドウのサイズ変更
stop
; ウィンドウサイズが変更されたときの処理
*l_WM_SIZE
; サイズ変更後のクライアント領域のウィンドウ幅と高さ
l = lparam<<16>>16 ; 下位ワード 幅
h = lparam>>16 ; 上位ワード 高さ
title ""+l+", "+h
return
user32.asと#includeの話が出ているので、user32モジュール(moduleを省略してmodと書くこともあります)を使う方法の例も書いておきます。
この例では、ウィンドウID0を可変ウィンドウに変更して使用しています。
#include "user32.as"
; user32.asをインクルードすると、GetWindowLong/SetWindowLong が使用できるようになります。
; ウィンドウのスタイル
style = 0x00010000 ; WS_MAXIMIZEBOX 最大化ボタンを持つ(なくてもいい)
style|= 0x00040000 ; WS_SIZEBOX サイズ変更境界を持つ
GetWindowLong hwnd, -16 ; GWL_STYLE
SetWindowLong hwnd, -16, stat | style
oncmd gosub *l_WM_SIZE, $5 ; WM_SIZEウィンドウのサイズ変更
stop
; ウィンドウサイズが変更されたときの処理
*l_WM_SIZE
; サイズ変更後のクライアント領域のウィンドウ幅と高さ
l = lparam<<16>>16 ; 下位ワード 幅
h = lparam>>16 ; 上位ワード 高さ
title ""+l+", "+h
return
「#include "user32.as"」と書くことで以降は、GetWindowLong命令とSetWindowLong命令が使用できるようになります。
user32.asの場合、#include して使えるようになった命令の説明はHDLに記載されていません。Windowsの標準機能を呼び出しているので、そちらのマニュアルを見に行く必要があります。
https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getwindowlongw
http://chokuto.ifdef.jp/urawaza/api/GetWindowLong.html
> 拡張機能(MOD?)をゲームに追加するにはどうしたらいいでしょうか
HSP3 モジュール機能ガイド
https://www.onionsoft.net/hsp/v36/doclib/module.htm
に、モジュールの書き方などに関する説明が書いてあり、…読んでもわからなかったと思います。
また するとんゲームの人 さんが求めている、入門者向けの「モジュールの使い方」については…そういえば見たこと無いような。
簡単なので書く人がいないのだと思うのですが、最初はその簡単が超難所でなかなか越えられないもの。それを超えると難しかったことを秒で忘れる。
モジュールを使い始める場合、最初はWin32API系(shell32, user32, kernel32)ではなくHDLに説明が記載されているものから使い始めることをお勧めします。
Win32API系は、マニュアル探して、解読してと大変。また、構造体があるとさらに難易度が…。
ということで、はじめは簡単で手ごろなところから慣れていく事をお勧めします。
#include "hspmath.as"
mes "2 x 2 x 2"
mes "2^3 = " + (2.0 * 2.0 * 2.0)
mes "2^3 = " + pow(2,3)
a = 3
mes "2^3 = " + pow(2,a)
これはhspmathモジュールを使用した例です。"hspmath.as"を#includeしたことで、pow関数が使用できるようになりました。
powにカーソルを合わせてF1キーを押すと、HDLが開いて関数の使用方法が表示されます。
このようにモジュールを#includeすると、モジュールが持っている命令を標準命令と同じような感覚で使えるようになります。