Ir para conteúdo

Featured Replies

Postado

Bom pessoal, esse é um script bem simples, mas eu gosto da ideia dele, e não consegui encontrar por aí.

 

Citar

Ao usar um item, a função irá criar monstros em determinadas posições e salvar seus cid's no global storage.

 

Após isso, ao dar use, a função verifica e cria apenas os monstros que já morreram.

 

É uma boa solução pra quando você quer summonar monstros numa quest, e se tiver vários players não ficará summonando monstros várias vezes.

 

Esse script está sendo usado ao dar use num chest, mas está a seu critério onde utilizar.

monstersToCreate = {
    [1] = {
        name = 'Lost Berserker',
        position = {x = 1034, y = 1425, z = 15}
    },
    [2] = {
        name = 'Lost Thrower',
        position = {x = 1028, y = 1424, z = 15}
    },
    [3] = {
        name = 'Lost Basher',
        position = {x = 1034, y = 1427, z = 15}
    },
    [4] = {
        name = 'Lost Thrower',
        position = {x = 1040, y = 1423, z = 15}
    },
    [5] = {
        name = 'Lost Husher',
        position = {x = 1030, y = 1430, z = 15}
    },
    [6] = {
        name = 'Lost Husher',
        position = {x = 1038, y = 1429, z = 15}
    }
}

function onUse (player, item, param)
    if item:getActionId() == 45016 then
        if player:getStorageValue(45016) == -1 then
            player:addItem(2517, 1) -- shield of honour
            player:addItem(2502, 1) -- dwarven helmet

            local currentMonsters = Game.getStorageValue(45016)
            
            if currentMonsters then
                for v = 1, #currentMonsters do
                    local monsterId = currentMonsters[v]
                    
                    local isMonsterAlive = Monster(monsterId)
                    
                    if not isMonsterAlive then
                        local createdMonster = Game.createMonster(monstersToCreate[v].name, monstersToCreate[v].position)
                        currentMonsters[v] = createdMonster:getId()
                    end
                end

                Game.setStorageValue(45016, currentMonsters)
            else
                local createdMonsters = {}

                for i = 1, #monstersToCreate do
                    local createdMonster = Game.createMonster(monstersToCreate[i].name, monstersToCreate[i].position)
                    table.insert(createdMonsters, createdMonster:getId())
                end

                Game.setStorageValue(45016, createdMonsters)
            end

            player:setStorageValue(45016, 1)
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You've got a reward.")
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "You've already got your reward.")
        end
    end

    return true
end

 

actions.xml:

<action actionid="45016" script="seu_script.lua" />

 

Se alguém quiser aprimorar o script, sinta-se à vontade ?

Editado por edusorcer (veja o histórico de edições)

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo