inv arz

mentaletion

Участник
Автор темы
45
4
чиииииз, гайс
написал небольшой код на инвайт в банду, работает нормально но есть одна мелочь
когда принимаю кого то стоя рядом с каром - персонаж после инвайта бежит садиться в кар, то есть спамится энтер, как сделать только одиночное нажатие энтера?

Lua:
local id = 0
local accept = false
local ev = require "lib.samp.events"

function main()
    repeat wait(0) until isSampAvailable()
    writeMemory(sampGetBase() + 0x9D9D0, 4, 0x5051FF15, true)
    
    while true do
        wait(0)
        
        if wasKeyPressed(0x31) and not sampIsChatInputActive() and not sampIsDialogActive() then
            local result, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)
            
            if result then
                _, id = sampGetPlayerIdByCharHandle(ped)
                sampSendChat('/me передал бандану')
                wait(1000)
                sampSendChat('/givecbook '..id..' 100')
                sampSendChat('/invite '..id)
                setVirtualKeyDown(13, true)
                wait(100)
                setVirtualKeyDown(13, false)
                accept = true
            end
        end
    end
end



function ev.onServerMessage(c, t)
    if accept and t:find("(%S+)_(%S+) принял ваше предложение вступить к вам в организацию.") then
        sampSendChat("/giverank "..id.." 5")
        accept = false
    end
end
 
  • Bug
Реакции: s1mZ и зач хейт

VanoKLR

Известный
762
427
чиииииз, гайс
написал небольшой код на инвайт в банду, работает нормально но есть одна мелочь
когда принимаю кого то стоя рядом с каром - персонаж после инвайта бежит садиться в кар, то есть спамится энтер, как сделать только одиночное нажатие энтера?

Lua:
local id = 0
local accept = false
local ev = require "lib.samp.events"

function main()
    repeat wait(0) until isSampAvailable()
    writeMemory(sampGetBase() + 0x9D9D0, 4, 0x5051FF15, true)
  
    while true do
        wait(0)
      
        if wasKeyPressed(0x31) and not sampIsChatInputActive() and not sampIsDialogActive() then
            local result, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)
          
            if result then
                _, id = sampGetPlayerIdByCharHandle(ped)
                sampSendChat('/me передал бандану')
                wait(1000)
                sampSendChat('/givecbook '..id..' 100')
                sampSendChat('/invite '..id)
                setVirtualKeyDown(13, true)
                wait(100)
                setVirtualKeyDown(13, false)
                accept = true
            end
        end
    end
end



function ev.onServerMessage(c, t)
    if accept and t:find("(%S+)_(%S+) принял ваше предложение вступить к вам в организацию.") then
        sampSendChat("/giverank "..id.." 5")
        accept = false
    end
end
Лучше отправлять иммено ответ в диалог вместо "всевдо ответа" в виде эмуляции enter.
+ можно хукать сообщение о том что игрок купил у тебя кодекс, после чего кидать инвайт, а не моментально
 

kyurew

Участник
79
51

Slavka Priore

Активный
100
36
local id = 0
local accept = false
local ev = require("lib.samp.events")

function main()
repeat wait(0) until isSampAvailable()
writeMemory(sampGetBase() + 0x9D9D0, 4, 0x5051FF15, true)

while true do
wait(0)

if wasKeyPressed(0x31) and not sampIsCursorActive() then
local result, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)

if result then
accept = true
_, id = sampGetPlayerIdByCharHandle(ped)
sampSendChat('/me передал бандану')
wait(1000)
sampSendChat('/givecbook '..id..' 100')
wait(1000)
sampSendChat('/invite '..id)
end
end
end
end



function ev.onServerMessage(c, t)
if accept and t:find("%S+_%S+ принял ваше предложение вступить к вам в организацию.") then
sampSendChat("/giverank "..id.." 5")
accept = false
end
end

function ev.onShowDialog(id, style, title, button1, button2, text)
if accept and id == ид then
lua_thread.create(function()
wait(50)
sampSendDialogResponse(id, 1)
end)
return false
end
end
 
Последнее редактирование:
  • Bug
Реакции: VanoKLR

зач хейт

Потрачен
115
46
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ни в чём, но он нажатия ентера сделал в main, я думаю, что там лучше будет использовать sampCloseCurrentDialogWithButton
ода бро пж лучше дальше обсуждать как же надо отправлять ответ на диалог в этом калоспособе хуйни, напрямую зависящем от пинга и успеет ли рпц дойти до клиента, чем вынести это все хук

чтоооо мыслитель высказался
 

Вложения

  • IMG_20240724_040918_592.jpg
    IMG_20240724_040918_592.jpg
    64.9 KB · Просмотры: 22