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

Cant get Updating script to work!

Ruse

New Member
Joined
Dec 16, 2009
Messages
21
Reaction score
0
Hey! I just tryed Azis upgrading script for items, i simply cant get it to work -.-! I want to get help as soon as possible so i hope sticking this short will trick someone to do it :$

The errors i get are:
[04/01/2010 05:08:47] [Error - Action Interface]
[04/01/2010 05:08:47] data/actions/scripts/upgrading.lua: onUse
[04/01/2010 05:08:47] Description:
[04/01/2010 05:08:47] data/lib/050-function.lua:234: attempt to index a boolean value
[04/01/2010 05:08:47] stack traceback:
[04/01/2010 05:08:47] data/lib/050-function.lua:234: in function 'getItemName'
[04/01/2010 05:08:47] data/actions/scripts/upgrading.lua:24: in function 'getItemInfo'
[04/01/2010 05:08:47] data/lib/050-function.lua:527: in function 'getItemDescriptions'
[04/01/2010 05:08:47] data/lib/050-function.lua:234: in function 'getItemName'
[04/01/2010 05:08:47] data/actions/scripts/upgrading.lua:24: in function 'getItemInfo'
[04/01/2010 05:08:47] data/actions/scripts/upgrading.lua:53: in function <data/actions/scripts/upgrading.lua:50>
:confused:
I know its probably a easy thing to solve, and that im an idiot that havnt found it out myself. But hey, thats just why i post here for help.:p

Actions.xml
<action itemid="2147" event="script" value="upgrading.lua"/>

upgrading.lua

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
 
Back
Top