Hey, i created a monster called Fire Bomb that executes this script. But when i spawn several Fire Bombs i get this error message:
I know the following script isnt kept very short. excuse me for that!
Thanks
Bump
Code:
[23/04/2015 12:03:56] [Error - CreatureScript Interface]
[23/04/2015 12:03:56] In a timer event called from:
[23/04/2015 12:03:56] data/creaturescripts/scripts/fire bomb.lua:onThink
[23/04/2015 12:03:56] Description:
[23/04/2015 12:03:56] (luaDoCreatureAddHealth) Creature not found
I know the following script isnt kept very short. excuse me for that!
Code:
function onThink(cid, interval)
target = getCreatureTarget(cid)
delay = 1200
delay2 = 400
delay3 = 800
stor = 47945
pos = getCreaturePosition(cid)
effect = 6
dmg = 1000
if getCreatureMaster(cid) > 0 then
dmg = ((getPlayerLevel(getCreatureMaster(cid)) + ((getPlayerLevel(getCreatureMaster(cid)) / 100) * getPlayerMagLevel(getCreatureMaster(cid))) + 50))
end
function calculatedmg(monster, damage, pos)
if monster > 0 then
if doCreatureAddHealth(monster, (-damage)) == true then
doSendAnimatedText(pos, ""..damage.."", 144)
return true
end
end
return true
end
if isMonster(cid) and getCreatureName(cid) == "Fire Bomb" and target > 0 then
if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(target)) < 2 then
if getCreatureStorage(cid, stor) < 1 then
doCreatureSay(cid, "3", TALKTYPE_ORANGE_1)
addEvent(doCreatureSay, delay2, cid, "2", TALKTYPE_ORANGE_1)
addEvent(doCreatureSay, delay3, cid, "1", TALKTYPE_ORANGE_1)
doChangeSpeed(cid, 0 - getCreatureSpeed(cid))
addEvent(doRemoveCreature, delay, cid)
addEvent(doCreatureSay, 1199, cid, "Boom!", TALKTYPE_ORANGE_1)
doCreatureSetStorage(cid, stor, 1)
area = {x = pos.x-1, y =pos.y, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x+1, y =pos.y, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x, y =pos.y-1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x, y =pos.y+1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x-2, y =pos.y, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x+2, y =pos.y, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x-1, y =pos.y-1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x+1, y =pos.y+1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x+1, y =pos.y-1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x-1, y =pos.y+1, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x, y =pos.y-2, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
area = {x = pos.x, y =pos.y+2, z = pos.z}
creature = getTopCreature(area).uid
if isWalkable(area, false, true, true) then
addEvent(doSendMagicEffect, 1200, area, effect)
addEvent(calculatedmg, 1200, creature, dmg, area)
end
end
end
end
return true
end
function isWalkable(pos, creature, proj, pz)-- by Nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
pos.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid ~= 0 and not isCreature(tile.uid) then
if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
return false
end
end
end
return true
end
Thanks
Bump
Last edited by a moderator: