Как сделать WH на текст?

Статус
В этой теме нельзя размещать новые ответы.

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как на Lua сделать WH на обычный текст, не считается текст, который идёт в чат, а именно над головой вошёл игрок в афк или же его описание снизу, либо его семью?
 
Решение
lua:
function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
 
   if text:find("Family") or text:find("Empire") or text:find("Squad") or text:find("Dynasty") or text:find("Corporation") or text:find("Crew") or text:find("Brotherhood") then
       return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}
   end
end

Извиняюсь за тупой вопрос, но куда это вставлять?


В итоге у тебя выйдет вот так
yBym4JP.png

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,225
над головой не 3д текст, а чат баббл:
Lua:
{'onPlayerChatBubble', {playerId = 'uint16'}, {color = 'int32'}, {distance = 'float'}, {duration = 'int32'}, {message = 'string8'}}
описание и фама:
Lua:
{'onCreate3DText', {id = 'uint16'}, {color = 'int32'}, {position = 'vector3d'}, {distance = 'float'}, {testLOS = 'bool8'}, {attachedPlayerId = 'uint16'}, {attachedVehicleId = 'uint16'}, {text = 'encodedString4096'}}
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,225
script_name('dffsd')
script_author('sdffsd')

require 'lib.sampfuncs'
require 'lib.moonloader'

function main()
if not isSampLoaded() or not isCleoLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end

{'onCreate3DText', {id = 'uint16'}, {color = 'int32'}, {position = 'vector3d'}, {distance = 'float'}, {testLOS = 'bool8'}, {attachedPlayerId = 'uint16'}, {attachedVehicleId = 'uint16'}, {text = 'encodedString4096'}}

while true do
wait(0)
end
end

Не работает
Lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
    -- code
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    -- code
end
 

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
    -- code
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    -- code
end
Не работает, только если близко подойду будет отображаться семья, если отойду не будет
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,225
Не работает, только если близко подойду будет отображаться семья, если отойду не будет
это не готовый вх, это функция с помощью которой ты сможешь отследить появление текста
 

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
это не готовый вх, это функция с помощью которой ты сможешь отследить появление текста
Как его использовать я ничего не понял, ты мне прислал код на описание и семью, потом прислал совершенно другой код, как отследить текст???

Куда вставлять и как он может повлиять на создание вх?

Фама:
{'onCreate3DText', {id = 'uint16'}, {color = 'int32'}, {position = 'vector3d'}, {distance = 'float'}, {testLOS = 'bool8'}, {attachedPlayerId = 'uint16'}, {attachedVehicleId = 'uint16'}, {text = 'encodedString4096'}}

Куда он пишется эти данные? Чат бабл разве видит фаму? Я играл со скриптом, фаму он не отслеживал

Lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
    -- code
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    -- code
end
 

Liquit

Активный
277
91
Привет!
Я могу предложить в бесконечном цикле пробегать по всем 3d text'ам и делать, что тебе нужно
сейчас приложу пример
пробегается по всем 3д текстам, и если это фама, то пушит в таблицу, потом рендерит, вот сообщение с кодом: https://www.blast.hk/threads/105590/#post-869063
 

W.H.

Участник
25
64
Как его использовать я ничего не понял, ты мне прислал код на описание и семью, потом прислал совершенно другой код, как отследить текст???

Куда вставлять и как он может повлиять на создание вх?

Фама:
{'onCreate3DText', {id = 'uint16'}, {color = 'int32'}, {position = 'vector3d'}, {distance = 'float'}, {testLOS = 'bool8'}, {attachedPlayerId = 'uint16'}, {attachedVehicleId = 'uint16'}, {text = 'encodedString4096'}}

Куда он пишется эти данные? Чат бабл разве видит фаму? Я играл со скриптом, фаму он не отслеживал

Lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
    -- code
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    -- code
end
Смотри, отслеживаешь приходящий RPC и заменяешь его. Этими функами, что ты скинул, ты получаешь RPC onCreate3DText и onPlayerChatBubble
Чтоб изменить rpc в функциях напиши return и измененные параметры, которые тебе надо, в нашем случае - dist
lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
   return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    return {playerId, color, 1000, duration, text}
end

По итогу у тебя выйдет так
VL6KyMS.png
 
Последнее редактирование:
  • Нравится
Реакции: ht-

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Смотри, отслеживаешь приходящий RPC и заменяешь его. Этими функами, что ты скинул, ты получаешь RPC onCreate3DText и onPlayerChatBubble
Чтоб изменить rpc в функциях напиши return и измененные параметры, которые тебе надо, в нашем случае - dist
lua:
local sampev = require 'lib.samp.events'

function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
   return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}
end

function sampev.onPlayerChatBubble(playerId, color, dist, duration, text)
    return {playerId, color, 1000, duration, text}
end

По итогу у тебя выйдет так
VL6KyMS.png
Спасибо, но можно сделать чтобы работало только на семью?
 

W.H.

Участник
25
64
Спасибо, но можно сделать чтобы работало только на семью?
Конечно, проверяешь по пункту attachedPlayer, и если будет true, то значит текст на игроке. Дальше через string.find ищешь в тексте семью. Для примера такого поиска можешь взять скрипт specadm. Там код открытый, поймешь как там отсеивается текст по семьям
 
  • Нравится
Реакции: ht-

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Конечно, проверяешь по пункту attachedPlayer, и если будет true, то значит текст на игроке. Дальше через string.find ищешь в тексте семью. Для примера такого поиска можешь взять скрипт specadm. Там код открытый, поймешь как там отсеивается текст по семьям
Спасибо за ответ, скрипт показывает семьи и всё остальное, но я чё та не понял про specadm как сделать чтобы лишь на семью, можно ещё раз поподробнее если можете?
 

W.H.

Участник
25
64
Спасибо за ответ, скрипт показывает семьи и всё остальное, но я чё та не понял про specadm как сделать чтобы лишь на семью, можно ещё раз поподробнее если можете?
Делаешь это условие и все. У тебя будут изменяться 3d текста только семей
Этот вариант костыльный, но более понятный для тебя. На первое время хватит
Lua:
if text:find("Family") or text:find("Empire") or text:find("Squad") or text:find("Dynasty") or text:find("Corporation") or text:find("Crew") or text:find("Brotherhood") then

    return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}

end
 
  • Нравится
Реакции: ht-

ht-

Потрачен
Автор темы
52
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делаешь это условие и все. У тебя будут изменяться 3d текста только семей
Этот вариант костыльный, но более понятный для тебя. На первое время хватит
Lua:
if text:find("Family") or text:find("Empire") or text:find("Squad") or text:find("Dynasty") or text:find("Corporation") or text:find("Crew") or text:find("Brotherhood") then

    return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}

end
Извиняюсь за тупой вопрос, но куда это вставлять?
 

Liquit

Активный
277
91

W.H.

Участник
25
64
lua:
function sampev.onCreate3DText(id, color, pos, dist, testLOS, attachedPlayer, attachedVeh, text)
 
   if text:find("Family") or text:find("Empire") or text:find("Squad") or text:find("Dynasty") or text:find("Corporation") or text:find("Crew") or text:find("Brotherhood") then
       return {id, color, pos, 1000, testLOS, attachedPlayer, attachedVeh, text}
   end
end

Извиняюсь за тупой вопрос, но куда это вставлять?


В итоге у тебя выйдет вот так
yBym4JP.png
 
Последнее редактирование:
  • Нравится
Реакции: ht-
Статус
В этой теме нельзя размещать новые ответы.