Ir para conteúdo

Featured Replies

Postado

Este é o script que funciona para tfs 1.3

Quero adaptá-lo para canary/otservbr.

 

Preciso separar os itens por seções, por exemplo: runes ou potions ou rings etc... ?

 

Hi runes (abre a opção só de runas)

Hi potions (abre a opção só de potions)

 

Abaixo disponibilizo o script que funciona para tfs 1.3

Alguém poderia me ajudar?

David Refiller TFS 1.3.lua

"Antes de morrer, viva!"

 


 
http://fast-baiak.com
BAIAK 8.60 MAIS COMPLETO DA ATUALIDADE!

Se leu eh viado!

 

 

Postado

--Hi!

--Buy Runes, Buy Potions e Buy Rings

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)
    npcHandler:onCreatureAppear(cid)
end

function onCreatureDisappear(cid)
    npcHandler:onCreatureDisappear(cid)
end

function onCreatureSay(cid, type, msg)
    npcHandler:onCreatureSay(cid, type, msg)
end

function onThink()
    npcHandler:onThink()
end

local options = {
    ['potions'] = {
        {name = 'ultimate mana potion', id = 26029, buy = 438},
        {name = 'ultimate health potion', id = 8473, buy = 310},
        {name = 'strong health potion', id = 7588, buy = 100},
        {name = 'strong mana potion', id = 7589, buy = 80},
    },
    ['runes'] = {
        {name = "avalanche rune", id = 2274, buy = 25},
        {name = "chameleon rune", id = 2291, buy = 210},
    },
    ['rings'] = {
        {name = "ring of healing", id = 2214, buy = 100},
        {name = "ring of the sky", id = 2123, buy = 200},
    }
}

local function greetCallback(cid)
    npcHandler:setMessage(MESSAGE_GREET, "Bem-vindo! O que você gostaria de comprar hoje?")
    return true
end

local function creatureSayCallback(cid, type, msg)
    local player = Player(cid)
    if not npcHandler:isFocused(cid) then
        return false
    end
    
    if msgcontains(msg, "potions") then
        local optionText = "Aqui estão as poções disponíveis para compra:\n"
        for i, potion in ipairs(options['potions']) do
            optionText = optionText .. "\n[" .. i .. "] " .. potion.name .. " (" .. potion.buy .. " gold coins)"
        end
        npcHandler:say(optionText, cid)
        
    elseif msgcontains(msg, "runes") then
        local optionText = "Aqui estão as runas disponíveis para compra:\n"
        for i, rune in ipairs(options['runes']) do
            optionText = optionText .. "\n[" .. i .. "] " .. rune.name .. " (" .. rune.buy .. " gold coins)"
        end
        npcHandler:say(optionText, cid)
        
    elseif msgcontains(msg, "rings") then
        local optionText = "Aqui estão os anéis disponíveis para compra:\n"
        for i, ring in ipairs(options['rings']) do
            optionText = optionText .. "\n[" .. i .. "] " .. ring.name .. " (" .. ring.buy .. " gold coins)"
        end
        npcHandler:say(optionText, cid)
        
    elseif msgcontains(msg, "buy") or msgcontains(msg, "comprar") then
        local parameters = string.explode(msg, ' ')
        local category = parameters[2]
        local itemIndex = tonumber(parameters[3])
        
        if category and itemIndex then
            local itemList = options[category]
            if itemList then
                local item = itemList[itemIndex]
                if item then
                    local itemId = item.id
                    local itemPrice = item.buy
                    
                    if player:getMoney() >= itemPrice then
                        player:addItem(itemId, 1)
                        player:removeMoney(itemPrice)
                        npcHandler:say("Aqui está o seu " .. item.name .. ". Obrigado pela compra!", cid)
                    else
                        npcHandler:say("Desculpe, você não possui dinheiro suficiente para comprar este item.", cid)
                    end
                else
                    npcHandler:say("Desculpe, esse não é um item válido.", cid)
                end
            else
                npcHandler:say("Desculpe, essa não é uma categoria válida.", cid)
            end
        else
            npcHandler:say("Desculpe, comando inválido. Use 'buy category itemNumber'.", cid)
        end
    else
        return false
    end
    
    return true
end

npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

  • 2 years later...

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.3k

Informação Importante

Confirmação de Termo