Новая Чат на t

Unix_Time

Пользователь
05.10.2019
84
17
Игровой ник: Unix_Time
Описание проблемы: Можно ли как-то выключить включение чата на t или на е? При игре с лаунчера, даже если ты вводишь в текст в диалоговое окно и при этом нажимаешь t/е, то у тебя открывается чат.
 
Привет! Можно скриптом отключить. Скачать и перенести в папку Moonloder.

upd: исправил
 

Вложения

  • noTchat.lua
    318 байт · Просмотры: 7
Последнее редактирование:
  • Лайк
Реакции: Jeffrey_Auditore

Unix_Time

Пользователь
05.10.2019
84
17
Привет! Можно скриптом отключить. Скачать и перенести в папку Moonloder.
Код:
arg = false
function main()
    repeat wait(0) until isSampAvailable()
    while true do wait(0)
        arg = sampIsChatInputarg()
        if arg and isKeyJustPressed(0x54) and not sampIsDialogarg() and not sampIsScoreboardOpen() and not isSampfuncsConsolearg() then
            sampSetChatInputEnabled(false)
        end
    end
end

sampfuncs log:
[ML] (error) noTchat.lua: ...mes\Samp-Rp.Ru Launcher\game\samp\moonloader\noTchat.lua:5: attempt to call global 'sampIsChatInputarg' (a nil value)
stack traceback:
    ...mes\Samp-Rp.Ru Launcher\game\samp\moonloader\noTchat.lua: in function <...mes\Samp-Rp.Ru Launcher\game\samp\moonloader\noTchat.lua:2>
[ML] (error) noTchat.lua: Script died due to an error. (41D79E74)
 

Unix_Time

Пользователь
05.10.2019
84
17
Я пробовал даже сообщения Windows перехватывать. Тут с помощью moonloader не исправить это. Это в asi где-то зашито лаунчером. Либо тратить пару часов на хук, либо вносить в ТЗ на обновление.

Lua Script:
local vkeys = require 'vkeys'

function onWindowMessage(msg, wparam, lparam)
    if msg == 0x0100 or msg == 0x0104 then
        if isSampAvailable() and (sampIsDialogActive() or sampIsChatInputActive()) then
            if wparam == vkeys.VK_T then
                consumeWindowMessage()
            end
        end
    end
end
 

Unix_Time

Пользователь
05.10.2019
84
17
Переустановка не помогла. Для большей ясности записал видео ситуации:
 

Violetta_Stich

Scythe_Meesa
Пользователь
Premium
11.01.2020
1 761
1 090
Эта проблема как была с релиза лаунчера, так и осталась, нажми f1 сверху слева шестеренка, и там убери галку с Enabled, может станет удобнее, но это не фикс чат на T(E)
 

Violetta_Stich

Scythe_Meesa
Пользователь
Premium
11.01.2020
1 761
1 090
Сам чат наверно в cef зарыт, чёрт его знает
 

Unix_Time

Пользователь
05.10.2019
84
17
Не знаю кто принял решение на добавление такого чата, но он очень неудобный. Иногда он начинает сам по себе затемняться, для этого нужно прожимать F7 чтобы он вернулся в нормальное, яркое положение. Он постоянно открывается от нажатия на T/Е, что тоже скорее раздражает, это должно быть опционально и по дефолту выключено. Попробуйте с таким чатом поработать в News, сразу прочувствуете всю его прелесть.
 

Nathan_Styles

Пользователь
20.02.2025
199
250
Такая же проблема, если нужно в диалоге писать какой то текст - вечно открывается чат

UPD: Может кому будет полезно, получилось пофиксить через AHK
AHK:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

; Скрипт работает ТОЛЬКО когда активно окно игры
#IfWinActive GTA:SA:MP

*$t::
; Определяем регистр (Shift/Caps)
isUpper := GetKeyState("Shift", "P") ^ GetKeyState("CapsLock", "T")

; Определяем язык
ThreadID := DllCall("GetWindowThreadProcessId", "Ptr", WinExist("A"), "Ptr", 0)
LangID := DllCall("GetKeyboardLayout", "UInt", ThreadID, "Ptr") & 0xFFFF

if (LangID = 0x0409) { ; English
    Send % isUpper ? "{U+0054}" : "{U+0074}"
}
else if (LangID = 0x0419 or LangID = 0x0422) { ; Russian/Ukrainian
    Send % isUpper ? "{U+0415}" : "{U+0435}"
}
else {
    Send {Blind}{Text}t
}
return

#IfWinActive
 
Последнее редактирование: