Ir para conteúdo
  • 0

[Resolvido] Script Box de Item


FireShok

Pergunta

Tenho um script que ele da  so 1 item por vez . queria que ele desse o tanto que eu escolhesse para aquele determinado item Tipo:

Ao Abrir a box pode sair 1 desses Itens aleatoriamente :

Boost Stone x2

Boost Stone x5

Boost Stone x10

Fire Stone x20

PokeBalls x100

............................................................................

Script:

Spoiler

local card_id = {15559, 15566, 15573, 15580, 15587, 15594, 15601, 15608, 15615, 15622, 15629, 15636} -- joga os id dos card aqui
function onUse(cid, item, frompos, item2, topos)
local level = 10 -- level
if item.itemid == 17143 then -- id da box
if getPlayerLevel(cid) >= level then
local w = math.random (1,#card_id)
doPlayerAddItem(cid, card_id[w])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Vc Abriu Premier Box >>> ["..getItemNameById(card_id[w]).."] <<<")
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid,"You must be at least level "..level.."")
end return true end  end

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Cara, desculpa não poder te ajudar totalmente no seu problema, eu estou a 1h quebrando a cabeça e não consegui fazer, eu consegui algo bem parecido, espero que ajude. estou começando agora em script, então não consegui fazer o math.random sortear algo totalmente aleatorio dentro da tabela, como por exemplo:

sortear se você pode ganhar 2 boost stones, 5 boost stones ou 10 fire stones. Se alguem mais experiente pudesse me explicar agradeceria muito, pois já fiquei feliz por conseguir desse jeito kkk, mas estou querendo aprender mais, e se alguem puder me explicar e ajudar ficarei grato!

 

Parando de enrolação... o jeito que eu consegui é o seguinte, o math.random vai sortear um valor aleatorio pra item, outro aleatorio pra valores, ou seja:

Você pode ganhar 20 boosts stones, como tambem 20 fire stones

Você pode ganhar 10 boost stones ou 1 fire stone ou 4 boost ou 100 pokeballs ou 100 boosts e por ai vai... espero que esse jeito que consegui te ajude:

 

 

 





function onUse(cid, item, frompos, item2, topos)local config = {id = 12330, -- id do boxlevel = false, -- level pra abrir, se não quiser deixe false.remover = true -- vai remover o box do jogador quando ele usar ? se quiser deixe true}local items = { -- id dos itens que você quer que sorteie2160,12344,12349}local rand = items[math.random(1,#items)]if config.level == false thenif item.itemid == 12330 thendoPlayerAddItem(cid, rand, math.random(1,100)) -- << aqui está sorteando um numero aleatorio entre 1 e 100 caso queira é só mudarif config.remover == true thendoRemoveItem(item.uid, 1)else    return trueendreturn trueendelseif getPlayerLevel(cid) >= config.level thendoPlayerAddItem(cid, rand, math.random(1,100)) -- << aqui está sorteando um numero aleatorio entre 1 e 100 caso queira é só mudarif config.remover == true thendoRemoveItem(item.uid, 1)else    return trueendelsedoPlayerSendTextMessage(cid, 20, "Voce precisa de level ".. config.level .." para abrir esse box.") -- mensagem que vai enviar caso você não tenha o levelendend

 

Ficou meio grande e feio kkk, porem como disse, estou começando e quero muito aprender, me deu muita satisfação poder te ajudar a resolver parte do seu problema, mas me deu mais satisfação ainda pq tive que quebrar a cabeça pra fazer oque você queria, e mesmo assim não consegui, então o maximo que consegui fui assim. Caso alguem pudesse me explicar como é feito agradeceria muito.

 

Espero que resolva seu problema ^^

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

@Pokemonultimatetwo

Usa essa forma de tabela.

Citar

tabela = {

-- {[id do item] = quantidade de items }

{[2160] = 2},

{[2152] = 100},

....

}

 

Assim tu pode fazer o random dos items dessa forma.

Citar

Random = math.random(1,#tabela)

 

Aí tu pega o id e quantidade de items assim:

Citar

for item, quantidade in pairs(tabela[Random]) do

Additemplayer(cid,item,quantidade)

end

 

Editado por Poccnn
Link para o comentário
Compartilhar em outros sites

  • 0
10 horas atrás, Poccnn disse:

@Pokemonultimatetwo

Usa essa forma de tabela.

 

Assim tu pode fazer o random dos items dessa forma.

 

Aí tu pega o id e quantidade de items assim:

 

Não entendi muito bem, pois tenho dificuldade em for kkk nunca usei em nenhum script... então não sei como é a estrutura dele, mas vou dar uma olhada pra ver se aprendo, valeu irmão.

 

@FireShok Vou tentar fazer do jeito que você quer mano, mais tarde te dou uma resposta

@FireShok

Está ai mano, graças ao @Poccnn eu consegui fazer exatamente do jeito que você queria, ta ai:

 

function onUse(cid, item, frompos, item2, topos)

local config = {
id = 12330, -- id do box
level = false, -- level pra abrir, se não quiser deixe false.
remover = true -- vai remover o box do jogador quando ele usar ? se quiser deixe true
}


local tabela = {
--{[id do item] = 2 << quantidade do item}
{[2160] = 2},
{[12347] = 100},
}

local random = math.random(1,#tabela)

if config.level == false then
if item.itemid == 12330 then
if config.remover == true then
doRemoveItem(item.uid, 1)
else
    return true
end
for item, quantidade in pairs(tabela[random]) do
doPlayerAddItem(cid, item, quantidade)
end
return true
end
elseif getPlayerLevel(cid) >= config.level then
if config.remover == true then
doRemoveItem(item.uid, 1)
else
    return true
end
for item, quantidade in pairs(tabela[random]) do
doPlayerAddItem(cid, item, quantidade)
end
else
doPlayerSendTextMessage(cid, 20, "Voce precisa de level ".. config.level .." para abrir esse box.") -- mensagem que vai enviar caso você não tenha o level
return true
end
end

 

 

@Poccnn Obrigado pela ajuda mano, vou estudar mais sobre for e math.random, quebrei a cabeça mas consegui fazer kkk espero adiquirir muito mais conheçimento... vlw mano

 

#ATULIZADO:

Atualizei com a correção que o Poccn me disse, copie de novo o script para não dar nenhum erro ou bug

@FireShok

Editado por Pokemonultimatetwo
Link para o comentário
Compartilhar em outros sites

  • 0

@Pokemonultimatetwo.

Remova o "if" e todo seu escopo junto com o "else" de dentro do loop (for).

Citar

for item, quantidade in pairs(tabela[random]) do

doPlayerAddItem(cid, item, quantidade)

if config.remover == true then

doRemoveItem(item.uid, 1)

else    

return true

end

end

 

Caso queira aprender mais sobre loop'se, segue o link de um tutorial.

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...