jajajiji
New Member
- Joined
- Jan 20, 2009
- Messages
- 23
- Reaction score
- 1
Upgrading System by Click V 1.0
This is new version of Upgrading System
Tested in TFS 0.3.4 Lastest version
NEW FEATURES
**Now can upgrade bows and crossbows
**Animation Success! or Failed!
**Actionid save now can trade, move, etc.
**Now shows in description if is destroy or not
1.- \data\actions\scripts\upgrade.lua
2.- \data\actions\actions.xml
3.- \data\items\items.xml
Enjoy this script
Credits:
Created by jordanhenry and modified by Jajajiji(me)
This is new version of Upgrading System
Tested in TFS 0.3.4 Lastest version
NEW FEATURES
**Now can upgrade bows and crossbows
**Animation Success! or Failed!
**Actionid save now can trade, move, etc.
**Now shows in description if is destroy or not
1.- \data\actions\scripts\upgrade.lua
Lua:
local messagetype = MESSAGE_EVENT_ORANGE
local fetishs = {
[7800] = {chance = 100, amount = 1, set = setItemAttack, get = getItemAttack, name = "attack"},
[7801] = {chance = 80, amount = 2, set = setItemAttack, get = getItemAttack, name = "attack"},
[7802] = {chance = 60, amount = 3, set = setItemAttack, get = getItemAttack, name = "attack"},
[7803] = {chance = 40, amount = 4, set = setItemAttack, get = getItemAttack, name = "attack", destroy = TRUE},
[7804] = {chance = 20, amount = 5, set = setItemAttack, get = getItemAttack, name = "attack", destroy = TRUE},
[7805] = {chance = 100, amount = 1, set = setItemDefense, get = getItemDefense, name = "defense"},
[7806] = {chance = 80, amount = 2, set = setItemDefense, get = getItemDefense, name = "defense"},
[7807] = {chance = 60, amount = 3, set = setItemDefense, get = getItemDefense, name = "defense"},
[7808] = {chance = 40, amount = 4, set = setItemDefense, get = getItemDefense, name = "defense", destroy = TRUE},
[7809] = {chance = 20, amount = 5, set = setItemDefense, get = getItemDefense, name = "defense", destroy = TRUE},
[7810] = {chance = 100, amount = 1, set = setItemArmor, get = getItemArmor, name = "armor"},
[7811] = {chance = 80, amount = 2, set = setItemArmor, get = getItemArmor, name = "armor"},
[7812] = {chance = 60, amount = 3, set = setItemArmor, get = getItemArmor, name = "armor"},
[7813] = {chance = 40, amount = 4, set = setItemArmor, get = getItemArmor, name = "armor", destroy = TRUE},
[7814] = {chance = 20, amount = 5, set = setItemArmor, get = getItemArmor, name = "armor", destroy = TRUE},
[7815] = {chance = 100, amount = 1, set = setItemShootRange, get = getItemShootRange, name = "range"},
[7816] = {chance = 80, amount = 2, set = setItemShootRange, get = getItemShootRange, name = "range"},
[7817] = {chance = 60, amount = 3, set = setItemShootRange, get = getItemShootRange, name = "range"},
[7818] = {chance = 40, amount = 4, set = setItemShootRange, get = getItemShootRange, name = "range", destroy = TRUE},
[7819] = {chance = 20, amount = 5, set = setItemShootRange, get = getItemShootRange, name = "range", destroy = TRUE},
[7850] = {chance = 100, amount = 5, set = setItemAttack, get = getItemAttack, name = "attack"}, -- only given when access >= 5
[7851] = {chance = 100, amount = 5, set = setItemDefense, get = getItemDefense, name = "defense"}, -- only given when access >= 5
[7852] = {chance = 100, amount = 5, set = setItemArmor, get = getItemArmor, name = "armor"}, -- only given when access >= 5
[7853] = {chance = 100, amount = 5, set = setItemShootRange, get = getItemShootRange, name = "range"} -- only given when access >= 5
}
local minmax = {
min1 = 7800, -- minimum of the random fetishs for access < 5
max1 = 7819, -- maximum of the random fetishs for access < 5
min2 = 7850, -- minimum of the random fetishs for access >= 5
max2 = 7853, -- maximum of the random fetishs for access >= 5
}
-- WARNING: look further down and your eyes will burn. --
function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.actionid == 0 then
local new = getPlayerAccess(cid) >= 5 and math.random(minmax.min2, minmax.max2) or math.random(minmax.min1, minmax.max1)
local text = "You remove the dust and revealed that it is a "..fetishs[new].chance.."% fetish for "..fetishs[new].name.." +"..fetishs[new].amount.."."..(fetishs[new].destroy ~= nil and " It has a slight chance of breaking your item." or "")
doPlayerSendTextMessage(cid, messagetype, text)
doSetItemActionId(item.uid, new)
doSetItemSpecialDescription(item.uid, text)
setItemName(item.uid, fetishs[new].chance.."% fetish for "..fetishs[new].name.." +"..fetishs[new].amount)
elseif fetishs[item.actionid] ~= nil then
if fetishs[item.actionid].get(itemEx.uid) > 0 then
if itemEx.actionid < 110 then
local amount = math.max(0, itemEx.actionid - 100)
local chance = math.random(0, 100)
local text = fetishs[item.actionid].name.." upgrade on "..getItemNameById(itemEx.itemid).." failed."
if chance <= fetishs[item.actionid].chance then
fetishs[item.actionid].set(itemEx.uid, (fetishs[item.actionid].get(itemEx.uid)+fetishs[item.actionid].amount))
text = getItemNameById(itemEx.itemid).." "..fetishs[item.actionid].name.." +"..fetishs[item.actionid].amount.."."
elseif fetishs[item.actionid].destroy ~= nil or fetishs[item.actionid].destroy == TRUE then
if math.random(0, 1) == 1 then
doRemoveItem(itemEx.uid)
text = getItemNameById(itemEx.itemid).." has been destroyed."
end
end
doPlayerSendTextMessage(cid, messagetype, text)
doSetItemActionId(itemEx.uid, 100+(amount+1))
setItemName(itemEx.uid, getItemNameById(itemEx.itemid).." (Level "..(amount+1)..")")
doSendMagicEffect(toPosition, (chance <= fetishs[item.actionid].chance and 13 or 2))
doSendAnimatedText(toPosition, (chance <= fetishs[item.actionid].chance and "Success!" or "Failed!"),(chance <= fetishs[item.actionid].chance and TEXTCOLOR_WHITE or TEXTCOLOR_RED))
doRemoveItem(item.uid)
else
doPlayerSendCancel(cid, "This weapon has already been upgraded 10 times.")
end
else
doPlayerSendCancel(cid, "This item may not be upgraded.")
end
else
doPlayerSendCancel(cid, "Sorry, not possible.")
end
return TRUE
end
Code:
<action fromid="9743" toid="9744" event="script" value="upgrade.lua"/>
Code:
item fromid="9743" toid="9744" name="upgrade crystal">
<attribute key="weight" value="10"/>
</item>
Credits:
Created by jordanhenry and modified by Jajajiji(me)