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

Weapon with Formula

beenii

Well-Known Member
Joined
Jul 26, 2010
Messages
580
Solutions
1
Reaction score
57
example:

wand atack: magic level * 1.5 + 100 + player level = total attack

sword attack: skills sword * 1.8 + 120 + player level = total attack

Bow attack: skiils dist *1.2 + 80 + player level = total attack

please help xD need this script :)
 
Example to do this,
example of sword attak:
Code:
--[[
Weapon with formula script;
Example made by BomBa.
]]
 
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
 
local skillSword, playerLevel = getPlayerSkillLevel(cid, 2), getPlayerLevel(cid)
local formula = -((skillSword*1.8)+120+playerLevel) --This is the damage formula, you can edit.
 
function onGetFormulaValues(cid, level, skill, attack, factor)
  return formula, --[[min]]formula*1.6 --[[max]]
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
function onUseWeapon(cid, var)
  return doCombat(cid, combat, var)
end
 
Code:
[02/05/2014 13:55:20] [Error - Weapon Interface]
[02/05/2014 13:55:20] data/weapons/scripts/sword vip.lua
[02/05/2014 13:55:20] Description:
[02/05/2014 13:55:20] (luaGetPlayerSkillLevel) Player not found

[02/05/2014 13:55:20] [Error - Weapon Interface]
[02/05/2014 13:55:20] data/weapons/scripts/sword vip.lua
[02/05/2014 13:55:20] Description:
[02/05/2014 13:55:20] (internalGetPlayerInfo) Player not found when requesting player info #3

[02/05/2014 13:55:20] [Error - Weapon Interface]
[02/05/2014 13:55:20] data/weapons/scripts/sword vip.lua
[02/05/2014 13:55:20] Description:
[02/05/2014 13:55:20] data/weapons/scripts/sword vip.lua:13: attempt to perform arithmetic on local 'skillSword' (a boolean value)
[02/05/2014 13:55:20] [Warning - Event::loadScript] Cannot load script (data/weapons/scripts/sword vip.lua)

:(

i using tfs 0.3.6
 
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WEAPONTYPE)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

function onGetFormulaValues(cid, level, skill, attack, factor)
    local skillTotal, levelTotal = skill + attack * 4, level / 5 * 4
    return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

this is the formula exori gran hur, but not how to make it work like the examples put
 
Last edited:
Try:
Code:
--[[
Weapon with formula script;
Example made by BomBa.
]]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
function onGetFormulaValues(cid, level, skill, attack, factor)
  local formula = -((skill*1.8)+120+level) --This is the damage formula, you can edit.
  return formula, formula*1.6
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onUseWeapon(cid, var)
  return doCombat(cid, combat, var)
end
 
fixed with
Code:
doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -minD, -maxD, CONST_ME_EXPLOSIONHIT)

here dont send error with
getPlayerLevel(cid)
and
getPlayerSkillLevel(cid, 2)
 
Post it please after fixed :)

In "data\weapons\scripts" put script of weapon brutalweapon.lua

Code:
function onUseWeapon(cid, var)
local minDamage = (getPlayerLevel(cid)*1.4 + getPlayerSkillLevel(cid, 3)*1.8 + 100) * 1.2
local maxDamage = (getPlayerLevel(cid)*1.4 + getPlayerSkillLevel(cid, 3)*1.8 + 200) * 1.35
local target = getCreatureTarget(cid)
doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -minDamage, -maxDamage, 34)
return true
end
and put in "data\weapons\weapons.xml" this

Code:
<melee id="7412" level="8" unproperly="1" event="script" value="brutalweapon.lua">
        <vocation id="4"/>
        <vocation id="8" showInDescription="0"/>
    </melee>

local minDamage = (getPlayerLevel(cid)*1.4 + getPlayerSkillLevel(cid, 3)*1.8 + 100) * 1.2 -- here is the formula ("level of player * 1.4" + "Player skills Axe * 1.8 + 100" + "100" * "1.2" = total damage )
 
Back
Top