Ir para conteúdo
  • 0

nbb147

Pergunta

galera eu estou com um script de uma spell que ela muda a vocação do player e muda a outfit, só tem um problema ela não esta mudando o outfit, já tentei mais só conheço uma função que transforma um player, que é doSetCreatureOutfit,mais essa função não esta funcionando, alguém ajuda ai.

 

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

 

function onCastSpell(cid, var)

if getPlayerVocation(cid) == 37 then

if getPlayerLevel(cid) >= 40 then

doPlayerSetVocation(cid, 65)

doSetCreatureOutfit(cid,355,-1)

doSendMagicEffect(getPlayerPosition(cid), 70)

else

doPlayerSendCancel(cid, "VocÊ não tem level nescessario para se transformar.")

doSendMagicEffect(getPlayerPosition(cid), 70)

end

 

elseif getPlayerVocation(cid) == 37 then

if getPlayerLevel(cid) >= 80 then

doPlayerSetVocation(cid, 65)

doSetCreatureOutfit(cid,356,-1)

doSendMagicEffect(getPlayerPosition(cid), 70)

else

doPlayerSendCancel(cid, "VocÊ não tem level nescessario para se transformar.")

doSendMagicEffect(getPlayerPosition(cid), 70)

end

 

elseif getPlayerVocation(cid) == 37 then

if getPlayerLevel(cid) >= 120 then

doPlayerSetVocation(cid, 65)

doSetCreatureOutfit(cid,357,-1)

doSendMagicEffect(getPlayerPosition(cid), 70)

else

doPlayerSendCancel(cid, "VocÊ não tem level nescessario para se transformar.")

doSendMagicEffect(getPlayerPosition(cid), 70)

end

 

elseif getPlayerVocation(cid) == 39 then

if getPlayerLevel(cid) >= 160 then

doPlayerSetVocation(cid, 65)

doSetCreatureOutfit(cid,358,-1)

doSendMagicEffect(getPlayerPosition(cid), 70)

else

doPlayerSendCancel(cid, "VocÊ não tem level nescessario para se transformar.")

doSendMagicEffect(getPlayerPosition(cid), 70)

end

 

else

doPlayerSendCancel(cid, "Transformado.")

doSendMagicEffect(getPlayerPosition(cid), 70)

end

end

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

Posts Recomendados

  • 0

Dei uma arrumada no seu script, já vi o erro.

 

function onCastSpell(cid, var)
a = {
[37] = {level = 40, newvoc = 65, outfit = 355, eff = 70},
[38] = {level = 80, newvoc = 65, outfit = 356, eff = 70},
[39] = {level = 120, newvoc = 65, outfit = 357, eff = 70},
[40] = {level = 160, newvoc = 65, outfit = 358, eff = 70},
}

b = a[getPlayerVocation(cid)]

if getPlayerLevel(cid) < b.level then
doPlayerSendCancel(cid, "Você não tem o level necessário para se transformar.") return false
end

doSetCreatureOutfit(cid, {lookType = b.outfit}, -1)
doPlayerSetVocation(cid, b.newvoc)
doSendMagicEffect(getCreaturePosition(cid), b.eff)
doPlayerSendCancel(cid, "Transformado.")
return true
end

 

Configurando a tabela:

a = {
[37] = {level = 40, newvoc = 65, outfit = 355, eff = 70},
[38] = {level = 80, newvoc = 65, outfit = 356, eff = 70},
[39] = {level = 120, newvoc = 65, outfit = 357, eff = 70},
[40] = {level = 160, newvoc = 65, outfit = 358, eff = 70},
}

 

Traduzindo:

 

[iD da Vocação] = {level necessário, id da vocação que ficará, outfit, efeito},

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

  • 0

da esse erro:

 

 

20/12/2012 16:51:57] [Error - Spell Interface]

[20/12/2012 16:51:57] data/spells/scripts/shikara/transform.lua:onCastSpell

[20/12/2012 16:51:57] Description:

[20/12/2012 16:51:57] data/spells/scripts/shikara/transform.lua:11: attempt to index global 'b' (a nil value)

[20/12/2012 16:51:57] stack traceback:

[20/12/2012 16:51:57] data/spells/scripts/shikara/transform.lua:11: in function <data/spells/scripts/shikara/transform.lua:1>

Link para o comentário
Compartilhar em outros sites

  • 0

Tó:

 

function onCastSpell(cid, var)
a = {
[37] = {level = 40, newvoc = 65, outfit = 355, eff = 70},
[38] = {level = 80, newvoc = 65, outfit = 356, eff = 70},
[39] = {level = 120, newvoc = 65, outfit = 357, eff = 70},
[40] = {level = 160, newvoc = 65, outfit = 358, eff = 70},
}

b = a[getPlayerVocation(cid)]

if not b then
doPlayerSendCancel(cid, "Você não pode se transformar.") return false
elseif getPlayerLevel(cid) < b.level then
doPlayerSendCancel(cid, "Você não tem o level necessário para se transformar.") return false
end

doSetCreatureOutfit(cid, {lookType = b.outfit}, -1)
doPlayerSetVocation(cid, b.newvoc)
doSendMagicEffect(getCreaturePosition(cid), b.eff)
doPlayerSendCancel(cid, "Transformado.")
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

mais ta configurada olha como ficou minha tabela:

 

 

 

[37] = {level = 40, newvoc = 64, outfit = 354, eff = 73},

[38] = {level = 80, newvoc = 65, outfit = 355, eff = 73},

[39] = {level = 120, newvoc = 66, outfit = 356, eff = 73},

[40] = {level = 160, newvoc = 67, outfit = 357, eff = 73},

Link para o comentário
Compartilhar em outros sites

  • 0

Claro, é só adicionar mais linhas na tabela:

 

[37] = {level = 40, newvoc = 64, outfit = 354, eff = 73},
[38] = {level = 80, newvoc = 65, outfit = 355, eff = 73},
[39] = {level = 120, newvoc = 66, outfit = 356, eff = 73},
[40] = {level = 160, newvoc = 67, outfit = 357, eff = 73},
[41] = {level = 200, newvoc = 68, outfit = 358, eff = 73},
[42] = {level = 240, newvoc = 69, outfit = 359, eff = 73},
[43] = {level = 280, newvoc = 70, outfit = 360, eff = 73},

 

E assim em diante.

Link para o comentário
Compartilhar em outros sites

  • 0

mais quando eu repito a vocação que vai usar, ele não se transforma.. exemplo abaixo:

 

 

 

[37] = {level = 40, newvoc = 64, outfit = 354, eff = 73},

aqui --->[38] = {level = 80, newvoc = 66, outfit = 356, eff = 73},

aqui --->[38] = {level = 120, newvoc = 65, outfit = 355, eff = 73},

[39] = {level = 160, newvoc = 67, outfit = 357, eff = 73},

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...