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.








