• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Spell after brun on spell

Djivar

AKA Wickedviruz
Joined
Sep 28, 2009
Messages
1,641
Reaction score
19
Location
Sweden,edsbyn
Hello, i need a script that in a place specielt you will get fire in like 6 seconds, and the hits is like this: 100, 200, 300,300,400,600

and the script look like this

PHP:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2,8 -3.4, -2.9, -3.5)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2,8 -3.4, -2.9, -3.5)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -0.6, -0.5, -0.6)

arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
}

arr3 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)

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

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

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

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 1, parameters)
addEvent(onCastSpell2, 1, parameters) 
addEvent(onCastSpell3, 1, parameters)
return doCombat(cid, combat, var)

end

i want the fire hit in the 2 and 3 arr
 
addEvent(onCastSpell1, 1, parameters)
addEvent(onCastSpell2, 1, parameters)
addEvent(onCastSpell3, 1, parameters)


in the green change the time
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2,8 -3.4, -2.9, -3.5)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_FIREREA)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -0.6, -0.5, -0.6)


then that?
 
Try
Code:
local area, formula, effect, ctype, combat =
{ -- areas
[1] = {
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
		{0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0},
		{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
		{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
		{0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0},
		{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
		{0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0},
		{0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0},
		{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
	},
[2] = {
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
	},
[3] = {
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
	}
},
{ -- formulas
	[1] = {-2,8 -3.4, -2.9, -3.5},
	[2] = {-2,8 -3.4, -2.9, -3.5},
	[3] = {-0.5, -0.6, -0.5, -0.6}
},
{ -- effects
	[1] = CONST_ME_ENERGYAREA,
	[2] = CONST_ME_EXPLOSIONAREA,
	[3] = CONST_ME_EXPLOSIONAREA
},
{ -- combat types
	[1] = COMBAT_PHYSICALDAMAGE,
	[2] = COMBAT_PHYSICALDAMAGE,
	[3] = COMBAT_FIREDAMAGE
},
{}

for i = 1, #area do
	table.insert(combat, createCombatObject())
	setCombatParam(combat[i], COMBAT_PARAM_TYPE, ctype[i])
	setCombatParam(combat[i], COMBAT_PARAM_EFFECT, effect[i])
	setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, formula[i][1], formula[i][2], formula[i][3], formula[i][4])
	setCombatArea(combat[i], createCombatArea(area[i]))
	if isInArray({2, 3}, i) == TRUE then
		local condition = createConditionObject(CONDITION_FIRE)
		setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
		for i = 1, 6 do addDamageCondition(condition, 1, 7000, i * -100) end
		setCombatCondition(combat[i], condition)
	end
end

function onCastSpell(cid, var)
	for i = 1, #combat do
		doCombat(cid, combat[i], var)
	end
	return true
end
 
Last edited:
thx, but when i tryed it, the server cant load the spell




[04/02/2010 22:25:47] Lua Script Error: [Spell Interface]
[04/02/2010 22:25:47] data/spells/scripts/attack/exani mort tera.lua

[04/02/2010 22:25:47] data/spells/scripts/attack/exani mort tera.lua:61: bad argument #1 to 'insert' (table expected, got nil)
[04/02/2010 22:25:47] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/exani mort tera.lua)
 
this time,

[05/02/2010 07:39:56] Lua Script Error: [Spell Interface]
[05/02/2010 07:39:56] data/spells/scripts/attack/exani mort tera.lua

[05/02/2010 07:39:56] luaSetCombatCondition(). Combat not found

[05/02/2010 07:39:56] Lua Script Error: [Spell Interface]
[05/02/2010 07:39:56] data/spells/scripts/attack/exani mort tera.lua

[05/02/2010 07:39:56] luaSetCombatCondition(). Combat not found
 
Back
Top