Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda nesse Spell


Ir para solução Resolvido por 139,

Posts Recomendados

Olá a todos, primeiramente quem puder me ajudar eu agradeço de mais.

 Eu tenho essa spell (Shunshin Teleport) que funciona assim: Um player usa e é marcada a Kunai no chão que, apos de 10 segundos se usar novamente o Jutsu ela volta pro lugar onde ele usou. ( super funcional ), porem descobri um 2 bug's.

1º Que consiste em se um player usar dentro de uma porta e voltar pra onde usou a porta/items/paredes que estiver de baixo somem.

2º Quando outra pessoa da mesma vocação usa o Jutsu, a segunda pessoa pode voltar na kunai que foi criada por essa primeira pessoa.

 Se puderem me ajudar +REP..

 

 OBS: Estou procurando Scripts Profissionais para fazer algumas coisas pra mim*

 

Jutsu:

local slots = {
    
    slot_01 = {},
    
}

local block = { -- Areas bloquadas
    [1] = {{x = 978, y = 910, z = 7}, {x = 995, y = 919, z = 7}},
    [2] = {{x = 978, y = 900, z = 7}, {x = 992, y = 906, z = 7}},
    [3] = {{x = 961, y = 884, z = 7}, {x = 974, y = 893, z = 7}},
    [4] = {{x = 1081, y = 918, z =  7}, {x = 1094, y = 923, z =  7}},
	[5] = {{x = 2199, y = 1617, z =  7}, {x = 2207, y = 1626, z =  7}},
	[6] = {{x = 1057, y = 750, z =  7}, {x = 1082, y = 768, z =  7}},
	[7] = {{x = 1152, y = 731, z =  7}, {x = 1168, y = 740, z =  7}},
}

local time = 10
local itemid = 11615 -- ID da Kunai, lembrando que o item não poderá ser movido.

local storage = 23432
local waittime = 30 -- Exhaust, in seconds.

function onCastSpell(cid, var)
    local pos = {x = getCreaturePosition(cid).x, y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z, stackpos = getCreaturePosition(cid).stackpos} -- Não mecha aqui, nem para configurar as posições do effect.
    if getTileInfo(getThingPos(cid)).protection then
        doPlayerSendCancel(cid, "You can't cast in ProtectionZone.")
        return false
    end
    
    if exhaustion.check(cid, storage) then
        doPlayerSendCancel(cid, "Exhaustion, espere 30 segundos para usar novamente ...")
        return false
    end
    for a, b in pairs(block) do
        if isInArea(pos, b[1], b[2]) then
            doPlayerSendTextMessage(cid, 20, "Voce nao pode usar nesse area.")
            return false
        end
    end
    if var.string == "1" then 
        if table.getn(slots.slot_01) == 0 then
            table.insert(slots.slot_01, pos)
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o Selo da kunai - 10 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O Selo da Kunai Se Foi.")
                end
            end, time * 1000)
            addEvent(function()
                doCleanTile(pos)
            end, time * 1000)
            addEvent(doSendMagicEffect, time * 1000, pos, 2)
            addEvent(table.remove, time * 1000, slots.slot_01)
        else
            doTeleportThing(cid, slots.slot_01[1])
            doPlayerSendTextMessage(cid, 27, "Shunshin Teleport!")
            doSendMagicEffect(getCreaturePosition(cid), 269)
            exhaustion.set(cid, storage, waittime)
        end
    else
        doPlayerSendTextMessage(cid, 27, "Utilize: Hiraishin Kunai No Jutsu-Numero do Selo. - EX Hiraishin Kunai No Jutsu 1")
    end 
end

 

Editado por leozincorsair
esqueci de linkar (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • Solução

@leozincorsair

 

Spoiler

local slots = {}
slots.slots_01 = {}

local block = { -- Areas bloquadas
    [1] = {{x = 978, y = 910, z = 7}, {x = 995, y = 919, z = 7}},
    [2] = {{x = 978, y = 900, z = 7}, {x = 992, y = 906, z = 7}},
    [3] = {{x = 961, y = 884, z = 7}, {x = 974, y = 893, z = 7}},
    [4] = {{x = 1081, y = 918, z =  7}, {x = 1094, y = 923, z =  7}},
    [5] = {{x = 2199, y = 1617, z =  7}, {x = 2207, y = 1626, z =  7}},
    [6] = {{x = 1057, y = 750, z =  7}, {x = 1082, y = 768, z =  7}},
    [7] = {{x = 1152, y = 731, z =  7}, {x = 1168, y = 740, z =  7}},
}

local time = 10
local itemid = 11615 -- ID da Kunai, lembrando que o item não poderá ser movido.

local storage = 23432
local waittime = 30 -- Exhaust, in seconds.

local function removeItemByPos(position, id) -- Função pra remover somente a kunai no sqm
    if getTileItemById(position, id).itemid == 0 then return nil end
    for i = 0, 255 do
        local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i})
        if pos.itemid == id then
            return(doRemoveItem(pos.uid, 1))
        end
    end
end

function onCastSpell(cid, var)
    local pos = {x = getCreaturePosition(cid).x, y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z, stackpos = getCreaturePosition(cid).stackpos} -- Não mecha aqui, nem para configurar as posições do effect.
    if getTileInfo(getThingPos(cid)).protection then
        doPlayerSendCancel(cid, "You can't cast in ProtectionZone.")
        return false
    end
    
    if exhaustion.check(cid, storage) then
        doPlayerSendCancel(cid, "Exhaustion, espere 30 segundos para usar novamente ...")
        return false
    end
    for a, b in pairs(block) do
        if isInArea(pos, b[1], b[2]) then
            doPlayerSendTextMessage(cid, 20, "Voce nao pode usar nesse area.")
            return false
        end
    end
    if var.string == "1" then 
        if slots.slots_01[cid] == nil then
            slots.slots_01[cid] = pos
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o Selo da kunai - 10 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O Selo da Kunai Se Foi.")
                end
            end, time * 1000)
            addEvent(function()
                removeItemByPos(pos, itemid)
            end, time * 1000)
            addEvent(doSendMagicEffect, time * 1000, pos, 2)
            addEvent(function()
            slots.slots_01[cid] = nil
            end, time * 1000)
        else
            doTeleportThing(cid, slots.slots_01[cid])
            doPlayerSendTextMessage(cid, 27, "Shunshin Teleport!")
            doSendMagicEffect(getCreaturePosition(cid), 269)
            exhaustion.set(cid, storage, waittime)
        end
    else
        doPlayerSendTextMessage(cid, 27, "Utilize: Hiraishin Kunai No Jutsu-Numero do Selo. - EX Hiraishin Kunai No Jutsu 1")
    end 
end

 

 

Link para o post
Compartilhar em outros sites
8 horas atrás, 139 disse:

@leozincorsair

 

  Mostrar conteúdo oculto


local slots = {}
slots.slots_01 = {}

local block = { -- Areas bloquadas
    [1] = {{x = 978, y = 910, z = 7}, {x = 995, y = 919, z = 7}},
    [2] = {{x = 978, y = 900, z = 7}, {x = 992, y = 906, z = 7}},
    [3] = {{x = 961, y = 884, z = 7}, {x = 974, y = 893, z = 7}},
    [4] = {{x = 1081, y = 918, z =  7}, {x = 1094, y = 923, z =  7}},
    [5] = {{x = 2199, y = 1617, z =  7}, {x = 2207, y = 1626, z =  7}},
    [6] = {{x = 1057, y = 750, z =  7}, {x = 1082, y = 768, z =  7}},
    [7] = {{x = 1152, y = 731, z =  7}, {x = 1168, y = 740, z =  7}},
}

local time = 10
local itemid = 11615 -- ID da Kunai, lembrando que o item não poderá ser movido.

local storage = 23432
local waittime = 30 -- Exhaust, in seconds.

local function removeItemByPos(position, id) -- Função pra remover somente a kunai no sqm
    if getTileItemById(position, id).itemid == 0 then return nil end
    for i = 0, 255 do
        local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i})
        if pos.itemid == id then
            return(doRemoveItem(pos.uid, 1))
        end
    end
end

function onCastSpell(cid, var)
    local pos = {x = getCreaturePosition(cid).x, y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z, stackpos = getCreaturePosition(cid).stackpos} -- Não mecha aqui, nem para configurar as posições do effect.
    if getTileInfo(getThingPos(cid)).protection then
        doPlayerSendCancel(cid, "You can't cast in ProtectionZone.")
        return false
    end
    
    if exhaustion.check(cid, storage) then
        doPlayerSendCancel(cid, "Exhaustion, espere 30 segundos para usar novamente ...")
        return false
    end
    for a, b in pairs(block) do
        if isInArea(pos, b[1], b[2]) then
            doPlayerSendTextMessage(cid, 20, "Voce nao pode usar nesse area.")
            return false
        end
    end
    if var.string == "1" then 
        if slots.slots_01[cid] == nil then
            slots.slots_01[cid] = pos
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o Selo da kunai - 10 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O Selo da Kunai Se Foi.")
                end
            end, time * 1000)
            addEvent(function()
                removeItemByPos(pos, itemid)
            end, time * 1000)
            addEvent(doSendMagicEffect, time * 1000, pos, 2)
            addEvent(function()
            slots.slots_01[cid] = nil
            end, time * 1000)
        else
            doTeleportThing(cid, slots.slots_01[cid])
            doPlayerSendTextMessage(cid, 27, "Shunshin Teleport!")
            doSendMagicEffect(getCreaturePosition(cid), 269)
            exhaustion.set(cid, storage, waittime)
        end
    else
        doPlayerSendTextMessage(cid, 27, "Utilize: Hiraishin Kunai No Jutsu-Numero do Selo. - EX Hiraishin Kunai No Jutsu 1")
    end 
end

 

 

 

Obrigado mano, me ajudou muito, Perfeito !!

Link para o post
Compartilhar em outros sites

Eu peguei o script criei uma .lua chamado (Shunshin Teleport.lua) coloquei em data/spells/script/minato. Coloquei dentro da pasta do minato e fui em Spells.xml fui lá na aba dos atks do minato e coloquei assim:

 

<instant name="Hiraishin Kunai No Jutsu" words="Hiraishin Kunai No Jutsu" aggressive="0" selftarget="1" lvl="700" mana="1000" exhaustion="1500" event="script" value="Minato/Shunshin Teleport.lua">
        <vocation id="154"/>
        <vocation id="155"/>
        <vocation id="156"/>
        <vocation id="157"/>
        <vocation id="158"/>
        <vocation id="159"/>
        <vocation id="160"/>
        <vocation id="161"/>
        <vocation id="162"/>
        <vocation id="163"/>
    </instant>

 

salvei tudo e liguei meu nto quando eu entro lá e vejo, BANG realmente a magia está lá mas quando eu uso ela aparece a seguinte mensagem ( 13:28 Utilize: Hiraishin Kunai No Jutsu-Numero do Selo. - EX Hiraishin Kunai No Jutsu 1 )

 

Então eu falei o que a mensagem me dizia falei " Hiraishin Kunai No Jutsu 1 " e nada aconteceu, simplesmente o char falou a magia como se fossem palavras normais de uma conversa ingame, queria pedir ajuda a alguem mais experiente que possa me ajudar nisso, eu não sei de muita coisa de nto. minha versão é 8.54 dou +REP se alguem conseguir me ajudar.

Link para o post
Compartilhar em outros sites

@Renan Gerson tente usar o xml assim esta assim no meu e funciona

 

<instant name="Hiraishin no Jutsu Seal" words="hiraishin no jutsu seal" lvl="18" mana="1" prem="1" aggressive="0" params="1" exhaustion="500" needlearn="0" event="script" value="minatons/seal1.lua">
        <vocation id="0"/>
</instant>

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo