Ir para conteúdo

jhonysavio

Campones
  • Total de itens

    20
  • Registro em

  • Última visita

Tudo que jhonysavio postou

  1. opa desculpe a demora, facul tava ossos essas semanas, claro, com M e mancebos? ou outra coisa
  2. boa mesmo! rep + deixa eu perguntar, poderia me ajudar em duas spells? talves simples, uma de sumon com duração ( sumona 3 monstros por x seg) e uma que aumente a velocidade de ataque
  3. se ainda precisar, posso fazer uma exatamente como a do history, mas a do miupinho esta bem legal
  4. ola! vi que fez um topico ajudando o pessoal nas spells... e cara, to eprdido nesse site, posto s coisas e ngm responde, nao sei se estou fazendo certo, gostaria de ajuda em 2 spells... uma que aumente a velocidade de ataque, e outra, que sumona bixos por tempo, tipo sumona 3 bixos por 15 seg.... se puder me ajudar agradeço muito,  tento lhe ajduar de alguma forma, rep++ ou qualquer outra coisa q consiga lhe ajudar

  5. qual a versao do ot?
  6. Ola, sou novo aqui no forum, gostaria de saber se alguem sabe fazer algum scrip, lib (ou algo do tipo) de um monstro, que não se mova (uma torre no caso) que ataque somente certos players... pode ser somente players que usem tal outfit, ou cor de bota... algo do tipo... agradeço desde ja!
  7. agradeço muito a atenção! e admiro seus scripts e trabalho! mas sim, quando estou longe da criatura ele usa no chão, no sqm da frente ( no caso se eu estiver na diagonal da criatura ele usa no chao na diagonal, resumindo rsrs ele usa na direçao do alvo, so q no chao) tenho q chegar perto pra acertar
  8. não da msg nenhuma, tipo ele usa a magia na direção do monstro mas sem range, somente no primeiro sqm tipo, se nao tiver nenhuma criatura selecionada ele diz "please choose a target" mas quando vc seleciona o alvo ele so usa no sqm da frente a magia esta sem range... existe alguma tag ou script pra colocar q adicione um range? sou leigo neste assunto
  9. nenhum erro nem nda, apenas fica sem range
  10. pois então, se eu retiro o range, e o casttargetordirection da tagg, ele fico tipo oe xori mort do 7.6 ... usando somente na frente dele, memso que tenha um alvo selecionado... mesma coisa acontece com o grab vis poxa, nao funcionou mesmo, queria mto esse script, ajuda ae pf
  11. magia exori mort local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local range = 5 function onCastSpell(cid, var) if getCreatureTarget(cid) == 0 then doPlayerSendCancel(cid, "Please choose a target.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getDistanceBetween(getPlayerPosition(cid), getCreaturePosition(getCreatureTarget(cid))) > range then doPlayerSendCancel(cid, "Target is not reachable.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end return doCombat(cid, combat, setSpellTarget(cid, var)) end a tag do XML <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="87" needlearn="0" event="script" value="attack/death strike.lua"> <vocation id="1"/> <vocation id="5"/> </instant>
  12. exatamente, so da pra usar a magia caso esteja colado no monstro/player...
  13. sim uso! yorots 9.81 global console vou postar aqui o que fiz na lib function isWalkable(pos, creature, proj, pz)-- by 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 pz then return false, true 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 getPositionsAround(pos) return { [1] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0}, [2] = {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0}, [3] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0}, [4] = {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [5] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0}, [6] = {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [7] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0}, [8] = {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0} } end function checkInterceptions(cid, pos, toPos, creature) local p = pos local dir = getDirectionTo(pos, toPos) local d = getDistanceBetween(pos, toPos) if dir < SOUTHWEST then while d > 0 do dir = getDirectionTo(p, toPos) p = getPosByDir(p, dir, 1) d = getDistanceBetween(p, toPos) if not isWalkable(p, creature, true, true) then return p end end else local nextPositions = {pos} local tam = 1 while d > 0 do local i = tam if tam > 2 then tam = 2 end local positions = getPositionsAround(nextPositions[tam]) if (dir == SOUTHWEST and (nextPositions[tam].x < toPos.x or nextPositions[tam].y > toPos.y)) or (dir == NORTHEAST and (nextPositions[tam].x > toPos.x or nextPositions[tam].y < toPos.y)) then positions = getPositionsAround(nextPositions[tam+1]) end if dir == SOUTHEAST and (nextPositions[tam].x > toPos.x or nextPositions[tam].y > toPos.y) or (dir == NORTHWEST and (nextPositions[tam].x < toPos.x or nextPositions[tam].y < toPos.y)) then positions = getPositionsAround(nextPositions[tam-1]) end d = getDistanceBetween(nextPositions[tam], toPos) tam = 0 if d == 0 then break end local sum = 0 if dir == SOUTHWEST then sum = 4 elseif dir == SOUTHEAST then sum = 2 elseif dir == NORTHWEST then sum = 6 elseif dir == SOUTHEAST then sum = 0 end for j=1, 3 do local index = j+sum local check = 0 if index > #positions then index = 1 end if dir == SOUTHWEST and (positions[index].x < toPos.x or positions[index].y > toPos.y) or (dir == SOUTHEAST and (positions[index].x > toPos.x or positions[index].y > toPos.y)) or (dir == NORTHWEST and (positions[index].x < toPos.x or positions[index].y < toPos.y)) or (dir == NORTHEAST and (positions[index].x > toPos.x or positions[index].y < toPos.y)) then check = 1 end local dx, dy = math.abs(positions[index].x - toPos.x) , math.abs(positions[index].y - toPos.y) if dx == dy and (positions[index].x == pos.x or positions[index].y == pos.y) and ((getDistanceBetween(positions[index], pos) > 1 and getDistanceBetween(positions[index], toPos) > 1) or getDistanceBetween(positions[index], pos) > 5 and getDistanceBetween(positions[index], toPos) > 0)then check = 1 end if getDistanceBetween(positions[index], toPos) == 0 then return toPos end if getDistanceBetween(positions[index], toPos) < d and check == 0 then if not isWalkable(positions[index], creature, true, true) then return positions[index] end tam = tam + 1 nextPositions[tam] = positions[index] end end end end return toPos end function setSpellTarget(cid, var) local target = getCreatureTarget(cid) var.pos = checkInterceptions(cid, getPlayerPosition(cid), getCreaturePosition(target), true) if isCreature(getThingFromPos(var.pos).uid) then var.number = getThingFromPos(var.pos).uid else var.number = false end return var end no xml local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local range = 5 function onCastSpell(cid, var) if getCreatureTarget(cid) == 0 then doPlayerSendCancel(cid, "Please choose a target.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getDistanceBetween(getPlayerPosition(cid), getCreaturePosition(getCreatureTarget(cid))) > range then doPlayerSendCancel(cid, "Target is not reachable.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end return doCombat(cid, combat, setSpellTarget(cid, var)) end
  14. ;( aqui ainda n funcionou...da o mesmo erro...fica sem range
  15. ficaria assim? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local range = 5 function onCastSpell(cid, var) if getCreatureTarget(cid) == 0 then doPlayerSendCancel(cid, "Please choose a target.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getDistanceBetween(getPlayerPosition(cid), getCreaturePosition(getCreatureTarget(cid))) > range then doPlayerSendCancel(cid, "Target is not reachable.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end return doCombat(cid, combat, setSpellTarget(cid, var)) end ... pq nao funcionou, da o mesmo erro e fica sem range... e se eu for no xml e retirar o casterTargetOrDirection="1". ele da erro, fica usando o spells no proprio player como se fosse um exura
  16. <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="0" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="87" needlearn="0" event="script" value="attack/death strike.lua"> <vocation id="1"/> <vocation id="5"/> </instant> <instant name="Energy Grab" words="exori grab vis" needtarget="1" lvl="10" mana="20" prem="1" range="6" blockwalls="1" exhaustion="2000" groups="1,2000" icon="122" needlearn="0" event="script" value="attack/energy grab.lua"> <vocation id="4"/> <vocation id="8"/> </instant> A death striker e o exori grab estao assim no xml
  17. sim eu tento mas não vai, vou ver se mando um giff aqui ou print, tenho q colar no monstro no caso pra conseguir usar... 1 sqm de distancia e ja não usa... e se tiver outro monstro na frente ele aparece isso em vez de priorizar o monstro d frente local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) return doCombat(cid, combat, setSpellTarget(cid, var)) end a magia death striker esta assim... mas qualquer spells range q eu altere ... ele perde o range
  18. ja agradeço muito a atenção rep+ alterei, n deu erro na hora de iniciar... mas a hora q uso as magias nao funciona, aparece "target not reachable" tipo a spell do grab vis, e todas q tento usar com isso tenho q encostar no alvo pra usar... elas perdem a distancia
  19. muito obrigado, admiro muito seus scripts!!! function isWalkable(pos, creature, proj, pz)-- by 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 pz then return false, true 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 getPositionsAround(pos) return { [1] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0}, [2] = {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0}, [3] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0}, [4] = {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [5] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0}, [6] = {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [7] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0}, [8] = {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0} } end function checkInterceptions(cid, pos, toPos, cond) local p = pos local dir = getDirectionTo(pos, toPos) local d = getDistanceBetween(pos, toPos) if dir < SOUTHWEST then while d > 0 do dir = getDirectionTo(p, toPos) p = getPosByDir(p, dir, 1) d = getDistanceBetween(p, toPos) if not isWalkable(p, true, true, true) then return p end end else local creature = cond or true local nextPositions = {pos} local tam = 1 while d > 0 do local i = tam if tam > 2 then tam = 2 end local positions = getPositionsAround(nextPositions[tam]) if (dir == SOUTHWEST and (nextPositions[tam].x < toPos.x or nextPositions[tam].y > toPos.y)) or (dir == NORTHEAST and (nextPositions[tam].x > toPos.x or nextPositions[tam].y < toPos.y)) then positions = getPositionsAround(nextPositions[tam+1]) end if dir == SOUTHEAST and (nextPositions[tam].x > toPos.x or nextPositions[tam].y > toPos.y) or (dir == NORTHWEST and (nextPositions[tam].x < toPos.x or nextPositions[tam].y < toPos.y)) then positions = getPositionsAround(nextPositions[tam-1]) end d = getDistanceBetween(nextPositions[tam], toPos) tam = 0 if d == 0 then break end local sum = 0 if dir == SOUTHWEST then sum = 4 elseif dir == SOUTHEAST then sum = 2 elseif dir == NORTHWEST then sum = 6 elseif dir == SOUTHEAST then sum = 0 end for j=1, 3 do local index = j+sum local check = 0 if index > #positions then index = 1 end if dir == SOUTHWEST and (positions[index].x < toPos.x or positions[index].y > toPos.y) or (dir == SOUTHEAST and (positions[index].x > toPos.x or positions[index].y > toPos.y)) or (dir == NORTHWEST and (positions[index].x < toPos.x or positions[index].y < toPos.y)) or (dir == NORTHEAST and (positions[index].x > toPos.x or positions[index].y < toPos.y)) then check = 1 end local dx, dy = math.abs(positions[index].x - toPos.x) , math.abs(positions[index].y - toPos.y) if dx == dy and (positions[index].x == pos.x or positions[index].y == pos.y) and ((getDistanceBetween(positions[index], pos) > 1 and getDistanceBetween(positions[index], toPos) > 1) or getDistanceBetween(positions[index], pos) > 5 and getDistanceBetween(positions[index], toPos) > 0)then check = 1 end if getDistanceBetween(positions[index], toPos) == 0 then return toPos end if getDistanceBetween(positions[index], toPos) < d and check == 0 then if not isWalkable(positions[index], creature, true, true) then return positions[index] end tam = tam + 1 nextPositions[tam] = positions[index] end end end end return toPosend function setSpellTarget(cid, var) if var.pos then var.pos = checkInterceptions(cid, getPlayerPosition(cid), var.pos) end if isCreature(var.number) then var.pos = checkInterceptions(cid, getPlayerPosition(cid), getCreaturePosition(var.number))--getMousePos(cid) var.pos.stackpos = STACKPOS_TOP_MOVABLE_ITEM_OR_CREATURE if getDistanceBetween(var.pos, getCreaturePosition(var.number)) ~= 0 and isCreature(getThingFromPos(var.pos).uid) then var.number = getThingFromPos(var.pos).uid elseif not isCreature(getThingFromPos(var.pos).uid) then var.number = 0 doPlayerSendCancel(cid, "Target not reachable.") end end return var end
  20. coloquei esse script e não funcionou, entre tanto as runas de gfb nao ficaram em area, e todas as runas acertam no chao ( precisa ser exatamente em cima do monstro) o spell de exori sai apenas no sqm q o meu perssonagem esta... e o "exori grab vis" tbm nao funcionou... e todas as magias q alterei para bloquear.... elas nem saem e nem aparecem poff
  21. Cara alguem ai sabe editar ou se é que tem como... editar os monstros do tibia ... nao mudar a cor deles atack life etc... tipo colocar um dragon em azul ou preto e tals... é possivel?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...