Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Cassino Machine


Ir para solução Resolvido por gustavof,

Posts Recomendados

Boa Noite Galera Do TK!

Vim aqui pedir outra ajuda para vocês. preciso de uma script que o Player clique no Machine(ITEM) e ele tem chance de ganhar 250k + pra ele ganhar tem que ter sorte e vai gastar 5k, Já procurei tudo e não achei essa script, achei uma parecida, porém essa aqui não tem chance e ele ganha toda hora 250k, alguem pode me ajudar? pfv

Citar

function onUse(cid, item, frompos, item2, topos)
--== Configurações
local config = {
items = {2160}, -- Itens que ele pode ganhar
vp = 2160, -- ID do Vip Coin
}
--== Fim das Configurações

local rand = math.random(1, #config.items)
doPlayerRemoveItem(cid, config.vp, 5)
doPlayerAddItem(cid, config.items[rand], 20)
doBroadcastMessage("O Jogador "..getCreatureName(cid).." Ganhou um "..getItemNameById(config.items[rand])..".")

elseif item.itemid == 9893 then
doTransformItem(item.uid,item.itemid-1)


return false
end
doPlayerSendCancel(cid,"Você precisa de X  coins")
doSendMagicEffect(getPlayerPosition(cid), 2)
end

TFS 0.4

TIBIA 8.6

+REP

Link para o post
Compartilhar em outros sites

Cara, não testei, mas acredito que funcione, estou aprendendo ainda.

 

Spoiler

function onUse(cid, item, frompos, item2, topos)
--== Configurações
local chance = 100
local porcentagem = 10
local quantidade = 20
local preco = 5
local config = {
	item = 2160, -- Itens que ele pode ganhar
	vp = 2160, -- ID do Vip Coin
}
--== Fim das Configurações
	local rand = math.random(1, chance)
	
	if getPlayerItemCount(cid, config.vp) >= 5 then
		doPlayerRemoveItem(cid, config.vp, preco)
		if rand <= porcentagem then
			doPlayerAddItem(cid, config.item, quantidade)
			doBroadcastMessage("O Jogador "..getCreatureName(cid).." Ganhou um "..getItemNameById(config.items[rand])..".")
		end

	elseif item.itemid == 9893 then
		doTransformItem(item.uid,item.itemid - 1) -- ele transforma no item anteior
		doPlayerSendCancel(cid,"Você precisa de " .. preco .. " coins")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return false
	end
	
end

 

 

Link para o post
Compartilhar em outros sites

@gustavof

Funcionou perfeitamente, tem como me ajudar em outra coisa?

Quero uma script que nem essa + queria que o prêmio fosse uma backpack com 3 tipos de itens aleatórios dentro dela bp, e que a chance fosse de 0,5 tem como tentar me ajudar?

MT OBG :)

Link para o post
Compartilhar em outros sites

Não sei se eu entendi muito bem, se é uma backpack com 3 itens aleatórios de um conjunto (maior que 3 itens) ou apenas uma backpack com 1 item aleatório apenas de um conjunto de itens, fiz o mais simples, acredito que dependendo dos itens que você colocar, o fator "cap" do player pode ser prejudicial, pois não é verificado se o player tem espaço livro.

 

Spoiler


function onUse(cid, item, frompos, item2, topos)
	--== Configurações
	local chance = 100
	local porcentagem = 10 -- %10 de chance
	local quantidade = 20
	local preco = 5
	local config = {
		bp = 1988,
		itens = {2160, 2159, 2158}, -- Itens que ele pode ganhar
		vp = 2160, -- ID do Vip Coin
	}
	--== Fim das Configurações

	-- gera um numero aleatro entre 1 até "chance"
	local rand = math.random(1, chance)
	-- gera um numero aleatorio baseado na quantidade de item e pega apenas 1 item
	local item = config.itens[math.random(1, #config.itens)] 
	
	if getPlayerItemCount(cid, config.vp) >= preco then
		doPlayerRemoveItem(cid, config.vp, preco)
		if rand <= porcentagem then
			bp = doPlayerAddItem(cid, bp, 1)
			doAddContainerItem(bp, item, 1)
			doBroadcastMessage("O jogador "..getCreatureName(cid).." ganhou um backpack premiada!")
		end
	elseif item.itemid == 9893 then
		doTransformItem(item.uid,item.itemid - 1) -- ele transforma no item anteior
		doPlayerSendCancel(cid,"Você precisa de " .. preco .. " coins")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return false
	end
end

 

 

Link para o post
Compartilhar em outros sites

@gustavof

É pq no meu ot tem 5 máquinas machine, a máquina 4 ganha 1 backpack com 10 gemas aleatorias, a máquina 5 ganha 10 backpack cheias com gemas aleatoria, mas a chance da máquina 4 é 0,5 e dá máquina 5 é 0,1 entende?

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

Modifiquei aqui, vamos ver se é realmente o que você quer.
 

Spoiler

function onUse(cid, item, frompos, item2, topos)
	--== Configurações
	local chance = 100
	local porcentagem = 10 -- %10 de chance
	local quantidadeBackpack = 1
	local quantidadeItens = 20 -- quantidade dentro das backpacks | obs.: cuidado com o tamanho da bp
	local preco = 5
	local config = {
		bp = 1988,
		itens = {2160, 2159, 2158}, -- Itens que ele pode ganhar
		vp = 2160, -- ID do Vip Coin
	}
	--== Fim das Configurações

	-- gera um numero aleatro entre 1 até "chance"
	local rand = math.random(1, chance)
	
	if getPlayerItemCount(cid, config.vp) >= preco then
		doPlayerRemoveItem(cid, config.vp, preco)
		if rand <= porcentagem then
			for i = 0, quantidadeBackpack do
				local bp = doPlayerAddItem(cid, bp, 1)
				for j = 0, quantidadeItens do
					-- gera um numero aleatorio baseado na quantidade de item e pega apenas 1 item
					local item = config.itens[math.random(1, #config.itens)] 
					doAddContainerItem(bp, item, 1)
				end
			end
			doBroadcastMessage("O Jogador "..getCreatureName(cid).." ganhou um backpack premiada!")
		end
	elseif item.itemid == 9893 then
		doTransformItem(item.uid,item.itemid - 1) -- ele transforma no item anteior
		doPlayerSendCancel(cid,"Você precisa de " .. preco .. " coins")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return false
	end	
end

 

 

- Aumentando a chance e diminuindo a porcentagem dificulta a possibilidade de ganhar

- A quantidade de backpacks para ganhar

- A quantidade de itens dentro de cada backpack

- Os itens dentro da backpack vão ser aleatórios e podem ser repitidos

- Defina os itens dentro de config.itens separando por virgula

 

Link para o post
Compartilhar em outros sites

@gustavof

Não aparece nada na minha mão, fala que ganhei a backpack + não aparece no char :(

Link para o post
Compartilhar em outros sites

No meu também aparece esse error na distro \/

Citar


[05/11/2017 22:37:22] [Error - Action Interface] 
[05/11/2017 22:37:22] data/actions/scripts/maquina4.lua:onUse
[05/11/2017 22:37:23] Description: 
[05/11/2017 22:37:23] (luaDoAddContainerItem) Container not found

 

Link para o post
Compartilhar em outros sites

@gustavof

Funcionou,+ esta lagando meu ot quando clicko e ganho, aparece isso na distro milhoes de vezes e trava o meu ot\/

Citar

05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".
05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".05/11/2017 23:21:21] > Broadcasted message: "O Jogador [DONO] ganhou uma mochila de prêmios.".

 

Link para o post
Compartilhar em outros sites

@gustavof

Já resolvi, queria saber como faço pra por 0,5% de chance, não sei como  aonde muda? Vou da REP pra vc jaja e melhor resposta rlxa rs

Link para o post
Compartilhar em outros sites

- Aumentando a chance e diminuindo a porcentagem dificulta a possibilidade de ganhar

Ou seja

Toda vez que o script é executado, ele gera um numero entre 1 até o valor chance, depois verifica se esse numero aleatório é menor ou igual a porcentagem, se for, o player ganha o premio.

Com isso, acredito que para os valores de 0.5% seria interessante os valores:

chance = 1000

porcentagem = 5

 

Não ligo pra REP. :)

Link para o post
Compartilhar em outros sites

@gustavof

Vlw, mt obg, dps qlq coisa se eu precisar te mando o link dos tópicos pd ser?, vlw me ajudou demais, tmj

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo