Uau, um novo plugin!
Este é um pouco menos sério, embora. ![]()
Discourse Frotz
NĂŁo Ă© mais necessĂĄrio mencionar o bot @ a cada passo. Uma vez em jogo, basta responder a ele.
Repositório Git: GitHub - merefield/discourse-frotz: A plugin that uses Frotz to give you an interactive fiction experience on your Discourse forum · GitHub
O que Ă©
Ă um âbotâ com o qual vocĂȘ pode jogar ficção interativa, tambĂ©m conhecida como jogos clĂĄssicos de aventura de texto, no seu fĂłrum Discourse. Ele funciona essencialmente como um adaptador para o interpretador Z-machine padrĂŁo e incrĂvel chamado âfrotzâ, disponĂvel em David Griffith / frotz · GitLab
Como usar
A configuração adiciona dois jogos; vocĂȘ pode adicionar mais nas configuraçÔes.
Cada entrada contĂ©m um TĂtulo e o nome do arquivo da histĂłria.
Para iniciar a interação, vocĂȘ precisa mencionar o bot definido nas configuraçÔes. Depois disso, responder a uma postagem dele Ă© suficiente.
Para listar os jogos disponĂveis, primeiro vocĂȘ precisa mencionar o bot e perguntar:
@meubot listar jogos
Isso fornecerå a variedade de opçÔes.
Para iniciar um jogo, digite:
iniciar jogo x substituindo x pelo nĂșmero da opção.
Se quiser mudar para outro jogo, vocĂȘ pode fazĂȘ-lo; o plugin salva seu progresso a cada movimento, permitindo que vocĂȘ retorne Ă primeira histĂłria a qualquer momento. O plugin mantĂ©m um save para cada histĂłria para cada usuĂĄrio que tenta.
Para continuar um jogo existente, digite:
continuar jogo x substituindo x pelo nĂșmero da opção.
NB: Uma reconstrução completa destruirå todos os arquivos de save. Isso é um compromisso necessårio.
Como jogar um jogo de IF?
Muitos âMembrosâ cresceram com essas coisas. Para aqueles menos familiarizados, confira este guia rĂĄpido: Play Some Interactive Fiction
Configuração
Criar o UsuĂĄrio Bot
(desculpas, automatizar isso estĂĄ na minha lista!)
Em uma sessĂŁo ssh, entre no seu container e no console rails:
./launcher enter app
rails c
Em seguida, faça o seguinte:
u = User.create!(username: "Frotz", name: "FrotzBot", id:-5, email: "not@really.valid")
u.activate
Seu novo bot estarĂĄ entĂŁo disponĂvel para configuração na interface do usuĂĄrio (UI). VĂĄ para as configuraçÔes do usuĂĄrio na UI atravĂ©s do botĂŁo de administrador e desative todas as notificaçÔes por e-mail. Atualize o avatar conforme seu gosto.
Instalar Discourse Frotz
Atualize seu app.yml
Isso Ă© um pouco mais invasivo do que um plugin comum.
Adicione isso ao app.yml:
hooks:
after_code:
- exec:
cd: $home
cmd:
- git clone https://gitlab.com/DavidGriffith/frotz
- exec:
cd: $home/frotz
cmd:
- make dfrotz
- exec:
cd: $home/frotz
cmd:
- mkdir savegames
- exec:
cd: $home/frotz
cmd:
- mkdir stories
- exec:
cd: $home/frotz/stories
cmd:
- wget -O zork1.z3 https://eblong.com/infocom/gamefiles/zork1-r119-s880429.z3
- exec:
cd: $home/frotz/stories
cmd:
- wget --no-check-certificate http://www.douglasadams.com/creations/hhgg.z3
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/merefield/discourse-frotz
antes de suas outras entradas de plugin.
Agora vocĂȘ tambĂ©m precisa adicionar o plugin Discourse BBCode!!
Reconstrua com o habitual ./launcher rebuild app
Agora vĂĄ para as configuraçÔes do plugin e selecione o usuĂĄrio bot que vocĂȘ adicionou anteriormente:

HistĂłrias
VocĂȘ notarĂĄ que incluĂ algumas histĂłrias. VocĂȘ pode encontrar mais em https://ifdb.tads.org/.
Mas, cuidado com os limites de taxa aqui! Obter muitas histĂłrias do mesmo local pode causar um erro.
Observe também que as histórias não estão hospedadas em servidores protegidos por HTTPS (tut tut).
Se vocĂȘ insistir em carregar mais, adicione-as ao app.yml. VocĂȘ tambĂ©m pode adicionĂĄ-las manualmente no prompt de comando, mas saiba que elas serĂŁo apagadas na prĂłxima reconstrução completa.
Habilitar FrotzBot para mensagens privadas (caution advised)
Permite que os usuĂĄrios joguem em particular, mas o uso serĂĄ menos transparente. Se vocĂȘ tiver um servidor grande o suficiente, isso pode nĂŁo ser um problema para vocĂȘ. De qualquer forma, esteja ciente das implicaçÔes para a capacidade. Como alternativa, incentive os usuĂĄrios a jogar em uma Categoria designada.

padrĂŁo: DESATIVADO
Se (ele/ela) nĂŁo estiver habilitado lĂĄ, o usuĂĄrio receberĂĄ uma mensagem educada:
Restringir FrotzBot por Categoria
VocĂȘ pode restringir o bot a uma (lista de) Categoria para evitar encher outras ĂĄreas:
Atalhos de teclado!
Isso Ă© realmente importante para melhorar a experiĂȘncia de âjogoâ. E vocĂȘ realmente sĂł precisa lembrar de dois:
-
Shift-R para responder ao bot
-
Ctrl-Enter para enviar sua prĂłxima jogada
LimitaçÔes e consideraçÔes
Nem todos os formatos de histĂłria e jogos sĂŁo suportados ainda, nem Ă© provĂĄvel que sejam. Existem muitos jogos que nĂŁo funcionam devido Ă natureza de seus protocolos de chamada e resposta. Por causa da forma como interagimos postagem por postagem, temos que pedir ao Frotz para salvar o estado apĂłs cada movimento. Se uma etapa do jogo nĂŁo levar a um prompt no qual o sistema possa salvar (ignorando âpressione qualquer teclaâ ou prompts âMaisâ que devem ser tratados), a histĂłria nĂŁo funcionarĂĄ. Por exemplo, em âAct of Murderâ (Ăłtimo jogo!), a senhora na porta pergunta se vocĂȘ Ă© um policial. Infelizmente, isso Ă© um estado do jogo que nĂŁo pode ser salvo, falhando nesse requisito, e nĂŁo vejo como farĂamos isso funcionar.
NB: O modo de lista de e-mails Ă© um desastre com isso, entĂŁo certifique-se de que isso nĂŁo Ă© algo que vocĂȘ usa antes de tentar usar este plugin!
Ă, sem dĂșvida, um pouco desperdiçador de recursos do fĂłrum, pois requer pelo menos duas postagens para cada âjogadaâ. Obviamente, muitas vezes Ă© mais apropriado jogar esse tipo de jogo usando uma interface de chat, em vez de um fĂłrum, mas vocĂȘ pode argumentar que isso poderia ser usado para criar Walkthroughs? ![]()
Para uma solução menos invasiva, considere: Turning a topic into interactive fiction ;)
Feedback
Todo feedback Ă© bem-vindo!
Créditos
Este plugin explora David Griffith / frotz · GitLab, o Frotz Z-Interpreter, que Ă© clonado e âcompiladoâ pelo script de configuração.
Obrigado a @P16 por me permitir usar trechos de cĂłdigo de um chatbot de cĂłdigo fechado no qual trabalhamos juntos.












