Ajudaria se você postasse um vídeo demonstrando as spells, juntamente de uma explicação detalhada.
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] ajuda com magia unown e air vortex
Ajudaria se você postasse um vídeo demonstrando as spells, juntamente de uma explicação detalhada.
vo faze o video aq agora e posto ja
Ajudaria se você postasse um vídeo demonstrando as spells, juntamente de uma explicação detalhada.
fiz o video pra vc ver e coloquei no youtube.
Reparei que na PxG este Air Vortex, além de impedir com que o pokémon usuário se mova ou use outras spells, aplica um efeito de silence. Você quer da mesma maneira? Se sim, todos os pokémons pegos pelo movimento teriam este debuff aplicado?
Também reparei que, quando o Shiny Fearow usa esta magia, há efeitos de "redemoinho" em volta dele. Saberia dizer se isto é parte da outfit ou efeitos individuais?
Já no Unown Help, estes Unowns possuem tempo de duração? E este ataque usado por eles que você mencionou, como funciona?
No Unown Rush, reparei que o efeito do dano em área é lançado algumas vezes. Neste caso, cada "lance" aplica dano ou este é aplicado apenas uma vez? E estou enganado, ou ao final da execução do movimento o Unown Legion fica com o buff do Barrier? Você gostaria disso também na spell (apesar de eu achar absurdamente estranho lol)?
Editado Junho 10 por zipter98
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Zipter
Também reparei que, quando o Shiny Fearow usa esta magia, há efeitos de "redemoinho" em volta dele. Saberia dizer se isto é parte da outfit ou efeitos individuais?
Os efeitos em volta são individuais. A outfit dele é apenas o Fearow soltando o redemoinho na frente dele.
#Off
E outra Zipter, teria como me ajudar?
http://www.xtibia.com/forum/topic/234629-morph/#entry1655317
Editado Junho 10 por FlamesAdmin
Reparei que na PxG este Air Vortex, além de impedir com que o pokémon usuário se mova ou use outras spells, aplica um efeito de silence. Você quer da mesma maneira? Se sim, todos os pokémons pegos pelo movimento teriam este debuff aplicado?
Também reparei que, quando o Shiny Fearow usa esta magia, há efeitos de "redemoinho" em volta dele. Saberia dizer se isto é parte da outfit ou efeitos individuais?
Já no Unown Help, estes Unowns possuem tempo de duração? E este ataque usado por eles que você mencionou, como funciona?
No Unown Rush, reparei que o efeito do dano em área é lançado algumas vezes. Neste caso, cada "lance" aplica dano ou este é aplicado apenas uma vez? E estou enganado, ou ao final da execução do movimento o Unown Legion fica com o buff do Barrier? Você gostaria disso também na spell (apesar de eu achar absurdamente estranho lol)?
man do jeito que vc conseguir fazela ta otimoo pode por o dano em todas as ocasioes que vc descreveu sim sem problemas.depois editamos as forças e ja era . poxa se vc conseguir agradeço dmaisssssss.
Os efeitos em volta são individuais. A outfit dele é apenas o Fearow soltando o redemoinho na frente dele.
#Off
E outra Zipter, teria como me ajudar?
http://www.xtibia.com/forum/topic/234629-morph/#entry1655317
ae man vi que no seu projeto ae tem a magia air vortex se puder me passar ela agradeço dmaissss. to empacado aq com meu projetinho quando coloco um poke novo o icone some logo que o player reloga e volta ser uma pokeball. se souber e puder ajuda tbm fico muito agradecido. vlw
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Oq eu tenho é esse, nao é igual do pxg, ele só solta o efeito do Fearow e os redemoinho em volta.
elseif spell == "Air Vortex" then
local function hurricane(cid)
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
doMoveInArea2(cid, 42, bombWee1, FLYINGDAMAGE, min, max, spell)
end
doSetCreatureOutfit(cid, {lookType = 1603}, 10000)
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 17*600, cid, 3644587, -1)
for i = 1, 17 do
addEvent(hurricane, i*600, cid) --alterado v1.4
end
OK, já terminei o Air Vortex. No entanto, irei testá-lo amanhã, já que estou ocupado no momento.
Logo após os testes, escreverei o código das spells restantes.
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

Tópico movido para área correta.
Em pokemon moves.lua:
elseif spell == "Air Vortex" then
local config = {
outfit = xxx, --Outfit.
time = {xxx, xxx}, --{Duração da spell, intervalo entre cada "tick" de dano (em milésimos de segundos)},
storage = 93828,
effects = {
pullEffects = {
distance = xxx, --Distance effect do efeito de puxar pokémons.
effect = xxx, --Efeito de tornado.
},
damageEffect = xxx, --Efeito do redemoinho que aplica dano.
},
}
local time = os.time() + config.time[1]
function Pull(cid, ret)
local pos = getPosfromArea(cid, pullArea)
if pos and #pos > 0 then
for i = 1, #pos do
local c = getTopCreature(pos[i]).uid
if c > 0 then
if ehMonstro(c) then
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
elseif isSummon(c) then
local master = getCreatureMaster(c)
if isSummon(cid) then
if getPlayerStorageValue(master, 52480) >= 1 and getPlayerStorageValue(master, 52481) >= 0 then
local masterCid = getCreatureMaster(cid)
if isDuelingAgainst(masterCid, master) then
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
end
end
else
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
end
end
end
end
end
end
function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
doSendDistanceShoot(getThingPos(cid), pos, config.effects.pullEffects.distance)
doSendMagicEffect(pos, config.effects.pullEffects.effect)
end
function vortexDamage(cid)
if not isCreature(cid) then
return true
elseif time - os.time() < 0 then
return true
end
doDanoWithProtect(cid, FLYINGDAMAGE, getThingPos(cid), damageArea, min, max, config.effects.damageEffect)
addEvent(vortexDamage, config.time[2], cid)
end
local ret = {id = 0, cd = config.time[1], check = 0, cond = {"Silence", "Paralyze"}}
for b = 1, 3 do
for a = 1, 20 do
local pos = {x = getThingPos(cid).x + math.random(-4, 4), y = getThingPos(cid).y + math.random(-3, 3), z = getThingPos(cid).z}
addEvent(doSendTornado, a * 75, cid, pos)
end
end
Pull(cid, ret)
vortexDamage(cid)
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.time[1] * 1000)
setPlayerStorageValue(cid, config.storage, time)
addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
damageArea = createCombatArea{ --Área do dano da spell + redemoinhos.
{1, 1, 1},
{1, 2, 1},
{1, 1, 1},
}
pullArea = { --Área onde os pokémons serão puxados.
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}if ret and ret.cond then
ret.id = pid
ret.check = getPlayerStorageValue(pid, conds[ret.cond])
doCondition2(ret)
endif ret and ret.cond then
if type(ret.cond) == "table" then
for i = 1, #ret.cond do
ret.id = pid
ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]])
doCondition2(ret)
end
else
ret.id = pid
ret.check = getPlayerStorageValue(pid, conds[ret.cond])
doCondition2(ret)
end
endif ret.cond and ret.cond == "Miss" then
doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Silence" then
doSilence2(ret.id, ret.cd, ret.eff, ret.check)
elseif ret.cond and ret.cond == "Slow" then
doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Confusion" then
doConfusion2(ret.id, ret.cd, ret.check)
elseif ret.cond and ret.cond == "Burn" then
doBurn2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Poison" then
doPoison2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Fear" then
doFear2(ret.id, ret.cd, ret.check, ret.skill)
elseif ret.cond and ret.cond == "Stun" then
doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Paralyze" then
doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Sleep" then
doSleep2(ret.id, ret.cd, ret.check, ret.first)
elseif ret.cond and ret.cond == "Leech" then
doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage)
end if type(ret.cond) == "table" then
for i = 1, #ret.cond do
if ret.cond[i] and ret.cond[i] == "Miss" then
doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond[i] and ret.cond[i] == "Silence" then
doSilence2(ret.id, ret.cd, ret.eff, ret.check)
elseif ret.cond[i] and ret.cond[i] == "Slow" then
doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond[i] and ret.cond[i] == "Confusion" then
doConfusion2(ret.id, ret.cd, ret.check)
elseif ret.cond[i] and ret.cond[i] == "Burn" then
doBurn2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond[i] and ret.cond[i] == "Poison" then
doPoison2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond[i] and ret.cond[i] == "Fear" then
doFear2(ret.id, ret.cd, ret.check, ret.skill)
elseif ret.cond[i] and ret.cond[i] == "Stun" then
doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond[i] and ret.cond[i] == "Paralyze" then
doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond[i] and ret.cond[i] == "Sleep" then
doSleep2(ret.id, ret.cd, ret.check, ret.first)
elseif ret.cond[i] and ret.cond[i] == "Leech" then
doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage)
end
end
else
if ret.cond and ret.cond == "Miss" then
doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Silence" then
doSilence2(ret.id, ret.cd, ret.eff, ret.check)
elseif ret.cond and ret.cond == "Slow" then
doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Confusion" then
doConfusion2(ret.id, ret.cd, ret.check)
elseif ret.cond and ret.cond == "Burn" then
doBurn2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Poison" then
doPoison2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Fear" then
doFear2(ret.id, ret.cd, ret.check, ret.skill)
elseif ret.cond and ret.cond == "Stun" then
doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Paralyze" then
doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Sleep" then
doSleep2(ret.id, ret.cd, ret.check, ret.first)
elseif ret.cond and ret.cond == "Leech" then
doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage)
end
end
if isSleeping(mypoke) or isSilence(mypoke) then --alterado v1.5
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode fazer isso agora.")
return 0
else
newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
endif getPlayerStorageValue(mypoke, 93828) > os.time() then
return doPlayerSendCancel(cid, "Your pokemon can't use moves right now.")
endOutra hora escrevo o código do Unown Help e Unown Rush (vou sair daqui a pouco).
Perguntas: Há uma quantia mínima de Unowns para usar o Unown Rush? O dano de tal spell aumenta de acordo com o número de Unowns summonados? Seria bem legal isso (ex.: cada Unown aumenta o dano da spell em 5%).
Editado Junho 13 por zipter98
:0
Não disponibilizo esses sistemas pq Gabriel Sales fez exclusivamente para meu server, se foçe algum sistema feito aqui no xtibia, seria compartilhado.
Editado Junho 13 por Taiger
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Zipter, o Silence e Paralyze não funcionaram.
Excelente trabalho.
info
Grupo: Marquês
Registrado: 24/12/09
Posts: 1k
Reputação: +326
Gênero: Masculino
Char no Tibia: Necromanser

:0
Cuidado com o flood amigo
Ops, esqueci de aplicar o debuff ![]()
Código corrigido.
Editado Junho 13 por zipter98
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

Zipter, quando eu adiciono a parte Miss, Silence, Slow etc, da esse erro:
[13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/ [13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/ [13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/ [13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/ [13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/ [13/06/2015 13:13:05] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1244: 'end' expected (to close 'function' at line 82) near '<eof>' [13/06/2015 13:13:05] [Warning - LuaScriptInterface::initState] Cannot load data/lib/






info
Grupo: Artesão
Registrado: 09/10/13
Posts: 124
Reputação: +6
eu preciso de uma ajuda pra cria 3 magias sao a (unown help , unown rush , air vortex do shiny fearow da pxg)
as magias do unow so achei um server que tem posso fazer um video delas ou entao se puder entra no ot do cara e me add que mostro as magias como devem ser feitas.
server www.pokedg.com (meu char > Clebao) desde ja agradeço
quero essas magias pra por no meu server tbm mais o dono conseguiu com um cara que nao deixa repassa-las.