1

チャット内で特定の単語を検索し、指定されたチャットフレームに送信するアドオンは機能しますが、ランダムにエラーが発生し、ゲームがクラッシュします

このアプリケーションで重大なエラーが発生しました:
エラー #132 (0x85100084) 致命的な例外
プログラム: C:\WoW\Wow.exe
例外: 0023:00416DB0 の 0xC0000005 (ACCESS_VIOLATION)

「0x00416DB0」の命令が「0x1F97FFFE」のメモリを参照していました。
メモリを「読み取る」ことができませんでした。


クラッシュした後、チートエンジンを開いてリージョンを参照し、何があったかを確認しました

1F97FFFE: http://i.imgur.com/D7XKi2D.jpg
00416DB0: http://i.imgur.com/duTM315.jpg

そしてアドオンコード:

-- イベント CHAT_MSG_CHANNEL
イベント == "CHAT_MSG_CHANNEL" の場合
    TriggerEnabled の場合
        local arg1 = string.lower(arg1)
        ローカルで見つかった、ダンプ = false、false

        for k,v inpair(lsus.Triggers) do
            見つからない場合
                for k,v inpair(lsus.NegTriggers) do
                    if (string.find(arg1, v)) then
                        ダンプ = 真
                    終わり
                終わり

                if (string.find(arg1, v)) かつダンプしない場合
                    local output = " [\124Hplayer:" .. arg2 .. ":1:WHISPER\124h" .. arg2 .. "\124h\124r]: " .. arg1:gsub(v, "\124c0000FF00\124h" . . string.upper(v) .. "\124h\124r")
                    print(出力, 0.41, 0.80, 0.94)
                    見つかった = 真
                終わり
            終わり
        終わり
    終わり
終わり


--印刷機能
関数 print(msg, r, g, b)
    そうでない場合
        ChatFrame1:AddMessage(メッセージ)
    そうしないと
        ChatFrame1:AddMessage(msg, r, g, b)
    終わり
終わり

なぜこれがゲームをクラッシュさせているのか、誰でも私を助けることができますか?

4

1 に答える 1

0

おそらくあなたのケースではありませんが、パターン内のマジック文字による予期しない動作を回避するため string.find(arg1, v, 1, true)に代わりに使用してみてください。string.find(arg1, v)

-- Example:
local str = 'string.find hangs on this string'
string.find(str, '.*.*.*.*.*.*.*.*.*.*.*#')
于 2013-03-05T21:17:41.233 に答える