olá, ja passei semanas tentando resolver isso mas nao deu e ja que no suporte do topico a ajuda é bem limitada decidi criar um topico em relaçao ao meu problema
entao estou com o siguente problema, no servidor dxp acho os danos bem desbalançados e ridiculos tentei mil coisas pra tentar balançar assim ou trocar o dano, bom primeiramente o dano melee esta bugado no servidor, ja tentei com a soluçao postada la mas nao fez mt diferença...
no DxP e a maioria dos PDA tem só 3 tipos de efetividades: Super, Weak, Non (nula)
no PxG tem 6: Super Effective, Effective, Normal, inefectivo, very inefectivo e Non
entao quis colocar mais pra balançar mais os pokemons ja que agr um pokemon tipo Leaf esta pegando o mesmo dano que um tipo Water em contra de outro tipo Water, quanto o Water por ser do mesmo elemento deberia ter mais resistença pra water mas eles estao levando o msm dano
Spoiler
entao quis colocar nas efetividades e paresce q consegui mas ao msm tempo n, a verdade agr fikei bem confuso aeuueaaeu achei q nao tinha pegado mas pegou sim porem quando os bixos batem de frente o dano é bugado
e me falaram q eu precisaba "editar a função de atack no statschange, não apenas adicionar."
mas paresce q nao...
entao peço sua ajuda pra arrumar se o codigo estiver perfeito entao pra arrumar o bug do surf estar batendo td isso...
function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos local name = getCreatureName(attacker) -- reflect system local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"} local pokesMetro = {"Smeargle", "Clefable", "Clefairy", "Mew", "Cleffa", "Togetic", "Togepi"} if(spellNameFromAttacker ~= -1) then -- checagem de efetividades if isMega(attacker) then name = getPlayerStorageValue(attacker, storages.isMega) elseif name:find("Smeargle") then name = getSmeargleAttackNameFromSkactch(attacker, spellNameFromAttacker) -- retorna o nome do poke q tem essa magia end
if isInArray(spells, spellNameFromAttacker) and isInArray(pokesMetro, doCorrectString(getCreatureName(attacker))) then name = getMetronomeName(spellNameFromAttacker) -- Metronome end local spellRace, pokeElement1, pokeElement2 = getMoveType(name, spellNameFromAttacker), getPokemonType(cid).type1, getPokemonType(cid).type2
if not typeTable[spellRace] then local remover = removeSpellInXML(doCorrectString(name), spellNameFromAttacker) if remover then print("Magia: " .. spellNameFromAttacker .. " removida do XML: " .. doCorrectString(name) .. ".xml") end return 0 end if isInArray(typeTable[spellRace].super, pokeElement1) or isInArray(typeTable[spellRace].super, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 1.3 elseif isInArray(typeTable[spellRace].week, pokeElement1) or isInArray(typeTable[spellRace].week, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value elseif isInArray(typeTable[spellRace].non, pokeElement1) or isInArray(typeTable[spellRace].non, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
if getPlayerStorageValue(attacker, 999457) == 1 then -- dark and miracle eye value = value else value = 0 end end
if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, spellRace)then -- Passiva thick fat value = value / 2 end end return value end
modificada:
Spoiler
function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos local name = getCreatureName(attacker) -- reflect system local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"} local pokesMetro = {"Smeargle", "Clefable", "Clefairy", "Mew", "Cleffa", "Togetic", "Togepi"} if(spellNameFromAttacker ~= -1) then -- checagem de efetividades if isMega(attacker) then name = getPlayerStorageValue(attacker, storages.isMega) elseif name:find("Smeargle") then name = getSmeargleAttackNameFromSkactch(attacker, spellNameFromAttacker) -- retorna o nome do poke q tem essa magia end
if isInArray(spells, spellNameFromAttacker) and isInArray(pokesMetro, doCorrectString(getCreatureName(attacker))) then name = getMetronomeName(spellNameFromAttacker) -- Metronome end local spellRace, pokeElement1, pokeElement2 = getMoveType(name, spellNameFromAttacker), getPokemonType(cid).type1, getPokemonType(cid).type2
if not typeTable[spellRace] then local remover = removeSpellInXML(doCorrectString(name), spellNameFromAttacker) if remover then print("Magia: " .. spellNameFromAttacker .. " removida do XML: " .. doCorrectString(name) .. ".xml") end return 0 end if isInArray(typeTable[spellRace].super, pokeElement1) or isInArray(typeTable[spellRace].super, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 2 elseif isInArray(typeTable[spellRace].effective, pokeElement1) or isInArray(typeTable[spellRace].effective, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 1.6 elseif isInArray(typeTable[spellRace].norm, pokeElement1) or isInArray(typeTable[spellRace].norm, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 1.2 elseif isInArray(typeTable[spellRace].inef, pokeElement1) or isInArray(typeTable[spellRace].inef, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 0.8 elseif isInArray(typeTable[spellRace].weak, pokeElement1) or isInArray(typeTable[spellRace].weak, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 0.4 elseif isInArray(typeTable[spellRace].non, pokeElement1) or isInArray(typeTable[spellRace].non, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
if getPlayerStorageValue(attacker, 999457) == 1 then -- dark and miracle eye value = value else value = 0 end end
if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, spellRace)then -- Passiva thick fat value = value / 2 end end setPlayerStorageValue(attacker, 21102, -1) return value end
o meelee q ta bugado...
Spoiler
function getEffectvineCombat(cid, attacker, value) if isPlayer(cid) or isPlayer(attacker) then return false end -- seguranca do player nao atacar local pokeRaceAttacker, pokeRaceDefender = getPokemonType(attacker).type1, getPokemonType(cid).type1 if isInArray(typeTable[pokeRaceAttacker].super, pokeRaceDefender) or isInArray(typeTable[pokeRaceAttacker].super, pokeRaceDefender) then -- elemento atacante ser mais forte que os elementos de defesa value = value * 1.3 elseif isInArray(typeTable[pokeRaceAttacker].weak, pokeRaceDefender) or isInArray(typeTable[pokeRaceAttacker].weak, pokeRaceDefender) then -- elemento atacante ser mais forte que os elementos de defesa value = value elseif isInArray(pokesGhosts, nomeDefense) then -- não bater em pokemons ghosts value = 0 end if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, pokeRaceAttacker)then -- Passiva thick fat value = value / 2 end return value end
e o pokemove
move8 = {name = "Hydro Cannon", level = 50, cd = 60, dist = 1, target = 0, f = 95, t = "water"},
Spoiler
elseif spell == "Hydro Cannon" then
local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)
function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, WATERDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, WATERDAMAGE, area, whirl3, -min, -max, 68) end end
Pergunta
Josegvb 87
olá, ja passei semanas tentando resolver isso mas nao deu e ja que no suporte do topico a ajuda é bem limitada decidi criar um topico em relaçao ao meu problema
entao estou com o siguente problema, no servidor dxp acho os danos bem desbalançados e ridiculos tentei mil coisas pra tentar balançar assim ou trocar o dano, bom primeiramente o dano melee esta bugado no servidor, ja tentei com a soluçao postada la mas nao fez mt diferença...
no DxP e a maioria dos PDA tem só 3 tipos de efetividades: Super, Weak, Non (nula)
no PxG tem 6: Super Effective, Effective, Normal, inefectivo, very inefectivo e Non
entao quis colocar mais pra balançar mais os pokemons ja que agr um pokemon tipo Leaf esta pegando o mesmo dano que um tipo Water em contra de outro tipo Water, quanto o Water por ser do mesmo elemento deberia ter mais resistença pra water mas eles estao levando o msm dano
entao quis colocar nas efetividades e paresce q consegui mas ao msm tempo n, a verdade agr fikei bem confuso aeuueaaeu achei q nao tinha pegado mas pegou sim porem quando os bixos batem de frente o dano é bugado
e me falaram q eu precisaba "editar a função de atack no statschange, não apenas adicionar."
mas paresce q nao...
entao peço sua ajuda pra arrumar se o codigo estiver perfeito entao pra arrumar o bug do surf estar batendo td isso...
https://gyazo.com/b86bfecd38648827f0070a30761ec176
a funçao modificada tava assim:
function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos
local name = getCreatureName(attacker) -- reflect system
local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"}
local pokesMetro = {"Smeargle", "Clefable", "Clefairy", "Mew", "Cleffa", "Togetic", "Togepi"}
if(spellNameFromAttacker ~= -1) then -- checagem de efetividades
if isMega(attacker) then
name = getPlayerStorageValue(attacker, storages.isMega)
elseif name:find("Smeargle") then
name = getSmeargleAttackNameFromSkactch(attacker, spellNameFromAttacker) -- retorna o nome do poke q tem essa magia
end
if isInArray(spells, spellNameFromAttacker) and isInArray(pokesMetro, doCorrectString(getCreatureName(attacker))) then
name = getMetronomeName(spellNameFromAttacker) -- Metronome
end
local spellRace, pokeElement1, pokeElement2 = getMoveType(name, spellNameFromAttacker), getPokemonType(cid).type1, getPokemonType(cid).type2
if not typeTable[spellRace] then
local remover = removeSpellInXML(doCorrectString(name), spellNameFromAttacker)
if remover then print("Magia: " .. spellNameFromAttacker .. " removida do XML: " .. doCorrectString(name) .. ".xml") end
return 0
end
if isInArray(typeTable[spellRace].super, pokeElement1) or isInArray(typeTable[spellRace].super, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 1.3
elseif isInArray(typeTable[spellRace].week, pokeElement1) or isInArray(typeTable[spellRace].week, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value
elseif isInArray(typeTable[spellRace].non, pokeElement1) or isInArray(typeTable[spellRace].non, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
if getPlayerStorageValue(attacker, 999457) == 1 then -- dark and miracle eye
value = value
else
value = 0
end
end
if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, spellRace)then -- Passiva thick fat
value = value / 2
end
end
return value
end
modificada:
function getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- printar os elementos
local name = getCreatureName(attacker) -- reflect system
local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"}
local pokesMetro = {"Smeargle", "Clefable", "Clefairy", "Mew", "Cleffa", "Togetic", "Togepi"}
if(spellNameFromAttacker ~= -1) then -- checagem de efetividades
if isMega(attacker) then
name = getPlayerStorageValue(attacker, storages.isMega)
elseif name:find("Smeargle") then
name = getSmeargleAttackNameFromSkactch(attacker, spellNameFromAttacker) -- retorna o nome do poke q tem essa magia
end
if isInArray(spells, spellNameFromAttacker) and isInArray(pokesMetro, doCorrectString(getCreatureName(attacker))) then
name = getMetronomeName(spellNameFromAttacker) -- Metronome
end
local spellRace, pokeElement1, pokeElement2 = getMoveType(name, spellNameFromAttacker), getPokemonType(cid).type1, getPokemonType(cid).type2
if not typeTable[spellRace] then
local remover = removeSpellInXML(doCorrectString(name), spellNameFromAttacker)
if remover then print("Magia: " .. spellNameFromAttacker .. " removida do XML: " .. doCorrectString(name) .. ".xml") end
return 0
end
if isInArray(typeTable[spellRace].super, pokeElement1) or isInArray(typeTable[spellRace].super, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 2
elseif isInArray(typeTable[spellRace].effective, pokeElement1) or isInArray(typeTable[spellRace].effective, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 1.6
elseif isInArray(typeTable[spellRace].norm, pokeElement1) or isInArray(typeTable[spellRace].norm, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 1.2
elseif isInArray(typeTable[spellRace].inef, pokeElement1) or isInArray(typeTable[spellRace].inef, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 0.8
elseif isInArray(typeTable[spellRace].weak, pokeElement1) or isInArray(typeTable[spellRace].weak, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 0.4
elseif isInArray(typeTable[spellRace].non, pokeElement1) or isInArray(typeTable[spellRace].non, pokeElement2) then -- elemento atacante ser mais forte que os elementos de defesa
if getPlayerStorageValue(attacker, 999457) == 1 then -- dark and miracle eye
value = value
else
value = 0
end
end
if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, spellRace)then -- Passiva thick fat
value = value / 2
end
end
setPlayerStorageValue(attacker, 21102, -1)
return value
end
o meelee q ta bugado...
function getEffectvineCombat(cid, attacker, value)
if isPlayer(cid) or isPlayer(attacker) then return false end -- seguranca do player nao atacar
local pokeRaceAttacker, pokeRaceDefender = getPokemonType(attacker).type1, getPokemonType(cid).type1
if isInArray(typeTable[pokeRaceAttacker].super, pokeRaceDefender) or isInArray(typeTable[pokeRaceAttacker].super, pokeRaceDefender) then -- elemento atacante ser mais forte que os elementos de defesa
value = value * 1.3
elseif isInArray(typeTable[pokeRaceAttacker].weak, pokeRaceDefender) or isInArray(typeTable[pokeRaceAttacker].weak, pokeRaceDefender) then -- elemento atacante ser mais forte que os elementos de defesa
value = value
elseif isInArray(pokesGhosts, nomeDefense) then -- não bater em pokemons ghosts
value = 0
end
if getCreatureName(cid) == "Venusaur" and value ~= 0 and isMega(cid) and isInArray({"ice", "fire"}, pokeRaceAttacker)then -- Passiva thick fat
value = value / 2
end
return value
end
e o pokemove
move8 = {name = "Hydro Cannon", level = 50, cd = 60, dist = 1, target = 0, f = 95, t = "water"},
elseif spell == "Hydro Cannon" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, WATERDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, WATERDAMAGE, area, whirl3, -min, -max, 68)
end
end
for a = 0, 4 do
local t = { --alterado v1.4
[0] = {64, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {65, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {66, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {67, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados