Ir para conteúdo
  • Cadastre-se

(Resolvido)AJUDA SCRIPTS ACTION - TFS 0.4


Ir para solução Resolvido por Vodkart,

Posts Recomendados

boa tarde, é o seguinte eu queria q o script ficasse da mesma forma, por pontos a diferença q o cara puxa uma alavanca e já pega todos os itens q está listado ali da primeira coluna, o cara puxa a segunda e pega tudo da segunda coluna e etc..

 

local lever = {
[7200] = {12,2474},
[7131] = {12,12568},
[7132] = {12,2469},
[7133] = {12,11114},
[7134] = {12,2181},
[7135] = {12,7365},
[7136] = {12,8905},
[7137] = {12,12001},

[7138] = {200,7903},
[7139] = {200,7884},
[7140] = {200,7885},
[7141] = {200,7886},
[7142] = {200,8911},
[7143] = {200,7363},
[7144] = {200,7460},
[7145] = {200,7390},


[7146] = {300,7900},
[7147] = {300,7899},
[7148] = {300,7894},
[7149] = {300,7891},
[712] = {300,12597},
[7151] = {300,12391},
[7152] = {300,3974},
[7153] = {300,2446},

[7155] = {280,7902},
[7156] = {280,7897},
[7157] = {280,7896},
[7158] = {280,7892},
[7159] = {280,12288},
[7300] = {280,2547},
[7161] = {280,3975},
[7162] = {280,7404},

[7163] = {200,7901},
[7164] = {200,7898},
[7165] = {200,7895},
[7166] = {200,7893},
[7167] = {200,7735},
[7168] = {200,12286},
[7169] = {200,2532},
[7170] = {200,8930}

}
local storage,exausted = 98762, 2
local Stackable = {7365,7363,12286,2547,12391,12597} -- coloque o ID aqui dos que só vem 1
function onUse(cid,item,fromPosition,itemEx,toPosition)
if getotfunPoints(cid) < lever[item.actionid][1] then
return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Você precisa de "..lever[item.actionid][1].." Ot Fun points.")
elseif getPlayerStorageValue(cid, storage) >= os.time() then
return doPlayerSendCancel(cid, "espere " .. getPlayerStorageValue(cid, storage) - os.time() .. " alguns segundos e tente novamente.")
end
doPlayerAddItem(cid,lever[item.actionid][2], isItemStackable(lever[item.actionid][2]) and isInArray(Stackable, lever[item.actionid][2]) and 1 or 12)
doPlayerRemoveotfunPoints(cid,lever[item.actionid][1])
setPlayerStorageValue(cid, storage, os.time()+exausted)
doPlayerSendTextMessage(cid,22,"Você comprou um " .. getItemNameById(lever[item.actionid][2]))
doSendMagicEffect(getCreaturePosition(cid), math.random(28,30))
return true
end 

 

Link para o post
Compartilhar em outros sites

ta vendo q no começo 7200 até 7137, tem uma sequência de items, a cada 12 pontos, o cara pega um item, eu quero q com x quantidade de pontos, ele pego todos items de uma vez só, acionando uma alavanca só, entendeu ?? ele vai usa no caso 12 pontos, e vai pegar 8 items, cada um com um id diferente desculpa tenho dificuldade em expressar, mais obrigado por ajudar...

 

2 minutos atrás, Storm disse:

@BilauX Explica isso direito, não da pra entender nada

 

 

Link para o post
Compartilhar em outros sites

muito obrigado, as funções do meu sistema de pontos, o cara vai puxa alavanca gasta 96 pontos e ganhar 8 items de acordo com a id q eu coloca, lembrando que essas ids do local stackable, é pra ganhar só um, q são ids de flechas e de itens q tu faz com adm e vem 100, se ele não tiver pontos volta uma mensagem falando q ele precisa de tal pontos, se ele tiver, falar q ele usou os x pontos e ganhou o set... vai ser 5 alavancas, 40 items no total, cada alavanca 8 items cada uma...

local Stackable = {7365,7363,12286,2547,12391,12597} -- coloque o ID aqui dos que só vem 1
if getotfunPoints(cid) e 
doPlayerRemoveotfunPoints

 

10 minutos atrás, Storm disse:

@BilauX Me fala então o que você quer que a script faça, vou refazer para você, pegar a script pela metade é difícil para mim

 

 

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

@BilauX Presta bastante atenção na hora de configurar para não fazer errado

local lever = { -- [Alavanca ID] = { [quantida de pontos] = { {itemID, count}, {itemID, count} }, Todas elas podem ser criadas quantas vezes quiser
        
   [7130] = { [100] = { {2150, 5}, {2160, 30}, {3310, 10} },  [200] = { 2150, 5}, {2160, 30} }, 

   [7120] = { [100] = { {2150, 5}, {2160, 30}, {3310, 10} },  [200] = { 2150, 5}, {2160, 30} },
        
}
    
local storage = 34316 -- Storage
local exhaust = 5 -- Segundos de exhaust    
    
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if exhaustion.check(cid, storage) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar essa alavanca novamente!!")
        return false
    end
    exhaustion.set(cid, storage, exhaust)
    local check = lever[item.itemid]
    if check then
        for index, table in pairs(check) do
            if getotfunPoints(cid) >= tonumber(index) then
                doPlayerRemoveotfunPoints(cid, tonumber(index))
                for _, var in pairs(table) do
                    doPlayerAddItem(cid, var[1], var[2])
                    doPlayerSendTextMessage(cid, 22, "Você comprou ".. var[2] .." ".. getItemInfo(var[1]).name ..".")
                end 
            end  
        end
    end 
    return true
end

 

Link para o post
Compartilhar em outros sites

assim tu usa, nada acontece nenhum erro na distro, só q aparece you cannot use this object, ai aparece o delay no console, ai tu espera o delay de tempo, e aparece a you cannot use this object e fica nesse loop infinito, delay e a mensagem you cannot..

 

7 minutos atrás, Storm disse:

@BilauX Presta bastante atenção na hora de configurar para não fazer errado


local lever = { -- [Alavanca ID] = { [quantida de pontos] = { {itemID, count}, {itemID, count} }, Todas elas podem ser criadas quantas vezes quiser
        
   [7130] = { [100] = { {2150, 5}, {2160, 30}, {3310, 10} },  [200] = { 2150, 5}, {2160, 30} }, 

   [7120] = { [100] = { {2150, 5}, {2160, 30}, {3310, 10} },  [200] = { 2150, 5}, {2160, 30} },
        
}
    
local storage = 34316 -- Storage
local exhaust = 5 -- Segundos de exhaust    
    
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if exhaustion.check(cid, storage) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar essa alavanca novamente!!")
        return false
    end
    exhaustion.set(cid, storage, exhaust)
    local check = lever[item.itemid]
    if check then
        for index, table in pairs(check) do
            if getotfunPoints(cid) >= tonumber(index) then
                doPlayerRemoveotfunPoints(cid, tonumber(index))
                for _, var in pairs(table) do
                    doPlayerAddItem(cid, var[1], var[2])
                    doPlayerSendTextMessage(cid, 22, "Você comprou ".. var[2] .." ".. getItemInfo(var[1]).name ..".")
                end 
            end  
        end
    end 
    return true
end

 

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

@BilauX Testa ai.

 

Spoiler

local lever = {

--	[actionid] = {item que vai comprar, quantidade do item, quantos pontos vai custar}
	[8421] = {itemBuy = 2261, amountBuy = 10, pointsCost = 10},
	[8422] = {itemBuy = 2262, amountBuy = 12, pointsCost = 12},
	[8423] = {itemBuy = 2263, amountBuy = 15, pointsCost = 14},
	[8424] = {itemBuy = 2264, amountBuy = 20, pointsCost = 12}
}
    
local storage = 34316 -- Storage
local exhaust = 5 -- Segundos de exhaust    
    
function onUse(cid, item, fromPosition, itemEx, toPosition)

if exhaustion.check(cid, storage) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..exhaustion.get(cid, storage).." segundos para usar essa alavanca novamente!!")

	return false

end

exhaustion.set(cid, storage, exhaust)

local check = lever[item.actionid]

if check then

if getotfunPoints(cid) >= check.pointsCost then

doPlayerRemoveotfunPoints(cid, check.pointsCost)

doPlayerAddItem(cid, check.itemBuy, check.amountBuy)

doPlayerSendTextMessage(cid, 22, "Voce comprou "..check.amountBuy.." "..getItemNameById(check.itemBuy)..".")

doSendMagicEffect(getCreaturePosition(cid), 12)

else

doPlayerSendTextMessage(cid, 27, "Voce precisa de "..check.pointsCost.." pontos.")

doSendMagicEffect(getCreaturePosition(cid), 2)

end

end

return true

end

 

 

Link para o post
Compartilhar em outros sites

funciono, mais eu quero q usa um action id e vem 8 itens, por x pontos,e depois usa mais outro actionid e vem 8 items e por aí vai...

 

 

Em 10/02/2019 em 10:52, JoviM disse:

@BilauX Testa ai.

 

  Ocultar conteúdo


local lever = {

--	[actionid] = {item que vai comprar, quantidade do item, quantos pontos vai custar}
	[8421] = {itemBuy = 2261, amountBuy = 10, pointsCost = 10},
	[8422] = {itemBuy = 2262, amountBuy = 12, pointsCost = 12},
	[8423] = {itemBuy = 2263, amountBuy = 15, pointsCost = 14},
	[8424] = {itemBuy = 2264, amountBuy = 20, pointsCost = 12}
}
    
local storage = 34316 -- Storage
local exhaust = 5 -- Segundos de exhaust    
    
function onUse(cid, item, fromPosition, itemEx, toPosition)

if exhaustion.check(cid, storage) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..exhaustion.get(cid, storage).." segundos para usar essa alavanca novamente!!")

	return false

end

exhaustion.set(cid, storage, exhaust)

local check = lever[item.actionid]

if check then

if getotfunPoints(cid) >= check.pointsCost then

doPlayerRemoveotfunPoints(cid, check.pointsCost)

doPlayerAddItem(cid, check.itemBuy, check.amountBuy)

doPlayerSendTextMessage(cid, 22, "Voce comprou "..check.amountBuy.." "..getItemNameById(check.itemBuy)..".")

doSendMagicEffect(getCreaturePosition(cid), 12)

else

doPlayerSendTextMessage(cid, 27, "Voce precisa de "..check.pointsCost.." pontos.")

doSendMagicEffect(getCreaturePosition(cid), 2)

end

end

return true

end

 

 

 

 

Link para o post
Compartilhar em outros sites
  • Solução

galera ele só quer poder adicionar mais itens conforme os points, digamos que com 12 points vem aquela porrada de itens... exemplo assim:

 

local lever = {
	[7200] = {amount = 12, items = {{2474,1},{12568,1},{2469,1},{11114,1},{2181,1},{7365,1},{8905,1},{12001,1}}},
	[7138] = {amount = 200, items = {{7903,1},{7884,1},{7885,1},{7886,1},{8911,1},{7363,1},{7460,1},{7390,1}}},
	[7146] = {amount = 300, items = {{7900,1},{7899,1},{7894,1},{7891,1},{12597,1},{12391,1},{3974,1},{2446,1}}} 
}


function getItemsLevers(cid, items)
	local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
	for _, i_i in ipairs(items) do
		local item, amount = i_i[1],i_i[2]
		if isItemStackable(item) or amount == 1 then
			doAddContainerItem(backpack, item, amount)
		else
			for i = 1, amount do
				doAddContainerItem(backpack, item, 1)
			end
		end
	end
end
function getItemsFromList(items)
	local str = ''
	if table.maxn(items) > 0 then
		for i = 1, table.maxn(items) do
			str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1])
			if i ~= table.maxn(items) then str = str .. ', ' 
			end 
		end 
	end
	return str
end
local storage,exausted = 98762, 2
function onUse(cid,item,fromPosition,itemEx,toPosition)
	if not lever[item.actionid] then return true end
	local var = lever[item.actionid]
	if getotfunPoints(cid) < var.amount then
		return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Você precisa de "..var.amount.." Ot Fun points.")
	elseif getPlayerStorageValue(cid, storage) >= os.time() then
		return doPlayerSendCancel(cid, "espere " .. getPlayerStorageValue(cid, storage) - os.time() .. " alguns segundos e tente novamente.")
	end
	getItemsLevers(cid, var.items)
	doPlayerSendTextMessage(cid,22,"Você Acaba De Adquirir: " .. getItemsFromList(var.items))
	doPlayerRemoveotfunPoints(cid,var.amount)
	setPlayerStorageValue(cid, storage, os.time()+exausted)
	doSendMagicEffect(getCreaturePosition(cid), math.random(28,30))
	doTransformItem(item.uid, item.itemid == 1740 and 1740 or 1740) -- troque aqui o id da alavanca
	return true
end

 

 

--------------------------------

 

agora você pode adicionar quantos items quiser, só colocar {itemid, amount}

 

exemplo:

 

items = {{2173,1},{2160,10}}

 

ai para adicionar mais itens ficaria:

 

items = {{2173,1},{2160,10},{2494,1}}

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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