Postado Abril 3, 2015 10 anos Amigo Teria como Colocar tipo. para ao invés dele gastar 10k para jogar um ticket em especial ? Se sim poderia me dizer como faço isso ? e se da para colocar um sistema de quando o Player jogar 1 vez ele fosse teletransportado pro final da fila ? ( Pra um determinado local ).. Obrigado
Postado Abril 3, 2015 10 anos Autor Bom dia. Teste assim: ------- 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ção local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima local premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens) local fila = {x=1040, y=1030, z=6} -- Coordenada do fim da fila local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte local 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ão local effect = 26 -- Efeito na hora de selecionar o item da sorte local 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) end return true end function 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) end addEvent(doTeleportThing, 200, cid, fila) return true end Para mudar a moeda de jogo e a coordenada de onde será teleportado (fim da fila), basta editar nas variáveis abaixo, elas se encontram no começo do script: local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço) local fila = {x=1040, y=1030, z=6} -- Coordenada do fim da fila Boa sorte, faça bom proveito. Volte e diga se funcionou como queria. Até breve. Editado Abril 3, 2015 10 anos por Adriano SwaTT (veja o histórico de edições) Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Abril 4, 2015 10 anos Bom dia. Teste assim: ------- 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ção local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima local premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens) local fila = {x=1040, y=1030, z=6} -- Coordenada do fim da fila local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte local 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ão local effect = 26 -- Efeito na hora de selecionar o item da sorte local 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) end return true end function 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) end addEvent(doTeleportThing, 200, cid, fila) return true end Para mudar a moeda de jogo e a coordenada de onde será teleportado (fim da fila), basta editar nas variáveis abaixo, elas se encontram no começo do script: local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço) local fila = {x=1040, y=1030, z=6} -- Coordenada do fim da fila Boa sorte, faça bom proveito. Volte e diga se funcionou como queria. Até breve. Ficou Otimo cara .. Obrigado. Uma outra duvida no caso precisar ser os 10 itens ? não poder diminuir pra 5 ou 6 ? aparecendo apenas 2 itens para ser semelhantes ao invés de 3
Postado Abril 4, 2015 10 anos Autor Bom dia. No script se configura a quantidade de itens total: 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. Se mudar "local qtdd = 6" só contarão automaticamente até o 6º (Não precisa apagar as demais linhas do script): 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 E sobre acertar apenas 2 prêmios, já tem no script para ser configurado: local comb1 = {2160, 10} -- ID do prêmio, Quantidade, para quem acertar 1 item da combinação local comb2 = {2160, 20} -- ID do prêmio, Quantidade, para quem acertar 2 item da combinação local comb3 = {2160, 50} -- ID do prêmio , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima local premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens) Basta por o prêmio desejado conforme segue acima. Mas para por para ganhar o prêmio máximo ao acertar 2 dos itens, vai mudar algumas coisas na estrutura do script que eu acho desnecessário. Porque já tem prêmio ao acertar 1, 2 e o prêmio máximo que seria acertando os 3 itens. Então basta você por o prêmio que quiser ao acertar 1, o prêmio que quiser ao acertar 2, e o prêmio que quiser + o prêmio final ao acertar os 3 itens da combinação, pois ao acertar 3 ganha o comb3 e o premio, conforme no script acima. Boa sorte. Editado Abril 4, 2015 10 anos por Adriano SwaTT (veja o histórico de edições) Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.