; ====================================================================================================== ; '|| ||` '||` || /.\ '||` ; || || || || '' // \\ || '' ; || || || ''||'' || '||),,(|, '''|. //...\\ || || '''|. `||''|, '''/ '''|. ; || || || || || || || || .|''|| // \\ || || .|''|| || || // .|''|| ; `|...|' .||. `|..' .||. .|| ||. `|..||. .// \\. .||. .||. `|..||. .|| ||. /... `|..||. ; ===================================================================================================== ; ; Script Name: Equipar Crafter ; Author: Sthil Lauda ; Version: 1.2 ; Client Tested with: 2.0.3 ; EUO version tested with: EasyUO 1.5 Version 243 ; Shard: Ultima Alianza (¡Hasta la muerte!) ; Revision Date: 19/04/2020 ; Public Release: 15/04/2020 ; Global Variables Used: Ninguna. ; Purpose: Equipar el personaje logeado usando distintos conjuntos de ropa y objetos. ; ; EJEMPLOS: ; - Alquimista: Joyas de suerte, ballesta de oro, las piezas de una armadura solaris sin guantes, y añadiendo guantes de alquiista. ; - Bowcraft: Joyas de suerte, las piezas de una armadura solaris sin casco, y añadiendo una bandana del arquero. ; - Artesano: Anillo y pendientes de la suerte, ballesta de oro, las piezas de una armadura solaris, brazalete +10 de Magery, capa de mago +5. ; - Herrero: Joyas de suerte, escudo de oro, las piezas de una armadura solaris, martillo +15. ; - Cristalero: Joyas de suerte, escudo de oro, las piezas de una armadura solaris, piqueta goblin. ;________________________________ ; ; /////////////////////////////// ; ******** CONFIGURACIÓN ******** ; /////////////////////////////// ;________________________________ ; set %tecla_vestir F9 ; Tecla para equipar el personaje. set %tecla_desvestir F10 ; Tecla para desequipar el personaje. set %cofre_con_bolsa ZPFXMND ; Cofre con la bolsa que contiene la ropa y objetos. set %bolsa_equipo RMAJOMD ; La bolsa con la ropa y los objetos. ; ; *** LISTAS DE OBJETOS PARA LOS DISTINTOS CONJUNTOS DE CRAFTER *** ; set %objetos_suerte YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_WCOCGND_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD set %objetos_alquimista YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_WCOCGND_RMALPMD_SBALPMD_ULJKPMD_LZGKPMD_XLFKPMD_SXIGKQD set %objetos_artesano YEHGLPD_URIWWOD_MZRBPOD_RCLNAOD_WCOCGND_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_DJCYAND_XPYJSND set %objetos_bowcraft YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_WCOCGND_RMALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_LJGGMOD_DJCYAND set %objetos_carpintero YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_WCOCGND_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_GCTXGPD set %objetos_cocinero YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_WCOCGND_RMALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_IBBJRMD_WBAERMD set %objetos_cristalero YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_VJSVZND_DJCYAND_XIVBVPD set %objetos_herrero YEHGLPD_URIWWOD_MZRBPOD_NWVLEOD_RCLNAOD_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_XIVBVPD_NMVBCPD set %objetos_sastre YEHGLPD_URIWWOD_MZRBPOD_RCLNAOD_WCOCGND_RMALPMD_SBALPMD_ULJKPMD_SUHKPMD_LZGKPMD_XLFKPMD_LNSZRND set %objetos_escriba YLUAOOD_JLTXOOD_TUTEAPD ;________________________________________________ ; ; ////////////////////////////////////////////// ; ************* FIN CONFIGURACIÓN ************* ; ////////////////////////////////////////////// ;________________________________________________ ; set #SYSMSGCOL 1187 event sysmessage ==================== wait 20 set #SYSMSGCOL 1165 event sysmessage Equipar Crafter v1.0 wait 20 set #SYSMSGCOL 1187 event sysmessage ==================== wait 20 set #menubutton n/a ; NO TOCAR resetMacro: set %pj #CHARID gosub abrirCajones gosub showMenuCrafter ;======================================================== ; ; ******************* LOOP PRINCIPAL ******************** ; ;======================================================== menuLoop: if %pj <> #CHARID && #CLILOGGED = 1 ; Hemos cambiado de personaje... { goto resetMacro } gosub menuControl gosub bloop wait 1 goto menuLoop ;======================================================== ; ; ***************** FIN LOOP PRINCIPAL ***************** ; ;======================================================== sub abrirCajones finditem %cofre_con_bolsa G_3 if #FINDCNT > 0 { set #LOBJECTID %cofre_con_bolsa event macro 17 gosub wait_for GUMP %cofre_con_bolsa 40 } finditem %bolsa_equipo C_ , %cofre_con_bolsa if #FINDCNT > 0 { set #LOBJECTID %bolsa_equipo event macro 17 gosub wait_for GUMP %bolsa_equipo 40 } return sub bloop bloop: if #menubutton <> n/a { gosub #menubutton set #menubutton n/a } return sub vestir if %num_checks = 0 { set #SYSMSGCOL 18 event sysmessage SELECCIONA UNA CASILLA! ¬¬ wait 20 return } _vestir: finditem %ids_equipo C_ , %bolsa_equipo if #FINDCNT > 0 { exevent drag #FINDID #FINDSTACK wait 7 exevent droppd gosub wait_for ITEM #FINDID C_ , #CHARID 40 goto _vestir } _vestirBackpack: finditem %ids_equipo C_ , #BACKPACKID if #FINDCNT > 0 { exevent drag #FINDID #FINDSTACK wait 10 exevent droppd gosub wait_for ITEM #FINDID C_ , #CHARID 40 goto _vestirBackpack } set #SYSMSGCOL 1165 event sysmessage ******** EQUIPADO ******** wait 20 return sub desvestir if %num_checks = 0 { set #SYSMSGCOL 18 event sysmessage SELECCIONA UNA CASILLA! ¬¬ wait 20 return } _desvestir: finditem %ids_equipo C_ , #CHARID if #FINDCNT > 0 { exevent drag #FINDID #FINDSTACK wait 10 exevent dropc %bolsa_equipo gosub wait_for ITEM #FINDID C_ , %bolsa_equipo 40 goto _desvestir } _desvestirBackpack: finditem %ids_equipo C_ , #BACKPACKID if #FINDCNT > 0 { exevent drag #FINDID #FINDSTACK wait 10 exevent dropc %bolsa_equipo gosub wait_for ITEM #FINDID C_ , %bolsa_equipo 40 goto _desvestirBackpack } set #SYSMSGCOL 88 event sysmessage ******* DESEQUIPADO ******* wait 20 return ;--------- EasyUO Menu Designer Code Begin --------- sub showMenuCrafter menu Clear menu Window Title CRAFTER v1.0 menu Window Color None menu Window Size 257 273 menu Font Transparent #true menu Font Align Right menu Shape EUOShape2 -40 0 297 245 3 7 1 Black 7 None menu Shape EUOShape1 4 4 249 265 4 7 2 Lime 7 Background menu Font Name MS Sans Serif menu Font Size 10 menu Font Style b menu Font Color Aqua menu Font Align Left menu Font BGColor None menu Text EUOLabel1 64 24 EQUIPAR CRAFTER menu Font Size 8 menu Font Color Lime menu Font BGColor AppWorkSpace menu Text EUOLabel2 40 50 100% Suerte menu Font Color Yellow menu Text EUOLabel3 40 70 Alquimista menu Text EUOLabel4 40 190 Escriba menu Text EUOLabel5 40 210 Herrero menu Text EUOLabel6 40 150 Cocinero menu Text EUOLabel7 40 90 Artesano menu Text EUOLabel8 40 130 Carpintero menu Text EUOLabel9 40 170 Cristalero menu Text EUOLabel10 40 110 Bowcrafter menu Text EUOLabel11 40 230 Sastre menu Font Color Lime menu Font BGColor Highlight menu Button vestir 140 64 93 61 EQUIPAR menu Font Color Yellow menu Font BGColor Red menu Button desvestir 140 132 93 61 DESEQUIPAR menu Font Style menu Font Color WindowText menu Font BGColor CaptionText menu Check EUO100suerte 20 48 17 17 #false EUOCheckBox1 menu Check EUOalquimista 20 68 17 17 #false EUOCheckBox1 menu Check EUOCheckBox3 20 88 17 17 #false EUOCheckBox1 menu Check EUOCheckBox4 20 108 17 17 #false EUOCheckBox1 menu Check EUOCheckBox5 20 128 17 17 #false EUOCheckBox1 menu Check EUOCheckBox6 20 148 17 17 #false EUOCheckBox1 menu Check EUOCheckBox7 20 168 17 17 #false EUOCheckBox1 menu Check EUOCheckBox8 20 188 17 17 #false EUOCheckBox1 menu Check EUOCheckBox9 20 208 17 17 #false EUOCheckBox1 menu Check EUOCheckBox10 20 228 17 17 #false EUOCheckBox1 menu Font Style b menu Font Color Lime menu Font BGColor Purple menu Button abrirCajones 140 216 95 25 ABRIR BOLSA menu Show 421 270 return ;--------- EasyUO Menu Designer Code End --------- sub menuControl set %num_checks 0 menu get EUO100suerte set %100suerte #menures if %100suerte { set %num_checks %num_checks + 1 } menu get EUOalquimista set %alquimista #menures if %alquimista { set %num_checks %num_checks + 1 } menu get EUOCheckBox3 set %artesano #menures if %artesano { set %num_checks %num_checks + 1 } menu get EUOCheckBox4 set %bowcraft #menures if %bowcraft { set %num_checks %num_checks + 1 } menu get EUOCheckBox5 set %carpintero #menures if %carpintero { set %num_checks %num_checks + 1 } menu get EUOCheckBox6 set %cocinero #menures if %cocinero { set %num_checks %num_checks + 1 } menu get EUOCheckBox7 set %cristalero #menures if %cristalero { set %num_checks %num_checks + 1 } menu get EUOCheckBox8 set %escriba #menures if %escriba { set %num_checks %num_checks + 1 } menu get EUOCheckBox9 set %herrero #menures if %herrero { set %num_checks %num_checks + 1 } menu get EUOCheckBox10 set %sastre #menures if %sastre { set %num_checks %num_checks + 1 } if %num_checks > 1 { set #SYSMSGCOL 38 event sysmessage DEMASIADAS OPCIONES ACTIVAS! wait 20 return } else { if %num_checks = 1 { gosub selectCheckBOX } } return sub selectCheckBOX if %100suerte { set %ids_equipo %objetos_suerte } else { if %alquimista { set %ids_equipo %objetos_alquimista } else { if %artesano { set %ids_equipo %objetos_artesano } else { if %bowcraft { set %ids_equipo %objetos_bowcraft } else { if %carpintero { set %ids_equipo %objetos_carpintero } else { if %cocinero { set %ids_equipo %objetos_cocinero } else { if %cristalero { set %ids_equipo %objetos_cristalero } else { if %escriba { set %ids_equipo %objetos_escriba } else { if %herrero { set %ids_equipo %objetos_herrero } else { if %sastre { set %ids_equipo %objetos_sastre } } } } } } } } } } return ;================================================================= sub wait_for ;================================================================= ; This "wait_for" sub package was created by Locke. If you use these subs please keep this header intact. ; Documentation: the sub package grew to large with all the comments. To load them call the sub like this: ; gosub wait_for docs | or you can use doc, documention, what, or my personal favorite, kickass. ; "wait_for core dispatcher" version 1.2 by Locke if %1 = doc || if %1 = docs || if %1 = documentation || if %1 = what || if %1 = kickass { Display ok Please click ok and wait for your browser to start. execute http://www.easyuo.com/forum/viewtopic.php?t=24716 halt } nameSpace Push namespace local LLNS set #result N/A ; if #result isn't set by one of my wait_for subs it'll throw an error. set !LPC #lpc set #lpc 200 for %i 0 %0 set !_A . %i % . %i gosub wait_for_ , !_A1 set #lpc !lpc namespace clear LLNS namespace pop if #result <> N/A return #result else display ok You specified an unknown wait_for command. Script returned #result and is halting. halt ;====================================================================== sub wait_for_GUMP ; version 1.4 ~Locke ;================================================================= ; Añadido #CONTID ^^ if !_A0 < 3 { display ok You haven't specified enough vars.$ +The basic format is: gosub wait_for GUMP XXX_YYY time_out_in_seconds$ +Script is halting halt } if !_A3 <> CLOSE set !_timeout #scnt2 + !_A3 else set !_timeout 0 ; no gump wait if %3 = CLOSE since we already believe it to be open. _lets_wait_for_a_gump: if #CONTSIZE = !_A2 || #CONTKIND = !_A2 || #CONTNAME = !_A2 || #CONTTYPE = !_A2 || #CONTID = !_A2 { if !_A5 <> N/A && !_A6 <> N/A { set !clickx !_A5 + #contposx set !clicky !_A6 + #contposy click !clickx !clicky } if !_A3 = CLOSE || if !_A4 = CLOSE || !_A5 = CLOSE || !_A6 = CLOSE { set !string #contsize str pos !string _ set !pos #strres str del !string #strres #strres set !clickX #contposx + ( #strres / 2 ) str del !string 1 !pos set !clickY #contposy + ( #strres / 2 ) click !clickx !clicky R } return #true } if ( !_timeout =< #scnt2 ) && ( !_A4 = N/A ) { return #false } if !_A4 <> N/A && !_timeout =< #scnt2 { finditem !_A4 if #findkind <> -1 { for #findindex 1 #findcnt { if #finddist > 2 ignoreitem #findid LLWAITFOR else break } set #lobjectid #findid event macro 17 0 set !_timeout #scnt2 + !_A3 } else return #false } wait 1 goto _lets_wait_for_a_gump ;====================================================================== sub wait_for_ITEM ; Version 0.1 ~Locke ;================================================================= ; %A2 = #findid ; %A3 = C_ , %mod || G_ , %mod ; %A4 = wait_time in seconds if !_A0 < 4 { display ok You haven't specified enough vars.$ +The basic format is: gosub wait_for ITEM # , findid C_ , % , mod % , timeout +Script is halting halt } set !_timeout !_A4 + #scnt2 repeat { finditem !_A2 !_A3 if #findkind <> -1 return #true wait 1 } until #scnt2 => !_timeout return #false