Помощь с кодом

Ricardo_Miloss

Участник
Автор темы
40
3
Версия MoonLoader
Другое
Lua:
local samp = require 'samp.events'

local t = {
   "в фаму",
   "инв в фаму",
   "инвайт в фаму",
   "инвайтни в фаму",
   "прими в фаму",
   "кинь приглос в фаму",
  
   "инв в семью",
   "инвайт в семью",
   "инвайтни в семью",
   "прими в семью",
   "кинь приглос в семью",
  
   "инвайтни",
   "инвайт",
   "инв",
  
   "invite",
   "inv",
  
   "кинь приглос",
}

local act = false

function samp.onServerMessage(color, text)
   text = text:gsub("{......}", "")
   for k,v in ipairs(t) do
      if text:find(v) then
         local id, msg = text:match(".+%[(%d+)%] говорит: (.+)")
         if msg == v then
            local result, ped = sampGetCharHandleBySampPlayerId(id)
            if result then
               local m = {getCharCoordinates(1)}
               local p = {getCharCoordinates(ped)}
               if getDistanceBetweenCoords3d(m[1], m[2], m[3], p[1], p[2], p[3]) < 5 then
                  sampSendChat("/faminvite "..id)
                  break
               end
            end
         end
      end
   end
    if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
                    lua_thread.create(function()
                    wait(500)
                    sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
                    end)
                end
end
Не работает второй блок когда находит ошибку и выводит сообщение, куда правильно вставить эту часть кода? И после того как находит строку Произошла ошибка... надо закрыть диалог с идом 156, подскажите как сделать, пожалуйста
 
Решение
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
                    lua_thread.create(function()
                    wait(500)
                    sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
                    end)
                end

Вот что должно быть, но оно не работает. В отдельном луа файле работает, а тут я вставил в общий код и не пашет. После того как сработает text find, должен ещё закрыться диалог 156 ид, если вручную его закрываешь то всё работает, но в отдельном луашнике. В этом не хочет вообще
вот этот кусок кода, который ты прикрепил, расположи выше цикла, где ты перебираешь элементы таблицы
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка...

Ricardo_Miloss

Участник
Автор темы
40
3
А что оно должно было написать по твоему мнению?
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
                    lua_thread.create(function()
                    wait(500)
                    sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
                    end)
                end

Вот что должно быть, но оно не работает. В отдельном луа файле работает, а тут я вставил в общий код и не пашет. После того как сработает text find, должен ещё закрыться диалог 156 ид, если вручную его закрываешь то всё работает, но в отдельном луашнике. В этом не хочет вообще
 

Sanchez.

Известный
705
188
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
                    lua_thread.create(function()
                    wait(500)
                    sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
                    end)
                end

Вот что должно быть, но оно не работает. В отдельном луа файле работает, а тут я вставил в общий код и не пашет. После того как сработает text find, должен ещё закрыться диалог 156 ид, если вручную его закрываешь то всё работает, но в отдельном луашнике. В этом не хочет вообще
вот этот кусок кода, который ты прикрепил, расположи выше цикла, где ты перебираешь элементы таблицы
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
   lua_thread.create(function()
        wait(500)
        sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
   end)
end
for k,v in ipairs(t) do
      if text:find(v) then
         local id, msg = text:match(".+%[(%d+)%] говорит: (.+)")
         if msg == v then
            local result, ped = sampGetCharHandleBySampPlayerId(id)
            if result then
               local m = {getCharCoordinates(1)}
               local p = {getCharCoordinates(ped)}
               if getDistanceBetweenCoords3d(m[1], m[2], m[3], p[1], p[2], p[3]) < 5 then
                  sampSendChat("/faminvite "..id)
                  break
               end
            end
         end
      end
   end
 

Ricardo_Miloss

Участник
Автор темы
40
3
вот этот кусок кода, который ты прикрепил, расположи выше цикла, где ты перебираешь элементы таблицы
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
   lua_thread.create(function()
        wait(500)
        sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
   end)
end
for k,v in ipairs(t) do
      if text:find(v) then
         local id, msg = text:match(".+%[(%d+)%] говорит: (.+)")
         if msg == v then
            local result, ped = sampGetCharHandleBySampPlayerId(id)
            if result then
               local m = {getCharCoordinates(1)}
               local p = {getCharCoordinates(ped)}
               if getDistanceBetweenCoords3d(m[1], m[2], m[3], p[1], p[2], p[3]) < 5 then
                  sampSendChat("/faminvite "..id)
                  break
               end
            end
         end
      end
   end
Всё равно не работает, не реагирует на эту часть
 

WellMay

Известный
913
290
Lua:
 if text:find('%[Ошибка%] {FFFFFF}Произошла ошибка, игрок состоит в другой семье!') then
                    lua_thread.create(function()
                    wait(500)
                    sampSendChat('/b Выйдите из семьи и повторно напишите "инвайт"')
                    end)
                end

Вот что должно быть, но оно не работает. В отдельном луа файле работает, а тут я вставил в общий код и не пашет. После того как сработает text find, должен ещё закрыться диалог 156 ид, если вручную его закрываешь то всё работает, но в отдельном луашнике. В этом не хочет вообще
Даже если он ливень из семьи ты его принять не сможешь ровно 24 часа