Ir para conteúdo

Vodkart

Héroi
  • Registro em

Tudo que Vodkart postou

  1. local tiles, var, ret = { {x = 33402, y = 30999, z = 6}, {x = 33402, y = 31000, z = 6}, {x = 33403, y = 31000, z = 6} },5901,9229 function onUse(cid, item, fromPosition, itemEx, toPosition) local t = getTileItemById(tiles[1], ret).uid if t > 0 then return true end if not doPlayerRemoveItem(cid, var, 9) then doPlayerSendCancel(cid, 'voce precisa de 9 madeiras para construir a ponte.') doSendMagicEffect(getThingPos(cid), 2) return true end for i = 1, #tiles do doCreateItem(ret, 1, tiles[i]) doSendMagicEffect(tiles[i], CONST_ME_POFF) end return true end
  2. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 6) function onCastSpell(cid, var) return doPlayerAddHealth(cid, math.random(1065, 1695)) and doCombat(cid, combat, var) end
  3. @poko360 bloqueia as areas de arena no código, são quantas?
  4. @Tom Riddle Tem que ir no items.xml e adicionar o type corpse com ID... Primeiro vê em qual monstro está dando esse erro.
  5. @Pifafa Obrigado por testar! REP+ !! Sistema atualizado.
  6. @Pifafa ok assim que testar me avisa.
  7. se eu fizer a alteração, você pode testar pra mim? alteração do NPC: https://pastebin.com/raw/RGQ4we1E npc/scripts/soya.lua
  8. Não testei usando elf bot, mas posso colocar a função "doPlayerSave(cid)" para salvar assim que vender. Ou também um exhaust de 5 segundos entre uma venda e outra, iria acabar com esse bug será?
  9. Alguém ai ainda joga? Cai platina 4 na MD10 e vou rushar se tiver tempo um diamante ou grão mestre(depende da faculdade) Quem jogar deixa o nick ai embaixo para feedarmos juntos
  10. Vodkart postou uma resposta no tópico em Suporte & Pedidos
    Boa tarde, já vi alguns tópicos pedindo um "jail system" e estou afim de desenvolver um sistema desses... O que eu queria saber é quais ideias vocês teriam para aprimorar o sistema? Minha ideia por enquanto é o seguinte: -Função de mandar o jogador para a cadeia por "X" horas(determinada pelo god,cm,etc...) - Comandos como jail,unjail, time jail, etc... - Sair automaticamente da cadeia assim que acabar o tempo um npc advogado quem sabe? etc...
  11. Esse negócio de não atacar o player com X storage até dá para fazer, o ruim é que por LUA vai bugar e ele vai ficar seguindo os jogadores... Já fiz vários testes por lua mesmo usando: onAttack onFollow onSpell onCombat onTarget etc... Não funciona com 100%, o melhor seria via sources mesmo.
  12. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    não é nesse script. é nesse aqui data/actions/scripts/portaarena.lua
  13. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    faz um movements por AID(não sei se quando a staff cria o portal já tem esse aid) que checa se tem alguem com o mesmo ip já lá dentro. No meu sistema de dota já tem essa função de bloquear MCS, só usar essa função de base.
  14. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    Isso é só a lib, pode ter horários de curto tempo que tenta abrir 2 eventos ao mesmo tempo, etc... ou alguem usando comando para abrir... teria que olhar o sistema inteiro.
  15. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    É as posições, sempre devem começar do MENOR pro maior, tem uma tabela no seu script que está assim: {{x=161,y=32,z=7},{x=138,y=60,z=7}} o seria seria colocar assim: {{x=138,y=32,z=7},{x=161,y=60,z=7}} ai você tem que conferir tudo e arrumar...
  16. function onUse(cid, item, frompos, item2, topos) local pos = getCreaturePosition(cid) local t = getSpectators(pos, 2, 2, false) -- area 2x2 em volta do player if t then for _, ret in ipairs(t) do if isPlayer(ret) then doSendMagicEffect(getCreaturePosition(ret), 17) -- vai sair um efeito para teste em quem tiver perto dele end end end return true end
  17. usa assim: https://pastebin.com/raw/zLdgfNNK
  18. Faz para liberar uma storage, só tem tiver essa storage entra.
  19. @Yan Liima Pois é, ai fica dificil.
  20. não funcionou essa função?
  21. local config = { pos = {x = 1000, y = 1500, z = 13}, level = 100000, levelreset = 10000, msgWelcome = "Use !magiasnovas", msgWelcomeReset = "Bem-vindo!", msgCancel = "Vc Precisa 100k , upe nos rotworms, use !magiasnovas" } function getPlayerReset(cid) local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return qr:getDataInt("reset") <= 0 and 0 or qr:getDataInt("reset") end function onStepIn(cid, item, position, fromPosition) if getPlayerLevel(cid) >= config.level or getPlayerLevel(cid) >= config.levelreset and getPlayerReset(cid) == 1 then doTeleportThing(cid, config.pos) doPlayerSendTextMessage(cid, 22, config.msgWelcomeReset) else doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, config.msgCancel) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) end return true end
  22. Muito bom, tem código que vem com isso mesmo, até já passei para os admin e até hoje não foi resolvido, infelizmente.
  23. --[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, true, true}, [2] = {90, true, true}, [3] = {75, true, true}, [4] = {60, true, true}, [5] = {45, true, true}, [6] = {30, true, true}, [7] = {25, true, true}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {5, true, true} }, broadcast = 9, attributes = { ["attack"] = 2, ["defense"] = 2, ["armor"] = 2, }, message = { console = "{Upgrade System} Refinando %s para o level adiante você tem %s%% de conseguir.", success = "{Upgrade System} Você conseguiu Refinar %s para o level +%s.", fail = "{Upgrade System} Você falhou a sua refinação.", downgrade = "{Upgrade System} Seu item %s voltou para o level +%s.", erase = "{Upgrade System} O level da refinação %s foi apagado.", maxlevel = "{Upgrade System} O item %s ja esta no level maximo.", notupgradeable = "{Upgrade System} Este item não é refinavel.", broadcast = "{Upgrade System} The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "{Upgrade System} Este não é um item de refinação valido.", toolrange = "{Upgrade System} Você so pode usar o refinamento do level +%s ate +%s." }, tools = { [8300] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8306] = {range = {0, 10}, info = {chance = 100, removeable = true}} }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 11) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end local r = chance * 100 if r > 10000 then r = 10000 end if r > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" elseif item.itemid == 8300 then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1))) self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1)))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1))) end end return "fail" end end
  24. https://tibiaking.com/forums/topic/77283-critical-e-dodge-no-look/
  25. @Phineasz que estranho, eu testei no meu ot e o buff sai quando reloga/morre.

Informação Importante

Confirmação de Termo