JU
dúvida

[Duvida/Pedido] Como fazer o monstro falar uma frase assim que usar um atk

Por juliok80, 14 de dez. de 2012 em Scripts

monstro
ataque
falar
magia
tibia
script
otserv
11
1.3k
juliok80J
14 de dezembro de 2012 às 10:37

Olá, estou criando um monstro novo e gostaria de adicionar uma fala assim que o monstro usar um ataque, dentro do arquivo do monstro existe o seguinte ataque:

 

 

<attack name="earth" interval="1000" chance="12" length="6" spread="3" min="-100" max="-150">

<attribute key="areaEffect" value="smallplants"/>

 

<voices> <voice sentence="exevo tera hur"/> </voices> <-- Linha que adicionei, achando que o monstro iria falar ao usar o ataque... porém sem sucesso.

 

</attack>

 

Alguém saberia me dizer se há algum atributo que eu possa colocar dentro da tag <attack>?

 

Ou então, alguém conseguiria fazer um script para tal ação!?

 

Agradeço desde que nasci!

 

Abraços!

SmiXS
14 de dezembro de 2012 às 12:42

Não intende nada. Explique melhor.

OneshotO
14 de dezembro de 2012 às 14:12

@SmiX

 

O dono do tópico quer que quando o monstro use uma magia, ele fale algo, como se fosse um jogador invocando uma magia qualquer? Entendeu agora?

 

@juliok80

 

Então, rapaz, não existe um método possível em Lua e nem opções no arquivo XML do monstro. Mas algumas edições nas sources podem simular algo parecido.

 

Talvez eu faça algo e crie um tópico.

 

Abraços.

juliok80J
14 de dezembro de 2012 às 14:38

@SmiX

 

O dono do tópico quer que quando o monstro use uma magia, ele fale algo, como se fosse um jogador invocando uma magia qualquer? Entendeu agora?

 

@juliok80

 

Então, rapaz, não existe um método possível em Lua e nem opções no arquivo XML do monstro. Mas algumas edições nas sources podem simular algo parecido.

 

Talvez eu faça algo e crie um tópico.

 

Abraços.

 

Você entendeu perfeitamente, obrigado!

 

Continuo aguardando alguma solução.

juliok80J
19 de dezembro de 2012 às 11:54

Poxa vida... quem poderá me ajudar?

 

Alma Bondosa says: Eu! O ???? Colorado!

 

rsrs...

 

Se ninguém se manifestar dentro de uma semana, creio que o que eu estou querendo fazer, não seja possível... o que me resta fazer é sentar e chorar. cry.gif

 

E obrigado pelas pessoas que tentaram me ajudar.

 

[]s

SmiXS
19 de dezembro de 2012 às 12:09

Quando for fazer uma magia coloque embaixo de "doCombat()" essas linhas:

 

        if isMonster(cid) then
           doCreatureSay(cid, ""..var.."", TALKTYPE_MONSTER)
        end

 

Ficando mais ou menos assim:

 

function onCastSpell(cid, var)
     doCombat(cid, combat, param)

        if isMonster(cid) then
           doCreatureSay(cid, ""..var.."", TALKTYPE_MONSTER)
        end
return true
end

juliok80J
22 de dezembro de 2012 às 00:31

Quando for fazer uma magia coloque embaixo de "doCombat()" essas linhas:

 

	 if isMonster(cid) then
		doCreatureSay(cid, ""..var.."", TALKTYPE_MONSTER)
	 end

 

Ficando mais ou menos assim:

 

function onCastSpell(cid, var)
  doCombat(cid, combat, param)

	 if isMonster(cid) then
		doCreatureSay(cid, ""..var.."", TALKTYPE_MONSTER)
	 end
return true
end

 

Olha, fiz o que você disse mas agora o monstro parou de usar a magia... Mas mesmo assim, MUITO obrigado por tentar me ajudar.

 

A versão do meu OT é 8.6 e o arquivo ficou assim, em data\spells\scripts\attack:

 

Esse é o código do exevo tera hur:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7)

local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)

function onCastSpell(cid, var)


[b]if isMonster(cid) then[/b]
[b]			doCreatureSay(cid, ""..var.."", TALKTYPE_MONSTER)[/b]
[b] end[/b]

return doCombat(cid, combat, var)
end

 

Por favor, se eu fiz alguma coisa de errado, me dê um tapa na cara e me diga o que devo fazer.

 

Valeu SmiX!

Editado Dezembro 22 por juliok80

OneshotO
22 de dezembro de 2012 às 01:18
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7)

local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)

function onCastSpell(cid, var)
   if isMonster(cid) then
       doCreatureSay(cid, "exevo tera hur", TALKTYPE_MONSTER)
   end

   return doCombat(cid, combat, var)
end

juliok80J
23 de dezembro de 2012 às 01:01

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7)

local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)

function onCastSpell(cid, var)
if isMonster(cid) then
	doCreatureSay(cid, "exevo tera hur", TALKTYPE_MONSTER)
end

return doCombat(cid, combat, var)
end

 

Aeeeeeeee... agora deu certo!

 

Valeu ai man, vou dar +rep primeiro pro SmiX e depois te dou +rep...

 

Feliz natal e um ótimo ano novo para todos!

 

CYA.

DinoAdminD
23 de dezembro de 2012 às 01:09

duvida senada.

topico reportado!

StigalS
23 de dezembro de 2012 às 09:47

Topico Movido