myDC.ru

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

 
53 страниц V  « < 27 28 29 30 31 > »   
Ответить в данную темуНачать новую тему

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

Saymon21
сообщение 4.8.2009, 15:04
Сообщение #561


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

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




да и текстовые файлы и скрипты перезагружал

Цитата(Setuper @ 4.8.2009, 15:52) *
Функция loadfile считывает из файла (или из потока) lua код !
В данном же случае нам нужно считывать сообщение, а не lua код!
Поэтому код будет выглядеть так:

Код
function SupportsArrival(tUser)
  local h = io.open(Core.GetPtokaXPath().."texts/название_файла.txt")
  if h then
    Core.SendToUser(tUser, h:read())
    Core.Disconnect(tUser)
    h:flush()
    h:close()
  end
end


это работает а можно чтобы текстовый файл был на несколько строк
Go to the top of the page
+Quote Post
Setuper
сообщение 4.8.2009, 15:30
Сообщение #562


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

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




Можно:

Код
Core.SendToUser(tUser, h:read"*a")
Go to the top of the page
+Quote Post
Saymon21
сообщение 4.8.2009, 15:39
Сообщение #563


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

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




всё работает спасибо большое а можете дать сслыку на раководство которое очень сильно может помочь при написании скриптов только на русском если такое существует я англ не знаю
Go to the top of the page
+Quote Post
Setuper
сообщение 4.8.2009, 16:13
Сообщение #564


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

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




Не надо цитировать предыдущий пост!!!

http://mydc.ru/ipb.html?act=announce&f=28&id=4
Go to the top of the page
+Quote Post
Syndicate
сообщение 5.8.2009, 12:51
Сообщение #565


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


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




Как можно организовать доступ только с определенного диапазона IP адресов на хаб?
Go to the top of the page
+Quote Post
Setuper
сообщение 5.8.2009, 14:43
Сообщение #566


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

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




Код
local tRanks = {
  {"10.0.0.0", "10.255.255.255"},
  {"192.168.0.0", "192.168.255.255"}
}

function Ip2Num(sIP)
  local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$"
  return a * 16777216 + b * 65536 + c * 256 + d
end

function OnStartup()
  for k, v in ipairs(tRanks) do
    tRanks[k][1], tRanks[k][2] = Ip2Num(v[1]), Ip2Num(v[2])
  end
end

function UserConnected(tUser)
  local iIP = Ip2Num(tUser.sIP)
  for _, v in ipairs(tRanks) do
    if iIP > v[1] and iIP < v[2] then
      return
    end
  end
  Core.Disconnect(tUser)
end

RegConnected, OpConnected = UserConnected, UserConnected


Спасибо сказали:
Go to the top of the page
+Quote Post
Sekretchik
сообщение 5.8.2009, 22:19
Сообщение #567


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

Группа: Пользователи
Сообщений: 104
Регистрация: 1.4.2009
Из: Россия
Пользователь №: 2 871
Спасибо сказали: 42 раза




Цитата(Syndicate @ 5.8.2009, 13:51) *
Как можно организовать доступ только с определенного диапазона IP адресов на хаб?


Я указал в настройках самой PtokaX... долго искал скрипт - а потом тут где-то мыслю хорошую увидел (кажись Setuper предлогал)... И настроил...
Go to the top of the page
+Quote Post
Alexey
сообщение 7.8.2009, 3:37
Сообщение #568


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

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




Или средствами сетевого экрана.
Go to the top of the page
+Quote Post
Saymon21
сообщение 9.8.2009, 23:01
Сообщение #569


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

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




Код
Core.SendPmToUser(user,tSettings.sBot, "


как я понимаю этот код отсылает сообщение в приват а напишите пожалуйста код который будет отсылать сообщение в главный чат
Go to the top of the page
+Quote Post
Артём
сообщение 10.8.2009, 0:02
Сообщение #570


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Код
Core.SendToUser(user,tSettings.sBot, "

вроде так...
Go to the top of the page
+Quote Post
Setuper
сообщение 10.8.2009, 0:07
Сообщение #571


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

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




Код
Core.SendToUser(user, "<"..tSettings.sBot.."> ".."
Go to the top of the page
+Quote Post
Saymon21
сообщение 13.8.2009, 17:33
Сообщение #572


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

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




CODE
sBot = SetMan.GetString(21) -- имя бота
tProfile = {
[-1] = 1, [0] = 1, [1] = 1, [2] = 1, [3] = 1, [4] = 1,
} -- кому доступно меню

function UserConnected(user)
Core.GetUserAllData(user)
if tProfile[user.iProfile] == 1 then


Core.SendToNick(user.sNick,"$UserCommand 1 3 Меню хаба\\Информация$<%[mynick]> !pravila||")

end
end
OpConnected = UserConnected
RegConnected = UserConnected


подскажите как сделать чтобы было так Меню хаба\\Информация для (ник пользователя)
Go to the top of the page
+Quote Post
alex82
сообщение 13.8.2009, 17:59
Сообщение #573


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

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




Код
Информация для "..user.sNick.."
Go to the top of the page
+Quote Post
Setuper
сообщение 13.8.2009, 20:33
Сообщение #574


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

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




Такой скрипт уже есть в готовых
Go to the top of the page
+Quote Post
Akafellas
сообщение 27.8.2009, 0:59
Сообщение #575


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


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




почему криво печатает в чат, скажите пажалуйста

пишет
[01:55:43] <newnick
[01:55:43] > криво печатает почему-то=(((((
вместо
[01:55:43] <newnick> криво печатает почему-то=(((((

Код
s,e,cmd,oNik,nNik= string.find(message,"%b<>%s(.+)%s(.+)%s(.+)")
    if (cmd == "!nickchange") and oNik~= nil and nNik~= nil then
         nicker[oNik]=nNik
    end

        s,e,mes = string.find(message, "%b<>%s(.*)")
        if nicker[curUser.sNick]~=nil then
            Core.SendToAll("<"..nicker[curUser.sNick].."> "..mes)
            return true
        end
Go to the top of the page
+Quote Post
Setuper
сообщение 27.8.2009, 1:07
Сообщение #576


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

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




Во-первых, переменные, которые возвращаются функцией string.find, либо все равны nil, либо все не равны nil. Поэтому нет смысла делать лишние проверки.

Во-вторых, на конце каждого сообщения присутствует символ |, который в NMDC протоколе разделяет команды друг от друга. Поэтому в переменную nNik запишется ник + символ |, соответственно такой изменённый ник запишется в таблицу nicker и при отсылке в чат будет работать как разделитель команд, то есть разобьёт нашу команду чата на две команды чата))

После всего сказанного получаем:
Код
message = message:sub(1, -2)
s,e,cmd,oNik,nNik= string.find(message,"%b<>%s(.+)%s(.+)%s(.+)")
if cmd == "!nickchange" then
  nicker[oNik]=nNik
end

s,e,mes = string.find(message, "%b<>%s(.*)")
if nicker[curUser.sNick] ~= nil then
  Core.SendToAll("<"..nicker[curUser.sNick].."> "..mes)
  return true
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Akafellas
сообщение 27.8.2009, 12:19
Сообщение #577


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


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




спс!!!примногоблагодарен!!!))))всё работает!!!
Go to the top of the page
+Quote Post
abra
сообщение 9.9.2009, 16:52
Сообщение #578


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


Группа: Пользователи
Сообщений: 2
Регистрация: 9.9.2009
Пользователь №: 4 403
Спасибо сказали: 0 раз




Добрый день!
Не понимаю в lua практически ничего, но по логике, когда пытаюсь сделать:
DD = AnsiToUtf8('рыба')
то получаю следующую ошибку: attempt to index local 's' (a string value)

Скажите, плз, каким образом я могу переконвертировать строку из одной кодировки в другую, а результат сохранить в переменной?

Спасибо!!


Раскрывающийся текст
Цитата(Setuper @ 6.9.2008, 16:58) *
Привожу полное преобразование на lua из кодировки cp1251 (Ansi) в utf-8 и обратно, с помощью функций AnsiToUtf8 и Utf8ToAnsi соответственно:

Код
local ansi_decode={
  [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166',
  [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185',
  [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152',
  [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148',
  [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156',
  [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136',
  [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169',
  [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135',
  [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181',
  [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187',
  [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'
}
local utf8_decode={
  [128]={[147]='\150',[148]='\151',[152]='\145',[153]='\146',[154]='\130',[156]='\147',[157]='\148',[158]='\132',[160]='\134',[161]='\135',[162]='\149',[166]='\133',[176]='\137',[185]='\139',[186]='\155'},
  [130]={[172]='\136'},
  [132]={[150]='\185',[162]='\153'},
  [194]={[152]='\152',[160]='\160',[164]='\164',[166]='\166',[167]='\167',[169]='\169',[171]='\171',[172]='\172',[173]='\173',[174]='\174',[176]='\176',[177]='\177',[181]='\181',[182]='\182',[183]='\183',[187]='\187'},
  [208]={[129]='\168',[130]='\128',[131]='\129',[132]='\170',[133]='\189',[134]='\178',[135]='\175',[136]='\163',[137]='\138',[138]='\140',[139]='\142',[140]='\141',[143]='\143',[144]='\192',[145]='\193',[146]='\194',[147]='\195',[148]='\196',
    [149]='\197',[150]='\198',[151]='\199',[152]='\200',[153]='\201',[154]='\202',[155]='\203',[156]='\204',[157]='\205',[158]='\206',[159]='\207',[160]='\208',[161]='\209',[162]='\210',[163]='\211',[164]='\212',[165]='\213',[166]='\214',
    [167]='\215',[168]='\216',[169]='\217',[170]='\218',[171]='\219',[172]='\220',[173]='\221',[174]='\222',[175]='\223',[176]='\224',[177]='\225',[178]='\226',[179]='\227',[180]='\228',[181]='\229',[182]='\230',[183]='\231',[184]='\232',
    [185]='\233',[186]='\234',[187]='\235',[188]='\236',[189]='\237',[190]='\238',[191]='\239'},
  [209]={[128]='\240',[129]='\241',[130]='\242',[131]='\243',[132]='\244',[133]='\245',[134]='\246',[135]='\247',[136]='\248',[137]='\249',[138]='\250',[139]='\251',[140]='\252',[141]='\253',[142]='\254',[143]='\255',[144]='\161',[145]='\184',
    [146]='\144',[147]='\131',[148]='\186',[149]='\190',[150]='\179',[151]='\191',[152]='\188',[153]='\154',[154]='\156',[155]='\158',[156]='\157',[158]='\162',[159]='\159'},[210]={[144]='\165',[145]='\180'}
}

local nmdc = {
  [36] = '$',
  [124] = '|'
}

function AnsiToUtf8(s)
  local r, b = ''
  for i = 1, s and s:len() or 0 do
    b = s:byte(i)
    if b < 128 then
      r = r..string.char(b)
    else
      if b > 239 then
        r = r..'\209'..string.char(b - 112)
      elseif b > 191 then
        r = r..'\208'..string.char(b - 48)
      elseif ansi_decode[b] then
        r = r..ansi_decode[b]
      else
        r = r..'_'
      end
    end
  end
  return r
end

function Utf8ToAnsi(s)
  local a, j, r, b = 0, 0, ''
  for i = 1, s and s:len() or 0 do
    b = s:byte(i)
    if b < 128 then
      if nmdc[b] then
        r = r..nmdc[b]
      else
        r = r..string.char(b)
      end
    elseif a == 2 then
      a, j = a - 1, b
    elseif a == 1 then
      a, r = a - 1, r..utf8_decode[j][b]
    elseif b == 226 then
      a = 2
    elseif b == 194 or b == 208 or b == 209 or b == 210 then
      j, a = b, 1
    else
      r = r..'_'
    end
  end
  return r
end

:)
Go to the top of the page
+Quote Post
Alexey
сообщение 9.9.2009, 18:05
Сообщение #579


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

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




По логике, нужно смотреть на ту строку, ошибку в которой пишет птока. Так-же, по логике, нужно приводить полный код скрипта, а не проверенный рабочий кусок чужого кода. Ну и втретьих, опять-же, по логике, вышепреведённый кусок кода от Сетапера с дописанными ниже парой строк работает.
Код
DD = AnsiToUtf8('рыба')
Core.SendToAll(DD)

Что подтверждается выводом в общий чат хаба следующей ерунды: [19:14:52] рыба
Go to the top of the page
+Quote Post
district
сообщение 9.9.2009, 19:07
Сообщение #580


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




... а еще лучше
Код
sAdminNick = "ник админа"
Core.SendToNick(sAdminNick, "<debug> "..tostring(DD))

если использовать tostring, то код не вылетит в случае, если DD == nil
и сообщение отладки не будет пугать юзеров, т.к. будет видно только админ-нику.

ЗЫ Модерам : надо, наверное, вопрос переместить в соответствующий топик.
Go to the top of the page
+Quote Post

53 страниц V  « < 27 28 29 30 31 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 43 734 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 305 924 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 086 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 27 831 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 070 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 533 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 6 898 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 747 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 254 409 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 48 911 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 8 636 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 8 527 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 39 184 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 57 978 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 025 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 10.5.2024, 13:32