• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Script 1.1 to 1.3

wafuboe

Member
Joined
Dec 24, 2010
Messages
881
Solutions
2
Reaction score
22
Hello i found this upgrade item script and i want it to use it in my server im using tfs 1.3 can someone help me to transform it into 1.3?

Code:
local conf = {
   ["level"] = {
   -- [item_level] = {successPercent= CHANCE TO UPGRADE ITEM, downgradeLevel = ITEM GETS THIS LEVEL IF UPGRADE FAILS}
     [1] = {successPercent = 85, downgradeLevel = 0},
     [2] = {successPercent = 80, downgradeLevel = 1},
     [3] = {successPercent = 75, downgradeLevel = 2},
     [4] = {successPercent = 70, downgradeLevel = 3},
     [5] = {successPercent = 65, downgradeLevel = 4},
     [6] = {successPercent = 60, downgradeLevel = 5},
     [7] = {successPercent = 55, downgradeLevel = 0},
     [8] = {successPercent = 50, downgradeLevel = 0},
     [9] = {successPercent = 45, downgradeLevel = 0}
   },
   ["upgrade"] = { -- how many percent attributes are rised?
     attack = 5, -- attack %
     defense = 5, -- defense %
     extraDefense = 10, -- extra defense %
     armor = 5, -- armor %
     hitChance = 5, -- hit chance %
   }
}
-- // do not touch // --
-- Upgrading system by Azi [Ersiu] --
-- Edited for TFS 1.1 by Zbizu --
local upgrading = {
  upValue = function (value, level, percent)
  if value < 0 then return 0 end
     if level == 0 then return value end
     local nVal = value
     for i = 1, level do
       nVal = nVal + (math.ceil((nVal/100*percent)))
     end
  return nVal > 0 and nVal or value
  end,
  getLevel = function (item)
  local name = Item(item):getName():split('+')
     if (#name == 1) then
       return 0
     end
     return math.abs(name[2])
  end,
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local it = ItemType(itemEx.itemid)
  if((it:getWeaponType() > 0 or getItemAttribute(itemEx.uid, ITEM_ATTRIBUTE_ARMOR) > 0) and not isItemStackable(itemEx.itemid))then
  local level = upgrading.getLevel(itemEx.uid)
  if(level < #conf["level"])then
  local nLevel = (conf["level"][(level+1)].successPercent >= math.random(1,100)) and (level+1) or conf["level"][level].downgradeLevel
  if(nLevel > level)then
  doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Upgrade to level " .. nLevel .. " successful!")
  else
  doSendMagicEffect(toPosition, CONST_ME_BLOCKHIT)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Upgrade failed. Your " .. it:getName() .. " is now on level " .. nLevel .. "")
  end
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_NAME, it:getName()..((nLevel>0) and "+"..nLevel or ""))
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_ATTACK,  upgrading.upValue(it:getAttack(), nLevel, conf["upgrade"].attack))
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_DEFENSE, upgrading.upValue(it:getDefense(), nLevel, conf["upgrade"].defense))
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_EXTRADEFENSE, upgrading.upValue(it:getExtraDefense(), nLevel, conf["upgrade"].extraDefense))
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_ARMOR, upgrading.upValue(it:getArmor(), nLevel, conf["upgrade"].armor))
  doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_HITCHANCE, upgrading.upValue(it:getHitChance(), nLevel, conf["upgrade"].hitChance))
  doRemoveItem(item.uid, 1)
  else
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your " .. it:getName() .. " is on max level alredy.")
  end
  else
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You cannot upgrade this item.")
  end
end

thank you
 
Lua:
local conf = {
    ["level"] = {
        -- [item_level] = {successPercent= CHANCE TO UPGRADE ITEM, downgradeLevel = ITEM GETS THIS LEVEL IF UPGRADE FAILS}
        [1] = {successPercent = 85, downgradeLevel = 0},
        [2] = {successPercent = 80, downgradeLevel = 1},
        [3] = {successPercent = 75, downgradeLevel = 2},
        [4] = {successPercent = 70, downgradeLevel = 3},
        [5] = {successPercent = 65, downgradeLevel = 4},
        [6] = {successPercent = 60, downgradeLevel = 5},
        [7] = {successPercent = 55, downgradeLevel = 0},
        [8] = {successPercent = 50, downgradeLevel = 0},
        [9] = {successPercent = 45, downgradeLevel = 0}
    },
    ["upgrade"] = { -- how many percent attributes are rised?
        attack = 5, -- attack %
        defense = 5, -- defense %
        extraDefense = 10, -- extra defense %
        armor = 5, -- armor %
        hitChance = 5, -- hit chance %
    }
}

-- // do not touch // --
-- Upgrading system by Azi [Ersiu] --
-- Edited for TFS 1.1 by Zbizu --
local upgrading = {
    upValue = function (value, level, percent)
    if value < 0 then return 0 end
    if level == 0 then return value end
    local nVal = value
    for i = 1, level do
        nVal = nVal + (math.ceil((nVal / 100 * percent)))
    end
        return nVal > 0 and nVal or value
    end,
    getLevel = function (item)
    local name = Item(item):getName():split('+')
    if (#name == 1) then
        return 0
    end
    return math.abs(name[2])
  end,
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local it, itx = ItemType(itemEx.itemid), itemEx.uid
    if ((it:getWeaponType() > 0 or itemEx.uid:getAttribute(ITEM_ATTRIBUTE_ARMOR) > 0) and not it:isStackable()) then
        local level = upgrading.getLevel(itx)
        if(level < #conf["level"])then
            local nLevel = (conf["level"][(level + 1)].successPercent >= math.random(1, 100)) and (level + 1) or conf["level"][level].downgradeLevel
            if(nLevel > level)then
                toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN)
                player:sendTextMessage(MESSAGE_INFO_DESCR, "Upgrade to level " .. nLevel .. " successful!")
            else
                toPosition:sendMagicEffect(CONST_ME_BLOCKHIT)
                player:sendTextMessage(MESSAGE_INFO_DESCR, "Upgrade failed. Your " .. it:getName() .. " is now on level " .. nLevel .. "")
            end
            itx:setAttribute(ITEM_ATTRIBUTE_NAME, it:getName()..((nLevel>0) and "+"..nLevel or ""))
            itx:setAttribute(ITEM_ATTRIBUTE_ATTACK, upgrading.upValue(it:getAttack(), nLevel, conf["upgrade"].attack))
            itx:setAttribute(ITEM_ATTRIBUTE_DEFENSE, upgrading.upValue(it:getDefense(), nLevel, conf["upgrade"].defense))
            itx:setAttribute(ITEM_ATTRIBUTE_EXTRADEFENSE, upgrading.upValue(it:getExtraDefense(), nLevel, conf["upgrade"].extraDefense)
            itx:setAttribute(ITEM_ATTRIBUTE_ARMOR, upgrading.upValue(it:getArmor(), nLevel, conf["upgrade"].armor))
            itx:setAttribute(ITEM_ATTRIBUTE_HITCHANCE, upgrading.upValue(it:getHitChance(), nLevel, conf["upgrade"].hitChance))
            item.uid:remove(1)
        else
            player:sendTextMessage(MESSAGE_INFO_DESCR, "Your " .. it:getName() .. " is on max level alredy.")
        end
    else
        player:sendTextMessage(MESSAGE_INFO_DESCR, "You cannot upgrade this item.")
    end
end
 
Back
Top