[Lua] Нужна ваша помощь

_RaDley_

Известный
Автор темы
92
31
Версия MoonLoader
.026-beta
Всем привет. Я не могу понгять почемуто не выводит значение в парсер и просто выводит ид. Помогите пожалуйста уже 4-й день пытаюсь сделать.
code:
local sampev = require "lib.samp.events"
local keys = {
    [1] = 2108,
    [2] = 2106,
    [3] = 2107,
    [4] = 2111,
    [5] = 2109,
    [6] = 2110,
    [7] = 2114,
    [8] = 2112,
    [9] = 2113,
    [0] = 2115,
    ["call"] = 2101,
    ["go"] = 2100
}

function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand("call", scr)
  sampRegisterChatCommand("callid", callid)
    while true do
        wait(0)
    end
end

function sampev.onServerMessage(color, text)
if open == true then
  param = tonumber(text:match("{FFFFFF}%a+_%a+%[%d+]:    {33CCFF}(%d+)"))
    sampAddChatMessage(number, 0xFFFFFF)
    open = false
    end
    
 end


function scr(param)
param = tonumber(param)
    if param ~= nil and param < 1000
     then
      sampSendChat("/number " .. param)
      open = true
local number = param
    if tonumber(number) ~= "" then
        lua_thread.create(function()
            --nopHook("onShowTextDraw", true)
            --nopHook("onShowDialog", true)
            wait{1000}
            sampSendChat("/phone")
            sampSendDialogResponse(1000, 1, 0, 0)
            sampSendClickTextdraw(keys["go"])
            sampSendClickTextdraw(keys["call"])
            parseNumber(number)
            sampSendClickTextdraw(keys["go"])
            sampSendDialogResponse(966, 1, 10, 0)
            wait(1600)
            --nopHook("onShowTextDraw", false)
            --nopHook("onShowDialog", false)
        end)
    end
end

function parseNumber(n)   
  local n = tostring(n)
  for i = 1, #n do
    number = n:sub(i, i)
        sampSendClickTextdraw(keys[tonumber(number)])
  end
end

function nopHook(name, bool)
    local samp = require 'samp.events'
    samp[name] = function()
        if bool then return false end
    end
end




function callid(id)
    id = tonumber(id)
    if id ~= nil and id < 1000
     then
      sampSendChat("/number " .. id)
    end
    end
   end
 

Tema05

Известный
1,440
397
Всем привет. Я не могу понгять почемуто не выводит значение в парсер и просто выводит ид. Помогите пожалуйста уже 4-й день пытаюсь сделать.
code:
local sampev = require "lib.samp.events"
local keys = {
    [1] = 2108,
    [2] = 2106,
    [3] = 2107,
    [4] = 2111,
    [5] = 2109,
    [6] = 2110,
    [7] = 2114,
    [8] = 2112,
    [9] = 2113,
    [0] = 2115,
    ["call"] = 2101,
    ["go"] = 2100
}

function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand("call", scr)
  sampRegisterChatCommand("callid", callid)
    while true do
        wait(0)
    end
end

function sampev.onServerMessage(color, text)
if open == true then
  param = tonumber(text:match("{FFFFFF}%a+_%a+%[%d+]:    {33CCFF}(%d+)"))
    sampAddChatMessage(number, 0xFFFFFF)
    open = false
    end
  
end


function scr(param)
param = tonumber(param)
    if param ~= nil and param < 1000
     then
      sampSendChat("/number " .. param)
      open = true
local number = param
    if tonumber(number) ~= "" then
        lua_thread.create(function()
            --nopHook("onShowTextDraw", true)
            --nopHook("onShowDialog", true)
            wait{1000}
            sampSendChat("/phone")
            sampSendDialogResponse(1000, 1, 0, 0)
            sampSendClickTextdraw(keys["go"])
            sampSendClickTextdraw(keys["call"])
            parseNumber(number)
            sampSendClickTextdraw(keys["go"])
            sampSendDialogResponse(966, 1, 10, 0)
            wait(1600)
            --nopHook("onShowTextDraw", false)
            --nopHook("onShowDialog", false)
        end)
    end
end

function parseNumber(n) 
  local n = tostring(n)
  for i = 1, #n do
    number = n:sub(i, i)
        sampSendClickTextdraw(keys[tonumber(number)])
  end
end

function nopHook(name, bool)
    local samp = require 'samp.events'
    samp[name] = function()
        if bool then return false end
    end
end




function callid(id)
    id = tonumber(id)
    if id ~= nil and id < 1000
     then
      sampSendChat("/number " .. id)
    end
    end
   end
Я делал полный функционал для всех телефонов и хочу сказать что это был ад. Сделать что-бы всё работало удалось через месяц. Во 1 ID текстравов меняются. Во 2 нет точных граней между меню и иногда сложно понять где открыт телефон. 3 у моделей телефонов разная логика idшников. Айфон, самсунг, и остальные 3 группы которые имеют разные структуры. Например в айфоне и самсунге кнопка позвонить и кнопка назад имеюи 1 и тот-же ID. В айфоне в экране звонка добавляется 1 текстдрав, в самсунге наоборот. В остальных же кнопка звонка и назад имеют разные ID.

Я делал команды звонка по номеру, иду, Нику, перезвонить игроку, повторить вызов, смс по айди и Нику. Так-же всё работает если телефон открыт, закрыт, открыто меня или вызов, уже введён номер.
Команда callid у тебя не будет работать так как там негде не задаётся open = true для получения номера
 
Последнее редактирование:

_RaDley_

Известный
Автор темы
92
31
Я делал полный функционал для всех телефонов и хочу сказать что это был ад. Сделать что-бы всё работало удалось через месяц. Во 1 ID текстравов меняются. Во 2 нет точных граней между меню и иногда сложно понять где открыт телефон. 3 у моделей телефонов разная логика idшников. Айфон, самсунг, и остальные 3 группы которые имеют разные структуры. Например в айфоне и самсунге кнопка позвонить и кнопка назад имеюи 1 и тот-же ID. В айфоне в экране звонка добавляется 1 текстдрав, в самсунге наоборот. В остальных же кнопка звонка и назад имеют разные ID.

Я делал команды звонка по номеру, иду, Нику, перезвонить игроку, повторить вызов, смс по айди и Нику. Так-же всё работает если телефон открыт, закрыт, открыто меня или вызов, уже введён номер.
Команда callid у тебя не будет работать так как там негде не задаётся open = true для получения номера
Я хочу сделать хотя бы пока что для одного телефона, а потом сделаю массив с другими
 

Kolbasa241

Известный
213
57
Не считаю это супер каким адом, имел дела с текстдравами, айди текстдравов могут меняться, и искать и нажимать на кнопку нужно перед тем, как ты проверил её например на цвет его бакграунда или поискать что-то уникальное у текстдравов, и уже искать их по уникальным частям.
Делал удаление текстдрава через его айди, но потом текстдрав не удалялся, т.к. сменил айди, и поэтому я поискал у текстдрава что-то уникальное (цвет его), перед этим сделав кучу проверок и уже после удалял его, подумай над этим и всё получится)
 
  • Нравится
Реакции: Tema05

Tema05

Известный
1,440
397
Не считаю это супер каким адом, имел дела с текстдравами, айди текстдравов могут меняться, и искать и нажимать на кнопку нужно перед тем, как ты проверил её например на цвет его бакграунда или поискать что-то уникальное у текстдравов, и уже искать их по уникальным частям.
Делал удаление текстдрава через его айди, но потом текстдрав не удалялся, т.к. сменил айди, и поэтому я поискал у текстдрава что-то уникальное (цвет его), перед этим сделав кучу проверок и уже после удалял его, подумай над этим и всё получится)
Если делаешь для аризоны текстдравы сдвигается на +4 или +42, возможно и другое но это самое популярное.