Ir para conteúdo

Trocar +1,+2,+3 por nomes nesse script refin [10 reps]

Featured Replies

Postado

Alguém poderia fazer isso pra mim? Mexer no meu sistema de refinamento trocar onde fica:

23:43 You see a katana +1 (Atk:19, Def:14 +1). It weighs 31.00 oz.

 

Por

23:43 You see a unc katana (Atk:19, Def:14 +1). It weighs 31.00 oz.

 

No caso só vai até +3, queria que muda-se por nome... Exemplo:
+1 = unc
+2 = rare
+3 = epic

 

Alguém poderia fazer isso p mim?

 



    --PERFECT UPGRADE SYSTEM

    UpgradeHandler = {
        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 any number that has a + sign in front of it or 0 if there is no number with a + sign
        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
            -- 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: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
                    -- this will remove any number with a + sign in front of it from the string
                    self:setItemName(self:getItemName():gsub("(%s+)%+(%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

 

 

 

Pensei ser algo aqui:



self:setItemName(self:getItemName():gsub("(%s+)%+(%d+)", ""))

 

Mas não sei criar os ifs, não sei fazer :(

  • Respostas 37
  • Visualizações 2.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • q erro bizarro.. enfim, tenta assim:   

  • o script não é meu, só fiz uma modificação pra ficar do jeito q vc queria. Não mexi em nada dessa parte de atributos então deve tar como era pra ser. Se ele tá aumentando algo errado verifica se é a c

  • Testa assim, acredito que possa dar erro ao tentar dar upgrade em um item Épico caso as outras checagens do script falhem, mas a lógica tá impecável:   Edit: entra nesse site aqui https:

Postado
self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0)

aqui ele define ql é o level do item, vc tem que modificar isso de forma a fazer ele entender que RARE, UNQ, EPIC são leveis referentes a 1, 2, 3;

O resto é modificador os 
 

            -- 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:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1")))


-- this will remove any number with a + sign in front of it from the string
                    self:setItemName(self:getItemName():gsub("(%s+)%+(%d+)", ""))

 


Pra em vez de setar nome +Level no nome, setar a rarity + nome.

 

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor
3 horas atrás, xWhiteWolf disse:

self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0)

aqui ele define ql é o level do item, vc tem que modificar isso de forma a fazer ele entender que RARE, UNQ, EPIC são leveis referentes a 1, 2, 3;

O resto é modificador os 
 


            -- 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:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1")))


-- this will remove any number with a + sign in front of it from the string
                    self:setItemName(self:getItemName():gsub("(%s+)%+(%d+)", ""))

 


Pra em vez de setar nome +Level no nome, setar a rarity + nome.

 

 

 

Mds mano que complicado!!! To tentando, mas não to conseguindo

 

Não tem como deixar ele setar o lvl +1,+2,+3 e fazer uma função que quando der look cheque o nivel

if(nivel == 1) setarnome ="unc"

elseif(nivel == 2) setarnome ="rare"

elseif(nivel == 3) setarnome ="epic"

Postado

testa assim
 

--PERFECT UPGRADE SYSTEM

    UpgradeHandler = {
		nameLv = {
		    ["UNIQ"] = 1,
		    ["RARE"] = 2,
		    ["EPIC"] = 3
	    }
        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(r) then
		        self.item.level = v
		    end
		end
    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
            -- 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].." "..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

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor
7 horas atrás, xWhiteWolf disse:

testa assim
 


--PERFECT UPGRADE SYSTEM

    UpgradeHandler = {
		nameLv = {
		    ["UNIQ"] = 1,
		    ["RARE"] = 2,
		    ["EPIC"] = 3
	    }
        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(r) then
		        self.item.level = v
		    end
		end
    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
            -- 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].." "..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

Deu ruim total na hora de usar a pedra em uma arma, ta dando esses erros no console e na arma nada acontece:

http://imgur.com/vSR1gtp

Ah se esqueceu de por uma vírgula ali eu acho, não é querendo te corrigir é pq eu sou mt noob e posso ta fazendo merda xD

 



--PERFECT UPGRADE SYSTEM

    UpgradeHandler = {
        nameLv = {
            ["UNIQ"] = 1,
            ["RARE"] = 2,
            ["EPIC"] = 3
        },
        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(r) then
                self.item.level = v
            end
        end
    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
            -- 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].." "..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

 

Editado por gmstrikker (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo