- 0
suporte scripts (resolvido) Falar ao conjurar magia
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
- 2 respostas
- 780 visualizações
-
- 13 respostas
- 11617 visualizações
-
- 0 respostas
- 1651 visualizações
-
- 20 respostas
- 11857 visualizações
-
- 39 respostas
- 14397 visualizações
-
Pergunta
diarmaint 19
Galera, meu servidor não fala o nome da magia quando uso ela, ele não pega o instant name do spells.xml..
estava observando que dentro de uma magia aqui, tenho uma função que aparece uma frase quando fala a magia,
function hats(cid)
if getPlayerLookDir(cid) == 1 then
doCombat(cid, combat1, numberToVariant(cid))
doCombat(cid, combat10, numberToVariant(cid))
doCombat(cid, combat100, numberToVariant(cid))
doPlayerSay(cid, 'teste1', TALKTYPE_ORANGE_1)
elseif getPlayerLookDir(cid) == 2 then
doCombat(cid, combat4, numberToVariant(cid))
doCombat(cid, combat40, numberToVariant(cid))
doCombat(cid, combat400, numberToVariant(cid))
doPlayerSay(cid, 'teste2!', TALKTYPE_ORANGE_1)
elseif getPlayerLookDir(cid) == 3 then
doCombat(cid, combat2, numberToVariant(cid))
doCombat(cid, combat20, numberToVariant(cid))
doCombat(cid, combat200, numberToVariant(cid))
doPlayerSay(cid, 'teste3!', TALKTYPE_ORANGE_1)
elseif getPlayerLookDir(cid) == 0 then
doCombat(cid, combat3, numberToVariant(cid))
doCombat(cid, combat30, numberToVariant(cid))
doCombat(cid, combat300, numberToVariant(cid))
doPlayerSay(cid, 'teste3!', TALKTYPE_ORANGE_1)
end
end
porém essa função só tem em magia wave, e nela pra cada lado dá pra configurar uma fala diferente, quero colocar isso em poder que seja target
então tentei colocar parte dela depois do ultimo onCastSpell
ficando assim
function onCastSpell(cid, var)
doPlayerSay(cid, 'teste1!', TALKTYPE_ORANGE_1)
local waittime = 7 -- Tempo de exhaustion
local storage = 115818
if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, 23, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
até aí dá certo, quando uso a magia ele fala "teste1!" só que a magia em exhaust continua falando se eu apertar o botão pra soltar ela, tem como colocar essa função pra que o personagem só fale "teste1" quando eu realmente solte a magia?
EDIT------
Acho que consegui aqui galera, depois de muitas tentativas,
Antes do ultimo function onCastSpell(cid, var)
Eu adicionei um novo evento só com a função da fala
function dmark(cid) doPlayerSay(cid, 'fala...!', TALKTYPE_ORANGE_1) end
e antes do ultimo
return true OU return doCombat
addEvent(dmark,0,cid)
Exemplo de spell target.
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 131)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.5, 0, -5.6, 0)
local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -200)
setConditionFormula(condition, -1.9, 0, -1.9, 0)
setCombatCondition(combat, condition)
function dmark(cid)
doPlayerSay(cid, 'Dynamic Marking!', TALKTYPE_ORANGE_1)
end
function onCastSpell(cid, var)
local waittime = 3 -- Tempo de exhaustion
local storage = 115824
if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, 23, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
exhaustion.set(cid, storage, waittime)
addEvent(dmark,0,cid)
return doCombat(cid, combat, var)
end
Não sei se é a forma mais certa de fazer (Se alguém souber uma maneira mais fácil de fazer isso ajuda aí) isso, não ta dando nenhum problema na distro, tirando o trabalho que é adicionar cada event diferente em cada spell se não a fala se repete.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados