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

nips

Da.Nb
Joined
Oct 15, 2009
Messages
152
Reaction score
0
Location
Germany
Hi all,

once again i need help ( for noobs)
i want to add this effect :


to this weapon script:
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

local arr = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 3, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -500)
setCombatCondition(combat, condition)

function getCombatFormulas(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	500
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 1000
	return formula_min, formula_max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

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

I tryed with:
Code:
setCombatParam(combat, COMBAT_PARAM_(DISTANCE)EFFECT, CONST_ME_HOLYDAMAGE)--Without the "( )" in front of & behind DISTANCE

but there just arrows...
can somebody help me ??

the effect that i want to use is /x 37 ingame.

thx
Nips
 
If you're using TFS 0.2, take a look in data/global.lua
else (if you're using TFS 0.3), data/lib/const.lua
 
i got a new question xd

this is my courrently script from the weapon:

Code:
local chance = 10

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

local arr = {
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 3, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5000)
setConditionFormula(condition, -0.9, 0, -0.9, 0)
setCombatCondition(combat, condition)

function getCombatFormulas(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	500
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 1000
	return formula_min, formula_max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

function onUseWeapon(cid, var)
	if math.random(100) <= chance then
		doCombat(cid, combat, var)
	end
end

now i want to add that the
Code:
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
only appears when the weapon do a critical hit.
 
Last edited:
Blessed Sceptre = Fixed....


Now i want to change "Crystal Arrow" :

Code:
local chance = 10

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SHIVERARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -500)
setCombatCondition(combat, condition)

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

Currently this scipt shoots arrow and paralyzing everytime.

Can somebody add me :
1. Normal Damage + Critical Damage function.
2. Paralyze only on Critical Damage.

On Blessed septre script i used this critical system:

Code:
function getCombatFormulas1(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	500
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 1000
	return formula_min, formula_max
end

function getCombatFormulas2(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	1000
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 2000
	return formula_min, formula_max
end

local combat = {}
for i = 1, 2 do
	table.insert(combat, createCombatObject())
	setCombatParam(combat[1], COMBAT_PARAM_BLOCKARMOR, 1)
	setCombatParam(combat[1], COMBAT_PARAM_BLOCKSHIELD, 1)
	setCombatParam(combat[1], COMBAT_PARAM_EFFECT, CONST_ME_NONE)
	setCombatParam(combat[1], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
	setCombatParam(combat[1], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_BLOCKARMOR, 1)
	setCombatParam(combat[i], COMBAT_PARAM_BLOCKSHIELD, 1)
	setCombatParam(combat[i], COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
	setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
	local area = createCombatArea(arr)
	setCombatArea(combat[i], area)
	if i == 1 then
		setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas1")
	else
		setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas2")
		setCombatCondition(combat[i], condition)
	end
end

I just don't understand how you can change this lines
Code:
function getCombatFormulas1(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	500
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 1000
	return formula_min, formula_max
end

to something like this
Code:
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
 
Last edited:
What he ment is if anyone can make this script
Code:
function getCombatFormulas1(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	500
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 1000
	return formula_min, formula_max
end

function getCombatFormulas2(cid, level, magicLevel)
	local formula_min = -(level * 0 + magicLevel * 0) * 0 -	1000
	local formula_max = -(level * 0 + magicLevel * 0) * 0 - 2000
	return formula_min, formula_max
end

local combat = {}
for i = 1, 2 do
	table.insert(combat, createCombatObject())
	setCombatParam(combat[1], COMBAT_PARAM_BLOCKARMOR, 1)
	setCombatParam(combat[1], COMBAT_PARAM_BLOCKSHIELD, 1)
	setCombatParam(combat[1], COMBAT_PARAM_EFFECT, CONST_ME_NONE)
	setCombatParam(combat[1], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
	setCombatParam(combat[1], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_BLOCKARMOR, 1)
	setCombatParam(combat[i], COMBAT_PARAM_BLOCKSHIELD, 1)
	setCombatParam(combat[i], COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
	setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
	local area = createCombatArea(arr)
	setCombatArea(combat[i], area)
	if i == 1 then
		setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas1")
	else
		setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas2")
		setCombatCondition(combat[i], condition)
	end
end
Works, that its based on distance fighting (SKILL), because its an arrow and not a wand like blessed sceptre
 
Back
Top