полосочку ПОД КНОПКОЙ ПОКАЗАТЬ 100 ЛУЧШИХ на которою я указал не могу не как убрать! кто поможет? знаете мелоч канеш но не приятно! знаю достал... но чтож я поделаю... я только учусь!
RankFile = "LZ_Rank 1.0 Data Base.tbl" -- Файл, в котором будут сохраняться участники ранжирования RankNamesFile = "LZ_Rank 1.0 Title.tbl" -- Файл с вариантами рангов (новый!)
RankMembersName = "LaMBDaZ" -- Выберите стандартный тип рангов (можно в tRanks.tbl создать свою группу рангов)
Main = function() assert(nil, "Эта версия скрипта пердназначена для API 2") end
OnStartup = function() sScriptsPath = Core.GetPtokaXPath():gsub("/", "\\").."scripts\\" iTimeToSave = iTimeToSave * 60 if loadfile(sScriptsPath..RankFile) then dofile(sScriptsPath..RankFile) end dofile(sScriptsPath..RankNamesFile) tRankMembers = tRanks[RankMembersName] tRanks = nil for i,v in pairs(tRankMembers) do tRankCounts[v[1]] = i end for i,v in pairs(tRankingTable) do local sRankName, iRankNumber = tFunctions.GetRankName(v) tRankNumbers[i] = iRankNumber end TmrMan.AddTimer((iTimeToSave * 60 * 1000), "SaveScriptData") TmrMan.AddTimer(1000, "RemoveTrash") end
ABD = function() -- add bot data return "<"..sBot.."> " end
SFBTU = function(tUser, sData) -- send from bot to user local sData = ABD()..sData Core.SendToUser(tUser, sData) end
RemoveTrash = function() collectgarbage("collect") end
SaveScriptData = function() OnExit() end
OnExit = function() saveTableToFile(sScriptsPath..RankFile, tRankingTable, "tRankingTable") end
ChatArrival = function(user, data) local data = string.sub(data,1,-2) local s,e,prefix =string.find(data, "%b<>%s+%p(%S+)") local bReturn = 0 if prefix == "topranks" then SFBTU(user, tFunctions.ShowRanks()) bReturn = 1 elseif prefix == "top100ranks" then SFBTU(user, tFunctions.ShowRanks(1)) bReturn = 1 elseif prefix == "getrank" then local s,e,name = string.find(data, "%b<>%s+%S+%s+(%S+)") if name then if tRankingTable[name] then if name == user.sNick then SFBTU(user, "*** Ты оставил(а) в чате "..tRankingTable[name].." сообщений, ваш ранг №"..tRankNumbers[name]..": "..tRankMembers[tRankNumbers[name]][2].."") else SFBTU(user, "*** "..name.." оставил в чате "..tRankingTable[name].." сообщений, его ранг №"..tRankNumbers[name]..": "..tRankMembers[tRankNumbers[name]][2].."") end else if name == user.sNick then if tSetProfile[user.iProfile] and tSetProfile[user.iProfile] == 1 then SFBTU(user, "Вы не оставили в чате ни одного сообщеня!") else SFBTU(user, "Вы не участвуете в системе ранжирования сообщений чата!") end else SFBTU(user, "Пользователь "..name.." не оставил ни одного сообщения в чате!") end end else SFBTU(user, "*** Используйте команду: !getrank <ник>") end bReturn = 1 elseif prefix == "ranksinfo" then local iRankValue = 1 local Info = "\n\n\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n\t\tТаблица рангов\r\n" Info = Info.."\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n\t\t№:\tСообщений:\tРанг:\r\n" for i = 1, table.maxn(tRankMembers) do local VipOrNot = "" if i == iRunkNumberToDoVip then VipOrNot = "\t [VIP]" end Info = Info.."\t\t "..i.."\t"..string.format("%0.f", iRankValue).."\t\t"..tRankMembers[i][2]..VipOrNot.."\r\n" iRankValue = tRankMembers[i][1] end SFBTU(user, Info) bReturn = 1 elseif prefix == "changerank" then if user.iProfile == 0 then tFunctions.ChangeRank(user, data) else SFBTU(user, "У вас нет доступа к этой команде!") end bReturn = 1 elseif prefix == "showranksinfo" then SFBTU(user, ShowRanksStats()) bReturn = 1 end if bReturn == 1 then return true elseif tSetProfile[user.iProfile] and tSetProfile[user.iProfile] == 1 then tFunctions.UpdateRanks(user) end end
UserConnected = function(user) if tRankingTable[user.sNick] and bWelcomeMsg == 1 then SFBTU(user, "(->) Вы оставили в чате "..tRankingTable[user.sNick].." сообщений. Ваш текущий ранг №"..tRankNumbers[user.sNick]..": "..tRankMembers[tRankNumbers[user.sNick]][2].."") end tFunctions.SendCommands(user) end RegConnected = UserConnected OpConnected = UserConnected
tFunctions.GetRankName = function(points) local iMaxRank = table.maxn(tRankMembers) local iRank,iRankValue,iNumber = tRankMembers[iMaxRank][1],1,iMaxRank for i = 1, iMaxRank do local iStart,iEnd = iRankValue, tRankMembers[i][1] if points >= iStart and points <= iEnd then iRank = tRankMembers[i][2] iNumber = i break end iRankValue = iEnd end return iRank, iNumber end
tFunctions.ShowRanks = function(bAll) local tTemp = {} for i,v in pairs(tRankingTable) do table.insert(tTemp,{i,v}) end table.sort(tTemp,function(a,b) return (a[2] > b[2]) end) local disp = "\r\n\r\n\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n" if bAll then disp = disp.."\t\t100 лучших пользователей\r\n" else disp = disp.."\t\tЛучшие пользователи по количеству набраных сообщений\r\n" end disp = disp.."\t----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n" disp = disp.."\t\tМесто\tНабрал\tРанг\t\t\tПсевдоним\r\n" local iFor = MaxShowed if bAll then iFor = 100 disp = disp.."\t----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n" end for i = 1, iFor do if tTemp[i] then disp = disp.."\t\t"..i..".\t"..tTemp[i][2].."\t№"..tRankNumbers[tTemp[i][1]]..": "..tRankMembers[tRankNumbers[tTemp[i][1]]][2].."\t\t"..tTemp[i][1].."\r\n"
end end disp = disp.."\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n" return disp end
function ShowRanksStats() local tTemp = {} local iTopRanksCount = 0 local iMaxRanksCount = 0 local iAllRanksCount = 0 for i,v in pairs(tRankingTable) do table.insert(tTemp,{i,v}) end table.sort(tTemp,function(a,b) return (a[2] > b[2]) end) local disp = "\n\n\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n\t\tТекущая статистика рангов:\r\n" local disp = disp.."\t«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»\r\n" for i, v in pairs(tTemp) do if i <= 10 then iTopRanksCount = iTopRanksCount + v[2] end if i <= 100 then iMaxRanksCount = iMaxRanksCount + v[2] end iAllRanksCount = iAllRanksCount + v[2] end local disp = disp.."\t\tСообщений оставлено 10 лучшими пользовалетями"..iTopRanksCount.."\r\n" local disp = disp.."\t\tСообщений оставлено 100 лучшими пользовалетями"..iMaxRanksCount.."\r\n" local disp = disp.."\t\tВсего сообщений оставлено в чате: "..iAllRanksCount.."\r\n" local disp = disp.."\t\tСтатус специальный с "..iRunkNumberToDoVip.."-го ранга ("..tRankMembers[iRunkNumberToDoVip][2]..")\r\n" local disp = disp.."\t\tКол-во сообщений для достижения: "..tRankMembers[iRunkNumberToDoVip - 1][1].."\r\n" return disp end
tFunctions.UpdateRanks = function(user) local iUpdate = tRankingTable[user.sNick] if not iUpdate then iUpdate = 0 tRankNumbers[user.sNick] = 0 end iUpdate = iUpdate + 1 tRankingTable[user.sNick] = iUpdate if tRankCounts[iUpdate] then tRankNumbers[user.sNick] = tRankNumbers[user.sNick] + 1
if user.iProfile ~= -1 and tRankNumbers[user.sNick] >= iRunkNumberToDoVip and user.iProfile == iProfileToMakeFromVip then local tReg = RegMan.GetReg(user.sNick) end end end
tFunctions.SendCommands = function(user) if UserCommands == 1 then Core.SendToUser(user, "$UserCommand 1 3 "..bMenu.."\\Показать 100 лучших$<%[mynick]> !top100ranks|") if user.iProfile == 0 then
end end end
Serialize = function(tTable, sTableName, hFile) hFile:write(sTableName.." = {\n") for key,value in pairs(tTable) do local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key) if(type(value) == "table") then Serialize(value,sKey,hFile) else local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value) hFile:write(sKey.." = "..sValue) end hFile:write(",\n") end hFile:write("}") end
saveTableToFile = function(file, table, tablename) local handle = io.open(file,"w") Serialize(table,tablename,handle) handle:close() end
Автор: Setuper 18.12.2008, 1:43
Разделитель задаётся командой $UserCommand 0
В данном скрипте этой команды нету. Возможно она есть в другом скрипте, например, в следующем за этим в списке твоих скриптов.
я тут ноль ставил када 0 ставлю ваще исчезает менюшка
напиши примерно код как должно выглядеть мож сюда добавить можна?
Автор: Setuper 18.12.2008, 2:07
Я что непонятно написал? Может ещё раз вдумчиво прочитаешь мой ответ?
Автор: eL50ff 18.12.2008, 2:16
тока не кричи, всмысле нету? типа неотуда появился чтоль разделитель? или другой скрипт виноват? я пасмарел другие скрипты там везде так же... хотя разделительной полоски нету...
Ааааааа все дошло я правильно понял... оказывается в реге эа команда стояла... убрал ее и все кул... Спасибо =)