Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Action Quest


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

@psychonaut

Coloquei essa script ai e a porta continua virando e não faz nada, 

vou te mandar a script q acabei de fazer tirando algumas coisas\/

ela não faz nada + a porta tambem nao vira

será que se vc acrescentar a ID Key consegue?

  Citar

local config = {
    areas = {
        [1] = {
            topLeftPos = {x = 1076, y = 1147, z = 8},
            bottomRightPos = {x = 1080, y = 1151, z = 8},
        },
        [2] = {
            topLeftPos = {x = 1076, y = 1147, z = 8},
            bottomRightPos = {x = 1080, y = 1151, z = 8},
        },
    },
    entry = {
        {x = 1085, y = 1145, z = 6},
    },
    destination = {
        {x = 1078, y = 1149, z = 8},
    }
}

local teleport = {x=1078, y=1149, z=8} -- Coordenadas para onde o player irá ser teleportado.
local item_id = 2091 -- ID do item que o player precisa para ser teleportado.
local posmonstro = {x = 1077, y = 1147, z = 8}
local monstro = "Arenator"

function onUse(cid, item, fromPosition, item2, toPosition)

if getPlayerItemCount(cid,item_id) >= 1 then
       doTeleportThing(cid, teleport)
       doSendMagicEffect(getPlayerPosition(cid), 10)
       doPlayerRemoveItem(cid, item_id, 1)
       doPlayerSendTextMessage(cid, 20, "Você tem 2 minutos para matar o Arenator!")
       else
       doPlayerSendTextMessage(cid, 20, "Você precisa de uma "..getItemNameById(item_id).." para entrar.")
       end
local function CheckAnihilationInUse()
    for i = 1, #config.areas do
        for x = config.areas.topLeftPos.x, config.areas.bottomRightPos.x do
            for y = config.areas.topLeftPos.y, config.areas.bottomRightPos.y do
                for z = config.areas.topLeftPos.z, config.areas.bottomRightPos.z do
                    local creature = getTopCreature({x = x, y = y, z = z}).uid
                    if isPlayer(creature) then
                        return true
                    end
                end
            end
        end
    end
    return false
end

local function RemoveMonsters()
    local monsters = {}
    for i = 1, #config.areas do
        for x = config.areas.topLeftPos.x, config.areas.bottomRightPos.x do
            for y = config.areas.topLeftPos.y, config.areas.bottomRightPos.y do
                for z = config.areas.topLeftPos.z, config.areas.bottomRightPos.z do
                    local position = {x = x, y = y, z = z, stackpos = 253}
                    local creature = getThingfromPos(position)
                    if isMonster(creature.uid) then
                        table.insert(monsters, creature.uid)
                    end
                end
            end
        end
    end
    for m in pairs(monsters) do
        doRemoveCreature(m)
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == 6265) then
        if(config.daily) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        else
            doTransformItem(item.uid, item.itemid - 1)
        end
        return true
    end
     
    if(item.itemid ~= 6265) then
        return true
    end
    
    if CheckAnihilationInUse() then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "A arena esta em uso, espere.")
        return true
    end
    
    local players = {}
    for _, position in ipairs(config.entry) do
        local pid = getTopCreature(position).uid
        if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level or getPlayerMoney(cid) < config.money) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "No minimo players de level ".. config.level .." e possuir ".. config.money .." gold coins.")
            return true
        end
        table.insert(players, pid)
    end
    RemoveMonsters()
    doCreateMonster(monstro, posmonstro)
    doSendMagicEffect(config.entry, CONST_ME_POFF)
    doTeleportThing(cid, config.destination, false)
    doSendMagicEffect(config.destination, CONST_ME_ENERGYAREA)        
    
   
    return true
end

Mostrar mais  

 

Link para o post
Compartilhar em outros sites
  • Respostas 17
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Como assim não precisa estar na mão? Você colocou no tópico que "o Player clicka na porta com o XXX Item na mão", da próxima vez tente deixar seu pedido bem detalhado. Fiz a alteração para verificar se o player possui o item, independente de estar na mão.      Com relação ao erro, se você configurar as posições corretamente, vai funcionar.

Posted Images

@OfWar Vê assim:

 

  Mostrar conteúdo oculto

 

No actions.xml: <action actionid="ACTION_ID_DA_PORTA" script="NOMEDOARQUIVO.lua" />

Contato:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link para o post
Compartilhar em outros sites

@Dwarfer

Mano, o item não precisa está na mão, só na backpack ja esta bom.

não teleportou  para sala do monstro e deu o seguinte erro

  Citar

[29/10/2017 19:27:06] [Error - Action Interface] 
[29/10/2017 19:27:06] data/actions/scripts/arenaporta.lua:onUse
[29/10/2017 19:27:06] Description: 
[29/10/2017 19:27:06] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value)
[29/10/2017 19:27:06] stack traceback:
[29/10/2017 19:27:06]     data/lib/032-position.lua:2: in function 'isInRange'
[29/10/2017 19:27:06]     data/actions/scripts/arenaporta.lua:60: in function 'getPlayersInArea'
[29/10/2017 19:27:06]     data/actions/scripts/arenaporta.lua:23: in function <data/actions/scripts/arenaporta.lua:10>

Mostrar mais  

 

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

Como assim não precisa estar na mão? Você colocou no tópico que "o Player clicka na porta com o XXX Item na mão", da próxima vez tente deixar seu pedido bem detalhado. Fiz a alteração para verificar se o player possui o item, independente de estar na mão. 

 

  Mostrar conteúdo oculto

 

Com relação ao erro, se você configurar as posições corretamente, vai funcionar.

Contato:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link para o post
Compartilhar em outros sites

@Dwarfer

Desculpa, foi pq pedi para o meu irmão montar o pedido.

Fiz tudo perfeito e não deu certo.

Então deu o seguinte error \/

  Citar

[29/10/2017 19:57:19] [Error - Action Interface] 
[29/10/2017 19:57:19] data/actions/scripts/arenaporta.lua:onUse
[29/10/2017 19:57:19] Description: 
[29/10/2017 19:57:20] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value)
[29/10/2017 19:57:20] stack traceback:
[29/10/2017 19:57:20]     data/lib/032-position.lua:2: in function 'isInRange'
[29/10/2017 19:57:20]     data/actions/scripts/arenaporta.lua:60: in function 'getPlayersInArea'
[29/10/2017 19:57:20]     data/actions/scripts/arenaporta.lua:23: in function <data/actions/scripts/arenaporta.lua:10>

Expand   Mostrar mais  

 

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.

  • Estatísticas dos Fóruns

    96844
    Tópicos
    519597
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo