milbradt 19 Postado Julho 3, 2012 Share Postado Julho 3, 2012 (editado) Então.. estou com um problema, queria que minha spell Solta-se tipo.. 2 EFFECTS IGUAIS UM DO LADO DO OUTRO... não é DANO e sim apenas o EFEITO!!! Exemplo 1....Ao inves de colocar: local area = createCombatArea({ {0, 1, 1} }) Exemplo2...Colocar algo parecido como: Local area = createCombatArea({x=getTargetPosition(cid).x+1, y=getTargetPosition(cid).y, z=getTargetPosition(cid).z}) Deu pra entender? =X explicando que quero isso pois se coloco de acordo com o exemplo 1, o effect não sai onde o TARGET esta e sim em outra parte do mapa :S Aqui esta a spell: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 10) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 15) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, -150) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Editado Julho 5, 2012 por milbradt Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/ Compartilhar em outros sites More sharing options...
0 SmiX 265 Postado Julho 4, 2012 Share Postado Julho 4, 2012 Não entende direito, acho que você quer que a magia solte um efeito no target do player que solte a magia. Se for isso tenta assim. doSendDistanceShoot(getThingPos(cid), getThingPositionWithDebug(target), 2) local function damage(cid, target) if not isPlayer(target) or not isMonster(target) then return true end doAreaCombatHealth(cid, 25, getThingPositionWithDebug(target), boteaquisua area, -min, -max, aqui bote o efeito da magia) end addEvent(damage, 100, cid, target) end Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1288588 Compartilhar em outros sites More sharing options...
0 lfelipebsilva05 14 Postado Julho 4, 2012 Share Postado Julho 4, 2012 tenho 1 spell que vcê solta no target, o player e teleportado para os 4lados do target e volta. tpw um ninja. se for isso avise. Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1288604 Compartilhar em outros sites More sharing options...
0 milbradt 19 Postado Julho 4, 2012 Autor Share Postado Julho 4, 2012 (editado) Não entende direito, acho que você quer que a magia solte um efeito no target do player que solte a magia. Se for isso tenta assim. doSendDistanceShoot(getThingPos(cid), getThingPositionWithDebug(target), 2) local function damage(cid, target) if not isPlayer(target) or not isMonster(target) then return true end doAreaCombatHealth(cid, 25, getThingPositionWithDebug(target), boteaquisua area, -min, -max, aqui bote o efeito da magia) end addEvent(damage, 100, cid, target) end Infelizmente não deu certo o script =X, da erro no distro dizendo que a spell não possui um local area uahhuaha... e tipo.. eh apenas pra aparecer 2 EFFEITOS... tipo um do lado do outro no TARGET tenho 1 spell que vcê solta no target, o player e teleportado para os 4lados do target e volta. tpw um ninja. se for isso avise. Bah mano.. essa spell me interessa muito sim.. se puder me disponibilizar =D concerteza darei rep + tbm xD Editado Julho 5, 2012 por milbradt Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1288701 Compartilhar em outros sites More sharing options...
0 lfelipebsilva05 14 Postado Julho 8, 2012 Share Postado Julho 8, 2012 Malz eu estava ban aqui no xtibia. irei posta pra você. va em data>spells>scripts > criei um arquivo ninja.lua e cole isso dentro. local config = { efeitoTele = 10, -- efeito q ira aparacer a cada teleport. efeitoDamage = 1, -- efeito q ira aparecer ao hitar no alvo hits = 5, -- quantos hits vai dar delay = 200, -- intervalo de tempo a cada hit min = 10000, -- dano minimo max = 15000, -- dano maximo damage = COMBAT_PHYSICALDAMAGE -- tipo do dano } function isWalkable(pos, creature, pz, proj) -- nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function getPosDirs(p, dir) -- mkalo return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z} end function validPos(pos) tb = {} for i = 1, 8 do newpos = getPosDirs(pos, i) if isWalkable(newpos) then table.insert(tb, newpos) end end table.insert(tb, pos) return tb end spell = { start = function (cid, target, markpos, hits) if not isCreature(cid) then return true end if not isCreature(target) or hits < 1 then doTeleportThing(cid, markpos) doSendMagicEffect(getThingPos(cid), config.efeitoTele) return true end posAv = validPos(getThingPos(target)) rand = #posAv == 1 and 1 or #posAv - 1 doSendMagicEffect(getThingPos(cid), config.efeitoTele) doTeleportThing(cid, posAv[math.random(1, rand)]) doAreaCombatHealth(cid, config.damage, getThingPos(target), 0, -config.min, -config.max, config.efeitoDamage) addEvent(spell.start, config.delay, cid, target, markpos, hits - 1) end } function onCastSpell(cid) target = getCreatureTarget(cid) if target then spell.start(cid, target, getThingPos(cid), config.hits) end return true end agora vá em data>spells>spells.xml cole isso. <instant name="Ninja" words="ninja" lvl="9" mana="20" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="ninja.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> </instant> AJUDEI? REP+ Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1290181 Compartilhar em outros sites More sharing options...
0 milbradt 19 Postado Julho 10, 2012 Autor Share Postado Julho 10, 2012 Ajudou sim ^^ e tbm solucionou um pouco meu problema em relação de onde sair os effect ^^ Muito thank meo! Rep+ Duvida sanada, reportado! ^^ Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1290818 Compartilhar em outros sites More sharing options...
0 Erimyth 73 Postado Julho 17, 2012 Share Postado Julho 17, 2012 Duvida sanada. Movido. Link para o comentário https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/#findComment-1294446 Compartilhar em outros sites More sharing options...
Pergunta
milbradt 19
Então.. estou com um problema, queria que minha spell Solta-se tipo.. 2 EFFECTS IGUAIS UM DO LADO DO OUTRO... não é DANO e sim apenas o EFEITO!!!
Exemplo 1....Ao inves de colocar:
local area = createCombatArea({
{0, 1, 1}
})
Exemplo2...Colocar algo parecido como:
Local area = createCombatArea({x=getTargetPosition(cid).x+1, y=getTargetPosition(cid).y, z=getTargetPosition(cid).z})
Deu pra entender? =X
explicando que quero isso pois se coloco de acordo com o exemplo 1, o effect não sai onde o TARGET esta e sim em outra parte do mapa :S
Aqui esta a spell:
Editado por milbradtLink para o comentário
https://xtibia.com/forum/topic/189198-spell-colocar-target-xyz-ao-invez-de-area/Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados