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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0408
extウェイトの長さの変更10未解決


ext

リンク

2010/4/8(Thu) 21:22:23|NO.31861

どうも、extです。

HSPのゲームのウェイト処理の長さを、
別の実行ファイルから変更することはできますでしょうか?

単純に言うと、FPSを変更するという意味です。

解決方法ご存知の方いましたら教えてくだされば幸いです。



この記事に返信する


木村

リンク

2010/4/8(Thu) 22:02:56|NO.31862

 実行用プログラムと設定用プログラムの2種類を作って設定用プログラムで作ったデータ
ファイルを実行用プログラムの開始時点に読み込めば可能かと思います。以下は一例

//★以下より、"実行用プログラム.hsp" chdir dir_cur : dirlist list,"補助データ.owt" if stat=0 : dialog "補助用プログラムで一度設定をしてください",0 : end notesel note : noteload "補助データ.owt" : noteget per,0 : per=int(per) #undef await #define await(%1) await@hsp (%1)*per/100 repeat : mes "cnt="+cnt : await 17 : loop //以上、"実行用プログラム.hsp" //★以下より、"設定用プログラム.hsp" put=100 : input put : button goto "決定",*決定 : stop *決定 if int(put)<1 : dialog "Wait率は1以上にしてください",0 : stop note=str(put) : notesel note : notesave "補助データ.owt" : end //以上、"設定用プログラム.hsp"

 #undef〜#define再定義を利用したのはこちらの方が全awaitを均質に加減速できるから
です。参考になれば幸いです。



u

リンク

2010/4/8(Thu) 23:42:41|NO.31864

sendmsg経由でのメッセージ送信を行うのが負担も少なく良いのではないでしょうか。
以下サンプルではsendmsgを使うため(対象ウインドウハンドルを知る為)のファイルマッピングオブジェクトを使っています。

メイン

#include "kernel32.as" #define FILE_MAP_WRITE 2 #define FILE_MAP_READ 4 #define PAGE_READWRITE 4 mutex="固有の名前" CreateMutex 0,1,varptr(mutex) screen 0,200,200 title "メイン" mapname="testtest"//ファイルマッピングオブジェクト名 CreateFileMapping -1,0,PAGE_READWRITE,0,4,varptr(mapname)//マッピングオブジェクトを作成 hMapobj=stat//ファイルマッピングオブジェクトハンドルを格納 MapViewOfFile hMapobj,FILE_MAP_WRITE,0,0,0 lp=stat//共有メモリ領域の先頭アドレス dupptr share,lp,4,4//共有領域のクローン変数を作る share=hwnd//メッセージ用のウインドウハンドルを格納 UnmapViewOfFile lp//ビュー解除 w=1 gsel 0,2 oncmd goto *MESSAGE,0x1234//固有のメッセージ onexit *EXIT *MAINLOOP repeat redraw 0 color 255,255,255:boxf:color pos 0,0 mes "カウント:"+c mes "ウェイト:"+w redraw 1 c++ await w loop stop //メッセージが来た *MESSAGE w=wparam//wparamにウェイト値が入っている goto *MAINLOOP //終了時 *EXIT if hMapobj:CloseHandle hMapobj//マッピングオブジェクトのクローズ end

制御側

#include "kernel32.as" #define FILE_MAP_WRITE 2 #define FILE_MAP_READ 4 #define PAGE_READWRITE 4 mutex="固有の名前" CreateMutex 0,1,varptr(mutex) GetLastError if stat==0xB7{ title "メインが起動しています" }else{ title "メインが起動していません" } screen 0,300,200 gsel 0,2 onexit *EXIT mes "ウェイト値:" num=50 input num,60,20 button "変更",*SEND stop //メッセージ送信 *SEND if hMapobj==0{ mapname="testtest"//ファイルマッピングオブジェクト名 CreateFileMapping -1,0,PAGE_READWRITE,0,4,varptr(mapname)//マッピングオブジェクトを作成 hMapobj=stat//ファイルマッピングオブジェクトハンドルを格納 } MapViewOfFile hMapobj,FILE_MAP_WRITE,0,0,0 lp=stat//共有メモリ領域の先頭アドレス dupptr share,lp,4,4//共有領域のクローン変数を作る getdata=share//クローン変数から領域の内容を取得 UnmapViewOfFile lp//ビューのマッピング解除 dim share,1 sendmsg getdata,0x1234,num,0//固有のメッセージを送信(wparamにウェイト値) stop //終了時 *EXIT CloseHandle hMapobj//マッピングオブジェクトのクローズ end



ext

リンク

2010/4/9(Fri) 18:49:51|NO.31872

すみません、私の質問の仕方が悪かったのですが、
ゲーム側のスクリプトを変更することなく、
FPSの値を変更することはできないのでしょうか?

せっかくスクリプトまで書いていただいたのに申し訳ありません。



hatter

リンク

2010/4/9(Fri) 19:44:07|NO.31874

> ゲーム側のスクリプトを変更することなく、
ゲーム側のスクリプトはどんな感じになっているんですか?
それが分からないとどうしようもありません。
ゲーム側のスクリプトを変更するのが楽だとは思うんですがどんな事情があって
それができないのでしょう?ソースコードの権利などの都合ですか?

まさかとは思いますが、HSP製のゲームの改造ツール,チートの類を作ろうとしておるわけではないですよね?
この事を否定する為にもゲーム側のスクリプトの一部開示(FPSに関連する部分)さえしてくれれば嫌疑はとけます。
変な嫌疑をかけてすみませんが、以前の「うさみみハリケーン」の事もありますし、ちょっと不安なだけです。



ext

リンク

2010/4/9(Fri) 19:55:26|NO.31875

>>ゲーム側のスクリプトはどんな感じになっているんですか?
すいません、なんと答えたら良いかわかりません。

>>ゲーム側のスクリプトを変更するのが楽だとは思うんですがどんな事情があってそれができないのでしょう?
もともと私が作ったものではないからです。

俗に言うツールアシステッドスピードランのようなツールを作ろうかと思っています。
製作者の許可はもらっています。



u

リンク

2010/4/9(Fri) 20:16:12|NO.31876

HSPのゲームとあったのでHSP同士で行える方法を載せましたが、別のアプリケーションを制御したいなら「HSP」は紛らわしいかもしれませんね。
いわゆる速度調整ツールのようなものが作りたいということですかね。
すみませんが私もその方法は分からないのでお力になれそうもありません^^;

予想100%の予想だとグローバルフック等でタイマーメッセージを弄ったりするんでしょうかね。
その場合はHSPだけでは不可能になっちゃいますが・・。



木村

リンク

2010/4/9(Fri) 20:23:52|NO.31877

 スクリプト段階(拡張子.hsp)のデータさえあれば話は早いんですけどね。#undef〜#defineで
最初から時間待ち命令自体を改造すれば良いのですから。

 その製作者の方からスクリプト段階のデータをいただく事はできないのでしょうか?



ext

リンク

2010/4/9(Fri) 20:42:35|NO.31880

>>uさん
確かに紛らわしかったかもしれませんね、以後気をつけます。
HSPでは不可能ですか・・・
情報ありがとうございます。

>>木村さん
残念ながらそれは出来ないみたいです。



hatter

リンク

2010/4/9(Fri) 20:49:33|NO.31881

というか、なんの解決策にもなりませんが
なんで制作者はあなたにわざわざそのようなソフトを作らせようとしているのですか?
ゲームを作る人の方がそういうプログラムは簡単に作れるでしょうし、
わざわざ人に頼むと思い通りにもなりませんし、なにせFPSの変更は
プログラムの仕様が影響するのは必須で自分で作った方が安全だと思います。

その辺はどうなのでしょう?というか、具体的にはどういう指示を受けているんですか?



ext

リンク

2010/4/9(Fri) 21:16:02|NO.31883

>>hatterさん
開発がもう既に終了しているゲームなので、
別にツールは作ってもいいけど手は貸さないとのことでした。



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