Ir para conteúdo
  • 0

Erro Em Uma Spell


luisfe23

Pergunta

Fala XTibianos!

 

Preciso mais uma vez da ajuda de vocês.

 

Tenho uma spell aqui que está dando um erro, ela é versão 8.60.

 

Erro:

 

(Unknown script file)
Description:
(luaDoConvinceCreature) Creature not found

 

 

Spell:

 

function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doCreateMonster("headcaptor", position, false))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{1, 0, 1},
{0, 2, 0},
{1, 0, 1},
}
local removeTime = 1.0 --time to remove the clones


local function removeCreatures(cid, creature)
	if isCreature(creature) == TRUE then
			doRemoveCreature(creature)
	end
end

function onTargetTile(cid, pos)
local creature = doSummonCreature("headcaptor", pos)
doCreatureSay(cid, "utevo mort", TALKTYPE_ORANGE_1)
	doConvinceCreature(cid, creature)
	addEvent(removeCreatures, removeTime * 1000, cid, creature)
	return TRUE
end



local area, combat = createCombatArea(arr), createCombatObject()
setCombatArea(combat, area)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

 

Conto com vocês, Abraços.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

n sei mexer em spells mais tenta deixar a função assim:

 

function onTargetTile(cid, position)
position.stackpos = 255
local k = doCreateMonster("headcaptor", position)
doConvinceCreature(cid, k)
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo erro.

 

Percebi que esse erro aparece assim,

Essa spell irá summonar 4 monsters nos 4 cantos de quem usar ela,

porém, se existir algo em um dos cantos, ele não deixara que o monster seja summonado ali,

depois o script tentara convencer os quatro monsters, mas terá monster a menos e dará o erro.

 

Não entendo de script, mas acho que teria que fazer um if antes de convencer, para testar se existe todos os monsters, ou menos.

 

Abraços.

Editado por LuisFelipe
Link para o comentário
Compartilhar em outros sites

  • 0

tente assim

function onTargetTile(cid, position)
position.stackpos = 255
local k = doCreateMonster("headcaptor", position)
if isMonster(k) then
doConvinceCreature(cid, k)
end
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

local function isWalkable(position, cid)
position.stackpos = 0
if getTileThingByPos(position).uid ~= 0 then
	local tile = getTileInfo(position)
	if tile.protection == false and tile.house == false and getTopCreature(position).uid == 0 and doTileQueryAdd(cid, position) == RETURNVALUE_NOERROR then
		return true
	end
end
return false
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

local area = createCombatArea({
{1, 0, 1},
{0, 3, 0},
{1, 0, 1}
})

setCombatArea(combat, area)

function onTargetTile(cid, position)
if isWalkable(position) then
	local creature = doCreateMonster("headcaptor", position)
	doConvinceCreature(cid, creature)
	addEvent(function()
		if isCreature(creature) then
			doRemoveCreature(creature)
		end
	end, 1 * 1000)
end
return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
return doCombat(cid, combar, var)
end

Link para o comentário
Compartilhar em outros sites

  • 0

Deu outro erro agora Oneshot

 

[02/07/2012 18:49:47] [Error - Spell Interface]

[02/07/2012 18:49:47] Description:

[02/07/2012 18:49:47] (luaDoCombat) Combat not found

Editado por LuisFelipe
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe mesmo, digitei errado o nome da variável

 

local function isWalkable(position, cid)
       position.stackpos = 0
       if getTileThingByPos(position).uid ~= 0 then
               local tile = getTileInfo(position)
               if tile.protection == false and tile.house == false and getTopCreature(position).uid == 0 and doTileQueryAdd(cid, position) == RETURNVALUE_NOERROR then
                       return true
               end
       end
       return false
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

local area = createCombatArea({
       {1, 0, 1},
       {0, 3, 0},
       {1, 0, 1}
})

setCombatArea(combat, area)

function onTargetTile(cid, position)
       if isWalkable(position, cid) then
               local creature = doCreateMonster("headcaptor", position)
               doConvinceCreature(cid, creature)
               addEvent(function()
                       if isCreature(creature) then
                               doRemoveCreature(creature)
                       end
               end, 1 * 1000)
       end
       return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

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

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo oneshot! Muito obrigado!

 

hehe, já aproveitando, tem uma outra spell parecida que está dando o mesmo erro.

 

Spell:

 

function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doCreateMonster("protector", position, false))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}
local removeTime = 5.0 --time to remove the clones


local function removeCreatures(cid, creature)
       if isCreature(creature) == TRUE then
               doRemoveCreature(creature)
       end
end

function onTargetTile(cid, pos)
local creature = doSummonCreature("Protector", pos)
doCreatureSay(cid, "utevo aura", TALKTYPE_ORANGE_1)
       doConvinceCreature(cid, creature)
       addEvent(removeCreatures, removeTime * 1000, cid, creature)
       return TRUE
end


local area, combat = createCombatArea(arr), createCombatObject()
setCombatArea(combat, area)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

 

O erro dessa spell é esse:

 

(Unknown script file)
Description:
(luaDoConvinceCreature) Creature not found

 

 

Ela tem uma função parecida com a outra.

Também queria saber se nessa spell tem como limitar o número de summons para apenas três por player, pois ela pode ser usada várias vezes, e cada vez ela summona 1 novo monster.

 

Abraços e obrigado!

 

EDIT

 

Agora o erro da spell anterior aparece menos, porém ainda continua e tem um novo erro.

 

[03/07/2012 00:23:08] (Unknown script file)

[03/07/2012 00:23:08] Description:

[03/07/2012 00:23:08] (luaDoCreateMonster) Cannot create monster: headcaptor

 

[03/07/2012 00:23:08] (Unknown script file)

[03/07/2012 00:23:08] Description:

[03/07/2012 00:23:08] (luaDoConvinceCreature) Creature not found

 

Agora aparece esses dois erros.

 

Abraços.

Editado por LuisFelipe
Link para o comentário
Compartilhar em outros sites

  • 0

Então, colega.

 

Vá nessa linha da spell anterior:

 

doCreateMonster("headcaptor", position)

 

E digite o nome correto do monstro, que eu posso ter errado ou ele não existe no servidor.

 

Depois verei sua segunda magia.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

O nome está correto, esses erros estão aparecendo muito pouco agora, e quando aparece um aparece o outro também.

 

EDIT

 

Descobri que esses erros acontecem quando há algum tipo de field no chão (fire, energy, etc) e não consegue summonar em cima, dando esses 2 erros seguidos.

http://pastebin.com/MTVb43CN

 

EDIT2

 

Consegui concertar, o erro não era na spell e sim no bixo.

Quando a galera tentava usar a spell em cima de fields, ele não summonava pois o bixo não era imune a tal field, então eu mudei as imunidades dele e agora ele pode ser summonado em cima de fields sem dar erro, muito obrigado Oneshot, o único problema mesmo agora é na outra spell, teria como cencerta-lá também?

 

EDIT3

 

Estava navegando pelo fórum e achei a spell aqui feita/editada pelo membro Vodkart, segue ela:

 

local removeTime = 1 -- in minutes
local SummonName = "rat"
local HAVE_CLONE = 655370 --storage to know if you have clones or not
local arr = {
{
{0, 0, 0},
{0, 2, 0},
{0, 1, 0}
}
}
local function removeCreatures(cid, creature)
if not isCreature(cid) then return LUA_ERROR end
setPlayerStorageValue(cid, HAVE_CLONE, 0)
if isCreature(creature) == TRUE then
doRemoveCreature(creature)
end
end
function onTargetTile(cid, pos)
local creature = doSummonCreature(SummonName, pos)
doConvinceCreature(cid, creature)
addEvent(removeCreatures, removeTime*60*1000, cid, creature)
return TRUE
end

local combat = {}
for i = 1, 1 do
combat[i] = createCombatObject()
setCombatParam(combat[i], COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatArea(combat[i], createCombatArea(arr[i]))
_G["onTargetTile" .. i] = onTargetTile
setCombatCallback(combat[i], CALLBACK_PARAM_TARGETTILE, "onTargetTile" .. i)
end
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, HAVE_CLONE) >= 1 then
doPlayerSendCancel(cid, "Your "..SummonName.." has already been summoned.") return false
end
doCombat(cid, combat[1], var)
setPlayerStorageValue(cid, HAVE_CLONE, 1)
return true
end

 

 

Coloquei ela no servidor pra testar e vi que ela tem aquele mesmo erro da outra spell, então coloquei a função do Oneshot nela (isWalkable) e funcionou, não deu o erro, porém, não sei porque ela buga e não summona mais, fica dando a mensagem como se tivesse ainda tivesse summonado. Tem como arrumar?

 

Obrigado e Abraços!

Editado por LuisFelipe
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...