Per tutti coloro che utilizzano Boscags7 come libreria
Ho trovato un bug in Std_ScanJournal. Considerando l'altissimo numero di procedure che fanno uso del journal scanning (incluse le solite funzioni di check per i save), questo bug può crearvi notevolissimi problemi. Chiedo scusa per la svista.
Entrando nel merito... l'istruzione:
	va ovviamente sostituita con:
	La sub completa diventa, quindi (includo anche Std_ResetJournal, per chi volesse usarle senza Boscags7 - nessun bisogno di "convenzione safecall" in questo caso):
	
							
						
					Ho trovato un bug in Std_ScanJournal. Considerando l'altissimo numero di procedure che fanno uso del journal scanning (incluse le solite funzioni di check per i save), questo bug può crearvi notevolissimi problemi. Chiedo scusa per la svista.
Entrando nel merito... l'istruzione:
codice:
	
	if !start >= #jindex
codice:
	
	if !start <= #jindex
codice:
	
	;===========================================================================
;* @name     Std_ResetJournal
;* @author   AG
;* @purpose  Cancella il contenuto di un'istanza del journal.
;*           In termini pratici, determina l'istante di partenza da cui cominciare a monitorare il journal.
;* @params   %1 opt  Nome dell'istanza del journal da cancellare. Ciascuna istanza è indipendente dalle altre.
;* @example  Vedere la documentazione di Std_ScanJournal per un esempio di come usare congiuntamente le due sub.
sub Std_ResetJournal ; %instanceName
    namespace push
    namespace local Std_ScanJournal_Persistent
    if %0 < 1 || %1 = !null
        set !instance default
    else
        set !instance %1
    set !instances_ . !instance ( #jindex + 1 )
    namespace pop
return
sub Std_ClearJournal ; sinonimo
    if %0 < 1
       set %1 !null
    gosub Std_ResetJournal %1
return
;===========================================================================
;* @name     Std_ScanJournal
;* @author   AG
;* @purpose  Cerca un'insieme di stringhe in un'istanza del journal.
;* @params   %1      req  Nome dell'istanza del journal da cancellare. Ciascuna istanza è indipendente dalle altre.
;*           %2      req  Stringa da ricercare all'interno dell'istanza.
;*           %3...%n opt  Stringhe addizionali da ricercare all'interno dell'istanza.
;* @returns  La prima stringa che viene trovata nell'istanza, oppure #false se non ne viene trovata nessuna.
;*
;* @example  {
;*               gosub safecall Std_ResetJournal operation1
;*               <esegui l'operazione>
;*               gosub safecall Std_ScanJournal operation1 the_spell_fizzles
;*               if #result = the_spell_fizzles
;*                   <nel journal è comparsa la stringa the_spell_fizzles durante l'esecuzione dell'operazione>
;*           }
sub Std_ScanJournal ; %instanceName %string1 %string2 %string...
    namespace push
    namespace local Std_ScanJournal_Persistent
    if %0 < 1 || %1 = !null
        set !instance default
    else
        set !instance %1
    set !start !instances_ . !instance
    if !start <= #jindex
    {
        for !i !start #jindex
        {
            scanjournal !i
            for !j 2 %0
            {
                set !string % . !j
                if !string in #journal
                {
                   set #result !string
                   namespace pop
                   return #result
                }
            }
        }
    }
    namespace pop
return #false




 
							
						

 : algander#6292
: algander#6292


 , pazientate
 , pazientate
Commenta