myDC.ru

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

 
53 страниц V  « < 12 13 14 15 16 > »   
Ответить в данную темуНачать новую тему

> Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)

IIPu3PAK
сообщение 20.3.2009, 13:06
Сообщение #261


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

Группа: Пользователи
Сообщений: 80
Регистрация: 25.2.2009
Пользователь №: 2 359
Спасибо сказали: 6 раз




1)
Цитата
Сначала отсылаем то, что можно быстро отослать

Фактически если смотреть мониторинг сервера то данные могут приходить с запозданием в секунду и причем SendToAll тот который написан(он фактически у мну пишется 2 раза т.к. забито 2 айпи) но всеравно все 2 раза приходят в чат скопом после ВСЕГО мониторинга а не его части
2)под птоха 3.6.0 ну вообще нивкакую

function ChatArrival(tUser,sData)
Unban("172.25.188.23")
end

Должна работать?
Go to the top of the page
+Quote Post
Setuper
сообщение 20.3.2009, 13:49
Сообщение #262


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну я же говорю, что данное сообщение ставится в "глобальную очередь", и оно не будет отсылаться, пока не бетед отослана вся "локальная очередь". Что тут не понятно? Не нравится, - я предложил альтернативный вариант.
Go to the top of the page
+Quote Post
IIPu3PAK
сообщение 20.3.2009, 14:56
Сообщение #263


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

Группа: Пользователи
Сообщений: 80
Регистрация: 25.2.2009
Пользователь №: 2 359
Спасибо сказали: 6 раз




Цитата(Setuper @ 20.3.2009, 14:49) *
Ну я же говорю, что данное сообщение ставится в "глобальную очередь", и оно не будет отсылаться, пока не бетед отослана вся "локальная очередь". Что тут не понятно? Не нравится, - я предложил альтернативный вариант.

вот теперь все понятно....
остался вопрос №2
Go to the top of the page
+Quote Post
Setuper
сообщение 20.3.2009, 15:30
Сообщение #264


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




0.3.6.0: Прикрепленный файл  PtokaX.rar ( 729.03 килобайт ) Кол-во скачиваний: 1


Работает.
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 13:00
Сообщение #265


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Core.GetUserData(tUser, nValueId) - Добавляет или обновляет данные с указанным идентификатором в таблице пользователя. Возвращает nil в случае неудачи (пользователь оффлайн) или true в случае успеха.

Подскажите, как добавить то?
Вообщем нужно следущее:
При подключении изера идет проверка Core.GetUserValue(tUser,5). Если проверку не проходит, то надо чтобы эта строка (строка Email) у него отображалась пустой на хабе. Как это сделать?
Go to the top of the page
+Quote Post
Setuper
сообщение 31.3.2009, 13:25
Сообщение #266


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




В том-то и дело, что никак.

Функция GetUserData добавляет в таблицу tUser поле, которому отвечает идентификатор nValueId, если это поле не добавлялось ранее в эту таблицу. Если поле было добавлено ранее, то данная функция обновляет данные в этом поле.

Внесение изменений самому в это поле невозможно. Единственный выход - это установка отправки полной строки MyINFO по таймеру.

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

Это можно было бы реализовать в PtokaX, если бы получаемые данные MyINFO от пользователя можно было бы блокировать в функции MyINFOArrival, допустим путём возвращения этой функцией значения true (как это делает, например, функция ChatArrival).

К сожалению функционал ptokax не столь разнообразен, и это явный недостаток.
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 13:39
Сообщение #267


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




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

Цитата
Единственный выход - это установка отправки полной строки MyINFO по таймеру.


Вот это не понял, поясни пожалуйста!

З.Ы.:
Есть хаб dchub://exclusive.maryno.net он на Птоке 0.4.1.1
на нем это как-то реализовано. Чем бы я не заполнял поля Description , на хабе оно пустое отображается (и так у всех)
Go to the top of the page
+Quote Post
Setuper
сообщение 31.3.2009, 14:04
Сообщение #268


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Нет. Я же сказал, что реализовать можно, но только по средствам таймера отсылки.

То есть смысл вот в чём.
Описание, email, шара, тэг и тд. - все эти параметры хаб получает от пользователя через отправку на хаб пользователем команды $MyINFO.
В PtokaX есть функция, которая перехватывает эту команду. Это функция MyINFOArrival. Эта функция выполняется каждый раз, когда пользователь отсылает на хаб команду $MyINFO.

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

После отправки пользователем на хаб этой команды, команда поступает в функцию MyINFOArrival, но так как эта функция не блокирует эту команду, то после выполнения этой функции (MyINFOArrival), эта команда будет транслирована хабом всем пользователям хаба.

Ну так вот, например, пользователь Вася отправляет эту команду:
Код
$MyINFO $ALL Вася Описание<StrgDC++ V:2.22,M:A,H:1/2/0,S:5>$ $Modem$email$26937284354$|

Команда поступает в функцию MyINFOArrival в качестве параметра sData:
Код
$MyINFO $ALL Вася Описание<StrgDC++ V:2.22,M:A,H:1/2/0,S:5>$ $Modem$email$26937284354$|

В этой функции мы пытаемся отправить всем пользователям другие данные, например, заменив email на 123:
Код
function MyINFOArrival(tUser, sData)
  sData = sData:gsub(sData:match"%$(.-)%$.-%$|$", "123")
  Core.SendToAll(sData)
end


Но после окончания выполнения этой функции, так как функция не блокирует пересылку этой команды всем пользователям, всем пользователям отправятся те самые данные, которые мы так тщательно пытались заменить.


Поэтому выход из этой ситуации таков: переждать пока функция MyINFOArrival перешлёт эту команду всем пользователям и только после этого отсылать свои подкорректированные данные:
Код
local tTimers = {}
local iInterval = ???

function MyINFOArrival(tUser, sData)
  local iIdTimer = TmrMan.AddTimer(iInterval, "Timer")
  tTimers[iIdTimer] = sData
end

function Timer()
  for i,w in pairs(tTimers) do
    Core.SendToAll(w:gsub(w:match"%$(.-)%$.-%$|$", "123"))
    tTimers[i] = nil
    TmrMan.RemoveTimer(i)
  end
end


При всём сказанном, колоссальное значение имеет выбор параметра iInterval, так как при большом количестве народа за это время (iInterval), если оно мало, данные команды $MyINFO могут ещё не быть разостланы всем пользователям. Поэтому данный параметр должен подстраиваться под количество народу на хабе и под производительность сервера. Поэтому реализовать можно, но сложно и геморно.
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 14:11
Сообщение #269


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Я там изменил свое сообщение, не поглядишь тот хаб который я указал, думаешь у них именно так реализовано?
Спасибо за ответ!!!!
Go to the top of the page
+Quote Post
Setuper
сообщение 31.3.2009, 14:19
Сообщение #270


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну это просто сделать: входишь в настройки -> Моя информация -> убираешь галочку со строки описания.
Убрать полностью - это не значит заменить big_smile.gif
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 14:39
Сообщение #271


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




не не не! Как раз информацию то я вводил, как и многие другие там....но на хабе поля эти пустые когда подключаюсь)
Т.е. перед подключением я заполняю поле у себя Description, подключаюсь на хаб...а оно отображается пустым там.

Вот именно так нужно...т.е. чтобы ни писали юзеры у себя в описании и в емайле...на хабе оно отображается пустым, как у них.
Go to the top of the page
+Quote Post
Setuper
сообщение 31.3.2009, 14:59
Сообщение #272


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну да. Это в настройках хаба ставиться. Именно там, где я и сказал. И чтобы ты не написал - оно отображаться ни для кого не будет.
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 15:07
Сообщение #273


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Еще 1 вопрос:
При определенном событии (условии) нику посылается сообщение.
К примеру Core.SendPmToNick(tUser.sNick, "Тест PM", "<"..tUser.sNick.."> "..whoTo..": "..chat.."" )
Ника такого, конечно не существует. Когда юзер отвечает ему в (в PM ессно) то его отключает от хаба. Не подскажите почему такое может происходить?




Цитата(Setuper @ 31.3.2009, 14:59) *
Ну да. Это в настройках хаба ставиться. Именно там, где я и сказал. И чтобы ты не написал - оно отображаться ни для кого не будет.


Спасибо, вот это я нуб!)))
Go to the top of the page
+Quote Post
Setuper
сообщение 31.3.2009, 15:34
Сообщение #274


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




С личкой шутки плохи))
Все операции с личными сообщениями пользователей не нужно производить!
Go to the top of the page
+Quote Post
vicious
сообщение 31.3.2009, 15:47
Сообщение #275


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Я знаю что здесь запрещенны скрипты в которых это может быть использовано, однако скрипт я уже написал, выкладывать ессно не буду. Да и у себя не использую, но суть не в этом...я хочу понять почему при ответе этому не существующему нику, юзера отключает. Если например от ССкрипта написать - то при ответе не отключит, а здесь отключает...хочу понять почему, чисто для себя, ибо мне и не нужно впринципе чтобы туда кто-нить отвечал!!! Но понять хочется.
Go to the top of the page
+Quote Post
alex82
сообщение 31.3.2009, 19:22
Сообщение #276


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




Цитата
К примеру Core.SendPmToNick(tUser.sNick, "Тест PM", "<"..tUser.sNick.."> "..whoTo..": "..chat.."" )

Ник юзера не может содержать пробелов - это нарушение протокола NMDC. А отключает, видимо, за неизвестную команду.
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 3.4.2009, 18:11
Сообщение #277


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




из-за чего могут вылетать все скрипты с ошибкой "No space left on device"? помогает включить их обратно тока перезагрузка хаба
Go to the top of the page
+Quote Post
vicious
сообщение 3.4.2009, 18:59
Сообщение #278


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Подскажите как из string - число получить.
Суть в следующем. к примеру - временный бан. Меню - временно забанить. Щелкаем - вводим ник, время, причину.
Время у нас получается string и поэтому когда я захватываю его и использую в BanMan.Ban мне ессно выдается ошибка.
Как правильно делать? Заранее пасиба за ответ!.
Вот необходимые части кода чтобы понять в чем проблема:

Код
Core.SendToUser(tUser, ""..hMenu.."\Временно забанить юзера$<%[mynick]> !ptban %[line:Введите ник] %[line:Введите время бана в минутах] %[line:Введите причину]|")

function ChatArrival(tUser, sData)
sData = string.sub(sData,1,-2)
local _,_,data = string.find(sData, "%b<>(.*)")
local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")

if cmd == "!ptban" then
    local _,_,nick,sTime,sReason = string.find(sData, "%b<>%s+%S+%s+(%S+)%s+(%S+)%s+(.*)")
    local nick = Core.GetUser(nick)
    BanMan.TempBan(nick,sTime,sReason,sBot,false)
    return true
end
end
Go to the top of the page
+Quote Post
alex82
сообщение 3.4.2009, 19:20
Сообщение #279


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




Цитата(vicious @ 3.4.2009, 18:59) *
Подскажите как из string - число получить.
tonumber(<строка>)
Go to the top of the page
+Quote Post
Setuper
сообщение 3.4.2009, 19:22
Сообщение #280


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
if cmd == "!ptban" then
  local nick,sTime,sReason = sData:match"%b<>%s+%S+%s+(%S+)%s+(%d+)%s+(.*)"
  if nick then
    local nick = Core.GetUser(nick)
    BanMan.TempBan(nick,tonumber(sTime),sReason,sBot,false)
    return true
  end
end
Go to the top of the page
+Quote Post

53 страниц V  « < 12 13 14 15 16 > » 
Ответить в данную темуНачать новую тему
18 чел. читают эту тему (гостей: 18, скрытых пользователей: 0)
Пользователей: 0

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 45 297 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 320 750 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 329 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 29 668 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 359 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 795 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 7 307 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 25 937 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 268 406 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 50 824 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 9 112 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 9 032 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 41 281 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 62 148 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 457 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 23.11.2024, 8:52