Hello, Im upgrade my scripts from tfs 0.3.2b to newest, because old not works on new version...
Not for commercial uses ! If you wan't add it to sms shop - pay me 5€! You earn money - me too want!
Script has been rewrited and code is more readable and more functionaly settings in config!
If you using TFS 0.3.2B version go to THIS THREAD, if you using higher version please use code from this thread!
If you like my script - you can give me a rep point.
in data/actions/actions.xml
under:
add:
and in folder data/actions/scripts/ make new file and rename it to upgrading.lua and paste to file this code:
All configurations in script - config section!
Please, don't copy this script to other forums.
Yours, Azi.
Thanks.
Not for commercial uses ! If you wan't add it to sms shop - pay me 5€! You earn money - me too want!
Script has been rewrited and code is more readable and more functionaly settings in config!
If you using TFS 0.3.2B version go to THIS THREAD, if you using higher version please use code from this thread!
If you like my script - you can give me a rep point.
in data/actions/actions.xml
under:
PHP:
<actions>
PHP:
<action itemid="2147" event="script" value="upgrading.lua"/>
and in folder data/actions/scripts/ make new file and rename it to upgrading.lua and paste to file this code:
PHP:
local conf = {}
-- // config // --
conf.maxItemLevel = 10 -- max item level
conf.successChance = 50 -- succes upgrade chance
conf["upgrade"] = { -- how many parcent attributes are rised?
attack = 5, -- attack %
extraAttack = 10, -- extra Attack %
defence = 5, -- defence %
extraDefence = 10, -- extra defence %
armor = 5, -- armor %
attackSpeed = 3, -- attack speed %
hitChance = 5, -- hit chance %
shootRange = 2, -- shoot range %
}
--// end // --
function getItemInfo(item)
local attr = {}
local name = string.explode(getItemName(item), '+');
if #name == 1 then
attr.name = name[1]
attr.level = math.abs(0)
else
attr.level = math.abs(name[2])
attr.name = name[1]
end
attr.attack = (getItemAttack(item) > 0) and getItemAttack(item) or 0
attr.extraAttack = (getItemExtraAttack(item) > 0) and getItemExtraAttack(item) or 0
attr.defence = (getItemDefense(item) > 0) and getItemDefense(item) or 0
attr.extraDefence = (getItemExtraDefense(item) > 0) and getItemExtraDefense(item) or 0
attr.armor = (getItemArmor(item) > 0) and getItemArmor(item) or 0
attr.attackSpeed = (getItemAttackSpeed(item) > 0) and getItemAttackSpeed(item) or 0
attr.hitChance = (getItemHitChance(item) > 0) and getItemHitChance(item) or 0
attr.shootRange = (getItemShootRange(item) > 0) and getItemShootRange(item) or 0
attr.weight = (getItemWeight(item) > 0) and getItemWeight(item) or 0
return attr
end
function upgradeValue(value, parcent)
local newValue = math.ceil(((value/100)*parcent)+value)
return (newValue > 0) and newValue or 0
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if toPosition.x == 65535 then
local upgradingItem = getItemInfo(itemEx.uid)
if (upgradingItem.attack > 0 or upgradingItem.defence > 0 or upgradingItem.armor > 0 or upgradingItem.shootRange > 1) then
if (upgradingItem.level < conf.maxItemLevel) then
if conf.successChance >= math.random(1,100) then
setItemName(itemEx.uid, upgradingItem.name.." + "..(upgradingItem.level+1))
setItemAttack(itemEx.uid, upgradeValue(upgradingItem.attack, conf["upgrade"].attack))
setItemExtraAttack(itemEx.uid, upgradeValue(upgradingItem.extraAttack, conf["upgrade"].extraAttack))
setItemDefense(itemEx.uid, upgradeValue(upgradingItem.defence, conf["upgrade"].defence))
setItemExtraDefense(itemEx.uid, upgradeValue(upgradingItem.extraDefence, conf["upgrade"].extraDefence))
setItemArmor(itemEx.uid, upgradeValue(upgradingItem.armor, conf["upgrade"].armor))
setItemAttackSpeed(itemEx.uid, upgradeValue(upgradingItem.attackSpeed, conf["upgrade"].attackSpeed))
setItemHitChance(itemEx.uid, upgradeValue(upgradingItem.hitChance, conf["upgrade"].hitChance))
setItemShootRange(itemEx.uid, upgradeValue(upgradingItem.shootRange, conf["upgrade"].shootRange))
doSendMagicEffect(toPosition, 30)
doPlayerSendTextMessage(cid, 22, "Upgraded was successful, your item has become stronger!")
else
doRemoveItem(itemEx.uid, itemEx.type)
doSendMagicEffect(toPosition, 2)
doPlayerSendTextMessage(cid, 22, "Upgrading fail... you lost upgraded item!")
end
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid, "This item is on max level!")
end
else
doPlayerSendCancel(cid, "You cannot upgrade this item!")
end
else
doPlayerSendCancel(cid, "You can upgrading items only in inventory!")
end
return TRUE;
end
All configurations in script - config section!
Please, don't copy this script to other forums.
Yours, Azi.
Thanks.
Last edited: