Чат Комнаты, API2 | Возможно создать несколько чат комнат |
Здравствуйте, гость ( Вход | Регистрация )
Чат Комнаты, API2 | Возможно создать несколько чат комнат |
17.10.2008, 12:38
Сообщение
#41
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Название: Чат комнаты
Версия: 1.0 Версия API: 2 Код: открытый Автор: Setuper Описание: возможно создать несколько чат комнат. Чат комнаты могут быть "закрытыми", то есть для получения сообщений нужно войти, а могут быть открытыми, то есть сообщения отсылаются всем доступным профилям (как в ОпЧате, вы не входите постоянно в ОпЧат, если вы Оператор, то он вам доступен). При запуске скрипта создаётся файл ChatRoom.dbs, в котором по умолчанию создаются 3 комнаты: комната для операторов, комната для випов и общая закрытая комната. В файле ChatRoom.dbs множество настроек. Опишу их на общей комнате: Код ["-MembersRoom-"] = { -- название комнаты добавлю, что если скрипт чат комнаты в списке скриптов стоит до скрипта антирекламы и параметр bReturn=true, то сообщения чат комнаты не будут отслеживаться антирекламой, в противном случае будут.["sMsgExit"] = "*** Вы покинули комнату.", -- сообщение, отправляемое пользователю после выхода из комнаты ["tAllow"] = { -- профили, которым доступна комната [0] = 1, [2] = 1, [3] = 1, [1] = 1, [-1] = 0, }, ["sDescription"] = "[БОТ] Чат комната для пользователей", -- описание бота ["sAway"] = false, -- режим бота: true - away, false - не away ["sEmail"] = "setuper@gmail.com", -- email бота ["sClientName"] = "DCBOT", -- название клиента бота ["bKey"] = true, -- имеет ли ключик бот: true - имеет, false - не имеет ["sTagOption"] = "M:A,H:0/0/1,S:0", -- тэг бота (не трогать, если не знаешь что это) ["sMsgEnter"] = "*** Добро пожаловать в чат комнату!", -- сообщение пользователю при входе в чат комнату ["bMembers"] = true, -- надо ли входить(выходить) в чат комнату: true - надо, false - не надо ["iShareSize"] = 0, -- шара бота чат комнаты ["tMembers"] = { -- таблица членов чат комнаты (не изменять) }, ["tVisible"] = { -- профили, которым видна чат комната в списке пользователей [0] = 1, [2] = 1, [3] = 1, [1] = 1, [-1] = 1, }, ["bReturn"] = true, -- возвращаемое значение чат комнатой }, После первого запуска скрипта в файле настроек по умолчанию создаётся 3 комнаты. Вы можете менять количество комнат по смоему усмотрению. Конечно возможности программирования на lua не ограничены. Данный код я вырвал из SBot'a и немного преобразовал, но большая часть возможностей чат комнат осталась в SBot'е (чат комната непосредственно в чате, а не в личке, чёрные и белые списки для любого пользователя, установка паролей на чат комнаты, антифлуд, антимат, антикапс, антиреклама в чат комнатах и тд. и тп.). Нету времени. Для самостоятельного перевода скрипта под версию API 1 следует воспользоваться инструкцией: ИНСТРУКЦИЯ Юзаем!
Прикрепленные файлы
|
|
|
14.9.2010, 13:41
Сообщение
#42
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код ["sMsgEnter"] = [[много
много очень много строк]], |
|
|
14.9.2010, 14:53
Сообщение
#43
|
|
Участник Группа: Пользователи Сообщений: 43 Регистрация: 15.3.2009 Пользователь №: 2 605 Спасибо сказали: 11 раз |
спасиб)
скажите что не правильно я делаю в функции которая при дисконекте юзера убирает его из списка пользователей в комнате Код function UserDisconnected(sNick) local zRoom="[R]Games" if not zRoom then return true end if tRooms[zRoom]["tMembers"][sNick] then tRooms[zRoom]["tMembers"][sNick]=nil tSys:Save(tRooms,"zRooms",tSys.sScriptsPath..tSys.hFile) if self.bShowEnterExit then self:SendToMembers(sNick,zRoom,"*** Вышел: "..sNick,zRoom) end end return true end и еще помогите исправить такую вещь: когда отправляеш сообщение то тебе отображается нормально но собиседнику приходит с доп пробелом с переди, если в tSys:SendToUser удалить пробел Код if type(User)=="table" then Core.SendToUser(User,"$To: sNick From: "..Sender.." $<"..Nick.."> "..sMsg) else Core.SendToNick(User,"$To: sNick From: "..Sender.." $<"..Nick..">"..sMsg) -- вот тут после > end то сообщения от бота приходят с потеряным первым символом( |
|
|
15.9.2010, 9:15
Сообщение
#44
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Код function UserDisconnected(tUser) for sRoom, t in pairs(tRooms) do local sNick = tUser.sNick if tRooms[sRoom]["tMembers"][sNick] then tRooms[sRoom]["tMembers"][sNick]=nil tSys:Save(tRooms,"tRooms",tSys.sScriptsPath..tSys.hFile) tSys:SendToUser(sNick,tRooms[sRoom].sMsgExit,sRoom,sRoom) if tSys.bShowEnterExit then tSys:SendToMembers(sNick,sRoom,"*** Вышел: "..sNick,sRoom) end end end end Чтобы не было лишнего пробела замени Код local _,_,sArg1,sArg2,sArg3=string.find(sData,"%$To:%s+(%S+)%s+From:%s+(%S+)%s+%$%b<>(.*)") на Код local _,_,sArg1,sArg2,sArg3=string.find(sData,"%$To:%s+(%S+)%s+From:%s+(%S+)%s+%$%b<>%s(.*)")
|
|
|
16.9.2010, 14:13
Сообщение
#45
|
|
Участник Группа: Пользователи Сообщений: 43 Регистрация: 15.3.2009 Пользователь №: 2 605 Спасибо сказали: 11 раз |
спасиб, щас заметил что юзеры видят команды которые отправили(
вот еще два вопроса: 1) юзер посылает сообщение в чат комнату, я сделал что всем кто в комнате это фраза приходит от другова ника в функции tSys:SendToUser добавил: Код if tRooms[Sender]["nMembers"][Nick] then Nick=tRooms[Sender]["nMembers"][Nick] end и все какбы работает, но отправителю сообщение возвращается с егоже ником собственно вопрос как отправителю прислать с изм ником? 2) сложно написать как надо поэтому приведу пример: пользователь посылает комнду в чат комнату +command text как поймать этот текст в условии или как переписать условие чтоб ловил? Код elseif self:String2Lower(sCmd)==self:String2Lower(self.sCmdName) then
sRoom=self:CheckRoom(sA,sNick,sRoom) if tRooms[sRoom]["tMembers"][sNick] then |
|
|
21.9.2010, 17:29
Сообщение
#46
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
VOVKT, то, что юзер отправляет кому-то в приват, он всегда видит в неизменном виде, в отличие от общего чата, так что отправлять ему его же текст не имеет смысла. И все команды и прочее, что идет в привате всегда будут видны "как есть". Что касается захвата, то в функции tSys:DoCmd идущие за командой даты ловятся как
Код sA
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Комнаты (чатрумы) Rooms API1, API2 | Создание чат-комнат для Verlihub и PtokaX |
61 | Phazeus | 82 978 | 3.4.2014, 2:07 Посл. сообщение: Inkvizitor_ks | |
Расширенные комнаты | 1 | ShadoWx | 6 778 | 7.2.2012, 13:13 Посл. сообщение: Артём | |
Нужно сделать дроп юзеров с комнаты! Помогайте |
1 | X-Sky | 6 648 | 26.9.2009, 16:45 Посл. сообщение: Wariner | |
Чат комнаты для стран скрипт для Ptokax 4.1.1 |
12 | apelsin | 16 358 | 5.8.2009, 18:31 Посл. сообщение: apelsin | |
От: Комнаты (чатрумы) Rooms От темы с ID: 1443 |
2 | Tarantul13 | 7 377 | 19.6.2009, 21:45 Посл. сообщение: Tarantul13 | |
От: Комнаты (чатрумы) Rooms От темы с ID: 1443 |
0 | Артём | 5 209 | 27.5.2009, 20:40 Посл. сообщение: Артём | |
От: Чат Комнаты От темы с ID: 438 |
1 | Tarantul13 | 6 401 | 18.4.2009, 16:16 Посл. сообщение: Setuper | |
От: Чат Комнаты От темы с ID: 438 |
1 | Артём | 4 539 | 26.1.2009, 15:18 Посл. сообщение: D'aspid | |
От: Кроссплатформенный Скрипт Комнаты (чатрумы) Rooms От темы с ID: 1443 |
-1 | -- | 5 661 | -- Посл. сообщение: -- |
|
Сейчас: 27.11.2024, 3:27 |