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

Can I do it on this script?

Vitich

Member
Joined
Nov 28, 2012
Messages
266
Reaction score
11
Hi to all, I want to know if I can add critchange and critdamage on this script: (tfs 1.2)
Lua:
[LIST=1]
[*]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
[/LIST]
example:
Lua:
hitChance = 5, -- hit chance %
change to
Lua:
skillcriticalchance = 5, -- hit chance %
Lua:
skillcriticaldamage= 5, -- hit chance %

and:
Lua:
doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_HITCHANCE, upgrading.upValue(it:getHitChance(), nLevel, conf["upgrade"].hitChance))
change to
Lua:
doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_SKILLCRITICALDAMAGE upgrading.upValue(it:getHitChance(), nLevel, conf["upgrade"].skillcriticaldamage))

this is possible? how can i do it?
Thank you guys :D
 
Last edited:
Only got this functions? Does not exist ITEM_ATTRIBUTE_SKILLCRITICALDAMAGE?

Lua:
[LIST=1]
[*]ITEM_ATTRIBUTE_NONE
[*]ITEM_ATTRIBUTE_ACTIONID
[*]ITEM_ATTRIBUTE_UNIQUEID
[*]ITEM_ATTRIBUTE_DESCRIPTION
[*]ITEM_ATTRIBUTE_TEXT
[*]ITEM_ATTRIBUTE_DATE
[*]ITEM_ATTRIBUTE_WRITER
[*]ITEM_ATTRIBUTE_NAME
[*]ITEM_ATTRIBUTE_ARTICLE
[*]ITEM_ATTRIBUTE_PLURALNAME
[*]ITEM_ATTRIBUTE_WEIGHT
[*]ITEM_ATTRIBUTE_ATTACK
[*]ITEM_ATTRIBUTE_DEFENSE
[*]ITEM_ATTRIBUTE_EXTRADEFENSE
[*]ITEM_ATTRIBUTE_ARMOR
[*]ITEM_ATTRIBUTE_HITCHANCE
[*]ITEM_ATTRIBUTE_SHOOTRANGE
[*]ITEM_ATTRIBUTE_OWNER
[*]ITEM_ATTRIBUTE_DURATION
[*]ITEM_ATTRIBUTE_DECAYSTATE
[*]ITEM_ATTRIBUTE_CORPSEOWNER
[*]ITEM_ATTRIBUTE_CHARGES
[*]ITEM_ATTRIBUTE_FLUIDTYPE
[*]ITEM_ATTRIBUTE_DOORID
[*]
[/LIST]
 
Back
Top