Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Как Сделать Такое Меню?

Автор: Lpein 9.1.2009, 0:43

Как зделать так, чтобы в меню хаба отображались данные пользователя? Например, пользователь кликает и выводится меню. Первая строка там такая:"Меню для (тут ник пользователя)". Когда он наводит на эту строку, появляется подменю где первая строка такова:"Ваш ip:(тут ip пользователя)".
Думаю такое меню должно придать хабу оригинальность.

Автор: Setuper 9.1.2009, 1:49

Код
function UserConnected(tUser)
  Core.SendToUser(tUser,"$UserCommand 1 2 Меню для "..tUser.sNick.."\\Ваш ip: "..tUser.sIP.."$<%[mynick]> /me Мой ip: "..tUser.sIP.."&#*124;")
end
RegConnected=UserConnected
OpConnected=UserConnected

* - удалить

Автор: Fislons 9.1.2009, 11:27

Цитата(Setuper @ 9.1.2009, 2:49) *
Код
function UserConnected(tUser)
  Core.SendToUser(tUser,"$UserCommand 1 2 Меню для "..tUser.sNick.."\\Ваш ip: "..tUser.sIP.."$<%[mynick]> /me Мой ip: "..tUser.sIP.."&#*124;")
end
RegConnected=UserConnected
OpConnected=UserConnected

* - удалить

А как зделать что б итог "[10:25:47] * Fislons Мой ip: 127.0.0.7" показывался только мне??

Автор: Lpein 9.1.2009, 12:15

Спасибо! А что надо вставить вместо ..tUser.sIP.. чтобы показывало шару? А вообще что можно туда внедрить заместо ..tUser.sIP..?

Автор: Setuper 9.1.2009, 12:56

Цитата(Fislons @ 9.1.2009, 11:27) *
А как зделать что б итог "[10:25:47] * Fislons Мой ip: 127.0.0.7" показывался только мне??

лучше над этим не заморачиваться, так как для этого надо будет много написать кода))))

Вместо ip чтобы шара была делается так:
Код
function UserConnected(tUser)
  Core.GetUserData(tUser,16)
  Core.SendToUser(tUser,"$UserCommand 1 2 Меню для "..tUser.sNick.."\\Ваша шара: "..tUser.iShareSize.." байт$<%[mynick]> /me Моя шара: "..tUser.iShareSize.."  байт&#*124;")
end
RegConnected=UserConnected
OpConnected=UserConnected


Цитата
User data IDs for Core.GetUserData call.
-------------------
0 - sMode
1 - sMyInfoString
2 - sDescription
3 - sTag
4 - sConnection
5 - sEmail
6 - sClient
7 - sClientVersion
8 - sVersion
9 - bConnected
10 - bActive
11 - bOperator
12 - bUserCommand
13 - bQuickList
14 - bSuspiciousTag
15 - iProfile
16 - iShareSize
17 - iHubs
18 - iNormalHubs
19 - iRegHubs
20 - iOpHubs
21 - iSlots
22 - iLlimit
23 - iDefloodWarns
24 - iMagicByte
25 - iLoginTime
26 - sCountryCode


Читаем файл scripting-interface.txt, и меньше вопросов будет

Автор: Lpein 9.1.2009, 14:54

Всё понятно, большое спасибо.

Вот слепил скрипт. Думаю, кому нибуть пригодится. При нажатии на меню выдаёт комманды, их вы можете изменить.

 UserMenu.lua ( 1.64 килобайт ) : 53
 

Автор: Setuper 9.1.2009, 15:36

Если в скрипте используется много данных о пользователе (больше 2 полей таблицы пользователя), то можно вместо многократного использования функции Core.GetUserData(tUser,iNumber) написать 1 раз функцию Core.GetUserAllData(tUser)

Автор: Lpein 9.1.2009, 15:59

Переделал. Тестим.

 UserMenu.lua ( 1.74 килобайт ) : 71
 

Автор: Fislons 9.1.2009, 19:47

CODE
----------------- Script menu by Fislons (kharkov) -¦2007¦-
NewUserConnected = function(user,data)

byte = 1
Kbyte = byte*1024
Mbyte = Kbyte*Kbyte
Gbyte = Kbyte*Kbyte*Kbyte
Tbyte = Kbyte*Kbyte*Kbyte*Kbyte
share = user.iShareSize/Gbyte
email = user.sEmail
hubname = frmHub:GetHubName()
bot = frmHub:GetHubBotName()
hubtopic = frmHub:GetHubTopic()
hubonline = string.format("%.0f minute",frmHub:GetUpTime() / 60)
hubshare = string.format("%.3f Tb.",(frmHub:GetCurrentShareAmount()+user.iShareSize)/(1024 * 1024 * 1024 * 1024))
hubusersmax = frmHub:GetMaxUsers()
description = frmHub:GetHubDescr()
hubaddress = frmHub:GetHubAddress()
hubport = frmHub:GetHubPort()
hubudpport = frmHub:GetHubUdpPort()
RegisteredUsers = frmHub:GetUsersCount()
maxslots = frmHub:GetMaxSlots()




if (share == nil) then
share = "Нет шары" -- Если ничего не расшарено.
end
if (email == nil) then
email = "E-mail не указан" -- Если E-mail не указан.
end
if (hubtopic == nil) then
hubtopic = "Топик не задан" -- Если топик не задан.
end
if (user.iProfile == -1) then
profile = "Незарегестрированный юзер"
end
if (user.iProfile == 3) then
profile = "Зарегестрированный юзер"
end
if (user.iProfile == 2) then
profile = "VIP-юзер"
end
if (user.iProfile == 1) then
profile = "Оператор"
end
if (user.iProfile == 0) then
profile = "Мастер"
end
if (description == nil) then
description = "Описание не заданно" -- Если Описание не заданно.
end

if (user.iProfile == -1) or (user.iProfile == 0) or (user.iProfile == 1) or (user.iProfile == 2) or (user.iProfile == 3) then
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» IP: "..user.sIP.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» Ник: "..user.sName.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» Шара: "..share.." GB$<%[mynick]> !шара|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» E-mail: "..email.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» Профиль: "..profile.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Ваша информация\\»» Описание: "..user.sDescription.."$<%[mynick]>|")
share= user.iShareSize
Antinul()
users_1= frmHub:GetUsersCount()
users= users_1+1
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Шара: "..hubshare.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Топик: "..hubtopic.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Описание: "..description.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Названия: "..hubname.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Хаб онлаин: "..hubonline.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Адресс хаба: "..hubaddress..":"..hubport.."/"..hubudpport.."$<%[mynick]>|")
user:SendData("$UserCommand 1 3 "..hubname.."\\»» Информация\\»» Статистика хаба\\»» Юзеров Onlain: "..users.."/"..hubusersmax.."$<%[mynick]>|")

end
end

OpConnected = NewUserConnected

function Antinul()
if frmHub:GetCurrentShareAmount() == 0 then
parcial = 100
else parcial = share/(frmHub:GetCurrentShareAmount()+share)*100
end
end


Вот это моё меню под API переделай се под 2-й big_smile.gif

Автор: Gangster-Toni 13.1.2009, 23:16

оооо ваще прикольный скрипт! г г г мне понравился автор лови репу+++ big_smile1.gif