Ir para conteúdo
  • Cadastre-se

(Resolvido)Fazer item sumir


Ir para solução Resolvido por Storm,

Posts Recomendados

Galera alguém poderia me dizer porque esse item não esta sumindo, logo depois que o tempo do script acaba,

aparece a mensagem dizendo que ele sumiu porem não acontece nada.

 Uso 0.4

 

 

Script :

Citar

local config = {
    storage = 49607, -- salva o tempo do item expirar
    tempo = 10, -- tempo pro item expirar
    itemid = 11615, -- id do item
    storagedelay = 49608, -- onde salva o tempo pra usar dnv a spell
    delayquant = 10 -- quantidade de tempo em segundos q fica sem poder usar uma vez q teleporta de volta.
}

local positions = {}

function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, config.storagedelay) - os.time() <= 0 then
        if getPlayerStorageValue(cid, config.storage) <= 0 then
            -- procura a primeira posicao livre
            local index = 0
            repeat 
                index = index + 1                
            until (not positions[index])
            -- salva a pos na primeira posicao livre do hash
            positions[index] = getThingPos(cid)
            -- salva a posicao livre no storage do player para referencia
            doPlayerSetStorageValue(cid, config.storage, index)
            doCreateItem(config.itemid, getThingPos(cid))
            doSendMagicEffect(getThingPos(cid), 3)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 22, "A kunai sumiu.")
                    doPlayerSetStorageValue(cid, config.storage, 0)
                    positions[getPlayerStorageValue(cid, config.storage)] = nil
                end
            end, 1000*config.tempo)
        elseif getPlayerStorageValue (cid, config.storage) > 0 then
            doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)])
            doPlayerSetStorageValue(cid, config.storagedelay, config.delayquant + os.time())
            -- tratamento pra remover a pos salva        
            doPlayerSetStorageValue(cid, config.storage, 0)
            positions[getPlayerStorageValue(cid, config.storage)] = nil
            --
            doSendMagicEffect(getThingPos(cid), 10)
        end
    else
        doPlayerSendCancel(cid, "You have to wait ".. getPlayerStorageValue(cid, config.storagedelay) - os.time() .." seconds to use this spell again.")
    end
return true
end

item.xml

Citar

    </item>
    <item id="11615" article="a" name="kunai teleport">
        <attribute key="decayTo" value="0" />
        <attribute key="duration" value="10" />

 

Editado por leozincorsair
fds (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
 -- tratamento pra remover a pos salva        
            doPlayerSetStorageValue(cid, config.storage, 0)
            positions[getPlayerStorageValue(cid, config.storage)] = nil

 

Veja se funciona deixando assim:

 

 -- tratamento pra remover a pos salva        
            doPlayerSetStorageValue(cid, config.storage, 0)
            doRemoveItem(item.uid, 1)
            positions[getPlayerStorageValue(cid, config.storage)] = nil

 

Link para o post
Compartilhar em outros sites
1 hora atrás, DdJs disse:

 -- tratamento pra remover a pos salva        
            doPlayerSetStorageValue(cid, config.storage, 0)
            positions[getPlayerStorageValue(cid, config.storage)] = nil

 

Veja se funciona deixando assim:

 


 -- tratamento pra remover a pos salva        
            doPlayerSetStorageValue(cid, config.storage, 0)
            doRemoveItem(item.uid, 1)
            positions[getPlayerStorageValue(cid, config.storage)] = nil

 

 

ja tentei isso também porem nao some.

Link para o post
Compartilhar em outros sites
3 horas atrás, leozincorsair disse:

ja tentei isso também porem nao some.

 

Claro, doRemoveItem(item.uid, count) o item.uid tem que ser declarado na callback da função, tente usar \/

doPlayerRemoveItem(cid, itemid, quantidade)
Link para o post
Compartilhar em outros sites
1 hora atrás, Joaovettor disse:

Claro, doRemoveItem(item.uid, count) o item.uid tem que ser declarado na callback da função, tente usar \/


doPlayerRemoveItem(cid, itemid, quantidade)

 

esse nome 'quantidade' e pra estar ai mesmo ?

#edit - ainda não esta sumindo o item :(

#up alguem ?? 

@xWhiteWolf ?

Editado por leozincorsair
ae (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 horas atrás, leozincorsair disse:

esse nome 'quantidade' e pra estar ai mesmo ?

#edit - ainda não esta sumindo o item :(

#up alguem ?? 

@xWhiteWolf ?

 

quantidade é igual a quantidade, ou seja QUANTIDADE, simplesmente coloque o id do item e a quantidade de items que vai remover....................................................

 

Explique o que seu SCRIPT faz

Link para o post
Compartilhar em outros sites

o player usa a spell e cria um item no chao, logo apos isso ela tem 10 segundos para ir para onde quiser e se ela conjurar novamente o spell

ela volta para onde usou a primeira vez e o item some.

 

aqui esta o topico : 

 

Link para o post
Compartilhar em outros sites
2 horas atrás, leozincorsair disse:

o player usa a spell e cria um item no chao, logo apos isso ela tem 10 segundos para ir para onde quiser e se ela conjurar novamente o spell

ela volta para onde usou a primeira vez e o item some.

 

aqui esta o topico : 

 

 

Você pode criar 1 script de movements que remove o item, POR EXEMPLO:

 

function onAddItem(moveItem, tileItem, position, cid)

local time = 10 -- Tempo em segundos que o item será removido
if isPlayer(cid) then
addEvent(doRemoveItem, time*1000, moveItem.uid)
doSendMagicEffect(getCreaturePosition(cid), 29)
end
end

 

<movevent event="AddItem" itemid="11615" script="nomedoarquivo.lua"/>

 

 

Link para o post
Compartilhar em outros sites
19 minutos atrás, Joaovettor disse:

Você pode criar 1 script de movements que remove o item, POR EXEMPLO:

 

function onAddItem(moveItem, tileItem, position, cid)

local time = 10 -- Tempo em segundos que o item será removido
if isPlayer(cid) then
addEvent(doRemoveItem, time*1000, moveItem.uid)
doSendMagicEffect(getCreaturePosition(cid), 29)
end
end

 

<movevent event="AddItem" itemid="11615" script="nomedoarquivo.lua"/>

 

 

 

Cara o item não some nem com taca isso , não sei mais oque fazer.

Link para o post
Compartilhar em outros sites
10 minutos atrás, leozincorsair disse:

Cara o item não some nem com taca isso , não sei mais oque fazer.

 

Tente com isso VV

 -- tratamento pra remover a pos salva  
        local remove = getTileItemById(position[getPlayerStorageValue(cid, config.storage)], config.itemid).uid 
        doPlayerSetStorageValue(cid, config.storage, 0)
        positions[getPlayerStorageValue(cid, config.storage)] = nil
        doRemoveItem(remove, 1)

 

Link para o post
Compartilhar em outros sites
18 minutos atrás, Joaovettor disse:

Tente com isso VV


 -- tratamento pra remover a pos salva  
        local remove = getTileItemById(position[getPlayerStorageValue(cid, config.storage)], config.itemid).uid 
        doPlayerSetStorageValue(cid, config.storage, 0)
        positions[getPlayerStorageValue(cid, config.storage)] = nil
        doRemoveItem(remove, 1)

 

 

nada, ainda deu erro na distro 

 

Link para o post
Compartilhar em outros sites
8 minutos atrás, Storm disse:

@leozincorsair Me diz o que você quer que a script faça, vou refazer essa gambiarra pra você.

 

o whitewolf que postou essa spell aqui no forum, ela funciona assim : você usa ela e aparece o item no chão, você tem 10 segundos para ir para onde quiser 

depois e so usar novamente e voltará para a posição original onde foi criado o item, porem o item que foi criado não some do chao. 

 postei acima o link do topico

Editado por leozincorsair
ae (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@leozincorsair Hiraishin Kunai né, enfim ano passado eu fiz uma script assim, não sei se funciona e se ta do jeito que você quer, testa ai:

 

Spoiler

local slots = {
    
    slot_01 = {},
    slot_02 = {},
    slot_03 = {}
    
}

local block = { -- Areas bloquadas
    [1] = {{x = 1261, y = 417, z = 15}, {x = 1317, y = 374, z = 15}},
    [2] = {{x = 1261, y = 417, z = 14}, {x = 1317, y = 374, z = 14}},
    [3] = {{x = 1261, y = 417, z = 13}, {x = 1317, y = 374, z = 13}},
    [4] = {{x = 1036, y = 909, z =  7}, {x = 1020, y = 894, z =  7}},
}

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

local storage = 23432
local waittime = 5 -- 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, wait ...")
        return false
    end
    for a, b in pairs(block) do
        if isInArea(pos, b[1], b[2]) then
            doPlayerSendTextMessage(cid, 20, "Você não 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 1 Selo - 30 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 1 Selo 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, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            exhaustion.set(cid, storage, waittime)
        end 
    elseif var.string == "2" then
        if table.getn(slots.slot_02) == 0 then
            table.insert(slots.slot_02, pos)
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o 2 Selo - 30 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 2 Selo 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_02)
        else
            doTeleportThing(cid, slots.slot_02[1])
            doPlayerSendTextMessage(cid, 27, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            exhaustion.set(cid, storage, waittime)
        end
    elseif var.string == "3" then
        if table.getn(slots.slot_03) == 0 then
            table.insert(slots.slot_03, pos)
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o 3 Selo - 30 Segundos Para Desaparecer !!")
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 3 Selo Se Foi.")
                end
            end, time * 1000)
            doCreateItem(itemid, pos)
            addEvent(function()
                doCleanTile(pos)
            end, time * 1000)
            addEvent(doSendMagicEffect, time * 1000, pos, 2)
            addEvent(table.remove, time * 1000, slots.slot_03)
        else
            doTeleportThing(cid, slots.slot_03[1])
            doPlayerSendTextMessage(cid, 27, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            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
2 minutos atrás, Storm disse:

@leozincorsair Hiraishin Kunai né, enfim ano passado eu fiz uma script assim, não sei se funciona e se ta do jeito que você quer, testa ai:

 

  Ocultar conteúdo


local slots = {
    
    slot_01 = {},
    slot_02 = {},
    slot_03 = {}
    
}

local block = { -- Areas bloquadas
    [1] = {{x = 1261, y = 417, z = 15}, {x = 1317, y = 374, z = 15}},
    [2] = {{x = 1261, y = 417, z = 14}, {x = 1317, y = 374, z = 14}},
    [3] = {{x = 1261, y = 417, z = 13}, {x = 1317, y = 374, z = 13}},
    [4] = {{x = 1036, y = 909, z =  7}, {x = 1020, y = 894, z =  7}},
}

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

local storage = 23432
local waittime = 5 -- 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, wait ...")
        return false
    end
    for a, b in pairs(block) do
        if isInArea(pos, b[1], b[2]) then
            doPlayerSendTextMessage(cid, 20, "Você não 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 1 Selo - 30 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 1 Selo 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, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            exhaustion.set(cid, storage, waittime)
        end 
    elseif var.string == "2" then
        if table.getn(slots.slot_02) == 0 then
            table.insert(slots.slot_02, pos)
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o 2 Selo - 30 Segundos Para Desaparecer !!")
            doCreateItem(itemid, pos)
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 2 Selo 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_02)
        else
            doTeleportThing(cid, slots.slot_02[1])
            doPlayerSendTextMessage(cid, 27, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            exhaustion.set(cid, storage, waittime)
        end
    elseif var.string == "3" then
        if table.getn(slots.slot_03) == 0 then
            table.insert(slots.slot_03, pos)
            doPlayerSendTextMessage(cid, 25, "Voce Marcou o 3 Selo - 30 Segundos Para Desaparecer !!")
            addEvent(function()
                if isCreature(cid) then
                    doPlayerSendTextMessage(cid, 25, "O 3 Selo Se Foi.")
                end
            end, time * 1000)
            doCreateItem(itemid, pos)
            addEvent(function()
                doCleanTile(pos)
            end, time * 1000)
            addEvent(doSendMagicEffect, time * 1000, pos, 2)
            addEvent(table.remove, time * 1000, slots.slot_03)
        else
            doTeleportThing(cid, slots.slot_03[1])
            doPlayerSendTextMessage(cid, 27, "Teleported!")
            doSendMagicEffect(getCreaturePosition(cid), 3)
            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

 

 

 

isso é uma spell certo ?

Link para o post
Compartilhar em outros sites

@leozincorsair Usa a XML assim

	<instant name="Hiraishin Kunai No Jutsu" words="Hiraishin Kunai No Jutsu" lvl="550" mana="0" params="1" blockwalls="1" agressive="0" exhaustion="2000" needlearn="0" event="script" value="newminato/Hiraishin.lua">
		<vocation id="36" />  
		<vocation id="35" />		
		</instant>

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo