MO

[Resolvido] [Pedido] Script Para Pda

Por Morigan1, 14 de set. de 2015 em Resolvidos

pda
script
resolvido
otserv
9
2.4k
Morigan1M
14 de setembro de 2015 às 19:06

Ola Xtibianos Hoje Queria Pedir Ajuda em um breve Script Que eu não faço a minima ideia de como faze-lo Segue a gif.

kfj.gif

 

No Caso Pra ficar Animado são usadas 3 outfits e elas ficam trocando constantemente

 

zipter98Z
15 de setembro de 2015 às 19:10
Melhor resposta

Um amigo me pediu este sisteminha alguns dias atrás. Como poderá ver, é algo bem simples. Entretanto, ele pode conflitar com outras mudanças de outfit que o pokémon venha sofrer. Para evitar isso, você terá de fazer algumas mudanças adicionais, explicadas adiante.

Primeiramente, em algum arquivo da lib:

outfits_order = {
    --["nome_do_pokemon"] = {outfit1, outfit2, outfit3, ...},
}
        
function doTradeOutfit(cid, index)             
    if not isSummon(cid) then return true end
    local outfit = outfits_order[getCreatureName(cid)]
    if not outfit[index] then index = 1 end
    doSetCreatureOutfit(cid, {lookType = outfit[index]}, -1)
    addEvent(doTradeOutfit, 200, cid, index + 1)
end
As outfits devem ser configuradas na ordem em que serão trocadas.
O resto dependerá de onde a função será chamada. Se a animação do pokémon começar logo após ele ter sido chamado da pokébola, então, em goback.lua (data/actions/scripts):
Abaixo de:
local pk = getCreatureSummons(cid)[1]
if not isCreature(pk) then return true end
Coloque:
if outfits_order[getCreatureName(pk)] then
    doTradeOutfit(pk, 1)
end
Se formos seguir a lógica da gif demonstrada, a função deveria ser chamada após a mega evolução, o que dependeria de como o sistema usado por você foi escrito. Usando o meu, o processo seria o seguinte:
Em pokemon moves.lua (data/lib), no código da spell Mega Evolution:
Abaixo de:
adjustStatus(newPoke, ball, true, false)
coloque:
if outfits_order[getCreatureName(newPoke)] then
    doTradeOutfit(newPoke, 1)
end
Caso os pokémons que façam parte do sistema de mudança constante de outfit possam ter sua looktype alterada de alguma maneira durante o jogo (por exemplo, um Mega Charizard X usando Outrage ou uma Rapidash usando Blue Flames), você deverá fazer algumas pequenas mudanças.
Troque a função que passei anteriormente por essa:
function doTradeOutfit(cid, index)             
    if not isSummon(cid) then return true end
    local outfit = outfits_order[getCreatureName(cid)]
    if not getCreatureCondition(cid, CONDITION_OUTFIT) or isInArray(outfit, getCreatureOutfit(cid).lookType) then
        if not outfit[index] then index = 1 end
        doSetCreatureOutfit(cid, {lookType = outfit[index]}, -1)
    end
    addEvent(doTradeOutfit, 200, cid, index + 1)
end
Depois, no código de todos os possíveis fatores que possam mudar a outfit dos pokémons participantes do sistema, acima da linha responsável pela alteração na looktype:
doSetCreatureOutfit(...)
Coloque isso:
if getCreatureCondition(cid, CONDITION_OUTFIT) then doRemoveCondition(cid, CONDITION_OUTFIT) end
Sinceramente, acho que você só terá de fazer isso em pouquíssimos códigos.

Por gentileza, poste um feedback do sistema. Assim, saberei se devo ou não mover o tópico.

Editado Setembro 15 por zipter98

16 de setembro de 2015 às 17:05

Testado,funcionou perfeitamente em pda 1.2 e 1.9!

zipter98Z
16 de setembro de 2015 às 19:33

Tópico movido para dúvidas / pedidos resolvidos.

nociamN
17 de setembro de 2015 às 00:03

Tipo como usar esse sistema para ser usado assim quanto pokemon ta parado outfit normal ai ao andar muda?

17 de setembro de 2015 às 01:16

só parado que ele muda outfit, é como se tivesse as sprites juntas.

17 de setembro de 2015 às 01:20

to tentando loga vamo ve

 

1 ano depois...
JosegvbJ
17 de novembro de 2016 às 13:17

como faz pra colocar pro os bixos selvagems tb?

1 ano depois...
FrenviusF
29 de novembro de 2017 às 14:16
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.