drakylucas 159 Postado Julho 12, 2012 Share Postado Julho 12, 2012 (editado) bom galera.. alguns me conhecem, outros não, prazer.. DrakyLucas.. faz tempo que não mecho com Tibia, tanto por preguiça, quanto por falta de tempo. Fiz esse scriptzin para aquecer um pouco.. espero que gostem.. é bem legal para OTs sérios ou até para OTs brincalhões. Esse script é um sistema de cassino.. o player vai puxar uma alavanca, irão aparecer 3 monstros (1 por vez) em sua frente, se os três forem iguais o player ganha a aposta, caso contrario apenas perde seu dinheiro. exclusivo XTibia em! Testado com TFS 0.3.6 Lost Server - 8.60 Peço que abram os spoilers a seguir sequencialmente, para não se perderem na instalação. Instalação Mapa: Parte1: Parte2: Parte3: Parte4: Actions.xml Na pasta de seu servidor, vá em Data -> Actions e abra o actions.xml com bloco de notas. abaixo de <actions> coloque: <action actionid="12312" event="script" value="cassino.lua"> Cassino.lua Agora em Data -> Actions - > Scripts crie um arquivo chamado cassino.lua e nele coloque isso: --[[ **** <créditos> **** ]] -- -- 100% DrakyLucas -- Exclusivo XTIBIA -- Não postar em outros fórums sem a devida autorização -- Não comercializar esse script --[[ **** </créditos> **** ]] -- local config = { storageGlobal = 12312, -- esta storage é global e armazenará um valor para verificar se alguem usou o sistema antes dele finalizar premioQuantidade = 100000, -- em GPS valorAposta = 15000, -- preço, em GPS, de cada chance pos = {{x = 35,y = 81,z = 7,stackpos = 253},{x = 36,y = 81,z = 7,stackpos = 253},{x = 37,y = 81,z = 7,stackpos = 253}}, -- configure as 3 posições criaturas = {"Rabbit","Black Sheep","Dog","Cat"}, -- monstros que irão aparecer verificador = {}, -- não mecher } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getStorage(config.storageGlobal) == 1) then doPlayerSendCancel(cid,"Aguade esta rodada acabar.") return true end if(getPlayerMoney(cid) < config.valorAposta) then doPlayerSendCancel(cid,"Consiga " .. config.valorAposta .. " gold coins antes.") return true end doPlayerRemoveMoney(cid, config.valorAposta) sumonarVerificar(cid,1) doSetStorage(config.storageGlobal, 1) -- adiciona o verificador para não clicar 100 veses e bugar addEvent(doSetStorage,4000,config.storageGlobal,-1) -- retira o verificador para poder clicar novamente return false end function sumonarVerificar(cid,i) if(not isPlayer(cid)) then -- evita erros for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end return false else if(i == 4)then if(config.verificador[1] == config.verificador[2] and config.verificador[2] == config.verificador[3]) then for k = 1,3 do doSendMagicEffect(config.pos[k], 29) end doSendMagicEffect(getCreaturePosition(cid), 29) doSendAnimatedText(getCreaturePosition(cid), "Congratz!", math.random(1,255)) doPlayerAddMoney(cid, config.premioQuantidade) else for k = 1,3 do doSendMagicEffect(config.pos[k], 2) end doSendMagicEffect(getCreaturePosition(cid), 2) end for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end for k,v in pairs(config.verificador) do config.verificador[k]=nil end -- limpa tabela else rand = math.random(1,#config.criaturas) monstro = doCreateMonster(config.criaturas[rand],config.pos) doSendMagicEffect(config.pos,2) table.insert(config.verificador, config.criaturas[rand]) -- adiciona a criatura na tabela para futura verificação doChangeSpeed(monstro, -getCreatureBaseSpeed(monstro)) -- fará com que ele não se mexa addEvent(sumonarVerificar,1000,cid,i + 1) end end end Configurar: Nesta cor, coloque o Prêmio em Gold Coins (gps) Nesta cor, coloque o preço da aposta em Gold Coins (gps) Nesta cor, coloque as posições (anotadas no Passo 4 - Mapa) Nesta cor, coloque as criaturas (pode adicionar quantas quiser, mas apenas criaturas hostis (cachorro, gato, galinha...) --> quanto mais criaturas, mais dificil é dos players ganharem. Finalizar Abra o servidor, teste. espero que gostem.. e que esteja bem explicado, pois levei mais tempo para formatar o tópico/tirar as SS do que para fazer o sistema Créditos 100% DrakyLucas (Eu ) Proibido vender e/ou anunciar a outros fórums Exclusividade XTibia Edited: 12/07/2012 11:38 AM -> concertei um possivel bug Por favor, comente sua opinião e dê ideias de outros sistemas legais para eu fazer. Editado Julho 12, 2012 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Julho 13, 2012 Share Postado Julho 13, 2012 Haha deve ser engraçado ver o script funcionando. Parabéns, flw. Link para o comentário Compartilhar em outros sites More sharing options...
Nathan96 4 Postado Julho 13, 2012 Share Postado Julho 13, 2012 belíssimo script, Rep + Link para o comentário Compartilhar em outros sites More sharing options...
MonsterOt 1 Postado Julho 27, 2012 Share Postado Julho 27, 2012 Parabens!!! muita criatividade, continue assim! Link para o comentário Compartilhar em outros sites More sharing options...
deviletico 0 Postado Julho 28, 2012 Share Postado Julho 28, 2012 (editado) So para avisar falta um signo no actions <action actionid="12312" event="script" value="cassino.lua"/> outra coisa os players podem atacar os monsters, si eu coloco Pz pode funcionar??? outro como posso colocar varios cassinos? eu tentei so trocar o nombe por cassino2, cassino3, cassino4, mas nao funciona ;/ Editado Julho 28, 2012 por deviletico Link para o comentário Compartilhar em outros sites More sharing options...
MonsterOt 1 Postado Julho 28, 2012 Share Postado Julho 28, 2012 (editado) outro como posso colocar varios cassinos? eu tentei so trocar o nombe por cassino2, cassino3, cassino4, mas nao funciona ;/ é eu tb tentei e nao deu, buga os cassino.. acho q precisa de uma storage para cada um! AH e teria como botar um item como recompensa?? e nao dinheiro... Editado Julho 28, 2012 por MonsterOt Link para o comentário Compartilhar em outros sites More sharing options...
drakylucas 159 Postado Julho 28, 2012 Autor Share Postado Julho 28, 2012 vários cassinos: copie o script e cole, no script novo mude o valor storageGlobal e as posições... no actions.xml desse novo script mude a ActionID e no mapa, na alavanca do novo cassino também. sobre a PZ, no mapa eu deixei claramente q tem q ser protectionZone, menos os 3 pisos... olhe o tutorial ¬¬ sobre o item, postaram na seção de pedidos la, e um outro user arrumou ja. Link para o comentário Compartilhar em outros sites More sharing options...
MonsterOt 1 Postado Julho 28, 2012 Share Postado Julho 28, 2012 (editado) Cara fiz tudo oque vc falou, e olha oque aconteçe: http://imageshack.us...95/cassino.png/ meu cassino: local config = { storageGlobal = 12312, -- esta storage é global e armazenará um valor para verificar se alguem usou o sistema antes dele finalizar premioQuantidade = 2272, -- como por em item? 10503 valorAposta = 15000, -- preço, em GPS, de cada chance pos = {{x = 118,y = 33,z = 5,stackpos = 253},{x = 119,y = 33,z = 5,stackpos = 253},{x = 120,y = 33,z = 5,stackpos = 253}}, -- configure as 3 posições criaturas ={"Rabbit"}, -- monstros que irão aparecer verificador = {}, -- não mecher } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getStorage(config.storageGlobal) == 1) then doPlayerSendCancel(cid,"Aguade esta rodada acabar.") return true end if(getPlayerMoney(cid) < config.valorAposta) then doPlayerSendCancel(cid,"Consiga " .. config.valorAposta .. " gold coins antes.") return true end doPlayerRemoveMoney(cid, config.valorAposta) sumonarVerificar(cid,1) doSetStorage(config.storageGlobal, 1) -- adiciona o verificador para não clicar 100 veses e bugar addEvent(doSetStorage,4000,config.storageGlobal,-1) -- retira o verificador para poder clicar novamente return false end meu cassino2: local config = { storageGlobal = 12313, -- esta storage é global e armazenará um valor para verificar se alguem usou o sistema antes dele finalizar premioQuantidade = 2272, -- como por em item? 10503 valorAposta = 15000, -- preço, em GPS, de cada chance pos = {{x = 121,y = 33,z = 5,stackpos = 253},{x = 122,y = 33,z = 5,stackpos = 253},{x = 123,y = 33,z = 5,stackpos = 253}}, -- configure as 3 posições criaturas ={"Rabbit"}, -- monstros que irão aparecer verificador = {}, -- não mecher } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getStorage(config.storageGlobal) == 1) then doPlayerSendCancel(cid,"Aguade esta rodada acabar.") return true end if(getPlayerMoney(cid) < config.valorAposta) then doPlayerSendCancel(cid,"Consiga " .. config.valorAposta .. " gold coins antes.") return true end doPlayerRemoveMoney(cid, config.valorAposta) sumonarVerificar(cid,1) doSetStorage(config.storageGlobal, 1) -- adiciona o verificador para não clicar 100 veses e bugar addEvent(doSetStorage,4000,config.storageGlobal,-1) -- retira o verificador para poder clicar novamente return false end E para botar item naodeu certo no outro topico.. Editado Julho 28, 2012 por MonsterOt Link para o comentário Compartilhar em outros sites More sharing options...
drakylucas 159 Postado Julho 29, 2012 Autor Share Postado Julho 29, 2012 (editado) uma coisinha, você se lembrou de deixar a actionID das duas alavancas DIFERENTES neh? pq se não ele só ta lendo o script da alavanca da direita... tipo deixa o da alavanca da esquerda 12312 e no actions.xml o cassino1.lua como 12312 também.. e o da direita 12313 e no xml cassino2.lua como 12313 em relaçao ao item, teste esse script: (não testei..) (pesso que não retire as linhas comentadas com créditos) --[[ **** <créditos> **** ]] -- -- 100% DrakyLucas -- Exclusivo XTIBIA -- Não postar em outros fórums sem a devida autorização -- Não comercializar esse script --[[ **** </créditos> **** ]] -- local config = { storageGlobal = 12312, -- esta storage é global e armazenará um valor para verificar se alguem usou o sistema antes dele finalizar premio = {id = 10503,count = 1} -- count só para itens agrupaveis. valorAposta = 15000, -- preço, em GPS, de cada chance pos = {{x = 118,y = 33,z = 5,stackpos = 253},{x = 119,y = 33,z = 5,stackpos = 253},{x = 120,y = 33,z = 5,stackpos = 253}}, -- configure as 3 posições criaturas ={"Rabbit"}, -- monstros que irão aparecer verificador = {}, -- não mecher } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getStorage(config.storageGlobal) == 1) then doPlayerSendCancel(cid,"Aguade esta rodada acabar.") return true end if(getPlayerMoney(cid) < config.valorAposta) then doPlayerSendCancel(cid,"Consiga " .. config.valorAposta .. " gold coins antes.") return true end doPlayerRemoveMoney(cid, config.valorAposta) sumonarVerificar(cid,1) doSetStorage(config.storageGlobal, 1) -- adiciona o verificador para não clicar 100 veses e bugar addEvent(doSetStorage,4000,config.storageGlobal,-1) -- retira o verificador para poder clicar novamente return false end function sumonarVerificar(cid,i) if(not isPlayer(cid)) then -- evita erros for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end return false else if(i == 4)then if(config.verificador[1] == config.verificador[2] and config.verificador[2] == config.verificador[3]) then for k = 1,3 do doSendMagicEffect(config.pos[k], 29) end doSendMagicEffect(getCreaturePosition(cid), 29) doSendAnimatedText(getCreaturePosition(cid), "Congratz!", math.random(1,255)) doPlayerAddItem(cid,config.premio[id],config.premio[count]) else for k = 1,3 do doSendMagicEffect(config.pos[k], 2) end doSendMagicEffect(getCreaturePosition(cid), 2) end for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end for k,v in pairs(config.verificador) do config.verificador[k]=nil end -- limpa tabela else rand = math.random(1,#config.criaturas) monstro = doCreateMonster(config.criaturas[rand],config.pos[i]) doSendMagicEffect(config.pos[i],2) table.insert(config.verificador, config.criaturas[rand]) -- adiciona a criatura na tabela para futura verificação doChangeSpeed(monstro, -getCreatureBaseSpeed(monstro)) -- fará com que ele não se mexa addEvent(sumonarVerificar,1000,cid,i + 1) end end end Editado Julho 29, 2012 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
MonsterOt 1 Postado Julho 29, 2012 Share Postado Julho 29, 2012 (editado) tipo deixa o da alavanca da esquerda 12312 e no actions.xml o cassino1.lua como 12312 também..e o da direita 12313 e no xml cassino2.lua como 12313 eu ja fiz isso e nao deu... ah e os itens eu ja consegui Editado Julho 29, 2012 por MonsterOt Link para o comentário Compartilhar em outros sites More sharing options...
matheusfera 2 Postado Outubro 16, 2012 Share Postado Outubro 16, 2012 PARABENS MAN FUNFO CERTINHO COLOKEI UNS BICHO EDITED FICO SHOW VLW MAN REPUTADO Link para o comentário Compartilhar em outros sites More sharing options...
testepaulinho 0 Postado Novembro 10, 2012 Share Postado Novembro 10, 2012 (editado) Maaan no meu funfou mais tipoo as vezes vem monstro e quadrados atraz ou as vezes 1 olhe a imagem !!!! fiz tudo certo não tem pz nos 3 quadrados Uploaded with ImageShack.us outra duvida, tipo quando os mosntro aparece o player pode killar então upando tinha coomo colocar um jeito que naão desce para o player atacar ? e outra não estar limpando =/ por que será ? ta nascendo mosntro por cima de mosntro ! Uploaded with ImageShack.us --[[ **** <créditos> **** ]] -- -- 100% DrakyLucas -- Exclusivo XTIBIA -- Não postar em outros fórums sem a devida autorização -- Não comercializar esse script --[[ **** </créditos> **** ]] -- local config = { storageGlobal = 12312, -- esta storage é global e armazenará um valor para verificar se alguem usou o sistema antes dele finalizar premioQuantidade = 8000000, -- em GPS valorAposta = 5000000, -- preço, em GPS, de cada chance pos = {{x = 513,y = 848,z = 3,stackpos = 253},{x = 514,y = 848,z = 3,stackpos = 253},{x = 515,y = 848,z = 3,stackpos = 253}}, -- configure as 3 posições criaturas = {"Demon","Slime","Rat","Wyrm"}, -- monstros que irão aparecer verificador = {}, -- não mecher } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getStorage(config.storageGlobal) == 1) then doPlayerSendCancel(cid,"Aguade esta rodada acabar.") return true end if(getPlayerMoney(cid) < config.valorAposta) then doPlayerSendCancel(cid,"Consiga 5 antes.") return true end doPlayerRemoveMoney(cid, config.valorAposta) sumonarVerificar(cid,1) doSetStorage(config.storageGlobal, 1) -- adiciona o verificador para não clicar 100 veses e bugar addEvent(doSetStorage,4000,config.storageGlobal,-1) -- retira o verificador para poder clicar novamente return false end function sumonarVerificar(cid,i) if(not isPlayer(cid)) then -- evita erros for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end return false else if(i == 4)then if(config.verificador[1] == config.verificador[2] and config.verificador[2] == config.verificador[3]) then for k = 1,3 do doSendMagicEffect(config.pos[k], 29) end doSendMagicEffect(getCreaturePosition(cid), 29) doSendAnimatedText(getCreaturePosition(cid), "Congratz!", math.random(1,255)) doPlayerAddMoney(cid, config.premioQuantidade) else for k = 1,3 do doSendMagicEffect(config.pos[k], 2) end doSendMagicEffect(getCreaturePosition(cid), 2) end for k = 1,3 do if(isMonster(getTopCreature(config.pos[k]).uid)) then doRemoveCreature(getTopCreature(config.pos[k]).uid) end end for k,v in pairs(config.verificador) do config.verificador[k]=nil end -- limpa tabela else rand = math.random(1,#config.criaturas) monstro = doCreateMonster(config.criaturas[rand],config.pos) doSendMagicEffect(config.pos,2) table.insert(config.verificador, config.criaturas[rand]) -- adiciona a criatura na tabela para futura verificação doChangeSpeed(monstro, -getCreatureBaseSpeed(monstro)) -- fará com que ele não se mexa addEvent(sumonarVerificar,1000,cid,i + 1) end end end aff esse forum a cada dia que passa é mais demorando para um problema ser solucionado, doou rep+ pra quem me ajudar xD Editado Novembro 9, 2012 por testepaulinho Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados