Ir para conteúdo

[Pokemon] Pda By Slicer 1.9/2.9


Slicer

Posts Recomendados

EDIT!

--------

 

Novo problema

 

 

 

 

To com outro problema na hora de balancear os pokemons.

 

No configuration.lua, em LIB

vejamos por exemplo esse:

 

["Poliwag"] = {offense = 5, defense = 4, specialattack = 4, vitality = 4, agility = 100, exp = 77, level = 5, type = "water", type2 = "no type"}

 

 

Ele hita 70 no meu caterpie, com um trainer lvl 8.

["Caterpie"] = {offense = 6, defense = 5.5, specialattack = 5, vitality = 4.5, agility = 106, exp = 53, level = 1, type = "bug", type2 = "no type"}

 

 

 

 

 

Pelo que eu entendi deveria ser Offense * level, nao? se fosse isso ficaria 25, nao 70. mas enfim

 

 

eu diminui o Level do poliwag para ver se dava algum tipo de alteração, salvei e abri o servidor denovo. e nada, o poliwag ta hitando a mesma coisa.

Minha intenção é diminuir a base de calculo de poder para alguns wilds iniciais, para que o player possa desenvolver melhor. lembrando que não quero fazer isso mechendo nas bases de seus status, pois se eu fizer isso eu vou deixa-los fracos tanto como wilds como na mao de players.

 

(estou usando o servidor sel level)

 

minha duvida é saber todos os lugares que posso mecher para balancear os pokemons, nao só no configuration.LUA.

 

-----

 

 

 

Fiz mais testes:

 

peguei o mesmo caterpie e dei na mao de um char lvl 150, o caterpie bate 600+, tem muito mais life, porem ele continua tomando os hits de 70 do poliwag. creio que a defesa nao esteja sendo mutiplicada pelo level do treinador.

Editado por jeff of hell
Link para o comentário
Compartilhar em outros sites

getSpecialAttack(cid) * table.f * 0.1


specialAttack = sp.atk * (lvl do poke-wild- ou lvl do player-summon-)
table.f = o dano base do atk

 

essa eh a formula de dano... dai depois esse dano eh multiplicado mais algumas vezes la no exp2.0.lua e tb eh no final, dividido pela def do poke q levo o atk... a def ae eh fixa! oq ta ali no configuration, eh a def final de cada poke..

o dano melee ainda n tem uma formula de def decente.. pq eu n consegui pensar em uma ainda... ;x

 

da a formula do melee eh..

valor = getOffense(attacker) * block

o block eh determinado no exp.lua tb.. mas a formula eh meio falha.. ;x

Link para o comentário
Compartilhar em outros sites

-----

EDIT

 

se eu quiser alterar essa linha

 

 

if combat == COMBAT_PHYSICALDAMAGE then

block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid)))

 

valor = getOffense(attacker) * block

 

 

 

 

e colocar o block para ser lvl do player * valor def do status do pokemon

 

e colocar valor para ser ataque do adversario - block

 

sera q ficaria bom? tem como criar essa linha de codigo pra eu fazer os tests?

 

-----

 

 

 

 

Entendi slicer. nao tem como colocar a def como o atk? não sendo fixa?

 

formula

 

 

 

valor total= dano do atacante * block

block = 1 - defesa / dano do atacante + defesa

 

 

ok, creio que realmente tem algo errado nesse block ai...

 

vamos usar o caterpie e poliwag de base

 

x sendo block

 

 

x = 1 - (defesa / dano atak + def)

x = 1 - [5.5/ (ofense*lvl) + 5.5]

x = 1 - (5.5/ 5*5+5.5)

x = 1 - 5.5 / 30.5

x = 1 - 0.18

x = 0.82

 

 

agora o valor é

 

valor = dano * 0.82

 

 

 

 

Ok, temos um progresso. creio q se incluisse-mos o lvl do player (nao diretamente, mas filtrado por algum tipo de calculo) nesse block, melhoraria.

 

ps: como se sabe, quando mutiplicamos por um numero entre 1 e 0, é como se tivessemos especificando um valor percentual, como nesse caso, o bloqueio dele seria 18% eficaz, levando apenas 82% do dano.

No meu ponto de vista esse tipo de formula é falha, por ser fraco a curto prazo e forte demais a longo prazo, ja que o objetivo deveria dar uma vantagem no inicio e mais desafio no fim.

 

 

 

 

se eu tiver falando besteira, pode me corrigir sahusahu nao tenho 100% de certeza sobre tudo q eu disse, pq nao conheço o sistema tao bem quanto voces xD

Editado por jeff of hell
Link para o comentário
Compartilhar em outros sites

Gutyziin, é no segundo 127.0.0.1 que é pra substituir, e em todos os outros, e nao nesse que vc mexeu, espero ter ajudado ;D

 

Cara, eu mudei todos mesmo ;o

Aliais, fiz isso depois, por causa de duvidas..

e nao pegou, mas obrigado pela intenção!

Link para o comentário
Compartilhar em outros sites

@jeff of hell

eh bem essa a ideia ms.. como flei a formula eh falha, e eu n tenhu nenhum formula melhor pra por ali kkk

 

@Gabrieltxu

no serv com lvl?

pelo q vi eh em lib/level system.lua, nessa parte aki..

 

function adjustPokemonLevel(item, cid, id, rarecandy)

 

if not isCreature(cid) then return true end

 

local exp = getItemAttribute(item, "exp")

local level = getItemAttribute(item, "level")

local leveltable = getPokemonExperienceTable(getPokeballName(item, true))

local newlevel = 1

 

for x = 1, 100 do

if exp >= leveltable[x] and exp < leveltable[x+1] then

newlevel = x

end

end

 

if newlevel <= 1 then return true end

 

local levelsup = (newlevel - level)

local pokemon = getItemAttribute(item, "poke")

local happy = getItemAttribute(item, "happy")

local rate = happy / 100

local newhappiness = happy

 

if happy >= 250 then

newhappiness = 255

elseif happy >= 230 then

newhappiness = happy + 4

elseif happy >= 210 then

newhappiness = happy + 6

elseif happy >= 180 then

newhappiness = happy + 8

elseif happy >= 140 then

newhappiness = happy + 10

elseif happy >= 110 then

newhappiness = happy + 12

else

newhappiness = happy + 15

end

 

local status = getPokemonStatus(pokemon)

 

local off = status.off * rate * levelsup

local def = status.def * rate * levelsup

local agi = status.agi * rate * levelsup

local spatk = status.spatk * rate * levelsup

local vit = status.vit * rate * levelsup

 

doItemSetAttribute(item, "level", newlevel)

 

if not rarecandy then

doItemSetAttribute(item, "happy", newhappiness)

end

 

local nextexp = leveltable[newlevel + 1] - exp

doItemSetAttribute(item, "nextlevelexp", nextexp)

 

doItemSetAttribute(item, "offense", getItemAttribute(item, "offense") + off)

doItemSetAttribute(item, "defense", getItemAttribute(item, "defense") + def)

doItemSetAttribute(item, "speed", getItemAttribute(item, "speed") + agi)

doItemSetAttribute(item, "specialattack", getItemAttribute(item, "specialattack") + spatk)

doItemSetAttribute(item, "vitality", getItemAttribute(item, "vitality") + vit)

 

if newlevel > getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer then

addEvent(doPlayerSendTextMessage, 30, cid, 18, "Warning: Your "..getPokeballName(item).."'s ["..newlevel.."] level is much higher than yours, so you will not be able to call him to battles.")

end

 

if isCreature(cid) and id >= 1 and isBeingUsed(id) then

adjustStatus(getCreatureSummons(cid)[1], item, false, true)

doPlayerSendTextMessage(cid, 27, "• Level: "..newlevel.." (+"..levelsup..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."")

 

if happy < minHappyToEvolve then return true end

 

if pokemonsCanEvolveByLevel then

 

local summon = getCreatureSummons(cid)[1]

 

local reqlevel = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].level or -1

local level = getItemAttribute(item, "level")

local evolution = "none"

local name = getCreatureName(summon)

 

if name == "Tyrogue" and level >= 20 then

if getOffense(summon) == getDefense(summon) then

evolution = "Hitmontop"

elseif getOffense(summon) > getDefense(summon) then

evolution = "Hitmonlee"

else

evolution = "Hitmonchan"

end

elseif name == "Eevee" then

if happy >= maxHappyToEvolve then

if isDay() then

evolution = "Espeon"

else

evolution = "Umbreon"

end

end

elseif name == "Slowpoke" and level >= 28 then

evolution = "Slowbro"

elseif name == "Poliwhirl" and level >= 36 then

evolution = "Poliwrath"

elseif reqlevel > 4 and level >= reqlevel then

evolution = poevo[getCreatureName(summon)].evolution

elseif reqlevel == 2 and happy >= maxHappyToEvolve then

evolution = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].evolution or "none"

end

 

if evolution ~= "none" then

doStartEvolution(summon, evolution, 4)

end

end

end

end

 

 

eu particulamente n intendi muito bem... mas eh essa a formula pra aumento dos status quando upa..

local off = status.off * rate * levelsup
local def = status.def * rate * levelsup
local agi = status.agi * rate * levelsup
local spatk = status.spatk * rate * levelsup
local vit = status.vit * rate * levelsup

 

e se for no serv sem lvl, n tem aonde aumentar, os status do poke vao ser os status base, q tao em lib/configuration.lua, multiplicados pelo lvl do player...

Link para o comentário
Compartilhar em outros sites

@Gabrieltxu

o maximo q podes fazer, sem editar o configuration.lua, eh diminuir a rate das balls...

actions/scripts/catch.lua

local ballcatch = {
[2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"},
[2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"},
[2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"},
[2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"},
}

 

o cr = xx, ali q eh a rate das balls...

Link para o comentário
Compartilhar em outros sites

Slicer, tem como me dizer o local exato que se baseia a mutiplicação do poder dos wilds?

 

 

pe pelo q entendi, é lvl base*status certo? esse q determina o dano. pois bem, o poliwag é lvl 5, e eu criei um poliwag e dei para um char lvl 10. o poliwag wild continuou sendo mais forte. onde que se marca o level usado para calculo de poder do pokemon wild? eu mudo para mais e para menos no configuration.lua em LIB e nada muda.

Link para o comentário
Compartilhar em outros sites

/\

tem q ter a .dll nesse teu client mano... ;x por isso o certo eh usar oq ja vem no serv...

eu n sei como hookar .dlls entao nem posso te ajudar... sorry

Link para o comentário
Compartilhar em outros sites

Slicer tem como voce criar um script que todos os pokemons encontrados sejam aleatoriamente apenas de level 1 a 20, para ficar mais rpg e legal o jogo para as pessoas uparem os pokemons pra terem mais offense?

 

---EDIT---

Editar pelo Head q e lv minimo e essas coisa demora demais pra todos os pokemons tem um script pra tipo onspawn?

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...