Ir para conteúdo
  • Cadastre-se

Posts Recomendados

16 horas atrás, Emanueldk disse:

@Adriano SwaTT tem como botar para resetar o item quando voce é teleportado para o lugar? pq qnd tu aposta e é teleportado o item que tu aposto ainda fica na mesa e assim vai encher e creio eu que nao sera mais possivel jogar mais no cassino pq vai ser tipo antipush e vai bloquear jogar mais alguma coisa na quele sqm

Até teria, mas estou sem pc para fazer esse code agora..

 

Sobre o problema do item ficar na mesa, não interfere em nada, pois quando clica para jogar novamente o item só muda para o próximo, não cria outro (que eu me lembre).

 

Teste e dê um feed.

 

Boa sorte.

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.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • Respostas 131
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

Cada vez que o player jogar ele paga a taxa, não há outras chances. Sobre ganhar brinde por acertar 1 ou 2 itens, basta desativar no script. Use este:   Boa sorte.

Boa noite. Abaixo, segue o script conforme combinado.     Testado e funcionando perfeitamente. Boa sorte.

Posted Images

50 minutos atrás, Emanueldk disse:

@Adriano SwaTT ele cria outro item sim brother, por isso eu pedi para voce fazer com que ele resete o item

Certo, no final de tudo no script, abaixo do último END, adicione o código abaixo:

function doCassinoRemoveLuckyItem(cid)
	if isPlayer(cid) then
		for i = 0, #items do
			g = getTileItemById(iluck_pos, items[i][1])
			if g.uid > 0 then
				doRemoveItem(g.uid)
				doSendMagicEffect(iluck_pos, CONST_ME_POFF)
			end
		end
	end
return true
end

 

Agora procure por:

setPlayerStorageValue(cid, gstrg, 0)

 

No script e abaixo disso adicione a linha:

doCassinoRemoveLuckyItem(cid)

 

Agora só testar e postar o feed.

 

Boa sorte.

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.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
3 minutos atrás, Emanueldk disse:

@Adriano SwaTT nss man vlw mermo so agradece brother

Por nada, bro.

 

Faça bom proveito do code.

 

:)

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.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

@Adriano SwaTT eu coloquei 2 sala com esse sistema, onde que eu mudo para que cada uma sala seja um script so? tipo, se eu jogar na sala da direita nao vai afetar nada na sala da esquerda, eu testei aqui e quando eu seleciono o item na sala da direita se eu apostar na sala da esquerda sem ter selecionado o item e vim o item que eu selecionei na sala da direita eu ganho na esquerda

Editado por Emanueldk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
6 horas atrás, Emanueldk disse:

@Adriano SwaTT eu coloquei 2 sala com esse sistema, onde que eu mudo para que cada uma sala seja um script so? tipo, se eu jogar na sala da direita nao vai afetar nada na sala da esquerda, eu testei aqui e quando eu seleciono o item na sala da direita se eu apostar na sala da esquerda sem ter selecionado o item e vim o item que eu selecionei na sala da direita eu ganho na esquerda

Boa noite,

 

Cada sala precisa de suas próprias storages nessas variáveis:

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.

 

Ex:

1ª Sala:

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.

 

2ª Sala:

local gstrg = 12135 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12136 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12137, 12138, 12139} -- Não Mexa, Storage de Itens.

 

Sucessivamente sem cessar. :)

 

Boa sorte.

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.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • 8 months later...
  • Moderador

@Adriano SwaTT Adriano, eu tenho 3 Cassino Slots, eu coloquei todos os 3 com storage diferente, porém, só 1 funciona 100%, sabe me dizer o que pode ser?

 

 

Scripts

Máquina Da Esquerda <

Spoiler

------- Script by: Adriano Swatt ----
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12141 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12142 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12143, 12144, 12145} -- 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, 50} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 250} -- ID, Quantidade, para quem acertar 1 item da combinação
local comb2 = {7443, 1} -- ID, Quantidade, para quem acertar 2 item da combinação
local comb3 = {7443, 1} -- ID, Quantidade, para quem acertar todos itens da combinação + o prêmio configurado abaixo
local premio = {8981, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)
-- [[ QUANTIDADE DE ACERTOS ]] --
local combination = 1 -- Quantidade de Acertos com Direito à Prêmio [valor 1 ganha premio comb1 acertando 1 item e assim sucessivamente]
-- Caso queira que só ganhe acertando 3 combinações, use o valor 3 acima.
-- [[ QUANTIDADE DE ACERTOS  ]] --
local iluck_pos = {x=388, y=170, z=7} -- Posição onde fica a amostra do item da sorte
local pos = {{x=386, y=168, z=7}, {x=387, y=168, z=7}, {x=388, y=168, z=7}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da so??rte
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 == NORTH 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 Esquerda E Clique Na Alavanca Ate Seleciona-Lo. \n Para Jogar, Apos Ter Selecionado O Item Da Sorte, Vire-Se Para Baixo E Puxe Novamente A Alavanca.")
            
        elseif dir == SOUTH 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, "Maquina 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, "Parabens, Voce Ja Acertou O Primeiro Item Da Combinacao.")
                            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, "Parabens, Voce Acertou O Segundo Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que Pena, Voce Perdeu Na Segunda Chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou O Terceiro Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que Pena, Voce 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, "Voce Precisa De "..valor[2].." "..getItemNameById(valor[1]).." Para Jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Jogar Novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro Selecione O Item Da Sorte Para Poder Jogar.")
            end
            
        elseif dir == WEST 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, "Voce 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, "Voce 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, "Voce Resetou Os Itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Selecionar Outro Item Da Sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Voce Ativou O Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid)
    acertos = getPlayerStorageValue(cid, gstrg)
    if acertos == 1 then
        if combination == 1 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Um Item Da Combinacao E Foi Recompensado Com "..comb1[2].." "..getItemNameById(comb1[1])..".")
            doPlayerAddItem(cid, comb1[1], comb1[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Apenas Um Item Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 2 then
        if combination <= acertos then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Dois Itens Da Combinacao E Foi Recompensado Com "..comb2[2].." "..getItemNameById(comb2[1])..".")
            doPlayerAddItem(cid, comb2[1], comb2[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Apenas Dois Itens Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 3 then
        doBroadcastMessage("Parabens Ao Jogador "..getPlayerName(cid).." Ele Acertou As 3 Combinacoes Do Cassino Slots E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou TODOS Itens Da Combinacao E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerAddItem(cid, premio[1], premio[2])
        doPlayerAddItem(cid, comb3[1], comb3[2])
    elseif acertos > 3 then
        doPlayerSendCancel(cid, "Mais Sorte Da Proxima Vez.")
    end
    setPlayerStorageValue(cid, gstrg, 0)
    doCassinoRemoveLuckyItem(cid)
    doTeleportThing(cid, {x=394, y=175, z=7}, true)
return true
end
function doCassinoRemoveLuckyItem(cid)
    if isPlayer(cid) then
        for i = 0, #items do
            g = getTileItemById(iluck_pos, items[1])
            if g.uid > 0 then
                doRemoveItem(g.uid)
                doSendMagicEffect(iluck_pos, CONST_ME_POFF)
            end
        end
    end
return true
end

Máquina Do Meio

Spoiler

------- Script by: Adriano Swatt ----
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12151 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12152 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12153, 12154, 12155} -- 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, 50} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 250} -- ID, Quantidade, para quem acertar 1 item da combinação
local comb2 = {7443, 1} -- ID, Quantidade, para quem acertar 2 item da combinação
local comb3 = {7443, 1} -- ID, Quantidade, para quem acertar todos itens da combinação + o prêmio configurado abaixo
local premio = {8981, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)
-- [[ QUANTIDADE DE ACERTOS ]] --
local combination = 1 -- Quantidade de Acertos com Direito à Prêmio [valor 1 ganha premio comb1 acertando 1 item e assim sucessivamente]
-- Caso queira que só ganhe acertando 3 combinações, use o valor 3 acima.
-- [[ QUANTIDADE DE ACERTOS  ]] --
local iluck_pos = {x=392, y=170, z=7} -- Posição onde fica a amostra do item da sorte
local pos = {{x=392, y=168, z=7}, {x=393, y=168, z=7}, {x=394, y=168, z=7}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da so??rte
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 == NORTH 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 Esquerda E Clique Na Alavanca Ate Seleciona-Lo. \n Para Jogar, Apos Ter Selecionado O Item Da Sorte, Vire-Se Para Baixo E Puxe Novamente A Alavanca.")
            
        elseif dir == SOUTH 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, "Maquina 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, "Parabens, Voce Ja Acertou O Primeiro Item Da Combinacao.")
                            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, "Parabens, Voce Acertou O Segundo Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que Pena, Voce Perdeu Na Segunda Chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou O Terceiro Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que Pena, Voce 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, "Voce Precisa De "..valor[2].." "..getItemNameById(valor[1]).." Para Jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Jogar Novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro Selecione O Item Da Sorte Para Poder Jogar.")
            end
            
        elseif dir == WEST 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, "Voce 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, "Voce 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, "Voce Resetou Os Itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Selecionar Outro Item Da Sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Voce Ativou O Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid)
    acertos = getPlayerStorageValue(cid, gstrg)
    if acertos == 1 then
        if combination == 1 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Um Item Da Combinacao E Foi Recompensado Com "..comb1[2].." "..getItemNameById(comb1[1])..".")
            doPlayerAddItem(cid, comb1[1], comb1[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Apenas Um Item Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 2 then
        if combination <= acertos then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Dois Itens Da Combinacao E Foi Recompensado Com "..comb2[2].." "..getItemNameById(comb2[1])..".")
            doPlayerAddItem(cid, comb2[1], comb2[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Apenas Dois Itens Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 3 then
        doBroadcastMessage("Parabens Ao Jogador "..getPlayerName(cid).." Ele Acertou As 3 Combinacoes Do Cassino Slots E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou TODOS Itens Da Combinacao E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerAddItem(cid, premio[1], premio[2])
        doPlayerAddItem(cid, comb3[1], comb3[2])
    elseif acertos > 3 then
        doPlayerSendCancel(cid, "Mais Sorte Da Proxima Vez.")
    end
    setPlayerStorageValue(cid, gstrg, 0)
    doCassinoRemoveLuckyItem(cid)
    doTeleportThing(cid, {x=394, y=175, z=7}, true)
return true
end
function doCassinoRemoveLuckyItem(cid)
    if isPlayer(cid) then
        for i = 0, #items do
            g = getTileItemById(iluck_pos, items[1])
            if g.uid > 0 then
                doRemoveItem(g.uid)
                doSendMagicEffect(iluck_pos, CONST_ME_POFF)
            end
        end
    end
return true
end

Máquina Da Direita >

Spoiler

------- Script by: Adriano Swatt ----
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12146 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12147 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12148, 12149, 12150} -- 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, 50} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 250} -- ID, Quantidade, para quem acertar 1 item da combinação
local comb2 = {7443, 1} -- ID, Quantidade, para quem acertar 2 item da combinação
local comb3 = {7443, 1} -- ID, Quantidade, para quem acertar todos itens da combinação + o prêmio configurado abaixo
local premio = {8981, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)
-- [[ QUANTIDADE DE ACERTOS ]] --
local combination = 1 -- Quantidade de Acertos com Direito à Prêmio [valor 1 ganha premio comb1 acertando 1 item e assim sucessivamente]
-- Caso queira que só ganhe acertando 3 combinações, use o valor 3 acima.
-- [[ QUANTIDADE DE ACERTOS  ]] --
local iluck_pos = {x=400, y=170, z=7} -- Posição onde fica a amostra do item da sorte
local pos = {{x=400, y=168, z=7}, {x=401, y=168, z=7}, {x=402, y=168, z=7}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da so??rte
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 == NORTH 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 Esquerda E Clique Na Alavanca Ate Seleciona-Lo. \n Para Jogar, Apos Ter Selecionado O Item Da Sorte, Vire-Se Para Baixo E Puxe Novamente A Alavanca.")
            
        elseif dir == SOUTH 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, "Maquina 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, "Parabens, Voce Ja Acertou O Primeiro Item Da Combinacao.")
                            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, "Parabens, Voce Acertou O Segundo Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que Pena, Voce Perdeu Na Segunda Chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou O Terceiro Item Da Combinacao.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que Pena, Voce 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, "Voce Precisa De "..valor[2].." "..getItemNameById(valor[1]).." Para Jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Jogar Novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro Selecione O Item Da Sorte Para Poder Jogar.")
            end
            
        elseif dir == WEST 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, "Voce 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, "Voce 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, "Voce Resetou Os Itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Voce Precisa Esperar O Jogo Finalizar Para Selecionar Outro Item Da Sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Voce Ativou O Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid)
    acertos = getPlayerStorageValue(cid, gstrg)
    if acertos == 1 then
        if combination == 1 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Um Item Da Combinacao E Foi Recompensado Com "..comb1[2].." "..getItemNameById(comb1[1])..".")
            doPlayerAddItem(cid, comb1[1], comb1[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, Voce Acertou Apenas Um Item Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 2 then
        if combination <= acertos then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Dois Itens Da Combinacao E Foi Recompensado Com "..comb2[2].." "..getItemNameById(comb2[1])..".")
            doPlayerAddItem(cid, comb2[1], comb2[2])
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, Foi Por Pouco, Mas Voce Acertou Apenas Dois Itens Da Combinacao, Mais Sorte Da Proxima Vez.")
        end
    elseif acertos == 3 then
        doBroadcastMessage("Parabens Ao Jogador "..getPlayerName(cid).." Ele Acertou As 3 Combinacoes Do Cassino Slots E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, Voce Acertou TODOS Itens Da Combinacao E Foi Recompensado Com "..comb3[2].." "..getItemNameById(comb3[1]).." E "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerAddItem(cid, premio[1], premio[2])
        doPlayerAddItem(cid, comb3[1], comb3[2])
    elseif acertos > 3 then
        doPlayerSendCancel(cid, "Mais Sorte Da Proxima Vez.")
    end
    setPlayerStorageValue(cid, gstrg, 0)
    doCassinoRemoveLuckyItem(cid)
    doTeleportThing(cid, {x=394, y=175, z=7}, true)
return true
end
function doCassinoRemoveLuckyItem(cid)
    if isPlayer(cid) then
        for i = 0, #items do
            g = getTileItemById(iluck_pos, items[1])
            if g.uid > 0 then
                doRemoveItem(g.uid)
                doSendMagicEffect(iluck_pos, CONST_ME_POFF)
            end
        end
    end
return true
end

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

Boa tarde, @Phineasz.

 

Não consegui identificar o erro no vídeo.

 

Tente explicar um pouco melhor o que acontece e tento te ajudar.

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.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • Moderador

@Adriano SwaTT Você pode ver que na Máquina do meio, o Item da sorte ele some, já as duas Máquinas do lado, o Item da sorte não some, e quando você acerta uma das combinações você não ganha o premio. No vídeo eu mostrei essa parte que quando acerta uma combinação você não ganha o premio, e estar tudo certo configurado para ganhar quando acertar 1, 2 ou as 3 combinações.

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • 1 year later...

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por prot def
      Versão Beta já disponível no site: http://otshinobi.servegame.com/ 
      Servidor Online, aproveite e crie sua conta e baixe o client para Pc ou Android, todos os dados do seu personagem permanecerão intactos na versão definitiva que será lançada em breve!









      Já disponível em: Client 8.54 (Old) / New Client e Client Mobile para Android
      Temos 27 Vocações disponíveis
      Personagens FREE: Naruto, Sasuke, Sakura, Kakashi, Rock Lee, Shikamaru, Neji, Tenten, Hinata, Killer Bee, Gaara, Kiba, Temari, Kankuro, Shisui e Jiraiya.
      Personagens Shop Free (compre com Gold dentro do game): Obito, Tsunade, Kisame e Itachi.
      Personagens Shop VIP: Itachi (Shop), Obito (Shop) Minato (Shop) Madara (Shop) Tsunade (Shop) Hashirama (Shop) Nidaime (Tobirama) (Shop) Nagato (Shop) Raikage (Shop) Kisame (Shop)  (Você pode donatar pelo LivePix)
      Personagens Especiais obtidos através de eventos dentro do game: Orochimaru e Yamato.
      Transformações, jutsus e habilidades exclusivas para cada vocação
      Upe se divertindo pelo mapa, rate de experiência desafiante, ganhe jutsus e transformações exclusivas ao upar 
      Mapa exclusivo que terá atualizações periódicas:
      -> vilas disponíveis até o momento: Vila da Folha, Vila da Areia, Vila da Névoa, Vila da Pedra, Vila da Nuvem Vila da Chuva (Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure) e País das Ondas.
      -> Area Vip: Várias Hunts para upar e farmar (Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island) e Vila Shinobi Exclusiva para usuários Vip
      Sistema de graduação ninja: genin, chunin, jounin e anbu - Evolua seu ranking shinobi, apenas os merecedores se tornarão Kage.
      Exame Chunin completo, reviva o nostálgico arco do anime para se tornar Chunin
      Crie sua própria guild ou entre em uma existente
      Organização Akatsuki - torne-se membro da maior organização criminosa do mundo ninja
      Rank level (Figure entre os melhores jogadores do jogo)
      Reviva as sagas de Naruto Clássico e Naruto Shippuden
      Sistema de guilds - crie ou entre em uma guild e divirta-se com seus amigos
      Mundo PVP
      Eventos PVP
      Eventos de invasão, proteja a vila da destruição: Invasões em Konoha (Pain e Orochimaru) e Invasão de Deidara e Sasori em Sunagakure
      Compra e venda de casas para usuários Vip
      Npc Shop e NPC Shop Event - compre sua VIP ACCOUNT E VOCAÇÃO VIP ''totalmente'' GRÁTIS utilizando a moeda do jogo (GOLD).
      Npc Minoru - leva você diretamente para outras vilas e várias hunts do mapa. Area Free: Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure, Valley of the End, South Forest, South Island, West Desert. Area VIP: Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island, Vila Shinobi area com casas exclusivas para compra.
      Reviva vários arcos do Anime: Lute contra diversos personagens do anime com habilidades únicas
      Sistema Chakra Bijuu - torne-se jinchuuriki das bestas de cauda e utilize seu poder em batalha
      Diversas armas e equipamentos do anime
      Tasks da Tsunade - derrote os shinobi mais poderosos do mundo ninja e ganhe recompensas em Gold: 
      deidara da pedra 
      hidan das fonte
      itachi da folha 
      kabuto da folha
      kakuzo da cachoeira 
      kisame da nevoa
      konan da chuva
      madara da folha
      nagato da chuva
      orochimaru da folha
      pain da chuva
      sasori da areia
      tobi da folha
      Vários Npcs de Tasks espalhados pelo mapa: derrote inimigos e traga itens em troca de experiência e recompensas.
      Quests: Temos várias Quests Disponíveis e várias outras em desenvolvimento:
      ->Quest Nto Points FREE - Ganhe Nto Points para comprar itens vip com o Npc Shop (compre Premium Account, Vocações e itens)
      -> Shukaku Quest - Quest realizada em quatro pessoas 
      -> Sambi Quest - Quest realizada em duas pessoas 
      -> Akatsuki Ring Quest 
      -> Kurama Quest
      -> Quest Templo do Fogo
      -> Minato Quest
      -> Itachi Quest 
      -> Sasuke Boss Quest 
      -> Hidan Quest
      -> Kakuzo Quest 
      -> Sasori Quest 
      ->Pain Quest
      ->Tobirama Quest
      Jogo utiliza base parecida com o ntoultimate dos velhos tempos.
      Jogue e ajude a manter o servidor aberto até o lançamento da versão final
      Crie sua conta e baixe o jogo no site oficial: otshinobi.servegame.com 
      DIVIRTA-SE!
      DISPONÍVEL TAMBÉM CLIENT MOBILE!

    • Por sirmagna
      Procuro equipe interessada em desenvolver um projeto de "Tibia HunterxHunter"
      Tenho um projeto pré-montado que estou criando sozinho
      estarei disponibilizando uma previa 
      das minhas sprites 
      preciso de uma equipe com boas ideias e criativa
      para concluir o ot e deixar online para todos desfrutarem dessa obra prima
       
      *******ate o momento o projeto contem sprites do Killua Zoldyck/Hisoka Morow/Gon Freecss/Chrollo Lucilfer/Kurapika
      >>>Previa:



      OTClient_2024-02-09_19-29-45.mp4
    • Por cloudrun2023
      CloudRun - Sua Melhor Escolha para Hospedagem de OTServer!
      Você está procurando a solução definitiva para hospedar seu OTServer com desempenho imbatível e segurança inigualável? Não procure mais! Apresentamos a CloudRun, sua parceira confiável em serviços de hospedagem na nuvem.
       
      Recursos Exclusivos - Proteção DDoS Avançada:
      Mantenha seu OTServer online e seguro com nossa robusta proteção DDoS, garantindo uma experiência de jogo ininterrupta para seus jogadores.
       
      Servidores Ryzen 7 Poderosos: Desfrute do poder de processamento superior dos servidores Ryzen 7 para garantir um desempenho excepcional do seu OTServer. Velocidade e estabilidade garantidas!
       
      Armazenamento NVMe de Alta Velocidade:
      Reduza o tempo de carregamento do jogo com nosso armazenamento NVMe ultrarrápido. Seus jogadores vão adorar a rapidez com que podem explorar o mundo do seu OTServer.
       
      Uplink de até 1GB:
      Oferecemos uma conexão de alta velocidade com até 1GB de largura de banda, garantindo uma experiência de jogo suave e livre de lag para todos os seus jogadores, mesmo nos momentos de pico.
       
      Suporte 24 Horas:
      Estamos sempre aqui para você! Nossa equipe de suporte está disponível 24 horas por dia, 7 dias por semana, para resolver qualquer problema ou responder a qualquer pergunta que você possa ter. Sua satisfação é a nossa prioridade.
       
      Fácil e Rápido de Começar:
      Configurar seu OTServer na CloudRun é simples e rápido. Concentre-se no desenvolvimento do seu jogo enquanto cuidamos da hospedagem.
       
      Entre em Contato Agora!
      Website: https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
      Email: [email protected]
      Telefone: (47) 99902-5147

      Não comprometa a qualidade da hospedagem do seu OTServer. Escolha a CloudRun e ofereça aos seus jogadores a melhor experiência de jogo possível. Visite nosso site hoje mesmo para conhecer nossos planos e começar!
       
      https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
       
      CloudRun - Onde a Velocidade Encontra a Confiabilidade!
       

    • Por luanluciano93
      Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.

      Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.

      Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
      Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
      Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
      Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome

      Algumas das features existentes no projeto:

      BOOSTED CREATURE:

       
      EVENT SCHEDULE:

       
      CYCLOPEDIA:

       
      CHARMS:

       
      DAILY REWARD: 

       
      PREY:

       
      IMBUEMENTS:

       
      MARKET:

       
      STORE:

       
      CUSTOM CHARACTERS:


       
      DENTRE MUITOS OUTROS!
    • Por chateadoagr
      Atualização v1.7.0

      Chance de Spawn de Monstro: Ao matar vários monstros conhecidos existe a chance de invocar um monstro, por exemplo ao matar uma aranha gigante existe a chance da Velha Viúva aparecer, essa probabilidade dependendo do monstro foi ajustada para o seguinte,
      Exemplo

      :
      Rotworm, para Ao morrer para invocar uma rainha Rotworm, a probabilidade é de 15%, enquanto uma aranha gigante para invocar a Velha Viúva é de 5%.

      Aqui está uma lista dos monstros :
      Rotworm > Rotworm Queen - 15%
      Cyclops > Cyclops Smith - 15%
      Wolf > War Wolf - 15%
      Dragon > Dragon Lord - 8%
      Giant Spider > The Old Widow - 5%
      Magma Crawler > Weeper - 5%
      Serpent Spawn > Medusa - 5%
      Frazzlemaw > Guzzlemaw - 5%
      Midnight Asura > Dawnfire Asura - 5%
      Warlock > Infernalist - 5%
      Sea Serpent > Seacrest Serpent - 5%
      Glooth Anemone > Rustheap Golem - 5%
      Hellspawn > Plaguesmith - 4 %
      Worker Golem > War Golem - 4%
      Demon Outcast > Vexclaw - 4%
      Sight of Surrender > Horadron - 3%

      Azure Portal : Existem agora 4 sites onde portais podem aparecer, o que leva a uma missão.
      Os portais aparecem em:
      Arkeron / Dolwatha / Freewind e Death Valley .
      Para saber as posições veja o arquivo: data/scripts/custom/portal_gates.lua
      Para ver os mapas, abra os mapas localizados em data/world/portals
      Uma vez aberto para ir para a posição, veja o arquivo portal_gates, que indica o exitPosition , marque essa posição e você poderá retocar a porta do portal, se desejar.

      Esses portais levam todos para a nova Caverna Azure, onde encontrarão novos Monstros e um Boss chamado Azure.

      15 Novos Monstros
      3 Novos Bosses

      Combate + Mecânica de Acesso + Boss Combat :
      Eles devem encontrar o caminho para chegar à sala central, na qual deverão usar a pedra azul do santuário para desbloquear o caminho, terão então um certo tempo para correr em direção a ela ... próximo santuário.
      Ao chegar na sala central, você deve destrancar a porta. Aqui, você terá que mudar a posição dos humanos congelados no chão. Ao clicar em todas as estátuas, a porta será removida por um tempo e você poder passar pelo portal.
      Eles se enfrentarão na ordem: Terror Spider (sem loot, sim experiência), que se transformará em Deep Necromancer (Sem loot, sim experiência) que por sua vez se transformará em Azure (Loot + Experience + Rarity Loot), Azure faz não terá muita complicação se ele não conseguir acertar e fazer um aoe bem forte, tome cuidado alguns Azure Guards irão aparecer durante a luta para desequilibrar a luta, aguente firme e desafie o Azure!

      Os monstros possuem novos recursos, esses recursos podem ser vendidos respectivamente para os NPCs (yasir, hana...)
      2 Novos Trajes - Anjo Pequeno / Everblight (Masculino / Feminino - Com Montaria) que são obtidos com a moeda do pesadelo (obtida por matar o chefe Azure)

      4 Novos Conjuntos :
      Seetheras / Varruth: Cavaleiros
      Netherwave: Druidas e Feiticeiros
      Felsinger: Paladinos

      3 Novas Moedas :
      Moeda Ancestral : Permite usá-la e obter Moedas Ancestrais para usar na Loja Ancestral. (Obtido: Azure Portal Monsters (rare loot))
      Nightmare Coin : (Obtido: Boss Azure (Azure Portals)) Usado para obter os 2 novos trajes: Small Angel & Everblight, trocado com o npc Estherya, localizado em frente ao portal Azure.
      Azure Coin : Usado com o Npc: Taerar para comprar os novos conjuntos (Obtido: Boss Azure)
      Taerar Npc: Está localizado na entrada dentro da Azure Cave.

      Adicionado conjunto de gnomo, amuleto de rabo de raposa, anel de borboleta, capa de pena de cisne, frasco de luz estelar, espelho lunar e coletor de sol, que são saqueados de portais Azure (diretamente de monstros) Adicionado Azure e monstros à Tarefa Ancestral (Azure, Tarefa Diária,

      Monstros
      Normal Tarefas) com recompensa Ancestral Coin / Azure Coin e Nightmare Coin.

      Melhorado/Corrigido
      Alterada a primeira letra do arquivo .lua (dentro do xml do NPCS) de maiúscula para minúscula, o que gerava um erro nos sistemas operacionais Ubuntu.
      Cavernas do Pesadelo e do Ceifador dolwatha: Adicionados mais Pesadelos, descendentes do pesadelo e Ceifadores à caverna.
      Corrigido terreno sem bordas na parte externa da caverna.
      Cavernas Glooth em Dolwatha, adicionado mais terreno para evitar ver o preto do mapa (tela 4k)
      Corrigida uma dica de ferramenta na web na parte de mineração da Wikipedia.
                Atualização v1.6.0

      - Criado um novo sistema de Herbalist, com sua habilidade ( SKILL_HERBALIST ) adicionada no cliente, coletar recursos, vendê-los ou criar novas poções.

      - Novas receitas , que serão obtidas de vários monstros (ver site wikipedia)

      - Criadas 6 Novas Poções: Nimble, Hazel e Tumble ( Life & Mana )

      - Uso de poções: jogadores Nimble nível 100, jogadores Hazel nível 150 e jogadores Tumble nível 200.

      - As poções possuem frascos vazios que podem ser vendidos para Alaistar, Asnarus ou Xodet .
      - Poções elaboradas podem ser vendidas no mercado entre jogadores.
       
      Corrigido :
      Visuais :
      Dolwatha do Norte, ciclopes, bordas corrigidas/adicionadas
      Falanaar: Selva, corrigida 1 pedra, 2 águas após a torre azura
      Vale da Morte: Corrigida a entrada do chão para o sono febril
      Arkeron: Corrigida a parte sul de alguns visuais acima da água, grama rochosa deslocada de a pedra "menir"
       
      Área de artesanato ao norte de Dolwatha


      Novo efeito


      Novas Plantas


      Novos recursos


      Novas ferramentas


      Novas receitas e poções
          Atualização v1.5.0

      - Adicionada uma ação de conversação !shop para receber itens da web se eles usarem uma loja.

      Sistema de Masmorras

      O Sistema de Masmorras pode ser ativado através do portal em Mordragor, no momento apenas 1 masmorra está disponível, a Masmorra dos Ossos.
      Esta masmorra tem um cooldown de 30 minutos, caso não o façam dentro desse tempo serão expulsos.
      Só é permitido entrar 1 equipe por vez (Depois vou criar mais, o que vai evitar que fique sempre lotado, também vou organizar para que essa mesma equipe se repita mais caso uma esteja lotada, deixa eu explicar, na mesma masmorra apenas X jogadores podem entrar em equipe, se uma equipe estiver dentro, ninguém mais pode entrar até sair, no caso se repetirmos a masmorra adicionando uma nova linha, 2 equipes podem entrar, com 2 mapas diferentes , mas como dito, virá aos poucos.)
      Novos Monstros com nível, mais dano, mais experiência, mais loot, mais vida.
      Novo Chefe Príncipe Esquelético.
      Novo conjunto de esqueleto (capacete, armadura, pernas, botas), este conjunto é baseado em defesa de terra, sanguessuga de vida / mana e estatísticas de artesanato (habilidade de artesanato, habilidade de mineração e habilidade de corte de lenha, +3 em peças)

      . deve saquear um recurso chamado Enchanted Bone Skull que permitirá acesso à alavanca do chefe. Este recurso pode ser vendido para Yasir.
      Príncipe Esqueleto faz parte da Tarefa Diária como chefe para matar no Sistema Ancestral.
      Alterada a distância em que um monstro pode ver um jogador (10 norte/sul, 15 leste/oeste)   Imagens:
       
       
       
          Atualização v1.4.0


      Criado um Sistema de Tarefas Ancestrais que funciona com o banco de dados (2 novas colunas em jogadores). Os pontos são somados por Jogador e não por conta, posteriormente provavelmente será adicionada uma moeda que lhe permitirá comprá-lo na loja e poder obter pontos de outra forma, no momento é apenas através de tarefas.
      Novo NPC Chamado Armin , esse NPC dá Tarefas para os jogadores completarem, mas também dá tarefas diárias, que podem ser feitas a cada 24 horas.
      As tarefas dão Pontos Ancestrais como recompensa e também Pontos de Classificação Ancestral
      .

      Você pode usar o comando: !ancestral para mostrar informações, pontos, classificação, mas também o status das tarefas que você está realizando .

      Existem várias classificações dependendo dos pontos:
      1 - 40 = "Rookie"
      41 - 100 = "Bronze"
      101 - 250 = "Silver" 251 -
      470 = "Gold"
      471 - 770 = "Platinum"
      771 - 1220 = "Diamante "
      1221 - 1820 = "Ancestral"
      1821 - 2820 = "Místico"
      2821 - 4320 = "Abissal"
      4321 - 6320 = "Ascendente"
      6321 - 9999 = "Caos"
      10000 - + = "Despertar"

      Podemos ver a classificação de um jogador clicando duas vezes .

      Existem atualmente 10 tarefas normais e 5 tarefas diárias. Os diários em sua maioria são os chefes.
      Eles conversam com o NPC Armin e perguntam sobre a Lista de Tarefas Ancestrais Diárias ou a Lista de Tarefas Ancestrais Normais. Para iniciar uma tarefa você dirá ao NPC o nome da tarefa (Nome da tarefa por exemplo: Dragões de fogo e a tarefa será iniciada automaticamente.

      Graças aos Pontos Ancestrais, você pode adquirir itens em um novo módulo adicionado ao cliente.
      O Ranking Ancestral terá mais significado posteriormente, assim como os pontos.

      Foi adicionada uma loja para poder utilizar Pontos Ancestrais.
       
        Atualização v1.3.0 Foram removidos alguns scripts que estavam duplicados e geravam um erro de evento duplicado. Corrigidos os nomes dos jogadores que eram exibidos incorretamente ao subir em montarias, com asas, etc. A partir de agora eles estão mais elevados e mais centrados.

      Um sistema de Lenhador, baseado em (SKILL_WOODCUTTING) que determina a nova habilidade Lenhador, com novos recursos, que podem ser vendidos em primeiro lugar para o NPC Rostock.
      5 novos tipos de árvores para cortar, cada uma com seu próprio nível de machado, semelhante à mineração.
      Novo NPC Rostock na saída de Falanaar (para encontrá-lo/vá para Rostock), com nova área de Artesanato do Lenhador, saída sudoeste de Falanar.

      Receitas do Loot Woodcutter: (Adicionadas na web wikipedia)
      Grande pedaço de madeira: Aranha Gigante, Filhote de Dragão
      Tábua de Cinza: Pesadelo, Descendente do Pesadelo,
      Tábua de Castanha Gigante de Gelo: Cuspidor, Grimeleech, Ferreiro da Praga
      Tábua de Oliveira: Marid, Devorador de Pedra, Cereja Caiman
      Assassina Prancha: Hellflayer, Death Dragon

      Adicionadas auras e asas.
      Para dar aos jogadores você deve usar um item ao clicar nele ele dará aura de asa ou shader.    
       
       
          Atualização v1.2.0:

      Adicionado:
      - Nova Pasta com CUSTOM_SCRIPTS, esta pasta incluirá scripts ou alterações que NÃO serão incluídas no servidor, o que você questionou, por se tratar de uma customização diferente, os scripts serão adicionados nesta pasta , nesta atualização teremos o script potions.lua com cooldown adicionado.
      Isso não significa que tudo o que você perguntar será adicionado aqui, mas sim que o que achamos que não precisa ser alterado será encontrado aqui.

      Montarias :
      - Devorador da Luz Negra, Espírito da Pureza, Caveira da Perdição, Caveira de Magma, Caveira Fogo de Copr
      Trajes :
      - Discípulo Shadowlotus, Aucar Antigo, Rastreador de Gelo, Arqueiro Blindado, Mago Eterno, Leão da Guerra, Defensor Decadente, Evocador da Luz Negra, Mago Fúria Flamejante -

      Sistema de Waypoints em cada cidade, você pode adicionar um requisito (item, armazenamento, missão, missão)
      https://streamable.com/xe0pjb

       
      Criado um sistema de Mineração com uma nova Habilidade de Mineração ( SKILL_MINING ), efeitos, são 7 pedras diferentes por níveis:
      Bronze, Prata, Safira, Ouro, Rubi, Ametista, Esmeralda, cada pedra é cortada com sua picareta necessária, nível de mineração necessário o suficiente para esmagar a pedra e/ou criar as receitas na Forja de Mineração, ao olhar uma receita, esta dirá para que serve, os itens necessários, o nível de artesanato necessário e se você desbloqueou a receita.
      A Forja de Mineração está localizada ao sul de Mordragor.
      Atualmente, os lingotes são vendidos para o npc Elyotrope na Mining Forge, posteriormente serão usados para diversos artesanatos.
      No site eles têm Wikipedia indicando as informações.

      Crafting , nova barra de habilidades como mineração, adicionada no cliente ( SKILL_CRAFT ), assim como mineração, começa no nível 10. Os servidores existentes terão uma atualização com um arquivo chamado migração, que atualizará o banco de dados com as habilidades necessárias e será adicionado a todas as existentes. jogadoras.


      - A confecção dos Lingotes exige a obtenção da receita, em troca não é necessária a picareta, mas é necessário ter um nível de artesanato quanto aos diferentes lingotes, indicado na Receita ao olhar a receita.

      Receitas de Mineração de Loot (Lingotes) :
      A ordem dos monstros escritos, o primeiro tem mais sorte que o segundo, terceiro, etc.

      Lingote de Bronze Pequeno : Dragão, Ciclope, Bárbaro Bloodwalker, Elfo Arcanista, Escoteiro Lingote de
      Prata Pequeno: Senhor Dragão, Feiticeiro, Serpente do Mar, Hidra
      Lingote de Safira Pequeno: Hellspawn, Destroyer, Grim Reaper
      Lingote de Ouro Pequeno: Wereboar, Vile Grandmaster, Behemoth
      Small Lingote de Ametista : Fúria, Diabólico Diabólico, Lutador do Inferno
      Lingote de Rubi Pequeno : Demônio, Lagarto Escolhido, Wyrms
      Pequeno Lingote de Esmeralda : Golem de Lava, Aranha Gigante, Reaver da Realidade Lingote de
      Bronze Grande : Dawnfire Asura, Serpent Spawn Lingote de
      Prata Grande : Minotauro Amazon, Minotaur Hunter , Worm Priestess
      Big Sapphire Lingote : Rustheap Golem, Hellhound, Ironblight
      Big Gold Lingote : Juggernault, Dark Torturer, Frazzlemaw
      Big Amethyst Lingote : Draken Spellweaver, Draken Elite, Ghastly Dragon
      Big Ruby Lingote : Grimeleech, Retching Horror, Sight of Surrender
      Big Emerald Lingote : Vexclaw, Terrorsono, Deepling Tyrant
       
       
       

      Por precaução, uma revisão das missões:
      Bosses (alavanca/missão):
      Abyssador, Annihilator, Deep Terror, Jaul, Plagirath, Plagueroot, Professor Maxxen, The Welter, Ushuriel.
       

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo