Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''autoloot''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

Encontrado 14 registros

  1. bom o problema é o seguinte, eu peguei um autoloot no forum e ele funciona 100% mas ele não agrupa os items coletados. gostaria de uma ajuda nesse problema! quem poder ajudar já agradeço! ❤️ este é o script responsavel pela coleta! AutoLoot = { Min_Level = 10, -- [[ Level minimo para usar o autoloot ]] -- Max_Slots = 10, -- [[ Slots maximos disponiveis ]] -- Boost_Actived = true, --- [[ Storages ]] -- Storage_Boost = 45000, Storage_On_Items = 45001, Storage_On_Gold = 45002, Storages = { Count_Gold = 45003, Count_Items = 45004, Count_Table = 45005, Slots = {45006, 45007, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015} -- [[ Storage pra cada slot ]] -- } } AutoLoot_Boost = { -- [[ Loot boost vende os loots coletados automaticamente ]] -- -- [[ID do item] = Valor.]] -- [11441] = 1000, [11442] = 1000, [11443] = 1000, [11444] = 1000, [11445] = 1000, [11446] = 1000, [11447] = 1000, [11448] = 1000, [11449] = 1000, [11450] = 1000, [11451] = 1000, [11452] = 1000, [11453] = 1000, [11454] = 1000 } function AutoLoot.CountTable(table) local Count = 0 if type(table) == "table" then for index in pairs(table) do Count = Count + 1 end return Count end return false end function AutoLoot.getContainerItemsInfo(ContainerUID) local Table = {} if ContainerUID and ContainerUID > 0 then local Index = 0 for i = 0, getContainerSize(ContainerUID) - 1 do local item = getContainerItem(ContainerUID, i) Index = Index + 1 Table[Index] = {UID = item.uid, ItemID = item.itemid, Count = item.type} end return Table end return false end function AutoLoot.String(String) local Table = {} local x, old, last = 0, 0, 0 local first, second, final = 0, 0, 0 if type(String) ~= "string" then return Table end for i = 2, #String - 1 do if string.byte(String:sub(i,i)) == string.byte(':') then x, second, last = x + 1, i - 1, i + 2 for t = last, #String - 1 do if string.byte(String:sub(t,t)) == string.byte(',') then first = x == 1 and 2 or old old, final = t + 2, t - 1 local Index = String:sub(first, second) local Var = String:sub(last, final) Table[tonumber(Index) or tostring(Index)] = tonumber(Var) or tostring(Var) break end end end end return Table end function AutoLoot.TranslateString(Table) local String = "" if type(Table) ~= "table" then return String end for i, last in pairs(Table) do String = String..i..": ".. last ..", " end String = "a"..String.."a" return tostring(String) end function AutoLoot.getPlayerStorageZero(cid, key) return getPlayerStorageValue(cid, key) > 0 and getPlayerStorageValue(cid, key) or 0 end function AutoLoot.getStorageZero(key) return getGlobalStorageValue(key) > 0 and getGlobalStorageValue(key) or 0 end function AutoLoot.setPlayerTableStorage(cid, key, value) return doPlayerSetStorageValue(cid, key, AutoLoot.TranslateString(value)) end function AutoLoot.setGlobalTableStorage(key, value) return setGlobalStorageValue(key, AutoLoot.TranslateString(value)) end function AutoLoot.getPlayerTableStorage(cid, key) return AutoLoot.String(getPlayerStorageValue(cid, key)) end function AutoLoot.getGlobalTableStorage(key) return AutoLoot.String(getGlobalStorageValue(key)) end function AutoLoot.getPlayerList(cid) local Table = {} for i = 1, #AutoLoot.Storages.Slots do if getPlayerStorageValue(cid, AutoLoot.Storages.Slots[i]) ~= -1 then table.insert(Table, getPlayerStorageValue(cid, AutoLoot.Storages.Slots[i])) end end return Table end function AutoLoot.ExistItemByName(name) local Items = io.open("data/items/items.xml", "r"):read("*all") local GetITEM = Items:match('name="' .. name ..'"') if GetITEM == nil or GetITEM == "" then return false end return true end function AutoLoot.addToList(cid, name) local ItemID = getItemIdByName(name) if AutoLoot.getPlayerList(cid) and isInArray(AutoLoot.getPlayerList(cid), ItemID) then return false end for i = 1, #AutoLoot.Storages.Slots do if getPlayerStorageValue(cid, AutoLoot.Storages.Slots[i]) == -1 then doPlayerSetStorageValue(cid, AutoLoot.Storages.Slots[i], ItemID) return true end end end function AutoLoot.removeFromList(cid, name) local ItemID = getItemIdByName(name) for i = 1, #AutoLoot.Storages.Slots do if getPlayerStorageValue(cid, AutoLoot.Storages.Slots[i]) == ItemID then doPlayerSetStorageValue(cid, AutoLoot.Storages.Slots[i], -1) return true end end return false end function AutoLoot.Boost(cid) return tonumber(getPlayerStorageValue(cid, AutoLoot.Storage_Boost)) >= os.time() end function AutoLoot.Items(cid, position) if not isPlayer(cid) then return true end local Check, String, Position = false, "", {} for i = 1, 255 do position.stackpos = i if getThingFromPos(position).uid and getThingFromPos(position).uid > 0 and isContainer(getThingFromPos(position).uid) then Position = position Check = true break end end if Check then local CorpseUID = AutoLoot.getContainerItemsInfo(getThingFromPos(Position).uid) if CorpseUID then for Index, Item in pairs(CorpseUID) do if Index < AutoLoot.CountTable(CorpseUID) then if Item.UID and Item.ItemID then if isContainer(Item.UID) then local Bag = AutoLoot.getContainerItemsInfo(Item.UID) for i = 1, AutoLoot.CountTable(Bag) do if isInArray(AutoLoot.getPlayerList(cid), Bag[i].ItemID) then if Bag[i].Count > 1 then doRemoveItem(Bag[i].uid, Bag[i].Count) doPlayerAddItem(cid, Bag[i].ItemID, Bag[i].Count) String = String.." ".. Bag[i].Count .." ".. getItemNameById(Bag[i].ItemID) .." +" else doRemoveItem(Bag[i].uid) if AutoLoot.Boost_Actived and AutoLoot.Boost(cid) then if AutoLoot_Boost[Bag[i].ItemID] then doPlayerSetBalance(cid, getPlayerBalance(cid) + AutoLoot_Boost[Bag[i].ItemID]) String = String.."1 ".. getItemNameById(Bag[i].ItemID) .." (".. AutoLoot_Boost[Bag[i].ItemID] .." dinheiro no banco)" else doPlayerAddItem(cid, Bag[i].ItemID, 1) String = String.."1 ".. getItemNameById(Bag[i].ItemID) .."" end else doPlayerAddItem(cid, Bag[i].ItemID, 1) String = String.."1 ".. getItemNameById(Bag[i].ItemID) .."" end end end end end end end if isInArray(AutoLoot.getPlayerList(cid), Item.ItemID) then if Item.Count > 1 then doRemoveItem(Item.UID, Item.Count) doPlayerAddItem(cid, Item.ItemID, Item.Count) String = String.." ".. Item.Count .." ".. getItemNameById(Item.ItemID) .." +" else doRemoveItem(Item.UID) if AutoLoot.Boost_Actived and AutoLoot.Boost(cid) then if AutoLoot_Boost[Item.ItemID] then doPlayerSetBalance(cid,getPlayerBalance(cid) + AutoLoot_Boost[Item.ItemID]) String = String.."1 "..getItemNameById(Item.ItemID).." ("..AutoLoot_Boost[Item.ItemID].." dinheiro no banco)" else doPlayerAddItem(cid, Item.ItemID, 1) String = String.."1 "..getItemNameById(Item.ItemID).."" end else doPlayerAddItem(cid, Item.ItemID, 1) String = String.."1 "..getItemNameById(Item.ItemID).."" end end end end end end AutoLoot.setPlayerTableStorage(cid, AutoLoot.Storages.Count_Table, {[1] = String, [2] = 0}) end function AutoLoot.Gold(cid, position) if not isPlayer(cid) then return true end local Check = false local Total_Gold = 0 local Position = {} for i = 1, 255 do position.stackpos = i if getThingFromPos(position).uid and getThingFromPos(position).uid > 0 and isContainer(getThingFromPos(position).uid) then Position = position Check = true break end end if Check then local CorpseUID = AutoLoot.getContainerItemsInfo(getThingFromPos(Position).uid) if CorpseUID then for Index, Item in pairs(CorpseUID) do if Item.UID and Item.ItemID then if Index < AutoLoot.CountTable(CorpseUID) then if isContainer(Item.UID) then local Bag = AutoLoot.getContainerItemsInfo(Item.UID) for i = 1, AutoLoot.CountTable(Bag) do if isInArray({2148, 2152, 2160}, Bag[i].ItemID) then local Multiplier = 1 if Bag[i].ItemID == 2148 then Multiplier = 1 elseif Bag[i].ItemID == 2152 then Multiplier = 100 elseif Bag[i].ItemID == 2160 then Multiplier = 1000 end doRemoveItem(Bag[i].uid, Bag[i].Count) doPlayerSetBalance(cid, getPlayerBalance(cid) + tonumber(Bag[i].Count) * Multiplier) Total_Gold = Total_Gold + Bag[i].Count * Multiplier doPlayerSetStorageValue(cid, AutoLoot.Storages.Count_Gold, tonumber(AutoLoot.getPlayerStorageZero(cid, AutoLoot.Storages.Count_Gold)) + tonumber(Item.Count) * tonumber(Multiplier)) end end end end if isInArray({2148, 2152, 2160}, Item.ItemID) then local Multiplier = 1 if Item.ItemID == 2148 then Multiplier = 1 elseif Item.ItemID == 2152 then Multiplier = 100 elseif Item.ItemID == 2160 then Multiplier = 1000 end doRemoveItem(Item.UID, Item.Count) doPlayerSetBalance(cid, getPlayerBalance(cid) + Item.Count * Multiplier) doPlayerSetStorageValue(cid, AutoLoot.Storages.Count_Gold, tonumber(AutoLoot.getPlayerStorageZero(cid, AutoLoot.Storages.Count_Gold)) + tonumber(Item.Count) * tonumber(Multiplier)) Total_Gold = Total_Gold + Item.Count * Multiplier end end end end end if Total_Gold > 0 then Total_Gold = Total_Gold - (Total_Gold * 0.2) Total_Gold = math.ceil(Total_Gold) doPlayerSetBalance(cid, getPlayerBalance(cid) + Total_Gold) local Table = AutoLoot.getPlayerTableStorage(cid, AutoLoot.Storages.Count_Table) Table[2] = Total_Gold AutoLoot.setPlayerTableStorage(cid, AutoLoot.Storages.Count_Table, Table) end end function AutoLoot.Message(cid) if not isPlayer(cid) then return true end local Table = AutoLoot.getPlayerTableStorage(cid, AutoLoot.Storages.Count_Table) if AutoLoot.CountTable(Table) >= 1 then if Table[1] then if Table[2] and Table[2] > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Auto Loot] Coletados: ".. Table[1] .." ".. Table[2] .." gold coins.") else if type(Table[1]) == "string" and string.len(Table[1]) > 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Auto Loot] Coletados: "..Table[1]) end end elseif not Table[1] then if Table[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Auto Loot] Coletados: "..Table[2].." gold coins.") end end end doPlayerSetStorageValue(cid, AutoLoot.Storages.Count_Table, -1) end
  2. Olá pessoal, Estou procurando a alguns dias e não consegui fazer da certo ate o momento, então acho que mais pessoas devem ter a mesma dificuldade. Atualmente alguns servidores de poketibia tem um autoloot que é ativado assim que o monstro morre, você não precisa ir lá click no corpo e nem ficar configurando qual item vc quer. Uso a base do PokemasterX, esse servidores já te um script que pega todos os loot's, porem precisa click no poke morto, se alguém conseguir fazer o scrip funcionar se click no corpo ou tiver outro script ajudaria muito. Obrigado! Script que uso hoje: function getContainerBackpack(containeruid) 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 end for i = 1, #containers do if #containers > 1 then table.remove(containers, containers[i+1]) end if #containers > 2 then table.remove(containers, containers[i+2]) end if #containers > 3 then table.remove(containers, containers[i+3]) end if #containers > 4 then table.remove(containers, containers[i+4]) end if #containers > 5 then table.remove(containers, containers[i+5]) end end for i = 1, #containers do for _, x in ipairs(getContainerBackpack(containers[i])) do table.insert(containers, x) end end return containers 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 isCorpse(item) return string.find(getItemNameById(item.itemid), "fainted") or string.find(getItemNameById(item.itemid), "defeated ") end function getCorpsesPosition(position) local toret = { } -- table to return items position.stackpos = 1 while true do -- loop to catch the items and insert them in toret table local thing = getThingfromPos(position) if thing.itemid == 0 then -- thing doesn't exist, break the loop... break end if thing.uid > 0 and isContainer(thing.uid) and isCorpse(thing) then table.insert(toret,thing) end position.stackpos = position.stackpos + 1 -- get next item end return toret end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function doLoot(cid, corpse) if not isCollectAll(cid) then return true end if not isContainer(corpse.uid) then return false end local itemsToLootAllWindow = {} for _, loot in pairs(getContainerItems(corpse.uid)) do local slot = getPlayerSlotItem(cid, 3).uid local container = getContainerBackpack(slot) local item1 = getPlayerStorageValue(cid, 251461):explode("|") or 0 function configLoot() local itt = "".. tostring(getItemInfo(loot.itemid).clientId) .."|".. loot.type .."|" local ittt1, ittt2 = itt:explode("|")[1], itt:explode("|")[2] local itr = ittt1 .."-".. ittt2 .."-" table.insert(itemsToLootAllWindow, itr) doRemoveItem(loot.uid) doSendPlayerExtendedOpcode(cid, 69, table.concat(itemsToLootAllWindow)) end --// Sistema de Daily Itens \\-- if inDailyItens(cid) then if tonumber(item1[1]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[3]) - getPlayerItemCount(cid, item1[1])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[2]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[4]) - getPlayerItemCount(cid, item1[2])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[5]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[7]) - getPlayerItemCount(cid, item1[5])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[6]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[8]) - getPlayerItemCount(cid, item1[6])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end end --// Sistema de Daily Itens \\-- if #container < 1 then doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end for i = 1, #container do if #container >= 1 then if getContainerSlotsFree(container[i]) >= 1 then doAddContainerItem(container[i], loot.itemid, loot.type) configLoot() break end else doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end end end end function checkLoot(cid, corpse, SemMensagem) if not isContainer(corpse.uid) then return false end local quemMatou = getItemAttribute(corpse.uid, "corpseowner") if quemMatou then local player = getCreatureByName(quemMatou) if isPlayer(player) then local isInParyWithPlayer = false if isInParty(cid) and isInParty(player) then isInParyWithPlayer = isPartyEquals(player, cid) end if getCreatureName(cid) ~= getCreatureName(player) and not isInParyWithPlayer then if not SemMensagem then doPlayerSendCancel(cid, "Você não pode abrir um loot que não é seu.") end return false end end end return true end function onUse(cid, item, frompos, item2, topos) if isWatchingTv(cid) then return true end if not isContainer(item.uid) then return true end if not isCollectAll(cid) then return false end local maxItem = 800 if isContainer(item.uid)then if (getPlayerTotalItem(cid) + #getAllItemsFromContainer(item)) > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end else if getPlayerTotalItem(cid) + 1 > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end end local openCorpse = #getContainerItems(item.uid) < 1 if checkLoot(cid, item, false) then doLoot(cid, item) end for _, corpse in pairs(getCorpsesPosition(getThingPosition(item.uid))) do if checkLoot(cid, corpse, false) then doLoot(cid, corpse) end end if openCorpse then return false end return true end
  3. Pessoal estou com um problema no autoloot que eu adicionei no meu server. Se alguém puder por favor me ajude, estarei disponibilizando algumas prints a baixo. Como vc podem ver, quando eu uso o comando !autoloot ele aparece todas as informações normal, não da nenhum bug quando eu uso os comandos "!autoloot, !autoloot add, !autoloot gold, !autoloot power" Mas quando eu mato um mob da um erro e o dinheiro do comando "!autoloot gold" não vai para o banco, também da erro quando eu uso o comando !autoloot goldinfo. Enfim, basicamente o sistema não está coletando nada. Também gostaria que nao tivesse limite de slot para os free. PS: Não sei se esse post esta no local correto. Se não estiver por favor movam! att Esse é o talkaction. Esse é o creaturescript. Comando !autoloot Comando !autoloot gold, e !autoloot power Comando de !autoloot add, Como podem ver não da erro. Porem quando eu mato um mob da esse seguinte erro: Como voces podem ver, o loot não é coletado.
  4. Boa tarde, eu pesquisei eu não achei, não sei se eu pesquisei certo, porém eu queria um autoloot, que ativava ele com um item tipo da use no item vc ativa o autoloot por um determinado tempo aonde seria configurado esse tempo,depois desse tempo o autoloot acabava aí teria que ter outro item para dar use. E tipo igual uma vip da use vc ganha x vips,o autoloot vc da um use no item ele ativa aitoloot por determinado tempo. Se for possível né, e boa vontade da galera, sei que não e fácil. Eu apenas estou pedindo... Obrigado pela atenção. ❤️❤️
  5. ja testei varias correçoes que procurei e nenhuma funcionou, se alguem puder ajudar agradeço, obs: no meu server aparece 0.3.6 mas nao achei essa opçao pra marcar no topico
  6. Qual servidor ou website você utiliza como base? OTServBR-Global-master Qual o motivo deste tópico? Arrumar o autoloot, assim consequentemente os erros da distro... Está surgindo algum erro? Se sim coloque-o aqui. Se precisar de mais alguma informação me peça por favor...
  7. http://theforgottentibia.servegame.com:8080/ LANÇAMENTO ÀS 8h DA NOITE DESSA SEXTA-FEIRA! Mas o test server já ta rolando, dá uma olhada no site! O que faz ele ser diferente do Tibia / The Forgotten Server? Não tem vocações Todo mundo começa como um simples ser-humano com pontos pra serem distribuidos entre os skills Não precisa treinar skills Cada level que você passa você recebe pontos pra serem distribuidos entre os skills. Quanto maior o seu level, menos pontos você ganha. essa gif não é atual Todos clubs, sword e axes tem dano baseado no skill Strenght Armas corpo-a-corpo e armas à distância dão hit crítico (vê no site seção sobre Critical Hit!) Você pode usar duas armas ao mesmo tempo A velocidade de ataque vai dobrar (fixar em 200%) mas o ataque da arma vai diminuir em 10%. Armas à distância tem o dano baseado em Strenght e/ou Dexterity Armas corpo-a-corpo de duas mãos podem causar sangramento Você não precisa abrir os monstros enquanto caça (talvez nem usar o mouse) Só precisa dar ctrl + click no item que deseja lootear automaticamente, e há também um modo de atacar ao pressionar a barra de espaço. Não precisa recarregar a munição Basta colocar tudo no quiver. O dano máximo das wands e rods pode ser aumentado Quando você avança o skill de intelligence você aumenta o dano máximo da wand. A mesma coisa acontece pra faith e rod. O acesso às spells é baseado apenas nos skills intelligence e faith Não tem requerimento de level ou magic level, você só precisa aumentar o intelligence e faith pra ter novas magias. Para usar runas e ter mais dano com spells e runas é preciso ter mais magic A tela tem 1 sqm a mais Você pode dar um título pro seu char (quando dá look) Se tiver os skills necessários você pode ser um mage, um supporter, um knight ou um ranger. Skills Magic Mais dano com spell, runa e dá mais mana. Vitality Mais vida Strenght Mais dano com armas corpo-a-corpo e armas à distância de duas mãos Defence Aumenta a defesa quando tá usando escudo e quando tá sem também (só com arma) Dexterity Mais velocidade de ataque, velocidade de movimento e dano com armas à distância Intelligence Mais mana e acesso pra magias e runas ofensivas Faith Mais mana e acesso pra magias e runas de suporte Endurance Mais cap e vida O SERVER VAI ABRIR ÀS 20h DESSA SEXTA-FEIRA!!! Mas o test server já ta rolando, checa o site!
  8. Gengo

    [OtClient] Auto-Loot

    Fala ai galera do xtibia estou aqui trazendo mais um module para o otClient. Esses dias atras estavo jogando pokestorm e me deparei com o autoloot e decidi fazer um parecido com o deles e então pensei porque não trazer para a comunidade? Afinal não vejo muitos modulos de autoloot para otClient o unico que vi foi o autoloot da DxP, porem não é muito intuitivo comparado com modulo da pokestorm, bom sem mais enrolação vamos lá. Feito o download do arquivo, coloque-o na pasta do seu otClient em /modules/ e pronto já é possível "utilizar-lo", porem com algumas exceções de algumas configurações básicas que temos que fazer para poder utilizar-lo com algumas eficiências. 1º Na pasta do seu otClient/data/ crie uma pasta chamada items e coloque o seus arquivos items.otb e items.xml. 2º Vai até a pasta do seu otClient/modules/game_things abre o arquivo things.lua e procure a função load(), e coloque o seguinte: g_things.loadOtb ('/items/items.otb') g_things.loadXml('/items/items.xml') Obs: Não se assustem quando entrarem no client para logar, no inicio vai dar uma travada, mas depois de esperar uns segundos ele normaliza, pois o único problema é que o carregamento dos arquivos dos items eles são demorados. Também é preciso fazer umas configurações rápida na parte do servidor para poder funcionar. Copie e cole esse script e coloque na pasta do servidor em mods/ e de o nome de autoloot.xml Ainda na pasta do seu servidor abre o arquivo /data/creaturescripts/scripts/login.lua e coloque o seguinte script dentro da função onLogin: local loot = '' for i = 1, #getPlayerStorageTable(cid, info.Storages[1]) do loot = loot..getItemInfo(getPlayerStorageTable(cid, info.Storages[1])[i]).clientId..'-'..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])[i])..'@' end doSendPlayerExtendedOpcode(cid, 157, loot) Feito todos os passos corretamente, configurado certo, deve ficar assim no game: Bom espero que tenham entendido e gostado, não sou muito de ficar escrevendo tutorial, até uma próxima. Download Créditos
  9. Primeiramente baixe esta pasta: http://www.mediafire.com/file/4wt2jzpne0fz7gf/Autoloot.rar Scan: https://www.virustotal.com/#/file/32c61dd8d3411f9cf0584b9290a9755f7040cd5897acacddb964b8e5bd533dd2/detection (CASO JÁ TENHAM O AUTOLOOT, CREIO QUE PODEM PULAR ESTA PARTE, MAS CASO DÊ ERRADO USE O SISTEMA QUE DISPONIBILIZEI) 1- Após ter baixado o arquivo, pegue o arquivo nomeado de "117 - autoloot" e jogue na pasta lib do teu servidor 2- Recomendo adaptarem os itens de seu servidor no .lua do autoloot, deste jeito: (só um exemplo com um item do servidor) <item id="11445" article="a" name="Rock Stone"> ["rock stone"] = {11445, raridade = {15, 35, "Medio"} , 10000}, 3- Em seguida vá na pasta de seu otclient: otclient/modules/, adicione a pasta "game_loot" 4- Em seguida siga este caminho: otclient\data\images\topbuttons, em topbuttons adicione a imagem nomeada "loot", ou adicione algum ícone de autoloot de sua preferencia que tenha o tamanho 32x33 (Este sistema estava em uma pasta de servidor que já tive no pendrive, portanto não tenho conhecimento do autor, caso ele se manifeste, avise por aqui mesmo para receber os devidos créditos) Já aviso que esse sistema foi testado no DXP Créditos para Snix servidor DarkPoke.
  10. Venho aqui para pedir que manje mais me ajude a corrigir essa função/sistema e se possivel aprimora-la, eu tentei arrumar isso de varios modos e no processo acabei bugando ainda mais até voltar a onde estava... Esse sistema é o sistema do Mudrock que pode ser encontrado aqui. \/ -- EDITADO -- \/ 1)BUG CORRIGIDO 2)Aprimorar sistema se possivel Se possivel aprimorar de uma forma em que se o loot x estiver em uma bag todos os proximos x vão tambem para essa bag ou para uma bag depois dessa quando a bag lotar. Exemplo: você tem uma charizard bag com seeds conforme você vai pegando seeds elas vão agrupando nessa bag sem voltar pro inventario a cada 100 e quando lotar a bag inteira de seeds se você tiver uma outra bag dentro da charizard bag as seeds vão para essa nova bag. O BUG CORREÇÃO
  11. Procurei procurei e procurei e nada encontrei, preciso de um sistema de autoloot pro meu server, até achei vários sistemas diferentes mas por alguma razão nenhum funcionou no ot, a versão é 9.60, alguém consegue implementar um que funcione? ou me recomendar algum sei lá, desde já agradeço. Encontrei esse sistema aqui, que QUASE funcionou mas não deu certo tb, o erro que deu nele é na hora de add o item, simplesmente diz que o item não existe. o link do tópico que quase funcionou é esse se quiserem olhar -> http://www.xtibia.com/forum/topic/234430-sistema-autoloot/
  12. Estou usando um autoloot que peguei aqui no forum, mais todos que eu testei ta com o mermo erro quando adiciona 100 item, ele para de adiciona, tem que tira da bag, se nao ele nao adiciona mais, e tem hora que ele falha, decha escapa uma, duas stone, treis stone, da esse erro tamem: [15/10/2013 18:04:49] data/lib/050-function.lua:239: attempt to index a boolean value [15/10/2013 18:04:49] stack traceback: [15/10/2013 18:04:49] data/lib/050-function.lua:239: in function 'getItemName' [15/10/2013 18:04:49] data/creaturescripts/scripts/aloot.lua:57: in function <data/creaturescripts/scripts/aloot.lua:8> Servidor: PDA 1.9 Sem sem lvl by Slicer Creature Scripts: Talkactions:
  13. Estou com um problema e faz tempo que procuro a solução em diversos Forum's e não acho. É o seguinte: Tenho um script de "AutoGold" que funciona plenamente, só que quando mato monstros "sem corpse" como Slime e derivados ou Rift Worm ele trava meu servidor e fica aparecendo mensagens constantes uma atrás da outra assim. "[Error - CreatureScript Interface] In a timer event called from: data/creaturescripts/scripts/autoloot.lua:onKill Description: (LuaInterface::luaGetThing) Thing not found" Meu Script é esse: local configs = { ids = {2148, 2152, 2160, 7588, 7589, 7590, 7591, 7618, 7620, 8473}, premium = true -- só premium usar o auto loot ? [true ou false] } function getItemsInContainerById(container, itemid) local items = {} if 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[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function autoGold(cid, pos, stack) if stack > 255 then return true end local position = {x = pos.x, y = pos.y, z = pos.z, stackpos = stack} local tile = getThingFromPos(position) if isCorpse(tile.uid) then corpse = tile else autoGold(cid, pos, stack + 1) end if corpse ~= nil then for _, idmoney in pairs(configs.ids) do tab = getItemsInContainerById(corpse.uid, idmoney) if #tab ~= 0 then for _, uid in pairs(tab) do money = getPlayerMoney(cid) doPlayerRemoveMoney(cid, money) doPlayerAddMoney(cid, money+item.type) doRemoveItem(item.uid, item.type) end end end end end function onKill(cid, target) if not isPremium(cid) and configs.premium then return true end return addEvent(autoGold, 10, cid, getCreaturePosition(target), 0) end Muito agradecido quem puder me ajudar...
  14. Bem galera é o seguinte, eu puis um sistema de autoloot em meu servidor que eu peguei deste tópico: ( LINK ) Ele faz quase tudo certo mais o seguinte, quando o autoloot junta 100 Itens de exemplo: 100 Remains of Magikarp , ele para de juntar mais em vez dele fazer outra pilha e continuar a juntar ele começa a dar o seguinte erro no Console: Erro: Gostaria que alguém me ajudasse com este erro, com isto sei que não irá somente me ajudar e sim a varias outras pessoas que tem este erro. Muito obrigado e agradeço desde já! REP+
×
×
  • Criar Novo...