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.

  Mostrar conteúdo oculto

 

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 19: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 

Expand   Mostrar mais  

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 cicinhobdr
      Estou criando meu server de ot pokemon só pra brinca mesmo sabe.
      Mas eu queria saber como colocar evento automático tipo de loteria, batalha PVP.....sei lah qualquer coisa.
      E que de para configurar hora sendo ele de hora em hora ou n e o prêmio que será dado ao vencedor.
       
      Desde já agradeço.
    • Por RenanPhellip
      Eai pessoal, já tentei 3 scripts de teleport automático mas os 3 não funcionaram!
      Preciso que o teleport apareça automaticamente no templo aos sábados às 18h e feche às 21h contendo broadcast nos 2 horários.
  • Estatísticas dos Fóruns

    96842
    Tópicos
    519597
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo