Gracias por los consejos, la verdad es que me han sido de bastante ayuda.
¡¡¡Por fín lo he conseguido!!!
Después de bastante tiempo pensando, me dí cuenta que me había complicado la vida, y lo ví todo más sencillo. Conseguí hacer que funcionara, de forma más facil y sencilla.
Como contestación a tu pregunta, los timer los utilizo para animar un poco los textos (que aparezcan al segundo y cosas así) y para hacer visible e invisible el command1
Por si tienes curiosidad, te dejo el código mas abajo que funciona al 100%:
(Todavía no tengo muy pillado lo de dar formato al texto, así que te costará un poco leerlo

) , como puedes ver, he quitado el bucle que me daba problemas y con esto consigo una función muy parecida:
Option Explicit
Dim i As Integer
Dim num1 As Integer
Dim num2 As Integer
Dim a
Dim vm
Dim vt
Dim dr
Dim dp
Dim b
Private Sub Command1_Click()
i = i + 1
If i = 1 Then
Randomize
num1 = Int((Rnd * 20) + 1)
Text1.Text = "Has sacado: " & num1
Command1.Visible = False
Randomize
num2 = Int((Rnd * 20) + 1)
Text1.Text = Text1.Text + vbCrLf + vbCrLf + "Tu enemigo ha sacado: " & num2
Command1.Visible = False
If num1 > num2 Then
Text1.Text = Text1.Text + vbCrLf + vbCrLf + " EMPIEZAS ATACANDO: ¡PREPARATE!"
Timer1.Enabled = True
End If If num2 > num1 Then
Text1.Text = Text1.Text + vbCrLf + vbCrLf + vbCrLf + " TU ENEMIGO EMPIEZA ATACANDO: ¡PREPARATE!"
Timer1.Enabled = True
End If
End If If i >= 2 And num1 > num2 Then
Randomize
dp = Int((Rnd * 20) + 1)
Text1.Text = "Tu ataque quita: " & dp & " de daño."
vt = vt - dp
Text2.Text = "Vida:" & vt
Command1.Visible = False
b = 0
Timer2.Enabled = True
End If If i >= 2 And num2 > num1 Then
Randomize
dr = Int((Rnd * 20) + 1)
Text1.Text = "Tu enemigo te quita: " & dr & " de daño."
vm = vm - dr
Text3.Text = "Vida:" & vm
b = 0
Command1.Visible = False
Timer2.Enabled = True
End If
End Sub Private Sub Form_Load()
vm = 150
vt = 150
Text2.Text = "Vida:" & vt
Text3.Text = "Vida:" & vm
End Sub
Private Sub Text2_Change()
If vt <= 0 Then
Text2.Enabled = False
Text3.Enabled = False
Command1.Visible = False
Command1.Enabled = False
MsgBox "HAS APLASTADO A TU ENEMIGO. PUEDES CONTINUAR TU CAMINO..." + vbCrLf + vbCrLf + " Código: PACPRO", vbOKOnly, "Fight Dragons of War"
Form5.Show
Unload Me
End If
End Sub
Private Sub Text3_Change() If vm <= 0 Then
Text3.Enabled = False
Text2.Enabled = False
Command1.Visible = False
Command1.Enabled = False
MsgBox "¡¡HAS SIDO DERROTADO!!" + vbCrLf + vbCrLf + "Ya no hay esperanza...", vbOKOnly, "Fight Dragons of War"
Form1.Show
Unload Me
End If
End Sub
Private Sub Timer1_Timer()
a = a + 1
If a = 3 Then
Text1.Text = vbCrLf + vbCrLf + vbCrLf + " ¡¡EMPIEZA EL COMBATE!!"
End If
If a = 5 And num2 > num1 Then
Text1.Text = "Tira los dados para empezar la pelea:"
Command1.Visible = True
Timer1.Enabled = False
End If
If a = 5 And num1 > num2 Then
Command1.Visible = True
Text1.Text = "Tira los Dados:"
Timer1.Enabled = False
End If
End Sub Private Sub Timer2_Timer()
b = b + 1
If i >= 2 And num1 > num2 And b = 1 Then
Randomize
dr = Int((Rnd * 20) + 1)
Text1.Text = Text1.Text + vbCrLf + vbCrLf + "Tu enemigo te quita:" & dr & " de vida."
vm = vm - dr
Text3.Text = "Vida:" & vm
Command1.Visible = True
End If If i >= 2 And num1 < num2 And b = 1 Then
dp = Int((Rnd * 20) + 1)
Text1.Text = Text1.Text + vbCrLf + vbCrLf + "Tu ataque quita:" & dr & " de vida."
vt = vt - dp
Text2.Text = "Vida:" & vt
Command1.Visible = True
End If
End Sub
PD: tenías razón, me sobraban algunas variables.
Gracias por la ayuda.