Ir para conteúdo
  • 0

[Pedido] Ajuda Com Spell, Para Summonar Apenas Um Monstro.


pbottrinks

Pergunta

Tipo do script: SPELL

Protocolo (versão do Tibia): 8.60

Servidor utilizado: TFS

Nível de experiência: MÉDIO

Adicionais/Informações:

Bom, abaixo irei mostrar o Script da Spell, ela é uma spell de summon, é arrumadinha e tal, mas tem um problema, pode summonar mais de um.

Eu queria que assim, enquanto o monstro tiver vivo, nao possa summonar outro, assim que o mosntro desaparecer, o player ja pode voltar a summonar.

Se puder colocar a seguinte mensagem: Você já fez seu Cyber Protector.

Conto com a colaboração de vocês meus amigos.

 

 

 

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 = 30.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)

doCreatureAddMana(cid, -1500)

doConvinceCreature(cid, creature)

addEvent(removeCreatures, removeTime * 3000, 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

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

tenta assim

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 = 30.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)
doCreatureAddMana(cid, -1500)
doConvinceCreature(cid, creature)
addEvent(removeCreatures, removeTime * 3000, 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)
m = {}
s = getCreatureSummons(cid)
for k = 1 , #s do
table.insert(m, getCreatureName(s[k])
end
if table.find(m, ""protector" ) then
doPlayerSendCancel(cid, "Você já fez seu Cyber Protector.")
return false
end
return doCombat(cid, combat, var)
end

Link para o comentário
Compartilhar em outros sites

  • 0

printo algum erro no comsole?

de qualquer jeito temta assim

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 = 30.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)
doCreatureAddMana(cid, -1500)
doConvinceCreature(cid, creature)
addEvent(removeCreatures, removeTime * 3000, 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)
m = {}
s = getCreatureSummons(cid)
for k = 1 , #s do
table.insert(m, getCreatureName(s[k])
end
if table.find(m, ""protector" ) then
doPlayerSendCancel(cid, "Você já fez seu Cyber Protector.")
return false
else
return doCombat(cid, combat, var)
end
end

Link para o comentário
Compartilhar em outros sites

  • 0

editado

 

tinha uma aspas(") a mais

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 = 30.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)
doCreatureAddMana(cid, -1500)
doConvinceCreature(cid, creature)
addEvent(removeCreatures, removeTime * 3000, 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)
m = {}
s = getCreatureSummons(cid)
for k = 1 , #s do
table.insert(m, getCreatureName(s[k]))
end
if table.find(m, "protector" ) then
doPlayerSendCancel(cid, "Você já fez seu Cyber Protector.")
return false
else
return doCombat(cid, combat, var)
end
end

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

  • 0

o problema pode ser que o nome da tag do bixo pode ser diferente do nome dele

exemplo:so subwat absolute tem um bixo que chama vanpire cash,mas a tag dele é eclipse,dai pra sumona é /m eclipse

Link para o comentário
Compartilhar em outros sites

  • 0

Nem o nome ta igual, mas vou ver no config lua.

Se nao der, ficarei mt triste ..

 

 

[EDIT]

 

Continua dando pra summonar mais de um .

Me ajudem, por favor.

Nem a mensagem ta aparecendo. (VOCE JA FEZ~).

Fico grato se conseguirem.

Claro, reputareii.

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

  • 0

tenta assim

function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doSummonCreature("protector", position))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}
local removeTime = 30.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)
doCreatureAddMana(cid, -1500)
doConvinceCreature(cid, creature)
addEvent(removeCreatures, removeTime * 3000, 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)
m = {}
s = getCreatureSummons(cid)
for k = 1 , #s do
table.insert(m, getCreatureName(s[k]))
end
if table.find(m, "protector" ) then
doPlayerSendCancel(cid, "Você já fez seu Cyber Protector.")
return false
else
return doCombat(cid, combat, var)
end
end

Link para o comentário
Compartilhar em outros sites

  • 0

Continua dando pra summonar mais de um.

Creio que não tem geito, mas obrigada pelo esforço!

REP+

Atenciosamente, Jacques

 

[ EDIT ]

 

Aí Parceiro, arrumei uma melhorsinha aqui.

Ela summona só um e tal.

Mas quando vc loga, ela flaa: Você já fez o Protector.

ve se consegue me ajudar

 

local removeTime = 1.0 --time to remove the clones

local mana = 1000

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)

setPlayerStorageValue(cid, HAVE_CLONE, 0)

if isCreature(creature) == TRUE then

doRemoveCreature(creature)

end

end

 

function onTargetTile(cid, pos)

local creature = doSummonCreature("protector", pos)

doCreatureAddMana(cid, -2000)

doCreatureSay(cid, "Utevo Aura", TALKTYPE_ORANGE_1)

doConvinceCreature(cid, creature)

addEvent(removeCreatures, removeTime * 30000, cid, creature)

return TRUE

end

 

local combat = {}

for i = 1, 1 do

combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF)

setCombatArea(combat, createCombatArea(arr))

_G["onTargetTile" .. i] = onTargetTile

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile" .. i)

end

 

function onCastSpell(cid, var)

local level = getPlayerLevel(cid)

if getPlayerStorageValue(cid, HAVE_CLONE) < 1 then

if level > 350 then

doCombat(cid, combat[1], var)

else

doCombat(cid, combat[1], var)

end

setPlayerStorageValue(cid, HAVE_CLONE, 1)

else

doPlayerSendCancel(cid, "Voce ja fez o Crystal Protector.")

end

end

 

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

  • 0

Não apareceu nenhum erro no Console.

Porém ainda aparece. Você já fez o Cyber Protector.

Oq será que deu errado?

 

[EDIT]

QUANDO COLOQUEI ISSO. MEU LOGIN.LUA BUGOU TODO ;S

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

×
×
  • Criar Novo...