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

Weapons scripts

Fresh

Quack!
Joined
Oct 21, 2009
Messages
1,838
Solutions
18
Reaction score
617
Location
Poland
Hello i need two weapons scripts:
1) Weapon deal basic physical damage based on attack and additional magic damage = COMBAT_ENERGY (1-10 damage)
2) Weapon have 5% chance to apply poison to target for 5-10 seconds and that poison dealing 5-15 damage/s over 5-10 seconds.

- - - Updated - - -

bump ! ~

- - - Updated - - -

bump ~
 
Poisonweapon.lua
Lua:
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)
 
    local combat1 = createCombatObject()
    setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat1, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS)
    setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)
 
    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

    local combat3 = createCombatObject()
    setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

    local combat4 = createCombatObject()
    setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat5 = createCombatObject()
    setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat5, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat6 = createCombatObject()
    setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat6, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat7 = createCombatObject()
    setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat7, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat8 = createCombatObject()
    setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat8, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat9 = createCombatObject()
    setCombatParam(combat9, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat9, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat10 = createCombatObject()
    setCombatParam(combat10, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat10, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat11 = createCombatObject()
    setCombatParam(combat11, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15
 
    return min, max
    end
 
    setCombatCallback(combat11, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
 
local function onUseWeapon1(parameters)
	doCombat(parameters.cid, combat, parameters.var)
end
 
local function onUseWeapon2(parameters)
	doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onUseWeapon3(parameters)
	doCombat(parameters.cid, combat2, parameters.var)
end

local function onUseWeapon4(parameters)
	doCombat(parameters.cid, combat3, parameters.var)
end

local function onUseWeapon5(parameters)
	doCombat(parameters.cid, combat4, parameters.var)
end

local function onUseWeapon6(parameters)
	doCombat(parameters.cid, combat5, parameters.var)
end

local function onUseWeapon7(parameters)
	doCombat(parameters.cid, combat6, parameters.var)
end

local function onUseWeapon8(parameters)
	doCombat(parameters.cid, combat7, parameters.var)
end

local function onUseWeapon9(parameters)
	doCombat(parameters.cid, combat8, parameters.var)
end

local function onUseWeapon10(parameters)
	doCombat(parameters.cid, combat9, parameters.var)
end

local function onUseWeapon11(parameters)
	doCombat(parameters.cid, combat10, parameters.var)
end

local function onUseWeapon12(parameters)
	doCombat(parameters.cid, combat11, parameters.var)
end
 
function onUseWeapon(cid, var)
local parameters = { cid = cid, var = var, combat = combat, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7, combat8 = combat8, combat9 = combat9, combat10 = combat10, combat11 = combat11 }
	local target = getCreatureTarget(cid)
        local chance = math.random(1,20)
        if chance == 1 then
        	doSendAnimatedText(getPlayerPosition(target),"Poisoned!", TEXTCOLOR_GREEN)
		local xchance = math.random(1,6)
			if xchance == 1 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
			end
			if xchance == 2 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
				addEvent(onUseWeapon8, 6000, parameters)
			end
			if xchance == 3 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
				addEvent(onUseWeapon8, 6000, parameters)
				addEvent(onUseWeapon9, 7000, parameters)
			end
			if xchance == 4 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
				addEvent(onUseWeapon8, 6000, parameters)
				addEvent(onUseWeapon9, 7000, parameters)
				addEvent(onUseWeapon10, 8000, parameters)
			end
			if xchance == 5 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
				addEvent(onUseWeapon8, 6000, parameters)
				addEvent(onUseWeapon9, 7000, parameters)
				addEvent(onUseWeapon10, 8000, parameters)
				addEvent(onUseWeapon11, 9000, parameters)
			end

			if xchance == 6 then
				addEvent(onUseWeapon2, 1, parameters)
				addEvent(onUseWeapon3, 1000, parameters)
				addEvent(onUseWeapon4, 2000, parameters)
				addEvent(onUseWeapon5, 3000, parameters)
				addEvent(onUseWeapon6, 4000, parameters)
				addEvent(onUseWeapon7, 5000, parameters)
				addEvent(onUseWeapon8, 6000, parameters)
				addEvent(onUseWeapon9, 7000, parameters)
				addEvent(onUseWeapon10, 8000, parameters)
				addEvent(onUseWeapon11, 9000, parameters)
				addEvent(onUseWeapon12, 10000, parameters)
			end
        else
	addEvent(onUseWeapon1, 1, parameters)
        end
end

I don't understand what you mean with the first one, you want a weapon that is only based on the attack of the weapon (so not skills or level)? and with extra energy damage between 1 and 10?
 
Last edited:
I want an weapon what deal normal damage + 5-10 damage from magic (bonus damage from magic + normal physical damage).
 
energyweapon.lua
Lua:
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
 
	function onGetFormulaValues(cid)
	min = -5
	max = -10
 
	return min, max
	end
 
	setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
 
    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat2, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)
 
 
function onUseWeapon(cid, var)
	doCombat(cid, combat, var)
	doCombat(cid, combat2, var)
	return true
end
 
Poisonweapon.lua
Lua:
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)

    local combat1 = createCombatObject()
    setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat1, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS)
    setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)

    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

    local combat3 = createCombatObject()
    setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

    local combat4 = createCombatObject()
    setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat5 = createCombatObject()
    setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat5, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat6 = createCombatObject()
    setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat6, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat7 = createCombatObject()
    setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat7, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat8 = createCombatObject()
    setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat8, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat9 = createCombatObject()
    setCombatParam(combat9, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat9, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat10 = createCombatObject()
    setCombatParam(combat10, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat10, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


    local combat11 = createCombatObject()
    setCombatParam(combat11, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

    function onGetFormulaValues(cid)
    min = -5
    max = -15

    return min, max
    end

    setCombatCallback(combat11, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

local function onUseWeapon2(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onUseWeapon3(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
end

local function onUseWeapon4(parameters)
    doCombat(parameters.cid, combat3, parameters.var)
end

local function onUseWeapon5(parameters)
    doCombat(parameters.cid, combat4, parameters.var)
end

local function onUseWeapon6(parameters)
    doCombat(parameters.cid, combat5, parameters.var)
end

local function onUseWeapon7(parameters)
    doCombat(parameters.cid, combat6, parameters.var)
end

local function onUseWeapon8(parameters)
    doCombat(parameters.cid, combat7, parameters.var)
end

local function onUseWeapon9(parameters)
    doCombat(parameters.cid, combat8, parameters.var)
end

local function onUseWeapon10(parameters)
    doCombat(parameters.cid, combat9, parameters.var)
end

local function onUseWeapon11(parameters)
    doCombat(parameters.cid, combat10, parameters.var)
end

local function onUseWeapon12(parameters)
    doCombat(parameters.cid, combat11, parameters.var)
end

function onUseWeapon(cid, var)
local parameters = { cid = cid, var = var, combat = combat, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7, combat8 = combat8, combat9 = combat9, combat10 = combat10, combat11 = combat11 }
    local target = getCreatureTarget(cid)
        local chance = math.random(1,20)
        if chance == 1 then
            doSendAnimatedText(getPlayerPosition(target),"Poisoned!", TEXTCOLOR_GREEN)
        local xchance = math.random(1,6)
            if xchance == 1 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
            end
            if xchance == 2 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
                addEvent(onUseWeapon8, 6000, parameters)
            end
            if xchance == 3 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
                addEvent(onUseWeapon8, 6000, parameters)
                addEvent(onUseWeapon9, 7000, parameters)
            end
            if xchance == 4 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
                addEvent(onUseWeapon8, 6000, parameters)
                addEvent(onUseWeapon9, 7000, parameters)
                addEvent(onUseWeapon10, 8000, parameters)
            end
            if xchance == 5 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
                addEvent(onUseWeapon8, 6000, parameters)
                addEvent(onUseWeapon9, 7000, parameters)
                addEvent(onUseWeapon10, 8000, parameters)
                addEvent(onUseWeapon11, 9000, parameters)
            end

            if xchance == 6 then
                addEvent(onUseWeapon2, 1, parameters)
                addEvent(onUseWeapon3, 1000, parameters)
                addEvent(onUseWeapon4, 2000, parameters)
                addEvent(onUseWeapon5, 3000, parameters)
                addEvent(onUseWeapon6, 4000, parameters)
                addEvent(onUseWeapon7, 5000, parameters)
                addEvent(onUseWeapon8, 6000, parameters)
                addEvent(onUseWeapon9, 7000, parameters)
                addEvent(onUseWeapon10, 8000, parameters)
                addEvent(onUseWeapon11, 9000, parameters)
                addEvent(onUseWeapon12, 10000, parameters)
            end
        else
    addEvent(onUseWeapon1, 1, parameters)
        end
end

I don't understand what you mean with the first one, you want a weapon that is only based on the attack of the weapon (so not skills or level)? and with extra energy damage between 1 and 10?

Can you help me with this scripts ?

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 18)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -300000, 0, -600000)

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

when i get distance skill arrow hit high 600k .. how ?
 
Back
Top