FL

[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body

Por FlamesAdmin, 25 de jun. de 2015 em Resolvidos

resolvido
19
3.9k
25 de junho de 2015 às 22:47

Boa noite, gostaria de uma ajudinha para fazer esses 2 moves do PxG

 

Iron Body: ao usar essa passiva, ele não toma dano por x segundos e tem y chance de ativá-la.

YhN32Oc.gif

 

 

Heavy Slam: ao usar Heavy Slam, o oponente que estiver na área, é arremessado 2 sqm atrás.

fkACbqu.gif

zipter98Z
25 de junho de 2015 às 22:55

1ª spell:

Isso é basicamente um Iron Defense, só que em forma de passiva, não é?

2ª spell:

Saberia dizer se esse "pulo" do pokémon é um effect, outfit ou o pokémon literalmente pula? E os oponentes na área são logo teleportados para trás ou são empurrados?

25 de junho de 2015 às 23:01

Sim

Ele pula literalmente, são empurrados.

 

PS: no inicio da 2ª gif, ele estava com o Iron Body, não tem nada a ver com o Heavy Slam.

Editado Junho 25 por FlamesAdmin

zipter98Z
25 de junho de 2015 às 23:15

O Iron Body pode ser ativado quando, exatamente? Parece ser diferente das outras passivas, já que no segundo gif ele foi ativado sem o Bronzong receber dano.

25 de junho de 2015 às 23:16

Quando solta o Bronzong, ela ativa, e também ativa as vezes quando esta em hunt.

zipter98Z
26 de junho de 2015 às 16:35

Iron Body:

exp2.0.lua:

Em baixo de:

if damageCombat == GROUNDDAMAGE then
    if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
        valor = 0                      
    end
end

coloque:

if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then
    doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000)
    setPlayerStorageValue(cid, 9658783, 1)
    setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown)
    addEvent(function()
        if isCreature(cid) then
            doRemoveCondition(cid, CONDITION_OUTFIT)
            setPlayerStorageValue(cid, 9658783, -1)
        end
    end, ironBody.duration * 1000)
end
Em goback.lua (actions), abaixo de:
doCreatureSay(cid, mgo, TALKTYPE_SAY)
coloque:
if pokename == ironBody.name then
    doSetCreatureOutfit(pk, {lookType = ironBody.outfit}, ironBody.duration * 1000)
    setPlayerStorageValue(pk, 9658783, 1)
    setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown)
    addEvent(function()
        if isCreature(pk) then
            doRemoveCondition(pk, CONDITION_OUTFIT)
            setPlayerStorageValue(pk, 9658783, -1)
        end
    end, ironBody.duration * 1000)
end
Depois, em configuration.lua:
ironBody = {
    name = "Bronzong",    --Nome do pokémon.
    outfit = xxx,         --Outfit.
    duration = 5,         --Duração.
    chance = 35,          --Chance, em %, de ativar a passiva.
    cooldown = 15,        --Cooldown para usá-la novamente.
}
E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG?
Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?).

Editado Junho 26 por zipter98

nociamN
26 de junho de 2015 às 17:50

 

Iron Body:

exp2.0.lua:

Em baixo de:

if damageCombat == GROUNDDAMAGE then
    if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
        valor = 0                      
    end
end

coloque:

if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then
    doSetCreatureOutfit(cid, ironBody.outfit, ironBody.duration * 1000)
    setPlayerStorageValue(cid, 9658783, 1)
    setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown)
    addEvent(function()
        if isCreature(cid) then
            doRemoveCondition(cid, CONDITION_OUTFIT)
            setPlayerStorageValue(cid, 9658783, -1)
        end
    end, ironBody.duration * 1000)
end
Em goback.lua (actions), abaixo de:
doCreatureSay(cid, mgo, TALKTYPE_SAY)
coloque:
if pokename == ironBody.name then
    doSetCreatureOutfit(pk, ironBody.outfit, ironBody.duration * 1000)
    setPlayerStorageValue(pk, 9658783, 1)
    setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown)
    addEvent(function()
        if isCreature(pk) then
            doRemoveCondition(pk, CONDITION_OUTFIT)
            setPlayerStorageValue(pk, 9658783, -1)
        end
    end, ironBody.duration * 1000)
end
Depois, em configuration.lua:
ironBody = {
    name = "Bronzong",    --Nome do pokémon.
    outfit = xxx,         --Outfit.
    duration = 5,         --Duração.
    chance = 35,          --Chance, em %, de ativar a passiva.
    cooldown = 15,        --Cooldown para usá-la novamente.
}
E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG?
Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?).

 

Nao e um efeito tem outras magias que faz isso exemplo o Earthquake o pokemon atacado que fica tando o pulo.

26 de junho de 2015 às 17:55

Como o @nociam disse, tem outras magias que o pokemon fica 'pulando'.

No Earthquake, o oponente que está na área dele que fica 'pulando'.

Se for possível fazer esse 'pulo', td bem, mais se não for, só deixe um pequeno delay para que o efeito saia.

 

#Edit

Quando solta o Bronzong.

[26/06/2015 18:35:20] [Error - Action Interface] 
[26/06/2015 18:35:20] data/actions/scripts/goback.lua:onUse
[26/06/2015 18:35:20] Description: 
[26/06/2015 18:35:20] attempt to index a number value
[26/06/2015 18:35:20] stack traceback:
[26/06/2015 18:35:20] 	[C]: in function 'doSetCreatureOutfit'
[26/06/2015 18:35:20] 	data/actions/scripts/goback.lua:257: in function <data/actions/scripts/goback.lua:11>

Quando os selvagens atacam ele:

[26/06/2015 18:36:16] [Error - CreatureScript Interface] 
[26/06/2015 18:36:16] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
[26/06/2015 18:36:16] Description: 
[26/06/2015 18:36:16] attempt to index a number value
[26/06/2015 18:36:16] stack traceback:
[26/06/2015 18:36:16] 	[C]: in function 'doSetCreatureOutfit'
[26/06/2015 18:36:16] 	data/creaturescripts/scripts/exp2.0.lua:558: in function <data/creaturescripts/scripts/exp2.0.lua:65>

Editado Junho 26 por FlamesAdmin

nociamN
26 de junho de 2015 às 18:40

Ta uma olhada de como e o sistema

http://forum.pokexgames.com/threads/112567-Novos-sistemas-para-o-Patch-do-dia-12-06

zipter98Z
26 de junho de 2015 às 19:11

Posso ver como ficou a configuração da tabela? E ela está em configuration.lua, certo?

Sobre o pulo, é como eu disse: aquele item terá de ser criado.

26 de junho de 2015 às 19:45

Posso ver como ficou a configuração da tabela? E ela está em configuration.lua, certo?

Sobre o pulo, é como eu disse: aquele item terá de ser criado.

Sim, coloquei em configutarion

ironBody = {
    name = "Bronzong",    --Nome do pokémon.
    outfit = 1554,         --Outfit.
    duration = 5,         --Duração.
    chance = 35,          --Chance, em %, de ativar a passiva.
    cooldown = 15,        --Cooldown para usá-la novamente.
}

Só me corrige, eu coloquei ela láááá embaixo perto das passivesChances = {, esta certo ?

zipter98Z
26 de junho de 2015 às 20:18

Ops, agora vi o erro. Falta de atenção minha, desculpe.

Corrigido.

26 de junho de 2015 às 20:37

Agora sim. Sem erro algum agora :D

2jIIkR6.gif

 

Heavy Slam

Me diz o que tem que ser feito nesse 'item invisível' para o oponente dar esse 'pulo'.

Editado Junho 26 por FlamesAdmin

zipter98Z
26 de junho de 2015 às 20:59

As configurações e atributos no programa, não sei dizer. Entretanto, pegue como base um banco (porém, neste caso, a sprite será "invisível"). O necessário é que o jogador possa passar por cima do item e sofrer uma elevação.

Editado Junho 26 por zipter98

29 de junho de 2015 às 15:40

As configurações e atributos no programa, não sei dizer. Entretanto, pegue como base um banco (porém, neste caso, a sprite será "invisível"). O necessário é que o jogador possa passar por cima do item e sofrer uma elevação.

Ok irei fazer aqui.

@zipter

Nada ainda do código?