For those who speaks English: considering what the author said in the latest comment, this scripts aims to make sure the player ped/character uses pain audio speeches and tries to prevent the player ped from not saying them, not prevent them from using pain speeches. I thought what this script is for wrong until now though.
For those who speaks English: this script does not work without a flaw, and it may crash your game if the game version is not v1.0.2944.0. I think the author is not too experienced about memory editing and we could forgive for being ignorant.
@YotoTor You must be meaning "Can't find native 0x95812F9B26074726". LemonUI may call DRAW_SPRITE_ARX_WITH_UV, which is introduced in v1.0.1868.0, and you can't call it in any versions prior to v1.0.1868.0, so you should use v1.0.1868.0 or later versions so you won't see that error by ScriptHookV (for calling that native function in LemonUI). If you wish to use scripts that's dependent on LemonUI in older ones, consult the authors and they may propagate the issue to LemonUI's repo on GitHub if they are convinced.
Not really important for you, but I left the note like "you can find what DRAW_SPRITE_ARX_WITH_UV eventually calls with "48 8B 41 10 66 39 70 58 74 06 48 8B 78 50 EB 07" ", so those who like to reverse engineer find a way to workaround for older game versions in ScriptHookVDotNet's codebase btw.
As of v1.10. LemonUI calls DRAW_SPRITE_ARX_WITH_UV when ScaledTexture.DrawSpecific is called or that method is indirectly called by NativeGridPanel.Process when NativeGridPanel.Style is set to GridStyle.Row or GridStyle.Column. I searched the codebase, and DRAW_SPRITE_ARX_WITH_UV is the only native that isn't available in all game versions out of the natives LemonUI may calls.
For those wondering how ScriptHookV would be used for this mod, not really (the description said false info). No need to install ScriptHookV, only the ASI loader required as OpenIV.asi isn't dependent on SHV.
This mod doesn't have compatibility issues in between b2802 and b2944. You can find memory patterns used in this mod in those versions (use ILSpy or some similar tool to extract). No Rockstar Editor Restrictions is to blame in the compatibility issues.
I know they use hardcoded joaat hashes of "SP0_TOTAL_CASH", "SP1_TOTAL_CASH", "SP2_TOTAL_CASH" for money logic code in the exe, but I'm not sure how exactly they read or write an appropriate stat for money transaction.
original 1.3.0.0 version uploaded by jedijosh920 has a fundamental flaw that is not even about compatibility. When you are in the driver seat of a car and you press the interact key ("J" by default), the script will throw System.IndexOutOfRangeException if there's no pedestrean in 3-meter circle of the player. Using older ScriptHookVDotNet 2.10.10 doesn't fix the problem, of course (you just won't see the exception log, one OnKeyDown call stops at where a exception is throwed in all SHVDN versions). Instead, use Ganjitsu's fixed version which is uploaded on January 14, 2022, the problem is fixed in that version (requires 2.10.12 or later that comes with SHVDN 3.0.2 or later).
@HKH191 Since JohnFromGWN said you should use SHVDN v3 (not v2) and as the current project lead of SHVDN (crosire retired his position in May 2023), I would say you would want to have your scripts migrate to v3.
Although we keep maintaining the v2 API for compatibility reasons for now (in both game versions and existing scripts), we aren't adding features to v2 API (since v3.0.0 has been released). Maybe we may add some support for some edge cases, but no more. New warnings would annoy you starting from v3.7.0 and possibly we abandon the support for v2 API sometime… SHVDN will compile against source/uncompiled scripts against v3 API by default since v3.7.0, too (although you still have an option to specify an API version). I'm going to create a migration guide after v3.7.0 is released though.
@nep nep ああ、pain系の音声が出る状況ならいつでも出るようにしたいのであって無効化したいのじゃなかったんですね。だからメモリ書き換えしてたと。まだDISABLE_PED_PAIN_AUDIOの機械語の中身は見てないけどどうせpain系の音声を出させないフラグ立てるだけのはずやから、これじゃpain系の音声が出ないのを防ぐのは無理でしょうね(無敵フラグは対応するのが1つあれば防げるってののに似てるでしょう)。
For those who speaks English: considering what the author said in the latest comment, this scripts aims to make sure the player ped/character uses pain audio speeches and tries to prevent the player ped from not saying them, not prevent them from using pain speeches. I thought what this script is for wrong until now though.
@nep nep 最新版以外のexe持ってないけど危険すぎる野良のアップロード物に手を出さずに他のバージョン試したいなら、RTA用のProject 1.27があります。Steam版を持ってるならDepotDownloaderでダウンロードする手も一応使えますね。
@nep nep YouTubeで確認した限り日本語話すようですから日本語で伝えること書きますね。まず、pain系の音声が全部出なくてもいい(落下の声とかもなくていい)ならDISABLE_PED_PAIN_AUDIOってネイティブ関数あるので、それ使えばアップデートの心配しなくてもよくなるはず。次に、このスクリプトはv1.0.2944.0で動かす限りはクラッシュしないけどアプデでexeの構造は変わります。メモリの内容を直接読み書きするなら、固定のアドレスを使うのでなくsigとかメモリパターンとかいうメモリの中身で探して見つかったところからアドレスを抜き出すとアプデ耐性がはるかにあがりますね。exeはファイルとして置かれてる状態だと暗号化されているので、IDAとかGhidraとかで解析するなら起動した状態で(x64dbgと)Scyllaでも使ってダンプする必要があります。まあsigの作り方はやみくもにexe間の違い見るだけじゃなくて正直x64のアセンブリの動き方でも覚えたほうが近道かな…
For those who speaks English: this script does not work without a flaw, and it may crash your game if the game version is not v1.0.2944.0. I think the author is not too experienced about memory editing and we could forgive for being ignorant.
@YotoTor You must be meaning "Can't find native 0x95812F9B26074726". LemonUI may call DRAW_SPRITE_ARX_WITH_UV, which is introduced in v1.0.1868.0, and you can't call it in any versions prior to v1.0.1868.0, so you should use v1.0.1868.0 or later versions so you won't see that error by ScriptHookV (for calling that native function in LemonUI). If you wish to use scripts that's dependent on LemonUI in older ones, consult the authors and they may propagate the issue to LemonUI's repo on GitHub if they are convinced.
Not really important for you, but I left the note like "you can find what DRAW_SPRITE_ARX_WITH_UV eventually calls with "48 8B 41 10 66 39 70 58 74 06 48 8B 78 50 EB 07" ", so those who like to reverse engineer find a way to workaround for older game versions in ScriptHookVDotNet's codebase btw.
As of v1.10. LemonUI calls DRAW_SPRITE_ARX_WITH_UV when ScaledTexture.DrawSpecific is called or that method is indirectly called by NativeGridPanel.Process when NativeGridPanel.Style is set to GridStyle.Row or GridStyle.Column. I searched the codebase, and DRAW_SPRITE_ARX_WITH_UV is the only native that isn't available in all game versions out of the natives LemonUI may calls.
For those wondering how ScriptHookV would be used for this mod, not really (the description said false info). No need to install ScriptHookV, only the ASI loader required as OpenIV.asi isn't dependent on SHV.
This mod doesn't have compatibility issues in between b2802 and b2944. You can find memory patterns used in this mod in those versions (use ILSpy or some similar tool to extract). No Rockstar Editor Restrictions is to blame in the compatibility issues.
@dani703q Game.Player.Money works only for the 3 protagonists models, kinda by the design. https://github.com/scripthookvdotnet/scripthookvdotnet/blob/64242f7a21bdc84044ff213602801670f8ca44fa/source/scripting_v3/GTA/Player.cs#L72-L100
I know they use hardcoded joaat hashes of "SP0_TOTAL_CASH", "SP1_TOTAL_CASH", "SP2_TOTAL_CASH" for money logic code in the exe, but I'm not sure how exactly they read or write an appropriate stat for money transaction.
original 1.3.0.0 version uploaded by jedijosh920 has a fundamental flaw that is not even about compatibility. When you are in the driver seat of a car and you press the interact key ("J" by default), the script will throw System.IndexOutOfRangeException if there's no pedestrean in 3-meter circle of the player. Using older ScriptHookVDotNet 2.10.10 doesn't fix the problem, of course (you just won't see the exception log, one OnKeyDown call stops at where a exception is throwed in all SHVDN versions). Instead, use Ganjitsu's fixed version which is uploaded on January 14, 2022, the problem is fixed in that version (requires 2.10.12 or later that comes with SHVDN 3.0.2 or later).
@HKH191 Since JohnFromGWN said you should use SHVDN v3 (not v2) and as the current project lead of SHVDN (crosire retired his position in May 2023), I would say you would want to have your scripts migrate to v3.
Although we keep maintaining the v2 API for compatibility reasons for now (in both game versions and existing scripts), we aren't adding features to v2 API (since v3.0.0 has been released). Maybe we may add some support for some edge cases, but no more. New warnings would annoy you starting from v3.7.0 and possibly we abandon the support for v2 API sometime… SHVDN will compile against source/uncompiled scripts against v3 API by default since v3.7.0, too (although you still have an option to specify an API version). I'm going to create a migration guide after v3.7.0 is released though.
I searched the exe for b2944 (the version of June 2023), and this script does not seem to function because memory pattern/signatures for throttle and brake patch do not detect in b2944. https://github.com/LieutenantDan1/SmoothDrivingV/blob/d1cdb711b9890aaa8c2f59f48a83a5d2f91ca143/SmoothDrivingV/Main.cs#L71-L80
If someone wants to update this script, you may want to seek help from those who's good at reverse engineering, such as alexguirre. I'm concerned because HKH191 may try to update this script, who doesn't look like he's good at reverse engineering to me. I'm busy updating SHVDN for now btw. https://www.gta5-mods.com/tools/menyoo-map-to-object-placement-map-converter#comments_tab