• 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!

CreatureEvent [TFS 1.3 / 1.4] Upgrade System

What about an item to disenchant gear
And the reward depends on item quality
@oen432
You can make that yourself as an addition, I don't see this as a build-in thing.

well i installed everything as you said but it does not add skills (like magic level,hp,mana,dist skills,etc) after login
another bug that when you wear armor in your legs slot "for example" it applies attributes like manashield and skills increasing
sorry for my bad english
Are you using latest version?
 
hi @oen432 ive found something strange, when using Upgrade Crystals the atk and defence of the weapon starts from 0.. This images will explain it better

upgradesystemerror.png

how can i fix this?... I really need this to work, especially the Item Level upgrading, thanks in advance!!
 
hi @oen432 ive found something strange, when using Upgrade Crystals the atk and defence of the weapon starts from 0.. This images will explain it better

View attachment 40866

how can i fix this?... I really need this to work, especially the Item Level upgrading, thanks in advance!!
Because this item is created by a command or bought from a NPC. Only items from monsters are properly working.
Read more here Oen44/TFS-Upgrade-System (https://github.com/Oen44/TFS-Upgrade-System/wiki/Developer-Notes)
 
Because this item is created by a command or bought from a NPC. Only items from monsters are properly working.
Read more here Oen44/TFS-Upgrade-System (https://github.com/Oen44/TFS-Upgrade-System/wiki/Developer-Notes)

omg thanks for the quick answer!! i got it.. there is a chance to add Item Level upgrade on this script? My main concern is that you can be able to buy a item, or got from quest, as a clean one, then modify it to create a better weapon/etc...

Lua:
local conf = {
   ["level"] = {
   -- [item_level] = {successPercent= CHANCE TO UPGRADE ITEM, downgradeLevel = ITEM GETS THIS LEVEL IF UPGRADE FAILS}
     [1] = {successPercent = 100, downgradeLevel = 0},
     [2] = {successPercent = 80, downgradeLevel = 0},
     [3] = {successPercent = 75, downgradeLevel = 0},
     [4] = {successPercent = 70, downgradeLevel = 0},
     [5] = {successPercent = 65, downgradeLevel = 0},
     [6] = {successPercent = 60, downgradeLevel = 0},
     [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
 
omg thanks for the quick answer!! i got it.. there is a chance to add Item Level upgrade on this script? My main concern is that you can be able to buy a item, or got from quest, as a clean one, then modify it to create a better weapon/etc...

Lua:
local conf = {
   ["level"] = {
   -- [item_level] = {successPercent= CHANCE TO UPGRADE ITEM, downgradeLevel = ITEM GETS THIS LEVEL IF UPGRADE FAILS}
     [1] = {successPercent = 100, downgradeLevel = 0},
     [2] = {successPercent = 80, downgradeLevel = 0},
     [3] = {successPercent = 75, downgradeLevel = 0},
     [4] = {successPercent = 70, downgradeLevel = 0},
     [5] = {successPercent = 65, downgradeLevel = 0},
     [6] = {successPercent = 60, downgradeLevel = 0},
     [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
Why? Why would you use this if you have same thing in my script?
 
Why? Why would you use this if you have same thing in my script?

well .. the script i added increases the attributes of the item even if it is obtained in a quest, created by commands, or bought in an npc ... but for this to have stronger attributes through a void crystal it must have a certain item level... that's more than anything what I'm looking for ^^ maybe a item level upgrader that doesnt modify attack or defence of weapons... My apologies if I'm wrong somewhere, I'm starting to understand the system better =)
 
well .. this script increases the attributes of the item even if it is obtained in a quest, created by commands, or bought in an npc ... but for this to have stronger attributes through a void crystal it must have a certain item level... that's more than anything what I'm looking for ^^ My apologies if I'm wrong somewhere, I'm starting to understand the system better =)
Yeah... No.
Just edit your quest script and set item level for the reward. Then players can use crystals on these items without any issues.
Because this isn't an issue related to this thread please post a new one here Requests (https://otland.net/forums/requests.132)
 

Hello there!

I was testing this great contribution and found something unusual, but when you change the attribute "Max HP" with the item equipped in its place, in my case a helmet, life is added, that is, with the item equipped with 100 hp , we use the "Faith Crystal" in the item and when we take it out of the "helmet" slot we put it in the bp and once again we put it in the "helmet" slot the total life of the character is added, that is, you can do this indefinitely and life will be added ... Since relogating the character's life back to normal, however the player could abuse this error until logging out. (Google translate helped XD)

TFS 1.3

I keep testing, warning if I find something else
 
Hello there!

I was testing this great contribution and found something unusual, but when you change the attribute "Max HP" with the item equipped in its place, in my case a helmet, life is added, that is, with the item equipped with 100 hp , we use the "Faith Crystal" in the item and when we take it out of the "helmet" slot we put it in the bp and once again we put it in the "helmet" slot the total life of the character is added, that is, you can do this indefinitely and life will be added ... Since relogating the character's life back to normal, however the player could abuse this error until logging out. (Google translate helped XD)

TFS 1.3

I keep testing, warning if I find something else
You haven't installed it properly or you are using old version.
 
Back
Top