Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Então , estou começando agora no mundo de script, e eu e um amigo estávamos conversando sobro no Futuro OT que estamos criando e vimos a necessidade de um Tutor Automático para não depender tanto de alguém sempre respondendo a galera.

up-divider.thumb.png.795f2538444899772241dccf448b9d2c.png

 

[1] Como funciona: Simplesmente com uma Talk Action , você manda no Global Channel !tutor e ira abrir uma ModalWindow com as duvidas.

topico1.png.baf8be6e9f07cdc702ca777a3cf9ce59.png

 

[2] Como ele responde: Isso vai depender de você colocar para responder, pois o sistema manda uma mensagem no Local Chat em Azul.

topico2.png.58a28594e739eb0b20c998d9da437703.png

 

[3] Como Instalar: É bem simples de instalar mas siga os passos atentamente. Enfim vamos para a melhor parte :wow::wow:.

 

1) Primeiro você tem que ter o ModalWindow instala-do no seu Server: Modal Window

 

 2) Em \data\talkactions\talkactions.xml registre a seguinte linha.

<talkaction words="!tutor" script="tutor.lua"/>

 

 3) Em \data\talkactions\scripts crie o seguinte arquivo "tutor.lua" e adicione.

 

function onSay(cid, player, words, param)
	cid:registerEvent("modalwindowhelper")
 
    local titulo = "Tutor Automatico" -- Esse é o titulo do ModalWindow
    local mensagem = "Oi,eu sou o Tutor Automatico do OTS, posso respoder algumas de suas duvidas" -- Subtitulo do ModalWindow
 
    local popup = ModalWindow(1000, titulo, mensagem)
 
    popup:addButton(100, "Confirm")
    popup:addButton(101, "Cancel")
 
    popup:addChoice(1, "Pergunta1") -- Aqui é onde voce vai adicionar as perguntas, basta seguir a sequencia
    popup:addChoice(2, "Pergunta2")
 
    popup:setDefaultEnterButton(100)
    popup:setDefaultEscapeButton(101)
 
    popup:sendToPlayer(cid)
	
    return true
end

4) Em \data\creaturescripts\creaturescripts.xml registre a seguinte linha.

<event type="modalwindow" name="modalwindowhelper" script="tutor.lua"/>

5) Em \data\creaturescripts\scripts crie o seguinte arquivo "tutor.lua" e adicione.

function onModalWindow(cid, modalWindowId, buttonId, choiceId)
	cid:unregisterEvent("modalwindowhelper")
	local mensagem = { 
		[1] = "Tutor Automatico: Resposta1", -- aqui é voce vai adicionar as respostas respeitando a sequencia
		[2] = "Tutor Automatico: Resposta2",

	}
	
	if modalWindowId == 1000 then
		if buttonId == 100 then
			for x = 1,#mensagem do
				if choiceId == x then
					cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, mensagem[x]) 			
				end
			end	
		end
	end
end	

Caso Tenha Ajudado +REP

Créditos:  Yok 

Editado por Yok (veja o histórico de edições)

 

 

 

aqui.gif.739ded8f24f9b85d49efa650b47a0edf.gif

Yok Baiak, criado apartir do TFS Otland, espero que aproveitem.

Shield_of_Destiny.gif.a18f5560d219e2ecb729809650f8edc8.gif 

 

A culpa trata-se apenas,

da sua capacidade de se perdoar ou não.

 

 

teamspeak_small.png.60f4db8ae60aff98bdc23f53da2a1023.png Mith Gaming = 189.1.171.23:3044

 

 

 

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
  • 7 months later...
Em 19/11/2017 em 16:55, Yok disse:

Então , estou começando agora no mundo de script, e eu e um amigo estávamos conversando sobro no Futuro OT que estamos criando e vimos a necessidade de um Tutor Automático para não depender tanto de alguém sempre respondendo a galera.

up-divider.thumb.png.795f2538444899772241dccf448b9d2c.png

 

[1] Como funciona: Simplesmente com uma Talk Action , você manda no Global Channel !tutor e ira abrir uma ModalWindow com as duvidas.

topico1.png.baf8be6e9f07cdc702ca777a3cf9ce59.png

 

[2] Como ele responde: Isso vai depender de você colocar para responder, pois o sistema manda uma mensagem no Local Chat em Azul.

topico2.png.58a28594e739eb0b20c998d9da437703.png

 

[3] Como Instalar: É bem simples de instalar mas siga os passos atentamente. Enfim vamos para a melhor parte :wow::wow:.

 

1) Primeiro você tem que ter o ModalWindow instala-do no seu Server: Modal Window

 

 2) Em \data\talkactions\talkactions.xml registre a seguinte linha.


<talkaction words="!tutor" script="tutor.lua"/>

 

 3) Em \data\talkactions\scripts crie o seguinte arquivo "tutor.lua" e adicione.

 


function onSay(cid, player, words, param)
	cid:registerEvent("modalwindowhelper")
 
    local titulo = "Tutor Automatico" -- Esse é o titulo do ModalWindow
    local mensagem = "Oi,eu sou o Tutor Automatico do OTS, posso respoder algumas de suas duvidas" -- Subtitulo do ModalWindow
 
    local popup = ModalWindow(1000, titulo, mensagem)
 
    popup:addButton(100, "Confirm")
    popup:addButton(101, "Cancel")
 
    popup:addChoice(1, "Pergunta1") -- Aqui é onde voce vai adicionar as perguntas, basta seguir a sequencia
    popup:addChoice(2, "Pergunta2")
 
    popup:setDefaultEnterButton(100)
    popup:setDefaultEscapeButton(101)
 
    popup:sendToPlayer(cid)
	
    return true
end

4) Em \data\creaturescripts\creaturescripts.xml registre a seguinte linha.


<event type="modalwindow" name="modalwindowhelper" script="tutor.lua"/>

5) Em \data\creaturescripts\scripts crie o seguinte arquivo "tutor.lua" e adicione.


function onModalWindow(cid, modalWindowId, buttonId, choiceId)
	cid:unregisterEvent("modalwindowhelper")
	local mensagem = { 
		[1] = "Tutor Automatico: Resposta1", -- aqui é voce vai adicionar as respostas respeitando a sequencia
		[2] = "Tutor Automatico: Resposta2",

	}
	
	if modalWindowId == 1000 then
		if buttonId == 100 then
			for x = 1,#mensagem do
				if choiceId == x then
					cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, mensagem[x]) 			
				end
			end	
		end
	end
end	

Caso Tenha Ajudado +REP

Créditos:  Yok 

funciona em TFS 0.4 8.60 ?

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 tataboy67
      Ola gente tudo bom?
      Eu estava pensando em algo para se fazer em relação a sistemas, e não achei nada de interessante...
      Até que encontrei 4 Sprite's de umas Wand's, cujo autor eu não tenho conhecimento !

      Dai eu pensei... Porque não fazer uma Wand que possui diversos elementos?
      Pois então cá estou eu kk
      Explicando como funcionará o sistema:
       

      dasdsa.mp4
      OBS: Desculpe por essa msg no meio do vídeo, é que só consegui gravar assim...

      Sem mais delongas vamos ao sistema:

      data/actions/scripts/wand_elements.lua
      local config = { id1 = 32050, id2 = 32049, id3 = 32048, id4 = 32047, } function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) player:registerEvent("Wand_Elements") local title = "Select your element!" local message = "Here you can select the element of your wand, however, you must wait 3 seconds, between one exchange and another." local window = ModalWindow(1000, title, message) window:addButton(100, "Confirm") window:addButton(101, "Cancel") window:addChoice(1, "Wand Energy") window:addChoice(2, "Wand Ice") window:addChoice(3, "Wand Earth") window:addChoice(4, "Wand Fire") window:setDefaultEnterButton(100) window:setDefaultEscapeButton(101) local Item = player:getSlotItem(CONST_SLOT_LEFT) if Item.itemid == config.id1 or Item.itemid == config.id2 or Item.itemid == config.id3 or Item.itemid == config.id4 then window:sendToPlayer(player) end return true end Adicione a tag em Actions:
      <!-- Wand Elements --> <action fromid="32047" toid="32050" script="wand_elements.lua" />
      data/creaturescripts/scripts/wand_elements.lua
      function onModalWindow(player, modalWindowId, buttonId, choiceId) player:unregisterEvent("Wand_Elements") local config = { [1] = {32047,'Energy Wand'}, -- {ID do item, 'nome do item'} [2] = {32048,'Ice Wand'}, [3] = {32049,'Earth Wand'}, [4] = {32050,'Fire Wand'}, } if modalWindowId == 1000 then if buttonId == 100 then player:removeItem(player:getSlotItem(CONST_SLOT_LEFT).itemid, 1) player:addItem(config[choiceId][1], 1) player:sendTextMessage(MESSAGE_INFO_DESCR, "You have changed the element of your wand to: {"..config[choiceId][2].."}.") end end end Adicione a tag em Creaturescripts:
      <!-- Wand Elements --> <event type="modalwindow" name="Wand_Elements" script="wand_elements.lua"/> Pronto, feito isso o sistema está utilizável já:
      Download das Sprites utilizadas:


      Explicando o que você deve modificar:
      Em actions:
      local config = {     id1 = 32050, -- ID DO ITEM     id2 = 32049,     id3 = 32048,     id4 = 32047, } Tag do action
          <action fromid="32047" toid="32050" script="wand_elements.lua" /> Em creaturescripts:
          local config = {         [1] = {32047,'Energy Wand'},         [2] = {32048,'Ice Wand'},         [3] = {32049,'Earth Wand'},         [4] = {32050,'Fire Wand'},     } { ID do item, 'nome do item' }

      *Creditos:
      EUZINHOO  
      E o cara que crio as SPR
    • Por Killua
      Últimas atualizações:
       
      16/12/2013:
       
       


       
       
      Introdução:
       
       
      Este é o meu já conhecido evento Blood Castle Automático que estava em outro fórum que acabou. Estou trazendo ele aqui para que ele não "morra".
       
       
       
       
      Informações:  
       
      #Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
       
       
      Atualização [12/04/2014]
       
       
      Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento.
       
       
      O que mudou?
       
       
       
       
       
      Instalando o evento:
       
      Lib:
       


       
       
      Movements: 
       


       
       
       
      Creaturescripts: 
       


       
      Monsters: 
       

          O evento pode acontecer de duas maneiras: automática ou manualmente. Vou por as duas possibilidades:     Automática:   

       
       
      Manual:
       


       
       
      Como Configurar:
       
       
      * Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele.
       
       
      * Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!!
       
       
      Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos".
       
       
      No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag:
      <globalevent name="Blood Castle" interval="3600" event="script" value="BloodGlobalEvent.lua"/> Aqui está 3600 segundos, ou seja, 1 hora.
      * Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora.
       
      No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god.
       
       
      Em posGuarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo:  
        As posPedras são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo:  
        Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo:  

        Nas posParedes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo:  
        Em fromPos e toPos, você vai por o canto superior esquerdo e o canto inferior direito do mapa do seu evento, respectivamente. Dessa maneira:  
        As outras configurações eu acredito que já estejam bem explicadas.     Espero que gostem dessa nova versão. Recomendo a todos que já usam o evento, reinstalar com essa nova versão.   Qualquer dúvida ou bug, postem que irei responder.
    • Por EddyHavoc
      Resumo
      A maneira atual para implementar Modal Window é um pouco complicada. Atualmente precisamos cria-la em algum lugar, registrar o evento, adicionar os botões em uma ordem específica, definir o ID da janela, dos botões e da escolha. Isso não é o ideal, então esta biblioteca foi criada pelo Non Sequitur para ajudar nisso. E eu estou trazendo para a OtServBrasil.

      Exemplo/ Tutorial Usando Modal Window
       
      Instalando
      Adicionar em data/lib/lib.lua dofile('data/lib/modalwindow.lua') Crie o arquivo modalwindow.lua com o seguinte conteúdo em data/lib if not modalWindows then modalWindows = { modalWindowConstructor = ModalWindow, nextFreeId = 500, windows = {} } end local MT = {} MT.__index = MT function ModalWindow(...) local args = {...} if type(args[1]) == 'table' then local self = setmetatable(args[1], MT) local id = modalWindows.nextFreeId self.id = id self.buttons = {} self.choices = {} self.players = {} self.created = false modalWindows.nextFreeId = id + 1 table.insert(modalWindows.windows, self) return self end return modalWindows.modalWindowConstructor(...) end function MT:setDefaultCallback(callback) self.defaultCallback = callback end function MT:addButton(text, callback) local button = {text = tostring(text), callback = callback} table.insert(self.buttons, button) return button end function MT:addButtons(...) for _, text in ipairs({...}) do table.insert(self.buttons, {text = tostring(text)}) end end function MT:addChoice(text) local choice = {text = tostring(text)} table.insert(self.choices, choice) return choice end function MT:addChoices(...) for _, text in ipairs({...}) do table.insert(self.choices, {text = tostring(text)}) end end function MT:setDefaultEnterButton(text) self.defaultEnterButton = text end function MT:setDefaultEscapeButton(text) self.defaultEscapeButton = text end function MT:setTitle(title) self.title = tostring(title) end function MT:setMessage(message) self.message = tostring(message) end local buttonOrder = { [4] = {3, 4, 2, 1}, [3] = {2, 3, 1}, [2] = {1, 2}, [1] = {1} } function MT:create() local modalWindow = modalWindows.modalWindowConstructor(self.id, self.title, self.message) local order = buttonOrder[math.min(#self.buttons, 4)] if order then for _, i in ipairs(order) do local button = self.buttons[i] modalWindow:addButton(i, button.text) button.id = i if button.text == self.defaultEnterButton then modalWindow:setDefaultEnterButton(i) elseif button.text == self.defaultEscapeButton then modalWindow:setDefaultEscapeButton(i) end end end for _, choice in ipairs(self.choices) do modalWindow:addChoice(_, choice.text) choice.id = _ end self.modalWindow = modalWindow end function MT:sendToPlayer(player) if not self.modalWindow then self:create() end player:registerEvent('ModalWindowHelper') self.players[player:getId()] = true return self.modalWindow:sendToPlayer(player) end Adicionar em data/creaturescripts/craturescripts.xml <event type="modalwindow" name="ModalWindowHelper" script="modalwindowhelper.lua" /> Crie o arquivo modalwindowhelper.lua com o seguinte conteúdo em data/creaturescripts/scripts/ function onModalWindow(player, modalWindowId, buttonId, choiceId) local modalWindow for _, window in ipairs(modalWindows.windows) do if window.id == modalWindowId then modalWindow = window break end end if not modalWindow then return true end local playerId = player:getId() if not modalWindow.players[playerId] then return true end modalWindow.players[playerId] = nil local choice = modalWindow.choices[choiceId] for _, button in ipairs(modalWindow.buttons) do if button.id == buttonId then local callback = button.callback or modalWindow.defaultCallback if callback then callback(button, choice) break end end end return true end  
      Pronto!
       
      Espero que gostem. Posteriormente irei postar um tutorial de como usar/ aplicar e alguns scripts utilizando a Biblioteca.
    • Por King Laker
      Olá, passei um tempo procurando este script até que um amigo do TK disponibilizou (credito no fim do post)
      Edit1: O evento funciona assim, o evento começa as 14:00:00 para inscrições realizando as inscrições você é levado para sala de espera (coloque no-logout e protection) onde você tera de esperar 5 minutos passado os 5 minutos todos na sala de espera serão teleportados para uma arena que você pode fazer facilmente e configurar conforme explicado na script --> apenas lembre de colocar o no-logout e pvp tool na arena.
      (As 13:59:00 vai aparecer um broadcast dizendo que o Npc PvP irá aparecer em 1 minutos que você terá então 5 minutos para se inscrever com o custo de 10k (configurável na script do actions) a área onde o npc nasce é configurável, o npc sumirá após 6 minutos (1 minuto depois do inicio da matança)-) 
      O ultimo vivo na arena terá de clicar na alavanca e será teleportado para o templo (coordenadas configuráveis) ganhando o devido premio do evento (configuravel na script do actions).
      Vamos lá:

      data/lib adicione um arquivo .lua e renomeie para Torneio.lua e coloque dentro
       
      vai em Globalevents adicione Torneio.lua e dentro dele coloque
       
      (se sua versão é em millisegundos então mude para)
       
      Adicione a tag em globalevents.xml
       
      se seu servidor for em millisegundos:
       
      vai em Actions adicione Torneio.lua e dentro:
      Atenção: Voce faz uma area do Torneio no Map editor e Coloca PVP-Zone e no-logout no Mapa editor e coloca uma Alavanca com a uniqueid "18279" e actionid "18279" antes verifique se não tem a action e unique id no seu servidor com o mesmo numero (18279) [ a alavanca serve para quando o ultimo player vivo no evento volte para o templo e receba os premios]
       
      Em Actions.xml adcione a tag 
       
      Agora o NPC TORNEIO em  data/NPC adicione um xml, renomeie para o nome torneio.xml (pode mudar mais tarde, se não souber oque esta fazendo não mexa)
       
      em NPC/SCRIPTS/torneio.lua
       
      LEIA:
       
      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      aqui um script que achei no TK que você pode usar no seu evento, ele faz o npc aparecer 1 minuto depois do horario marcado na posição que você quiser, com um broadcast dizendo que ele esta chegando. (é bom para dizer que o evento esta começando)
      vá em globalevents.xml e adicione a tag
      Dica: Coloque 1 minuto antes do inicio do evento (configuravel no lib/torneio.lua) no meu caso seria as 12:00:00 hrs (meio dia)
       
      se o seu servidor não for millisegundos use
       
      va em globalevents/scripts e crie um arquivo .lua com o nome de npcpvp
       
      se o seu servidor não for em millisegundos use assim:
       

      Creditos:
      @J.L por disponibilizar os script do Evento PvP.
      @Stigal por disponibilizar o script do Npc que aparece sozinho na hr marcada.
      @King Laker por editar e mesclar os scripts.
    • Por tataboy67
      Dungeon System v1.1

      A pedido de um usuário em meu Discord, resolvi ajuda-lo e desenvolver um sistema totalmente interativo e de qualidade aqui para vocês.
      Bom, o sistema se baseia em uma ActionID que ao clicar, podemos ai entrar em uma dungeon, tendo tempo para finaliza-la e até um cooldown, caso queira entrar novamente.

      Imagens do sistema:
       

      Vamos ao Código:

      Em actions, crie um arquivo com o nome de: Dungeon Actions.lua
       
      Em creaturescripts, crie um arquivo com o nome de: Dungeon Creaturescript.lua
       
      Ainda em creaturescripts, crie outro arquivo com o nome de: Type Dungeon Creaturescript.lua
       
       Na LIB, crie um arquivo com o nome de Dungeon System Lib.lua, e adicione:
       
      Em creaturescripts.xml, adicione:
       
       
      Em actions.xml, adicione:
       Em libs.lua, adicione:
      dofile('data/lib/Dungeon System Lib.lua')  
      v1.1 (Nova atualização, agora pode spawnar mobs dentro da DG, e ao sair, eles são removidos)

      (CREDITOS TOTAIS A MIM: @tataboy67)

      Essa é a primeira versão. Ainda pretendo colocar para nascer mobs, remover mobs ao entrar, etc etc...
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo