If %InitOK = 1
  goto lostbucle

; ***********************************************
;   SISTEMA DE RECONEXION v0.2   Por Ishan
; ***********************************************

; La finalidad de este script es la de mantener el juego siempre 
;conectado al servidor

; Funcionalidades
; +Detecta eficazmente la perdida de conexion y actua en consecuencia
; +Es capaz de avisar al script de macro de la caida, para que este
; pare hasta que se haya reconectado
; +El numero de reintentos para conectar es configurable, asi como
;  la espera entre reintentos


;Tu clave. Sustituyela en vez de MiPassword.
; No cambies todo lo demas
;No quites los cuadrados!!! son muy importantes!
sub meteclave
   msg TuClave
return

;********************************************************
; Fin de la configuracion

; Esto no se si es necesario cambiarlo, pero sera mejor que lo verifiques
;a ver si tienen el mismo valor que en mi juego.
; Para tomar estos valores abre el EasyUO, pero dejalo quieto.

; Haz logout y quedate en la pantalla donde metes el login y pass
; Ahora vete al EasyUO, y mira el valor de la variable #CONTKIND
; Si no es igual a QMKC, cambia QMKC por el nuevo valor
set %metelogin         QMKC
; Ahora pasa a la pantalla de elegir server y haz lo mismo. Si no vale QWD
;sustituye el valor de abajo
set %eligeserver       QWD
; Ahora pasa a la pantalla de elegir jugador y haz lo mismo.
set %eligechar         MIJD
; Ahora lo que debes hacer es "forzar" un connection lost. Para eso corta la 
;conexion mientras juegas. Esto provocara un connection lost. Una vez salga 
; el cartel de connection lost, haz lo mismo que antes
set %conlost           AGDD
;Antes de volver a conectar, intenta hacer un login como siempre. Pero como no 
;esta conectado, te saldra otra ventanita diciendo que hay problemas, blablabla
; Pues cuando aparezca el cartelito repites lo de antes.
set %problemascom      AGDD



; **************** PROGRAMA PRINCIPAL *****************
; Ya no necesitas tocar nada mas
wait 9
msg $/ RECONECTOR         activo$

; Posicion del password
set %passx  473
set %passy  398
; Posicion del triangulo verde
set %nextx  618
set %nexty  455
; Posicion del boton OK
set %okx     318 
set %oky     311

lostbucle:
 if #contkind = %conlost
    goto reloginloop
 if #contkind = %metelogin
    goto reloginloop
 if #contkind = %problemascom
    goto reloginloop
  if #contkind = %eligeserver
    goto reloginloop
  if #contkind = %eligechar
    goto reloginloop
exit


reloginloop:
set *55 1
set %caidas %caidas + 1
set %loginout 0
;Esperamos a que la macro en paralelo pare de hacer cosas
wait 10s
set %Retries %reintentos
reconect:
For %ali 1 16
 {
  wait 1s
;  set %loginout %loginout + 1
;  if %loginout > 20
;     {
;        if %Musica = 1
;            playcd
;        pause
;        set *55 0
;        exit
;     }
  if #contkind = %conlost
   {
    msg $
    wait 3s
    set %loginout 0
   }

  if #contkind = %metelogin
   {
     if retries > 0
       Set %retries %retries - 1 
     if %retries = 0
       {
        if %Musica = 1
            playcd
        pause
        if #contkind <> %metelogin
           {
            set *55 0
            exit
           }
       }
     wait 1s
     click %passx %passy
     wait 1s
     gosub meteclave
     wait 2s
     click %nextx %nexty
     wait 2s
     set %loginout 0
   }
  if #contkind = %eligeserver
    {
     click %nextx %nexty        
     wait 3s
     set %loginout 0
    }

  if #contkind = %eligechar
    {
     click %nextx %nexty        
     wait 8s
     click 144 148 r
     wait 1s
     ;Sacamos el cartel de status. Se necesita para otras macros
    ;El jodio puetero no sale bien con don't move cursor
      click 320 196 g
      wait 1s
      click 764 12 p
      wait 15
      click 636 5
      wait 15
      if #CONTKIND = GTQD
          contpos 764 12
     set *55 0
     exit
    }

  if #contkind = problemascon
   {
     msg $
     wait %retrywait
     set %loginout 0
     goto reconect
   }
}
;fin del bucle for
;si pasan 50 segundos y no encontramos ningun menu de los anteriores, debe ser
; que seguimos en el juego
set *55 0
return


