したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

最新版4.05+++公開!

1サンドバック:2025/06/25(水) 17:20:03
https://sandbagman.itch.io/hspboxing

IMEをネット対戦中に自動でオフ(名無し様、感謝!)

キーボードユーザーがネット対戦のスパー中に日本語入力がオンのままだと
左上に「つつつつ」などが表示されて焦ってしまう現象に終止符!

掲示板にプログラムソースをそのまま提供してくださった名無し様に感謝です。
ありがとうございました。(特に2.61用まで時間をかけて作成してくださった事!)

これまで
スパー開始時に自動で半角全角を実ボクが押していた
日本語入力がオフにされていたとしても自動で押していた

4.05+++
日本語入力がオンの時だけ押すようにした

ただし、スパーの冒頭時点で感知しているので
その瞬間以降に再び半角全角キーを押されてしまうとお手上げです。

なにもしないよう、お願いします!


不安点もあります。

4.05+++は、感知するタイミングを何度か調整して公開しています。

というのも、タイミングによっては謎の実ボク終了が発生、
原因はわからず、ただただ今のタイミングに設置したら落ちなくなった。

動いているので大丈夫だと思いますが、
全ての環境で試しているわけではありません。

ボット相手に3戦して無事を確認しましたが、
ヘビープレイでなにかが起こる可能性もあります。

なにかありましたら書き込みしていただけると助かります。

2名無しさん:2025/06/26(木) 03:28:23
4.05+++をDLして完全新規で始めてみたものの、
ストーリを一通り進めてネット対戦ができるようになったので「ネット対戦」を押したら内部エラー13が発生
一応再度ゲームを起動してもう一回ネット対戦を押したものの同じくエラー発生

HSP2.61の内部エラー13は3以降の13と同じようなので画像ファイルがないというエラー
4.05++で同じで同じエラーがあったようなので、ファイルの追加もれかなと予想

落ちる直前情報はここにコピペしたのでいいのかな?
特に不特定多数に見られて困る要素はなさそうだけど一応確認
ちなみに落ちる直前画像は真っ白な画像でした

3サンドバック:2025/06/26(木) 13:44:04
おちる直前情報、掲示板でOKです。
至急色々と調査してみます。

4サンドバック:2025/06/26(木) 13:53:34
こちらで不具合再現できました。
落ちる直前情報も確認できたので送らなくても大丈夫です。

うーむ、なぜだ…

5サンドバック:2025/06/26(木) 14:50:26
https://sandbagman.itch.io/hspboxing

ネット対戦のボタンを押したらエラー13を修正、
4.05++++として公開いたしました。

4.05+++でネット対戦に辿り着いていた期待のルーキーがいたら、
ものすごく残念!

名無し様、不具合報告に感謝です。
今回はやはりパックファイルのミスでした。

別のフォルダにバックアップをして、次回の破損に備えます。
ありがとうございました!

6名無しさん:2025/06/26(木) 21:30:46
修正確認しました
ところで、これまでにユーザーから送られてきた直前情報のエラー発生行数は-1以外にあったことはあるんですか?
少なくともHSP3では行数の取得が可能なのはスクリプトから実行した場合のみで、
EXEファイルから実行した時に内部エラーが発生しても行数は取得できない仕様のはずです
うろ覚えですがEXEファイルにした時点でHSPのソースコードはCのものに書き換えられていて、
HSPのソースコードにおける何行目でエラーが発生したか判断しようがないとかそんな理由だったはず

それはさておき、HSP3でリメイク版作るのも一つの手としてありかもしれないですね
今は3の方が手を付けやすいですしできる事も増えてますし便利になってる部分も多いです
使えなくなった命令や関数も多いので移行は大変だと思うけど、
UIとか今風に変えたりしてリマスター版って発売するのは大手メーカーもやってるし割とありだと思います

7サンドバック:2025/06/30(月) 16:54:03
exeからだと必ず-1なのですね。
知りませんでした。

エラー発生行は開発環境でも正しく表示されない状況になっており、
どの環境でももはや役に立っていないのが現状です。


実写でボクシングのHSP3への移植は何度か挑戦したのですが、
o2システムというネット対戦に関わる部分が
2.61用なので、自分には書き換えの難易度が高すぎて諦めました。


逆に旧作のグラフでボクシングは…

2.61?のソース紛失、
公開されているexeからソース吸い出し、
HSP3.xに書き直し、

の流れで移植に成功しています。

ただし、変数名が無機質な文字列に置き換わっていて、
もう人間では直感的にソースを読めないのが残念。


実ボクのキャラクターを
もっとスムーズに、もっとリアルに…
などと夢見ることも確かにあります。

ただし、すでに今が私のセンスの到達点であり、
私の持っている技術の限界点でもある。

もっといいUIやもっといい絵、システムなどが
もう思い浮かんでこなくて、イメージすらできなくて、
現状で最高の2Dボクシングゲームだと思っちゃっている。

私以上に時間を掛けて自作ゲームを磨いた人を知らないので、
もう充分、今の実ボクに愛情を注いだと思います。

なので、私がリメイクする事も難しそうです。

実写でボクシングに関して想像がもう湧いてきていない今、
別のシステムでボクシングの世界を表現しています。

次回作、ダイアログでボクシングをお楽しみに〜。
(開発言語はHSP3.xです)

8名無しさん:2025/06/30(月) 20:21:50
少なくともHSP作品で20年以上継続して更新しているのは唯一だと思うのでそれは確かに

o2システムはサービス終了してから代替サービスを用意するって話があった気がするけど探しても見当たらず
そういうのを実現する仕組みもサーバーの用意も難しいから、
今でもHSPゲームでオンライン通信対応してるのはほぼ無いし
他の要素要素を考えても恐らく自分で思ってる以上に技術力あると思いますけどねぇ

プロから見れば動作気になったりするかもですが素人のこちらには分からないのでなんともでして、
リメイクと言っても基本はこのままでいいと思うのですよ
どちらかというとリマスターとでも言うべきかな?
今の時代に合わせて1080pとか4kに対応してみたり、
Steamに対応してみたり、
要所要所をグラフィカルにしてみたり(例えばコントローラーの設定とかね)

(HSPの認知度ツクールとかに比べると少ないユーザー少ないからなぁ・・・
実ボクに限らずコンテストとかでも高クオリティなゲームあるのに人知れず消えてく運命・・・
大手企業Vtuberあたりがコンテストのゲームを実況でもしてくれれば・・・)

9名無しさん:2025/06/30(月) 20:41:23
o2のHSP3対応化の参考
https://quasiquote.org/hspwiki/O2%20for%20HSP3
元のソースを知らないのでこれだけで十分なのかとか動作対応しきれてるのかとか判断付かないけど

10名無しさん:2025/07/03(木) 05:15:20
IMEの話で今更の反応ですが、厳密にいうとアプリごとに割り当てられてるのではなく、
HSPでいうところのオブジェクトごとになります
例えば、ボタンとか入力ボックスとかそれぞれ個別です
screen 0とscreen 1みたいなウィンドウも個別です

話は変わり、不安な点のことや感知後に半角全角キーなどを押すと意味ない点など
そのあたりを考えてやり方を変えてみました
IMEの状態検知して状態に応じて全角と半角を切り替えるのではなく、
そもそもウィンドウのIME自体無効にしてしまいます
前述の通りの理由でチャットや名前入力時の入力ボックスではIMEが有効のまま、
基本はIME無効なので半角全角を実ボクが押すという必要もなくなります
今回はscreen後にコードを入れれば問題なく動くはず
screen命令を実行する場合はその都度必要です

;2.61用
screen 0 ;分かりやすいように入れただけ
ll_dll "user32.dll" ;DLL読み込み
ll_type "v" ;引数無し
ll_func "GetActiveWindow" ;アクティブウィンドウ取得用関数を指定
ll_call ;関数実行
ll_ret hwnd ;戻り値を変数hwndに入れる
ll_free ;DLL開放(しなくてもいいらしいけど、もうuser32.dllに用はないので開放する)

;IME無効化
ll_dll "imm32.dll" ;DLL読み込み
ll_func "ImmAssociateContextEx" ;入力メソッドコンテキストの設定変更用
ll_type "NNN" ;引数は数値,数値,数値
ll_n hwnd ;アクティブウィンドウのハンドルを最初の引数に指定
ll_n 0 ;IMEコンテキストとウィンドウの紐づけを解除する(つまりIME無効化)という指定(0)を次の引数に
ll_n 0 ;更に次の引数は2つめの引数が0の場合は関係ないので0
ll_call ;関数実行
ll_ret s ;戻り値を変数s(statはHSPのシステム変数で使用済みなので...)に入れる
if s=0 : dialog "失敗" ;戻り値(変数s)が1なら成功0なら失敗

;実際の処理に必要なのはここまで 以下はテスト用;
mes "WindowsのタスクバーにあるIMEを見てみるとIMEが無効になってるはず"
mes "試しに全角/半角キーを押してもIMEは変化せず日本語が表示されることもない"
mes
mes "下のボタンを押すと入力ボックスが表示される"
mes "画面が変わって名前入力やチャットできる画面に遷移した再現"
button "おす",*a
stop

*a
cls
mes "入力ボックスにカーソルが当たって(フォーカスされて)IMEが有効になってるはず"
mes "半角全角キーも効いて日本語入力も可能"
mes "試しに手動でウィンドウを最小化してもう一度表示してみると"
mes "入力ボックスからフォーカスが外れるのでIMEは無効になる"
mes "入力ボックス内をクリックしてフォーカスすると再度IMEが有効になる"
input z
mes
mes "下のボタンを押すと入力ボックスが消える"
mes "画面が変わって名前入力やチャットできる画面から他の画面に遷移したという再現"
button "おす",*b
stop

*b
cls
mes "入力ボックスが消えてもIMEは無効になります"
stop
;参考:https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getactivewindow
;参考:https://learn.microsoft.com/ja-jp/windows/win32/api/imm/nf-imm-immassociatecontextex

11サンドバック:2025/07/11(金) 18:44:03
IMEはオブジェクトやスクリーン別なんですね、
知りませんでした。

今回提供していただいたソースはIME問題の根本的な解決になりそうです。
ありがとうございます。

今、新作の開発が終盤に入っており、
間を開けると色々と忘れてしまいそうです。

実ボクのIME問題の根本解決もいずれ必ず着手しますが、
新作の作業進捗のいい頃合い、段落までお待ち下さい。

今回のソースだとオフラインモードでもIME誤爆が発生しなくなるので、
そちらにも適用させようと考えています。

素晴らしいですね、感謝!


実ボクの3.xリメイク、考えると気が遠くなりそうですが、
最新のウインドウズで5.5?のグラボクが起動しなかった件もあるし、
いずれ2.61アプリも動かなくなる時が来るかもしれません。

実ボクが日本中で動かなくなるのは悲しく、
自分の一部が死んでしまったような気持ちになるでしょう。

その時が来たら、最優先になると思います。
(来なければ一番いいけれど…)

12サンドバック:2025/07/12(土) 11:28:07
https://sandbagman.itch.io/hspboxing
最新版4.05*でスパー中のIMEを無効としました。

ソース提供によりスムーズに作業ができました。
名無し様に感謝です。

ありがとうございました!

(バージョン番号を4.06にしようかとも思ったのですが、
ボットの更新も必要になるのでサボっています)

13名無しさん:2025/07/13(日) 07:03:29
お疲れ様です
新作の開発も大事ですし勝手にあれこれ言っとるだけなのであまりお気になさらずに
適当に受け流して暇なときに手を付けるくらいでOKですよ

14名無しさん:2025/07/14(月) 06:50:38
ネット対戦でグローブの色の選択画面から対戦するリングの画面に移動する時、
「失敗」とだけ書かれたダイアログが表示されることがあるのは何なんだろう?
前から偶に出てたけどそのままダイアログを閉じれば何事もなくゲームが進行するので無視してたけど、
これが2連続で出たので書き込もうかとダイアログが出たまま数十秒から1分程度書き込んでる間放置してたら、
ダイアログを閉じた後相手との通信に失敗という表示が出た後に内部エラー7が発生してしまった・・・

--------------------------------------------------------------
実ボク4.05 : 2025年 7月 14日 6時:
エラー 7 : Nameからのエラー報告:PMODE=3
発生行 -1 : フリー版 0 : x=141 : y=308 : ループ0
レベルランキング=4:王座=0/0
受信データ=:TOUGOU04.10=4:
MYID=1:RED=1:cntT=0:NETAA=0:NETBB=0:NETCC=0:NETDD=0:cntTmax=50
スパ天に2名。(Name vs bot001)
RANSU=6
RANSU1=0
RANSU2=0
ive=0
ive1=95
ive2=95
--------------------------------------------------------------

15名無しさん:2025/07/18(金) 07:20:14
しばらくプレイしていてこちらでは100%再現できてるのでご報告
ネット対戦でリングの画面に移動する時点で実写でボクシング以外のウィンドウがアクティブになってる場合、
「失敗」と書かれたダイアログが出現する模様
それを数十秒以上放置した上でダイアログを閉じると通信に失敗→内部エラー7になります

16サンドバック:2025/07/18(金) 17:41:43
報告ありがとうございます。

gsel命令に常にアクティブにするという機能があったように思います。
あれを使ってネット対戦時は強制的に常にアクティブにしてみたら
治るのかもしれないので、次の作業機会に色々と調査してみます。

実ボクは私にとって大事な作品、おかしな部分を放っておくことはできません。
今後とも報告していただけたら嬉しいです。

17名無しさん:2025/07/18(金) 23:07:32
gsel命令で可能なのはウィンドウの非表示と表示、最前面に表示ですね
gselには常にアクティブは無いはずです(HSP2.6は分かりませんが恐らく)

正攻法なら何が失敗しているのか突き止めて解消する方法ですが、
流石に失敗だけでは何の推測も出来ないですね
dialog命令で「失敗」と表示させている個所を見れば原因は分かりそうですが
その失敗している事が何かわかったところで、
ウィンドウが非アクティブでも失敗しない方法を探すのに苦労する可能性はありそう
逆に案外簡単に解決する可能性もありますが

ところで、内部エラーの方は通信に失敗さえすれば今回の方法じゃなくても発生する気がします
通信に失敗することで本来その通信で取得できていた何らかのデータの取得ができず、
内部エラー7(配列の要素が大きすぎます)が発生するのではないかと

という点からの予測ですが、
通信に失敗した後それを示すダイアログは表示するものの通信成功時と同じ処理を続行しているのではないかと推測
通信に失敗のダイアログ表示後はロビーに戻るかサーバー選択まで戻すことで解決するかも?


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板