作ってみる。
RagAddress.INIを使用することで、RAGNAROKクライアントの更新については何も考えずにすませようと企む。
StatIndexの値が謎。しばらく最大HP/SPの取り方が判らなくてハマる。
グラフの色分けがおかしかったのを修正。
死んだりレベルアップなどで経験値が減ると時給計算がおかしくなる。
いろいろ手直し。
自動芋機能搭載。
自動芋機能が機能しない。どうも一度死なないとフラグが初期化されないようだ。おかしい。
ということで直す。
ファンクションキーの連打は速すぎても認識しないらしい。
臨時パーティの人がいうに、ファンクションキーを押してからの経過時間を表示する機能というのがあると便利らしい。
とりあえず作ってみる。
ファンクションキーによるタイマーは、クリックしてからカウントしたほうがいいものもあるので設定できるようにする。
しかし、マウスのクリックがWindows 98では検出できない。Windows XPならできるのに。Windows 98は放置か。
シフトキー拡張。ファンクションキーを押した時に、同時にシフトキーも押したことにする機能を追加。
専用ページをでっち上げて公開してみる。
Windows 2000でもマウスのクリックは検出できなかった。
GetKeyState()やGetAsyncKeyState()、GetKeyboardState()ではうまくいかないようなのでDirectInputを使う。
シフトキー拡張の処理は.EXEではなくて.DLL側で行うように変更。
修正ミスでNULLポインタ参照するバグが出来てしまったため、修正。クライアントを立ち上げてからRSVを立ち上げるとこける。先にRSVを立ち上げていたために見逃した。
ログイン状態の判定方法を変更。
自動連打中にファンクションキーを押した時には、一時的に連打を中止する。
非アクティブ時にマウスカーソルを強制表示。
クライアントをアクティブにした時にはRSVのウィンドウも前のほうに持ってくる。
再描画時にちらつくため、毎回全部描画し直すのをやめる。すると、再描画が必要な時(最大重量が読み取れなくてグラフ表示位置がズレた時、にも描画しない時が発生中。
ファンクションキーの連射機能。押しっぱなしで連射。
カートの搭載量/積載量の表示。
経験値グラフの色を変えてみる。
常に表示フラグが、ROがアクティブになると消えてしまう不具合。
キャラクタ変更時にタイマーをクリア。
ダイアログに存在するグラフの幅がダミー項目だったので使用するように。
offset_x/offset_yで表示位置をずらせるように。ダイアログは面倒なので未作成。
終了方法によりINIファイルを更新しないルートがあったので修正。今まではAlt + F4で終了するとINIファイルを更新するが、右クリック→終了だとINIファイルを更新していない。これをどちらでもINIファイルを更新するようにした。
キー設定を10進数で書き込んでしまうため、読込時に誤動作していたので修正。
RoAddr.INIぷち対応。検索するウィンドウキャプションウィンドウクラスは"Ragnarok"のまま。RoAddr.INIのつもりで読み込みを行い、読めなかったらRagAddress.INIと仮定してリトライする。
RoAddr.INI/RagAddress.INIが読み込めなかった時にはエラーメッセージを表示。
起動直後、ファンクションキー連打を無効にしていたのをやっぱり有効になるように変更。
死亡時にファンクションキー連打を無効にしていたのをやめる。これは一度死んでみないとテストできない。
こんどはキー設定を10進数で読み込んでいたので修正。
設定ダイアログでアドレスファイルを指定し直した時に、RoAddr.INI/RagAddress.INIを読み直しているもののそこで読み込み成功判定を行っていなかったため状態が遷移しない。
といった不具合があったので修正。
ファンクションキーを連射している時の表示が、キーを離しても元に戻らない不具合の修正。
連射機能で、しっかり食べるように小細工を入れてみる。
#23で直しきれていなかった「ファンクションキーを連射している時の表示が、キーを離しても元に戻らない不具合」の修正。
起動直後にタイマーの設定が
に化けていたのを修正。
三桁区切り(,編集)にバグがあったのを修正。
連射機能をONにしてファンクションキーを連射すると、自動連打の停止条件を満たすまで連射が止まらない現象を修正。キーを離した時点で止まる。
状態遷移が
という作りになっていたため、連射が始まると連射状態に遷移してしまい停止条件を満たすまで連射しっぱなしだった。
状態遷移を自動連打と連射とで分けた。
CPU使用率設定を追加。プロセス優先度を設定するのではなく、RainのようにHLTさせまくるような仕組みだと思うのが近いと思う。アクティブ時と非アクティブ時での使用割合を設定して、ショートカットキーを押してONにする。OFFにするにはもう一度ショートカットキー押す。
カート判定のため、RoAddr.INIのEffectStateに対応。存在しなくてもエラーにはしない。
設定ファイルにZenyの項目がなくてもエラーとはしないように修正。
すげーおざなりにアイコンをでっち上げてみる。
CPU使用率設定をconfig.iniに記録し読み直すように。
通常時の監視間隔が秒間2回では短すぎるようなので、秒間4回に変更。
ペットの状態を表示してみる。
RoAddr.INIの[MAIN]セクションにペット状態の設定が必要。
設定項目と値は、現時点では以下のとおり。
PetName=0x0069E948
PetSpriteType=0x0069E96C
PetLv=0x0069E970
PetFullness=0x0069E974
PetRelation=0x0069E978
PetAccessary=0x0069E968
満腹度、親密度のグラフ表示を追加。
うっかりして「友好度」としていたのを「親密度」と修正。
pet対応版の変更を本体に反映。
config.iniの書式変更。RagAddressとしていたのをRoAddrに変更。
デバッグ用のメッセージが消去されずに残っていたので削除。DLLロード時に"DLL Loaded."と表示されていたり。
正式RoAddr.INIでペットのアクセサリ項目のスペルが変わっていたのに気付かずにリリースしていたので修正。
それだけ、というのもアレなので例によって実行ファイルサイズを小さくしてみる。
ファンクションキーを離した時に、マウスをクリックしたことにできる「離してクリック」機能を追加。
シフトキー拡張をファンクションキーごとに設定できるように変更。
設定ダイアログがごちゃついてきたので、連打支援系とタイマー系とでダイアログを分ける。
ファンクションキーを離した時に、マウスをクリックしたことにできる「離してクリック」機能を追加。
シフトキー拡張をファンクションキーごとに設定できるように変更。
設定ダイアログがごちゃついてきたので、連打支援系とタイマー系とでダイアログを分ける。
「離してクリック」が動作しないことがあるのでディレイを入れてみるテスト。
フックの仕方がアレだったのを修正。これでろ++と共存可能になったハズ。
「離してクリック」機能が邪魔になることがあるので、マウスのボタンを押しながらキーを離した時には自動クリックを行わないようにした。
ニンジン自動連打中にキーが押されたら一時的に連打を止めてみる。
ニンジン連打中のハエが使いやすくなるハズなんだけど、効果がよく解らない。
タスクトレイ用のサンプル代わりに書いてみる。
#36で追加した、「離してクリック」機能のキャンセル方法が使いにくいので、離してクリック機能を書き直す。
別のファンクションキーを押した時やマウスのクリックでキャンセルできるように変更。