Ir para conteúdo
  • Cadastre-se

Histórico de Edições

Please note that revisions older than 15 days are pruned and will no longer show here

Não há histórico de edição para mostrar, ou este comentário foi editado por um moderador.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por 77mateus77
      Olá pessoal, gostaria de saber como posso adicionar um sistema de cassino por npc automatico, como este na imagen abaixo
       

    • Por Adriano SwaTT
      Boa noite galera,
      após um pedido aqui no fórum sobre um sistema de Cassino, decidi então criar este e disponibilizar para vocês.
       
      Introdução:
      Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo:
       
       
      Como funciona?
      O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu.
      Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável).
       
      Como jogar?
      Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar.
      Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado.
      Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca.
      E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente.
       
      Dicas de instalação!
      Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo:
       
      Instalando:
      Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro:
      Agora em “actions.xml” adicione a tag abaixo:
      Agora basta configurar de acordo com as informações disponíveis no início do script.
       
       
      Vejam o vídeo demonstrativo do Sistema em funcionamento.
       
       
       
       
      Criado por: Adriano Swatt'
    • Por xWhiteWolf
      Olá pessoas, hoje vim trazer pra vocês um script que inicialmente fiz prum trabalho mas acabei gostando muito dele e decidi postar.
      To meio que indo dormir porque daqui a pouquinho tenho aula então vai ser tudo bem rapido e se vcs tiverem alguma dúvida comentem aqui.
       
      Primeiramente façam uma sala parecida com essa aqui:


      Não precisa ser necessariamente assim, mas ela deve ter as 3 bolas, uma alavanca e um local pra botar o dinheiro pras apostas.

      O sistema é baseado naqueles jogos de slot nos cassinos onde você aposta uma quantidade de dinheiro e se tirar 3 peças iguais você recebe o dobro do dinheiro apostado.

      em actions/scripts crie um arquivo chamado cassino.lua e adicione o seguinte dentro dele:
       

      Agora em data/actions/actions.xml adicione:
      <action actionid="16541" script="cassino.lua"/>
      Agora só botar a actionid na lever e configurar tudo de acordo com seu sv (as posições ali em pieces são as posições de cada peça, ou cada bola, se preferir.)
      se quiser fazer várias salas é só copiar o código pra um cassino2.lua e registrar outra tag
      <action actionid="16542" script="cassino2.lua"/>;

      Tá tudo comentado no código então acho que dispensa uma explicação formal de como editar, espero que vocês gostem
      Aqui tem um pequeno gif que o membro @eviltox nos forneceu:


      Abraços do Lobo!
    • Por Baalszor
      Como faço para envés do script só apostar grana, apostar gold nuggets também??? No momento estou usando este script... Id da gold nugget 2157 - tentei colocar ai o script bugo...
      local keywordHandler = KeywordHandler:new()
      local npcHandler = NpcHandler:new(keywordHandler)
      NpcSystem.parseParameters(npcHandler)
       
      function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid) end
      function onCreatureDisappear(cid)             npcHandler:onCreatureDisappear(cid) end
      function onCreatureSay(cid, type, msg)         npcHandler:onCreatureSay(cid, type, msg) end
      function onThink()                            npcHandler:onThink() end
       
      local function delayMoneyRemoval(item, pos)
          doRemoveItem(getTileItemById(pos, item).uid)
          return true
      end
       
      local function placeMoney(amount, table_middle_pos)
          local remain = amount
          local gold_nugget = 0
          local crystal_coins = 0
       
          if (math.floor(amount / 10000) >= 1) then
              crystal_coins = math.floor(amount / 10000)
              remain = remain - gold_nugget * 10000
          end
          if ((remain / 100) >= 1) then
              gold_nuggets = remain / 100
          end
          addEvent(doCreateItem, 550, 2160, crystal_coins, table_middle_pos)
          addEvent(doCreateItem, 600, 2157, gold_nuggets, table_middle_pos)
      end
       
      local function rollDice(roll, cc_count, pc_count, table_left_pos, table_middle_pos, npc)
          local dice_ids = {5792, 5793, 5794, 5795, 5796, 5797}
          local random_rollval = math.random(1,6)
          local total_g = (10000 * cc_count) + (100 * pc_count)
          local prize_percent = 1.0 -- 100%
       
          if ((total_g) <= 20 and (total_g) >= 5) then
              doSendMagicEffect(table_left_pos, CONST_ME_CRAPS)
       
              for _, itemId in pairs(dice_ids) do
                      if(getTileItemById(table_left_pos, itemId).uid > 0) then
                      doTransformItem(getTileItemById(table_left_pos, itemId).uid, dice_ids[random_rollval])
                  end
              end
       
              if (roll == 1 and random_rollval <= 3) then
                  placeMoney(total_g + (total_g * prize_percent), table_middle_pos)
                  addEvent(doSendMagicEffect, 400, table_left_pos, 28)
                  addEvent(doSendMagicEffect, 700, table_left_pos, 28)
                  addEvent(doCreatureSay, 500, npc, "You win "..total_g.." gold coins, Parabéns você venceu", TALKTYPE_SAY, false, 0)
              elseif (roll == 2 and random_rollval >= 4) then
                  placeMoney(total_g + (total_g * prize_percent), table_middle_pos)
                  addEvent(doSendMagicEffect, 400, table_left_pos, 28)
                  addEvent(doSendMagicEffect, 700, table_left_pos, 28)
                  addEvent(doCreatureSay, 500, npc, "You win "..total_g.." gold coins, Parabéns você venceu!", TALKTYPE_SAY, false, 0)
              else
                  addEvent(doSendMagicEffect, 400, table_left_pos, CONST_ME_BLOCKHIT)
                  addEvent(doSendMagicEffect, 700, table_left_pos, CONST_ME_BLOCKHIT)
                  addEvent(doCreatureSay, 500, npc, "Você perdeu tente denovo.", TALKTYPE_SAY, false, 0)
              end
              doCreatureSay(npc, string.format("%s rolled a %d.", getCreatureName(npc), random_rollval), TALKTYPE_ORANGE_1, false, 0, table_left_pos)
          else
              addEvent(doCreateItem, 100, 2160, cc_count, table_middle_pos)
              addEvent(doCreateItem, 150, 2157, pc_count, table_middle_pos)
              doCreatureSay(npc, "Você precisa jogar o dinheiro no meio do depot e falar L para 1 a 3 ou H para 4 a 6 o preço minimo para a aposta é 5kk e o maximo 20kk.", TALKTYPE_SAY, false, 0)
          end
          return true
      end
       
      function creatureSayCallback(cid, type, msg)
          -- NPC userdata instance
          local npc = getNpcCid()
       
          -- Participating player userdata instance
          local position = {x = getNpcPos().x+2, y = getNpcPos().y, z = getNpcPos().z}
          position.stackpos = STACKPOS_TOP_CREATURE
          local player_uid = getThingfromPos(position).uid
       
          -- Game table position userdata instances
          local table_left_pos = {x = 126, y = 58, z = 7}
          local table_middle_pos = {x = 127, y = 58, z = 7}
       
          -- Search for coins on the left and middle tables and create item userdata instances
          local table_middle_cc = getTileItemById(table_middle_pos, 2160)
          local table_middle_pc = getTileItemById(table_middle_pos, 2157)
       
          -- Other variables
          local cc_count = 0
          local pc_count = 0
          local ROLL, LOW, HIGH = 0, 1, 2
       
          if (player_uid ~= 0) then
              if ((msgcontains(string.lower(msg), 'high') or msgcontains(string.lower(msg), 'h')) and (isPlayer(player_uid) and player_uid == cid)) then
                  ROLL = HIGH
              elseif ((msgcontains(string.lower(msg), 'low') or msgcontains(string.lower(msg), 'l')) and (isPlayer(player_uid) and player_uid == cid)) then
                  ROLL = LOW
              else
                  return false
              end
              if (table_middle_cc.uid ~= 0) then
                  cc_count = table_middle_cc.type
                  doTeleportThing(table_middle_cc.uid, table_left_pos)
                  addEvent(delayMoneyRemoval, 300, 2160, table_left_pos)
              end
              if (table_middle_pc.uid ~= 0) then
                  pc_count = table_middle_pc.type
                  doTeleportThing(table_middle_pc.uid, table_left_pos)
                  addEvent(delayMoneyRemoval, 300, 2157, table_left_pos)
              end
              addEvent(rollDice, 500, ROLL, cc_count, pc_count, table_left_pos, table_middle_pos, npc)
          else
              return false
          end
          return true
      end
       
      npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    • Por velosoaxl
      Gente seguinte, esse script logo abaixo é um action de cassino que funciona da seguinte forma; é criada uma alavanca com um uniqueID "X" a qual 
      quando acinonada pelo player é removido "x" item(s) no meu caso coloquei o item gold nugguets (como moeda). O scrip está funcionando, remove
      e adiciona um dos items "sorteados". Porém quando o player tem mais ou menos GOLD NUGGUETS (EX: no script coloquei 20 quando o player tem
      100 ele aciona 5 vezes e só! agora, se ele tiver 101, buga e ele aciona infinitamentes... acontece da mesma forma se ele tiver apenas 1 GOLD NUGGUETSS)
      a alavanca é acinonada normalmente.
       
       
      SCRIPT.
      function onUse(cid, item, frompos, item2, topos)
      --== Configurações
      local config = {
      items = {X, X, X, X, X, X, X, X}, -- Itens que ele pode ganhar
      vp = 2159, -- ID do Vip Coin
      }
      --== Fim das Configurações

      local rand = math.random(1, #config.items)
      if (item.actionid == 1140) and item.itemid == 1945 then
      if getPlayerItemCount(cid, config.vp) >= 6 then
      doPlayerRemoveItem(cid, config.vp, X)
      doPlayerAddItem(cid, config.items[rand], 1)
      doBroadcastMessage("O Jogador "..getCreatureName(cid).." Ganhou um "..getItemNameById(config.items[rand])..".")

      else
      doPlayerSendCancel(cid,"Você precisa de X  coins")
      doSendMagicEffect(getPlayerPosition(cid), 2)
      end
      elseif item.itemid == 1946 then
      doTransformItem(item.uid,item.itemid-1)
      end

      return TRUE
      end
      ---------------------------------------------------------------------------------------------------------------------------------------------
      Desde já agradeço e fico no aguardo. 
      Abraços!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo