Potion Alavanca

Faelzdanil
em Scripts

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

Olá Ekz,

 

Bom eu estou precisando de um script que ao puxar a alavanca ele compre 100 Runas/Potions.

Sim tem alguns scripts aqui no Fórum sobre isso, porém não é o que procuro, pois os que tem, ou compram apenas 1, ou compra por backpack.

Cheguei a pegar esse AQUI:

 

 

 

function getItemCap(itemid, quant) -- function by MatheusMkalo
    return getItemInfo(itemid).weight*(quant or 1)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local configs = {
    [45690] = {itemid = 2160, quantperslot = 10, cost = 5, backpackid = 2002},
    [45691] = {itemid = 2268, quantperslot = 50, cost = 2, backpackid = 2003},
    }
    local coinid = 9971 -- Use o id da gold coin (2148) se voce quizer usar o sistema de dinheiro mesmo. (Caso o itemid for 2148 o cost sera de gps ou seja 30 = 30 gps)
    
    if configs[item.actionid] then
        if getPlayerFreeCap(cid) >= math.ceil((getItemCap(configs[item.actionid].itemid, configs[item.actionid].quantperslot)*20)+getItemCap(configs[item.actionid].backpackid)) then
            if coinid ~= 2148 and getPlayerItemCount(cid, coinid) >= configs[item.actionid].cost or doPlayerRemoveMoney(cid, configs[item.actionid].cost) then
                local backpack = doPlayerAddItem(cid, configs[item.actionid].backpackid)
                for i = 1, 20 do
                    doAddContainerItem(backpack, configs[item.actionid].itemid, configs[item.actionid].quantperslot)
                end
                doPlayerRemoveItem(cid, coinid == 2148 and 0000 or coinid, configs[item.actionid].cost)
            else
                return doPlayerSendCancel(cid, ("You need " .. configs[item.actionid].cost) .. (coinid == 2148 and " gold coins" or (" " .. getItemPluralNameById(coinid):lower())) .. " to buy this item.")
            end
        else
            return doPlayerSendCancel(cid, "You need " .. math.ceil((getItemCap(configs[item.actionid].itemid, configs[item.actionid].quantperslot)*20)+getItemCap(configs[item.actionid].backpackid)) .. " cap for buy that.")
        end
    end
return TRUE
end

 

 

 

Porém ele é com backpack, mesmo eu tirando a parte da backpack ID, ele não funciona.

 

Gostaria se alguém pudesse fazer algum nesse estilo ou configurar esse mesmo pra não ter backpack.

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

@@Faelzdanil,

 

Tenta assim:

function getItemCap(itemid, quant) -- function by MatheusMkalo
    return getItemInfo(itemid).weight * (quant or 1)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local configs = {
		[45690] = {itemid = 2160, quant = 100, cost = 5},
		[45691] = {itemid = 2268, quant = 100, cost = 2},
    }
    local coinid = 9971 -- Use o id da gold coin (2148) se voce quizer usar o sistema de dinheiro mesmo. (Caso o itemid for 2148 o cost sera de gps ou seja 30 = 30 gps)
    
    if configs[item.actionid] then
        if getPlayerFreeCap(cid) >= math.ceil(getItemCap(configs[item.actionid].itemid, configs[item.actionid].quant)) then
            if coinid ~= 2148 and getPlayerItemCount(cid, coinid) >= configs[item.actionid].cost or doPlayerRemoveMoney(cid, configs[item.actionid].cost) then
				doPlayerAddItem(cid, configs[item.actionid].itemid, configs[item.actionid].quant)
                doPlayerRemoveItem(cid, coinid, configs[item.actionid].cost)
            else
                return doPlayerSendCancel(cid, ("You need " .. configs[item.actionid].cost) .. (coinid == 2148 and " gold coins" or (" " .. getItemPluralNameById(coinid):lower())) .. " to buy this item.")
            end
        else
            return doPlayerSendCancel(cid, "You need " .. math.ceil(getItemCap(configs[item.actionid].itemid, configs[item.actionid].quant)) .. " cap for buy that.")
        end
    end
	return true
end

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

Bruno, mas eu preciso sem a backpack, que compre e vá direto pra Backpack própria

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky


local Config = {
BuyMoney = 1000,
ItemID = 2268
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if doPlayerRemoveMoney(cid, Config.BuyMoney) then
doSendAnimatedText(fromPosition, "Purchased", TEXTCOLOR_YELLOW)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have purchased a ".. getItemNameById(Config.ItemID) .."s for ".. Config.BuyMoney .." gold.")
doPlayerAddItem(cid, Config.ItemID, 100)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need ".. Config.BuyMoney .." gold coins to buy a "..getItemNameById(Config.ItemID) .."s.")
end
end

znExesyD.png

servercore.png

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

O problema desse Natanael, é que vou ter que criar um script pra cada alavanca

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky

O problema desse Natanael, é que vou ter que criar um script pra cada alavanca

Exatamente!

znExesyD.png

servercore.png

L3K0T

LEVEL UP!
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 02/01/14Posts: 304Gênero: OutroChar no Tibia: Psy Skyline

só com potions:

 

 

 

removido por nem testar!

 


<action uniqueid="1002" event="script" value="alavanca.lua"/>
1002 uniqueid que vai na alavanca

 

agora com runa e potions:

 

 

removido por nem testar!

<action uniqueid="1002" event="script" value="alavanca.lua"/>
1002 uniqueid que vai na alavanca

ESTOU

Hospedado-por-claro1.png

e

bn3-600x100.png

 

Facebook Contato: www.facebook.com/alexolekynho

Skype: alex.souza238

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

 

local Config = {
        BuyMoney = 1000,
        ItemID = 2268
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
        if doPlayerRemoveMoney(cid, Config.BuyMoney) then
                doSendAnimatedText(fromPosition, "Purchased", TEXTCOLOR_YELLOW)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have purchased a ".. getItemNameById(Config.ItemID) .."s for ".. Config.BuyMoney .." gold.")
                doPlayerAddItem(cid, Config.ItemID, 100)
        else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need ".. Config.BuyMoney .." gold coins to buy a "..getItemNameById(Config.ItemID) .."s.")
        end
end

 

Dinheiro baseado em gold? Platinum? Crystal ?

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Bruno, mas eu preciso sem a backpack, que compre e vá direto pra Backpack própria

Amigo, eu só esqueci de tirar a variavel da backpack, porém já fiz da forma que você queria, você ao menos testou?

 

Vou editar o meu post.

Se você usou a do Natanael e funcionou da forma que você quis, aqui está uma forma sem você precisar adicionar um script para cada alavanca:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local Config = {
			[45690] = {itemid = 2268, quant = 100, cost = 1000}
	}
	if doPlayerRemoveMoney(cid, Config[item.actionid].cost) then
			doSendAnimatedText(fromPosition, "Purchased", TEXTCOLOR_YELLOW)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have purchased a ".. getItemNameById(Config[item.actionid].itemid) .."s for ".. Config[item.actionid].cost .." gold.")
			doPlayerAddItem(cid, Config[item.actionid].itemid, Config[item.actionid].quant)
	else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need ".. Config[item.actionid].cost .." gold coins to buy a ".. Config[item.actionid].itemid .."s.")
	end
end

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

O correto de fazer outros seria com virgula no final, certo ?

[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000}

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

 

O correto de fazer outros seria com virgula no final, certo ?

[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000},
[45690] = {itemid = 2268, quant = 100, cost = 1000}

Isso mesmo!

Deu certo?

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391

Obrigado Bruno, funcionando 100%

Só uma coisa, teria como colocar algum delay pra comprar ?

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Tópico movido para a seção de dúvidas e pedidos resolvidos.

Obrigado Bruno, funcionando 100%

Só uma coisa, teria como colocar algum delay pra comprar ?

Tenta assim:

local exaust = 3 -- 3 segundos
local storage = 9501 -- alguma storage que não esteja em uso

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local Config = {
			[45690] = {itemid = 2268, quant = 100, cost = 1000}
	}
	if exhaustion.get(cid, storage) then
		if doPlayerRemoveMoney(cid, Config[item.actionid].cost) then
				doSendAnimatedText(fromPosition, "Purchased", TEXTCOLOR_YELLOW)
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have purchased a ".. getItemNameById(Config[item.actionid].itemid) .."s for ".. Config[item.actionid].cost .." gold.")
				doPlayerAddItem(cid, Config[item.actionid].itemid, Config[item.actionid].quant)
				exhaustion.set(cid, storage, exaust)
		else
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need ".. Config[item.actionid].cost .." gold coins to buy a ".. Config[item.actionid].itemid .."s.")
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are exhausted.")
	end
end

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window