myDC.ru

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

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

> InfoMenu, API2 | Скрипт показывающий информацию о хабе и о юзере в меню

Рейтинг 5 V
Теги
Нет тегов для показа
Saymon21
сообщение 21.5.2010, 15:09
Сообщение #1


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

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




Название: InfoMenu
Версия API API2
Автор: Saymon

Описание: Скрипт показывает информацию о хабе и о юзере в меню.

Скрин:
Прикрепленный файл  scrin.jpg ( 1.1 мегабайт ) Кол-во скачиваний: 593


Прикрепленный файл  InfoMenu_by_Saymon.lua ( 8.14 килобайт ) Кол-во скачиваний: 310


PS. Скрипт писал для себя решил выложить, авось кому понадобится big_smile.gif
PPS. На скрине есть пункт "Прислать дополнительное меню". В данном скрипте этого нет. Это из другова скрипта.

Сообщение отредактировал Saymon - 21.5.2010, 16:30


Спасибо сказали:
Go to the top of the page
+Quote Post
sania
сообщение 21.5.2010, 15:56
Сообщение #2


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

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




меню на хабе не появилось, в опчат пишит
[16:49:42] <OpChat> ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:127: attempt to concatenate field '?' (a nil value)

У мя птока 0,4,1,2
Go to the top of the page
+Quote Post
Saymon21
сообщение 21.5.2010, 16:30
Сообщение #3


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

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




Исправил big_smile.gif
Скрипт перезалит в первом посте.
Go to the top of the page
+Quote Post
sania
сообщение 21.5.2010, 17:42
Сообщение #4


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

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




Меню также неробит на хабе с грейлинка(профиль админский)
Меню робит с флайлинка(профиль незарегенный)

Выводит сообщение, теперь уже в птоке, такое:

[18:37] Синтаксис ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:127: attempt to concatenate field '?' (a nil value)

В опчате тож выводит сообщение:

[18:40:03] <OpChat> ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:127: attempt to concatenate field '?' (a nil value)
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.5.2010, 18:17
Сообщение #5


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

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




Не знаю что там у тебя, а у меня

[19:15] Нет синтаксических ошибок в файле скрипта InfoMenu_by_Saymon.lua
[19:15] Скрипт запущен.

Вот скрипт прямо из моей птоки Прикрепленный файл  InfoMenu_by_Saymon.lua ( 8.14 килобайт ) Кол-во скачиваний: 67

Проверял на 0.4.1.2 и на 0.4.1.1
Ошибок нет.
Go to the top of the page
+Quote Post
sania
сообщение 22.5.2010, 19:15
Сообщение #6


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

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




Ну хз, хз!
Пробую - в опчат сёрано сообщения пишит!
Так шо хз где там да чё!
А еси за птокой после установки скрипта последить то увидишь похожие сообщеньица:
[20:14] Синтаксис ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:132: attempt to concatenate a nil value
Так что гдето чтото там спрятоно still_dreaming.gif
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.5.2010, 20:05
Сообщение #7


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

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




Цитата(sania @ 22.5.2010, 20:18) *
[-1] = "Unregistered User",
[0] = "Master",
[1] = "Админ",
[2] = "Moderator",
[3] = "Operator",
[4] = "VIP",
[5] = "Registered User",


Это в твоей птоке профили такие?
Go to the top of the page
+Quote Post
sania
сообщение 22.5.2010, 20:19
Сообщение #8


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

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




ога, а чё?
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.5.2010, 20:29
Сообщение #9


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

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




А теперь, ради интереса

тыкай
найти:
Код
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш профиль на хабе:\t"..tProfileName[tUser.iProfile].."$<%[mynick]> ||"..

заменить на:
Код
--"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш профиль на хабе:\t"..tProfileName[tUser.iProfile].."$<%[mynick]> ||"..

найти:
Код
         if tProfiles[tUser.iProfile] == 1 then
     Core.SendToUser(tUser, InformMenu)
        end


заменить на:
Код
         --if tProfiles[tUser.iProfile] == 1 then
     Core.SendToUser(tUser, InformMenu)
        --end
Go to the top of the page
+Quote Post
sania
сообщение 22.5.2010, 21:10
Сообщение #10


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

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




Сделал, вроде так норма всё
Go to the top of the page
+Quote Post
Ksan
сообщение 22.5.2010, 22:56
Сообщение #11


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

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




Избавься ты от этих левых профилей! Иначе у тебя на каждом новом скрипте постоянно будут подобные проблемы и люди будут тратить половину своего времени на решение твоих профильных проблем.
Насоздавал их зачем-то...Ты сначала напучись работать со скриптами, а потом уж делай что хочешь со всем остальным.
Go to the top of the page
+Quote Post
Saymon21
сообщение 23.5.2010, 13:31
Сообщение #12


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

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




sania, У тебя есть 3 варианта сейчас.
1) Делай как тебе сказал Ksan.

2) Допили профили под себя. (тыкай)

а именно тут
Код
local tProfiles = { -- Кому будет доступно меню. 1 - Да. 0 - Нет.
    [0] = 1, -- Мастер
    [1] = 1, -- ОПератор
    [2] = 1, -- VIP
    [3] = 1, -- Зарегистрированный пользователь
    [-1] = 1, -- Незарегистрированный юзер
}

и тут

tProfileName = {  -- Названия профилей.
    [0] = "Главный администратор",
    [1] = "Оператор",
    [2] = "VIP-Пользователь",
    [3] = "Зарегистрированый пользователь",
   [-1] = "Незарегистрированный пользователь",
}


После этого убери коментарий в тех строках, что я тебе показал.

3) Юзай данный скрипт без ограничения по профилям и отображения имени профиля.


Спасибо сказали:
Go to the top of the page
+Quote Post
sania
сообщение 23.5.2010, 15:42
Сообщение #13


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

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




Спасибо, Saymon , сделал по пункту 2, все заработало нормально!!!
Go to the top of the page
+Quote Post
sania
сообщение 26.5.2010, 9:54
Сообщение #14


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

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




А всётаки очень редко, но в опчат выводит сообщение 2 раза в день(с утра и вечером)!
Такая же похожая фигня была 2 раза в день и когда мы убирали отображение профиля, просто я её не сразу заметил
Сообщение такое:
[10:52:16] <OpChat> ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:83: attempt to perform arithmetic on local 'a' (a nil value)

Исправить можно как-нибудь просто?
Go to the top of the page
+Quote Post
Nickolya
сообщение 26.5.2010, 10:48
Сообщение #15


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

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




Заменить
Код
a,b,c = tonumber(a),tonumber(b),tonumber(c)
на
Код
a,b,c = tonumber(a or 0),tonumber(b or 0),tonumber(c or 0)


Спасибо сказали:
Go to the top of the page
+Quote Post
sania
сообщение 26.5.2010, 21:00
Сообщение #16


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

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




Спасибо большое baffle.gif
Go to the top of the page
+Quote Post
sania
сообщение 27.5.2010, 21:20
Сообщение #17


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

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




блин, теперя такую хрень в опчат пишит, также редко:
[22:17:37] <OpChat> ... Files\PtokaX 0.4.1.2\scripts\InfoMenu_by_Saymon.lua:131: attempt to concatenate a nil value
Go to the top of the page
+Quote Post
Nickolya
сообщение 27.5.2010, 21:46
Сообщение #18


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

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




Приводи сюда свой код в качестве примера, а то у меня эта строка вообще пустая! Надо от тебя лишь строчку, выдающую ошибку.
Go to the top of the page
+Quote Post
belradio
сообщение 28.5.2010, 11:30
Сообщение #19


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


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




что то ошибку выдает вот такую в личку от опчата:
[11:19:19] <OpChat> C:\Хаб\scripts\InfoMenu_by_Saymon.lua:126: attempt to concatenate field '?' (a nil value)

но при это скрипт пашет нормально.. Вот кусок кода:

Код
125        "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Количество ваших слотов составляет:\t"..Slots(tUser).."$<%[mynick]> ||"..
126          "$UserCommand 0 3|"
127         Core.SendToUser(tUser,"$UserCommand 1 3                <•><•><•><•><•><•><•><•><•><•><•><•>  $<%[mynick]> ||")
Go to the top of the page
+Quote Post
sania
сообщение 28.5.2010, 21:23
Сообщение #20


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

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




Nickolya

Вот весь мой робящий скрипт с выше описанною проблемой:

Здеся скрипт
Код
--[[::::::::::::::::::: (с) 2010 by Saymon :::::::::::::::::::::::::::::
Название: InfoMenu
Версия API: API2
Автор: Saymon
Описание: Скрипт показывает информацию о хабе и о юзере в меню.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::]]

HubOwner = "Admin" -- Владелец хаба
InetProvayder = "РосИнтел(сайт www.rosintel.ru)" --Интернет провайдер
HubCity = "Новомосковск" -- Город хаба
HubName = SetMan.GetString(0)
sMenu = "Информация для"
YearInitial = "2009" -- Год в котором был открыт хаб
YearFlowing = "2010"
local tProfiles = { -- Кому будет доступно меню. 1 - Да. 0 - Нет.
    [0] = 1, -- NetFounder
    [1] = 1, -- Admin
    [2] = 1, -- Moderator
    [3] = 1, -- Operator
    [4] = 1, -- VIP
    [5] = 1, -- Reg
    [-1] = 1, -- Незарегистрированный юзер
}
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
tProfileName = {  -- Названия профилей.
    [0] = "Главный администратор",
    [1] = "Admin",
    [2] = "Moderator",
    [3] = "Operator",
    [4] = "VIP",
    [5] = "Зарегистрированный пользователь",
   [-1] = "Незарегистрированный пользователь",
}
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function GetNormalShare(s)
  s = tonumber(s) or 0
  if s >= 1125899906842624 then return (math.floor(1000 * s / 1125899906842624) / 1000).." ПБ"
  elseif s >= 1099511627776 then return (math.floor(1000 * s / 1099511627776) / 1000).." TБ"
  elseif s >= 1073741824 then return (math.floor(1000 * s / 1073741824) / 1000).." ГБ"
  elseif s >= 1048576 then return (math.floor(1000 * s / 1048576) / 1000).." МБ"
  elseif s >= 1024 then return (math.floor(1000 * s / 1024) / 1000).." КБ"
  else return s.." Б" end
end
function GetUserReg(sNick)
    local tRegUser = RegMan.GetReg(sNick)
    if user then
        return "Ваш пароль: "..tUser.sPassword..""
    end
    return "n/a"
end  
function GetNormalTime(s) -- форматирование времени
    s=tonumber(s) or 0
    local r=""
    if s>=31104000 then r=math.floor(s/31104000).." г. " s=math.fmod(s,31104000) end
    if s>=2592000 then r=r..math.floor(s/2592000).." мес. " s=math.fmod(s,2592000) end
    if s>=86400 then r=r..math.floor(s/86400).." д. " s=math.fmod(s,86400) end
    if s>=3600 then r=r..math.floor(s/3600).." ч. " s=math.fmod(s,3600) end
    if s>=60 then r=r..math.floor(s/60).." мин. " s=math.fmod(s,60) end
    return r..s.." сек."
end
function ModeRec(tUser)
    if Core.GetUserValue(tUser,10) then
        return "Активный"
    elseif Core.GetUserValue(tUser,0) == "P" then
        return "Пассивный"
    else
        return "Proxy"
    end
end
function Client(tUser)
    if not Core.GetUserValue(tUser,6) or not Core.GetUser(tUser.sNick,true).sClientVersion then
        return "n/a"
    else
        return Core.GetUserValue(tUser,6)
    end
end
function Hubs(tUser)
    if not Core.GetUserValue(tUser,17) or Core.GetUserValue(tUser,17) == 0 then
        if not Core.GetUserValue(tUser,1):find("H%d+,S") then
            local a,b,c = Core.GetUserValue(tUser,1):match("H:(%d+)/(%d+)/(%d+)")
            a,b,c = tonumber(a or 0),tonumber(b or 0),tonumber(c or 0)
            --local
            hubs = a+b+c
        else
            hubs = Core.GetUserValue(tUser,1):match("H(%d+),S")
        end    
        return hubs
    else
        return Core.GetUserValue(tUser,17)
    end        
end    
function Slots(tUser)
    if not Core.GetUserValue(tUser,21) or Core.GetUserValue(tUser,21) == 0 then
        local slots = Core.GetUserValue(tUser,1):match("S:(%d+)")
        return tonumber(slots)
    else
        return Core.GetUserValue(tUser,21)
    end
end    
function UserConnected(tUser)

local InformMenu = "$UserCommand 0 3|"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Добро пожаловать, "..tUser.sNick.."$<%[mynick]> ||"..
         "$UserCommand 0 3|"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\        Информация о хабе$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Название хаба:\t"..HubName.." $<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Описание хаба:\t"..(SetMan.GetString(5) or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Топик:\t"..(SetMan.GetString(10) or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Владелец:\t"..HubOwner.."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Город хаба:\t"..HubCity.."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Интернет провайдер:\t"..InetProvayder.."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Сейчас на хабе:\t"..Core.GetUsersCount().." пользователей онлайн$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Из них администрации:\t"..#Core.GetOnlineOps().." представителей онлайн $<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Общая шара хаба составляет:\t"..GetNormalShare(Core.GetCurrentSharedSize()).."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Время непрерывной работы хаба:\t"..GetNormalTime(Core.GetUpTime()).."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Время и дата на сервере:\t"..os.date("%H:%M / %d %b %Y").."$<%[mynick]> ||"..
         "$UserCommand 0 3|"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\       Информация о вас$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш ник:\t"..tUser.sNick.."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш пароль:\t"..(tUser.iProfile ~= -1 and RegMan.GetReg(tUser.sNick).sPassword or "-").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\IP / Страна:\t"..tUser.sIP.." / "..tostring(IP2Country.GetCountryName(tUser)).."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваше описание:\t"..(Core.GetUser(tUser.sNick,true).sDescription or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваша шара:\t"..GetNormalShare(Core.GetUserValue(tUser,16)).."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш E-Mail:\t"..(Core.GetUser(tUser.sNick,true).sEmail or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш профиль на хабе:\t"..tProfileName[tUser.iProfile].."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш режим подключения:\t"..ModeRec(tUser).."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш клиент:\t"..Client(tUser).." "..(Core.GetUser(tUser.sNick,true).sClientVersion or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\DC тег:\t"..(Core.GetUser(tUser.sNick,true).sTag or "n/a").."$<%[mynick]> ||"..
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Вы на:\t"..Hubs(tUser).." хабах$<%[mynick]> ||"..  
         "$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Количество ваших слотов составляет:\t"..Slots(tUser).."$<%[mynick]> ||"..
         "$UserCommand 0 3|"
         Core.SendToUser(tUser,"$UserCommand 1 3  <•><•><•><•><•><•><•><•><•>  $<%[mynick]> ||")
         Core.SendToUser(tUser,"$UserCommand 1 3  «¤•°"..HubName.."°•¤» © "..YearInitial.." - "..YearFlowing.."$<%[mynick]> ||")
         Core.SendToUser(tUser,"$UserCommand 1 3  <•><•> Меню пользователя <•><•>  $<%[mynick]> ||")
        
         if tProfiles[tUser.iProfile] == 1 then
     Core.SendToUser(tUser, InformMenu)
        end
   end
OpConnected = UserConnected
RegConnected = UserConnected

function OnError(s)
  local h=io.open("errors.log","a+")
  if h then
    h:write(os.date()..": "..s.."\r\n")
    h:close()
  end
  if Core then
    Core.SendToOpChat(s)
  else
    SendToOpChat(s)
  end
end
Go to the top of the page
+Quote Post

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

 



RSS Сейчас: 27.4.2024, 4:38