o Ion Deluge ele só causa dano e deixa com status negativo correto?
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] [PEDIDO] PASSIVE E ATTACK
[Resolvido] [PEDIDO] PASSIVE E ATTACK
Por joshua8822, 30 de set. de 2015 em Resolvidos
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

info
Grupo: Campones
Registrado: 19/09/15
Posts: 17
Reputação: +2

Deixa em status. Nao faze dano
Base usada?
Diga-me se entendi corretamente a primeira spell: o pokémon causará um dano em área que aplicará um debuff onde todos os afetados terão os golpes convertidos para o tipo elétrico. É isso mesmo?
Sobre a passiva, o dano elétrico será anulado? A quantia curada é em porcentagem ou uma fórmula mesmo?
info
Grupo: Campones
Registrado: 19/09/15
Posts: 17
Reputação: +2

Base usada?
Diga-me se entendi corretamente a primeira spell: o pokémon causará um dano em área que aplicará um debuff onde todos os afetados terão os golpes convertidos para o tipo elétrico. É isso mesmo?
Sobre a passiva, o dano elétrico será anulado? A quantia curada é em porcentagem ou uma fórmula mesmo?
Base = PDA
1°
Sim aplicara debuff, e sera convertidos para tipo elétrico. Sim.
2°
Sim, o dano elétrico será anulado e um 5 - 15% heal.
@UP
Editado Outubro 1 por joshua8822
pokemon moves.lua (data/lib):
elseif spell == "Ion Deluge" then
local config = {
spell_area = ionDelugeArea, --Área da spell (dano AOE + debuff).
effect = xxx, --Efeito.
debuff_time = xxx --Duração do debuff (em segundos).
}
local positions = getPosfromArea(cid, config.spell_area)
if #positions < 1 then return true end
local function doSendDebuffEffect(cid, times)
if not isCreature(cid) or times <= 0 then return true end
doSendMagicEffect(getThingPos(cid), config.effect)
addEvent(doSendDebuffEffect, 1000, cid, times - 1)
end
for i = 1, #positions do
local pid = getTopCreature(positions[i]).uid
if isCreature(pid) and canAttackOther(cid, pid) == "Can" then
setPlayerStorageValue(pid, 2919, os.time() + config.debuff_time)
doSendDebuffEffect(pid, config.debuff_time)
end
end
doDanoWithProtect(cid, ELECTRICDAMAGE, getThingPos(cid), config.spell_area, min, max, config.effect)
areas.lua:
ionDelugeArea = {
{0, 0, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 2, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 0, 0}
}
local damageCombat = combat
if getPlayerStorageValue(attacker, 2919) > os.time() then
damageCombat = ELECTRICDAMAGE
endif isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then
valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")
elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then
valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))
endlocal Volt_Absorb = {
passive_owners = {"Jolteon", "Shiny Jolteon", "Lanturn"}, --Pokémons com a passiva Volt Absorb.
heal = {
min_percent = xxx, --Porcentagem mínima do dano curada.
max_percent = xxx, --Porcentagem máxima do dano curada.
}
}
if isInArray(Volt_Absorb.passive_owners, getCreatureName(cid)) and damageCombat == ELECTRICDAMAGE then
local amount = math.floor(valor * math.random(Volt_Absorb.heal.min_percent, Volt_Absorb.heal.max_percent) / 100)
valor = 0
doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
doCreatureAddHealth(cid, amount)
end
Editado Outubro 3 por zipter98
info
Grupo: Campones
Registrado: 19/09/15
Posts: 17
Reputação: +2

pokemon moves.lua (data/lib):
elseif spell == "Ion Deluge" then local config = { spell_area = selfArea2, --Área da spell (dano AOE + debuff). effect = xxx, --Efeito. debuff_time = xxx --Duração do debuff (em segundos). } local positions = getPosfromArea(config.spell_area) if #positions < 1 then return true end local function doSendDebuffEffect(cid, times) if not isCreature(cid) or times <= 0 then return true end doSendMagicEffect(getThingPos(cid), config.effect) addEvent(doSendDebuffEffect, 1000, cid, times - 1) end for i = 1, #positions do local pid = getTopCreature(positions[i]).uid if isCreature(pid) and canAttackOther(cid, pid) == "Can" then setPlayerStorageValue(pid, 2919, os.time() + config.debuff_time) doSendDebuffEffect(pid, config.debuff_time) end end doDanoWithProtect(cid, ELECTRICDAMAGE, getThingPos(cid), config.spell_area, min, max, config.effect)
exp2.0.lua (data/creaturescripts/scripts):Abaixo de:local damageCombat = combatColoque:if getPlayerStorageValue(attacker, 2919) > os.time() then damageCombat = ELECTRICDAMAGE endNo mesmo arquivo, abaixo de:if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk") elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2)) endColoque:local Volt_Absorb = { passive_owners = {"Jolteon", "Shiny Jolteon", "Lanturn"}, --Pokémons com a passiva Volt Absorb. heal = { min_percent = xxx, --Porcentagem mínima do dano curada. max_percent = xxx, --Porcentagem máxima do dano curada. } } if isInArray(Volt_Absorb.passive_owners, getCreatureName(cid)) and damageCombat == ELECTRICDAMAGE then local amount = math.floor(valor * math.random(Volt_Absorb.min_percent, Volt_Absorb.max_percent) / 100) valor = 0 doSendAnimatedText(getThingPos(cid), "+"..amount, 65) doCreatureAddHealth(cid, amount) end
Obrigado
info
Grupo: Marquês
Registrado: 24/12/09
Posts: 1k
Reputação: +326
Gênero: Masculino
Char no Tibia: Necromanser

Tópico movido para dúvidas / pedidos resolvidos.
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

zipter,
Ion Deluge:
[02/10/2015 17:39:28] [Error - TalkAction Interface] [02/10/2015 17:39:28] data/talkactions/scripts/move1.lua:onSay [02/10/2015 17:39:28] Description: [02/10/2015 17:39:28] data/lib/032-position.lua:158: bad argument #1 to 'getn' (table expected, got nil) [02/10/2015 17:39:28] stack traceback: [02/10/2015 17:39:28] [C]: in function 'getn' [02/10/2015 17:39:28] data/lib/032-position.lua:158: in function 'getPosfromArea' [02/10/2015 17:39:28] data/lib/pokemon moves.lua:3081: in function 'docastspell' [02/10/2015 17:39:28] data/talkactions/scripts/move1.lua:293: in function <data/talkactions/scripts/move1.lua:20>
Volt Absorb:
[02/10/2015 17:33:45] [Error - CreatureScript Interface] [02/10/2015 17:33:45] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [02/10/2015 17:33:45] Description: [02/10/2015 17:33:45] data/creaturescripts/scripts/exp2.0.lua:519: bad argument #1 to 'random' (number expected, got nil) [02/10/2015 17:33:45] stack traceback: [02/10/2015 17:33:45] [C]: in function 'random' [02/10/2015 17:33:45] data/creaturescripts/scripts/exp2.0.lua:519: in function <data/creaturescripts/scripts/exp2.0.lua:65> [02/10/2015 17:33:48] [Error - CreatureScript Interface] [02/10/2015 17:33:48] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [02/10/2015 17:33:48] Description: [02/10/2015 17:33:48] data/creaturescripts/scripts/exp2.0.lua:519: bad argument #1 to 'random' (number expected, got nil) [02/10/2015 17:33:48] stack traceback: [02/10/2015 17:33:48] [C]: in function 'random' [02/10/2015 17:33:48] data/creaturescripts/scripts/exp2.0.lua:519: in function <data/creaturescripts/scripts/exp2.0.lua:65> [02/10/2015 17:33:48] [C]: in function 'doTargetCombatHealth' [02/10/2015 17:33:48] data/lib/newStatusSyst.lua:1018: in function 'doMoveDano2' [02/10/2015 17:33:48] data/lib/newStatusSyst.lua:942: in function 'doMoveInArea2' [02/10/2015 17:33:48] data/lib/pokemon moves.lua:6842: in function 'docastspell' [02/10/2015 17:33:48] data/creaturescripts/scripts/exp2.0.lua:966: in function <data/creaturescripts/scripts/exp2.0.lua:65>
Editado Outubro 2 por AdminGabriel
Spells corrigidas.
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Ion Deluge ainda com erro:
[03/10/2015 11:34:10] [Error - TalkAction Interface] [03/10/2015 11:34:11] data/talkactions/scripts/move1.lua:onSay [03/10/2015 11:34:11] Description: [03/10/2015 11:34:11] data/lib/032-position.lua:158: bad argument #1 to 'getn' (table expected, got number) [03/10/2015 11:34:11] stack traceback: [03/10/2015 11:34:11] [C]: in function 'getn' [03/10/2015 11:34:11] data/lib/032-position.lua:158: in function 'getPosfromArea' [03/10/2015 11:34:11] data/lib/pokemon moves.lua:3081: in function 'docastspell' [03/10/2015 11:34:11] data/talkactions/scripts/move1.lua:293: in function <data/talkactions/scripts/move1.lua:20>
Ah, sim. O problema estava na área. Comentário atualizado com as correções.
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Corrigido
info
Grupo: Administrador
Registrado: 26/02/07
Posts: 254
Reputação: +205
Gênero: Masculino
Char no Tibia: Frenvius







info
Grupo: Campones
Registrado: 19/09/15
Posts: 17
Reputação: +2
Oi gente, hoje venho pedir que uma pessoa pode fazer e um ataque. (Se for muito difícil, eu poderia pagar)
1° Ion Deluge: Este ataque produz um tamanho de quadra de ataque; Confusion ou Psychic e deixado em um estado para atacar Pokemon. Que o Estado faz é que converte todos os ataques em tipo elétrico em x tempo.
2° Volt Absorb: Isso funciona passivo quando recebem um ataque elétrico e recupera vida depende da força do ataque.
Eles podem responder por mensagem privada ou aqui.
Editado Setembro 30 por joshua8822