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

Lua Help to change formula wands

dudie

Member
Joined
May 23, 2016
Messages
128
Reaction score
12
I want make a new formula attack wand to make others system...
Someone could help me? Whats i made worng?

weapons.xml
Code:
  <wand id="2190" mana="2" type="energy" event="function" value="wands.lua"> <!-- Wand of Vortex -->
     <vocation id="1"/>
   </wand>

weapons/wands.lua
Code:
function onGetFormulaValues(cid, level, skill, attack, factor)
   min = (attack * 5.0) * -1
   max = (attack * 8.0) * -1
   return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")


items.xml
Code:
  <item id="2190" article="a" name="wand of vortex">
     <attribute key="description" value="Surges of energy rush through the tip of this wand." />
     <attribute key="weight" value="1900" />
     <attribute key="weaponType" value="wand" />
     <attribute key="shootType" value="energy" />
     <attribute key="range" value="3" />
     <attribute key="attack" value="1"/>
   </item>
 
yes, and
[13:58:31.332] cannot open data/weapons/scripts/wand.lua: No such file or directory

Code:
[10:6:07.727] [Error - Weapon Interface]
[10:6:07.727] data/weapons/scripts/wands.lua
[10:6:07.727] Description:
[10:6:07.727] (luaSetCombatCallBack) Combat not found
[10:6:07.727] [Warning - Event::loadScript] Event onUseWeapon not found (data/weapons/scripts/wands.lua)
[10:6:07.863] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[10:6:07.863] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[10:6:07.863] cannot open data/movements/scripts/onEquipItem: No such file or directory
[10:6:07.863] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[10:6:07.863] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[10:6:07.863] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[10:6:07.864] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[10:6:07.864] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[10:6:07.864] cannot open data/movements/scripts/onEquipItem: No such file or directory
[10:6:07.864] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[10:6:07.864] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[10:6:07.864] cannot open data/movements/scripts/onDeEquipItem: No such file or directory


Code:
function onGetFormulaValues(cid, level, skill, attack, factor)
   local atk_first = ((player:getSlotItem(CONST_SLOT_LEFT)):getType():getAttack())
   local atk_second = ((player:getSlotItem(CONST_SLOT_RIGHT)):getType():getAttack())
   local atk = atk_first + atk_second
   min = (atk * 5.0) * -1
   max = (atk * 8.0) * -1
   return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

Code:
  <!-- wand of vortex -->
   <movevent type="Equip" itemid="2190" slot="hand" event="script" value="onEquipItem"/>  
   <movevent type="DeEquip" itemid="2190" slot="hand" event="script" value="onDeEquipItem"/>
 
look at shyzouls post, your wands.lua doesnt have onUseWeapon or a combat object
I've tried him code too, don't work :(

Code:
[11:45:15.117] [Error - Weapon Interface]
[11:45:15.117] data/weapons/scripts/wands.lua
[11:45:15.117] Description:
[11:45:15.117] data/weapons/scripts/wands.lua:1: attempt to call global 'Combat' (a nil value)
[11:45:15.117] [Warning - Event::loadScript] Cannot load script (data/weapons/scripts/wands.lua)

[11:45:15.257] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[11:45:15.257] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[11:45:15.257] cannot open data/movements/scripts/onEquipItem: No such file or directory
[11:45:15.257] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[11:45:15.257] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[11:45:15.257] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[11:45:15.257] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[11:45:15.257] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[11:45:15.257] cannot open data/movements/scripts/onEquipItem: No such file or directory
[11:45:15.257] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[11:45:15.257] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[11:45:15.257] cannot open data/movements/scripts/onDeEquipItem: No such file or directory

Code:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(cid, level, skill, attack, factor)
  min = (attack * 5.0) * -1
  max = (attack * 8.0) * -1
  return -min, -max
end

combat:setCombatCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(player, variant)
  return combat:execute(player, variant)
end
 
because now your onGetFormulaValues is invalid
and onEquip /DeEquip are functions, not files

I just put more on ( cause i tried
Code:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(cid, level, skill, attack, factor)
  local atk_first = (player:getSlotItem(CONST_SLOT_LEFT)):getType():getAttack())
  local atk_second = (player:getSlotItem(CONST_SLOT_RIGHT)):getType():getAttack())
  local atk = atk_first + atk_second
  min = (attack * 5.0) * -1
  max = (attack * 8.0) * -1
  return -min, -max
end

combat:setCombatCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(player, variant)
  return combat:execute(player, variant)
end

And recive this errors
Code:
[12:42:44.951] [Error - LuaInterface::loadFile] data/weapons/scripts/wands.lua:7: unexpected symbol near ')'
[12:42:44.951] [Warning - Event::loadScript] Cannot load script (data/weapons/scripts/wands.lua)
[12:42:44.951] data/weapons/scripts/wands.lua:7: unexpected symbol near ')'
[12:42:45.580] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[12:42:45.580] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[12:42:45.580] cannot open data/movements/scripts/onEquipItem: No such file or directory
[12:42:45.580] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[12:42:45.580] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[12:42:45.580] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[12:42:45.581] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onEquipItem: No such file or directory
[12:42:45.581] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onEquipItem)
[12:42:45.581] cannot open data/movements/scripts/onEquipItem: No such file or directory
[12:42:45.581] [Error - LuaInterface::loadFile] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
[12:42:45.581] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/onDeEquipItem)
[12:42:45.581] cannot open data/movements/scripts/onDeEquipItem: No such file or directory
 
you have
onGetFormulaValues(cid, level, skill, attack, factor)
but you call it with
CALLBACK_PARAM_SKILLVALUE, which is NOT (cid, level, skill, attack, factor) afaik

read shyzouls post
 
i dont touch a script of 0.3~ since back 2009 so i dont know how it works nowadays i based myself in 0.3 sources, try it
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(cid, level, skill, attack, factor)
min = (attack * 5.0) * -1
max = (attack * 8.0) * -1
return -min, -max
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end
 
Last edited:
I'm sorry guys movemment error was mine error, im noob, sorry...

@Shyzoul

I've tried your script change somethings:
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(cid, level, skill, attack, factor)
   min = (attack * 100.0) * -1
   max = (attack * 100.0) * -1
   return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end

I trought attack was return 100
Cause wand of vortex attack is: 1
Code:
  <item id="2190" article="a" name="wand of vortex">
     <attribute key="description" value="Surges of energy rush through the tip of this wand." />
     <attribute key="weight" value="1900" />
     <attribute key="weaponType" value="wand" />
     <attribute key="shootType" value="energy" />
     <attribute key="range" value="3" />
     <attribute key="attack" value="1"/>
   </item>


But every attack returned 80 like attack was 0.8
Code:
12:33 You deal 80 damage to a dragon.
12:37 You deal 80 damage to a dragon.
12:37 You deal 80 damage to a dragon.
12:37 You deal 80 damage to a dragon.

Is possible show attack of wand onlook?
Code:
12:38 You see a wand of vortex.
It can only be wielded properly by sorcerers of level 7 or higher.
It weighs 19.00 oz.
Surges of energy rush through the tip of this wand.

Edit: I'm using 0.4
 
Last edited:
if you have like Attack: 10 for base, cant you change item description via item userdata or uid and change 10 to something else?
 
@dudie on 0.3 no clue but i can take a look after at tfs github to give you a clue, the attack return as i said is result of a formalae that include skill(club, axe, dist), monster def and probably more maths, so thats why.
 
Last edited:
@dudie on 0.3 no clue but i can take a look after at tfs github to give you a clue, the attack return as i said is result of a formalae that include skill(club, axe, dist), monster def and probably more maths, so thats why.

Lol you are a pro...
Thats why damage was 80 and no 100 8)
Code:
<element energyPercent="20"/>
Ty

waiting anxiously for your help me to show where found to show wand atk on look
 
Back
Top