I want to ask for help in modificate this script for OTS
action;
and
the error is showing;
action;
-- Gem system
<action itemid="2376" script="gemsystem.lua"/>
<action itemid="2377" script="gemsystem.lua"/>
<action itemid="2378" script="gemsystem.lua"/>
<action itemid="2379" script="gemsystem.lua"/>
<action itemid="2380" script="gemsystem.lua"/>
<action itemid="2381" script="gemsystem.lua"/>
<action itemid="2382" script="gemsystem.lua"/>
<action itemid="2383" script="gemsystem.lua"/>
<action itemid="2384" script="gemsystem.lua"/>
<action itemid="2385" script="gemsystem.lua"/>
<action itemid="2386" script="gemsystem.lua"/>
<action itemid="2387" script="gemsystem.lua"/>
<action itemid="2388" script="gemsystem.lua"/>
<action itemid="2389" script="gemsystem.lua"/>
<action itemid="2390" script="gemsystem.lua"/>
<action itemid="2391" script="gemsystem.lua"/>
<action itemid="2392" script="gemsystem.lua"/>
<action itemid="2393" script="gemsystem.lua"/>
<action itemid="2394" script="gemsystem.lua"/>
<action itemid="2395" script="gemsystem.lua"/>
<action itemid="2396" script="gemsystem.lua"/>
<action itemid="2397" script="gemsystem.lua"/>
<action itemid="2400" script="gemsystem.lua"/>
<action itemid="2401" script="gemsystem.lua"/>
<action itemid="2402" script="gemsystem.lua"/>
<action itemid="2403" script="gemsystem.lua"/>
<action itemid="2404" script="gemsystem.lua"/>
<action itemid="2405" script="gemsystem.lua"/>
<action itemid="2406" script="gemsystem.lua"/>
<action itemid="2407" script="gemsystem.lua"/>
<action itemid="2408" script="gemsystem.lua"/>
<action itemid="2409" script="gemsystem.lua"/>
<action itemid="2410" script="gemsystem.lua"/>
<action itemid="2411" script="gemsystem.lua"/>
<action itemid="2412" script="gemsystem.lua"/>
<action itemid="2413" script="gemsystem.lua"/>
<action itemid="2414" script="gemsystem.lua"/>
<action itemid="2415" script="gemsystem.lua"/>
<action itemid="2416" script="gemsystem.lua"/>
<action itemid="2417" script="gemsystem.lua"/>
<action itemid="2418" script="gemsystem.lua"/>
<action itemid="2419" script="gemsystem.lua"/>
<action itemid="2421" script="gemsystem.lua"/>
<action itemid="2422" script="gemsystem.lua"/>
<action itemid="2423" script="gemsystem.lua"/>
<action itemid="2424" script="gemsystem.lua"/>
<action itemid="2425" script="gemsystem.lua"/>
<action itemid="2426" script="gemsystem.lua"/>
<action itemid="2427" script="gemsystem.lua"/>
<action itemid="2428" script="gemsystem.lua"/>
<action itemid="2429" script="gemsystem.lua"/>
<action itemid="2430" script="gemsystem.lua"/>
<action itemid="2431" script="gemsystem.lua"/>
<action itemid="2432" script="gemsystem.lua"/>
<action itemid="2433" script="gemsystem.lua"/>
<action itemid="2434" script="gemsystem.lua"/>
<action itemid="2435" script="gemsystem.lua"/>
<action itemid="2436" script="gemsystem.lua"/>
<action itemid="2437" script="gemsystem.lua"/>
<action itemid="2438" script="gemsystem.lua"/>
<action itemid="2439" script="gemsystem.lua"/>
<action itemid="2440" script="gemsystem.lua"/>
<action itemid="2441" script="gemsystem.lua"/>
<action itemid="2442" script="gemsystem.lua"/>
<action itemid="2443" script="gemsystem.lua"/>
<action itemid="2444" script="gemsystem.lua"/>
<action itemid="2445" script="gemsystem.lua"/>
<action itemid="2446" script="gemsystem.lua"/>
<action itemid="2447" script="gemsystem.lua"/>
<action itemid="2448" script="gemsystem.lua"/>
<action itemid="2449" script="gemsystem.lua"/>
<action itemid="2450" script="gemsystem.lua"/>
<action itemid="2451" script="gemsystem.lua"/>
<action itemid="2452" script="gemsystem.lua"/>
<action itemid="2453" script="gemsystem.lua"/>
<action itemid="3961" script="gemsystem.lua"/>
<action itemid="3962" script="gemsystem.lua"/>
<action itemid="3963" script="gemsystem.lua"/>
<action itemid="3964" script="gemsystem.lua"/>
<action itemid="3965" script="gemsystem.lua"/>
<action itemid="6553" script="gemsystem.lua"/>
<action itemid="6528" script="gemsystem.lua"/>
and
function onUse(cid, item, frompos, item2, topos)
local gemAttackMax = 20
local gemDefenseMax = 20
local gemAttackSpeedMax = -1500
local Gems =
{ yellowGem = 2154, greenGem = 2155, redGem = 2156, violetGem = 2153, blueGem = 2158, whitePearl = 2143, blackPearl = 2144 }
local destroyChance = (item.actionid - 103) * 25
if(destroyChance < 0) then
destroyChance = 0
end
if (item2.itemid == Gems.yellowGem or item2.itemid == Gems.greenGem or item2.itemid == Gems.redGem or item2.itemid == Gems.violetGem or item2.itemid == Gems.blueGem or item2.itemid == Gems.whitePearl or item2.itemid == Gems.blackPearl) then
if(destroyChance < math.random(1,100)) then
doSendMagicEffect(topos, math.random(12,14))
if(item2.itemid == Gems.yellowGem) then
if(math.abs(setGemAttackSpeed(item.uid, getGemAttackSpeed(item.uid) - 500)) > math.abs(gemAttackSpeedMax)) then
setGemAttackSpeed(item.uid, gemAttackSpeedMax)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's attack speed now: "..((2000 - math.abs(getGemAttackSpeed(item.uid))) / 1000).."s.")
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.greenGem) then
if(setGemDefense(item.uid, getGemDefense(item.uid) + 10) > gemDefenseMax) then
setGemDefense(item.uid, gemDefenseMax)
end
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's defense plus now: +"..getGemDefense(item.uid).."")
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.redGem) then
if(setGemAttack(item.uid, getGemAttack(item.uid) + 10) > gemAttackMax) then
setGemAttack(item.uid, gemAttackMax)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's attack plus now: +"..getGemAttack(item.uid).."")
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.violetGem) then
if(setGemAttack(item.uid, getGemAttack(item.uid) + 5) > gemAttackMax) then
setGemAttack(item.uid, gemAttackMax)
end
if(setGemDefense(item.uid, getGemDefense(item.uid) + 5) > gemDefenseMax) then
setGemDefense(item.uid, gemDefenseMax)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's attack plus now: +"..getGemAttack(item.uid).."\nWeapon's defense plus now: +"..getGemDefense(item.uid).."")
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.blueGem) then
if(setGemAttack(item.uid, getGemAttack(item.uid) + 3) > gemAttackMax) then
setGemAttack(item.uid. gemAttackMax)
end
if(setGemDefense(item.uid, getGemDefense(item.uid) + 3) > gemDefenseMax) then
setGemDefense(item.uid. gemDefenseMax)
end
if(math.abs(setGemAttackSpeed(item.uid, getGemAttackSpeed(item.uid) - 300)) > math.abs(gemAttackSpeedMax)) then
setGemAttackSpeed(item.uid, gemAttackSpeedMax)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's attack plus now: +"..getGemAttack(item.uid).."\nWeapon's defense plus now: +"..getGemDefense(item.uid).."\nWeapon's attack speed now: "..((2000 - math.abs(getGemAttackSpeed(item.uid))) / 1000).."s.")
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.whitePearl) then
if(setGemAttack(item.uid, getGemAttack(item.uid) + 1) > gemAttackMax) then
setGemAttack(item.uid. gemAttackMax)
end
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's attack plus now: +"..getGemAttack(item.uid).."\nWeapon's attack speed now: "..((2000 - math.abs(getGemAttackSpeed(item.uid))) / 1000).."s.")
doRemoveItem(item2.uid, 1)
elseif(item2.itemid == Gems.blackPearl) then
if(setGemDefense(item.uid, getGemDefense(item.uid) + 1) > gemDefenseMax) then
setGemDefense(item.uid. gemDefenseMax)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Gem attached to weapon.\nWeapon's defense plus now: +"..getGemDefense(item.uid).."\nWeapon's attack speed now: "..((2000 - math.abs(getGemAttackSpeed(item.uid))) / 1000).."s.")
if(item.actionid == 0) then
doSetItemActionId(item.uid, 101)
else
doSetItemActionId(item.uid, item.actionid + 1)
end
doRemoveItem(item2.uid, 1)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Chance to destroy a weapon during next gem attach: "..destroyChance.."%")
else
doSendMagicEffect(topos, CONST_ME_POFF)
doRemoveItem(item.uid, 1)
local str = "Weapon "
if(math.random(1,100) < 50) then
doRemoveItem(item2.uid, 1)
str = str .. "and gem "
end
str = str .. "destroyed during gem attach!"
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, str)
end
return 1
end
end
the error is showing;
data/actions/scripts/gemsystem.luanUse
data/actions/scripts/gemsystem.lua:20: attempt to call global 'getGemAttackSpeed' (a nil value)
stack traceback:
data/actions/scripts/gemsystem.lua:20: in function <data/actions/scripts/gemsystem.lua:1>