-
Total de itens
77 -
Registro em
-
Última visita
Tudo que maikons postou
-
Alguém que usa o script da demon oak em servidores 8.60 (0.4)... Poderia me passar um script funcional pra essa versão e me ajudar a configurar? Já coloquei as arvores, mas não sei como é, se são actions, oq colocar no mapa, nunca fiz essa quests, mas os players estão cobrando...
-
bump
-
Muito obrigado, vou te dar outros reps aqui, vlw!!!
-
Não sei o porque, mas o código ta aparecendo pra mim (não sei se é só pra mim) Com varios > < Troca o código pra PHP que arruma eu acho, pelo menos quando eu posto
-
Alguém sabe?
-
Queria que cada item tivesse uma chance pra que o itemid 8300 fosse 2 vezes mais fácil de acertar If item 8306 changes = levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, Else if item 8300 changes = levels = { [1] = {100, false, false}, [2] = {40, false, false}, [3] = {20, true, true} }, script --PERFECT UPGRADE SYSTEM UpgradeHandler = { nameLv = { [1] = "UNIQ", [2] = "RARE", [3] = "EPIC" }, levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, broadcast = 3, attributes = { ["attack"] = 3, ["defense"] = 2, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, 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 * 3) 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() -- this will return the level by the quality or 0 if it has no quality. self.item.level = 0 for r, v in ipairs(self.nameLv) do if self:getItemName():find(v) then self.item.level = r end end end function UpgradeHandler:refine(uid, item) if (self.item.level >= 3) then return true end 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 if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end -- it says if the item's level is greater then 0 (meaning is level equal to 1 or more) if it is add 1 more -- if the current level equals 0 add 1 to it self:setItemName(self.item.level > 0 and self.nameLv[self.item.level + 1].." "..(self:getItemName():gsub(self.nameLv[self.item.level].." ", "")) or self.nameLv[1].." "..self:getItemName()) 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" else if item.itemid == 8300 then if self.item.level > 0 then -- this will remove any number with a + sign in front of it from the string self:setItemName(self:getItemName():gsub((self.nameLv[self.item.level].." "), "")) 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, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
[Encerrado] Como o underwar faz pra dar aquele save que kicka e depois voltar?
tópico respondeu ao maikons de maikons em Tópicos Sem Resposta
Pra ativar isso é só mudar isso no config.lua? globalSaveEnabled = true globalSaveHour = 7 globalSaveMinute = 0 shutdownAtGlobalSave = true cleanMapAtGlobalSave = true Parece q o sv volta e n fecha mais, como faz pra voltar? -
[Encerrado] Como o underwar faz pra dar aquele save que kicka e depois voltar?
tópico respondeu ao maikons de maikons em Tópicos Sem Resposta
Achei que tinha como fazer pra de algum jeito limpar algo, tipo arquivos temporarios ou qualquer coisa, que reinicia-se deixava a parada mais lisa a limpa, como eles fazem pro ot desligar numa hora e voltar em outra? Tem certeza q não rola nada disso? Pq se fosse só save ou clean eles botavam um mass kick e um clean nesse horario :S -
[Encerrado] Como o underwar faz pra dar aquele save que kicka e depois voltar?
tópico respondeu ao maikons de maikons em Tópicos Sem Resposta
Será que eles não reinciam a maquina, fazem algum procedimento pra deixar a parada mais lisa dps do save? Pq eu sinto o sv mais leve n sei pq Será que não tem algum metodo de algo bom pra fazer quando da esses saves? E como o ot volta sozinho? -
[Encerrado] Como o underwar faz pra dar aquele save que kicka e depois voltar?
um tópico no fórum postou maikons Tópicos Sem Resposta
Editando config.lua consegui fazer pra 6:00 dar aquele save que derruba o server pra limpar tudo, como o underwar faz pra o server voltar depois? Por que eles fazem isso? Pra reiniciar a maquina e tal? O que eles fazem? Compensa né pra deixar o ot mais liso né? -
Como editar as sources pra só quem der o ultimo hit pegar injust nas sources 0.4? Acho que bastante gente usaria isso, alguém pode me ajudar?
-
[Arquivado]O atual cenário OTserv
tópico respondeu ao TarciisioFilho de maikons em Noticias - Arquivo
Pelo menos pra mim tem, não aguento jogar essa mesmice -
Alguém me ajuda a arrumar meu creaturescript? script local spells = { [1] = { --sorcerer level = { [10] = "1spell", "spell1", [20] = "2spell", "spell2" } }, [2] = { --druid level = { [1] = "spell", "spell", [5] = "spell", "spell" } }, [3] = { --paladin level = { [1] = "spell", "spell", [5] = "spell", "spell" } }, [4] = { --knight level = { [1] = "1spell", "spell1", [5] = "2spell", "spell2" } } } local array_sorc = {"Sorcerer", "Master Sorcerer"} local array_druid = {"Druid", "Elder Druid"} local array_paladin = {"Paladin", "Royal Paladin"} local array_knight = {"Knight", "Elite Knight"} local text = "" function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then player = Player(cid) if isInArray(array_sorc, player:getVocation()) then CONFIG = spells[1] elseif isInArray(array_druid, player:getVocation()) then CONFIG = spells[2] elseif isInArray(array_paladin, player:getVocation()) then CONFIG = spells[3] elseif isInArray(array_knight, player:getVocation()) then CONFIG = spells[4] end if not CONFIG return false end EVENT = CONFIG.level[player:getMagLevel()] if not EVENT then return false end for i, v in ipairs(EVENT) do text = text..""..i..", " end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "New spells: "..text..) end return true end Erro; http://i.imgur.com/OV5FEde.png
-
Sim e não é VIP account 8306 id da pedra FREE (que vai dar pra comprar pelo jogo) 8300 id da pedra VIP (que vai comprar por donate)
-
Ta no inicio do tópico: As minhas modificações são: 8306 - pedra free, se errar com ela, destroi a arma (funcionando perfeitamente) 8300 - pedra VIP, se errar com ela, volta todos os niveis da arma
-
@Kissy Bugado seu script 00:49 You see a magic longsword +2 (Atk:57, Def:42). It can only be wielded properly by knights. It weighs 43.00 oz. It is the magic Cyclopmania Sword. ItemID: [2390]. Olha os espaços, não ta voltando Chega uma hora q fica 00:49 You see a magic longsword +2 (Atk:57, Def:42).
-
conseguiram? quero usar isso no meu ot 0.4!!!
-
Desculpa eu tava bebado de sono ontem, o outro tava muito dificel de ser entendido, agora ta bem estruturado, só espero que alguem consiga me ajudar to a mais de 10 dias com esse maldito problema
-
Script do oneshot (original, sem minhas modificações) http://www.xtibia.co...upgrade-system/ As minhas modificações são: 8306 - pedra free, se errar com ela, destroi a arma (funcionando perfeitamente) 8300 - pedra VIP, se errar com ela, volta todos os niveis da arma Porém estou com um problema, depois que volta os niveis todos, continua os espaços adicionados pelo script... Então se errar muito vai ficando assim \/ 21:27 You see a thaian sword +6 (Atk:52, Def:35). It weighs 61.00 oz. ItemID: [7391]. Position: [X: 982] [Y: 1013] [Z: 7]. E não para nunca, fica com espaços pra crl! Alguem consegue consertar isso ou fazer uma gambiarra pra qnd errar em vez de ir pra zero ou setar atk pra +1, que ai não vai fuder os espaços dps Meu unico arquivo modificado do script dele é: data/lib/upgradesystem.lua --[[ 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] = {80, false, false}, [2] = {75, false, false}, [3] = {70, false, false}, [4] = {60, true, false}, [5] = {50, true, false}, [6] = {35, true, false}, [7] = {30, true, false}, [8] = {25, true, true}, [9] = {20, true, true}, [10] = {15, true, true} }, broadcast = 8, attributes = { ["attack"] = 1, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, 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 * 3) 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 if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end 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" else if item.itemid == 8300 then if self.item.level > 0 then self:setItemName(self:getItemName():gsub("%+(%d+)", "")) 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, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
Script do oneshot http://www.xtibia.co...upgrade-system/ Pessoal do fórum modificou, mas ficou com um problema Se você erra com a pedra ID: 8300, a arma continua com os espaços que foram criados pra escrever o +1 e se você continua errando, continua tendo mais espaços até ficar igual a minha arma 21:27 You see a thaian sword +6 (Atk:52, Def:35). It weighs 61.00 oz. ItemID: [7391]. Position: [X: 982] [Y: 1013] [Z: 7]. E não para nunca, fica com espaços pra crl! Queria um jeito de arrumar meu script pra qnd errar com a pedra 8300 (que é a unica q ta bugando a outra ta certa, ta destruindo o item) A pedra VIP em vez de ir pro 0, voltar pro +1, ai n ia ter problemas com o espaços --[[ 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] = {90, false, false}, [2] = {80, false, false}, [3] = {70, false, false}, [4] = {60, true, false}, [5] = {40, true, true} }, broadcast = 8, attributes = { ["attack"] = 1, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, 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 * 3) 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 if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end 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" else if item.itemid == 8300 then if self.item.level > 0 then self:setItemName(self:getItemName():gsub("%+(%d+)", "")) 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, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
up
-
o problema das vesões 8.6 é que não tem essa aba de "your imbox", tinha que ter um jeito de não poder mandar o parcel ou se tive-se parcel no dp dos rookers deleta-se e checava toda vez q eles pisava no lugar do dp
-
Cotinua esse maldito problema :@:@ Só que agora ta bugando tudo, chega uma hora que o item não quer mais refinar 18:26 Trying to refine mace to level +4 with 65% success rate. 18:26 You have upgraded mace to level +4 18:27 You see a mace +4 (Atk:20, Def:15). It weighs 28.00 oz. ItemID: [2398]. Position: [X: 393] [Y: 931] [Z: 6]. lib/upgradesystem.lua --[[ 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] = {95, false, false}, [2] = {85, false, false}, [3] = {75, false, false}, [4] = {65, true, false}, [6] = {55, false, false}, [7] = {45, false, false}, [8] = {35, false, false}, [9] = {25, false, false}, [10] = {15, true, true} }, broadcast = 8, attributes = { ["attack"] = 1, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, 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 * 3) 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 if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end 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" else if item.itemid == 8300 then if self.item.level > 0 then self:setItemName(self:getItemName():gsub("%+(%d+)","")) 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, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
Continua o maldito erro dos espaços brother ((
-
Sim, ta refinando (aumentando o atk/def) igual o meu primeiro script que eu postei, mas fica com um maldito espaço e ele não volta qnd reseta a arma
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.