Ir para conteúdo
  • 0

Quest que add uma magia nova pro player!


totonho18

Pergunta

É o seguinte,o player faz uma quest,clica no chest,e a recompensa é uma nova magia.

 

 

Clicou no chest!

 

aparece a msg!

 

"Parabéns ganhaste autorização para usar a magia Adura Gran!"

 

e aí o player poderá usar essa magia!

 

2 REP+

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Porque o player não ganha um item que ao clicar ganharia a spell? Não seria mais fácil?

Acredito que seria a mesma, coisa, uma action, é só colocar uniqueID no bau dai, mesma coisa no item, ... mas vou ver se consigo fazer

Link para o comentário
Compartilhar em outros sites

  • 0

Essa aqui é a quest, normal: cria questSpell.lua em data/actions/scripts


function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, 281921) < 1 then
        doPlayerSetStorageValue(cid, 281921, 1)
        doPlayerSendTextMessage(cid, 22, "Voce ganhou uma nova magia!")
    else
        doPlayerSendCancel(cid, "Voce ja pegou sua magia.")
    end
    return true
end

tag no actions.xml

<action uniqueid="7702" script="quests/questSpell.lua"/>

daí bota uniqueID 7702 na quest

 

E coloca isso no arquivo.lua da sua magia, vai ter uma function onCastSpell daí vc substitui ela por essa:


function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, 281921) == 1 then
        return doCombat(cid, combat, {pos = getCreaturePosition(cid), type=2})
    else
        doPlayerSendCancel(cid, "Voce precisa completar a quest para usar essa magia.")
        return false
    end
end

O resto da magia vc deixa igual

 

Mais facil você setar para que ele possa aprendar a usar a spell.

Link para o comentário
Compartilhar em outros sites

  • 0

 

 

 

Essa aqui é a quest, normal: cria questSpell.lua em data/actions/scripts


function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, 281921) < 1 then
        doPlayerSetStorageValue(cid, 281921, 1)
        doPlayerSendTextMessage(cid, 22, "Voce ganhou uma nova magia!")
    else
        doPlayerSendCancel(cid, "Voce ja pegou sua magia.")
    end
    return true
end

tag no actions.xml

<action uniqueid="7702" script="quests/questSpell.lua"/>

daí bota uniqueID 7702 na quest

 

E coloca isso no arquivo.lua da sua magia, vai ter uma function onCastSpell daí vc substitui ela por essa:


function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, 281921) == 1 then
        return doCombat(cid, combat, {pos = getCreaturePosition(cid), type=2})
    else
        doPlayerSendCancel(cid, "Voce precisa completar a quest para usar essa magia.")
        return false
    end
end

O resto da magia vc deixa igual

 

Mais facil você setar para que ele possa aprendar a usar a spell.

 

 

 

 

Não sabia que tinha função pra isso.... Acabei de procurar e achei doPlayerLearnInstantSpell(cid, name)

 

@TOPIC Nem precisa mudar nada no magia.lua, e a quest fica assim:


local magia = 'Healing' -- Nome da magia

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, 281921) < 1 then
        doPlayerSetStorageValue(cid, 281921, 1)
        doPlayerSendTextMessage(cid, 22, "Voce ganhou uma nova magia!")
        doPlayerLearnInstantSpell(cid, magia)
    else
        doPlayerSendCancel(cid, "Voce ja pegou sua magia.")
    end
    return true
end

E na tag da sua magia, vc coloca needlearn="1" depois do exhaustion="1000" por exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

bom,eu estava totalmente perdido,mas agora já sei o caminho!

Amoeba13 e caotic,muito obrigado a ajuda de vcs foram muito uteis pra mim,como os 2 me ajudaram.

1 REP pra kda 1

 

OBS o do Amoeba é mais simples,mas encontrei outra utilidade pro seu metodo Caotic,Muito obrigado aos 2

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

×
×
  • Criar Novo...