myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему

> Say_script 1.03 - 1.031, API1 | Скрипт, позволяющий писать от любого имени

Теги
Нет тегов для показа
Wariner
сообщение 18.5.2009, 17:53
Сообщение #21


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




конвертер вам в помощь!
Go to the top of the page
+Quote Post
FallenAngel
сообщение 27.10.2009, 23:13
Сообщение #22


[n00b]
*****

Группа: Пользователи
Сообщений: 291
Регистрация: 10.7.2008
Из: Россия,Пенза
Пользователь №: 168
Спасибо сказали: 24 раза




А можно сделать так, чтобы писалось от ника (которого нет на хабе) но в чате появлялось как будто это оператор сказал (то есть чтобы ник был ОПского цвета,а не ботовидного big_smile.gif)
Go to the top of the page
+Quote Post
ekon
сообщение 12.12.2009, 21:02
Сообщение #23


Абсолютный новичок


Группа: Пользователи
Сообщений: 1
Регистрация: 19.11.2009
Пользователь №: 5 109
Спасибо сказали: 0 раз




ААА , дайте конвертер!!плиз!!!:)
Go to the top of the page
+Quote Post
Wariner
сообщение 12.12.2009, 22:08
Сообщение #24


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




http://mydc.ru/topic117.html
Go to the top of the page
+Quote Post
Ksan
сообщение 13.12.2009, 12:08
Сообщение #25


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 637 раз




Цитата(FallenAngel @ 28.10.2009, 2:13) *
А можно сделать так, чтобы писалось от ника (которого нет на хабе) но в чате появлялось как будто это оператор сказал (то есть чтобы ник был ОПского цвета,а не ботовидного big_smile.gif)

Если так охота, попробуй такую последовательность действий в скрипт добавить:
- в Чат-арривале при получении команды отправки сообщения с какого-то простого (не опского) ника этот ник сначала проверяется на зарегенность, если да, то запоминается его профиль (вип или рег) и пароль (а для захвата пароля надо писать отдельную функцию чтения из таблицы профилей), после всего этого регистрация удаляется.
- если нет - то следующий пункт.
- этому нику даётся опский статус.
- пишется от эт этого ника сообщение в чат.
- аккаунт ника удаляется.
- если ник раньше был зареген, то нику возвращается его аккаунт (профиль и пароль, запомненные ранее).
Если ты готов последовательно написать всё вышеописанное в скрипте, то сможешь получить сомнительное удовольствие написать от чужого ника красного (или какой там у тебя опский цвет) цвета... big_smile.gif

Второй вариант - аналогично - зарегить нового бота с тем самым ником, написать от его ника сообщение и сделать унрег этого бота и присвоить боту пустой ник (если так позволительно), чтоб не накопилась куча ненужных ботоников (ну либо сразу унрег).

Короче, придется огород городить...только надо ли оно?

P.S. Всё это я написал только для забавы, чисто теоретически, возможно, кое-что может и не прокатить в реале, но проверять неохота, овчинка выделки не стоит.
P.P.S. Написал ответ только сейчас, потому что раньше не попадалась эта тема в глаза.
Go to the top of the page
+Quote Post
Alexey
сообщение 14.12.2009, 20:38
Сообщение #26


7 квадратиков
*******

Группа: Модераторы
Сообщений: 791
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 291 раз




Не много чести - регать пользователя и удалять регу на каждой фразе? Через $OpList и $Quit лучше делать.

Цитата(FallenAngel @ 27.10.2009, 23:13) *
А можно сделать так, чтобы писалось от ника (которого нет на хабе) но в чате появлялось как будто это оператор сказал (то есть чтобы ник был ОПского цвета,а не ботовидного big_smile.gif)

Накидал тут, пробуй:
Прикрепленный файл  a_SayByHiddenOp.lua ( 1.05 килобайт ) Кол-во скачиваний: 23

Использование: !saybyop Реклама Ненавижу рекламу!

PS: Если я правильно понял запрос.
PPS: Вариант с учтённым предложением ниже: Прикрепленный файл  a_SayByHiddenOp.lua ( 1.1 килобайт ) Кол-во скачиваний: 20


Сообщение отредактировал Alexey - 16.12.2009, 1:18


Спасибо сказали:
Go to the top of the page
+Quote Post
FallenAngel
сообщение 15.12.2009, 9:18
Сообщение #27


[n00b]
*****

Группа: Пользователи
Сообщений: 291
Регистрация: 10.7.2008
Из: Россия,Пенза
Пользователь №: 168
Спасибо сказали: 24 раза




Благодарю. Проверил-пашет как надо. Только цвет фразы-ботовидного увета. ну это уже, как я понимаю,завсит от клиента. Спасибо.
Go to the top of the page
+Quote Post
Nickolya
сообщение 15.12.2009, 13:07
Сообщение #28


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 770 раз




Цитата(FallenAngel @ 15.12.2009, 9:18) *
Только цвет фразы-ботовидного увета. ну это уже, как я понимаю,завсит от клиента.

Попробуйте дополнить скрипт отправкой еще и майинфо, перед
Код
Core.SendToAll("$OpList "..sWho)
припишите
Код
Core.SendToAll("$MyINFO $ALL "..sWho.." no<SomeDC++ V:(r21),M:A,H:1/0/1,S:10>$ $ $no@mail$255008881124$")

тут я не стал вписывать соединение юзера, там идет магический байт, который тут вряд ли отобразиться, если хотите - допишите сами, можно выдрать его из CMD-отладчика в дц, по аналогии с отправляемыми MyINFO.


Спасибо сказали:
Go to the top of the page
+Quote Post
DemoNX260
сообщение 19.5.2010, 14:14
Сообщение #29


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 21.1.2009
Пользователь №: 1 900
Спасибо сказали: 0 раз




Цитата(степашка @ 24.4.2009, 10:10) *
апи1. функции: сказать от любого ника, сказать от выделенного ника, сказать без ника

перевел под апи2 но чета не ворк
Цитата
[15:21] Нет синтаксических ошибок в файле скрипта Сказать_newapi.lua
[15:21] Синтаксис C:\Ptokax 4.1.1\scripts\Сказать_newapi.lua:6: bad argument #1 to 'pairs' (table expected, got no value)
[15:21] Скрипт запущен.

Прикрепленные файлы
Прикрепленный файл  ________api2.lua ( 2.02 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
+Quote Post
Ksan
сообщение 19.5.2010, 14:33
Сообщение #30


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 637 раз




Пишите сами, это же такое плёвое дело...
Вот вам команды для этого:

Код
Core.SendToAll("<"..Ник.."> Ваше сообщение.")


А получить Ник и Сообщение можно отправкой из меню и далее через захват в ChatArrival(): sCmd - (команды), sNick и sMsg - (сообщения), потом их поместить в вышепоказанную строку через конкатенации.
Как Ник можно использовать любой, вплоть до ника Бота, можно и вовсе не писать этот ник, будет сообщение без автора.
Просто внимательнее изучите любой чужой скрипт, можно даже два. big_smile.gif И у вас все получится.
Go to the top of the page
+Quote Post
Saymon21
сообщение 20.5.2010, 16:34
Сообщение #31


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 478 раз




DemoNX260, Рабочий http://mydc.ru/topic2342.html?view=findpost&p=19748 big_smile.gif
Go to the top of the page
+Quote Post
nail
сообщение 3.12.2010, 20:11
Сообщение #32


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 27.11.2009
Пользователь №: 5 183
Спасибо сказали: 1 раз




Помогите разобрать скрипт кто разбирается в луа. Я знаю php, но на php синтаксис lua не похож вообще... big_smile.gif

Код
local sData = string.sub(sData,1,-2)
local _,_,cmd = string.find(sData, "%b<>%s+(%S*)")
if cmd == "!say" then
local _,_,sNick,sMsg = string.find(sData, "%b<>%s+%S*%s*(%S*)%s*(.*)")
    if tProfile[user.iProfile] == 1 or tVIP[user.sName] == 1 then
        if sNick == "" then
            user:SendData(sBot, "Пожалуйста, введите ник, от которого будет послано сообщение")
        elseif sMsg == "" then
            user:SendData(sBot, "Пожалуйста, введите сообщение для "..sNick.." , которое он произнесет.")
        else
            SendToAll(sNick, sMsg)
                SendPmToOps(frmHub:GetOpChatName(), "*** "..user.sName.." сказал от ника "..sNick.." сообщение: \""..sMsg.."\"")
        end
        return 1
    else
        user:SendData(sBot, "У Вас нет доступа к данной команде!")
            SendPmToOps(frmHub:GetOpChatName(), "*** "..user.sName.." попытался сказать от ника "..sNick.." сообщение: \""..sMsg.."\", но у него ничего не вышло.")
    end
return 1
end


Нужно чтобы перед отправкой текста в общий чат формата:
Цитата
<Ник> Сообщение|

спереди и сздади добавлялись строки:
Цитата
$MyINFO $ALL [Ник] [Описание][Тэг]$ $[Соедиенние][Флаг]$[E-Mail]$[Шара]$|
<Ник> Сообщение|
$Quit [Ник]|

если пользователя, от чьего имени пишется сообщение - нет на хабе.
А если есть, чтобы просто отправлялось
Цитата
<Ник> Сообщение|


Если ник, от которого пишут - оператор и его нет на хабе, должно ещё прибавляться:
Цитата
$OpList [ОПератор1]$$|


Вообще не знаю функций, помогите сделать big_smile.gif

Ещё насколько я понимаю это регулярка
Код
string.find(sData, "%b<>%s+%S*%s*(%S*)%s*(.*)")

Её использование как бы вобще неприемлемо...
Помогите сделать через explode чтоли big_smile.gif
Go to the top of the page
+Quote Post
Nickolya
сообщение 7.12.2010, 0:24
Сообщение #33


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 770 раз




nail, в луа порой можно обойтись без фишек пхп, так что смотря для каких целей тебе регулярка...

Этот скрипт вообще для баловства выложен, как-то мы пробовали делать подобные извращения, пришлось прикручивать таймеры чтобы добиться нормального отображения ника в чате (как у оператора), так что просто отправить команды протокола до сообщения не достаточно (это уже такая обработка у клиентов, что странно конечно).

P.S.: вряд ли стоит просить подобное, обсуждение почему находится выше.
Go to the top of the page
+Quote Post
nail
сообщение 7.12.2010, 22:55
Сообщение #34


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 27.11.2009
Пользователь №: 5 183
Спасибо сказали: 1 раз




Не понял ход ваших мыслей, зачем таймеры? По протоколу же всё просто - если есть пользователь на хабе - отсылаем простое сообщение и оно отображается нормально. Если нет - то дописываем спереди ещё MyINFO xxxx| - пользователь пришёл, потом сразу сообщение от его ника и потом Quit name - пользователь ушёл. Ничего мудрить не нужно.
explode - разбивает строку на массив по заданному символу (например пробел - тогда в массиве каждый элемент будет содержать по слову) Регулярные выражения в пшп вообще почти не используются.. в общем то только школьники их используют.
Т.ч. не сказал бы что это фишка пшп, в луа тоже должна быть, если есть регулярки... Ну или на крайняк можно через цикл перебирать байты пока не встретится пробел. Я просто не знаю и не выходит понять синтаксис lua.
А определять есть ли пользователь на хабе вообще не знаю как, не понимаю как устроено. Список лежит в глобальной переменой или есть функция выдающая параметры пользователя на хабе по нику?...
Поможете написать? или м.б. подскажете где lua прогеры водятся?
Go to the top of the page
+Quote Post
Nickolya
сообщение 8.12.2010, 1:23
Сообщение #35


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 770 раз




Цитата
Не понял ход ваших мыслей, зачем таймеры? По протоколу же всё просто - если есть пользователь на хабе - отсылаем простое сообщение и оно отображается нормально. Если нет - то дописываем спереди ещё MyINFO xxxx| - пользователь пришёл, потом сразу сообщение от его ника и потом Quit name - пользователь ушёл. Ничего мудрить не нужно.
Хм, я же вроде расписал, что подобный код работать не будет, по протоколу всё просто, а на деле всё не так просто, как оказывается, если хватит терпения сделать - попробуйте и убедитесь.

Про регулярку, вы так и не сказали, зачем она... Но если ей захватывать слово после команды и остальные данные за этим словом, то всё нормально, регулярки в луа вполне быстро работают, используйте их смело big_smile.gif Почитать можно тут: Несколько Слов О Захватах И Регулярных Выражениях, исключительно для разработчиков

Цитата
А определять есть ли пользователь на хабе вообще не знаю как, не понимаю как устроено. Список лежит в глобальной переменой или есть функция выдающая параметры пользователя на хабе по нику?...
есть функции, они описаны в API, почитать можно здесь: Функции ===> Читаем, Дабы Не Задавать Вопросов <===, Скрипт-интерфейс PtokaX Lua. ВСЕ СКРИПТОВЫЕ ФУНКЦИИ PtokaX API и в папке scripting.docs в самой птоке. Вам нужна функция Core.GetUser(sNick)

Про поможете написать я тоже вроде сказал, для масс подобный скрипт порой опасен, поэтому не поддерживается и не дорабатывается.
Луа прогеры бывают еще на форуме луа...
Go to the top of the page
+Quote Post
мамин_парень
сообщение 29.12.2017, 13:03
Сообщение #36


Участник
**

Группа: Пользователи
Сообщений: 41
Регистрация: 9.2.2012
Из: СОВЕТСКИЙ СОЮЗ
Пользователь №: 10 273
Спасибо сказали: 13 раз




Ksan, помоги с этим

.lua:24: attempt to index global 'frmHub' (a nil value)
http://mydc.ru/topic508.html?hl=say_script
Go to the top of the page
+Quote Post
dimetro
сообщение 29.12.2017, 14:41
Сообщение #37


Активный участник
***

Группа: Пользователи
Сообщений: 68
Регистрация: 14.9.2009
Пользователь №: 4 440
Спасибо сказали: 18 раз




Цитата(мамин_парень @ 29.12.2017, 13:03) *
Ksan, помоги с этим

.lua:24: attempt to index global 'frmHub' (a nil value)
http://mydc.ru/topic508.html?hl=say_script

API1 тамЮ тебе под API2 надо.. Тут есть на форуме конвертер, скачай его и переведи им в API2


Спасибо сказали:
Go to the top of the page
+Quote Post
мамин_парень
сообщение 29.12.2017, 14:57
Сообщение #38


Участник
**

Группа: Пользователи
Сообщений: 41
Регистрация: 9.2.2012
Из: СОВЕТСКИЙ СОЮЗ
Пользователь №: 10 273
Спасибо сказали: 13 раз




Цитата(dimetro @ 29.12.2017, 15:41) *
API1 тамЮ тебе под API2 надо.. Тут есть на форуме конвертер, скачай его и переведи им в API2

Да Бог тебе здоровья, ты очень полезный на этом умирающем форуме, благодаря вам двум он еще живет
Go to the top of the page
+Quote Post
Ksan
сообщение 30.12.2017, 15:49
Сообщение #39


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 637 раз




Цитата(мамин_парень @ 29.12.2017, 17:03) *
Ksan, помоги с этим

Сорри, не сразу попал на форум (заглядываю редко), и уже вам ответили..
От себя могу только добавить - там в теме в комментах есть версия и под API 2, ну разве что не будет выдачи сообщений от чужого ника.. Но это и хорошо, ни к чему оно.. big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
мамин_парень
сообщение 31.12.2017, 5:09
Сообщение #40


Участник
**

Группа: Пользователи
Сообщений: 41
Регистрация: 9.2.2012
Из: СОВЕТСКИЙ СОЮЗ
Пользователь №: 10 273
Спасибо сказали: 13 раз




Цитата(Ksan @ 30.12.2017, 16:49) *
Сорри, не сразу попал на форум (заглядываю редко), и уже вам ответили..
От себя могу только добавить - там в теме в комментах есть версия и под API 2, ну разве что не будет выдачи сообщений от чужого ника.. Но это и хорошо, ни к чему оно.. big_smile.gif

да
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: Say_script 1.03 - 1.031
От темы с ID: 508
0 Voyajer 1 940 27.2.2009, 23:22 Посл. сообщение: Voyajer

 



RSS Сейчас: 22.1.2018, 7:13