Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • Moderador

@WooX Obrigado pela contribuição. Tópico aprovado!

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

Eu tenho um sistema que eu julgo ser muito bom mas o seu parece ser mais enxuto, muito bom cara. Vc sempre traz conteúdos muito bons pro forum

Link para o post
Compartilhar em outros sites

@WooX Parabéns pelo sistema, realmente bem desenvolvido e pensado em tudo.

Link para o post
Compartilhar em outros sites
  • Moderador
  • 3 months later...
  • 3 weeks later...
Em 12/11/2020 em 11:42, Shiuns disse:

esse sistema da pra chamar amigo na cave?

 

mi falarm q tinha um que dava

 

desculpa reviver 

 

Não. Se não me engano é o sistema do Vodkart que da pra fazer isso, tem aqui no fórum da uma procurada.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

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

@WooX EDIT: Consegui por pro Player só pegar a Cave se tiver dinheiro na backpack, porém ele não está setando a storage para o player pegar a cave, poderia me fortalecer nesse suporte, pfv?

 

cave.action

function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
money = 1000000000, -- Dinheiro que vai custar
}

	if itemEx.itemid == caveExclusiva.config.buyItemID then
		if getPlayerStorageValue(cid, caveExclusiva.storages.cave) > 0 then
			local caveName = caveExclusiva.caves[getPlayerStorageValue(cid, caveExclusiva.storages.cave)].caveName
			local timeLeft = getPlayerStorageValue(cid, caveExclusiva.storages.time) - os.time()
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já é dono da cave de ".. caveName ..", aguarde ".. getTimeString(timeLeft) .." para comprar uma cave novamente.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		elseif doPlayerRemoveMoney(cid, config.money) == TRUE then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Você acabou de comprar uma Cave. Boa Caçada.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
 		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Você não possue dinheiro suficiente para comprar está Cave.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		end
		elseif getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor) > 0 then
			local ownerGUID = getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor)
			local ownerTimeLeft = nil
			if isPlayerOnline(getPlayerNameByGUID(ownerGUID)) then
				ownerTimeLeft = getPlayerStorageValue(getPlayerByGUID(ownerGUID), caveExclusiva.storages.time) - os.time()
			else
				ownerTimeLeft = getOfflinePlayerStorage(ownerGUID, caveExclusiva.storages.time) - os.time()
			end
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Esta cave já pertence ao player ".. getPlayerNameByGUID(ownerGUID) ..", restam ".. getTimeString(ownerTimeLeft) .." para a cave estar livre novamente.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		else
			caveExclusiva.setCaveTo(cid, itemEx.aid)
			doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)	
		end
	end
	return true

 

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 month later...
Em 03/08/2020 em 21:30, WooX disse:

Cave Exclusiva

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

Cave exclusiva ou também conhecido como Super UP é um sistema que assim como o nome indica proporciona ao jogador acesso a uma cave exclusiva, onde somente ele tem acesso e pode caçar sem ser perturbado. Eu particularmente não gosto da ideia do sistema, mas querendo ou não é bem popular nos servidores Baiak. Escrevi esse sistema a mais ou menos uns 2 anos atrás quando um amigo que era dono de um servidor Baiak na época estava tendo problemas com o sistema que usava, sistema esse que acredito ser o que vem por padrão nas bases de Baiak por ai e o que provavelmente é o mais usado até hoje.

 

 

Sobre o sistema

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4

 

Com a intenção de fazer com que fosse de fácil configuração, eu escrevi o sistema mantendo as funções principais e configurações em uma Lib separada dos arquivos, irei citar algumas características do sistema.

 

  • Reiniciar o servidor ou manter ativo o global save não interfere na funcionalidade do sistema, todas as caves são entregues novamente no momento de abertura do servidor.
  • O sistema funciona através de global storage e devido a isto não é necessário modificação alguma no banco de dados.
  • O jogador tem a liberdade de escolher a cave que quiser, desde que ela esteja livre.
  • O jogador pode verificar o status de cada uma das caves registradas no sistema e ver informações como quem é o dono de determinada cave e o tempo restante para que a cave esteja livre novamente.

 

Algumas imagens

  Ocultar conteúdo

UlciaXs.png

iMEZH7t.png

sjHOy6Z.png

mirx8mj.png

4KzUlmZ.png

 

Instalação

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.

  Ocultar conteúdo

 

 

Todos os arquivos necessários para instalação do sistema estão anexados no tópico, irei apenas mostrar como deve ser configurado. Como auxilio para saber onde vai cada um, todos os scripts contém a tag XML a ser registrada.

 

Como mencionado anteriormente toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.


caveExclusiva = {

	config = {
		rentTime = 4 * 60 * 60,
		buyItemID = 11758,
		caveStats = true,
		buyMessage = "Você comprou a cave de %s por %s.",
		timeLeftMessageInCave = "Seu tempo na cave de %s acabou e você foi teleportado para o templo.",
		timeLeftMessage = "Seu tempo na cave de %s acabou.",
		signs = {
			useSigns = true,
			signID = 1815,
			signLook = "Esta cave pertence a %s, estará livre novamente as %s."
		}
	},

	caves = {
		[9851] = {
			gStor = 7330,
			caveName = "Cave 1",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		},
		[9852] = {
			gStor = 7331,
			caveName = "Cave 2",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		}
	},
	

	storages = {
		cave = 35070,
		inCave = 35071,
		time = 35072
	}
}
  • rentTime: tempo que o jogador vai permanecer como dono de uma cave, o valor deve ser definido em segundos.
  • buyItemID: ID do item em que o jogador deve usar o item definido na action para comprar uma cave.
  • caveStats: pode ser definido como true ou false, se definido como falso não irá permitir o uso da talkaction que exibe informações sobre as caves.
  • buyMessage: esta é a mensagem que irá aparecer quando o jogador comprar uma cave.
  • timeLeftMessageInCave: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver dentro da cave.
  • timeLeftMessage: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver fora da cave.

 

  • useSignspode ser definido como true ou false, se definido como verdadeiro irá exibir o dono e o tempo restante em um quadro ou qualquer item configurado na variável abaixo.
  • signIDID do item em que será exibido as informações da cave.
  • signLook: mensagem a ser exibida ao dar look no item definido na variável acima.

 

As caves devem ser adicionadas e configuradas da seguinte maneira:


[9851] = { -- Action ID, um pra cada cave.
  gStor = 7330, -- Global storage, um valor pra cada cave.
  caveName = "Cave 1", -- Nome da cave.
  enterPos = {x=0, y=0, z=7}, -- Posição que o player vai ser teleportado ao entrar na cave.
  signPos = {x=0, y=0, z=7} -- Posição do item que foi configurado na variavel signID no mapa.
},

No mapa é necessário adicionar tudo que foi definido na configuração do sistema, isso inclui action IDs e os items configurado em buyItemIDsignID, veja abaixo alguns exemplos.

  Mostrar conteúdo oculto

 vCh6a1f.png

Em Verde é o item configurado em buyItemID

Em Amarelo é o item configurado em signID

 

xXENrkK.pngoGNI7zP.png

 

Cada item com o ID definido em buyItemID deve conter também o action ID referente a cave que representa. E cada item com o ID definido em signID deve conter o texto: Esta cave esta livre!

 

D29DBDz.png

 

O mesmo action ID configurado no item de compra deve estar registrado no SQM de entrada para cave.

 

fxFzlIA.png

 

Os teleportes de saída de cada cave deve conter a action ID registrada na tag XML do script cave_exit.lua

 

Créditos

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

@Baalszor por testar todo o sistema.

 

cave_action.lua 1 kB · 43 downloads cave_creaturescript.lua 1 kB · 38 downloads cave_enter.lua 943 B · 37 downloads cave_exit.lua 347 B · 36 downloads cave_start.lua 174 B · 36 downloads cave_talkaction.lua 2 kB · 36 downloads lib_exclusivecave.lua 4 kB · 44 downloads

Boa Amigo estou com um erro quando tento comprar a cave pode me ajudar por favor?

 

[4:44:08.914] [Error - Action Interface]
[4:44:08.917] data/actions/scripts/other/cave_action.lua:onUse
[4:44:08.921] Description:
[4:44:08.923] data/actions/scripts/other/cave_action.lua:8: attempt to index fie
ld '?' (a nil value)
[4:44:08.929] stack traceback:
[4:44:08.931]   data/actions/scripts/other/cave_action.lua:8: in function <data/
actions/scripts/other/cave_action.lua:1>

Boa Galera Alguém poderia me ajudar com esse erro:

Citar

[4:44:08.914] [Error - Action Interface]
[4:44:08.917] data/actions/scripts/other/cave_action.lua:onUse
[4:44:08.921] Description:
[4:44:08.923] data/actions/scripts/other/cave_action.lua:8: attempt to index fie
ld '?' (a nil value)
[4:44:08.929] stack traceback:
[4:44:08.931]   data/actions/scripts/other/cave_action.lua:8: in function <data/
actions/scripts/other/cave_action.lua:1>

Script:

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if itemEx.itemid == caveExclusiva.config.buyItemID then
        if getPlayerStorageValue(cid, caveExclusiva.storages.cave) > 0 then
            local caveName = caveExclusiva.caves[getPlayerStorageValue(cid, caveExclusiva.storages.cave)].caveName
            local timeLeft = getPlayerStorageValue(cid, caveExclusiva.storages.time) - os.time()
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já é dono da cave de ".. caveName ..", aguarde ".. getTimeString(timeLeft) .." para comprar uma cave novamente.")
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
        elseif getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor) > 1 then
            local ownerGUID = getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor)
            local ownerTimeLeft = nil
            if isPlayerOnline(getPlayerNameByGUID(ownerGUID)) then
                ownerTimeLeft = getPlayerStorageValue(getPlayerByGUID(ownerGUID), caveExclusiva.storages.time) - os.time()
            else
                ownerTimeLeft = getOfflinePlayerStorage(ownerGUID, caveExclusiva.storages.time) - os.time()
            end
            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Esta cave já pertence ao player ".. getPlayerNameByGUID(ownerGUID) ..", restam ".. getTimeString(ownerTimeLeft) .." para a cave estar livre novamente.")
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
        else
            caveExclusiva.setCaveTo(cid, itemEx.aid)
            doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
            doRemoveItem(item.uid)        
        end
    end
    return true
end

Agradeço atenção quem puder ajudar.

Boa Galera Alguém poderia me ajudar com esse erro:

Citar

[4:44:08.914] [Error - Action Interface]
[4:44:08.917] data/actions/scripts/other/cave_action.lua:onUse
[4:44:08.921] Description:
[4:44:08.923] data/actions/scripts/other/cave_action.lua:8: attempt to index fie
ld '?' (a nil value)
[4:44:08.929] stack traceback:
[4:44:08.931]   data/actions/scripts/other/cave_action.lua:8: in function <data/
actions/scripts/other/cave_action.lua:1>

Script:

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if itemEx.itemid == caveExclusiva.config.buyItemID then
        if getPlayerStorageValue(cid, caveExclusiva.storages.cave) > 0 then
            local caveName = caveExclusiva.caves[getPlayerStorageValue(cid, caveExclusiva.storages.cave)].caveName
            local timeLeft = getPlayerStorageValue(cid, caveExclusiva.storages.time) - os.time()
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já é dono da cave de ".. caveName ..", aguarde ".. getTimeString(timeLeft) .." para comprar uma cave novamente.")
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
        elseif getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor) > 1 then
            local ownerGUID = getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor)
            local ownerTimeLeft = nil
            if isPlayerOnline(getPlayerNameByGUID(ownerGUID)) then
                ownerTimeLeft = getPlayerStorageValue(getPlayerByGUID(ownerGUID), caveExclusiva.storages.time) - os.time()
            else
                ownerTimeLeft = getOfflinePlayerStorage(ownerGUID, caveExclusiva.storages.time) - os.time()
            end
            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Esta cave já pertence ao player ".. getPlayerNameByGUID(ownerGUID) ..", restam ".. getTimeString(ownerTimeLeft) .." para a cave estar livre novamente.")
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
        else
            caveExclusiva.setCaveTo(cid, itemEx.aid)
            doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
            doRemoveItem(item.uid)        
        end
    end
    return true
end

Agradeço atenção quem puder ajudar.

Link para o post
Compartilhar em outros sites
  • 2 months later...
Em 03/08/2020 em 21:30, WooX disse:

Cave Exclusiva

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

Cave exclusiva ou também conhecido como Super UP é um sistema que assim como o nome indica proporciona ao jogador acesso a uma cave exclusiva, onde somente ele tem acesso e pode caçar sem ser perturbado. Eu particularmente não gosto da ideia do sistema, mas querendo ou não é bem popular nos servidores Baiak. Escrevi esse sistema a mais ou menos uns 2 anos atrás quando um amigo que era dono de um servidor Baiak na época estava tendo problemas com o sistema que usava, sistema esse que acredito ser o que vem por padrão nas bases de Baiak por ai e o que provavelmente é o mais usado até hoje.

 

 

Sobre o sistema

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4

 

Com a intenção de fazer com que fosse de fácil configuração, eu escrevi o sistema mantendo as funções principais e configurações em uma Lib separada dos arquivos, irei citar algumas características do sistema.

 

  • Reiniciar o servidor ou manter ativo o global save não interfere na funcionalidade do sistema, todas as caves são entregues novamente no momento de abertura do servidor.
  • O sistema funciona através de global storage e devido a isto não é necessário modificação alguma no banco de dados.
  • O jogador tem a liberdade de escolher a cave que quiser, desde que ela esteja livre.
  • O jogador pode verificar o status de cada uma das caves registradas no sistema e ver informações como quem é o dono de determinada cave e o tempo restante para que a cave esteja livre novamente.

 

Algumas imagens

  Mostrar conteúdo oculto

UlciaXs.png

iMEZH7t.png

sjHOy6Z.png

mirx8mj.png

4KzUlmZ.png

 

Instalação

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.

  Mostrar conteúdo oculto

 

 

Todos os arquivos necessários para instalação do sistema estão anexados no tópico, irei apenas mostrar como deve ser configurado. Como auxilio para saber onde vai cada um, todos os scripts contém a tag XML a ser registrada.

 

Como mencionado anteriormente toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.


caveExclusiva = {

	config = {
		rentTime = 4 * 60 * 60,
		buyItemID = 11758,
		caveStats = true,
		buyMessage = "Você comprou a cave de %s por %s.",
		timeLeftMessageInCave = "Seu tempo na cave de %s acabou e você foi teleportado para o templo.",
		timeLeftMessage = "Seu tempo na cave de %s acabou.",
		signs = {
			useSigns = true,
			signID = 1815,
			signLook = "Esta cave pertence a %s, estará livre novamente as %s."
		}
	},

	caves = {
		[9851] = {
			gStor = 7330,
			caveName = "Cave 1",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		},
		[9852] = {
			gStor = 7331,
			caveName = "Cave 2",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		}
	},
	

	storages = {
		cave = 35070,
		inCave = 35071,
		time = 35072
	}
}
  • rentTime: tempo que o jogador vai permanecer como dono de uma cave, o valor deve ser definido em segundos.
  • buyItemID: ID do item em que o jogador deve usar o item definido na action para comprar uma cave.
  • caveStats: pode ser definido como true ou false, se definido como falso não irá permitir o uso da talkaction que exibe informações sobre as caves.
  • buyMessage: esta é a mensagem que irá aparecer quando o jogador comprar uma cave.
  • timeLeftMessageInCave: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver dentro da cave.
  • timeLeftMessage: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver fora da cave.

 

  • useSignspode ser definido como true ou false, se definido como verdadeiro irá exibir o dono e o tempo restante em um quadro ou qualquer item configurado na variável abaixo.
  • signIDID do item em que será exibido as informações da cave.
  • signLook: mensagem a ser exibida ao dar look no item definido na variável acima.

 

As caves devem ser adicionadas e configuradas da seguinte maneira:


[9851] = { -- Action ID, um pra cada cave.
  gStor = 7330, -- Global storage, um valor pra cada cave.
  caveName = "Cave 1", -- Nome da cave.
  enterPos = {x=0, y=0, z=7}, -- Posição que o player vai ser teleportado ao entrar na cave.
  signPos = {x=0, y=0, z=7} -- Posição do item que foi configurado na variavel signID no mapa.
},

No mapa é necessário adicionar tudo que foi definido na configuração do sistema, isso inclui action IDs e os items configurado em buyItemIDsignID, veja abaixo alguns exemplos.

  Ocultar conteúdo

 vCh6a1f.png

Em Verde é o item configurado em buyItemID

Em Amarelo é o item configurado em signID

 

xXENrkK.pngoGNI7zP.png

 

Cada item com o ID definido em buyItemID deve conter também o action ID referente a cave que representa. E cada item com o ID definido em signID deve conter o texto: Esta cave esta livre!

 

D29DBDz.png

 

O mesmo action ID configurado no item de compra deve estar registrado no SQM de entrada para cave.

 

fxFzlIA.png

 

Os teleportes de saída de cada cave deve conter a action ID registrada na tag XML do script cave_exit.lua

 

Créditos

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

@Baalszor por testar todo o sistema.

 

cave_action.lua 1 kB · 46 downloads cave_creaturescript.lua 1 kB · 41 downloads cave_enter.lua 943 B · 40 downloads cave_exit.lua 347 B · 39 downloads cave_start.lua 174 B · 39 downloads cave_talkaction.lua 2 kB · 39 downloads lib_exclusivecave.lua 4 kB · 47 downloads

 

Em 03/08/2020 em 21:30, WooX disse:

Cave Exclusiva

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

Cave exclusiva ou também conhecido como Super UP é um sistema que assim como o nome indica proporciona ao jogador acesso a uma cave exclusiva, onde somente ele tem acesso e pode caçar sem ser perturbado. Eu particularmente não gosto da ideia do sistema, mas querendo ou não é bem popular nos servidores Baiak. Escrevi esse sistema a mais ou menos uns 2 anos atrás quando um amigo que era dono de um servidor Baiak na época estava tendo problemas com o sistema que usava, sistema esse que acredito ser o que vem por padrão nas bases de Baiak por ai e o que provavelmente é o mais usado até hoje.

 

 

Sobre o sistema

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4

 

Com a intenção de fazer com que fosse de fácil configuração, eu escrevi o sistema mantendo as funções principais e configurações em uma Lib separada dos arquivos, irei citar algumas características do sistema.

 

  • Reiniciar o servidor ou manter ativo o global save não interfere na funcionalidade do sistema, todas as caves são entregues novamente no momento de abertura do servidor.
  • O sistema funciona através de global storage e devido a isto não é necessário modificação alguma no banco de dados.
  • O jogador tem a liberdade de escolher a cave que quiser, desde que ela esteja livre.
  • O jogador pode verificar o status de cada uma das caves registradas no sistema e ver informações como quem é o dono de determinada cave e o tempo restante para que a cave esteja livre novamente.

 

Algumas imagens

  Mostrar conteúdo oculto

UlciaXs.png

iMEZH7t.png

sjHOy6Z.png

mirx8mj.png

4KzUlmZ.png

 

Instalação

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.

  Mostrar conteúdo oculto

 

 

Todos os arquivos necessários para instalação do sistema estão anexados no tópico, irei apenas mostrar como deve ser configurado. Como auxilio para saber onde vai cada um, todos os scripts contém a tag XML a ser registrada.

 

Como mencionado anteriormente toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.


caveExclusiva = {

	config = {
		rentTime = 4 * 60 * 60,
		buyItemID = 11758,
		caveStats = true,
		buyMessage = "Você comprou a cave de %s por %s.",
		timeLeftMessageInCave = "Seu tempo na cave de %s acabou e você foi teleportado para o templo.",
		timeLeftMessage = "Seu tempo na cave de %s acabou.",
		signs = {
			useSigns = true,
			signID = 1815,
			signLook = "Esta cave pertence a %s, estará livre novamente as %s."
		}
	},

	caves = {
		[9851] = {
			gStor = 7330,
			caveName = "Cave 1",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		},
		[9852] = {
			gStor = 7331,
			caveName = "Cave 2",
			enterPos = {x=0, y=0, z=7},
			signPos = {x=0, y=0, z=7}
		}
	},
	

	storages = {
		cave = 35070,
		inCave = 35071,
		time = 35072
	}
}
  • rentTime: tempo que o jogador vai permanecer como dono de uma cave, o valor deve ser definido em segundos.
  • buyItemID: ID do item em que o jogador deve usar o item definido na action para comprar uma cave.
  • caveStats: pode ser definido como true ou false, se definido como falso não irá permitir o uso da talkaction que exibe informações sobre as caves.
  • buyMessage: esta é a mensagem que irá aparecer quando o jogador comprar uma cave.
  • timeLeftMessageInCave: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver dentro da cave.
  • timeLeftMessage: esta é a mensagem que irá aparecer quando acabar o tempo e o player estiver fora da cave.

 

  • useSignspode ser definido como true ou false, se definido como verdadeiro irá exibir o dono e o tempo restante em um quadro ou qualquer item configurado na variável abaixo.
  • signIDID do item em que será exibido as informações da cave.
  • signLook: mensagem a ser exibida ao dar look no item definido na variável acima.

 

As caves devem ser adicionadas e configuradas da seguinte maneira:


[9851] = { -- Action ID, um pra cada cave.
  gStor = 7330, -- Global storage, um valor pra cada cave.
  caveName = "Cave 1", -- Nome da cave.
  enterPos = {x=0, y=0, z=7}, -- Posição que o player vai ser teleportado ao entrar na cave.
  signPos = {x=0, y=0, z=7} -- Posição do item que foi configurado na variavel signID no mapa.
},

No mapa é necessário adicionar tudo que foi definido na configuração do sistema, isso inclui action IDs e os items configurado em buyItemIDsignID, veja abaixo alguns exemplos.

  Ocultar conteúdo

 vCh6a1f.png

Em Verde é o item configurado em buyItemID

Em Amarelo é o item configurado em signID

 

xXENrkK.pngoGNI7zP.png

 

Cada item com o ID definido em buyItemID deve conter também o action ID referente a cave que representa. E cada item com o ID definido em signID deve conter o texto: Esta cave esta livre!

 

D29DBDz.png

 

O mesmo action ID configurado no item de compra deve estar registrado no SQM de entrada para cave.

 

fxFzlIA.png

 

Os teleportes de saída de cada cave deve conter a action ID registrada na tag XML do script cave_exit.lua

 

Créditos

Oj5H4Xi.png&key=718831efb62cbc5653dc0eff42299961764d9021fa0eda1af263307301843bee

@Baalszor por testar todo o sistema.

 

cave_action.lua 1 kB · 46 downloads cave_creaturescript.lua 1 kB · 41 downloads cave_enter.lua 943 B · 40 downloads cave_exit.lua 347 B · 39 downloads cave_start.lua 174 B · 39 downloads cave_talkaction.lua 2 kB · 39 downloads lib_exclusivecave.lua 4 kB · 47 downloads

Da dando esse error ai, @WooX

Screenshot_429.png

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 11/09/2021 em 13:59, leozincorsair disse:

 

Da dando esse error ai, @WooX

Screenshot_429.png

@leozincorsair na tag dentro do action apaga esse "cave_exclusiva" deixa somente o nome do script "cave_action" do jeito que está ai "cave_exclusiva/cave_action.lua" você está apontando 2 scriptpara ser aberto, sendo que na pasta script você só criou um que é o "cave_action.lua"... só arrumar isso que vai dar certo!

 

Deve fazer o mesmo para as outras tas, caso estejam dando erro também!

Editado por Altairjr (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
Em 14/05/2021 em 10:23, Belmont disse:

@WooX EDIT: Consegui por pro Player só pegar a Cave se tiver dinheiro na backpack, porém ele não está setando a storage para o player pegar a cave, poderia me fortalecer nesse suporte, pfv?

 

Spoiler

local price = 1000000000

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if itemEx.itemid == caveExclusiva.config.buyItemID then
		if getPlayerStorageValue(cid, caveExclusiva.storages.cave) > 0 then
			local caveName = caveExclusiva.caves[getPlayerStorageValue(cid, caveExclusiva.storages.cave)].caveName
			local timeLeft = getPlayerStorageValue(cid, caveExclusiva.storages.time) - os.time()
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já é dono da cave de ".. caveName ..", aguarde ".. getTimeString(timeLeft) .." para comprar uma cave novamente.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		elseif getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor) > 0 then
			local ownerGUID = getGlobalStorageValue(caveExclusiva.caves[itemEx.aid].gStor)
			local ownerTimeLeft = nil
			if isPlayerOnline(getPlayerNameByGUID(ownerGUID)) then
				ownerTimeLeft = getPlayerStorageValue(getPlayerByGUID(ownerGUID), caveExclusiva.storages.time) - os.time()
			else
				ownerTimeLeft = getOfflinePlayerStorage(ownerGUID, caveExclusiva.storages.time) - os.time()
			end
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Esta cave já pertence ao player ".. getPlayerNameByGUID(ownerGUID) ..", restam ".. getTimeString(ownerTimeLeft) .." para a cave estar livre novamente.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		else
			if doPlayerRemoveMoney(cid, price) then
				caveExclusiva.setCaveTo(cid, itemEx.aid)
				doRemoveItem(item.uid)
				doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
			else
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Você não possue dinheiro suficiente para comprar está Cave.")
				doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
			end
		end
	end
	return true
end

 

 

 

Em 07/07/2021 em 04:48, Babiloniaoz disse:

Boa Amigo estou com um erro quando tento comprar a cave pode me ajudar por favor?

Agradeço atenção quem puder ajudar.

 

Em 11/09/2021 em 13:59, leozincorsair disse:

 

Da dando esse error ai, @WooX

Screenshot_429.png

 

Aparentemente é algum erro de configuração na lib na parte de global storage, confere se preencheu corretamente.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
16 horas atrás, BennyDez disse:

revcript ot tf 1.x? any chance to update?

 

Yes, there's a chance but not in the near future.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 3 weeks later...
  • 2 weeks later...

Estava vendo o código aqui, se quiser pode mudar no cave_enter.lua: 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	local caves = caveExclusiva.getCavesID()
	if isInArray(caves, item.aid) then
		if getGlobalStorageValue(caveExclusiva.caves[item.aid].gStor) ~= getPlayerGUID(cid) then
			doPlayerSendCancel(cid, "Você não é dono desta cave, compre para entrar.")
			doSendMagicEffect(position, CONST_ME_MAGIC_RED)
			doTeleportThing(cid, fromPosition)
		else
			doSendMagicEffect(position, CONST_ME_TELEPORT)
			doSendMagicEffect(toPosition, CONST_ME_TELEPORT)
			doTeleportThing(cid, caveExclusiva.caves[item.aid].enterPos)
			setPlayerStorageValue(cid, caveExclusiva.storages.inCave, 1)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você entrou na sua cave de ".. caveExclusiva.caves[item.aid].caveName ..".")
		end
	end
	return true
end

 

Por: 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	local caveId = caveExclusiva.caves[item.aid]
	if caveId then
		if getGlobalStorageValue(caveId.gStor) ~= getPlayerGUID(cid) then
			doPlayerSendCancel(cid, "Você não é dono desta cave, compre para entrar.")
			doSendMagicEffect(position, CONST_ME_MAGIC_RED)
			doTeleportThing(cid, fromPosition)
		else
			doSendMagicEffect(position, CONST_ME_TELEPORT)
			doSendMagicEffect(toPosition, CONST_ME_TELEPORT)
			doTeleportThing(cid, caveId.enterPos)
			setPlayerStorageValue(cid, caveExclusiva.storages.inCave, 1)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você entrou na sua cave de ".. caveId.caveName ..".")
		end
	end
	return true
end


Assim, não precisaria usar a função getCavesId()

Link para o post
Compartilhar em outros sites

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 danielzin021
      alguém sabe como implementa isso no serv e se tem como?
    • Por Maniaco
      Salve TibiaKing!!! TFS 0.4 . 8.60
       
      Estou implementando o Sistema do @WooX de Cave Exlusiva

      Link:
       
      Porem estou com um problema seguindo o tutorial completo dele acabo tendo um retorno de erro na Distro! E ja que o mesmo nao entra no forum deis de 14/01! Venho solicitar ajuda de vocês!
      Caso alguem tenha o Discord Dele Favor me Passe  
      Vamos lá!
      Erro:
       
      Script :
       
      Lib
       
       
      Print Rme:
       
       
      Lembrando que nao esta funcionando em geral, Acrédito que eu tenha pulado algo ou deixado passar despercebido!
      Espero que alguem consiga me ajudar vlw!
    • Por WooX
      Trade Offline V2.0

      Esse sistema me foi pedido a alguns meses atrás e hoje tirei um tempinho pra trazer aqui.
      O sistema consiste em permitir que jogadores negociem sem contato direto entre comprador e vendedor.
      Mas como assim?
      O vendedor pode criar um anuncio de venda informando item, valores ou até mesmo items que ele queira em troca, após feito o anuncio todas essas informações ficam armazenadas no banco de dados do servidor, permitindo assim serem exibidas em uma página no site para interessados, junto de todas informações fornecidas pelo vendedor é exibido um comando para que os interessados possam adquirir a oferta exibida na página.
       
      Sobre o sistema

       
      O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4
       
      Versão para TFS 1.x adaptada pelo @luanluciano93
       
      Como mencionado acima, o sistema funciona de forma semelhante ao Market System das versões atuais porem sem exibição gráfica das ofertas in-game, para isso o sistema vai acompanhado de uma página para o Gesior AAC. Este sistema existe no fórum há um bom tempo e já é familiar pra muitos jogadores, essa versão trás consigo algumas melhorias e diferenças que irei listar abaixo.
       
      Sistema
      Agora é possivel vender um item exigindo outro item em troca ao invés de dinheiro. Containers com um conjunto de items dentro agora podem ser anunciados. Agora o sistema verifica as cargas e durações dos items antes de criar uma oferta. Novo parâmetro adicionado para verificar informações de ofertas in-game. Agora todo valor recebido vai diretamente para o banco do vendedor. Página
      A depender da quantidade de ofertas existentes no servidor, a página agora irá separa-las por páginas. Agora além do valor é exibido também imagem da moeda a depender do valor da oferta. Agora é possivel ver as características tanto dos items ofertados como dos items exigidos pelo vendedor. Adicionado filtros para exibir somente ofertas de items vip, containers ou trocas. Adicionado barras de pesquisas para filtrar as ofertas por items ou nome do jogador.  
      Algumas imagens
       
      Instalação

      Antes de mais nada é necessário citar os requisitos necessários para o funcionamento correto do sistema, ele utiliza de algumas funções que não estão no script principal e portanto é necessário a instalação de uma lib extra, também é necessário instalar as funções doItemSetDuration e getItemDurationTime na source do servidor, ambos os links se encontram abaixo.
       
      Todos os arquivos necessários para a instalação estão anexados no tópico, irei apenas dizer onde instalar e como deve ser configurado.
       
      Primeiramente importe o arquivo schema.sql no banco de dados, ou se preferir pode executar as queries a seguir.
      CREATE TABLE IF NOT EXISTS `trade_off_offers` ( `id` int(11) NOT NULL auto_increment, `player_id` int(11) NOT NULL, `type` int(1) NOT NULL DEFAULT '0', `item_id` int(11), `item_count` int(11) NOT NULL DEFAULT '1', `item_charges` int(11) NULL, `item_duration` int(11) NULL, `item_name` varchar(255), `item_trade` tinyint(1) NOT NULL DEFAULT '0', `cost` bigint(20) UNSIGNED NOT NULL, `cost_count` int(11) NOT NULL DEFAULT '1', `date` bigint(20), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `trade_off_container_items` ( `offer_id` int(11) NOT NULL, `item_id` int(11), `item_charges` int(11) NULL, `item_duration` int(11) NULL, `count` int(11) DEFAULT '1' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; ALTER TABLE `trade_off_container_items` ADD KEY `offer_id` (`offer_id`); ALTER TABLE `trade_off_container_items` ADD CONSTRAINT `offer_id_fk` FOREIGN KEY (`offer_id`) REFERENCES `trade_off_offers`(`id`) ON DELETE CASCADE;  
      Configuração no arquivo tradeoff.lua: 
      -- Trade Offline 2.0 by WooX -- local config = { priceLimit = 2000000000, -- 2kkk offerLimit = 3, offerLimitStor = 86420, infoOnPopUp = true, infoMsgType = MESSAGE_STATUS_CONSOLE_BLUE, errorMsgType = MESSAGE_STATUS_CONSOLE_RED, successMsgType = MESSAGE_INFO_DESCR, helpMsg = "Enter the parameters (add, remove, active, buy, info).", goldItems = {2148, 2152, 2160}, itemsVIP = {4540, 4545, 4560}, } priceLimit: define o valor máximo de uma oferta. offerLimit: define o valor máximo de ofertas que um jogador pode adicionar. offerLimitStor: storage que irá armazenar quantas ofertas ativas o jogador possui. infoOnPopUp: pode ser definido como true ou false, se definido como falso irá enviar os detalhes da oferta no default ao invés de como é mostrado nas imagens acima. infoMsgType: define como será exibido uma mensagem de informação ao jogador (não recomendo mexer a menos que saiba o que está fazendo). errorMsgType: define como será exibido uma mensagem de erro ao jogador (não recomendo mexer a menos que saiba o que está fazendo). successMsgType: define como será exibido uma mensagem de ação sucedida ao jogador (não recomendo mexer a menos que saiba o que está fazendo). helpMsg: mensagem que será enviada para o jogador caso ele erre os parâmetros do comando. goldItems: nesta tabela deve ser preenchido todos os IDs de moedas no servidor como gold coins, platinum coins, etc. itemsVIP: nesta tabela deve ser preenchido os IDs dos items vips existentes no servidor.  
      Agora para a instalação da página, no arquivo mysql_db.php deve ser preenchido os dados para conexão no banco de dados do servidor.
      /** * Host do banco de dados * @var string */ private static $DB_HOST = 'localhost'; /** * Usuario de conexao ao banco de dados * @var string */ private static $DB_USER = 'root'; /** * Senha de conexao ao banco de dados * @var string */ private static $DB_PASS = 'SUA_SENHA'; /** * Nome do banco de dados * @var string */ private static $DB_NAME = 'NOME_BANCO'; Após feito isso, o arquivo paginationClass.php em conjunto do arquivo mysql_db.php devem ser adicionados no seguinte diretório do Gesior AAC.
      classes/
      Finalizado isto, basta jogar o arquivo tradeoff.php dentro do diretório informado abaixo e o sistema estará pronto para uso.
      pages/
       
      Avisos

       
      Eu escrevi somente o sistema, não sou o autor da página para o Gesior AAC portanto não estarei dando suporte em relação a página que não seja sobre a instalação da mesma no Gesior AAC 2012, e embora esteja funcional, eu não recomendo o uso da página devido a falta do uso de cache para leitura do items.xml. Foram mais de 600 linhas de código sem contar funções extras e alterações na source, além de muitas horas de testes para garantir que tudo estava funcionando corretamente, tudo que peço em troca é que não removam os créditos no arquivo quando forem usar.  
      Créditos

      @MatheusDuarte pela página do Gesior AAC.
      schema.sql tradeoff.lua tradeoff.php mysql_db.php paginationClass.php
    • Por Denker
      O Player será teletransportado para o TC, após sair do TradeCenter o player retornará á cidade de origem, ex:

      Saffon > TC , o player retornará a saffron.

      ---------------------------------------------------------------------------------------------------------------------

      Em Data/Movements/Scripts, crie um arquivo.lua e coloque dentro:

       
      -- Developed by: Denker local configs = { tps = { -- Teleport para o TC através de um TP (Item) especifico no chão [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50000}, -- Pallet [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50001}, -- Viridian [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50002}, -- Pewter [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50003}, -- Cerulean [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50004}, -- Saffron [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50005}, -- Celadon [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50006}, -- Vermilion [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50007}, -- Fuchsia [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50008}, -- Cinnabar }, -- LOCALIZAÇÕES localizacaoPallet = {x= 0, y= 0, z= 0}, localizacaoViridian = {x= 0, y= 0, z= 0}, localizacaoPewter = {x= 0, y= 0, z= 0}, localizacaoCerulean = {x= 0, y= 0, z= 0}, localizacaoSaffron = {x= 0, y= 0, z= 0}, localizacaoCeladon = {x= 0, y= 0, z= 0}, localizacaoVermilion = {x= 0, y= 0, z= 0}, localizacaoFuchsia = {x= 0, y= 0, z= 0}, localizacaoCinnabar = {x= 0, y= 0, z= 0} } function onStepIn(cid, item, position, fromPosition) local tp = configs.tps[item.itemid] if tp then doTeleportThing(cid, tp.pos) setPlayerStorageValue(cid, tp.storage, 1) return true end -- Verificação que irá teletransportar o player de acordo com a city que ele estava antes if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50000) == 1 then doTeleportThing(cid, configs.localizacaoPallet) setPlayerStorageValue(cid, 50000, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Pallet") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50001) == 1 then doTeleportThing(cid, configs.localizacaoViridian) setPlayerStorageValue(cid, 50001, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Viridian") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50002) == 1 then doTeleportThing(cid, configs.localizacaoPewter) setPlayerStorageValue(cid, 50002, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Pewter") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50003) == 1 then doTeleportThing(cid, configs.localizacaoCerulean) setPlayerStorageValue(cid, 50003, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Cerulean") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50004) == 1 then doTeleportThing(cid, configs.localizacaoSaffron) setPlayerStorageValue(cid, 50004, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Saffron") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50005) == 1 then doTeleportThing(cid, configs.localizacaoCeladon) setPlayerStorageValue(cid, 50005, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Celadon") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50006) == 1 then doTeleportThing(cid, configs.localizacaoVermilion) setPlayerStorageValue(cid, 50006, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Vermilion") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50007) == 1 then doTeleportThing(cid, configs.localizacaoFuchsia) setPlayerStorageValue(cid, 50007, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Fuchsia") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50008) == 1 then doTeleportThing(cid, configs.localizacaoCinnabar) setPlayerStorageValue(cid, 50008, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Cinnabar") return true end end OBS: O item ID da verificação de volta, será igual para todas as verificações.

      Em Data/Movements/Movements.xml, coloque dentro:

       
      <movevent type="StepIn" itemid="ID" event="script" value="arquivo.lua"/>  

    • Por Denker
      Ao clicar em um baú o player receberá o pokémon, ao ser teleportado para a cidade inicial ele ganhará um kit.
      OBS: Script desenvolvido para Ot's aonde  não há opção de escolha para cidade inicial, sempre será a mesma.
       
      Em Data/Actions/Script, crie um arquivo.lua e coloque:
       
      -- Developed by: Denker local configs = { position = {x = , y = , z = }, -- Localização que o player será teletransportado level = 8, -- Level minimo item = { [1] = {id = , count = }, -- Item que será entregue [2] = {id = , count = }, }, pokemons = { [] = "Charmander", -- Pokémons a se escolher e os ID item que será correspondente a cada poke [] = "Bulbasaur", [] = "Squitler", } } function onUse(cid, item) local first_Pokemon = configs.pokemons[item.itemid] if getPlayerLevel(cid) >= configs.level then for i = 1, #configs.item do doPlayerAddItem(cid, configs.item[1].id, configs.item[1].count) end addPokeToPlayer(cid, first_Pokemon,nil,"normal") doTeleportThing(cid, configs.position) doPlayerSetTown(cid,ID) -- Seta a cidade inicial no player doPlayerSendTextMessage(cid, 27, "Você pegou "..first_Pokemon.." como seu primeiro pokémon, boa sorte em sua jornada") -- Mensagem enviada após pegar escolher o pokémon else doPlayerSendTextMessage(cid, 27, "Você não pode pegar este Pokémon") -- Mensagem caso o player não tenha o requisito end return true end
      Em Data/Action/action.xml, coloque:

       
      <action itemid="ItemID" event="script" value="arquivo.lua"/>  

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo