Bash RPG
Publicado por Xerxes (última atualização em 09/04/2017)
[ Hits: 3.964 ]
Homepage: -
Jogo de RPG muito simples.
#!/bin/bash # # # Simples RPG em bash v1.0 # # Criado em alguma horas no dia 27/2/2017 # # por xerxeslins (xerxeslins@gmail.com) # www.vivaolinux.com.br/~xerxeslins # # GPL # ########################################### NIVEL=1 EXP=0 NEXT=10 DUNGEON=1 POTION=1 KILL=0 COMBATE=0 ESCADA=0 SAUDE_ID=0 SAUDE=("saudável" "com arranhões" "com cortes" "com cortes profundos e ematomas" "mal consegue andar") function _comandos () { echo "Comandos:" echo "(a)tacar (b)eber (c)omandos (d)escer (e)xplorar (f)ugir (p)ersonagem (s)air" _menu } function _personagem () { echo "$NOME [${SAUDE[SAUDE_ID]}] nível $NIVEL, experiência $EXP/$NEXT, dungeon $DUNGEON, poções $POTION, matou $KILL." _menu } function _sair () { echo "$NOME se perdeu na dungeon e nunca mais retornou..." exit 0 } function _dado { DT=$(( ( RANDOM % 6) + 1 )) } function _testa_morte_personagem () { if [ $SAUDE_ID -gt 4 ] then echo "$NOME morreu!!! R.I.P. Nível: $NIVEL Dungeon: $DUNGEON Poções: $POTION Matou: $KILL" exit 0 fi } function _monstro_ataca () { _dado if [ $DT -lt 5 ] then echo "$NOME se desviou do ataque do monstro!" else echo "$NOME sofreu o ataque do monstro!" SAUDE_ID=$(( $SAUDE_ID + 1 )) _testa_morte_personagem fi _menu } function _testa_evolucao () { if [ $EXP -ge $NEXT ] then NIVEL=$(( $NIVEL + 1 )) NEXT=$(( $NEXT + (( 1 + $NIVEL ) * 5) )) echo "$NOME se sente mais forte!" fi } function _personagem_acerta { echo "$NOME atingiu o monstro!" _dado DIFICULDADE=$(( 3 + $NIVEL - $DUNGEON )) if [ $DT -le $DIFICULDADE ] || [ $DT -eq 1 ] then echo "$NOME matou o monstro!" COMBATE=0 KILL=$(( $KILL + 1 )) EXP=$(( $EXP + ( RANDOM % 4) + $DUNGEON )) _testa_evolucao else _monstro_ataca fi } function _atacar () { if [ $COMBATE -eq 0 ] then echo "$NOME desfere um golpe com a espada, cortando o ar!" else _dado if [ $DT -lt 5 ] then _personagem_acerta else echo "$NOME errou o ataque!" _monstro_ataca fi fi _menu } function _beber () { if [ $POTION -gt 0 ] then echo "$NOME bebe uma poção e se sente muito bem!" POTION=$(( $POTION - 1 )) SAUDE_ID=0 else echo "$NOME procura uma poção na mochila, mas não encontra." fi _menu } function _explorar () { if [ $COMBATE -eq 0 ] then _dado if [ $DT -gt 4 ] then echo "$NOME encontrou um monstro!" COMBATE=1 elif [ $DT -lt 2 ] then if [ $ESCADA -eq 0 ] then echo "$NOME encontrou escadas que levam para o próximo nível da dungeon." ESCADA=1 else echo "$NOME encontrou uma poção e guardou na mochila." POTION=$(( $POTION + 1 )) fi else echo "$NOME explora o interior da dungeon..." fi else echo "$NOME está no meio do combate e não pode explorar agora!" fi _menu } function _descer () { if [ $ESCADA -eq 1 ] then echo "$NOME desceu as escadas." DUNGEON=$(( $DUNGEON + 1 )) ESCADA=0 else echo "$NOME olha em volta, mas não vê por onde descer." fi _menu } function _fugir () { if [ $COMBATE -eq 1 ] then _dado if [ $DT -lt 3 ] then echo "$NOME fugiu do monstro como uma garotinha assustada!" COMBATE=0 else echo "$NOME procurou uma oportunidade para fugir, mas não encontrou!" _monstro_ataca fi else echo "$NOME não tem do que fugir no momento." fi _menu } function _menu () { read -p "> " OPT #Se quiser idle de 5 segundos descomente o trecho abaixo e comente o read acima #read -t 5 -p "> " OPT #if [ -z "$OPT" ] # then # if [ $COMBATE -eq 1 ] # then # OPT="a" # else # OPT="e" # fi # echo "" #fi case $OPT in c|comandos) _comandos;; p|personagem) _personagem;; s|sair) _sair;; a|ataque|atacar) _atacar;; b|beber) _beber;; e|explorar) _explorar;; d|descer) _descer;; f|fugir) _fugir;; *) echo "$NOME não entendeu o seu comando. (digite c para ver os comandos)"; _menu;; esac } function _start () { echo "Qual o nome do seu personagem?" read -p "> " NOME echo "(digite c para ver os comandos) $NOME entrou na dungeon para eliminar os monstros." _menu } _start
Criar arquivo.toc para gravar CD com o cdrdao
Acessando o localhost pelo quanta
usando o jSMS direto do pendrive (v2.0)
Teste do /admin/scripts Alteração
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta