Ir para conteúdo
  • 0

[pedido] x-return (modificaçao)


Josegvb

Pergunta

irei explicar oque ele faz agora: retorna um % do dano recebido pro os POKEMONS DE OUTRO PLAYER EM DUEL, o dano devolvido é ridiculo e no duel quem usar + skills perde + rapido basicamente...

 

qual deberia ser a funçao dele? igual a PxG

Spoiler

Tier 1: Retorna todo dano recebido em 5%.
Tier 2: Retorna todo dano recebido em 6%.
Tier 3: Retorna todo dano recebido em 8%.
Tier 4: Retorna todo dano recebido em 10%.
Tier 5: Retorna todo dano recebido em 12%.
Tier 6: Retorna todo dano recebido em 14%.
Tier 7: Retorna todo dano recebido em 18%.
Explicação: O que está acima é o que aparece no look do item, mas ele tem duas funções implícitas. A primeira é que a porcentagem do look refere-se a dano recebido de pokémon de player. A segunda é que multiplicando a porcentagem do seu held por 5, você chegará a porcentagem de dano devolvido em pokémon selvagem.
Exemplo: O Held Tier 7 retorna 18% do dano recebido de pokémon de player e 90% do dano recebido de pokémon selvagem.

 

ele deberia retornar pelo menos o tier 7 90% do dano pra POKEMON SELVAGEMS e 18% de dano pro o pokemon de outro player em duel

mas no momento esta ao revez, ele retorna 90% do dano pro o pokemon de player e 18% de dano pro o pokemon SELVAGEM

entao queria q ele retornase o dano maior pro os pokemons selvagems enquanto pro player em duel for pouco

Exp2.0

 

Spoiler

      if isInArray(specialabilities["counter"], getCreatureName(cid)) then
          if math.random(1, 100) <= 10 then
             doCreatureAddHealth(attacker, -valor, 3, 180)    
             valor = 0
             doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)
          end
       end   
-- Return --        
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
local returnbonus = {}
local ball = getPlayerSlotItem(getCreatureMaster(cid), 8):
local Tiers = {
[15] = {bonus = DmgReturn1},
[16] = {bonus = DmgReturn2},
[17] = {bonus = DmgReturn3},
[18] = {bonus = DmgReturn4},
[19] = {bonus = DmgReturn5},
[20] = {bonus = DmgReturn6},
[21] = {bonus = DmgReturn7},
}
local Tier = getItemAttribute(ball.uid, "heldx")
if Tier and Tier > 14 and Tier < 22 then
returnbonus = math.floor((valor * Tiers[Tier].bonus))
elseif not isInArray(Tiers, Tier) then
returnbonus = 0
end
doCreatureAddHealth(attacker, -returnbonus)
end
-- Return --
else
-- Return --        
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
local returnbonus = {}
local ball = getPlayerSlotItem(getCreatureMaster(cid), 8):
local Tiers = {
[15] = {bonus = DmgReturn1},
[16] = {bonus = DmgReturn2},
[17] = {bonus = DmgReturn3},
[18] = {bonus = DmgReturn4},
[19] = {bonus = DmgReturn5},
[20] = {bonus = DmgReturn6},
[21] = {bonus = DmgReturn7},
}
local Tier = getItemAttribute(ball.uid, "heldx")
if Tier and Tier > 14 and Tier < 22 then
returnbonus = math.floor((valor * Tiers[Tier].bonus))
elseif not isInArray(Tiers, Tier) then
returnbonus = 0
end
doCreatureAddHealth(attacker, -returnbonus)
end
-- Return --

 

Lib

Spoiler

DmgReturn1 = 0.02
DmgReturn2 = 0.025
DmgReturn3 = 0.030
DmgReturn4 = 0.035
DmgReturn5 = 0.040
DmgReturn6 = 0.055
DmgReturn7 = 0.060

esse dano em lib eu tentei abaixar... pq o original era assim

DmgReturn1 = 0.04DmgReturn2 = 0.05DmgReturn3 = 0.06DmgReturn4 = 0.07DmgReturn5 = 0.08DmgReturn6 = 0.09DmgReturn7 = 0.10

quem tiver como ajudar agradesço desde ja

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

Posts Recomendados

  • 0
1 hora atrás, zipter98 disse:

Isso está acontecendo porque a função xReturn está sendo chamada depois da verificação de imunidade do monstro, que, se verdadeira, interrompe a execução do código. Por consequência, xReturn não é chamado nesta condição. Eu não li o código inteiro para ver se a seguinte mudança de eventos pode prejudicar em algum cálculo. Qualquer coisa, basta um backup e veremos o que pode ser feito.

Transfira:

if valor >= getCreatureHealth(cid) then    if isInArray(cannotKill, combat) and isPlayer(cid) then        valor = getCreatureHealth(cid) - 1    else        valor = getCreatureHealth(cid)     endendvalor = math.floor(valor)             --alterado v1.6

Para abaixo de:

if p.x == 1 and p.y == 1 and p.z == 10 then    return false                                    end

Transfira:

-- Return --        xReturn(cid, attacker, valor)-- Return --

Para abaixo da primeira modificação.

O resultado final deve ser:

if p.x == 1 and p.y == 1 and p.z == 10 then    return false                                    endif valor >= getCreatureHealth(cid) then    if isInArray(cannotKill, combat) and isPlayer(cid) then        valor = getCreatureHealth(cid) - 1    else        valor = getCreatureHealth(cid)     endendvalor = math.floor(valor)  -- Return --        xReturn(cid, attacker, math.abs(valor))-- Return --    if getPlayerStorageValue(cid, 9658783) == 1 then    return false     --imuneend

Assim, a função xReturn será chamada antes da interrupção do código pela verificação de invulnerabilidade.

 

deu =):

9c50e4f46303bb5901027192b971e5ff.gif

 

enquanto o log paresce q nao ta dando nemhum erro enquanto o exp2.0

só alguns estao aparescendo ai mas acho q nao tem nada a ver com a modificaçao do exp2.0

fbfce31e96a11799edca1b5520c13360.png

valeu zipter!

Link para o comentário
Compartilhar em outros sites

  • 0

@zipter98 me deparei de outra coisa :|:, quanto o return e a passiva Sturdy, alguns pokes tipo aggron, sudowoodoo etc eles se tornam com 0 hp qndo morrem e ficam 1 pouco fora da ball antes de morrer, acho foi vc q fez o script do sturdy, entao quando ele fica com o sturdy, o return nao funfa, para de devolver o dano... e ele deberia devolver :S, tb o Return paresce bugar os drops :/ quando mata algum bixo no return (ou o return tira a ultima hp dele) ele nao aparescendo a mensagem de drop pra vc e tb nao ganha exp pelo matar o bixo, n sei se for pelo return, mas testei em bixos baixos e dropou tudo bem, mas ai matando 1 mewtwo q demora mil anos pra matar com o return ele fica dando nothing mas acho q nao tem nada a ver n, sei la to testando agr... mas enquanto matar e nao pegar exp nem mensagem do loot é por causa do return sim

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

  • 0
45 minutos atrás, Josegvb disse:

@zipter98 me deparei de outra coisa :|:, quanto o return e a passiva Sturdy, alguns pokes tipo aggron, sudowoodoo etc eles se tornam com 0 hp qndo morrem e ficam 1 pouco fora da ball antes de morrer, acho foi vc q fez o script do sturdy, entao quando ele fica com o sturdy, o return nao funfa, para de devolver o dano... e ele deberia devolver :S 

man eu usso esses systema e comigo estava dando a mesma coisa e adivinha a solução estava no configuration.lua

aconselho voltar o script como estava antes e configurar ele no configuration.lua na pasta lib

Link para o comentário
Compartilhar em outros sites

  • 0

outra observaçao @zipter98 lembra q eu falei q ele ficaba falando -0  -0  -0  -0  -0 

em pokes que nao contem return? vc me passou o codigo 

 

if returnbonus > 0 then   doSendAnimatedText(getThingPos(attacker), -returnbonus, 77)   doCreatureAddHealth(attacker, -returnbonus)end

 

mas ai quando teu pokemon usa barrier ou algum outro tipo de inmunidade tipo steel body do steelix, ele fica inmune por tanto nao leva dano algum ai ele n fala valor algum, pois esta pegando 0 dano entao nao aparesce nada... entao eu fikei com ele falando -0 -0 -0 -0 td hora porem é muito chato ;/: teria como modificar isso? estarei esperando por sua resposta enquanto esses erros q falei nos ultimos posts! obrigado

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...