gonorreiaswat 151 Postado Setembro 7, 2015 Share Postado Setembro 7, 2015 Bom dia turma, Após um pedido aqui no outro 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: ------- Script by: Adriano Swatt ----local condition_infight = createConditionObject(CONDITION_INFIGHT)setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens.local items = {[0] = {0}, -- NEUTRO[1] = {2182}, -- ID do ITEM 1[2] = {2183}, -- ID do ITEM 2[3] = {2184}, -- ID do ITEM 3[4] = {2185}, -- ID do ITEM 4[5] = {2186}, -- ID do ITEM 5[6] = {2187}, -- ID do ITEM 6[7] = {2188}, -- ID do ITEM 7[8] = {2189}, -- ID do ITEM 8[9] = {2190}, -- ID do ITEM 9[10] = {2191}, --ID do ITEM 10[11] = {0} -- NEUTRO}local qtdd = 10 -- Quantidade de Itens a Sortear // Não precisa apagar as demais linhas de configuração acima.local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinaçãolocal comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinaçãolocal comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acimalocal premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sortelocal pos = {{x=1041, y=1030, z=6}, {x=1042, y=1030, z=6}, {x=1043, y=1030, z=6}} -- Posições onde os itens sorteados aparecerãolocal effect = 26 -- Efeito na hora de selecionar o item da sortelocal eff = 30 -- Efeito ao criar os itens na mesa (hora do sorteio)local reff = 29 -- Efeito ao remover itens da mesa (ao finalizar)-------- FIM DAS CONFIGURAÇÕES --------function onUse(cid, item, frompos, item2, topos)local dir = getPlayerLookDir(cid)local gget = getGlobalStorageValue(gstrg)local gnumb = items[gget]local gnumba = items[gget + 1]local gnumbs = items[gget - 1] if gnumb then if dir == WEST or dir == EAST then -- Caso não esteja em posição de jogar. doPlayerSendTextMessage(cid, 18, "Para jogar, siga as dicas abaixo: \n Para escolher o item da sorte, vire-se para baixo e clique na alavanca até selecioná-lo. \n Para jogar, após ter selecionado o item da sorte, vire-se para cima e puxe novamente a alavanca.") elseif dir == NORTH then -- Posição de Jogar if gget ~= 0 then if getGlobalStorageValue(gstrg_control) < 1 then if getPlayerItemCount(cid, valor[1]) >= valor[2] then math1 = math.random(1, qtdd) math2 = math.random(1, qtdd) math3 = math.random(1, qtdd) doPlayerRemoveItem(cid, valor[1], valor[2]) mayNotMove(cid, true) doAddCondition(cid, condition_infight) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Máquina em funcionamento, aguarde.") setGlobalStorageValue(gstrg_control, 1) --- Criando itens doSendMagicEffect(pos[1], eff) doCreateItem(items[math1][1], pos[1]) setGlobalStorageValue(istrg[1], items[math1][1]) addEvent(doSendMagicEffect, 1000, pos[2], eff) addEvent(doCreateItem, 1000, items[math2][1], pos[2]) setGlobalStorageValue(istrg[2], items[math2][1]) addEvent(doSendMagicEffect, 2000, pos[3], eff) addEvent(doCreateItem, 2000, items[math3][1], pos[3]) setGlobalStorageValue(istrg[3], items[math3][1]) --- Checando Itens if gnumbs[1] == getGlobalStorageValue(istrg[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você já acertou o primeiro item da combinação.") setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1)) else doPlayerSendTextMessage(cid, 18, "Que pena, já perdeu na primeira chance.") end if gnumbs[1] == getGlobalStorageValue(istrg[2]) then addEvent(doPlayerSendTextMessage, 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o segundo item da combinação.") setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1)) else addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que pena, perdeu na segunda chance.") end if gnumbs[1] == getGlobalStorageValue(istrg[3]) then addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o terceiro item da combinação.") setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1)) else addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que pena, perdeu na terceira chance.") end addEvent(function() for z = 1, 3 do doRemoveItem(getTileItemById(pos[z], getGlobalStorageValue(istrg[z])).uid, 1) doSendMagicEffect(pos[z], reff) end mayNotMove(cid, false) setGlobalStorageValue(gstrg_control, 0) addEvent(CassPremio, 500, cid) end, 5000) --- Fim Checagem else doPlayerSendCancel(cid, "Você precisa de "..valor[2].." "..getItemNameById(valor[1]).." para jogar.") end else doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para jogar novamente.") end else doPlayerSendCancel(cid, "Primeiro selecione o item de sorte para poder jogar.") end elseif dir == SOUTH then -- Posição de Selecionar Item da Sorte if getGlobalStorageValue(gstrg_control) < 1 then if gget <= 0 then doCreateItem(gnumba[1], 1, iluck_pos) doSendMagicEffect(iluck_pos, effect) doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumba[1]).." como seu item da sorte.") setGlobalStorageValue(gstrg, 2) elseif gget >= 2 and gget < (qtdd + 1) then if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1) end doCreateItem(gnumb[1], 1, iluck_pos) doSendMagicEffect(iluck_pos, effect) doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumb[1]).." como seu item da sorte.") setGlobalStorageValue(gstrg, (gget + 1)) elseif gget >= (qtdd + 1) then if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1) end doSendMagicEffect(iluck_pos, effect) doPlayerSendCancel(cid, "Você resetou os itens.") setGlobalStorageValue(gstrg, 0) end else doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para selecionar outro item da sorte.") end end else doPlayerSendCancel(cid, "Você ativou o Cassino Slots.") setGlobalStorageValue(gstrg, 0) endreturn trueendfunction CassPremio(cid) if getPlayerStorageValue(cid, gstrg) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, você acertou um item da combinação e foi recompensado em "..comb1[2].." "..getItemNameById(comb1[1])..".") doPlayerAddItem(cid, comb1[1], comb1[2]) setPlayerStorageValue(cid, gstrg, 0) elseif getPlayerStorageValue(cid, gstrg) == 2 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, foi por pouco, mas você acertou dois itens da combinação e foi recompensado em "..comb2[2].." "..getItemNameById(comb2[1])..".") doPlayerAddItem(cid, comb2[1], comb2[2]) setPlayerStorageValue(cid, gstrg, 0) elseif getPlayerStorageValue(cid, gstrg) == 3 then doBroadcastMessage("Parabéns ao jogador "..getPlayerName(cid).." acertou as 3 combinações da Cassino Slots e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou TODOS itens da combinação e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".") doPlayerAddItem(cid, premio[1], premio[2]) doPlayerAddItem(cid, comb3[1], comb3[2]) setPlayerStorageValue(cid, gstrg, 0) elseif getPlayerStorageValue(cid, gstrg) > 3 then doPlayerSendCancel(cid, "Mais sorte da próxima vez.") setPlayerStorageValue(cid, gstrg, 0) endreturn trueend Agora em “actions.xml” adicione a tag abaixo: <action actionid="12129" script="cassino_slots.lua"/> 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. CHANGELOG:Update v1.1. (09/02/2015) - Corrigido bug que impedia funcionamento na primeira execução. Update v1.2. (10/02/2015) - Corrigido problema que bugava storages do player. - Corrigido bug que impedia alguns players de jogar. - Adicionada tag de configuração para quantidade de itens que serão sorteados. Update v1.3. (17/03/2015) - Corrigido problema de erro no launcher ao dar clean e/ou o item da sorte não estar no lugar. Criado por: Adriano Swatt' CliffBurtton reagiu a isso 1 Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Setembro 7, 2015 Share Postado Setembro 7, 2015 Gostei do resultado apresentado no vídeo. Sério, ficou muito legal. Tópico aprovado e movido para a área adequada. Obrigado pelo conteúdo. ) Link para o comentário Compartilhar em outros sites More sharing options...
Felipe Moraes 151 Postado Setembro 7, 2015 Share Postado Setembro 7, 2015 Muito bom man, gostei da idéia também. Espero que compartilhe mais conteúdos como esse conosco. Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Setembro 7, 2015 Autor Share Postado Setembro 7, 2015 Gostei do resultado apresentado no vídeo. Sério, ficou muito legal. Tópico aprovado e movido para a área adequada. Obrigado pelo conteúdo. ) Obrigado, deu até um trabalhinho de fazer pois na época queria fazer todo em um script apenas e não era tão experiente em .LUA, porém, deu certo. Obrigado por comentar e pelo elogio. Muito bom man, gostei da idéia também. Espero que compartilhe mais conteúdos como esse conosco. Que bom que gostou, espero que seja bem útil. Pode deixar que irei reativar meu lado programador em LUA para ajudar os membros e compartilhar scripts aqui no fórum. Abraços a todos. Link para o comentário Compartilhar em outros sites More sharing options...
LeoTK 173 Postado Setembro 7, 2015 Share Postado Setembro 7, 2015 muito bom reputado Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Setembro 7, 2015 Autor Share Postado Setembro 7, 2015 muito bom reputado Que bom que gostou, faça bom aproveito. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Mudrock 326 Postado Setembro 7, 2015 Share Postado Setembro 7, 2015 Muito bom, gostei muito do scripts irei utiliza-lo ;D Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Setembro 8, 2015 Autor Share Postado Setembro 8, 2015 Muito bom, gostei muito do scripts irei utiliza-lo ;D Que bom que gostou, faça bom proveito. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Master Centurio 0 Postado Setembro 1, 2016 Share Postado Setembro 1, 2016 [01/09/2016 17:07:53] [Error - LuaScriptInterface::loadFile] data/actions/scripts/cassino_slots.lua:1: unexpected symbol near 'ï' [01/09/2016 17:07:53] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/cassino_slots.lua) [01/09/2016 17:07:53] data/actions/scripts/cassino_slots.lua:1: unexpected symbol near 'ï' O meu deu esse erro alguem sabe porque? Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Janeiro 16, 2017 Autor Share Postado Janeiro 16, 2017 Em 01/09/2016 at 17:18, Master Centurio disse: [01/09/2016 17:07:53] [Error - LuaScriptInterface::loadFile] data/actions/scripts/cassino_slots.lua:1: unexpected symbol near 'ï' [01/09/2016 17:07:53] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/cassino_slots.lua) [01/09/2016 17:07:53] data/actions/scripts/cassino_slots.lua:1: unexpected symbol near 'ï' O meu deu esse erro alguem sabe porque? Boa tarde, Conseguiu consertar/usar o script? Boa sorte. Link para o comentário Compartilhar em outros sites More sharing options...
hadesxx0 1 Postado Maio 3, 2017 Share Postado Maio 3, 2017 Muito Bom! Me explica o que tenho que add nessa parte? local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens. Me explica o que tenho que add nessa parte? Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Junho 5, 2017 Autor Share Postado Junho 5, 2017 Boa tarde, Ainda tem interesse no script? Estive retirado e só vi a postagem hoje. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados