Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajudar a colocar porcentagem nesse script!


Ir para solução Resolvido por Tadelho,

Posts Recomendados

  • Solução

Sim, eu entendi isso. O problema é que com essa disposição de 50%-30%-10%, em 10% das vezes não acontecerá do jogador ganhar qualquer um dos itens listados. Mesmo que o sorteio dos itens seja independente, ainda há o risco também de nenhum dos itens ser sorteado, então eu assumi que ele simplesmente perderá em 10% das vezes. @leozincorsair 

 

Sorteio para ganhar um item ou outro, 1° script.

Sorteio independente de cada item, 2° script.

-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]" 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local chance = math.random(1,100)
local CB = {
doSendAnimatedText, doSendMagicEffect,
doPlayerAddItem, doPlayerRemoveItem}
if not CB[4](cid, money[1], count) then
    doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                       CB[2](getThingPos(cid), CONST_ME_POFF)
else
	if chance <= 50 then
	CB[3](cid, PR[1], 2)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[1]).."", 22)
	elseif chance > 50 and <= 80 then
	CB[3](cid, PR[2], 1)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[2]).."", 22)
	elseif chance > 80 and <= 90 then
	CB[3](cid, PR[3], 1)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[3]).."", 22)
	elseif chance > 90 then
	doBroadcastMessage(""..cast.." Você perdeu sua aposta.", 22)
return TRUE
end
return TRUE
end
-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]" 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local chance1, chance2, chance3 = math.random(1,100)
local CB = {
doSendAnimatedText, doSendMagicEffect,
doPlayerAddItem, doPlayerRemoveItem}
if not CB[4](cid, money[1], count) then
    doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                       CB[2](getThingPos(cid), CONST_ME_POFF)
else
    if chance1 <= 50 then
    CB[3](cid, PR[1], 2)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[1]).."", 22)
    end
    if chance2 <= 30 then
    CB[3](cid, PR[2], 1)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[2]).."", 22)
    end
    if chance3  <= 10 then
    CB[3](cid, PR[3], 1)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[3]).."", 22)
    end    
    if chance1 > 50 and chance2 > 30 and chance3 > 10 then
    doBroadcastMessage(""..cast.." Você perdeu sua aposta.", 22)
    end
return TRUE
end
return TRUE
end
Editado por Tadelho (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 20
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Sim, eu entendi isso. O problema é que com essa disposição de 50%-30%-10%, em 10% das vezes não acontecerá do jogador ganhar qualquer um dos itens listados. Mesmo que o sorteio dos itens seja independente, ainda há o risco também de nenhum dos itens ser sorteado, então eu assumi que ele simplesmente perderá em 10% das vezes. @leozincorsair    Sorteio para ganhar um item ou outro, 1° script. Sorteio independente de cada item, 2° script. -- CONFIGURAÇÕES -- PR = {11413, 11414, 1

Não é possivel que dê errado novamente Tem discord? Se tiver me add Senky#6266 Que a gente resolve e posta a solução aqui

Posted Images

9 horas atrás, Tadelho disse:

Sim, eu entendi isso. O problema é que com essa disposição de 50%-30%-10%, em 10% das vezes não acontecerá do jogador ganhar qualquer um dos itens listados. Mesmo que o sorteio dos itens seja independente, ainda há o risco também de nenhum dos itens ser sorteado, então eu assumi que ele simplesmente perderá em 10% das vezes. @leozincorsair 

 

Sorteio para ganhar um item ou outro, 1° script.

Sorteio independente de cada item, 2° script.


-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]" 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local chance = math.random(1,100)
local CB = {
doSendAnimatedText, doSendMagicEffect,
doPlayerAddItem, doPlayerRemoveItem}
if not CB[4](cid, money[1], count) then
    doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                       CB[2](getThingPos(cid), CONST_ME_POFF)
else
	if chance <= 50 then
	CB[3](cid, PR[1], 2)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[1]).."", 22)
	elseif chance > 50 and <= 80 then
	CB[3](cid, PR[2], 1)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[2]).."", 22)
	elseif chance > 80 and <= 90 then
	CB[3](cid, PR[3], 1)
	doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[3]).."", 22)
	elseif chance > 90 then
	doBroadcastMessage(""..cast.." Você perdeu sua aposta.", 22)
return TRUE
end
return TRUE
end

-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]" 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local chance1, chance2, chance3 = math.random(1,100)
local CB = {
doSendAnimatedText, doSendMagicEffect,
doPlayerAddItem, doPlayerRemoveItem}
if not CB[4](cid, money[1], count) then
    doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                       CB[2](getThingPos(cid), CONST_ME_POFF)
else
    if chance1 <= 50 then
    CB[3](cid, PR[1], 2)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[1]).."", 22)
    end
    if chance2 <= 30 then
    CB[3](cid, PR[2], 1)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[2]).."", 22)
    end
    if chance3  <= 10 then
    CB[3](cid, PR[3], 1)
    doBroadcastMessage(""..cast.." Você Obteve um "..getItemNameById(PR[3]).."", 22)
    end    
    if chance1 > 50 and chance2 > 30 and chance3 > 10 then
    doBroadcastMessage(""..cast.." Você perdeu sua aposta.", 22)
    end
return TRUE
end
return TRUE
end

 

Da esse erro :

 

Screenshot_9.png

Link para o post
Compartilhar em outros sites

@leozincorsair Substitui o seguinte: 

 

local chance1, chance2, chance3 = math.random(1,100)

 

Por:

 


local chance1 = math.random(1,100)
local chance2 = math.random(1,100)
local chance3 = math.random(1,100)

Testei no TFS 0.4.0 e funcionou.

Link para o post
Compartilhar em outros sites
2 horas atrás, Tadelho disse:

@leozincorsair Substitui o seguinte: 

 


local chance1, chance2, chance3 = math.random(1,100)

 

Por:

 



local chance1 = math.random(1,100)
local chance2 = math.random(1,100)
local chance3 = math.random(1,100)

Testei no TFS 0.4.0 e funcionou.

 

Perfeito , funcionou .. so poderia colocar para nao aparecer no console do server, somente no server log ou default.

Link para o post
Compartilhar em outros sites
38 minutos atrás, leozincorsair disse:

Perfeito , funcionou .. so poderia colocar para nao aparecer no console do server, somente no server log ou default.

 

38 minutos atrás, leozincorsair disse:

Perfeito , funcionou .. so poderia colocar para nao aparecer no console do server, somente no server log ou default.

 

1º Script

Spoiler

-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]"
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local chance1 = math.random(1,100)
    local chance2 = math.random(1,100)
    local chance3 = math.random(1,100)
    local CB = {
    doSendAnimatedText, doSendMagicEffect,
    doPlayerAddItem, doPlayerRemoveItem}
    if not CB[4](cid, money[1], count) then
        doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                           CB[2](getThingPos(cid), CONST_ME_POFF)
    else
        if chance1 <= 50 then
        CB[3](cid, PR[1], 2)
        doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[1]))
        end
        if chance2 <= 30 then
        CB[3](cid, PR[2], 1)
        doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[2]))
        end
        if chance3  <= 10 then
        CB[3](cid, PR[3], 1)
        doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[3]))
        end
        if chance1 > 50 and chance2 > 30 and chance3 > 10 then
        doPlayerSendTextMessage(cid, 20, cast .. " Você perdeu sua aposta.")
        end
        return TRUE
    end
    return TRUE
end

2º Script

Spoiler

-- CONFIGURAÇÕES --
PR = {11413, 11414, 11467} -- ID dos itens que será sorteado.
money = {9970, 'Royal Coins'} -- ID do crystal coin e nome.
count = 50 -- Quantidade de dinheiro.
cast = "[Cassino]"
function onUse(cid, item, fromPosition, itemEx, toPosition)
local chance = math.random(1,100)
local CB = {
doSendAnimatedText, doSendMagicEffect,
doPlayerAddItem, doPlayerRemoveItem}
if not CB[4](cid, money[1], count) then
    doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra apostar.")
                       CB[2](getThingPos(cid), CONST_ME_POFF)
else
if chance <= 50 then
    CB[3](cid, PR[1], 2)
    doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[1]))
    elseif chance > 50 and <= 80 then
    CB[3](cid, PR[2], 1)
    doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[2]))
    elseif chance > 80 and <= 90 then
    CB[3](cid, PR[3], 1)
    doPlayerSendTextMessage(cid, 20, cast .. " Você Obteve um "..getItemNameById(PR[3]))
    elseif chance > 90 then
    doPlayerSendTextMessage(cid, 20, cast .. " Você perdeu sua aposta.")
    return TRUE
    end
    return TRUE
end

 

Modifiquei o script do nosso amigo acima, só fiz trocar o tipo de envio da mensagem.

Editado por kiinho
Esqueci do primeiro script :s (veja o histórico de edições)
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.

  • Estatísticas dos Fóruns

    96850
    Tópicos
    519614
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo