jajajiji
New Member
- Joined
- Jan 20, 2009
- Messages
- 23
- Reaction score
- 1
1.- data/actions/scripts/upgrade.lua
2.- data/actions/actions.xml
tested on TFS 0.3.4
HOW TO USE?
1.- Use with something
2.- Check the message for upgrade armor,defense or attack
3.- Use with item
4.- Check item
Credits:
jordanhenry
Code:
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 = 50, amount = 3, set = setItemAttack, get = getItemAttack, name = "attack"},
[7803] = {chance = 20, amount = 2, set = setItemAttack, get = getItemAttack, name = "attack", destroy = TRUE},
[7804] = {chance = 30, amount = 3, set = setItemAttack, get = getItemAttack, name = "attack", destroy = TRUE},
[7805] = {chance = 100, amount = 1, set = setItemDefense, get = getItemDefense, name = "defense"},
[7806] = {chance = 80, amount = 3, set = setItemDefense, get = getItemDefense, name = "defense"},
[7807] = {chance = 50, amount = 5, set = setItemDefense, get = getItemDefense, name = "defense"},
[7808] = {chance = 20, amount = 3, set = setItemDefense, get = getItemDefense, name = "defense", destroy = TRUE},
[7809] = {chance = 30, 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 = 50, amount = 3, set = setItemArmor, get = getItemArmor, name = "armor"},
[7813] = {chance = 20, amount = 2, set = setItemArmor, get = getItemArmor, name = "armor", destroy = TRUE},
[7814] = {chance = 30, amount = 3, set = setItemArmor, get = getItemArmor, name = "armor", 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
}
local minmax = {
min1 = 7800, -- minimum of the random fetishs for access < 5
max1 = 7814, -- maximum of the random fetishs for access < 5
min2 = 7850, -- minimum of the random fetishs for access >= 5
max2 = 7852, -- 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)
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 < 150 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))
doRemoveItem(item.uid)
else
doPlayerSendCancel(cid, "This weapon has already been upgraded 50 times.")
end
else
doPlayerSendCancel(cid, "This item may not be upgraded.")
end
else
doPlayerSendCancel(cid, "Sorry, not possible.")
end
return TRUE
end
Code:
<action itemid="9970" event="script" value="upgrade.lua"/>
HOW TO USE?
1.- Use with something
2.- Check the message for upgrade armor,defense or attack
3.- Use with item
4.- Check item
Credits:
jordanhenry
Last edited: