fast invite

фaрик

Известный
Автор темы
163
25
qq. Есть такой вот fast invite, в котором я пытался сделать автоматическую выдачу 7 ранга (/giverank id rank) после появления строки в чате "Вы приняли Nick_Name в Rifa".
У меня по итогу ничего не получилось из-за того что команда /giverank передает 2 аргумента.
Я и мои печеньки 1 ранга просим помощи умных людей.

Lua:
require "lib.moonloader"
local id2 = 1111

function main()
    repeat wait(100) until isSampAvailable()
    while true do
    wait(0)
        local res, ped = getCharPlayerIsTargeting(playerHandle)
        if res then
            local proverka = wasKeyPressed(88)
            if proverka then
                res, ped = getCharPlayerIsTargeting(playerHandle)
                res, id = sampGetPlayerIdByCharHandle(ped)
                if id2 ~= id then
                    id2 = id
                    name = sampGetPlayerNickname(id)
                    lvl = sampGetPlayerScore(id)
                    sampAddChatMessage(string.format(" %s [%d] [LVL: %i]", name, id, lvl), -1)
                    sampSendChat("/invite "..id, -1)
                end
            end
        end
    end
end
 
Решение
В чат пишется какая либо фраза когда игрок принимает приглашение в банду?
Если пишется то можно по одной функции сделать,там вроде так:

Lua:
if text:find("часть текста которую мы будем искать") then
sampSendChat(" и тут что будет писаться в чат")
Правда надо будет как то сделать что бы ранг выдался тому кого ты принял.
Регуляркой вытащить Ник и в этом же блоке добавить отправку команды с повышением

После принятие игрока в чате "Вы приняли Nick_Name в Rifa".
Про функцию texd:find понятно, вопрос лишь в том как подружить отлов чата с главным потоком
Эмм.. говорю же почитай хуки ( библиотека samp events ) и про регулярные выражение
И ниже просто пропишешь хук ( так же можешь посмотреть ролики...

YarikVL

Известный
Проверенный
4,796
1,813
qq. Есть такой вот fast invite, в котором я пытался сделать автоматическую выдачу 7 ранга (/giverank id rank) после появления строки в чате "Вы приняли Nick_Name в Rifa".
У меня по итогу ничего не получилось из-за того что команда /giverank передает 2 аргумента.
Почитай про хуки вот например https://www.blast.hk/threads/62661/
Lua:
require "lib.moonloader"
local id2 = 1111

function main()
    repeat wait(100) until isSampAvailable()
    while true do
    wait(0)
        local res, ped = getCharPlayerIsTargeting(playerHandle)
        if res then
            local proverka = wasKeyPressed(88)
            if proverka then
                res, ped = getCharPlayerIsTargeting(playerHandle)
                res, id = sampGetPlayerIdByCharHandle(ped)
                if id2 ~= id then
                    id2 = id
                    name = sampGetPlayerNickname(id)
                    lvl = sampGetPlayerScore(id)
                    sampAddChatMessage(string.format(" %s [%d] [LVL: %i]", name, id, lvl), -1)
                    sampSendChat("/invite "..id, -1)
                end
            end
        end
    end
end
Lua:
require "lib.moonloader"

function main()
    while not isSampAvailable() do wait(0) end
    while true do wait(0)
        res, ped = getCharPlayerIsTargeting(playerHandle)
        if res and wasKeyPressed(88) then
                _, id = sampGetPlayerIdByCharHandle(ped)
                if id ~= nil then — это вроде можно и не проверять                    
                    sampSendChat("/invite "..id)
                    wait(300)
                    sampSendChat("/giverank "..id.." 7")
                end
        end
    end
end
Вот подправил твой говнокод на мой говнокод. С табуляцией проблемы, я с телефона
 

фaрик

Известный
Автор темы
163
25
Почитай про хуки вот например https://www.blast.hk/threads/62661/

Lua:
require "lib.moonloader"

function main()
    while not isSampAvailable() do wait(0) end
    while true do wait(0)
        res, ped = getCharPlayerIsTargeting(playerHandle)
        if res and wasKeyPressed(88) then
                _, id = sampGetPlayerIdByCharHandle(ped)
                if id ~= nil then — это вроде можно и не проверять                   
                    sampSendChat("/invite "..id)
                    wait(300)
                    sampSendChat("/giverank "..id.." 7")
                end
        end
    end
end
Вот подправил твой говнокод на мой говнокод. С табуляцией проблемы, я с телефона
На srp такая система инвайтов что игрок сам должен принять предложение когда кидаешь ему инвайт и зачастую у печенек уходит куда больше времени на принятие инвайта, чем у обычных людей. Именно поэтому мне нужна система выдачи ранга сразу после сообщения о принятии
 

izicapt

Известный
336
103
На srp такая система инвайтов что игрок сам должен принять предложение когда кидаешь ему инвайт и зачастую у печенек уходит куда больше времени на принятие инвайта, чем у обычных людей. Именно поэтому мне нужна система выдачи ранга сразу после сообщения о принятии
В чат пишется какая либо фраза когда игрок принимает приглашение в банду?
Если пишется то можно по одной функции сделать,там вроде так:

Lua:
if text:find("часть текста которую мы будем искать") then
sampSendChat(" и тут что будет писаться в чат")
Правда надо будет как то сделать что бы ранг выдался тому кого ты принял.
 

фaрик

Известный
Автор темы
163
25
В чат пишется какая либо фраза когда игрок принимает приглашение в банду?
Если пишется то можно по одной функции сделать,там вроде так:

Lua:
if text:find("часть текста которую мы будем искать") then
sampSendChat(" и тут что будет писаться в чат")
Правда надо будет как то сделать что бы ранг выдался тому кого ты принял.
После принятие игрока в чате "Вы приняли Nick_Name в Rifa".
Про функцию texd:find понятно, вопрос лишь в том как подружить отлов чата с главным потоком
 

YarikVL

Известный
Проверенный
4,796
1,813
В чат пишется какая либо фраза когда игрок принимает приглашение в банду?
Если пишется то можно по одной функции сделать,там вроде так:

Lua:
if text:find("часть текста которую мы будем искать") then
sampSendChat(" и тут что будет писаться в чат")
Правда надо будет как то сделать что бы ранг выдался тому кого ты принял.
Регуляркой вытащить Ник и в этом же блоке добавить отправку команды с повышением

После принятие игрока в чате "Вы приняли Nick_Name в Rifa".
Про функцию texd:find понятно, вопрос лишь в том как подружить отлов чата с главным потоком
Эмм.. говорю же почитай хуки ( библиотека samp events ) и про регулярные выражение
И ниже просто пропишешь хук ( так же можешь посмотреть ролики The Champ Guess ) желательно все