Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Антимат И Команды Хаба

Автор: zzipper 18.10.2008, 1:03

Собственно проблема такая что при включенном скрипте антимата (наже приаттачен), команды хаба, такие как, например, !help, !getbans, !restart и все остальные, написанные в общем чате не срабатывают и проскакивают в чат. При отправке в ЛС бот норм все. В чем может быть проблема? Пробовал играться с позициями загрузки скрипта с другими - не помогло. Ниже аттачу сам скрипт, вдруг дело в коде.

 antimat2.lua ( 7.5 килобайт ) : 54
 

Автор: Sephiroth_Lukaw 18.10.2008, 1:47

Код
function ChatArrival(curUser, data)
local s,e,data =string.find(string.sub(data, 1, (string.len(data)-1)), "%b<>%s+(.*)")
local s,e,sCmd = string.find(data, "^[+,!](%S*)")
  if sCmd == nil then
    for s1, s2 in pairs(Mat2) do
    data = string.gsub(data, s1, s2)
    end
  local data,c = string.gsub(data , "(%S+)", function(word) return CheckWord(word) end)
  Core.SendToAll("<"..curUser.sNick.."> "..data.."|")
  return true
  else
    if CheckWord(sCmd) ~= sCmd then
    return true
    end
  end
end

Автор: zzipper 18.10.2008, 9:52

Благодарю. Работает. :smile2:

Автор: Yudeix 26.10.2008, 0:44

После того, как кто-то в чате выматерится, скрипт этот, как положено заменяет фразу, отправляет сообщение с предупреждением о предстоящем бане и... вылетает. Пишет ошибку:
Синтаксис ...X 0.4.1.1\scripts\AНТИмат block_words_4.0_newapi.lua:142: attempt to call global 'GetItemByName' (a nil value)

Я пробовал на примерах других скриптов с подобной же ошибкой GetItemByName заменить на Core.SendToNick, но что-то ничего не меняется и выдаёт новую ошибку...

А скрипт хороший.

 block_words.rar ( 3.61 килобайт ) : 13
 

Автор: Wariner 26.10.2008, 10:35

смотри, исправляйся;) http://mydc.ru/ipb.html?s=&showtopic=156&view=findpost&p=651

Автор: Perspect 7.11.2008, 1:26

У мну такая же ошибка: ... .lua:133: attempt to call global 'GetItemByName' (a nil value)
и нет в скрипте ни одной из перечисленных (по ссылке) строк:

Код
tMenu.msgMain = function()

Код
tMenu["msgMain"] = function()

Код
tMenu={
...
["msgMain"] = function()
...
}

Там написали, что это и есть причина ошибки, но мне от этого как-то легче не стало. confuse.gif
Подскажите, что и куда добавить-то нужно?
или поделитесь реально рабочим скриптом АНТИмат под PtokaX 0.4.1.1

Автор: Sephiroth_Lukaw 7.11.2008, 2:01

Setuper, же, уже описал как исправлять подобную ошибку, по ссылке выше(3 сообщение)...
...
В данном скрипте, находишь

Код
if (GetItemByName(to) ~= nil) then
и заменяешь на
Код
if (Core.GetUser(to, true) ~= nil) then

Автор: Perspect 9.11.2008, 18:03

Спасибо, всё работает.
Чтобы другие не парились, выкладываю подправленный скрипт, в том числе и базу слегка добавил big_smile.gif

 AНТИмат_block_words_4.0_newapi.rar ( 3.24 килобайт ) : 54
 

Автор: СТУДЕНТ 10.11.2008, 13:43

Цитата(Perspect @ 9.11.2008, 18:03) *
Спасибо, всё работает.
Чтобы другие не парились, выкладываю подправленный скрипт, в том числе и базу слегка добавил big_smile.gif

Хм странно но он меня не кикнулbig_smile.gif)) и не забанил , а ведь на писано что типа забанилbig_smile.gifв чём подвох?

Автор: Perspect 10.11.2008, 15:41

Цитата(СТУДЕНТ @ 10.11.2008, 12:43) *
Хм странно но он меня не кикнулbig_smile.gif)) и не забанил , а ведь на писано что типа забанилbig_smile.gifв чём подвох?


По умолчанию там в личку пиши, что хоШ, а в чат - только то, что не запрещено правилами хаба или то, что не внесено в скрипте в запрет.
В настройках ты можешь выправить ситуацию, как тебе нужно big_smile.gif

Автор: eL50ff 19.12.2008, 21:59

А кто может переписать? Чтоб не заменял слова а банил!