Ir para conteúdo

Posts Recomendados

  Em 13/12/2016 em 02:31, zipter98 disse:

Teoricamente, o auto ataque está dando dano até essa parte. Só estranhei um pouco o fato do valor não mudar depois de multiplicado pelo ataque do pokémon, mas no Pidgeot o mesmo aconteceu e houve dano de qualquer jeito.

 

Apenas para confirmar, novamente: enquanto o Earthquake está ativo, o auto ataque do Crystal Onix não causa dano ao Pidgeot, certo? Depois, volta ao normal?

Isso acontece apenas com pokémons do elemento voador? Ou, por exemplo, com uma Victreebel o mesmo acontece?

Se o melee, de fato, se anular durante o Earthquake apenas contra pokémons do elemento voador, a efetividade entre eles de algum jeito está relacionada (o que provavelmente entraria na função getEffectvineCombat).

Expand  

 

enquanto o Quake esta ativo melee "se torna ground" e nao bate, apos finalizar o melee NAO BATE mais dano, SÓ se outro ataque tipo iron ou rock for ussado.

como eu disse anteriormente de algum jeito o Melee se torna do mesmo elemento do ultimo ataque, entao usando quake deixa o melee em ground ai nao bate

 

mesma coisa com buzz em ground, se voce usa algum cd electric o melee para de bater pq se torna electric entao pra arrumar é só usar outra cd de outro tipo ou tirar e colocar o poke novamente

 

lembrando q o pidgeot tb bate melee enquanto estou atacando entao se tem algum melee ai, é do pidgeot só o primeiro seria do c.o pois esperei bater 1x melee pra ativar o quake

  Mostrar conteúdo oculto

 

 

function getEffectvineCombat(cid, attacker, value)

  Mostrar conteúdo oculto

 

POREM pelo q me falaram na DxP nao é usada essa tabela mas sim essa:

function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos

  Mostrar conteúdo oculto

 

Editado por Josegvb

function getEffectvineCombat(cid, attacker, value)

function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos

 

  Mostrar conteúdo oculto

 

Ah, agora que você disse que os auto ataques imprimidos eram do Pidgeot me esclareceu algumas coisas.

Dessa vez, reuni algumas informações importantes que deixei passar. Suponho que serão as últimas que irei precisar para começar a trabalhar numa correção.

Você substitui toda aquela parte anterior por essa:

print("Entrando no escopo...")print("Valor da storage: "..(tonumber(spellNameFromAttacker) and "melee" or spellNameFromAttacker))print("Pokemon atacante: "..getCreatureName(attacker))print("Pokemon defensor: "..getCreatureName(cid))if(combat == 128 or combat == 1) and getPlayerStorageValue(attacker, 21102) == -1 then -- ataque basico    print("Entrando no escopo de MELEE...")    doSendMagicEffect(getThingPos(cid), 3)    print("Value antes de getEffectvineCombat: "..value)    value = getEffectvineCombat(cid, attacker, value)    print("Value depois de getEffectvineCombat: "..value)    if value == 0 then         return false    else        value = value * getOffense(attacker) -- buff ataque system         local name = doCorrectString(getCreatureName(attacker))        if pokes[name] and pokes[name].level <= 5 and value ~= 0 then             value = -math.random(pokes[name].offense, pokes[name].offense+5)        end        print("Dano fica: "..value)    endelse -- magia    print("Entrando no escopo de MAGIA...")    value = getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- checagem de efetividades de magia    if value == 0 then         return false    else        value = value * (1 + getSpecialAttack(attacker) / 100)    end    print("Valor final: "..value)end	

Use novamente a combinação Earthquake + melee.

 

Novamente, você pode tirar o:

print(combat)

se quiser. O resultado imprimido sempre será o mesmo, pelo que tudo indica.

 

PS: Teoricamente, getEffectvineCombat é sim usada no escopo do melee. getEffectvineSpell é usada na fórmula do dano da spell.

Editado por zipter98
  Em 13/12/2016 em 21:53, zipter98 disse:

Ah, agora que você disse que os auto ataques imprimidos eram do Pidgeot me esclareceu algumas coisas.

Dessa vez, reuni algumas informações importantes que deixei passar. Suponho que serão as últimas que irei precisar para começar a trabalhar numa correção.

Você substitui toda aquela parte anterior por essa:

print("Entrando no escopo...")print("Valor da storage: "..(tonumber(spellNameFromAttacker) and "melee" or spellNameFromAttacker))print("Pokemon atacante: "..getCreatureName(attacker))print("Pokemon defensor: "..getCreatureName(cid))if(combat == 128 or combat == 1) and getPlayerStorageValue(attacker, 21102) == -1 then -- ataque basico    print("Entrando no escopo de MELEE...")    doSendMagicEffect(getThingPos(cid), 3)    print("Value antes de getEffectvineCombat: "..value)    value = getEffectvineCombat(cid, attacker, value)    print("Value depois de getEffectvineCombat: "..value)    if value == 0 then         return false    else        value = value * getOffense(attacker) -- buff ataque system         local name = doCorrectString(getCreatureName(attacker))        if pokes[name] and pokes[name].level <= 5 and value ~= 0 then             value = -math.random(pokes[name].offense, pokes[name].offense+5)        end        print("Dano fica: "..value)    endelse -- magia    print("Entrando no escopo de MAGIA...")    value = getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- checagem de efetividades de magia    if value == 0 then         return false    else        value = value * (1 + getSpecialAttack(attacker) / 100)    end    print("Valor final: "..value)end	

Use novamente a combinação Earthquake + melee.

 

Novamente, você pode tirar o:

print(combat)

se quiser. O resultado imprimido sempre será o mesmo, pelo que tudo indica.

 

PS: Teoricamente, getEffectvineCombat é sim usada no escopo do melee. getEffectvineSpell é usada na fórmula do dano da spell.

Expand  

 

blz retirei o print (combat)

deixei o c.o bater 1x antes de começar o quake e quando acabou esperei uns 5 segundos onde o c.o nao fez dano algum mas o pidgeot fez sim (O PIDGEOT SÓ TEM O MELEE MESMO)

  Mostrar conteúdo oculto

 

Agora as coisas se esclareceram mais.

O Earthquake dura 10 segundos. Ele começa, nesse caso, em 19:04:17 e acaba em 19:04:27. Porém, a partir desse momento, o dano que o Crystal Onix aplica é imprimido ainda como Earthquake.

[13/12/2016 19:04:29] Entrando no escopo...[13/12/2016 19:04:29] Valor da storage: Earthquake[13/12/2016 19:04:29] Pokemon atacante: Shiny Onix[13/12/2016 19:04:29] Pokemon defensor: Pidgeot[13/12/2016 19:04:29] Entrando no escopo de MAGIA...[13/12/2016 19:04:31] Entrando no escopo...[13/12/2016 19:04:31] Valor da storage: Earthquake[13/12/2016 19:04:31] Pokemon atacante: Shiny Onix[13/12/2016 19:04:31] Pokemon defensor: Pidgeot[13/12/2016 19:04:31] Entrando no escopo de MAGIA...[13/12/2016 19:04:33] Entrando no escopo...[13/12/2016 19:04:33] Valor da storage: Earthquake[13/12/2016 19:04:33] Pokemon atacante: Shiny Onix[13/12/2016 19:04:33] Pokemon defensor: Pidgeot[13/12/2016 19:04:33] Entrando no escopo de MAGIA...[13/12/2016 19:04:35] Entrando no escopo...[13/12/2016 19:04:35] Valor da storage: Earthquake[13/12/2016 19:04:35] Pokemon atacante: Shiny Onix[13/12/2016 19:04:35] Pokemon defensor: Pidgeot[13/12/2016 19:04:35] Entrando no escopo de MAGIA...

 

Isso tudo implica que o valor da storage não está sendo resetado, e sim substituído.

 

Troque:

if value == 0 then     return falseelse    value = value * (1 + getSpecialAttack(attacker) / 100)end

por:

if value == 0 then     setPlayerStorageValue(attacker, 21102, -1)    return falseelse    value = value * (1 + getSpecialAttack(attacker) / 100)end

 

Editado por zipter98
  Em 14/12/2016 em 18:31, zipter98 disse:

Agora as coisas se esclareceram mais.

O Earthquake dura 10 segundos. Ele começa, nesse caso, em 19:04:17 e acaba em 19:04:27. Porém, a partir desse momento, o dano que o Crystal Onix aplica é imprimido ainda como Earthquake.

[13/12/2016 19:04:29] Entrando no escopo...[13/12/2016 19:04:29] Valor da storage: Earthquake[13/12/2016 19:04:29] Pokemon atacante: Shiny Onix[13/12/2016 19:04:29] Pokemon defensor: Pidgeot[13/12/2016 19:04:29] Entrando no escopo de MAGIA...[13/12/2016 19:04:31] Entrando no escopo...[13/12/2016 19:04:31] Valor da storage: Earthquake[13/12/2016 19:04:31] Pokemon atacante: Shiny Onix[13/12/2016 19:04:31] Pokemon defensor: Pidgeot[13/12/2016 19:04:31] Entrando no escopo de MAGIA...[13/12/2016 19:04:33] Entrando no escopo...[13/12/2016 19:04:33] Valor da storage: Earthquake[13/12/2016 19:04:33] Pokemon atacante: Shiny Onix[13/12/2016 19:04:33] Pokemon defensor: Pidgeot[13/12/2016 19:04:33] Entrando no escopo de MAGIA...[13/12/2016 19:04:35] Entrando no escopo...[13/12/2016 19:04:35] Valor da storage: Earthquake[13/12/2016 19:04:35] Pokemon atacante: Shiny Onix[13/12/2016 19:04:35] Pokemon defensor: Pidgeot[13/12/2016 19:04:35] Entrando no escopo de MAGIA...

 

Isso tudo implica que o valor da storage não está sendo resetado, e sim substituído.

 

Troque:

if value == 0 then     return falseelse    value = value * (1 + getSpecialAttack(attacker) / 100)end

por:

if value == 0 then     setPlayerStorageValue(attacker, 21102, -1)    return falseelse    value = value * (1 + getSpecialAttack(attacker) / 100)end

 

Expand  

 

iria trocar isos e deixar os prints ativos?

bed57d90184ebfdc77f04aaa8ad6afea.gif

 

  Mostrar conteúdo oculto

paresce q esta funfando certo

 

dando spam de electric storm ta batendo a passive do buzz tb

14b09483aa2ea412ce3543501e5c3678.gif

 

  Mostrar conteúdo oculto

 

Editado por Josegvb

Estamos nos focando apenas no Earthquake, por enquanto. O Electric Storm e outras spells também precisarão de um ajuste no código da spell.

Agora, apenas com Earthquake + melee, está funcionando como devido?

  Em 14/12/2016 em 19:19, zipter98 disse:

Estamos nos focando apenas no Earthquake, por enquanto. O Electric Storm e outras spells também precisarão de um ajuste no código da spell.

Agora, apenas com Earthquake + melee, está funcionando como devido?

Expand  

sim!

Muito bem. Pode agora postar o código do Electric Storm e da passiva do Electabuzz?

Ao corrigir ambos, provavelmente encontraremos um padrão de correção que poderá ser aplicado por você mesmo nas outras spells.

  Em 14/12/2016 em 19:56, zipter98 disse:

Muito bem. Pode agora postar o código do Electric Storm e da passiva do Electabuzz?

Ao corrigir ambos, provavelmente encontraremos um padrão de correção que poderá ser aplicado por você mesmo nas outras spells.

Expand  
  Mostrar conteúdo oculto

mas eu acho q seria melhor colocar essas modificaçao na configuraçao geral (se tiver) q ao usar uma spell etc arrumar pq o bug é geral em qualquer spell olha

5fdf70de089d569dabe8d65a4cbcb7cc.gif

Editado por Josegvb

Deixe-me ver se entendi o problema da passiva do Electabuzz: normalmente, ela não causa dano a pokémons terrestres, como deveria. Porém, ao usar qualquer outra spell (elétrica ou não), ela passa a apresentar o problema? Este permanece ou volta ao normal após alguma ação?

Saberia dizer onde as passivas são executadas? Se o creatureevent que você postou na primeira página de fato foi completo, então talvez seja em outro arquivo de creaturescripts.

Se possível, explique detalhadamente o problema (é meio chato depender apenas das gifs postadas para chegar a alguma conclusão) e também poste o código da passiva do Electabuzz.

O auto ataque foi normalizado para as outras situações que você descreveu?

 

Aplicando a correção do Falling Rocks no Electric Storm, o código ficaria:

elseif spell == "Electric Storm" then                 local master = isSummon(cid) and getCreatureMaster(cid) or cid    local function doFall(cid)        for rocks = 1, 42 do            addEvent(fall, rocks*35, cid, master, ELECTRICDAMAGE, 41, 48)        end    end        for up = 1, 10 do        addEvent(upEffect, up*75, cid, 41)    end        addEvent(doFall, 450, cid)    local ret = {}    ret.id = 0    ret.cd = 9    ret.check = 0    ret.eff = 48    ret.spell = spell    ret.cond = "Stun"    addEvent(function()        if tostring(getPlayerStorageValue(cid, 21102)) ~= spell then            setPlayerStorageValue(cid, 21102, spell)        end                doMoveInArea2(cid, 0, BigArea2, ELECTRICDAMAGE, min, max, spell, ret)    end, 1400)

 

Editado por zipter98

@zipter98 

 

por algum motivo a passiva simplemente faz dano as veces

eu falei se nao tinha como fazer uma arrumada general pq imagina se agente for ficar arrumando cada spell para ele nao fazer dano?

24cb79ece029a167164eed9cd97eb9fe.gif

 

enquanto a ELECTRIC STORM ela parou de bugar, agora se você da spam dela e usa quick attack ela NAO bate mais dano

porem se deixar spamando electric storm simplemente vai bater sim

54df4f0a1c4c28cf7037fc30a2ae3950.gif

 

  Mostrar conteúdo oculto

 

Tem certeza que esse dano causado durante o spam de Electric Storms não foi originado pela passiva? É bem difícil enxergar, mas é uma possibilidade.

Já quanto ao código dela, tente o seguinte:

elseif spell == "Shock-Counter" then    local function sendStickEff(cid, dir)        if not isCreature(cid) then return true end                if tostring(getPlayerStorageValue(cid, 21102)) ~= spell then            setPlayerStorageValue(cid, 21102, spell)        end                doAreaCombatHealth(cid, ELECTRICDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 207)    end    local function doStick(cid)        if not isCreature(cid) then return true end                local t = {            [1] = SOUTHWEST,            [2] = SOUTH,            [3] = SOUTHEAST,            [4] = EAST,            [5] = NORTHEAST,            [6] = NORTH,            [7] = NORTHWEST,            [8] = WEST,            [9] = SOUTHWEST,        }                for a = 1, 9 do            addEvent(sendStickEff, a * 140, cid, t[a])        end    end    doStick(cid, false, cid)    setPlayerStorageValue(cid, 98654, 1)

Se não funcionar, parece que teremos que voltar a imprimir algumas informações.

  Em 14/12/2016 em 23:44, zipter98 disse:

Tem certeza que esse dano causado durante o spam de Electric Storms não foi originado pela passiva? É bem difícil enxergar, mas é uma possibilidade.

Já quanto ao código dela, tente o seguinte:

elseif spell == "Shock-Counter" then    local function sendStickEff(cid, dir)        if not isCreature(cid) then return true end                if tostring(getPlayerStorageValue(cid, 21102)) ~= spell then            setPlayerStorageValue(cid, 21102, spell)        end                doAreaCombatHealth(cid, ELECTRICDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 207)    end    local function doStick(cid)        if not isCreature(cid) then return true end                local t = {            [1] = SOUTHWEST,            [2] = SOUTH,            [3] = SOUTHEAST,            [4] = EAST,            [5] = NORTHEAST,            [6] = NORTH,            [7] = NORTHWEST,            [8] = WEST,            [9] = SOUTHWEST,        }                for a = 1, 9 do            addEvent(sendStickEff, a * 140, cid, t[a])        end    end    doStick(cid, false, cid)    setPlayerStorageValue(cid, 98654, 1)

Se não funcionar, parece que teremos que voltar a imprimir algumas informações.

Expand  

To acompanhando o topico pq quero arrumar isso tambem (nao quero desistir dessa base). Testei esse ae e não deu certo :s

 

  Em 14/12/2016 em 23:44, zipter98 disse:

Tem certeza que esse dano causado durante o spam de Electric Storms não foi originado pela passiva? É bem difícil enxergar, mas é uma possibilidade.

Já quanto ao código dela, tente o seguinte:

elseif spell == "Shock-Counter" then    local function sendStickEff(cid, dir)        if not isCreature(cid) then return true end                if tostring(getPlayerStorageValue(cid, 21102)) ~= spell then            setPlayerStorageValue(cid, 21102, spell)        end                doAreaCombatHealth(cid, ELECTRICDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 207)    end    local function doStick(cid)        if not isCreature(cid) then return true end                local t = {            [1] = SOUTHWEST,            [2] = SOUTH,            [3] = SOUTHEAST,            [4] = EAST,            [5] = NORTHEAST,            [6] = NORTH,            [7] = NORTHWEST,            [8] = WEST,            [9] = SOUTHWEST,        }                for a = 1, 9 do            addEvent(sendStickEff, a * 140, cid, t[a])        end    end    doStick(cid, false, cid)    setPlayerStorageValue(cid, 98654, 1)

Se não funcionar, parece que teremos que voltar a imprimir algumas informações.

Expand  

 

funfou, ela nao ta batendo mais ^^ mas td spell buga assim :/ entao iremos ficar colocando o codigo em cada spell? ;s a electric storm nao buga mais, oque bugaba era a passive, mas ja parou porem olha qualquer cd q spamar ira bugar 

 

46150f3dfeb4bba119fde58a4bbe55c9.gif

Editado por Josegvb
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...