JO
tfs 0.3.4

[pedido] x-return (modificaçao)

Por Josegvb, 30 de abr. de 2016 em Scripts

22
3.5k
zipter98Z
03 de maio de 2016 às 20:53

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.

JosegvbJ
03 de maio de 2016 às 21:42
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!

JosegvbJ
09 de maio de 2016 às 20:07

@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 Maio 9 por Josegvb

wevertonvrbW
09 de maio de 2016 às 20:54
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

JosegvbJ
10 de maio de 2016 às 13:53

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

JosegvbJ
14 de maio de 2016 às 11:49

@zipter98 outro problema, é enquanto o duel, se o player inimigo usa barrier ou iron body etc, o return ainda fica tirando a hp deles

2 semanas depois...
JosegvbJ
27 de maio de 2016 às 20:26

up