myDC.ru

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

 
2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему

> Метод Быстрого Перевода Скриптов Под API_1, Самостоятельный быстрый перевод из API_2 ---> в API_1

Рейтинг 5 V
Теги
Wariner
сообщение 6.3.2009, 18:52
Сообщение #21


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

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




библиотеки надо качать другие!!!!!

PS: пиши в тему самого скрипта!!!!!!
Go to the top of the page
+Quote Post
BeSeR
сообщение 6.3.2009, 19:00
Сообщение #22


Участник
**

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




Вот еще присылает когда он включен:
Цитата
[21:00:56] <[Chat]Operator's> <•Экзекутор•> *** 03/06/09 21:00:56 В скрипте произошла ошибка: ...л/DC++/хаб и архив,нетрогать!/хаб/scripts/old_api.lu:23: attempt to index local 'a' (a nil value)
Go to the top of the page
+Quote Post
Setuper
сообщение 6.3.2009, 19:57
Сообщение #23


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

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




Мультиботов нельзя переводить этим скриптом - они слишком сложны и невозможно предусмотреть все мелочи.
Go to the top of the page
+Quote Post
Артём
сообщение 18.5.2009, 7:30
Сообщение #24


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




Цитата(Setuper @ 16.10.2008, 16:40) *
Обращаю внимание, что переведя по данной методике, скрипт будет работать вне зависимости от версии API, ОДНАКО таким макаром можно переводить только скрипты, написанные под API2 !!!

victory.gif очень хорошо!!! exciting.gif
Go to the top of the page
+Quote Post
X-Sky
сообщение 15.8.2009, 8:20
Сообщение #25


Освоившийся участник
*****

Группа: Модераторы
Сообщений: 352
Регистрация: 25.7.2009
Пользователь №: 3 960
Спасибо сказали: 73 раза




Супер. Спасибо exciting.gif
Go to the top of the page
+Quote Post
thehawk
сообщение 6.9.2009, 21:59
Сообщение #26


Активный участник
***

Группа: Пользователи
Сообщений: 63
Регистрация: 6.9.2009
Из: Беларусь
Пользователь №: 4 371
Спасибо сказали: 2 раза




Сделал всё как было написано в 1 посте и ...
Скрипт вроде как заработал, но вот этот как понять:
Цитата
[21:57] Синтакс D:/0.3.6.0/scripts/old_api.lu:23: attempt to index local 'a' (a nil value)
Go to the top of the page
+Quote Post
Setuper
сообщение 6.9.2009, 22:12
Сообщение #27


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

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




Я добавил проверку и перезалил файл old_api.
Попробуй.


Спасибо сказали:
Go to the top of the page
+Quote Post
thehawk
сообщение 9.9.2009, 10:44
Сообщение #28


Активный участник
***

Группа: Пользователи
Сообщений: 63
Регистрация: 6.9.2009
Из: Беларусь
Пользователь №: 4 371
Спасибо сказали: 2 раза




Цитата(Setuper @ 6.9.2009, 22:12) *
Я добавил проверку и перезалил файл old_api.
Попробуй.

Всё работает, ошибок не выдаёт. Спасибо.
Go to the top of the page
+Quote Post
m3gap1x3L
сообщение 22.11.2009, 5:51
Сообщение #29


Абсолютный новичок


Группа: Пользователи
Сообщений: 8
Регистрация: 20.11.2009
Пользователь №: 5 119
Спасибо сказали: 0 раз




Помогите ктонибуть ! По данной методке я решил перевести скрипт на АПИ1 написанный на АПИ2 !
Исправьте ошибки ! И покажите их сдесь , чтоб я увидел !(В скриптах разбираюсь плохо)

Раскрывающийся текст
Код
if frmHub then dofile(frmHub:GetPtokaXLocation().."scripts/old_api.lu")
elseif not Core then error("Запуск скрипта возможен только при запущенном хабе!",1)
else dofile(Core.GetPtokaXPath().."scripts/old_api.lu") end
(код изменён для использования под обе версии API)

-- Основные настройки
sBotName = "[Инфо]м&ж"            -- Имя бота
bBotReg = true                -- Регистрировать бота на хабе?
bBotOP = true                -- Бот с ключиком?
sBotDesc = "Бот, показывающий ваш пол"    -- Описание бота
sBotEmail = "steelseries-magadan@mail.ru"        -- Email бота

sMenuName = "Ваш пол"    --Имя меню
bSendIfNotSet = true    --Отправлять юзеру сообщение при входе, если пол не выбран

iSendTimer = 500    -- Время отправки MyINFO, ms

-- Как будет выглядить пол в описании?
tSex = {
    o = "[?]",                -- Пол не указан
    m = "[М]",                -- Мужской пол
    w = "[Ж]",                -- Женский пол
}

-- Доступ к командам
pUser = {
    [0] = 1,    -- =[Master]=
    [1] = 1,    -- =[OP]=
    [2] = 1,    -- =[ViP]=
    [3] = 1,    -- =[Reg]=
      [-1] = 1,   -- =[UnReg]=
}

-- Команды
cMySex = "mysex"
cSexList = "sexlist"
cSexListOnline = "sexlistonline"

--###################################################################################

tTimers = {}
tUsers = {}
function Core. OnStartup()
    if sBotName == "" then
        sBotName = SetMan.GetString(21)
    elseif bBotReg then
        Core.RegBot(sBotName,sBotDesc,sBotEmail,bBotOP)
    end
    fUsers = Core.GetPtokaXPath().."scripts/MySex.tbl"
    if loadfile(fUsers) then dofile(fUsers) end
end

function Core. UserConnected(user)
    if not tUsers[user.sNick] and bSendIfNotSet then
        Core.SendToUser(user,"<"..sBotName.."> Пожалуйста, укажите ваш пол!")
    end
    for i,v in pairs(Core.GetOnlineUsers(true)) do
        local s,e,other = string.find(v.sMyInfoString, "%$MyINFO%s$ALL%s%S+%s(.*)$")
        Core.SendToUser(user,"$MyINFO $ALL "..v.sNick.." "..(tSex[tUsers[v.sNick]] or tSex.o).." "..other)
    end
    if pUser[user.iProfile] == 1 then
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Указать свой пол\\Мужской$<%[mynick]> !"..cMySex.." m|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Указать свой пол\\Женский$<%[mynick]> !"..cMySex.." w|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Посмотреть пол юзеров$<%[mynick]> !"..cSexList.." %[line:m=мальчики/w=девочки или оставьте строку пустой]|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Посмотреть пол юзеров онлайн$<%[mynick]> !"..cSexListOnline.." %[line:m=мальчики/w=девочки или оставьте строку пустой]|")
    end
end

Core. OpConnected = UserConnected
Core. RegConnected = UserConnected

function SendInfo(tmr)
    local user = Core.GetUser(tTimers[tmr],true)
    if user then
        local s,e,other = string.find(user.sMyInfoString, "%$MyINFO%s$ALL%s%S+%s(.*)$")
        Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..(tSex[tUsers[user.sNick]] or tSex.o).." "..other)
        tTimers[tmr] = nil
    end
    TmrMan.RemoveTimer(tmr)
end

function Core. MyINFOArrival(user,data)
    local tmr = TmrMan.AddTimer(iSendTimer, "SendInfo")
    tTimers[tmr] = user.sNick
end

function Core. ChatArrival(user,sData)
    if pUser[user.iProfile] == 1 then
        local sData = string.sub(sData, 1, -2)
        local s,e,cmd = string.find(sData, "%b<>%s+[%!%+%?%#](%S+)")
        if tCmds[cmd] then
            tCmds[cmd](user, sData);
            return true
        end
    end
end

tCmds = {
    [cMySex] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        if arg1 then
            local s,e,other = string.find(Core.GetUserValue(user,1), "%$MyINFO%s$ALL%s%S+%s(.*)$")
            if arg1 == "m" then
                tUsers[user.sNick] = "m"
                Save()
                Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..tSex.m.." "..other)
                Core.SendToUser(user,"<"..sBotName.."> Вы выбрали пол: мужской.")
            elseif arg1 == "w" then
                tUsers[user.sNick] = "w"
                Save()
                Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..tSex.w.." "..other)
                Core.SendToUser(user,"<"..sBotName.."> Вы выбрали пол: женский.")
            else
                Core.SendToUser(user,"<"..sBotName.."> Вы не указали свой пол! Правильно: !mysex <m/w>")
            end
        end
    end,
    [cSexList] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        local bm, bw = true, true
        if arg1    then
            if arg1 == "m" then
                bw = false
            elseif arg1 == "w" then
                bm = false
            end
        end
        local msg,msgm,msgw,cm,cw = "","Список мальчиков: ","Список девочек: ","",""
        for i,v in pairs(tUsers) do
            if bm and v == "m" then
                msgm = msgm..cm..i
                cm = ", "
            end
            if bw and v == "w" then
                msgw = msgw..cw..i
                cw = ", "
            end
        end
        if bm then
            msg = msg.."\n\n"..msgm
        end
        if bw then
            msg = msg.."\n\n"..msgw
        end
        Core.SendPmToUser(user,sBotName,msg)
        collectgarbage("collect")
    end,
    [cSexListOnline] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        local bm, bw = true, true
        if arg1    then
            if arg1 == "m" then
                bw = false
            elseif arg1 == "w" then
                bm = false
            end
        end
        local msg,msgm,msgw,cm,cw = "","Мальчики онлайн: ","Девочки онлайн: ","",""
        for i,v in pairs(Core.GetOnlineUsers(true)) do
            if bm and tUsers[v.sNick] and tUsers[v.sNick] == "m" then
                msgm = msgm..cm..v.sNick
                cm = ", "
            end
            if bw and tUsers[v.sNick] and tUsers[v.sNick] == "w" then
                msgw = msgw..cw..v.sNick
                cw = ", "
            end
        end
        if bm then
            msg = msg.."\n\n"..msgm
        end
        if bw then
            msg = msg.."\n\n"..msgw
        end
        Core.SendPmToUser(user,sBotName,msg)
        collectgarbage("collect")
    end,
}

function Save()
    local hFile = io.open(fUsers, "w")
    if hFile then
        Serialize(tUsers, "tUsers", hFile);
        hFile:close();
    end
end

function Serialize(tTable, sTableName, hFile, sTab)
    sTab = sTab or "";
    hFile:write(sTab..sTableName.." = {\n");
    for key, value in pairs(tTable) do
        if type(value)~= "function" then
            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    
    end
    hFile:write(sTab.."}");
end
Причина редактирования: если постишь код надо выделять его как код! + если он объёмный лучше прикреплять в файл или сворачивать в спойлер! УСТНОЕ ПРЕДУПРЕЖДЕНИЕ!
Go to the top of the page
+Quote Post
Setuper
сообщение 22.11.2009, 16:22
Сообщение #30


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

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




Раскрывающийся текст
Код
if frmHub then dofile(frmHub:GetPtokaXLocation().."scripts/old_api.lu")
elseif not Core then error("Запуск скрипта возможен только при запущенном хабе!",1)
else dofile(Core.GetPtokaXPath().."scripts/old_api.lu") end

-- Основные настройки
sBotName = "[Инфо]м&ж"            -- Имя бота
bBotReg = true                -- Регистрировать бота на хабе?
bBotOP = true                -- Бот с ключиком?
sBotDesc = "Бот, показывающий ваш пол"    -- Описание бота
sBotEmail = "steelseries-magadan@mail.ru"        -- Email бота

sMenuName = "Ваш пол"    --Имя меню
bSendIfNotSet = true    --Отправлять юзеру сообщение при входе, если пол не выбран

iSendTimer = 500    -- Время отправки MyINFO, ms

-- Как будет выглядить пол в описании?
tSex = {
    o = "[?]",                -- Пол не указан
    m = "[М]",                -- Мужской пол
    w = "[Ж]",                -- Женский пол
}

-- Доступ к командам
pUser = {
    [0] = 1,    -- =[Master]=
    [1] = 1,    -- =[OP]=
    [2] = 1,    -- =[ViP]=
    [3] = 1,    -- =[Reg]=
      [-1] = 1,   -- =[UnReg]=
}

-- Команды
cMySex = "mysex"
cSexList = "sexlist"
cSexListOnline = "sexlistonline"

--###################################################################################

tTimers = {}
tUsers = {}
function Core.OnStartup()
    if sBotName == "" then
        sBotName = SetMan.GetString(21)
    elseif bBotReg then
        Core.RegBot(sBotName,sBotDesc,sBotEmail,bBotOP)
    end
    fUsers = Core.GetPtokaXPath().."scripts/MySex.tbl"
    if loadfile(fUsers) then dofile(fUsers) end
end

function Core.UserConnected(user)
    if not tUsers[user.sNick] and bSendIfNotSet then
        Core.SendToUser(user,"<"..sBotName.."> Пожалуйста, укажите ваш пол!")
    end
    for i,v in pairs(Core.GetOnlineUsers(true)) do
        local s,e,other = string.find(v.sMyInfoString, "%$MyINFO%s$ALL%s%S+%s(.*)$")
        Core.SendToUser(user,"$MyINFO $ALL "..v.sNick.." "..(tSex[tUsers[v.sNick]] or tSex.o).." "..other)
    end
    if pUser[user.iProfile] == 1 then
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Указать свой пол\\Мужской$<%[mynick]> !"..cMySex.." m|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Указать свой пол\\Женский$<%[mynick]> !"..cMySex.." w|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Посмотреть пол юзеров$<%[mynick]> !"..cSexList.." %[line:m=мальчики/w=девочки или оставьте строку пустой]|")
        Core.SendToUser(user,"$UserCommand 1 3 "..sMenuName.."\\Посмотреть пол юзеров онлайн$<%[mynick]> !"..cSexListOnline.." %[line:m=мальчики/w=девочки или оставьте строку пустой]|")
    end
end

Core.OpConnected = Core.UserConnected
Core.RegConnected = Core.UserConnected

function SendInfo(tmr)
    local user = Core.GetUser(tTimers[tmr],true)
    if user then
        local s,e,other = string.find(user.sMyInfoString, "%$MyINFO%s$ALL%s%S+%s(.*)$")
        Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..(tSex[tUsers[user.sNick]] or tSex.o).." "..other)
        tTimers[tmr] = nil
    end
    TmrMan.RemoveTimer(tmr)
end

function Core.MyINFOArrival(user,data)
    local tmr = TmrMan.AddTimer(iSendTimer, "SendInfo")
    tTimers[tmr] = user.sNick
end

function Core.ChatArrival(user,sData)
    if pUser[user.iProfile] == 1 then
        local sData = string.sub(sData, 1, -2)
        local s,e,cmd = string.find(sData, "%b<>%s+[%!%+%?%#](%S+)")
        if tCmds[cmd] then
            tCmds[cmd](user, sData);
            return true
        end
    end
end

tCmds = {
    [cMySex] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        if arg1 then
            local s,e,other = string.find(Core.GetUserValue(user,1), "%$MyINFO%s$ALL%s%S+%s(.*)$")
            if arg1 == "m" then
                tUsers[user.sNick] = "m"
                Save()
                Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..tSex.m.." "..other)
                Core.SendToUser(user,"<"..sBotName.."> Вы выбрали пол: мужской.")
            elseif arg1 == "w" then
                tUsers[user.sNick] = "w"
                Save()
                Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..tSex.w.." "..other)
                Core.SendToUser(user,"<"..sBotName.."> Вы выбрали пол: женский.")
            else
                Core.SendToUser(user,"<"..sBotName.."> Вы не указали свой пол! Правильно: !mysex <m/w>")
            end
        end
    end,
    [cSexList] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        local bm, bw = true, true
        if arg1    then
            if arg1 == "m" then
                bw = false
            elseif arg1 == "w" then
                bm = false
            end
        end
        local msg,msgm,msgw,cm,cw = "","Список мальчиков: ","Список девочек: ","",""
        for i,v in pairs(tUsers) do
            if bm and v == "m" then
                msgm = msgm..cm..i
                cm = ", "
            end
            if bw and v == "w" then
                msgw = msgw..cw..i
                cw = ", "
            end
        end
        if bm then
            msg = msg.."\n\n"..msgm
        end
        if bw then
            msg = msg.."\n\n"..msgw
        end
        Core.SendPmToUser(user,sBotName,msg)
        collectgarbage("collect")
    end,
    [cSexListOnline] = function(user, sData)
        local s,e,arg1 = string.find(sData, "%b<>%s+%S+%s+(%S+)")
        local bm, bw = true, true
        if arg1    then
            if arg1 == "m" then
                bw = false
            elseif arg1 == "w" then
                bm = false
            end
        end
        local msg,msgm,msgw,cm,cw = "","Мальчики онлайн: ","Девочки онлайн: ","",""
        for i,v in pairs(Core.GetOnlineUsers(true)) do
            if bm and tUsers[v.sNick] and tUsers[v.sNick] == "m" then
                msgm = msgm..cm..v.sNick
                cm = ", "
            end
            if bw and tUsers[v.sNick] and tUsers[v.sNick] == "w" then
                msgw = msgw..cw..v.sNick
                cw = ", "
            end
        end
        if bm then
            msg = msg.."\n\n"..msgm
        end
        if bw then
            msg = msg.."\n\n"..msgw
        end
        Core.SendPmToUser(user,sBotName,msg)
        collectgarbage("collect")
    end,
}

function Save()
    local hFile = io.open(fUsers, "w")
    if hFile then
        Serialize(tUsers, "tUsers", hFile);
        hFile:close();
    end
end

function Serialize(tTable, sTableName, hFile, sTab)
    sTab = sTab or "";
    hFile:write(sTab..sTableName.." = {\n");
    for key, value in pairs(tTable) do
        if type(value)~= "function" then
            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    
    end
    hFile:write(sTab.."}");
end
Go to the top of the page
+Quote Post
Олешка
сообщение 14.8.2011, 21:16
Сообщение #31


Абсолютный новичок


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




Очень хорошая тема! Большое спс!
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts ВАЖНО: Topic has attachmentsВопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
1 049 Wariner 930 032 3.2.2019, 12:51 Посл. сообщение: MIKHAIL
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 43 214 21.3.2017, 17:31 Посл. сообщение: Alexey
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 008 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 460 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 6 783 29.7.2014, 16:11 Посл. сообщение: Артём
No New Posts Метод взятия имени/пути скрипта
Метод взятия имени/пути этого скрипта в самом скрипте и других
2 Karumo 6 603 6.4.2014, 22:24 Посл. сообщение: Alexey
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 330 28.1.2014, 13:11 Посл. сообщение: Alexey
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 8 415 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 38 705 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 56 946 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts Topic has attachmentsСкрипт сервисов перевода PtokaX API2
API2 переводчик translate.google.com
3 Phazeus 11 312 6.11.2011, 4:30 Посл. сообщение: MIKHAIL
No New Posts От: Переделка скриптов
От темы с ID: 4941
6 Ksan 9 048 12.8.2011, 11:33 Посл. сообщение: Ksan
No new ВАЖНО: Запросы Скриптов
Ваши идеи по разработке скриптов под HeXHuB
36 Setuper 46 883 16.5.2011, 9:40 Посл. сообщение: ANDRBEST
No New Posts Документация DBHub - Написание скриптов на Perl
0 Артём 7 331 20.10.2010, 18:08 Посл. сообщение: Артём
No New Posts Topic has attachmentsЗаготовки скриптов для PtokaX
Делимся болванками скриптов
4 alex82 11 179 11.10.2010, 2:49 Посл. сообщение: alex82

 



RSS Сейчас: 28.3.2024, 12:40