Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/05/20 em todas áreas

  1. Yan Oliveira

    Box

    Olá amigo, primeiramente, coloque um título mais intuitivo no tópico para ficar mais fácil e legível de outras pessoas procurar. Vá em Data/Actions/Scripts e crie um arquivo.lua chamado box_itens.lua (na codificação coloque como ANSI para evitar problemas com acentuações) e adicione o seguinte código dentro do arquivo: local id_table_item = {2392, 12162, 12338} -- ID DO ITEM (ADICIONE NESSA TABELA TODOS ITENS) local level = 1 -- LEVEL MÍNIMO local id_box = 12338 -- ID DA BOX local quantidade_item = 1 -- QUANTIDADE DE ITEM(S) function onUse(cid, item, frompos, item2, topos) if item.itemid == id_box then -- VERIFICA SE CLICOU NA BOX, ALTERAR O ID DA BOX NA VARIÁVEL if getPlayerLevel(cid) >= level then -- VERIFICA SE O PLAYER TEM O NÍVEL NECESSÁRIO. DEIXEI COMO 1 CASO NÃO QUEIRA QUE TENHA VERIFICAÇÃO DE NÍVEL, POIS O NÍVEL MÍNIMO É 1. QUALQUER COISA SÓ ALTERAR NA VARIÁVEL for i = 1, #id_table_item do doPlayerAddItem(cid, id_table_item[i], quantidade_item) -- SETAR O ID DO ITEM NA TABELA E QUANTIDADE NA VARIÁVEL end doSendMagicEffect(getThingPos(cid), 27) -- EFEITO AO ABRIR A BOX doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Parabéns, você recebeu " ..#id_table_item.. " itens. Confira em sua bag.") -- MENSAGEM PARA O PLAYER QUE PEGA A QUANTIDADE TOTAIS DE ITENS QUE EXISTE DENTRO DA TABELA doRemoveItem(item.uid, 1) -- REMOVE A BOX DA BAG DO PLAYER else doPlayerSendCancel(cid,"Você dever ser no mínimo nível "..level.." para abrir a box.") -- MENSAGEM CASO NÃO TENHA NÍVEL end return true end end Depois vá em Data/Actions e abra o arquivo actions.xml e adicione a tag dentro: <action itemid="ID DA BOX" event="script" value="box_itens.lua"/> <!-- COLOCAR O ID DA BOX ONDE ESTÁ "ID DA BOX" --> Adicione todos os IDs dos itens dentro da tabela. Só lembrando que como eu já fiz para você anteriormente um script de box, nesse script você precisa colocar uma box diferente (id), pois a outra bag já está registrada e se colocar as duas vai dar problema.
    1 ponto
  2. Yan Oliveira

    Box por %

    Sobre vir o valor repetido, foi erro meu, falta de atenção, pois como deixei a variável fora da function onUse ele deixava sempre o valor que gerou randomico fixo. Eu tinha criado a váriavel dentro do escopo, mas ai deixando organizado, comentado e legível para você acabei colocando fora da função. Estarei mandando corrigido. Sobre o seu pedido, eu não acho que vale a pena fazer desse jeito, porque você vai fazer um esforço para duas coisas que na verdade é uma, pois como é aleatório, como você vai saber a porcentagem que vai sair? Não tem como entendeu? De qualquer forma vai ser aleatório, então eu sugiro que deixa a quantidade de itens aleatoriamente direto igual eu fiz. E nem estou falando isso para não precisar fazer, pois se quiser posso tentar fazer, mas a questão é que vai gastar esforço com uma coisa sem necessidade. Mas reflita sobre o que falei e veja se vai aceitar o meu conselho ou se vai querer como pediu inicialmente. Estou mandando o código corrigido, pode testar que agora virá valores aleatórios normal. Mandarei até uma print que testei para comprovar. Substitua o código por esse: local id_item = 2392 -- ID DO ITEM local level = 1 -- LEVEL MÍNIMO local id_box = 12338 -- ID DA BOX function onUse(cid, item, frompos, item2, topos) local quantidade_item = math.floor(math.random(1, 100)) -- GERA A QUANTIDADE DO ITEM RANDOMICAMENTE if item.itemid == id_box then -- VERIFICA SE CLICOU NA BOX, ALTERAR O ID DA BOX NA VARIÁVEL if getPlayerLevel(cid) >= level then -- VERIFICA SE O PLAYER TEM O NÍVEL NECESSÁRIO. DEIXEI COMO 1 CASO NÃO QUEIRA QUE TENHA VERIFICAÇÃO DE NÍVEL, POIS O NÍVEL MÍNIMO É 1. QUALQUER COISA SÓ ALTERAR NA VARIÁVEL doPlayerAddItem(cid, id_item, quantidade_item) -- SETAR O ID DO ITEM NA VARIÁVEL doSendMagicEffect(getThingPos(cid), 27) -- EFEITO AO ABRIR A BOX if quantidade_item > 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Parabéns, você recebeu " ..quantidade_item.. " " ..getItemNameById(id_item) .."s") -- MENSAGEM PARA O PLAYER NO PLURAL CASO SEJA A QUANTIDADE MAIOR QUE 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Parabéns, você recebeu " ..quantidade_item.. " " ..getItemNameById(id_item)) -- MENSAGEM PARA O PLAYER NO SINGULAR SE A QUANTIDADE FOR 1 end doRemoveItem(item.uid, 1) -- REMOVE A BOX DA BAG DO PLAYER else doPlayerSendCancel(cid,"Você dever ser no mínimo nível "..level.." para abrir a box.") -- MENSAGEM CASO NÃO TENHA NÍVEL end return true end end Print: Como pode ver fiz o teste, cliquei 4x na box e veio quantidades diferentes nas 4 vezes. Testa ai e me fala. (Fazendo um adendo, eu troquei no código a função math.abs para math.floor porque o abs pode pegar número real, e o floor só pega inteiro, outro erro meu rs. Também acrescentei uma verificação para caso a quantidade de itens seja maior que um ele fala o nome do item no plural, e com 1 no singular.)
    1 ponto
  3. ChernobylAtlant

    Graphic Gallery

    (SPRITER INICIANTE)Olá pessoal estou aqui vindo trazer minha humilde galeria seguindo a ordem das primeiras até as mais recentes , espero que gostem, estou aberto a projetos e tudo mais qualquer coisa PM. (sempre que eu fizer uma Sprite nova estarei atualizando aqui ) *Mega Diancie *CABINK *Diancie *Mulher Maravilha *Rowlet *Florges *Vivillon *Cosmog *Marshadow / Marshadow transformado (vai ter remake é porque fiz com sono, já são 12:58) *Goomy *Goomy Rena de natal *Berry *Sandgast *Palossand *Alvida *MelMetal Deixe seu like S2 Qualquer coisa só chamar no chat !! 
    1 ponto
  4. Dark CheerS

    WODBO BIANCO ESTÁ DE VOLTA!

    n funfa '-'
    0 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...