goto msgbucle
; ***********************************************
;   SISTEMA DE MENSAJERIA PARA ULTIMA ONLINE v1.1 Por Ishan
; ***********************************************

; Mediante este script cualquier jugador puede  dejarte un mensaje
; de forma local grabado para que cuando regreses puedas leerlo. 
; De esta forma aunque no estes existe un metodo para que alguien 
; te pueda decir algo. Por supuesto es mejor cualkier mensajero :D
; La version de EUO que he usado es la version para el cliente 2.00.0

; Funcionalidades
;   + Permite almacenar un total de 30 mensajes. 
;       Su longitud es variable, ronda los 25-45  caracteres por mensaje. 
;       Depende del nombre del que te escribe
;   + Indica tambien la hora en la que lo dejaron
;   + Ignora a los molestos NPC's. Aunque te hablen, tu les ignoraras
;   + Facil Configuracion. En un minuto ya lo tienes listo pa usar

; Como funciona:
;   Cuando algun jugador salude, preguntara con quien esta hablando
;   Si esta hablando contigo, le dira como te puede dejar un mensaje
;  El que escribe el mensaje pone una cabecera y luego el mensaje, 
; en ese momento tu contestas si lo has recibido

; ************** PROGRAMA PRINCIPAL *************
; *********  NO NECESITAS TOCAR NADA  *******

msgbucle:
 set %ttusaludo #scnt - %ultimosaludo

for %tm 1 5
 {
set %contestado 0
  scanjournal %tm
; Nos ignoramos a nosotros mismos
if %NombreCompleto in #journal
  goto pasalinea

; Ignoramos a los NPC's
 if #jcolor = 946 
  goto pasalinea

  if %msg_start in #journal
        gosub addmsg

  if N/A in #journal
      exit

  gosub tunombre %Minombre
  gosub tunombre %apodo1
  gosub tunombre %apodo2

  gosub contesSaludo %saludo1
  gosub contesSaludo %saludo2
  gosub contesSaludo %saludo3



  if NOTE_TO_SELF:_LEER = #journal
      gosub leermsg

  if NOTE_TO_SELF:_BORRAR = #journal
      gosub borrarmsg

  if %contestado = 1
      {
        msg $/ N/A$
        exit
      }
  pasalinea:
 }
msgfin:
exit

sub borrarmsg
 set %contestado 1
 msg $/ Mensajes borrados$
 Call Array Reset
return


sub leermsg
 set %contestado 1
 If %internalindex = 1
     {
       msg $/ No tiene ningun mensaje :($
       return
     }
set %last %internalindex - 1
  msg $/ Tiene %last mensaje(s):$
  for %i 1 %last
    {
       Call ARRAY GET %i
       msg $/ %i ) HORA: %1 $
       msg $/ %2 $
       wait 1s
    }
return


sub addmsg
 if %contestado = 0
  { 
   set %contestado 1
   If %InternalIndex > %MaxIndex
      {       
       msg $Lo siento, no tengo tanta memoria! :)$ 
       return
      }

  Call Array Push #time #journal

  msg $Tres, me llevo uno. Creo que lo anote bien :D!$ 
  if %avisomsg <> NO
     {
      if %avisomsg = %usados
      playcd
     }
   }
  }
return

sub contesSaludo
 if %contestado = 0
  {
; Pasaron al menos ocho segundos desde el ultimo saludo
    if %ttusaludo > 9
      { 
       if %1  in #journal
          { 
            set %ultimosaludo #SCNT
            set %contestado 1
           ; IMPORTANTE, no debemos usar saludos que leamos
            msg $eh!?, di mi nombre si hablas conmigo$
          }
      }
  }
return

sub tunombre 
 if %contestado = 0
  { 
  if %1 in #journal
     {
     set %contestado 1
     msg $Ahora mismo no estoy aqui$
     if %InternalIndex <= %MaxIndex
       {
        wait 10
        msg $Si quieres dejarme un mensaje, pon:$
        wait 10
        msg $ %msg_start seguido de tu mensaje$
        wait 15
        msg $No necesitas dejar tu nombre, ya aparece solo$
        }
     }
  }
return
