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:
local config = {leverid = 9826, -- id da alavancatransformedid = 9825, -- id da alavanca ao clicar nelamoneyPos = {x = 146, y = 48, z = 7}, -- posicao que vai o dinheirodelay = 200, -- esse delay e o tempo que demora entre cada shuffleshuffle = 5, -- quantidade de shuffles por cada peça, lembre que a ultima peça vai rodar 3 * shuffle entao evite valores grandes)multiplier = 2, -- por quanto multiplica o dinheiro apostadoeffect = 27}local pieces = { -- POSICOES DE CADA PEÇA. [1] = {x = 147, y = 47, z = 7}, [2] = {x = 147, y = 48, z = 7}, [3] = {x = 147, y = 49, z = 7}}local function shuffle(id, times, final, pos) -- funcao que rotaciona a peca local item = getTileItemById(pos, id) if item and times > 0 then doRemoveItem(item.uid) doCreateItem(id == 2638 and 2639 or 2638, 1, pos) addEvent(shuffle, config.delay, id == 2638 and 2639 or 2638, times - 1, final, pos) else local nid = id if item and id ~= final then doRemoveItem(item.uid) doCreateItem(final, 1, pos) nid = final end if times == 0 then addEvent(shuffle, config.delay * config.shuffle * #pieces + config.delay * 10, nid, -1, 2639, pos) end doSendMagicEffect(pos, math.abs(final - 2638)) endendlocal function premiateWinner(uid, money, eff, result) if isPlayer(uid) then if result[1] == result[2] and result[2] == result[3] then doPlayerAddMoney(uid, money) doSendMagicEffect(getCreaturePosition(uid), eff) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, "[CASSINO] You won ".. money .." gold coins. Congratulations!") else doSendMagicEffect(getCreaturePosition(uid), CONST_ME_POFF) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, "[CASSINO] You lost. Better luck next time.") end endend function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == config.leverid then local pc = getTileItemById(config.moneyPos, 2152) local cc = getTileItemById(config.moneyPos, 2160) local money = 0 if pc and pc.type > 0 then money = money + pc.type * 100 doRemoveItem(pc.uid) end if cc and cc.type > 0 then money = money + cc.type * 10000 doRemoveItem(cc.uid) end if money >= 100 then doTransformItem(item.uid, config.transformedid) local pos = fromPosition addEvent(function() local lever = getTileItemById(pos, config.transformedid) if lever and lever.uid > 0 then doTransformItem(lever.uid, config.leverid) end end, (config.delay * #pieces) * (config.shuffle + 10)) local result = {} for i = 1, #pieces do local id = 2639 result[i] = math.random(0, 1) shuffle(id, config.shuffle * i, result[i] + 2638, pieces[i]) end addEvent(premiateWinner, config.delay * #pieces * config.shuffle, cid, money * config.multiplier, config.effect, result) else doPlayerSendCancel(cid, "You need to place your offer. The minimum offer is 1 platinum coin.") end else doPlayerSendCancel(cid, "You need to wait the turn end to bet again.") end return trueend
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 e se alguém quiser/puder grave um gif/video do sistema e me manda que eu edito o tópico. Abraços do Lobo!