myDC.ru

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

 
 
Ответить в данную темуНачать новую тему

> От: Поправьте Пожалуйста, От темы с ID: 897

Теги
Нет тегов для показа
Wariner
сообщение 14.12.2008, 19:53
Сообщение #1


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Во первых найди разницу:
твой вариант
Код
dofile(frmHub:GetPtokaXLocation().."scripts/old_api.lu")
sBot = SetMan.GetString(21)
sLeft = Core.GetPtokaXPath().."scripts/Left/LeftUser.tbl"
tLeft = {}

function Core.OnStartup()
    if loadfile(sLeft) then
        dofile(sLeft)
    end
end    

function Core.UserConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 Автоответчик на чат\\Ушёл$<%[mynick]> !left %[line:Введите сообщение об уходе]|")
    Core.SendToUser(tUser, "$UserCommand 1 3 Автоответчик на чат\\Пришёл$<%[mynick]> !leftdel |")
end    
Core.OpConnected = Core.UserConnected
Core.RegConnected = Core.UserConnected
function Main()
tProfile = {
[0]=0, -- Мастер
[1]=0, -- Оператор
[2]=1, -- VIP
[3]=1, -- Зарегистрированный пользователь
[4]=1, -- SuperVIP
[-1]=1, -- Незарегистрированный пользователь
}
end
function Core.ChatArrival(tUser, sData)
    if tProfile[tUser.iProfile] == 1 then
    sData = string.sub(sData,1,-2)
    local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")
    if cmd == "!left" then
        if not tLeft[tUser.sNick] then
            local _,_,msg = string.find(sData, "%b<>%s+%S+%s+(.+)")
            tLeft[tUser.sNick] = msg
            WriteTable(tLeft, "tLeft", sLeft)
            Core.SendToUser(tUser, "<"..sBot.."> Режиме \"ушёл\" удачно установлен.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> Вы уже в режиме \"ушёл\".")
        end    
        return true
    end
    if cmd == "!leftdel" then
        if tLeft[tUser.sNick] then
            tLeft[tUser.sNick] = nil
            WriteTable(tLeft, "tLeft", sLeft)
            Core.SendToUser(tUser, "<"..sBot.."> Режим \"ушёл\" снят.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> У вас не включен режим \"ушёл\"")
        end    
        return true
    end
    cmd = string.gsub(cmd, ":", "")
    if tLeft[cmd] then
        Core.SendToUser(tUser, "<"..sBot.."> ¤ Юзер "..cmd.." в данный момент отсутствует на хабе! ¤ Сообщение ушёл: "..tLeft[cmd])    
    end    
end    


function WriteTable(tTable, tablename, file)
    local handle = io.open(file, "w")
    Serialize(tTable, tablename, handle)
      handle:close()
end

function Serialize(tTable, sTableName, hFile, sTab)
    sTab = sTab or "";
    hFile:write(sTab..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, sTab.."\t");
        else
            local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
            hFile:write(sTab.."\t"..sKey.." = "..sValue);
        end
        hFile:write(",\n");
    end
    hFile:write(sTab.."}");
end
end


правильный вариант
Код
dofile(frmHub:GetPtokaXLocation().."scripts/old_api.lu")
sBot = SetMan.GetString(21)
sLeft = Core.GetPtokaXPath().."scripts/Left/LeftUser.tbl"
tLeft = {}

function Core.OnStartup()
    if loadfile(sLeft) then
        dofile(sLeft)
    end
end    

function Core.UserConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 Автоответчик на чат\\Ушёл$<%[mynick]> !left %[line:Введите сообщение об уходе]|")
    Core.SendToUser(tUser, "$UserCommand 1 3 Автоответчик на чат\\Пришёл$<%[mynick]> !leftdel |")
end    
Core.OpConnected = Core.UserConnected
Core.RegConnected = Core.UserConnected
function Main()
tProfile = {
[0]=0, -- Мастер
[1]=0, -- Оператор
[2]=1, -- VIP
[3]=1, -- Зарегистрированный пользователь
[4]=1, -- SuperVIP
[-1]=1, -- Незарегистрированный пользователь
}
end
function Core.ChatArrival(tUser, sData)
    if tProfile[tUser.iProfile] == 1 then
    sData = string.sub(sData,1,-2)
    local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")
    if cmd == "!left" then
        if not tLeft[tUser.sNick] then
            local _,_,msg = string.find(sData, "%b<>%s+%S+%s+(.+)")
            tLeft[tUser.sNick] = msg
            WriteTable(tLeft, "tLeft", sLeft)
            Core.SendToUser(tUser, "<"..sBot.."> Режиме \"ушёл\" удачно установлен.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> Вы уже в режиме \"ушёл\".")
        end    
        return true
    end
    if cmd == "!leftdel" then
        if tLeft[tUser.sNick] then
            tLeft[tUser.sNick] = nil
            WriteTable(tLeft, "tLeft", sLeft)
            Core.SendToUser(tUser, "<"..sBot.."> Режим \"ушёл\" снят.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> У вас не включен режим \"ушёл\"")
        end    
        return true
    end
    cmd = string.gsub(cmd, ":", "")
    if tLeft[cmd] then
        Core.SendToUser(tUser, "<"..sBot.."> ¤ Юзер "..cmd.." в данный момент отсутствует на хабе! ¤ Сообщение ушёл: "..tLeft[cmd])    
    end    
end
end     

function WriteTable(tTable, tablename, file)
    local handle = io.open(file, "w")
    Serialize(tTable, tablename, handle)
      handle:close()
end

function Serialize(tTable, sTableName, hFile, sTab)
    sTab = sTab or "";
    hFile:write(sTab..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, sTab.."\t");
        else
            local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
            hFile:write(sTab.."\t"..sKey.." = "..sValue);
        end
        hFile:write(",\n");
    end
    hFile:write(sTab.."}");
end


Во вторых пара уже знать что в функции чатаривал ты даёшь права не на меню а на команды!

PS: извеняюсь что постил код просто так нагляднее
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts помогите мне пожалуйста настроить dc++
1 sdncn 6 304 29.9.2013, 9:37 Посл. сообщение: Delia
No New Posts Подскажите пожалуйста
9 @denis@ 11 964 14.4.2011, 18:08 Посл. сообщение: warhammer
Closed Дайте такой скрипт пожалуйста
5 Artem26 8 683 23.12.2010, 16:17 Посл. сообщение: Accelerator
No New Posts Переделайти скрипт пожалуйста
1 Respect 5 845 15.12.2010, 1:30 Посл. сообщение: Saymon21
Closed помогите пожалуйста со скриптом
нужно переделать скрипт Pm.Logger.by.NRJ для API2
0 Виктор 4 659 26.11.2010, 13:54 Посл. сообщение: Виктор
No New Posts Подскажите пожалуйста
Регестрация
1 zelya 6 714 13.10.2010, 17:28 Посл. сообщение: Ksan
No New Posts Видел на одном хабе такой скрпит не могу найти помогите пожалуйста.
Помогите.
1 STIVAN 6 963 13.7.2010, 10:56 Посл. сообщение: Saymon21
Closed Помогите пожалуйста найти SeenScript
скрипт просмотра когда был тот или иной юзверь на хабе
1 САМАЭЛЬ 5 521 28.6.2010, 15:34 Посл. сообщение: Accelerator
Closed Topic has attachmentsРебята сделайте пожалуйста скрипт для Ptokax
скрипт приветствия
7 _brat_ 11 798 14.6.2010, 13:48 Посл. сообщение: Damaks
No New Posts От: Ребята сделайте пожалуйста скрипт для Ptokax
От темы с ID: 3543
0 -=FugeN=- 2 4 023 13.6.2010, 19:19 Посл. сообщение: -=FugeN=- 2
No New Posts Topic has attachmentsДайте пожалуйста ответ на вопрос.
10 sonet 12 343 27.5.2010, 21:27 Посл. сообщение: Berkut
Closed Подскажмите пожалуйста.
Плиз
1 Тёмич 4 450 13.5.2010, 16:34 Посл. сообщение: Accelerator
No New Posts Добавьте пожалуйста
7 denis 8 972 12.5.2010, 22:33 Посл. сообщение: Ksan
No New Posts Помогите пожалуйста!
Вобщем, сделайте пожалуйста скрипт который позволит (Рекломировать)
7 Тёмич 9 360 1.5.2010, 19:48 Посл. сообщение: Saymon21
No new Topic has attachmentsПомогите пожалуйста со скриптом
29 Ольга 27 380 3.4.2010, 19:39 Посл. сообщение: Wariner

 



RSS Сейчас: 23.11.2024, 11:39