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

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

MyDC.ru _ Kорзина _ Помогите Со Скриптом

Автор: Fislons 16.11.2008, 0:21

Вот есть скрипт

CODE
Prefixes = {}
function ChatArrival(user,data)
local data = string.sub(data,1,-2)
local s,e,cmd =string.find(data, "%b<>%s+(%S+)")
who = user
if cmd == "!status" then
StatusCheck()
str = "В данный момент на хабе присутствуют следующие комманды (просмотр по префиксам)\n"..string.rep("=",50)..""
for i,ct in pairs(Prefixes) do str = str.."\n= "..ct end
user:SendData(""..str.."\n"..string.rep("=",50).."")
return 1
end
end

StatusCheck = function()
FClan = 0
npc = 0
npt = 0
for i,user in pairs(frmHub:GetOnlineUsers()) do
local _,_,pf,nname = string.find(user.sName, "%[(.-)%]+(.*)")
for x,c in pairs(Prefixes) do
if c == pf then no = 1 end
end
if not (no == 1) then Prefixes[i] = pf end
end
end

NewUserConnected = function(user)
user:SendData("$UserCommand 1 2 Опции пользователя\\Информация\\Комманды онлайн$<%[mynick]> !status||")
end
OpConnected = NewUserConnected

Он даёт список онлаин команд с "[...]Nick", ну всё предельно ясно. "[dc].[ru]" вот если на хабе седят "[dc]nick,[dc]nick2,[ru]nick"
Кто может переделать и выложить его готовым, вот с такими возможностями:


Пожайлусто, кто может зделайте и выложите сюда.. :P

Автор: Setuper 16.11.2008, 2:00

Не совсем понятно написал (да и с грамматическими ошибками big_smile.gif ), но думаю, что имелось ввиду следующее:

CODE
function ChatArrival(tUser,sData)
sData=sData:sub(1,-2)
local _,_,sCmd=sData:find("%b<>%s+(%S+)")
if sCmd=="!status" then
StatusCheck()
local sStr="В данный момент на хабе присутствуют следующие команды (просмотр по префиксам)\n"..string.rep("=",50)
for i,v in pairs(tPrefixes) do sStr=sStr.."\n\t["..i.."], ник(и): "..table.concat(v,", ") end
tUser:SendData(sStr.."\n"..string.rep("=",50))
return 1
end
end

StatusCheck=function()
tPrefixes={}
for i,v in pairs(frmHub:GetOnlineUsers()) do
local bFlag,_,_,sPrf,sNick=true,v.sName:find("%[(.-)%]+(.*)")
if sPrf and sNick then
for j,w in pairs(tPrefixes) do
if w==sPrf then bFlag=false break end
end
if bFlag then tPrefixes[sPrf]={sNick}
else table.insert(tPrefixes[sPrf],sNick) end
end
end
end

NewUserConnected=function(tUser)
tUser:SendData("$UserCommand 1 2 Опции пользователя\\Информация\\Команды онлайн$<%[mynick]> !status&#*124;")
end
OpConnected=NewUserConnected
могут быть ошибки, я сам не тестил скрипт (даже не запускал), в выражении &#*124; надо удалить *

Автор: Fislons 16.11.2008, 15:48

Цитата(Setuper @ 16.11.2008, 2:00) *
Не совсем понятно написал (да и с грамматическими ошибками big_smile.gif ), но думаю, что имелось ввиду следующее:
CODE
function ChatArrival(tUser,sData)
sData=sData:sub(1,-2)
local _,_,sCmd=sData:find("%b<>%s+(%S+)")
if sCmd=="!status" then
StatusCheck()
local sStr="В данный момент на хабе присутствуют следующие команды (просмотр по префиксам)\n"..string.rep("=",50)
for i,v in pairs(tPrefixes) do sStr=sStr.."\n\t["..i.."], ник(и): "..table.concat(v,", ") end
tUser:SendData(sStr.."\n"..string.rep("=",50))
return 1
end
end

StatusCheck=function()
tPrefixes={}
for i,v in pairs(frmHub:GetOnlineUsers()) do
local bFlag,_,_,sPrf,sNick=true,v.sName:find("%[(.-)%]+(.*)")
if sPrf and sNick then
for j,w in pairs(tPrefixes) do
if w==sPrf then bFlag=false break end
end
if bFlag then tPrefixes[sPrf]={sNick}
else table.insert(tPrefixes[sPrf],sNick) end
end
end
end

NewUserConnected=function(tUser)
tUser:SendData("$UserCommand 1 2 Опции пользователя\\Информация\\Команды онлайн$<%[mynick]> !status&#*124;")
end
OpConnected=NewUserConnected
могут быть ошибки, я сам не тестил скрипт (даже не запускал), в выражении &#*124; надо удалить *

Спс, но не то... Мне надо что б в таблицу песать префиксы (штук 10-15) пример: ab , ac , ad и т.д. понятно? - оно кидает в чат же только юзеров с [] в нике!
Зы. Громатика - я с Украины! и Русский не учу!, или на Українській мові песать?

Автор: Setuper 16.11.2008, 17:18

С украины? Тогда понятно почему я ничего понять не могу из твоих слов))))
Опять не понял что тебе надо сделать big_smile.gif
Можешь писать по порядку?

Я так понял, что у тебя на хабе существуют префиксы у ников. И что-то надо с ними сделать (с префиксами и никами), а что именно не понятно. Запихнуть префиксы в таблицу?

Автор: Fislons 17.11.2008, 22:33

хм..
Сидят в дс юзеры:
(Hoolig@n_Clan)_Бур}I{уй
(Hoolig@n_Clan)Marco_Devic_33
(PROteam)Rossoneri
(PROteam)Sportik
FClan.eVent
FClan.Fitcher_v©
FVF_Fislons
и.т.п
В скрипте написано: FClan, (Hoolig@n_Clan), (PROteam), FVF
Пешу команду "!status"
Оно мне выкидуеь в дс
FClan
(Hoolig@n_Clan)
(PROteam)
FVF
-----------------
:'-( надеюся так понятее?

Автор: Setuper 17.11.2008, 23:05

Код
tTab={
  "FClan",
  "(Hoolig@n_Clan)",
  "(PROteam)",
  "FVF"
}

function ChatArrival(tUser,sData)
  sDate=sDate:sub(tUser.sName:len()+4,-2)
  if sDate=="!status" then
    tUser:SendData("\n\t"..table.concat(tTab,",\n\t"))
  end
end

Автор: Fislons 17.11.2008, 23:31

Цитата(Setuper @ 18.11.2008, 0:05) *
Код
tTab={
  "FClan",
  "(Hoolig@n_Clan)",
  "(PROteam)",
  "FVF"
}

function ChatArrival(tUser,sData)
  sDate=sDate:sub(tUser.sName:len()+4,-2)
  if sDate=="!status" then
    tUser:SendData("\n\t"..table.concat(tTab,",\n\t"))
  end
end

Конеш спс, но можеш предоставить полный скрипт, а не кусок его, пожайлусто
ЗЫ ОРГРОМНОЕ СПС!

Автор: Wariner 18.11.2008, 19:30

Это и есть полный скрипт написанный в точности по твоим словам bad_smile.gif