novamente, um tutorial seu, estou fasendo um ot server no estilo de naruto, e ja peguei 2 magias suas o tsukuyomi e esta agr, muito obrigado, continue assim, vc é um otimo scripter, tem um Gigante futuro, n é grande, pois no presente ja é grande, 2 rep+
- Fórum
- OTServ
- Recursos
- Scripting
- Globalevents e Spells
- [Spell] Juuken
info
Grupo: Campones
Registrado: 18/08/12
Posts: 74
Reputação: +17
Char no Tibia: Arthur Goku

info
Grupo: Barão
Registrado: 02/06/11
Posts: 209
Reputação: +5
Char no Tibia: [ADM] Juan

XD MT OBRIGADO O SCRIPT Q EU PRECISAVA PRO MEU OT, tenho outra dica de spell observe no desenho naruto classico o personagem jiroubo usa uma spell interessante observe as imagens:

quando ele usa esse jutsu ele solta monte de pedras e fica sugando o chakra das pessoa que estao dentro da pedra vc ´pode fazer isso:
coloca uma spell que teleporte o oponente (APENAS O OPONENTE) para um luggar escuro com setsde terra dai dps de um certo tempo a pedra desapareça e o player volte para a localização q ele tava.
+REP
@EDIT@
manow pode fazer um video de como instala a parte do mapa que coloca tiles etc so ali q n entendi...
Editado Setembro 5 por juan500
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

É um a sqm a direita:
Modificando as posições!!!
to = {x = 669, y = 1070, z = 15} -- Para onde o teleport levará (players) ---- Player
to1 = {x = 668, y = 1070, z = 15} -- Para onde o teleport levará (caster) ---- Caster
info
Grupo: Barão
Registrado: 02/06/11
Posts: 209
Reputação: +5
Char no Tibia: [ADM] Juan

Cara eu ti amo meu TE AMO quero Tran.A com vc '-' achei fmz em tu pq cria um video so pra ajuda eu que nao so ninguem '-' não e pra qualquer um vc tem determinação!!! +REP!!!
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

A do Jiroubo vou tentar fazer amanhã depois que postar o script da Sakura Spirit.



info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80
Aew galera, aqui está a spell Juuken:
Testado em TSF 8.6.
(O vídeo se encontra no final do tópico).
Em data/monster crie um arquivo.xml nomeie para Juuken e adicione:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="Juuken" nameDescription="a Juuken" race="blood" experience="0" speed="0" manacost="0">
<health now="99999999999" max="99999999999"/>
<look type="130" head="0" body="114" legs="114" feet="0" addons="3" corpse="0"/>
<targetchange interval="10000" chance="1"/>
<strategy attack="200" defense="10"/>
<flags>
<flag summonable="0"/>
<flag attackable="1"/>
<flag hostile="0"/>
<flag illusionable="0"/>
<flag convinceable="0"/>
<flag pushable="0"/>
<flag canpushitems="0"/>
<flag canpushcreatures="0"/>
<flag targetdistance="0"/>
<flag runonhealth="0"/>
</flags>
<attacks>
<attack name="melee" interval="500" attack="500" min="-2000" max="-3000"/>
<attack name="lifedrain" interval="500" chance="100" range="7" min="-40000" max="-60000">
<attribute key="shootEffect" value="suddendeath"/>
</attack>
</attacks>
<defenses armor="0" defense="0">
<defense name="healing" interval="8000" chance="100" min="-99999999999" max="-99999999999">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
</defenses>
<immunities>
<immunity physical="0"/>
<immunity energy="0"/>
<immunity fire="0"/>
<immunity earth="0"/>
<immunity ice="0"/>
<immunity holy="0"/>
<immunity death="0"/>
<immunity drown="0"/>
<immunity drunk="0"/>
<immunity paralyze="1"/>
<immunity lifedrain="0"/>
<immunity outfit="1"/>
<immunity invisible="1"/>
</immunities>
<summons maxSummons="0">
<summon name="Tsukuyomi" interval="3000" chance="100" max="1"/>
<summon name="Tsukuyomi" interval="3000" chance="100" max="1"/>
<summon name="Tsukuyomi" interval="3000" chance="100" max="1"/>
</summons>
<voices interval="1000" chance="50">
<voice sentence="Ktc, Juuken!!"/>
<voice sentence="LOL A JUUKEN?!"/>
<voice sentence="WHAT IS THIS?"/>
<voice sentence="MY CHAKRA!!!!"/>
</voices>
</monster>
Editando:
-Verde: Frases
Em monsters.xml adicione:
<monster name="Juuken" file="Juuken.xml"/>
Em data/movements/scripts crie 2 arquivos.lua:
Nomeie 1 para Juuken e adicione:
function onStepIn(cid, item, position, fromPosition)
function doHealthSecond(cid, quanty, delay) -- function by vodka
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, quanty)
doSendMagicEffect(getCreaturePosition(cid), 29)
doSendAnimatedText(getCreaturePosition(cid), -100, 180)
if delay ~= 1 then addEvent(doHealthSecond, 125, cid, quanty, delay -1)
elseif delay == 1 then doCreatureSetNoMove(cid, false) end
end
doCreatureSetNoMove(cid, true)
doHealthSecond(cid, -100, 64)
return true
end
Editando:
-Vermelho: Efeito (/z)
Nomeie o outro para Juuken2 e adicione:
function onStepIn(cid, item, position, fromPosition)
function doHealthSecond(cid, quanty, delay) -- function by vodka
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, quanty)
doSendMagicEffect(getCreaturePosition(cid), 9)
doSendAnimatedText(getCreaturePosition(cid), +1, 255)
if delay ~= 1 then addEvent(doHealthSecond, 125, cid, quanty, delay -1)
elseif delay == 1 then doCreatureSetNoMove(cid, false) end
end
doCreatureSetNoMove(cid, true)
doHealthSecond(cid, +1, 64)
return true
end
-Editando:
-Vermelho: Efeito (/z)
Em movements.xml adicione:
<movevent type="StepIn" uniqueid="1646" event="script" value="Juuken.lua"/>
<movevent type="StepIn" uniqueid="1647" event="script" value="Juuken2.lua"/>
Em data/talkactions/scripts crie 2 arquivos.lua:
Nomeie 1 para Juuken e adicione:
function onSay(cid, words, param)
local waittime = 20 -- Tempo de exhaustion
local storage = 5560
local pos = getCreaturePosition(cid)
from = {x=pos.x, y=pos.y, z=pos.z}
to = {x = 669, y = 1070, z = 15} -- Para onde o teleport levará (players)
to1 = {x = 668, y = 1070, z = 15} -- Para onde o teleport levará (caster)
area1 = {x = 663, y = 1064, z = 15} -- Ponta de cima na esquerda na area que o tp leva
area2 = {x = 675, y = 1076, z = 15} -- Ponta de baixo na direita na area que o tp leva
level = 100 -- Level necessário
ppos = getCreaturePosition(cid)
pl1 = {x=ppos.x-7, y=ppos.y-5, z=ppos.z}
pl2 = {x=ppos.x+7, y=ppos.y+5, z=ppos.z}
if getPlayerLevel(cid) < level then
doPlayerSendCancel(cid, "Você precisa de level "..level.." para usar essa magia.")
return true
end
function back(cid)
if isInArea(getCreaturePosition(cid), area1, area2) then
doTeleportThing(cid, from)
end
end
function go(cid)
if isInArea(getCreaturePosition(cid), pl1, pl2) then
doCreateMonster('Juuken', pos)
doTeleportThing(cid, to)
end
end
function gos(cid)
if isInArea(getCreaturePosition(cid), from, from) then
doCreateMonster('Juuken', pos)
doTeleportThing(cid, to1)
end
end
if exhaustion.check(cid, storage) == false then
for _, pid in ipairs(getPlayersOnline()) do
addEvent(back, 8000, pid)
addEvent(go, 200, pid)
addEvent(gos, 1, pid)
doSendMagicEffect(getCreaturePosition(pid), 63)
doCreatureSay(pid, "Juuken!", TALKTYPE_MONSTER) --- Mensagem
addEvent(doCreatureExecuteTalkAction, 100, cid, '5555555555555ARS', true)
addEvent(setPlayerStorageValue, 10000, pid, 1634, -1)
end
exhaustion.set(cid, storage, waittime)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
end
return true
end
Editando:
-Script auto-explicativo, variáveis em verde.
Nomeie o outro para Juukens e adicione:
function onSay(cid, words, param)
local waittime = 20 -- Tempo de exhaustion
local level = 100 -- Level necessário
local effra = 0 -- Efeito z
-------------------------------------------------------
local storage = 5560
local ppos = getCreaturePosition(cid)
local from = {x=ppos.x, y=ppos.y, z=ppos.z}
local level = 100 -- Level necessário
local posr1 = {x=ppos.x-1, y=ppos.y, z=ppos.z}
local posr2 = {x=ppos.x-1, y=ppos.y-2, z=ppos.z}
local posr3 = {x=ppos.x+1, y=ppos.y-2, z=ppos.z}
local posr4 = {x=ppos.x+3, y=ppos.y-2, z=ppos.z}
local posr5 = {x=ppos.x+3, y=ppos.y, z=ppos.z}
local posr6 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z}
local posr7 = {x=ppos.x+1, y=ppos.y+2, z=ppos.z}
local posr8 = {x=ppos.x-1, y=ppos.y+2, z=ppos.z}
local eff1 = {x=ppos.x-1, y=ppos.y+2, z=ppos.z}
local eff2 = {x=ppos.x+3, y=ppos.y-2, z=ppos.z}
local eff3 = {x=ppos.x+3, y=ppos.y+2, z=ppos.z}
local eff4 = {x=ppos.x-1, y=ppos.y-2, z=ppos.z}
local eff5 = {x=ppos.x+1, y=ppos.y+2, z=ppos.z}
local eff6 = {x=ppos.x+1, y=ppos.y-2, z=ppos.z}
local eff7 = {x=ppos.x-1, y=ppos.y, z=ppos.z}
local eff8 = {x=ppos.x+3, y=ppos.y, z=ppos.z}
local arear1 = {x=ppos.x+7, y=ppos.y+5, z=ppos.z}
local arear2 = {x=ppos.x-7, y=ppos.y-5, z=ppos.z}
if getPlayerLevel(cid) < level then
doPlayerSendCancel(cid, "Você precisa de level "..level.." para usar essa magia.")
return true
end
function walk1(cid)
if isInArea(getCreaturePosition(cid), from, from) then
doTeleportThing(cid, posr1)
end
end
function walk2(cid)
if isInArea(getCreaturePosition(cid), posr1, posr1) then
doTeleportThing(cid, posr2)
doCreatureSay(cid,'Juuken!') -- Sua frase
end
end
function walk3(cid)
if isInArea(getCreaturePosition(cid), posr2, posr2) then
doTeleportThing(cid, posr3)
end
end
function walk4(cid)
if isInArea(getCreaturePosition(cid), posr3, posr3) then
doTeleportThing(cid, posr4)
doCreatureSay(cid,'8 Golpes!') -- Sua frase
end
end
function walk5(cid)
if isInArea(getCreaturePosition(cid), posr4, posr4) then
doTeleportThing(cid, posr5)
end
end
function walk6(cid)
if isInArea(getCreaturePosition(cid), posr5, posr5) then
doTeleportThing(cid, posr6)
end
end
function walk7(cid)
if isInArea(getCreaturePosition(cid), posr6, posr6) then
doTeleportThing(cid, posr7)
doCreatureSay(cid,'16 Golspes!') -- Sua frase
end
end
function walk8(cid)
if isInArea(getCreaturePosition(cid), posr7, posr7) then
doTeleportThing(cid, posr8)
end
end
function walk9(cid)
if isInArea(getCreaturePosition(cid), posr8, posr8) then
doTeleportThing(cid, posr1)
doCreatureSay(cid,'32 Golspes!') -- Sua frase
end
end
function walk10(cid)
if isInArea(getCreaturePosition(cid), posr1, posr1) then
doTeleportThing(cid, from)
doCreatureSay(cid,'64 Golspes!') -- Frase final
end
end
if exhaustion.check(cid, storage) == false then
for _, pid in ipairs(getPlayersOnline()) do
addEvent(walk1, 1, pid)
addEvent(walk2, 125, pid)
addEvent(walk3, 250, pid)
addEvent(walk4, 375, pid)
addEvent(walk5, 500, pid)
addEvent(walk6, 625, pid)
addEvent(walk7, 750, pid)
addEvent(walk8, 875, pid)
addEvent(walk9, 1000, pid)
addEvent(walk1, 1125, pid)
addEvent(walk2, 1250, pid)
addEvent(walk3, 1375, pid)
addEvent(walk4, 1500, pid)
addEvent(walk5, 1625, pid)
addEvent(walk6, 1750, pid)
addEvent(walk7, 1875, pid)
addEvent(walk8, 2000, pid)
addEvent(walk9, 2125, pid)
addEvent(walk1, 2250, pid)
addEvent(walk2, 2375, pid)
addEvent(walk3, 2500, pid)
addEvent(walk4, 2625, pid)
addEvent(walk5, 2750, pid)
addEvent(walk6, 2875, pid)
addEvent(walk7, 3000, pid)
addEvent(walk8, 3125, pid)
addEvent(walk9, 3250, pid)
addEvent(walk1, 3375, pid)
addEvent(walk2, 3500, pid)
addEvent(walk3, 3625, pid)
addEvent(walk4, 3750, pid)
addEvent(walk5, 3875, pid)
addEvent(walk6, 4000, pid)
addEvent(walk7, 4125, pid)
addEvent(walk8, 4250, pid)
addEvent(walk9, 4375, pid)
addEvent(walk1, 4500, pid)
addEvent(walk2, 4625, pid)
addEvent(walk3, 4750, pid)
addEvent(walk4, 4875, pid)
addEvent(walk5, 5000, pid)
addEvent(walk6, 5125, pid)
addEvent(walk7, 5250, pid)
addEvent(walk8, 5375, pid)
addEvent(walk9, 5500, pid)
addEvent(walk1, 5625, pid)
addEvent(walk2, 5750, pid)
addEvent(walk3, 5875, pid)
addEvent(walk4, 6000, pid)
addEvent(walk5, 6125, pid)
addEvent(walk6, 6250, pid)
addEvent(walk7, 6375, pid)
addEvent(walk8, 6500, pid)
addEvent(walk9, 6625, pid)
addEvent(walk1, 6750, pid)
addEvent(walk2, 6875, pid)
addEvent(walk3, 7000, pid)
addEvent(walk5, 7125, pid)
addEvent(walk6, 7250, pid)
addEvent(walk7, 7375, pid)
addEvent(walk8, 7500, pid)
addEvent(walk9, 7625, pid)
addEvent(walk1, 7750, pid)
addEvent(walk2, 7875, pid)
doSendMagicEffect(getCreaturePosition(pid), 28)
doCreatureSay(pid, "Byakungan!", TALKTYPE_MONSTER) -- Frase inicial aquela que fala tipo um monstro
addEvent(setPlayerStorageValue, 10000, pid, 1634, -1)
addEvent(doSendMagicEffect,7600,from,3)
addEvent(doSendMagicEffect,7600,posr4,3)
addEvent(doSendMagicEffect,7600,posr6,3)
addEvent(doSendMagicEffect,7600,posr8,3)
addEvent(doSendMagicEffect,7600,posr2,3)
addEvent(doSendMagicEffect,7800,eff1,effra)
addEvent(doSendMagicEffect,7800,eff2,effra)
addEvent(doSendMagicEffect,7800,eff3,effra)
addEvent(doSendMagicEffect,7800,eff4,effra)
addEvent(doSendMagicEffect,7800,eff5,effra)
addEvent(doSendMagicEffect,7800,eff6,effra)
addEvent(doSendMagicEffect,7800,eff7,effra)
addEvent(doSendMagicEffect,7800,eff8,effra)
end
exhaustion.set(cid, storage, waittime)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
end
return true
end
Editando:
-Script auto-explicativo, variáveis em verde.
Em talkactions.xml adicione:
<talkaction words="juuken" event="script" value="Juuken.lua"/>
<talkaction words="5555555555555ARS" event="script" value="Juukens.lua"/>
Agora adicionando no RME:
Obs: Tutorial retirado do meu tópico [spell] Tsukuyomi.
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á).
Será o tile em que os player atingidos pelo Juuken serão levados:
Areá circulada em azul.
Agora para onde o teleport levará (caster):
Seria o tile, onde quem usou a magia (o caster) irá teleportar.
Á direita desse tile preto, 1 sqm a mais para a DIREITA!
<<<<<<
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):
Após fazer isso adicione o tile de movements no tile em que os players irão teleportar ao serem atingidos.
O Juuken que se localiza em movements.Jukken, não Jukken2
O jukken!!!!
OBS: O TILE É DE UNIQUEID 1646, DESPRESE O DA IMAGEM.
--------------------DAQUI PRA BAIXO É O TILE 2 (NENHUMA RELAÇÃO COM O PRIMEIRO, O DE CIMA).
Agora o tile em que o caster (player que utilizou a magia) o da direita do tile preto
<<<< 1 SMQ A DIREITA!
E lembre que o id desse tile é UNIQUEID DE NUMERO 1647,
OBS: O TILE É DE UNIQUEID 1647, DESPRESE O DA IMAGEM.
Agora um vídeo demonstrativo:
Créditos:
Newtonnotwen, pelo script, e pelo post.
LuckOake, pelo script inicial
Vodkart, pelo tile e por uma função
Jhon992, pelo tile
juan500, pela ideia da spell.
Por favor comentem, se tiver mal explicado eu edito.