Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • 2 weeks later...

Vou tentar colocar pra tfs1x. o movie é preguiçoso kkkk

 

Edit1: Se eu conseguir vou deixar aqui neste mesmo tópico á versão

Editado por Old tibians
Mudar texto (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador
3 horas atrás, Old tibians disse:

Vou tentar colocar pra tfs1x. o movie é preguiçoso kkkk

 

Edit1: Se eu conseguir vou deixar aqui neste mesmo tópico á versão

Ando muito ocupado, as vezes que entro no fórum ou no discord da academia de codding estou pelo celular.

De qualquer forma, irei disponibilizar isso gratuitamente, portanto faço no meu tempo.

 

Espero que consiga trazer logo pro 1.x, daí não vou ter que terminar de passar :) 

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

@LeandroRissa Eita, não precisa se estressar não, pronto coloquei seus créditos.

 

 

 

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...

Tive um ERRO na instalação no OTX, nessa parte:

        doSetItemActionId(teleport, zombieEvent.config.teleportAid)

Para resolver, substitui por essa:

        doItemSetAttribute(teleport, "aid", zombieEvent.config.teleportAid)

 

Para quem tiver o mesmo problema, está ai.

 

Coloquei no meu servidor e ficou muito bacana, parabéns pela ideia..

 

Dicas de melhorias futuras:

A mensagem de inicio poderia se repetir a cada 1 min falando o tempo que falta para fechar o teleport e

aparecer uma mensagem falando quantos players falta para a quantidade mínima de pessoas necessária

Link para o post
Compartilhar em outros sites
12 horas atrás, FeehLoveCes disse:

Tive um ERRO na instalação no OTX, nessa parte:

        doSetItemActionId(teleport, zombieEvent.config.teleportAid)

Para resolver, substitui por essa:

        doItemSetAttribute(teleport, "aid", zombieEvent.config.teleportAid)

 

Para quem tiver o mesmo problema, está ai.

 

Coloquei no meu servidor e ficou muito bacana, parabéns pela ideia..

 

Dicas de melhorias futuras:

A mensagem de inicio poderia se repetir a cada 1 min falando o tempo que falta para fechar o teleport e

aparecer uma mensagem falando quantos players falta para a quantidade mínima de pessoas necessária

Você provavelmente não tem a lib 100-shortcut.lua no seu servidor, é uma maneira mais curta de usar essa mesma função.

function doSetItemActionId(uid, aid)
	return doItemSetAttribute(uid, "aid", aid)
end

 

Curti as ideias de melhorias, quem sabe mais pra frente eu não adiciono :wink:

 

 

 

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
  • 2 months later...
Em 12/09/2020 em 21:33, WooX disse:

Zombie Event

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

Zombie Event é um evento já muito conhecido em que os participantes são jogados em uma arena e zombies são invocados até que reste apenas um jogador, quando um jogador é tocado por um zombie ele é teleportado para o templo, o ultimo jogador a ficar na arena é definido como vencedor e o evento é finalizado ai. Já faz um bom tempo que tive a ideia de mudar o funcionamento deste tradicional evento e finalmente decidi por a mão na massa, irei explicar melhor o que foi alterado abaixo.

 

 

Sobre o sistema

Oj5H4Xi.png

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

 

Pra quem quiser esse evento funcional para TFS 1.x, o @Movie se comprometeu a fazer a adaptação, então podem mandar mensagem privada pra ele cobrando que ele gosta.

 

Quem é familiar com filmes e séries de zombies sabe que quando um zombie morde alguém a pessoa que foi mordida não simplesmente morre, mas ela se torna um zombie, é isso que torna a ideia de um apocalipse zombie tão aterrorizante. Pensando nisso eu tive a ideia de alterar o sistema pra que quando algum player fosse pego por um zombie ele também se transformasse em um e não fosse simplesmente teleportado para o templo. Essa alteração deixa a interação entre os jogadores no evento mais dinâmica pois eventualmente se torna um jogo de Player vs Player ao invés de Player vs Maquina, embora no fim continue sendo uma batalha entre vivos e mortos.

 

Irei listar abaixo mais algumas características do evento.

 

  • É possivel configurar para que seja permitido ou não o uso de MCs.
  • Todos os jogadores ao entrar na arena ficam com a mesma velocidade.
  • Para tornar mais competitivo e divertido, não é permitido utilizar a função Follow dentro do evento.
  • O jogador que foi transformado em zombie que mais contaminar outros jogadores também recebe uma recompensa.
  • Os jogadores que forem transformados em zombies podem subir de rank conforme forem contaminando outros jogadores, alterando assim sua aparência e velocidade na arena.

 

Vídeozinho

  Mostrar conteúdo oculto

 

Instalação

Oj5H4Xi.png

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 evento estão anexados no tópico, irei apenas mostrar como deve ser configurado.

 

Toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.

  Ocultar conteúdo


-- Lib Zombie-Event by WooX

zombieEvent = {
	config = {
		startTime = {
			[1] = {"09:00", "15:00"}, -- domingo
			[2] = {"09:00", "15:00"}, -- segunda
			[3] = {"09:00", "15:00"}, -- terça
			[4] = {"09:00", "15:00"}, -- quarta
			[5] = {"09:00", "15:00"}, -- quinta
			[6] = {"09:00", "15:00"}, -- sexta
			[7] = {"09:00", "15:00"}  -- sabado
		},
		
		messages = {
			announcement = "O ataque de zombies esta prestes a começar, o teleporte será fechado em %d minuto",
			startEvent = "O teleporte fechou, boa sorte aos participantes!",
			playerBitten = "O jogador %s acaba de ser mordido e agora está no time dos zombies!",
			endEvent = "%s foi o sobrevivente do ataque de zombies! Párabens!",
			notEnoughPlayers = "Apenas %d jogadores não é o suficiente para se defender de um ataque zombie, os zombies venceram antes mesmo do ataque começar",
			
			zombiesRant = {"Mst.... klll....", "Whrrrr... ssss.... mmm.... grrrrl", "Dnnnt... cmmm... clsrrr....", "Httt.... hmnnsss...", "Uhhhhhhh!", "Aaaaahhhh!", "Hoooohhh!", "Chhhhhhh!"}
		},
		
		minOnlinePlayers = 50, -- Quantidade minima de jogadores online para iniciar o evento
		minPlayers = 15, -- Quantidade minima de jogadores para iniciar o evento
		
		closeTeleportTime = 5, -- Tempo em minutos para fechar o teleporte de entrada do evento apos aviso de inicio
		countDownTime = 30, -- Tempo em segundos para iniciar o evento apos o fechamento do teleporte de entrada
		
		zombieRatio = 0.3, -- Quantidade inicial de Zombies = [quantidade de players no evento multiplicado pelo valor definido aqui]
		playerSpeed = 300,
		delayToTransform = 3, -- Tempo em segundos para o jogador que foi mordido virar um zombie
		allowMultiClient = false,
		
		rewards = {
			human = {{2160, 10}, {6527, 20}}, -- {id, count}
			zombie = {{6527, 5}} -- {id, count}
		},
		
		zombiesRank = {
			[0] = {lookType = 100, speed = 250},
			[{1, 2}] = {lookType = 18, speed = 270},
			[{3, 4}] = {lookType = 68, speed = 290},
			[{5, math.huge}] = {lookType = 246, speed = 310}
		},
		
		area = {
			fromPos = {x = 560, y = 176}, -- Coordenadas ponto superior-esquerdo
			toPos = {x = 599, y = 216}, -- Coordenadas ponto inferior-direito
			z = 7,
		},
		
		teleportAid = 1800,
		teleportPos = {x = 166, y = 52, z = 7}, -- Onde o teleporte pra entrada do evento vai ser criado.
	},
}

 

 

  • startTime: configuração de horários para inicio do evento a depender do dia da semana (para cada horário diferente definido aqui um registro extra é necessário no globalevents.xml)
  • announcement: mensagem a ser exibida quando o teleporte para o evento for aberto.
  • startEvent: mensagem a ser exibida quando o teleporte para o evento for fechado e o evento iniciado.
  • playerBitten: mensagem a ser exibida quando um jogador for mordido por um zombie.
  • endEvent: mensagem a ser exibida quando o evento for finalizado.
  • notEnoughPlayers: mensagem a ser exibida quando não houver players suficiente para o evento.
  • zombiesRant: falas que serão randomicamente selecionadas para um jogador que foi transformado em zombie falar.

 

  • minOnlinePlayers: define a quantidade minima de jogadores online para o teleporte do evento ser aberto.
  • minPlayers: define a quantidade minima de jogadores na arena para o evento ser iniciado.
  • closeTeleportTime: tempo para fechar o teleporte após o anuncio (o valor deve ser definido em minutos).
  • countDownTime: tempo para iniciar o evento após o fechamento do teleporte (o valor deve ser definido em segundos).

 

  • zombieRatio: define a quantidade inicial de zombies baseado na quantidade de jogadores participando do evento.
  • playerSpeed: define a velocidade que o jogador terá durante o evento (valido apenas para jogadores que não foram transformados em zombies).
  • delayToTransform: define o intervalo para um jogador que foi mordido se transformar em um zombie (o valor deve ser definido em segundos).
  • allowMultiClient: pode ser definido como true ou false, se definido como falso não irá permitir a entrada de jogadores com o mesmo IP no evento.

 

  • rewards: define as recompensas a serem entregues tanto para o ultimo sobrevivente na arena como para o zombie que mais contaminar outros jogadores.
  • zombiesRank: define os ranks dos zombies, a quantidade de pontos necessária para avançar de rank, aparência e velocidade (valido apenas para jogadores que foram transformados em zombies).
  • area: define a área onde ocorrerá o evento, deve ser preenchido as coordenadas do ponto superior-esquerdo, ponto inferior-direito e o andar do local.
  • teleportAid: define a actionID a ser adicionado no teleporte de entrada do evento (este valor deve ser o mesmo a ser registrado na tag XML do script de movements).
  • teleportPos: define as coordenadas onde deve ser criado o teleporte de entrada para o evento.

 

Créditos

Oj5H4Xi.png

@LeandroRissa por testar todo o sistema.

event zombie.xml 1 kB · 42 downloads lib_zombie.lua 11 kB · 41 downloads zombieEvent.lua 150 B · 40 downloads zombieEvent_creature.lua 2 kB · 42 downloads zombieEvent_movement.lua 1 kB · 39 downloads

seria possível coloca o o player male com o lookType male e a jogadora female com o look female exemplo a imagens abaixo

Screenshot_1.png

Link para o post
Compartilhar em outros sites
Em 10/01/2021 em 20:26, DarkRed disse:

seria possível coloca o o player male com o lookType male e a jogadora female com o look female exemplo a imagens abaixo

Screenshot_1.png

Seria possível sim, mas o Tibia não tem lookTypes de zombies ou semelhantes para female, como fiz pensando no Tibia o script não possui essa função, seria necessário modificar.

 

 

 

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
Em 16/01/2021 em 23:22, XGaduX disse:

TFS 0.4 não tem o callback onThrow, teria que remover essa função do script.

 

 

 

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
9 minutos atrás, XGaduX disse:

tem como você adaptar para 0.4? att

Não tem o que fazer em relação ao script nesse caso, teria que modificar a source.

 

 

 

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
Agora, WooX disse:

Não tem o que fazer em relação ao script nesse caso, teria que modificar a source.

caso eu mude na source, prejudicaria o meu serve? se não. COmo que eu faço? 

Link para o post
Compartilhar em outros sites
Em 18/01/2021 em 14:49, XGaduX disse:

caso eu mude na source, prejudicaria o meu serve? se não. COmo que eu faço? 

Não prejudicaria em nada. Acho que passei os arquivos que precisam ser alterados pra outra pessoa um outro caso.

 

 

 

 

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 minuto atrás, WooX disse:

Não prejudicaria em nada. Acho que passei os arquivos que precisam ser alterados pra outra pessoa um outro caso.

 

Lá você só cita que "Vai ter que mexer em creatureevent.cpp, creatureevent.h e game.cpp", mas oque muda lá?... 

Link para o post
Compartilhar em outros sites
5 minutos atrás, XGaduX disse:

Lá você só cita que "Vai ter que mexer em creatureevent.cpp, creatureevent.h e game.cpp", mas oque muda lá?... 

Vai ter que extrair o código e implementar em sua source, busque por onThrow nos arquivos. Se você não sabe o que fazer, segue a mesma recomendação que eu passei pra ele.

 

 

 

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

Legal essa interação, seria legal se o player infectado usa-se um comando !infec, e assim sairia um magia entorno dele de 1 sqm de distancia e quem fosse pego no raio dela fosse eliminado. E o player deixava de ser infectado.

Assinatura retirada pela direção!

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