; ====================================================================================================== ; '|| ||` '||` || /.\ '||` ; || || || || '' // \\ || '' ; || || || ''||'' || '||),,(|, '''|. //...\\ || || '''|. `||''|, '''/ '''|. ; || || || || || || || || .|''|| // \\ || || .|''|| || || // .|''|| ; `|...|' .||. `|..' .||. .|| ||. `|..||. .// \\. .||. .||. `|..||. .|| ||. /... `|..||. ; ====================================================================================================== ; ; Script Name: Subir Focus ; ____ ; / _\ \ ; / / _\ \_ ; / / \ / ; L/ \ / ; ____ ~ _ ; \ _\ l \ ; / / \ \ ; / / \ \ ; \/_____ /l____\/ ; \_____> < ____/ ; \l ; ; Author: Sthil ; Version: 1.3 ; Client Tested with: 2.0.3 ; EUO version tested with: 1.5 Version 142 ; Shard: Ultima Alianza ¡Hasta la muerte! ; Public Release: 30/04/2018 ; Revision Date: 16/06/2020 ; Purpose: Entrena focus/concentración gastando y recuperando puntos de stamina. ; ================================================================================== ; INSTRUCCIONES: ; ; 1- Configurar el nivel de stamina en %nivel_stamina ; 2- Cargarse de peso hasta acercarse al máximo (añadir alimentos, mineral, etc). ; 3- Pulsar play y seguir las instrucciones para fijar las coordenadas de movimiento :) ; ; ============================================================== ; ESQUEMA: ; ; "Punto A" ----camina->-desde--A->-hasta->-B--> "Punto B" ; "Punto B" ----camina->-desde--B->-hasta->-A--> "Punto A" ; ; ============================================================== ; ________________________________ ; ; /////////////////////////////// ; ******** CONFIGURACIÓN ******** ; /////////////////////////////// ; ________________________________ ; ; Hasta donde bajar la estamina set %nivel_stamina 90 ; Este valor lo puedes ajustar a tu gusto. ; Cada cuántos segundos va a comprobar si tiene hambre. set %tiempo_alimentacion 360 ; En segundos = 5 minutos. ; _______________________________________________ ; ; ////////////////////////////////////////////// ; ************* FIN CONFIGURACIÓN ************* ; ////////////////////////////////////////////// ; _______________________________________________ ; ; NO TOCAR ^^ ; set %comida RGG_NRD_QSD_ZBG_WLI_QRD_END_FUD_YLI_WLI_HGI +_KGI_EGI_QLI_KLI_MLI_KRD_HQD_AQD_MQE_VQE_TQE_JQE_IQE +_GQE_SPE_ZPE_OQE_BDF_KPE_RQE_YSD_SQD_YWI_AXI_PQD_QQD set %tiempo_actual #SCNT ; Reloj set %proxima_vez #SCNT ; Trigger chooseskill Focu real set %skillinifocus #skill gosub checkConfig gosub setupLocations gosub choose_pace run ; Lo primero, cambiar el modo de moverse a "correr". ;======================================================== ; ; ******************* LOOP PRINCIPAL ******************* ; ;======================================================== Mainloop: ; Comer cada cierto tiempo si hay hambre set %tiempo_actual #SCNT if ( %proxima_vez <= %tiempo_actual ) { gosub comprobar_comida } ; GM skill Focus chooseskill Focu real set %skillfocusahora #SKILL if ( #SKILL >= 1000 ) ; Hemos terminado... { gosub choose_pace walk ; Cambiamos el modo de moverse a "andar". halt } ; Título con skill. setuotitle || Skill Focus | Ini: %skillinifocus | Actual: %skillfocusahora ; Moverse y controlar la estamina. if #CHARPOSX = %X_2 && #CHARPOSY = %Y_2 || #CHARPOSX <> %X_2 || #CHARPOSY <> %Y_2 { if #STAMINA = #MAXSTAM { while #STAMINA >= %nivel_stamina { gosub pathfind %X_1 %Y_1 gosub pathfind %X_2 %Y_2 } } } if #CHARPOSX = %X_1 && #CHARPOSY = %Y_1 || #CHARPOSX <> %X_1 || #CHARPOSY <> %Y_1 { if #STAMINA = #MAXSTAM { while #STAMINA >= %nivel_stamina { gosub pathfind %X_2 %Y_2 gosub pathfind %X_1 %Y_1 } } } goto Mainloop ;======================================================== ; ; ***************** FIN LOOP PRINCIPAL ***************** ; ;======================================================== ;=========================================== ; Comprobar nivel de stamina y configuración ;=========================================== sub checkConfig if ( %nivel_stamina > #MAXSTAM ) { set #SYSMSGCOL 38 event sysmessage ERROR: NIVEL DE STAMINA INCORRECTO :( wait 40 display yesno PARECE QUE EL NIVEL DE STAMINA CONFIGURADO $ +EN LA MACRO ES SUPERIOR A LA STAMINA DEL PJ. $$ +CONFIGURACIÓN MACRO: %nivel_stamina $ +PERSONAJE: #MAXSTAM $$ +OK: ¿QUIERES AUTO-CONFIGURARLA CON UN NIVEL BÁSICO? if #DISPRES = yes { set %nivel_stamina abs ( #MAXSTAM - 10 ) if ( %nivel_stamina < 10 ) { set #SYSMSGCOL 38 event sysmessage ERROR: TIENES MUY POCA DESTREZA :( event sysmessage ENTRENA TU DESTREZA AL MENOS HASTA 20 goto _FIN } set #SYSMSGCOL 88 event sysmessage OK: STAMINA CONFIGURADA: %nivel_stamina return } else { _FIN: set #SYSMSGCOL 38 event sysmessage OK: Parando macro. wait 20 halt } } return ;===================================== ; Configurar coordenadas de movimiento ;===================================== sub setupLocations ; Las cordenadas del punto A set #SYSMSGCOL 73 event sysmessage MUEVE TU PJ AL PUNTO [ A ] Y PULSA ESCAPE display MUEVE TU PJ AL PUNTO [ A ] Y PULSA ESCAPE _loopA: onhotkey ESC { set %X_1 #CHARPOSX ; La puedes ver en el EasyUO -> Character Info -> #CHARPOSX set %Y_1 #CHARPOSY ; La puedes ver en el EasyUO -> Character Info -> #CHARPOSY set #SYSMSGCOL 88 event sysmessage A: %X_1 %Y_1 wait 20 goto _B } wait 1 goto _loopA _B: ; Las cordenadas del punto B set #SYSMSGCOL 73 event sysmessage MUEVE TU PJ AL PUNTO [ B ] Y PULSA ESCAPE display MUEVE TU PJ AL PUNTO [ B ] Y PULSA ESCAPE _loopB: onhotkey ESC { set %X_2 #CHARPOSX ; La puedes ver en el EasyUO -> Character Info -> #CHARPOSX set %Y_2 #CHARPOSY ; La puedes ver en el EasyUO -> Character Info -> #CHARPOSY set #SYSMSGCOL 88 event sysmessage B: %X_2 %Y_2 wait 20 return } wait 1 goto _loopB return ;====================================== ; Andar y esperar a la posición deseada ;====================================== sub pathfind set %_X %1 set %_Y %2 event pathfind %_X %_Y repeat { wait 5 } until ( #CHARPOSX = %_X && #CHARPOSY = %_Y ) return ;===================================================== ; Rutina para, en caso de hambre, comer hasta saciarse ;===================================================== ; v2.1 sub comprobar_comida { hambriento: set %jrnl #jindex ; Marcamos un índice de las líneas del diario. event macro 3 0 .hungry wait 20 while #true { if #jindex > %jrnl ; Si aparece una nueva línea. { set %jrnl %jrnl + 1 ; Seleccionamos ese numero de línea. scanjournal %jrnl ; La leemos... if Dentro_de_1_minuto in #journal { wait 120s ; Save del server... } if Estas_no_le_afecta_el_hambre in #journal || Estas_tan_lleno_que_no_puedes in #journal || Estas_totalmente_saciado in #journal { set %proxima_vez %tiempo_actual + %tiempo_alimentacion return } else { if Estas_lleno in #journal || Estas_contento in #journal || Estas_en_inanicion in #journal || Estas_hambriento in #journal || Sientes_mucho in #journal || Estas_con_hambre in #journal || Estas_parcialmente in #journal || Estas_bien_lleno in #journal || Te_sientes_casi_lleno in #journal { finditem %comida C_ , #backpackid if #findcnt > 0 { set #lobjectid #findid event macro 17 wait 20 goto hambriento } else { event exmsg #charid 3 48 COMPRA COMIDA!! wait 40 set %proxima_vez %tiempo_actual + %tiempo_alimentacion } } else ; Mensaje extraño, repetimos... { goto hambriento } } } return } ; FIN While } return ;-@ ============================== @-; ;-@ ############################## @-; ;-@ SUBS públicos del Foro EasyUO @-; ;-@ ############################## @-; ;-@ ============================== @-; ; ;================================== ; Script Name: Peragrins' Pace choosing sub ; Author: Peragrin ; Version: v1.1 ; Client Tested with: 4.0.10b ; EUO version tested with: 1.42.00A5 ; Shard OSI / FS: OSI ; Revision Date: 05/06/05 ; Public Release: 22/09/04 ; Purpose: callable subroutine to pick whether always run is on or off ; Revisions: v1.1 now uses Namespace and better journal scanning ;============================================ sub choose_pace ;%0 - 1 ;%1 - WALK/RUN if %0 <> 1 || %1 notin WALK_RUN { display OK Incorrect arguments passed to ChoosePace subroutine, script halted. halt } namespace push namespace LOCAL ChoosePace set !desired_pace %1 _TOGGLE_PACE: set !jindex #jindex + 1 event macro 32 0 _CHOOSE_PACE_JOURNAL_SCAN: gosub ScanJournal ALWAYS_RUN !jindex 1 if #result { if ON in #journal && !desired_pace = WALK goto _toggle_pace if OFF in #journal && !desired_pace = RUN goto _toggle_pace } if ! #result { set !error !error + 1 if !error > 5 { set !error 0 goto _toggle_pace } goto _choose_pace_journal_scan } return ;================================== ; Script Name: Peragrins' journal scanning sub ; Author: Peragrin ; Version: v1.0 ; Client Tested with: 4.0.10b ; EUO version tested with: 1.42.00A5 ; Shard OSI / FS: OSI ; Revision Date: 05/06/05 ; Public Release: 22/09/04 ; Purpose: callable subroutine to scan for phrases passed to the sub ;============================================ sub scanJournal ;%0 - 2 ;%1 - phrase to scan for ;%2 - #jindex to scan from ;%3 - time to scan for namespace push namespace local ScanJournal for !timeout 1 %3 { for !line %2 #jindex { scanjournal !line wait 1 if %1 in #journal { namespace pop return #true } } wait 1s } namespace pop return #false ;=======================================