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

Il Knight

Veteran OT User
Joined
Dec 1, 2014
Messages
676
Solutions
7
Reaction score
350
Location
Spain
hi!
critical system on mi server via "lua" dont work

im triying to do that =

Fist fighting on mi server its Critical % (all players have this skill in 10)
so its 10% of critical

critical_chance = critical_chance + getPlayerSkill(cid, 0)
skill 0 = fist
but dont work
always hit critical

help!!!

Script = critical
Code:
local combat = createCombatObject()

combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setFormula(COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local combat2 = createCombatObject()

combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
combat:setFormula(COMBAT_FORMULA_SKILL, 2, 0, 2, 0)


local function onUseWeapon1(parameters)
    doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onUseWeapon2(parameters)
    doCombat(parameters.cid, parameters.combat2, parameters.var)
end

function onUseWeapon(cid, var)
local weapons ={
      [1] = {   item= 2414},     
      [2] = {   item= 2400}        
      }

local critical_chance = 0
local rand = math.random(100)
local rid = getCreatureTarget(cid)

   for i= 1, #weapons do
   for s= 5, 6 do
   if getPlayerSlotItem(cid, s).itemid == weapons[i].item then
   critical_chance = critical_chance + getPlayerSkill(cid, 0)
   break
   end
  
   end
   end

if rand <= critical_chance then
    return doCombat(cid, combat2, var)
else
    return doCombat(cid, combat, var)
end
end
 
use print to see these values in order:
crit chance:
rand
getPlayerSkill
crit chance
print()

its work whitevo
but always take the REAL skill id 0 (fist) of the player = 10
im using a spell to set fist to 200% = 20
but the script still using the real fist fighting = 10

how i can resolve this?
 
registerMethod("Player", "getEffectiveSkillLevel", LuaScriptInterface::luaPlayerGetEffectiveSkillLevel);
 
Back
Top