myDC.ru

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

 
 
Тема закрытаНачать новую тему

> Мелоч В Скрипте(полосочка), не ругайтесь

Теги
Нет тегов для показа
eL50ff
сообщение 18.12.2008, 1:28
Сообщение #1


Начинающий
*

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








полосочку ПОД КНОПКОЙ ПОКАЗАТЬ 100 ЛУЧШИХ на которою я указал не могу не как убрать! кто поможет? знаете мелоч канеш но не приятно! знаю достал... но чтож я поделаю... я только учусь!



CODE
tProfiles = {
 [0] = "Администратор",
 [1] = "Оператор",
 [2] = "Специальный пользователь",
 [3] = "Зарегистрированный пользователь",
 [-1] = "Незарегистрированный пользователь",
}

iRunkNumberToDoVip = 0 -- Номер ранга, с которого зарегеный юзер получит VIP

iProfileToMakeFromVip = 0 -- профиль с которого повышается до випа
iProfileToMakeToVip = 0 -- профиль випа

iTimeToSave = 10 -- время в минутах на сохранение таблицы с рангами (на всякий)

bWelcomeMsg = 0 -- Отправлять ли сообщение о ранге юзера при входе (если есть хоть 1 сообщение)

sBot = "Rank" -- Имя бота

MaxShowed = 100 -- Максимально выводимое кол-во участников ранжирования

bMenu = "Лучшие сообщения" -- Название меню
UserCommands = 1 -- Включить менюшку 1=да/0=нет

RankFile = "LZ_Rank 1.0 Data Base.tbl" -- Файл, в котором будут сохраняться участники ранжирования
RankNamesFile = "LZ_Rank 1.0 Title.tbl" -- Файл с вариантами рангов (новый!)

RankMembersName = "LaMBDaZ" -- Выберите стандартный тип рангов (можно в tRanks.tbl создать свою группу рангов)

-- Выберете, кто будет учавствовать в рангах:
tSetProfile = {
 [0] = 1,
 [1] = 1,
 [2] = 1,
 [3] = 1,
 [-1] = 0,
}
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
tCommands = {}
tFunctions = {}
tRankingTable = {}
tRankCounts = {}
tRankNumbers = {}

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

--// Functions ---------------------------------------------------------------------------------------------------------

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
Go to the top of the page
+Quote Post
Setuper
сообщение 18.12.2008, 1:43
Сообщение #2


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

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




Разделитель задаётся командой $UserCommand 0

В данном скрипте этой команды нету. Возможно она есть в другом скрипте, например, в следующем за этим в списке твоих скриптов.
Go to the top of the page
+Quote Post
eL50ff
сообщение 18.12.2008, 1:46
Сообщение #3


Начинающий
*

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




как это нету а как же?
Код
Core.SendToUser(user, "$UserCommand 1 3 "..bMenu.."\\Показать 100 лучших$<%[mynick]> !top100ranks|")


я тут ноль ставил када 0 ставлю ваще исчезает менюшка

напиши примерно код как должно выглядеть мож сюда добавить можна?
Go to the top of the page
+Quote Post
Setuper
сообщение 18.12.2008, 2:07
Сообщение #4


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

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




Я что непонятно написал? Может ещё раз вдумчиво прочитаешь мой ответ?
Go to the top of the page
+Quote Post
eL50ff
сообщение 18.12.2008, 2:16
Сообщение #5


Начинающий
*

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




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

Ааааааа все дошло я правильно понял... оказывается в реге эа команда стояла... убрал ее и все кул... Спасибо =)
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsНужно сделать изменение в скрипте Антипорно
Переделать переменную в функцию
5 thehawk 9 193 21.10.2014, 21:23 Посл. сообщение: thehawk
No New Posts Перекодировка в скрипте Lua 5.14 из CP-1251 в UTF-8
Источник в CP-1251 ( http://bash.org.ru/random ), получатель UTF-8
3 ILYA INDIGO 12 301 12.12.2011, 2:46 Посл. сообщение: ILYA INDIGO
No new Topic has attachmentsПроблема на PtоkaX 0.4.1.2 в скрипте
Проблема на PtоkaX 0.4.1.2 в скрипте
23 sania 24 498 23.2.2011, 15:37 Посл. сообщение: Saymon21
No New Posts Помощь в скрипте
5 Sinsei 8 677 18.10.2010, 12:35 Посл. сообщение: Saymon21
No New Posts Topic has attachmentsтекст в скрипте
13 random name 14 599 14.4.2010, 15:59 Посл. сообщение: jumshut
No New Posts Не могу разобраться с кодировкой в скрипте
Не могу разобраться с кодировкой в скрипте
2 a97873 7 032 5.3.2010, 17:53 Посл. сообщение: a97873
No New Posts От: Ошибка в скрипте
От темы с ID: 3027
0 Артём 4 740 27.1.2010, 12:24 Посл. сообщение: Артём
No New Posts Помогите разрешить проблемку в скрипте
4 F I L I N 7 137 30.11.2009, 10:30 Посл. сообщение: Nickolya
No New Posts От: Заменил практически все картинки в скрипте AscIIArtBot
От темы с ID: 2064
6 Setuper 9 754 9.6.2009, 19:19 Посл. сообщение: Otshelnik-Fm
No New Posts Topic has attachmentsПомогите Исправить Ошибку В Скрипте
API1
11 Артём 16 476 5.4.2009, 9:08 Посл. сообщение: Артём
No New Posts От: Помогите Исправить Ошибку В Скрипте
От темы с ID: 1715
0 Wariner 4 868 4.4.2009, 16:01 Посл. сообщение: Wariner
No New Posts Topic has attachmentsПомогите Исправить Ошибку В Скрипте
API2
3 Артём 7 284 31.3.2009, 9:44 Посл. сообщение: Артём
No New Posts Скрипт Отчёта О Действиях Опов Мастеру Хаба (с Указанием Ника Мастера В Скрипте,которому Должен Присылаться Отчёт О Банах, Киках И Тому Подобное )
Ptokax 0.4.1.1
0 Серый 5 288 2.2.2009, 22:59 Посл. сообщение: Серый

 



RSS Сейчас: 26.4.2024, 0:16