Ищу нормальный скрипт автозамены на птоку! который будет реагировать на все слова в предложении (сообщении) а не заменять только одно слово!
Кому не сложно - напишите под апи2 !
Автор: Serx 7.7.2009, 16:33
что заменять? в каких предложениях? Антимат с Антирекламой есть такие на этом форуме.
Автор: JlёJluK 7.7.2009, 17:10
А если я не хочу антирекламуи автозамену?
заменять все слова, которые булдт в списке!
Автор: степашка 7.7.2009, 17:27
ну так антиреклама и заменяет слова, которые имеются в списке. например, если в автозамене прописаны слова ЗАЯЦ и КАПУСТА, то при попытке ввести в чат или личку фразу ЗАЙЦЫ ЛЮБЯТ КАПУСТУ выведется фраза автозамены. или я не правильно понимаю твою фразу "заменять все слова, которые булдт в списке!"? скажи тогда какую ты цель преследуешь, может станет понятнее
Автор: Wariner 7.7.2009, 17:28
когда просите написать скрипт извольте подробнее излагать идею и цель!
Автор: JlёJluK 7.7.2009, 17:46
чтоб каждое слово заменялось на то слово, которое будет вписано, а не произвольное.
function ChatArrival(tUser, sData) sData = sData:sub(1,-2) for i,v in pairs(tGsub) do sData = sData:gsub(i,v) end Core.SendToAll(sData) return true end
Автор: JlёJluK 7.7.2009, 20:12
[21:12:08] <keeper> <keeper> 1 [21:12:14] <keeper> <keeper> деньги
Почему ник вылезает?
Автор: Wariner 7.7.2009, 20:29
поправил код
Автор: district 8.7.2009, 0:58
Геноссе Wariner ! Есть один подводный камень в таком простом методе, когда не вычленяется непосредственный текст сообщения, а гсабится ( или "парсится") вся сДата оптом. Был у меня один момент, когда то, зашел юзер с ником "хулиганище" и что-то написал в чате, а скрипт анимата, который тогда стоял, прогсабил вот так : ( была замена "хули" на "почему")
Цитата
<почемуганище> .... бла бла
поэтому по-хорошему надо бы, так сказать, добавить в реализацию толику избирательности.
Автор: Wariner 8.7.2009, 5:53
да я всё надеюсь, что юзера сами хоть что то начнут дописывать....
Автор: district 8.7.2009, 6:13
Ну пофлудю разок, надеюсь не забанят Wariner :
Цитата
да я всё надеюсь, что юзера сами хоть что то начнут дописывать....
М.М.Жванецкий :
Цитата
Ты же и придумаешь, ты же и будешь делать, тебя же и накажут, что плохо сделал.
Вот так и живем
Автор: Uncle_Dif 8.7.2009, 11:42
Стесняюсь спросить, это самостоятельный готовый к употреблению скрипт? или кусок, который надо куда-то вставить?
Автор: district 8.7.2009, 12:36
Если не ошибаюсь, чтобы отрезать из sData ник юзера с прибамбасами ( скобками < > и пробелом), должно быть как-то так :
Код
sData = sData:sub((tUser.sNick):len()+4,-2)
Uncle_Dif Этот код может и самостоятельно работать, но зачем создавать на хабе кучу мелких скриптиков в которых постепенно и рогатый ногу сломает? Вот смотри. ChatArrival это "Event (событие)" API2 и одновременно "функция" скрипта. В одном скрипте, насколько я понимаю, не могут быть две функции с таким названием. Чтобы не городить огород, достаточно подумать и добавить приведенный код в какой-нибудь скрипт схожей тематики. Только надо учесть, что если отрезать ник юзера в самом начале ChatArrival, то все нижеследующие обращения к переменной sData внутри функции будут получать усеченный вариант sData. А информация по событиям API2 http://mydc.ru/r/?http://wiki.ptokax.ch/doku.php/scriptinghelp/ptokaxapi2, хотя, может есть и более внятный вариант описания, сам буду рад, если кто подскажет.
Автор: Setuper 8.7.2009, 12:58
http://mydc.ru/topic118.html
Автор: Uncle_Dif 8.7.2009, 13:01
Uncle_Dif Этот код может и самостоятельно работать, но зачем создавать на хабе кучу мелких скриптиков в которых постепенно и рогатый ногу сломает?
Зачем: мне понравилась идея автозамены слов. Мне, как старорежимному человеку, стремно видеть, например, слово "хай" (напоминает "хайль....") и некоторые другие. Я бы с удовольствием поимел бы такой скриптик. На форуме есть Антимат-антиреклама, я его установил, но: 1. Там много мне ненужного, придется отрезать. 2. Тестирую его словом "хай"- пропускает без замены, вот теперь чешу репу... Вот такая малая моя проблемка.
Автор: Wariner 8.7.2009, 21:45
хз что у теяб там не работает, может внёс не правильно?
Автор: Uncle_Dif 8.7.2009, 21:53
Цитата(Wariner @ 8.7.2009, 22:45)
хз что у теяб там не работает, может внёс не правильно?
Тоже чего-то не пойму. Я скачал и установил анти-мат-рекламу в неизменном виде. Еще один экземпляр этого антиМР (анти-мат-реклама) переименовал и вставил "хай"- не работает. Я еще поюзаю, может сам пойму где и чего непонимаю..
function ChatArrival(tUser, sData) sData = sData:sub(1,-2) for i,v in pairs(tGsub) do sData = sData:gsub(i,v) end Core.SendToAll(sData) return true end
При включении сей малого кода у меня перестают работать команды (!rules, !nickban и тд)...можно ли поправить?
Вот таким условием нужно ограничить срабатывание кода, самое простое что на ум пришло. Иначе он ЛЮБЫЕ данные дискардит, возвращая true и не допуская их к отработке хабом.
В таком варианте нужно отрезать от sData ник юзера с прибамбасами, как я предложил выше.
Код
function ChatArrival(tUser, sData) local sData = sData:sub((tUser.sNick):len()+4,-2) if not sData:find("^%p%S+") then for i,v in pairs(tGsub) do sData = sData:gsub(i,v) end Core.SendToAll(sData) return true end end