Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''spell''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Skyen

    Detect Life

    Vou postar alguns scripts meus que estiveram engavetados. Faz algum tempo que fiz estes scripts, então não vou postar screenshots ou como configurar, mas as configurações são fáceis de entender, então divirtam-se. O primeiro deles é uma spell, "detect life", que funciona igual à um exiva, mas detecta todos os players perto de você (incluindo monstros e npcs na versão "ultimate"). /data/spells/scripts/detect life.lua -- This script is part of Detect Life Spell -- Copyright (C) 2011 Skyen Hasus -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- Radius of floors that will be detected by the spell local floors = 0 -- Magic effect shown on detected creatures local effect = CONST_ME_MAGIC_BLUE -- Message sent as a warning to detected players, false to deactivate local warn = "You feel like you're being watched." -- Message sent when no living creature is found nearby local nolife = "You detected no signs of life nearby." -- If true, the message will show in detail how many creatures of each type are in each direction. local detailed = false local area = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0}, {0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0}, {0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0}, {0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0}, {0, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0}, {0, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 0}, {0, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0}, {7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3}, {0, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 0}, {0, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0}, {0, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0}, {0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0}, {0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0}, {0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0}, {0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local keys = { [1] = "north", [2] = "northeast", [3] = "east", [4] = "southeast", [5] = "south", [6] = "southwest", [7] = "west", [8] = "northwest", } function is_index(t, index) for i, v in ipairs(t) do if index == i then return true end end return false end local function get_message(life, keys) local msg local add = {} if life.total == 0 then return false end for key, direction in ipairs(keys) do local keymsg = "" local keyadd = {} if life[key].players == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a player") elseif life[key].players > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].players .. " players") end if life[key].monsters == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a monster") elseif life[key].monsters > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].monsters .. " monsters") end if life[key].npcs == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a NPC") elseif life[key].npcs > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].npcs .. " NPCs") end for i = 1, #keyadd do if i == #keyadd and #keyadd > 1 then keymsg = keymsg .. " and " elseif i ~= 1 then keymsg = keymsg .. ", " end keymsg = keymsg .. keyadd[i] end if #keyadd > 0 then table.insert(add, keymsg .. " by the " .. keys[key]) end end for i = 1, #add do if i == #add and #add > 1 then msg = msg .. " and " elseif i ~= 1 then msg = msg .. ", " end msg = msg .. add[i] end return msg .. "." end local function detect_life(area, keys, pos, floors, effect, warn) local detected = {} local center = {} -- Make sure the area is large enought and has a center if #area < 1 or #area[1] < 1 or #area % 2 == 0 or #area[1] % 2 == 0 then error("The size of the area is invalid.") return false end center.y = math.ceil(#area / 2) center.x = math.ceil(#area[1] / 2) detected.total = 0 for key, value in pairs(keys) do detected[key] = { players = 0, monsters = 0, npcs = 0, } end for z = -floors, floors do for y = 1, #area do -- Make sure that the size of the area doesn't vary if #area[y] ~= #area[1] then error("The size of the area varies.") return false end for x = 1, #area[y] do local dpos = {} local key = area[y][x] dpos.x = pos.x - center.x + x dpos.y = pos.y - center.y + y dpos.z = pos.z + z dpos.stackpos = STACKPOS_TOP_CREATURE local thing = getThingFromPos(dpos, false) if thing.uid ~= 0 and is_index(keys, key) and not isPlayerGhost(thing.uid) then if isPlayer(thing.uid) then if warn then doPlayerSendTextMessage(thing.uid, MESSAGE_EVENT_ADVANCE, warn) end detected[key].players = detected[key].players + 1 elseif isMonster(thing.uid) then detected[key].monsters = detected[key].monsters + 1 elseif isNpc(thing.uid) then detected[key].npcs = detected[key].npcs + 1 end detected.total = detected.total + 1 doSendMagicEffect(dpos, effect) end end end end return detected end function onCastSpell(cid, var) local pos = getThingPosition(cid) local life = detect_life(area, keys, pos, floors, effect, warn) if not life then return false end local message = "There " .. (life.total == 1 and "is " or "are ") .. life.total .. " creatures nearby." if detailed then message = get_message(life, keys) end if life.total == 0 then message = nolife end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, message) return true end /data/spells/scripts/ultimate detect life.lua -- This script is part of Detect Life Spell -- Copyright (C) 2011 Skyen Hasus -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- Radius of floors that will be detected by the spell local floors = 1 -- Magic effect shown on detected creatures local effect = CONST_ME_MAGIC_BLUE -- Message sent as a warning to detected players, false to deactivate local warn = false -- Message sent when no living creature is found nearby local nolife = "You detected no signs of life nearby." -- If true, the message will show in detail how many creatures of each type are in each direction. local detailed = true local area = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0}, {0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0}, {0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0}, {0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0}, {0, 0, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0}, {0, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0}, {0, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0}, {0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0}, {0, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0}, {0, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 0}, {0, 0, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0}, {0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0}, {0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0}, {0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0}, {0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local keys = { [1] = "north", [2] = "northeast", [3] = "east", [4] = "southeast", [5] = "south", [6] = "southwest", [7] = "west", [8] = "northwest", } function is_index(t, index) for i, v in ipairs(t) do if index == i then return true end end return false end local function get_message(life, keys) local msg local add = {} if life.total == 0 then return false end for key, direction in ipairs(keys) do local keymsg = "" local keyadd = {} if life[key].players == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a player") elseif life[key].players > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].players .. " players") end if life[key].monsters == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a monster") elseif life[key].monsters > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].monsters .. " monsters") end if life[key].npcs == 1 then if not msg then msg = "There is " end table.insert(keyadd, "a NPC") elseif life[key].npcs > 1 then if not msg then msg = "There are " end table.insert(keyadd, life[key].npcs .. " NPCs") end for i = 1, #keyadd do if i == #keyadd and #keyadd > 1 then keymsg = keymsg .. " and " elseif i ~= 1 then keymsg = keymsg .. ", " end keymsg = keymsg .. keyadd[i] end if #keyadd > 0 then table.insert(add, keymsg .. " by the " .. keys[key]) end end for i = 1, #add do if i == #add and #add > 1 then msg = msg .. " and " elseif i ~= 1 then msg = msg .. ", " end msg = msg .. add[i] end return msg .. "." end local function detect_life(area, keys, pos, floors, effect, warn) local detected = {} local center = {} -- Make sure the area is large enought and has a center if #area < 1 or #area[1] < 1 or #area % 2 == 0 or #area[1] % 2 == 0 then error("The size of the area is invalid.") return false end center.y = math.ceil(#area / 2) center.x = math.ceil(#area[1] / 2) detected.total = 0 for key, value in pairs(keys) do detected[key] = { players = 0, monsters = 0, npcs = 0, } end for z = -floors, floors do for y = 1, #area do -- Make sure that the size of the area doesn't vary if #area[y] ~= #area[1] then error("The size of the area varies.") return false end for x = 1, #area[y] do local dpos = {} local key = area[y][x] dpos.x = pos.x - center.x + x dpos.y = pos.y - center.y + y dpos.z = pos.z + z dpos.stackpos = STACKPOS_TOP_CREATURE local thing = getThingFromPos(dpos, false) if thing.uid ~= 0 and is_index(keys, key) then if isPlayer(thing.uid) then if warn then doPlayerSendTextMessage(thing.uid, MESSAGE_STATUS_DEFAULT, warn) end detected[key].players = detected[key].players + 1 elseif isMonster(thing.uid) then detected[key].monsters = detected[key].monsters + 1 elseif isNpc(thing.uid) then detected[key].npcs = detected[key].npcs + 1 end detected.total = detected.total + 1 doSendMagicEffect(dpos, effect) end end end end return detected end function onCastSpell(cid, var) local pos = getThingPosition(cid) local life = detect_life(area, keys, pos, floors, effect, warn) if not life then return false end local message = "There " .. (life.total == 1 and "is " or "are ") .. life.total .. " creatures nearby." if detailed then message = get_message(life, keys) end if life.total == 0 then message = nolife end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, message) return true end /data/spells/spells.xml <!-- Detect Life Spell --> <instant name="Detect Life" words="exiva vita" lvl="1" mana="0" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="detect life.lua"/> <instant name="Ultimate Detect Life" words="exiva mas vita" lvl="60" mana="820" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="ultimate detect life.lua"/> Se quiserem usem apenas uma das versões da spell, estão bem customizáveis.
  2. tipo eu uso o centurion 4.0 e mt dos meus players reclamaram -cara vc usa centurion veio da base PDA e nao tem shreed team -cara scyther e scizor sem shreed team nao eh scyther e scizor -cara nao vou jogar mais seu poetibia nao tem shreed team e entre outras reclamaçoes e to precisando mt saber como adicionar essa spell eu percebi pela base do PDA ela eh diferente de spells normais de pokemon ela eh mais complicada de adicionar e quero saber como faço e pfv sem spoilers pois nao consigo abrir
  3. ja tinha criado um topico so que me passaram um tutorial de como criar spells para poketibia so que para PDA so que eu uso centurion entao os scripts nao eram compativeis se alguem poder postar um tutorial de como criar spells para pokemon centurion ou mandar um link eu agradeço
  4. Bom galera eu queria uma magia de trap meio diferenciada... Tipo eu ja tenho o script dela mas ela não some o trap fica pra sempre queria que me ajudassem pois nao entendo muito de script! Ja tentei usar varias dicas de tutoriais! Vou por essa imagem com o trap: imagem.bmp Pois tenho esse script aqui: Pois ele nao some e eu queria que tipo o char ta virado pra cima... dai o trap sai pra cima e se ele tive pra baixo saia para baixo... Obg.
  5. Algum script spell maker sei la poderia me da uma ajuda em spells? Quem puder envie um email para ntogenerations@hotmail.com Nao sei se esta na area corre,se nao tiver mals
  6. Eae pessoal, irei postar 2 magias para colocar no seu otserver! Abra seuot/data/spells/scripts/attack Copie algum arquivo lua, e nome-ie de rushkina: Primeira Magia: Exori Rush Cole isso dentro da pasta: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 50, 60, 60, 65) local arr = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Depois volte para a pasta spells, e abra o arquivo spells.xml, cole isso embaixo de alguma magia: <instant name="Rush Kina" words="exori rush" lvl="300" mana="340" prem="1" needweapon="1" exhaustion="1200" needlearn="0" script="attack/rushkina.lua"> <vocation id="4"/> <vocation id="8"/> </instant> Imagem da magia: _____________ Segunda Magia: Exevo mas holy Faça igual a primeira magia: seuot/data/spells/scripts/attack Copie algum arquivo lua, e nome-ie de star Cole isso dentro da pasta: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_STUN) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 4, 4, 5, 6) local arr = { {0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 2, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Depois volte para a pasta spells, e abra o arquivo spells.xml, cole isso embaixo de alguma magia: <instant name="Star" words="exevo mas holy" lvl="100" mana="1100" prem="1" exhaustion="1000" selftarget="1" needlearn="0" script="attack/star.lua"> <vocation id="2"/> <vocation id="6"/> <vocation id="1"/> <vocation id="5"/> </instant> Imagem da magia: Espero te ajudado com essas magias ^^.
  7. Oneshot

    Fire Aura

    Nome: Fire Aura Autor: Oneshot Tipo: Magia Faz tempo que eu não faço magias, então eu resolvi escrever qualquer coisa e deu nisso, uma aura que fica circundando o jogador por X tempo causando dano. Crie um arquivo chamado fire aura.lua, e coloque o conteúdo abaixo: local offsets = { [0] = {{0, 0}, {1, 0}, {1, 1}, {1, 2}, {0, 2}, {-1, 2}, {-1, 1}, {-1, 0}}, [1] = {{0, 0}, {0, 1}, {-1, 1}, {-2, 1}, {-2, 0}, {-2, -1}, {-1, -1}, {0, -1}}, [2] = {{0, 0}, {-1, 0}, {-1, -1}, {-1, -2}, {0, -2}, {1, -2}, {1, -1}, {1, 0}}, [3] = {{0, 0}, {0, -1}, {1, -1}, {2, -1}, {2, 0}, {2, 1}, {1, 1}, {0, 1}} } local storage = 88888 local k = 1 local duration = 30 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 10, 10, 2.4, 2.4) function onCastAura(cid, lastDirection) local position = getPositionByDirection(getThingPosition(cid), lastDirection, 1) local offset = offsets[lastDirection][(k > #offsets[lastDirection] and ((k % #offsets[lastDirection]) == 0 and #offsets[lastDirection] or (k % #offsets[lastDirection])) or k)] local tmp = {x = position.x + offset[1], y = position.y + offset[2], z = position.z} doCombat(cid, combat, positionToVariant(tmp)) doCreatureSetLookDirection(cid, lastDirection) if os.time() < getCreatureStorage(cid, storage) then addEvent(onCastAura, 100, cid, getCreatureLookDirection(cid)) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Aura effect ended.") mayNotMove(cid, false) end k = k + 1 end function onCastSpell(cid, var) doCreatureSetStorage(cid, storage, os.time() + duration) mayNotMove(cid, true) onCastAura(cid, getCreatureLookDirection(cid)) return true end No spells.xml, adicione uma linha: <instant name="Fire Aura" words="fire aura" lvl="100" mana="550" needlearn="0" event="script" value="fire aura.lua"/> A magia tem uma duração de 30 segundos, porém essa duração é configurável. Como ainda não criei uma lógica relacionando o movimento do jogador com a aura, então resolvi travar o movimento do jogador enquanto a magia é executada. Abaixo a demonstração em GIF dela. O script está bem pogado, talvez eu consiga entender melhor o padrão e melhorar a construção do código. Mude aqui efeito e tipo de dano se quiser, para criar outras auras: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 10, 10, 2.4, 2.4) Abraços.
  8. Aew galera, o juan500 me deu a ideia de adicionar um "clone" ao usar o Tsukuyomi, em fim ta ae: (O vídeo se encontra no final do tópico). Em data/monster crie um arquivo.xml nomeie para Tsukuyomi e adicione: Editando: -Verde: Frases -Vermelho: Intervalo para o Tsukuyomi sumir Em monsters.xml adicione: --------------------Agora aqui é o tutorial passado, com algumas modificações no script Aew galera, aqui está a magia Tsukuyomi, aquela mesmo do Naruto. Testado em TSF 8.6. Primeiramente abra seu RME. Faça uma areá mais ou menos igual a seguinte (os tiles podem mudar de acordo com seu gosto): No caso estou usando um chão "invisível". Após criar essa areá adicione "NoPVPZone" (em toda areá). Depois adicione o "NoLogout" (em toda areá). Em data/movements/script crie um arquivo.lua nomeie para sharingan e adicione: Editando: -Verde: Numero do efeito (/z) -Azul: Life que vai perder -Laranja: Intervalo para tirar life (1000 = 1 segundo) -Roxo: Quantidade de vezes que vai bater Em movements.xml adicione: Em data/talkactions/scripts crie um arquivo.lua nomeie para tsukuyomi e adicione: Editando: ​Script auto-explicativo, variáveis em verde. Sobre as cordenadas: Para onde o teleport levará (players): Seria o tile em que os player atingidos pelo Tsukuyomi seria levados: Areá circulada em azul. Para onde o teleport levará (caster): Seria o tile, onde quem usou a magia (o caster) irá teleportar. Toda a areá em verde! Obs: O tile com um x não pode ser escolhido. Ponta de cima na esquerda na area que o tp leva (onde o tile está escuro): Ponta de baixo na direita na area que o tp leva (onde o tile está escuro): Em talkactions.xml adicine: <talkaction words="tsukuyomi" event="script" value="tsukuyomi.lua"/> Após fazer isso adicione o tile de movements no tile em que os players irão teleportar ao serem atingidos. Adicionando efeitos, nesse local: Em data/globalevents/scripts crie um arquivo.lua nomeie para sharingan e adicione: Editando: - Verde: Posição - Vermelho: Mensagem e cor - Azul: efeito Em globalevents.xml: Editando: - Vermelho: Tempo para aparecer os efeitos (1 = 1 segundo), podendo deixar 0.1 Qualquer duvida, só postar. Aqui vai um vídeo demonstrativo: ​Créditos: Newtonnotwen, pelo script, pela ideia e pelo post. LuckOake, pelo script inicial Vodkart, pelo tile Jhon992, pelo tile juan500, pela ideia do Tsukuyomi 2.0. Por favor comentem, se tiver mal explicado eu edito.
  9. Boa noite galera. Eu queria uma "runa" tipo a GFB mesmo, porém, que ficasse um efeito constante no monstro e também os que rancam hits, como o da firefield. Se pudesse ser tipo, quando tacar no monstro a runa, criar um "item" nele, que ficasse nele por um tempo. Tipo o fogo da firefield quando está no chão, uma chama constante, mas grudada no monstro, e nem precisa deixar rastros. Bom, estava meio complicada para explicar, mas creio que deu pra entender. Ficarei muito grato.
  10. Eae galera, eu tava com uma duvida sobre um script de spell de transformação, mais ninguem arrumou nem mesmo o criador do script, então decidir refaser. Pra quem quiser ta ai. Data/Spells/Script/Transform.lua function onCastSpell(cid, var) local config = { [1] = {level = 50, newvoc = 2, outfit = 37, eff = 56}, [2] = {level = 100, newvoc = 3, outfit = 18, eff = 57}, [3] = {level = 150, newvoc = 4, outfit = 71, eff = 58}, [4] = {level = 200, newvoc = 5, outfit = 70, eff = 59} } trans = config[getPlayerVocation(cid)] if not trans then doPlayerSendCancel(cid, "You can not transform.") return false elseif getPlayerLevel(cid) >= trans.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You not level " .. trans.level .. " to transform.") end doSetCreatureOutfit(cid, {lookType = trans.outfit}, -1) doPlayerSetVocation(cid, trans.newvoc) doSendMagicEffect(getCreaturePosition(cid), trans.eff) doPlayerSendCancel(cid, "You Transformed!") return true end Tag, Data/Spells/Spells.xml <instant name="Transform" words="transform" lvl="1" mana="0" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="transform.lua"> </instant> Explicando. Legenda: Vermelho: Vocação que você quer que transforme Azul: Level que ira prescisar para essa tal vocação se transformar Laranja: Nova vocação que a vocação anterior, ou seja 1 ira se transformar Verde: Id do outfit do personagem (roupa) Rosa: Efeito que vai aparecer quando o player transformar Gostou!? Ajudei!? REP+ Créditos: LuckOake
  11. Bem to com um probleminha e gostaria de uma ajudazinha não sei oq eu fiz de errado criei 2 novas vocações para meu servidor c16. shenron o c16 ele transforma todas ate depois da rb mais o shenron não sai nem da outfit iniçial meu script e esse! galera se puder ajudar agradeço .-.
  12. Iae galera, hoje eu vim pedir a ajuda de vocês para uma spell, que quando eu uso ela dá um efeito encima do player e no monstro, eu sei colocar o efeito no monstro mas não sei colocar no player, uma imagem pra esplicar melhor: para o xtibia.bmp Rep ++ pra quem ajudar.
  13. .Iae galera do xtibia, venho hoje pedir a vocês uma script de uma spell que ela da um efeito encima de vc depois é lançado outro efeito ao monstro e depois dá um efeito no monstro q dá rit, abaixo umas imagens explicando melhor: 1 efeito: 2 efeito: 3 efeito: Rep + pra quem ajudar.
  14. Ola galera do xtibia hoje venho pedir a vocês que me ajudascem com essa script que quando eu fasso a spell com ela fica tudo normal mas quando eu crio mais com a mesma script o efeito fica o mesmo em todas as spell criadas pela mesma script, se não entenderam eu explico mais, por favor me ajudem to precisando, rep + pra quem me ajudar. script:
  15. E ai galera, blz!? @Edit Se você chegou a este tópico a fim de arrumar a vocação paladin de seu servidor, recomendo que veja o seguinte tópico: http://www.xtibia.co...75#entry1427575 e esqueça o que tem aqui abaixo, pois a solução é melhor. @Fim edit Olha... eu sei que esse tipo de magia é escrota, mas foi o único jeito que encontrei para arrumar a vocação Paladin no meu servidor, ela está funcionando, porém eu gostaria que ela não desse exhausted com as outras magias... pois queria que fosse igual as potions. As magias estão assim, em \data\spells\scripts\healing: sobemana local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 600, 0, 800) function onCastSpell(cid, var) return doCombat(cid, combat, var) end sobevida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 1000, 0, 1200) function onCastSpell(cid, var) return doCombat(cid, combat, var) end E em \data\spells\spells.xml: <instant name="sobevida" words="sobevida" lvl="0" mana="0" prem="1" selftarget="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="healing/sobevida.lua"> <vocation id="3"/> <vocation id="7"/> </instant> <instant name="sobemana" words="sobemana" lvl="0" mana="0" prem="1" selftarget="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="healing/sobemana.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Como podem ver, o exhaustion está 1500, que acho que deve ser 1 segundo e meio, não importa... o que importa é que ela da exhaust em outras magias de cura (exura, exura san, exura vita) e gostaria de deixar igual a uma poção, só que por meio da fala, para que o player consiga atacar enquanto se cura. Por exemplo... um Knight consegue usar exana mort + potion sem que uma das duas dê exhaust na outra magia. Alguém teria algum script para resolver isso!? Ou então saberia me dizer se existe um script ou algo do tipo que faça o player conseguir falar uma palavra a cada x segundos!? Porque dai eu colocaria o exhaustion da magia = 0 e bloqueava a palavra durante alguns segundos...
  16. algum poderia em ajudar eu fiz uma spell e gostaria q ela empurrasse ,vou postar aki se alguem puder ajudar por favor fast '-'. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 81) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 215) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -7.0, 7.25, -7.15, 7.55) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 71) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 215) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -7.0, 7.25, -7.15, 7.55) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 150, parameters) return TRUE end
  17. Bom galera eu queria saber como eu fasso essa spell para deixar o personagem com um buff permanente Exemplo repare os raios amarelos saindo do naruto queria uma spell que fize-se isto =/ QUEM FIZER REP+ OBRIGADO
  18. Galera do Xtibia, estou com uma spell que esta sem exhaust e nem gasta chakra, script: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, -900, -1.0, -1200) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 16) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -900, -1.0, -1200) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 16) arr1 = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local area2 = createCombatArea(arr2) setCombatArea(combat2, area2) function onCastSpell(cid, var) local p = getCreaturePosition(cid) local x = { [0] = {x=p.x+1, y=p.y, z=p.z}, [1] = {x=p.x+2, y=p.y+1, z=p.z}, [2] = {x=p.x+1, y=p.y+2, z=p.z}, [3] = {x=p.x, y=p.y+1, z=p.z} } local y = { [0] = 47, [1] = 47, [2] = 47, [3] = 47 } pos = x[getCreatureLookDirection(cid)] eff = y[getCreatureLookDirection(cid)] doSendMagicEffect(pos, eff) doCombat(cid, combat1, var) doCombat(cid, combat2, var) end tag do spell.xml: <instant name="Oodama Rasengan" words="oodama rasengan" lvl="80" mana="690" range="1" casterTargetOrDirection="1" exhaustion="2000" needlearn="0" event="script" value="naruto/oodama rasengan.lua"> <vocation id="37"/> <vocation id="38"/> <vocation id="39"/> <vocation id="40"/> <vocation id="64"/> <vocation id="65"/> <vocation id="66"/> <vocation id="67"/> </instant>
  19. galera eu estou com um script de uma spell que ela muda a vocação do player e muda a outfit, só tem um problema ela não esta mudando o outfit, já tentei mais só conheço uma função que transforma um player, que é doSetCreatureOutfit,mais essa função não esta funcionando, alguém ajuda ai.
  20. Strikes Terra element: efeitos de um exori tera e um "exevo gran mas tera" Script: (combinado os efeito de exori tera + exevo gran mas tera) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_PLANTATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_PLANTATTACK) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Spells.xml <instant name="tera divine" words="tera divine" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/tera divine.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> Screenshot (Obs:no game fica mais lindo .-.) ataques tera feios nunca mais 'o' maldito screenshot n mostra os efeitos ' kkkk Ice element: Combinados efeito de Avalanche + Exori frigo = Orgasmos nerd Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Spells.xml <instant name="ice divine" words="ice divine" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/ice divine.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> Screenshot (Obs:no game fica mais lindo .-.) Energy Element efeitos de um exori vis com energy beam Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.8, 0) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Spells.xml <instant name="divine vis" words="divine vis" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/divine vis.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> Screenshot (Obs:no game fica mais lindo .-.) Fire Element efeitos de um "exevo gran mas flam" com exori flam Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Spells.xml <instant name="fire divine" words="fire divine" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/fire divine.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> Screenshot (Obs:no game fica mais lindo .-.) AoE Groundshock Script: local combatx = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 37) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, -1.0, -1, -1, -1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 48) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 49) local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 0, 3, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local areax = createCombatArea(arr1) setCombatArea(combatx, area1) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(combatx, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function onCastSpell1(parameters) doCombat(parameters.cid, combatx, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 300, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 80, parameters) end SpellsXML: <instant name="groundshock" words="groundshock" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/groundshock.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> ScreenShot: Como vocês sabem screenshot não mostra spell ;o Death Aoe*new Script: local combatx = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 31) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, -1.0, -1, -1, -1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 1.0, 0, -1.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 38) local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 3, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local areax = createCombatArea(arr1) setCombatArea(combatx, area1) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(combatx, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function onCastSpell1(parameters) doCombat(parameters.cid, combatx, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 300, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 80, parameters) end Spells.XML <instant name="death aoe" words="death aoe" lvl="15" mana="99999999" prem="0" range="7" casterTargetOrDirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="hpspells/death aoe.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="3"/> <vocation id="7"/> <vocation id="6"/> <vocation id="4"/> <vocation id="8"/> </instant> Screenshot Like a Ninja Script: local combatx = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 7) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, -1.0, -1, -1, -1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 34) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 1.0, 0, -1.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 44) local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 3, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local areax = createCombatArea(arr1) setCombatArea(combatx, area1) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(combatx, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function onCastSpell1(parameters) doCombat(parameters.cid, combatx, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 300, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 80, parameters) end SpellsXML: <instant name="like ninja" words="like ninja" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/like ninja.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> ScreenShot: Como vocês sabem screenshot não mostra spell ;o Essa spell é realmente linda eu tive 5 orgasmos simultâneos. sabe porque? porque são 5 ataques simultâneos isso mesmo, o ataque está super balanceado, é um pouquinho mais forte que o eternal winter (exevo gran mas frigo). espero que gostem Avalon strength Script: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 28) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECTT, 29) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 35) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 41) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local combat5 = createCombatObject() setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat5, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr4 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr5 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) local area5 = createCombatArea(arr5) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) setCombatArea(combat5, area5) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.combat5, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 200, parameters) addEvent(onCastSpell3, 300, parameters) addEvent(onCastSpell4, 400, parameters) addEvent(onCastSpell5, 500, parameters) return TRUE end SpellsXML: <instant name="Avalon strength" words="Avalon strength" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/Avalon strength.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> ScreenShot: Obs: vocês ja sabem que a spell é mto mais linda no game =) dessa vez em gif Stronderwave Script: local combatx = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 33) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, -1.0, -1, -1, -1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 5) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 1.0, 0, -1.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 6) local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 3, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local areax = createCombatArea(arr1) setCombatArea(combatx, area1) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(combatx, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function onCastSpell1(parameters) doCombat(parameters.cid, combatx, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 300, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 80, parameters) end SpellsXML: <instant name="exevo pala hur" words="exevo pala hur" lvl="15" mana="99999999" prem="0" range="7" castertargetordirection="1" blockwalls="0" exhaustion="2000" needlearn="0" event="script" value="attack/exevo pala hur.lua"> <vocation id="1"> <vocation id="2"> <vocation id="5"> <vocation id="3"> <vocation id="7"> <vocation id="6"> <vocation id="4"> <vocation id="8"> </vocation></vocation></vocation></vocation></vocation></vocation></vocation></vocation></instant> ScreenShot: Como vocês sabem screenshot não mostra spell ;o
  21. Queria que alguem me ajudasse criar exori gran ico para meu servidor de 8.6
  22. olá eu mudei o item no meu dat editor porém agora ele não some na minha spell de trap como arruma? o script do trap : local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 1498) local arr1 = { {0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 0, 0, 0, 1, 0}, {0, 1, 0, 2, 0, 1, 0}, {0, 1, 0, 0, 0, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1 } addEvent(onCastSpell1, 100, parameters) end
  23. o script é local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 111) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) return doCombat(cid, combat, var) end 2º preciso de 1 script de magia de direção sendo q pra cada direção é 1 efeito diferente no caso seria bijuu dama tipo o naruto online brasil 3º uma magia de target pode se igual o script acima, que pula em cima do target hita e o paraliza tbm! a vc entende de creaturescripts? Vlw ae por ajudar, ajudo muito msm! ATENÇÃO se for ajudar postem igual a mim, não coloquem do geito q tem que aperta o botãozinho de mostrar que aqui no meu computador não está mostrando!
  24. Tipo: Spell. Testado: Sim, TFS(0.3.6) 8.6. @Celestial Energy Dei esse nome a ele porquê deu vontade. Vá em data/spells/scripts/attack crie um arquivo da extensão .lua e adicione esse conteúdo nele: tag: </instant> <instant name="Energy of Sky" words="Celestial Energy" lvl="935000" mana="1200000" prem="1" exhaustion="2000" selftarget="1" needlearn="0" event="script" value="attack/Celestial Energy.lua"> <vocation id="5"/> <vocation id="6"/> image: PREGUIÇA OWNSS!. @No Name Tava sem ideia pra nome. Vá em data/spells/scripts/attack crie um arquivo da extensão .lua e adicione esse conteúdo nele: tag: </instant> <instant name="No Name" words="No Name" lvl="1135000" mana="9200000" prem="1" exhaustion="2000" selftarget="1" needlearn="0" event="script" value="attack/No Name.lua"> <vocation id="5"/> <vocation id="6"/> image: PREGUIÇA OWNS!; PS: OS ARQUIVOS NA SPELL DEVER TEM O MESMO NOME DELA.
×
×
  • Criar Novo...