Ir para conteúdo
  • Cadastre-se

Miragem

Membro
  • Total de itens

    15
  • Registro em

  • Última visita

Tudo que Miragem postou

  1. Aqui funciona perfeitamente quando o target esta ao norte ou sul do personagem, se o target estiver a leste ou oeste, na diagonal ele n vira pro target, só se estiver na mesma reta alinhada, alguem sabe resolver?
  2. EAe, meu nome é Bruno/24, no começo do ano eu dei inicio a um projeto de ot, sozinho, pq n guentava mais jogar servidor mal feito, comecei sem saber fazer nada, do zero, com insistência e mente aberta eu aprendi bastante coisa, fiquei 2 meses com host em casa e 1 mes com dedicado. Tenho um conteúdo legal guardado comigo, me disponho a ajudar se ainda estiver precisando, map, script, etc. skype: [email protected] facebook: https://www.facebook.com/brunorf99
  3. Olá Brunds, vc foi um dos poucos que reportou no meu topico a um mes atras sobre OTpanel, se ainda quiser saber sobre ele, tenho uma semana de dedicado restando e não vou usar pra nada ja que não vou renovar com eles, se quiser usar pra ver se lhe é util, manda uma mensagem pra mim. Abraço!

  4. Vim reportar a experiencia com o OTPanel caso alguem se interesse. RESUMINDO: se vc tem um servidor pronto e quer só colocar online, diga adeus ao sonho! Eles oferecem suporte via ticket e email somente aos servidores que eles lhe dispoem. Neles estão as sources completas, servers pré prontos pra rodar sem nenhum trabalho, até "ajudam" a compilar oque eles oferecem, mas repetindo, caso queira suporte para oque vc ja possui, E-S-Q-U-E-Ç-A! Quanto ao ping e desempenho, é bem simples, você consegue rodar o server legal, sem problemas, não fica liso mas não afeta a jogabilidade. Pra não
  5. up! mesmo problema ta contando death como se fosse kill.
  6. Olá, gostaria de pedir um sistema de autoloot que faça o basico do basico, pegar o loot e ponto! Ja virei esse forum de ponta cabeça, testei todos os autoloots que existiam aqui, alguns são tão bons que realmente parecem um sonho, mas com alguns minutos começam a apresentar erros, bugar a distro e o cliente. Caso alguem tenha um que não apresente erros, por favor, compartilhe, posso pagar caso seja necessário. Uso TFS 0.3.7 SVN. Obrigado desde ja! (quanto ao erro nos outros autoloots, "creature script interface, item not found, demolib sei la oq, etc".)
  7. Olá VODKART, estava usando um script de autoloot seu, por sinal maravilhoso, porem em determinado momento ele apresentava erros na distro (vi milhares de posts aqui iguais), rodando o servidor no meu pc, TFS 0.4 SVN, ainda dava pra manter, sem ocorrer bugs no jogo ou crashar o server, mas no VPS rodando um TFS 0.3.7 ja não deu, a principio roda tudo normalmente mas depois começa a dar erros na distro e posteriormente a bugar o servidor, fazendo com que monstros fiquem congelados após terem o hp total zerado, gostaria de saber se você ainda oferece suporte pelo seu script, caso sim, posso pagar pelo trabalho pra não ser tão incomodo.
    Agradeço desde ja!

    Segue o código do MOD! contem algumas edições nos itens à venda mas acho que não influencia.

    Spoiler

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes">
    <config name="Loot_func"><![CDATA[
    info = {
        AutomaticDeposit = true,
        BlockMonsters = {"crystal protect","castle protect","spider of jungle","serpent of jungle","blue bottom tower","blue middle tower","blue supreme tower","blue top tower","red bottom tower","red middle tower","red supreme tower","red top tower"},
        BlockItemsList = {2123,2515},
        Max_Slots = {free = 5, premium = 8},
        Storages = {27000,28008,28006,28007},
        items_price = {[2537] = 4000, [2458] = 35, [2518] = 1500, [2459] = 30, [7386] = 8000, [2195] = 40000, [2487] = 20000, [2519] = 5000, [2491] = 5000, [2356] = 5000, [2497] = 9000, [2494] = 90000, [2520] = 40000, [7413] = 50000, [2663] = 500, [2477] = 6000, [2462] = 4000, [2488] = 15000, [2187] = 2000, [2434] = 2000, [7421] = 50000, [2414] = 10000, [2492] = 60000, [7402] = 20000, [7419] = 30000, [7900] = 10000, [2432] = 10000, [2409] = 1500, [2392] = 3000, [2407] = 6000, [2393] = 10000, [2466] = 30000, [2646] = 100000,[2470] = 80000, [2522] = 100000, [6553] = 60000, [7891] = 10000, [2427] = 7500, [2396] = 4000, [2452] = 50000, [2476] = 5000, [2430] = 2000, [2387] = 200, [2472] = 200000, [2400] = 120000, [2514] = 150000, [2536] = 8000, [2377] = 400, [7452] = 70000, [2383] = 800, [2417] = 60, [8891] = 30000, [2498] = 40000, [5741] = 35000, [2388] = 200, [2378] = 100, [2398] = 30, [2436] = 1000, [2423] = 200, [2381] = 200, [8889] = 60000, [2645] = 40000, [2431] = 90000, [2421] = 90000, [2528] = 4000, [2376] = 25, [2413] = 70, [2500] = 2500, [2534] = 25000, [2391] = 6000, [2408] = 100000, [8928] = 3000, [2525] = 100, [7404] = 9000, [2647] = 500, [2535] = 5000, [2464] = 100, [2463] = 400, [7430] = 3000, [2656] = 15000, [7382] = 10000, [7463] = 6000, [7437] = 7000, [7451] = 5000, [2454] = 9000, [2523] = 150000, [7418] = 9000, [2521] = 500, [2516] = 4000, [2444] = 60000, [7894] = 4000, [7899] = 4000, [7896] = 3000, [8910] = 7000, [2475] = 6000}
    }
    function setPlayerStorageTable(cid, storage, tab)
        local tabstr = "&"
        for i,x in pairs(tab) do
            tabstr = tabstr .. i .. "," .. x .. ";"
        end
        setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
    end
    function getPlayerStorageTable(cid, storage)
        local tabstr = getPlayerStorageValue(cid, storage)
        local tab = {}
        if type(tabstr) ~= "string" then
            return {}
        end
        if tabstr:sub(1,1) ~= "&" then
            return {}
        end
        local tabstr = tabstr:sub(2, #tabstr)
        local a = string.explode(tabstr, ";")
        for i,x in pairs(a) do
            local b = string.explode(x, ",")
            tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
        end
        return tab
    end
    function isInTable(cid, item)
        for _,i in pairs(getPlayerStorageTable(cid, info.Storages[1]))do
            if tonumber(i) == tonumber(item) then
                return true
            end
        end
        return false
    end
    function addItemTable(cid, item)
        local x = {}
        for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
            table.insert(x,getPlayerStorageTable(cid, info.Storages[1]))
        end
        if x ~= 0 then
            table.insert(x,tonumber(item))
            setPlayerStorageTable(cid, info.Storages[1], x)
        else
            setPlayerStorageTable(cid, info.Storages[1], {item})
        end
    end
    function removeItemTable(cid, item)
        local x = {}
        for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
            table.insert(x,getPlayerStorageTable(cid, info.Storages[1]))
        end
        for i,v in ipairs(x) do
            if tonumber(v) == tonumber(item) then
                table.remove(x,i)
            end
        end
        return setPlayerStorageTable(cid, info.Storages[1], x)
    end
    function ShowItemsTabble(cid)
        local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n!autoloot autosell --> To enable or disable the auto selling items.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nAutomatic Item Selling: "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "Disabled")..".\nBalance Total: ["..getPlayerBalance(cid).."] gp's.\nMaximum Slots: ["..#getPlayerStorageTable(cid, info.Storages[1]).."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n"
        for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
            n = n + 1
            str = str.."Slot "..n.." - "..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])).."\n"
        end
        return doPlayerPopupFYI(cid, str)
    end
    function getContainerItems(containeruid)
        local items = {}
        local containers = {}
        if type(getContainerSize(containeruid)) ~= "number" then
            return false
        end
        for slot = 0, getContainerSize(containeruid)-1 do
            local item = getContainerItem(containeruid, slot)
            if item.itemid == 0 then
                break
            end
            if isContainer(item.uid) then
                table.insert(containers, item.uid)
            end
            table.insert(items, item)
        end
        if #containers > 0 then
            for i,x in ipairs(getContainerItems(containers[1])) do
                table.insert(items, x)
            end
            table.remove(containers, 1)
        end
        return items
    end
    function getItemsInContainerById(container, itemid) -- Function By Kydrai
        local items = {}
        if isContainer(container) and getContainerSize(container) > 0 then
            for slot=0, (getContainerSize(container)-1) do
                local item = getContainerItem(container, slot)
                if isContainer(item.uid) then
                    local itemsbag = getItemsInContainerById(item.uid, itemid)
                    for i=0, #itemsbag do
                        table.insert(items, itemsbag)
                    end
                else
                    if itemid == item.itemid then
                        table.insert(items, item.uid)
                    end
                end
            end
        end
        return items
    end
    function doPlayerAddItemStacking(cid, itemid, amount) -- revisado
        local item, _G = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid), 0
        if #item > 0 then
            for _ ,x in pairs(item) do
                local ret = getThing(x)
                if ret.type < 100 then
                    doTransformItem(ret.uid, itemid, ret.type+amount) 
                    if ret.type+amount > 100 then
                        doPlayerAddItem(cid, itemid, ret.type+amount-100)
                    end
                    break
                else
                    _G = _G+1
                end
            end
            if _G == #item then
                doPlayerAddItem(cid, itemid, amount)
            end
        else
            return doPlayerAddItem(cid, itemid, amount)
        end
    end
    function AutomaticDeposit(cid,item,n)
        local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1)
        return doPlayerDepositMoney(cid, deposit)
    end
    function AutomaticItensSelling(cid, x)
        return doPlayerAddMoney(cid, x) and doPlayerDepositMoney(cid, x)
    end
    function ExistItemByName(name) -- by vodka
        local items = io.open("data/items/items.xml", "r"):read("*all")
        local get = items:match('name="' .. name ..'"')
        if get == nil or get == "" then
            return false
        end
        return true
    end
    function corpseRetireItems(cid, pos)
        local check = false
        for i = 0, 255 do
            pos.stackpos = i
            tile = getTileThingByPos(pos)
            if tile.uid > 0 and isCorpse(tile.uid) then
                check = true break
            end
        end
        if check == true then
            local items = getContainerItems(tile.uid)
            for i,x in pairs(items) do
                if isInArray(getPlayerStorageTable(cid, info.Storages[1]), tonumber(x.itemid)) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray({2148,2152,2160},tonumber(x.itemid)) then
                    if isItemStackable(x.itemid) then
                        if getPlayerStorageValue(cid, info.Storages[4]) > 0 and info.items_price[tonumber(x.itemid)] then
                            AutomaticItensSelling(cid, (info.items_price[tonumber(x.itemid)]*x.type))
                        else
                            doPlayerAddItemStacking(cid, x.itemid, x.type)
                            if info.AutomaticDeposit == true and isInArray({2148,2152,2160}, tonumber(x.itemid)) then
                                AutomaticDeposit(cid,x.itemid,x.type)
                            end
                        end
                    else
                        if getPlayerStorageValue(cid, info.Storages[4]) > 0 and info.items_price[tonumber(x.itemid)] then
                            AutomaticItensSelling(cid, info.items_price[tonumber(x.itemid)])
                        else
                            doPlayerAddItem(cid, x.itemid)
                        end
                    end
                    doRemoveItem(x.uid)
                end
            end
        end
    end]]></config>
    <event type="login" name="LootLogin" event="script"><![CDATA[
    function onLogin(cid)
        registerCreatureEvent(cid, "LootEventKIll")
        if isPremium(cid) and getPlayerStorageValue(cid, 27001) <= 0 then
            setPlayerStorageValue(cid, 27001, 1)
        elseif getPlayerStorageValue(cid, 27001) > 0 and not isPremium(cid) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!")
            setPlayerStorageValue(cid, 27001, -1)
            setPlayerStorageValue(cid, info.Storages[1], -1)
        end
        return true
    end]]></event>
    <event type="kill" name="LootEventKIll" event="script"><![CDATA[
    domodlib('Loot_func')
    function onKill(cid, target, lastHit) 
        if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[3]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then
            addEvent(corpseRetireItems, 0, cid ,getThingPos(target))
        end
        return true
    end]]></event>
    <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
    domodlib('Loot_func')
    local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
    if not param or param == "" then
        ShowItemsTabble(cid) return true
    elseif tonumber(param) then
        doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
    elseif isInArray({"clean","limpar", "clear"}, param) then
        setPlayerStorageValue(cid, info.Storages[1], -1)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
    elseif isInArray({"start","stop","on","off"}, param) then
        setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "Stopped" or "Started")..".") return true
    elseif isInArray({"money","gold","gps","dinheiro"}, param) then
        setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
    elseif isInArray({"autoselling","autosell","autovender","vender"}, param) then
        setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Itens Selling "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
    end
    local item = ExistItemByName(tostring(param))
    if not item then
        doPlayerSendCancel(cid, "This item does not exist.") return true
    end
    local item = getItemIdByName(tostring(param))
    if not item then
        doPlayerSendCancel(cid, "This item does not exist.") return true
    end
    local var = isInTable(cid, item)
    if isInArray({2148,2152,2160},item) then 
        doPlayerSendCancel(cid, "Enter !autoloot money to add money in your list!") return true    
    elseif isInArray(info.BlockItemsList, item) then
        doPlayerSendCancel(cid, "You can not add this item in the list!") return true
    elseif not var and #getPlayerStorageTable(cid, info.Storages[1]) >= slots then
        doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true
    end
    if not var then
        addItemTable(cid, item)
    else
        removeItemTable(cid, item)
    end
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list")
    return true]]></talkaction>
    </mod>

     

  8. Tambem estou com esse problema, to usando esse mesmo script a um mes, não interfere tanto no server mas erro é erro, uma hora ele fode tudo.
  9. Comprei um dedicado basico da OTPANEL e estou com um problema, achei que só precisaria upar meu servidor nos servidores deles e dar um "play", mas não deu certo, pelo que entendi, meu server tem que se adequar aos padrões deles, sei la. Alguem que use OTPANEL ou tenha um pouco de conhecimento pode me ajudar a colocar meu servidor on? Obrigado desde ja!
  10. Oi amigo, vim em um post vc ajudando a compilar um server para um usuario, queria saber se pode me ajudar de alguma maneira!!
    Uso TFS 0.4 SVN, nesse server não da pra usar o fast atk mais rapido como padrão, somente com bot, então baixei uma versão do OTX SERVER, nele a source ja esta editada para usar fast atk sem precisar usar bot, mas infelizmente as magias vem com cooldown pré definido, suporte em 1 segundo e ataque em 2 segundos e não da pra baixar, só aumentar.
    Resumidamente, em um posso usar magias rapidas porem não posso usar fast atk sem bot, no outro posso usar fast sem bot mas não posso usar magias rapidas.
    Sei que é apenas questão de edição da source certa e tal, mas ja tentei de todas as maneiras compilar aqui e não consigo. Uso windows 10, não tenho experiencia nenhuma com compilação, poderia me ajudar com isso?
    Agradeço desde ja!

    1. Ackerzin

      Ackerzin

      Então parceiro, eu nao sei mexer com source, apenas sei compilar ela =cc

    2. Miragem

      Miragem

      Aaa tudo bem, se eu te enviar as sources editadas, você consegue compilar? 
      Tudo que eu tenho da source é isso, ainda não editei, to mandando essas pra vc ver se consegue pq n sei se tem tudo que precisa ai. Posso pagar se precisar!
      http://www.mediafire.com/file/y4a9s99zs496e0p/Sources_by_Fir3z_-_blogdotserv.rar

  11. Gostaria de saber como faço para remover a função use de uma arma (swords, clubs, axes). Motivo: no meu servidor eu adicionei Elemental Arrows, Elemental Wand e Elemental Sword, tudo funcionando perfeitamente, a wand funciona por talkactions !wand xxx, o arrow funciona apenas dando use no item e ja muda automaticamente, ja na sword, quando dou use nela, aparece aquela mira de target igual quando usamos uma runa ou uma poção, eu dou o use com o target na arma e ela troca o elemento perfeitamente, porem gostaria de tirar essa função target use que tem em todas as armas. REP+ para quem puder a
  12. Gostaria de um script no mesmo estilo wand de elementos, porem da seguinte maneira, quando o player dizer !sword fire, ele troca a blacksteel sword normal por uma de fogo, quando dizer !sword ice, troca a atual por uma de gelo e assim sucessivamente, no codigo seria apenas transformar um item em outro, porem eu n conheço o código, então fica complicado, mas a lógica é simples.
  13. Titulo autoexplicativo. As mensagens tanto de chat quanto de magias ficam na tela por muito tempo (3~4 segundos), gostaria de saber como baixar isso (1~2 segundos). Meu OT é fastcastspell, então com a mensagem durando tanto tempo, a poluição visual fica enorme. Uso TFS 0.4! Obrigado desde já!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo