set %idscript PEPITO_LIST set %versionscript 0.01 ;set %special_globalvar #charid ;commentare questa riga se si vuole valori globali ;set * . %idscript ;decommentare per cancellare le impostazioni set #lpc 1000 gosub Inizializza_Variabili gosub Inizializza_Contatori gosub Check_Skill_Recall set %magia_usata #result set #lpc 100 gosub Start_Menu gosub Crea_Lista_Item_e_Container gosub Set_Ultime_Variabili gosub Crea_Menu_Avviato set #MENUBUTTON N/A MAIN_LOOP: if #MENUBUTTON = N/A goto MAIN_LOOP ;button premuto if #menubutton = CLOSED { set #MENUBUTTON N/A event ExMsg #CHARID 3 %menu_col_i Script chiuso halt } if #menubutton = ASSES_ITEM ;valuta oggetto { set #MENUBUTTON N/A event exmsg #charid 3 %menu_col_i Targhetta un Oggetto e ti dirò il suo valore gosub targetta_oggetto set !oggid #result if !oggid <> N/A { if %h_attuale < %h_normal set %h_attuale %h_normal Menu Window size %w_menu_tot %h_attuale gosub asses_item !oggid #true if %asses_pass event exmsg #charid 3 %menu_col_ok Vale #result else event exmsg #charid 3 %menu_col_ko Vale #result if %asses_name = UNKNOW { gosub display_property !oggid } } goto MAIN_LOOP } if #menubutton = ASSES_CLEAR { set #MENUBUTTON N/A set %h_attuale %h_minimized Menu Window size %w_menu_tot %h_attuale gosub asses_display_erase gosub asses_list_display_erase goto MAIN_LOOP } if #menubutton = ASSES_CONTAINER ;valuta oggetti in cassa { set #MENUBUTTON N/A event exmsg #charid 3 %menu_col_i Targhetta un Container e ti dirò il suo valore del suo contenuto gosub targetta_oggetto set !cassaid #result if !cassaid <> N/A { Menu Font bgcolor black event exmsg #charid 3 %menu_col_i Esamino... gosub Open_container !cassaid 2 100 100 #false gosub asses_list_display_erase set %x_list %x_list_init set %y_list %y_list_start set %w_menu_tot %w_menu set %h_attuale %h_menu Menu Window size %w_menu_tot %h_attuale finditem * c_ , !cassaid set %listmax #findcnt for #findindex 1 #findcnt { menu set txtInfoAzione ANALIZZO #findindex / #findcnt set !oggid #findid set !oggstack #findstack set !oggtype #findtype gosub add_list_item #findindex !oggid !oggstack !oggtype ;set !x %asses_x + 220 ;set !name butget , %asses_item_id ;menu button !name !x !y 20 8 GET ;set %asses_garbage _ , !name , %asses_garbage ;set !x %asses_x + 240 ;set !name butid , %asses_item_id ;menu button !name !x !y 40 8 %asses_item_id ;set %asses_garbage _ , !name , %asses_garbage } menu set txtInfoAzione event exmsg #charid 3 %menu_col_ok Fatto } goto MAIN_LOOP } if bIA in #menubutton { gosub Split #menubutton bIA set !oggid %strright gosub asses_item !oggid #true if %asses_name = UNKNOW { gosub display_property !oggid } set #MENUBUTTON N/A goto MAIN_LOOP } if bGA in #menubutton { gosub Split #menubutton bGA set !oggid %strright finditem !oggid if #findkind <> -1 gosub sposta_item !oggid #backpackid #findstack else event exmsg #charid 3 %menu_col_ko NON LO TROVO event exmsg #charid 3 %menu_col_i FATTO set #MENUBUTTON N/A goto MAIN_LOOP } display ok ERRORE $ qui non ci doveva arrivare $ FINE MAIN_LOOP halt ;################## GENERIC SUB START ########################### ;sub Antiblock v 1.6 -> p 0(1) -> d check_guards Save_Event Pause_Event (DEVONO_ESSERE_CUSTOM) sub Antiblock if #menubutton <> N/A { if #menubutton = butPAUSE { set #menubutton N/A gosub Pause_event } } set %maxpausa #scnt + 40 if %last_journal_read_save = N/A set %last_journal_read_save #jindex - 6 for !scan_index %last_journal_read_save #jindex { scanjournal !scan_index if : notin #journal { gosub check_guards if The_world_is_saving in #journal || Cleaning_resources in #journal { gosub Save_Event START aspettaskip: for !scan_index 5 1 { scanjournal !scan_index gosub check_guards if World_save_complete in #journal || Resources_cleaned in #journal { gosub Save_Event FINE goto fine } wait 5 } if #scnt > %maxpausa { gosub Save_Event FINE goto fine } goto aspettaskip } } } fine: set %last_journal_read_save #jindex return ;sub Apri_bank v 1.0 -> p 1 -> d antiblock Wait_idgump sub Apri_bank set !id_chest %1 msg BANK BANK $ gosub antiblock gosub Wait_idgump !id_chest 5 return #result ;sub Apri_gump_base v 1.4 -> p 0(1) -> d 0 sub Apri_gump_base _OPEN_PAPERDOLL: set !err_apri_gump_base #scnt + 1 event macro 8 1 loop_apri_paperdoll: if #scnt > !err_apri_gump_base goto _OPEN_PAPERDOLL if #contname <> PAPERDOLL_GUMP goto loop_apri_paperdoll wait 5 if %1 = SAVE { set %PAPERDOLL_X #CONTPOSX set %PAPERDOLL_Y #CONTPOSY event sysMessage Save Papeprdoll position... } else { if %PAPERDOLL_X <> N/A && %1 <> NOPOSITION { set #CONTPOSX %PAPERDOLL_X set #CONTPOSY %PAPERDOLL_Y } } _OPEN_STATUS: set !err_apri_gump_base #scnt + 1 event macro 8 2 loop_apri_status: if #scnt > !err_apri_gump_base goto _OPEN_STATUS if #contname <> STATUS_GUMP goto loop_apri_status wait 5 if %1 = SAVE { set %STATUS_X #CONTPOSX set %STATUS_Y #CONTPOSY event sysMessage Save Status position... } else { if %STATUS_X <> N/A && %1 <> NOPOSITION { set #CONTPOSX %STATUS_X set #CONTPOSY %STATUS_Y } } _OPEN_BACKPACK: set !err_apri_gump_base #scnt + 1 event macro 8 7 loop_apri_backpack: if #scnt > !err_apri_gump_base goto _OPEN_BACKPACK if #contID <> #backpackid goto loop_apri_backpack wait 5 if %1 = SAVE { if #CONTPOSX <> N/A { set %BACKPACK_X #CONTPOSX set %BACKPACK_Y #CONTPOSY event sysMessage Save Backpack position... } } else { if %BACKPACK_X <> N/A && %1 <> NOPOSITION { set #CONTPOSX %BACKPACK_X set #CONTPOSY %BACKPACK_Y } } return ;sub Asses_analizza_lettera_a v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_a if ARTIFACT , #spc , RARITY in !asses_linea { gosub Asses_get_property ARTIFACT , #spc , RARITY !asses_linea set !linea_type PROPERTY set !linea_subvalue #result * 50 set !linea_percent %A_B_RARITY return } return ;sub Asses_analizza_lettera_b v 1.2 -> p 3 -> d 0 sub Asses_analizza_lettera_b if !asses_linea = BLESSED { set !linea_type ININFLUENT return } if !asses_linea = BALANCED { set !linea_type PROPERTY set !linea_subvalue 50 set !linea_percent %A_B_BA return } if BATTLE , #spc , LUST in !asses_linea { set !linea_type PROPERTY set !linea_subvalue 100 set !linea_percent %A_B_BL return } if BLOOD , #spc , DRINKER in !asses_linea { set !linea_type PROPERTY set !linea_subvalue 100 set !linea_percent %A_B_BD return } return ;sub Asses_analizza_lettera_c v 1.2 -> p 3 -> d 0 sub Asses_analizza_lettera_c if CRAFTED , #spc , BY in !asses_linea { set !linea_type ININFLUENT return } if COLD , #spc , DAMAGE in !asses_linea { gosub Asses_get_property COLD , #spc , DAMAGE !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 if #result >= 100 set !linea_subvalue 50 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_NEON return } if CASTING , #spc , FOCUS in !asses_linea { gosub Asses_get_property CASTING , #spc , FOCUS !asses_linea set !linea_type PROPERTY set !linea_subvalue #result * 10 set !linea_percent %A_B_CF return } if COLD , #spc , RESIST in !asses_linea { gosub Asses_get_property COLD , #spc , RESIST !asses_linea set !linea_type PROPERTY set !linea_subvalue #result set !linea_percent 0 set !asses_resists !asses_resists + #result return } if COLD , #spc , EATER in !asses_linea { gosub Asses_get_property COLD , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 5 set !linea_percent %A_B_DE return } if COLD , #spc , RESONANCE in !asses_linea { gosub Asses_get_property COLD , #spc , RESONANCE !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_R return } return ;sub Asses_analizza_lettera_d v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_d if DAMAGE , #spc , INCREASE in !asses_linea { gosub Asses_get_property DAMAGE , #spc , INCREASE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 5 ) + ( #RESULT / 10 ) ) * 10 set !linea_percent %A_B_DI return } if DURABILITY in !asses_linea { set !linea_type ININFLUENT return } if DEFENSE , #spc , CHANCE , #spc , INCREASE in !asses_linea { gosub Asses_get_property DEFENSE , #spc , CHANCE , #spc , INCREASE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_DCI return } if DEXTERITY , #spc , BONUS in !asses_linea { gosub Asses_get_property DEXTERITY , #spc , BONUS !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_SB return } if DAMAGE , #spc , EATER in !asses_linea { gosub Asses_get_property DAMAGE , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_DE return } return ;sub Asses_analizza_lettera_e v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_e if !asses_linea = EXCEPTIONAL { set !linea_type ININFLUENT return } if !asses_linea = ELVES , #spc , ONLY { set !linea_type ININFLUENT return } if ENERGY , #spc , DAMAGE in !asses_linea { gosub Asses_get_property ENERGY , #spc , DAMAGE !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 if #result >= 100 set !linea_subvalue 50 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_NEON return } if ENERGY , #spc , EATER in !asses_linea { gosub Asses_get_property ENERGY , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 5 set !linea_percent %A_B_DE return } if ENERGY , #spc , RESONANCE in !asses_linea { gosub Asses_get_property ENERGY , #spc , RESONANCE !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_R return } if ENERGY , #spc , RESIST in !asses_linea { gosub Asses_get_property ENERGY , #spc , RESIST !asses_linea set !linea_type PROPERTY set !linea_subvalue #result set !linea_percent 0 set !asses_resists !asses_resists + #result return } if ENHANCE , #spc , POTIONS in !asses_linea { gosub Asses_get_property ENHANCE , #spc , POTIONS !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 6 ) * 10 set !linea_percent %A_B_EP return } return ;sub Asses_analizza_lettera_f v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_f if FASTER , #spc , CASTING in !asses_linea { gosub Asses_get_property FASTER , #spc , CASTING !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 60 set !linea_percent %A_B_FC set !asses_fc #result return } if FASTER , #spc , CAST , #spc , RECOVERY in !asses_linea { gosub Asses_get_property FASTER , #spc , CAST , #spc , RECOVERY !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 40 set !linea_percent %A_B_FC set !asses_fcr #result return } if FIRE , #spc , DAMAGE in !asses_linea { gosub Asses_get_property FIRE , #spc , DAMAGE !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 if #result >= 100 set !linea_subvalue 50 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_NEON return } if FIRE , #spc , EATER in !asses_linea { gosub Asses_get_property FIRE , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 5 set !linea_percent %A_B_DE return } if FIRE , #spc , RESONANCE in !asses_linea { gosub Asses_get_property FIRE , #spc , RESONANCE !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_R return } if FIRE , #spc , RESIST in !asses_linea { gosub Asses_get_property FIRE , #spc , RESIST !asses_linea set !linea_type PROPERTY set !linea_subvalue #result set !linea_percent 0 set !asses_resists !asses_resists + #result return } return ;sub Asses_analizza_lettera_h v 1.2 -> p 3 -> d 0 sub Asses_analizza_lettera_h if HIT , #spc , DISPEL in !asses_linea { gosub Asses_get_property HIT , #spc , DISPEL !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 20 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HD return } if HIT , #spc , MANA , #spc , LEECH in !asses_linea { gosub Asses_get_property HIT , #spc , MANA , #spc , LEECH !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 6 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HL return } if HIT , #spc , LIFE , #spc , LEECH in !asses_linea { gosub Asses_get_property HIT , #spc , LIFE , #spc , LEECH !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 6 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HL return } if HIT , #spc , STAMINA , #spc , LEECH in !asses_linea { gosub Asses_get_property HIT , #spc , STAMINA , #spc , LEECH !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HL return } if HIT , #spc , MANA , #spc , DRAIN in !asses_linea { gosub Asses_get_property HIT , #spc , MANA , #spc , DRAIN !asses_linea set !linea_type PROPERTY IF #RESULT >= 10 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HL return } if HIT , #spc , FATIGUE in !asses_linea { gosub Asses_get_property HIT , #spc , FATIGUE !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HL return } if HIT , #spc , CURSE in !asses_linea { gosub Asses_get_property HIT , #spc , CURSE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 10 ) ) * 10 set !linea_percent %A_B_HC return } if HIT , #spc , HARM in !asses_linea { gosub Asses_get_property HIT , #spc , HARM !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HS return } if HIT , #spc , MAGIC , #spc , ARROW in !asses_linea { gosub Asses_get_property HIT , #spc , MAGIC , #spc , ARROW !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HS return } if HIT , #spc , FIREBALL in !asses_linea { gosub Asses_get_property HIT , #spc , FIREBALL !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HS return } if HIT , #spc , LIGHTNING in !asses_linea { gosub Asses_get_property HIT , #spc , LIGHTNING !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 8 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HS return } if HIT , #spc , FIRE , #spc , AREA in !asses_linea { gosub Asses_get_property HIT , #spc , FIRE , #spc , AREA !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 10 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HSA return } if HIT , #spc , COLD , #spc , AREA in !asses_linea { gosub Asses_get_property HIT , #spc , COLD , #spc , AREA !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 10 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HSA return } if HIT , #spc , PHYSICAL , #spc , AREA in !asses_linea { gosub Asses_get_property HIT , #spc , PHYSICAL , #spc , AREA !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 10 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HSA return } if HIT , #spc , POISON , #spc , AREA in !asses_linea { gosub Asses_get_property HIT , #spc , POISON , #spc , AREA !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 10 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HSA return } if HIT , #spc , ENERGY , #spc , AREA in !asses_linea { gosub Asses_get_property HIT , #spc , ENERGY , #spc , AREA !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( ( #RESULT / 10 ) + ( #RESULT / 12 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HSA return } if HIT , #spc , LOWER , #spc , ATTACK in !asses_linea { gosub Asses_get_property HIT , #spc , LOWER , #spc , ATTACK !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( #RESULT / 5 ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HLOW return } if HIT , #spc , LOWER , #spc , DEFENSE in !asses_linea { gosub Asses_get_property HIT , #spc , LOWER , #spc , DEFENSE !asses_linea set !linea_type PROPERTY IF #RESULT >= 20 set !linea_subvalue ( #RESULT / 5 ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_HLOW return } if HIT , #spc , CHANCE , #spc , INCREASE in !asses_linea { gosub Asses_get_property HIT , #spc , CHANCE , #spc , INCREASE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_HCI return } if HIT , #spc , POINT , #spc , INCREASE in !asses_linea { gosub Asses_get_property HIT , #spc , POINT , #spc , INCREASE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 2 ) * 10 set !linea_percent %A_B_PI return } if HIT , #spc , POINT , #spc , REGENERATION in !asses_linea { gosub Asses_get_property HIT , #spc , POINT , #spc , REGENERATION !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT * 4 ) * 10 set !linea_percent %A_B_REG return } return ;sub Asses_analizza_lettera_i v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_i if !asses_linea = INSURED { set !linea_type ININFLUENT return } if INTELLIGENCE , #spc , BONUS in !asses_linea { gosub Asses_get_property INTELLIGENCE , #spc , BONUS !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_SB return } return ;sub Asses_analizza_lettera_k v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_k if KINETIC , #spc , EATER in !asses_linea { gosub Asses_get_property KINETIC , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 5 set !linea_percent %A_B_DE return } if KINETIC , #spc , RESONANCE in !asses_linea { gosub Asses_get_property KINETIC , #spc , RESONANCE !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_R return } return ;sub Asses_analizza_lettera_l v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_l if LOWER , #spc , REAGENT , #spc , COST in !asses_linea { gosub Asses_get_property LOWER , #spc , REAGENT , #spc , COST !asses_linea set !linea_type PROPERTY if #result < 12 set !linea_name !linea_name , #spc , IF #RESULT >= 12 { set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 IF !asses_medable = #false && %asses_item_type notin %Jewelery SET !linea_subvalue !linea_subvalue - ( #RESULT / 6 ) * 10 } IF #RESULT >= 20 SET !linea_subvalue !linea_subvalue + 50 set !linea_percent %A_B_LRC set !asses_lrc #result return } if LOWER , #spc , MANA , #spc , COST in !asses_linea { gosub Asses_get_property LOWER , #spc , MANA , #spc , COST !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_LMC set !asses_lmc #result return } if LOWER , #spc , REQUIREMENTS in !asses_linea { set !linea_type ININFLUENT return } if LUCK in !asses_linea { gosub Asses_get_property LUCK !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 IF #RESULT >= 50 set !linea_subvalue ( ( #RESULT / 11 ) + ( #RESULT / 15 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_LUCK return } return ;sub Asses_analizza_lettera_m v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_m IF mage , #SPC , weapon IN !asses_linea { GOSUB Asses_get_property mage , #SPC , weapon !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( 400 + #result * 10 ) / 4 ) set !linea_percent %A_B_MW return } IF mana , #SPC , increase IN !asses_linea { GOSUB Asses_get_property mana , #SPC , increase !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 2 ) * 10 set !linea_percent %A_B_PI return } IF mana , #SPC , regeneration IN !asses_linea { GOSUB Asses_get_property mana , #SPC , regeneration !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT * 4 ) * 10 set !linea_percent %A_B_REG return } if MAGE , #spc , ARMOR in !asses_linea { set !linea_type PROPERTY set !linea_subvalue 0 set !linea_percent 100 return } return ;sub Asses_analizza_lettera_n v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_n IF NIGHT , #SPC , SIGHT IN !asses_linea { set !linea_type PROPERTY set !linea_subvalue 10 return } return ;sub Asses_analizza_lettera_o v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_o if ONE-HANDED , #spc , WEAPON in !asses_linea { set !linea_type ININFLUENT return } if OWNED , #spc , BY in !asses_linea { set !linea_type ININFLUENT return } return ;sub Asses_analizza_lettera_p v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_p if PHYSICAL , #spc , DAMAGE in !asses_linea { set !linea_type ININFLUENT return } if PRICE in !asses_linea { set !linea_type ININFLUENT return } if POISON , #spc , DAMAGE in !asses_linea { gosub Asses_get_property POISON , #spc , DAMAGE !asses_linea set !linea_type PROPERTY set !linea_subvalue 0 if #result >= 100 set !linea_subvalue 50 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_NEON return } if POISON , #spc , EATER in !asses_linea { gosub Asses_get_property POISON , #spc , EATER !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 5 set !linea_percent %A_B_DE return } if POISON , #spc , RESONANCE in !asses_linea { gosub Asses_get_property POISON , #spc , RESONANCE !asses_linea set !linea_type PROPERTY set !linea_subvalue #RESULT * 10 set !linea_percent %A_B_R return } if POISON , #spc , RESIST in !asses_linea { gosub Asses_get_property POISON , #spc , RESIST !asses_linea set !linea_type PROPERTY set !linea_subvalue #result set !linea_percent 0 set !asses_resists !asses_resists + #result return } if PHYSICAL , #spc , RESIST in !asses_linea { gosub Asses_get_property PHYSICAL , #spc , RESIST !asses_linea set !linea_type PROPERTY set !linea_subvalue #result set !linea_percent 0 set !asses_resists !asses_resists + #result return } return ;sub Asses_analizza_lettera_r v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_r if REMAIN in !asses_linea { set !linea_type ININFLUENT return } if REACTIVE , #spc , PARALYZE in !asses_linea { set !linea_type PROPERTY set !linea_subvalue 100 set !linea_percent %A_B_RP return } if REQUIREMENT in !asses_linea { set !linea_type ININFLUENT return } if RANGE in !asses_linea { set !linea_type ININFLUENT return } if reflect , #SPC , physical , #SPC , damage in !asses_linea { gosub Asses_get_property reflect , #SPC , physical , #SPC , damage !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #result / 5 ) * 10 set !linea_percent %A_B_RPD return } return ;sub Asses_analizza_lettera_s v 1.1 -> p 3 -> d 0 sub Asses_analizza_lettera_s if STRENGTH , #spc , REQUIREMENT in !asses_linea { set !linea_type ININFLUENT return } if SKILL , #spc , REQUIRED in !asses_linea { set !linea_type ININFLUENT return } IF SPELL , #SPC , CHANNELING IN !asses_linea { set !linea_type PROPERTY set !linea_subvalue 40 set !linea_percent %A_B_SC set !asses_sc #true return } if SWING , #spc , SPEED , #spc , INCREASE in !asses_linea { gosub Asses_get_property SWING , #spc , SPEED , #spc , INCREASE !asses_linea set !linea_type PROPERTY IF #RESULT >= 10 set !linea_subvalue ( ( #RESULT / 3 ) + ( #RESULT / 10 ) ) * 10 else set !linea_name !linea_name , #spc , set !linea_percent %A_B_SSI return } IF SOUL , #SPC , CHARGE IN !asses_linea { GOSUB Asses_get_property SOUL , #SPC , CHARGE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 3 ) * 10 set !linea_percent %A_B_SCH return } IF SPLINTERING , #SPC , WEAPON IN !asses_linea { GOSUB Asses_get_property SPLINTERING , #SPC , WEAPON !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 3 ) * 10 set !linea_percent %A_B_SW return } IF stamina , #SPC , increase IN !asses_linea { GOSUB Asses_get_property stamina , #SPC , increase !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 3 ) * 10 set !linea_percent %A_B_PI return } IF stamina , #SPC , regeneration IN !asses_linea { GOSUB Asses_get_property stamina , #SPC , regeneration !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT * 4 ) * 10 set !linea_percent %A_B_REG return } if SELF , #spc , REPAIR in !asses_linea { gosub Asses_get_property SELF , #spc , REPAIR !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 2 ) * 10 set !linea_percent %A_B_SR return } if STRENGTH , #spc , BONUS in !asses_linea { gosub Asses_get_property STRENGTH , #spc , BONUS !asses_linea set !linea_type PROPERTY set !linea_subvalue ( ( #RESULT / 2 ) + ( #RESULT / 3 ) ) * 10 set !linea_percent %A_B_SB return } if SPELL , #spc , DAMAGE , #spc , INCREASE in !asses_linea { gosub Asses_get_property SPELL , #spc , DAMAGE , #spc , INCREASE !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 2 ) * 10 set !linea_percent %A_B_SDI return } return ;sub Asses_analizza_lettera_t v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_t if TWO-HANDED , #spc , WEAPON in !asses_linea { set !linea_type ININFLUENT return } return ;sub Asses_analizza_lettera_u v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_u IF use , #spc , best , #SPC , weapon , #SPC , skill IN !asses_linea { set !linea_type PROPERTY set !linea_subvalue 20 set !linea_percent %A_B_BWS return } if USES , #spc , REMAINING in !asses_linea { set !linea_type ININFLUENT return } return ;sub Asses_analizza_lettera_v v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_v IF velocity IN !asses_linea { gosub Asses_get_property velocity !asses_linea set !linea_type PROPERTY set !linea_subvalue ( #RESULT / 4 ) * 10 set !linea_percent %A_B_VEL return } return ;sub Asses_analizza_lettera_w v 1.0 -> p 3 -> d 0 sub Asses_analizza_lettera_w if WEIGHT: in !asses_linea { set !linea_type ININFLUENT return } if WEAPON , #spc , DAMAGE in !asses_linea { set !linea_type ININFLUENT return } if WEAPON , #spc , SPEED in !asses_linea { set !linea_type ININFLUENT return } return ;sub Asses_analizza_linea v 1.0 -> p 2 -> d 0 sub Asses_analizza_linea set !asses_linea %1 set !asses_family %2 if %asses_index = 1 { set !linea_name !asses_linea set !linea_type NOME set !linea_subvalue 0 set !linea_percent 0 set !linea_value 0 set !linea_color Yellow set %asses_name !asses_linea return } set !linea_name !asses_linea set !linea_subvalue 0 set !linea_percent 100 set !linea_value 0 set !linea_color red set !linea_type BHO if #spc , + in !asses_linea { if : notin !asses_linea gosub Asses_Analizza_Skills } else { str LEFT !asses_linea 1 set !asses_first_letter #strres gosub Asses_Analizza_Lettera_ . !asses_first_letter } if !linea_type = ININFLUENT { set !linea_subvalue 0 set !linea_percent 100 set !linea_value 0 set !linea_color gray } if !linea_type = PROPERTY { set !linea_color white set !linea_value ( !linea_percent * !linea_subvalue ) / 100 } return ;sub Asses_analizza_skills v 1.0 -> p 0 -> d 0 sub Asses_analizza_skills gosub split !asses_linea + set !asses_skills !asses_skills + %strright set !linea_type PROPERTY set !linea_subvalue %strright set !linea_percent 0 return ;sub Asses_analizza_slayer v 1.0 -> p 2 -> d 0 sub Asses_analizza_slayer set !asses_linea %1 set !asses_family %2 set !linea_name !asses_linea set !linea_subvalue 30 set !linea_color white set !linea_type SLAYER gosub split !asses_linea #spc if %strleft in %A_B_SUPERSLAYER set !linea_subvalue 80 if %strleft in %A_B_SLAYERNAME set !linea_subvalue 150 set !linea_percent %A_B_SLAYER set !linea_value ( !linea_percent * !linea_subvalue ) / 100 return ;sub Asses_azzera v 1.0 -> p 0 -> d 0 sub Asses_azzera set !asses_fc 0 set !asses_fcr 0 set !asses_lrc 0 set !asses_lmc 0 set !asses_sc #false set %asses_linea_bonus set %asses_index 0 set %asses_value 0 set %asses_name N/A set !asses_resists 0 set !asses_skills 0 set !asses_medable #false set %asses_pass #false return ;sub Asses_display_erase v 1.0 -> p 0 -> d Split_to_Array sub Asses_display_erase gosub Split_to_Array %asses_garbage _ garbage set !garbage_max #result if !garbage_max > 0 { for !i 1 !garbage_max { menu delete %garbage . !i } } set %asses_garbage _ menu font size 5 menu font color white return ;sub Asses_display_linea v 1.0 -> p 1 -> d 0 sub Asses_display_linea set !y %asses_y + %asses_index * 9 - 9 menu font color !linea_color menu font bgcolor $002222 menu font size 7 menu font name ARIAL set !name txtAsses , %asses_index menu text !name %asses_x !y !linea_name set %asses_garbage _ , !name , %asses_garbage if !linea_type = NOME return if !linea_percent <> 100 { set !x %asses_x + %asses_w - 80 menu font color gray set !name txtAssessubValue , %asses_index menu text !name !x !y !linea_subvalue set %asses_garbage _ , !name , %asses_garbage set !x %asses_x + %asses_w - 55 set !name txtAssesMoltiplicator , %asses_index menu text !name !x !y !linea_percent set %asses_garbage _ , !name , %asses_garbage } set !x %asses_x + %asses_w - 30 menu font color !linea_color set !name txtAssesValue , %asses_index menu text !name !x !y !linea_value set %asses_garbage _ , !name , %asses_garbage return ;sub Asses_get_property v 1.1 -> p 2 -> d 0 sub Asses_get_property set !asses_p %1 set !asses_l %2 STR LEN !asses_p STR DEL !asses_l 1 #STRRES SET !asses_l #STRRES STR LEN !asses_l IF skill IN !asses_l SET #STRRES #STRRES - 6 IF % IN !asses_l SET #STRRES #STRRES - 1 SET !asses_ll 0 FOR !assses_i #STRRES 1 { SET !asses_ll !asses_ll + 1 STR MID !asses_l !assses_i 1 IF #SPC IN #STRRES { STR MID !asses_l !assses_i !asses_ll SET !assses_i 1 } } RETURN #STRRES ;sub Asses_init v 1.3 -> p 0 -> d 0 sub Asses_init set %asses_pass_value 300 set %A_B_NEON 100 ;armi neon set %A_B_HCI 100 ;hit chance increase set %A_B_DCI 100 ;defence chance increase set %A_B_SSI 100 ;swing speed increase set %A_B_DI 100 ;damage increase set %A_B_RARITY 100 ;artifact rarity set %A_B_FC 100 ;faster cast set %A_B_FCR 100 ;faster cast recovery set %A_B_BWS 100 ;best weapon skill set %A_B_SC 100 ;spell channeling set %A_B_MW 100 ;mage weapon set %A_B_HD 100 ;hit dispel set %A_B_HL 100 ;hit leech (mana, life, stamina) set %A_B_HC 100 ;hit curse set %A_B_BA 100 ;balanced set %A_B_BL 100 ;battle lust set %A_B_BD 100 ;blood drinker set %A_B_CF 100 ;casting focus set %A_B_DE 100 ;damage eater set %A_B_RP 100 ;reactive paralyze set %A_B_SCH 100 ;soul charge set %A_B_SW 100 ;splintering weapon set %A_B_HLOW 100 ;hit lower (attack e defense) set %A_B_RES 100 ;resists set %A_B_R 100 ;resonance set %A_B_HS 100 ;hit spell (harm, lighting, etc etc) set %A_B_HSA 100 ;hit spell (harm, lighting, etc etc) set %A_B_SLAYER 100 ;slayer set %A_B_LRC 100 ;lower reagent cost set %A_B_LMC 100 ;lower mana cost set %A_B_PI 100 ;Point increase (stamina, hp, mana) set %A_B_REG 100 ;regeneration power (mana, stamina, hp) set %A_B_RPD 100 ;reflect phisycal set %A_B_LUCK 100 ;luck set %A_B_STAT 100 ;statistiche set %A_B_SR 100 ;self repair set %A_B_SDI 100 ;spell damage increase set %A_B_SB 100 ;stat bonus (strength, intelligence, dexterity) set %A_B_SKILL 100 ;skill bonus set %A_B_EP 100 ;enhance potions set %A_B_VEL 100 ;velocity set %A_B_SLAYERNAME _ ;slayer scelti ;WEAPON TYPES============================================================= SET %sword YPO_BNF_CPH_INF_FSF_OSF_ASF_HNF_FMH_CNF_LSF_NSF_ISF_SMH_RMH_CSF_ZRF_MPH_LPH_MSF_BSF_KPO_GUO_KTF_JTF_BPH_EPH_ZSF_ATF_JPH_SOH_POH_NMH_OMH_LPO_ZTO_XTH_YTH_HSF_KSF_NPO_XPO_FUO_JPO_QPF_NPF_KPH_FYG_RHM_SFR_ SET %fencing SRH_AQF_PPF_TSF_WSF_BUO_VPO_WPO_WRH_VRH_XRH_YRH_LTF_MTF_OPO_RRH_CUO_ SET %mace OLH_JOH_URH_EMH_WTH_DMH_QMH_CFF_BFF_PMH_GMH_ZPF_CQF_FFF_RPF_TRH_YSF_XSF_FBG_VTH_AUH_ZTH_UOH_VOH_AUO_MPO_BUH_CUH_DMH_GFF_QOH_HFF_TLH_GBG_ SET %bow WOH_TOH_QPO_SPO_WOH_TOH_JSF_USF_LMH_MMH_QPO_SPO_PPO_RPO_JSF_USF_LMH_MMH_PPO_RPO_JSF_ ;Samurai Empire Weapons--- SET %se_sword CSF_ZRF_MPH_LPH_MSF_BSF_KPO_GUO_KTF_JTF_BPH_EPH_ZSF_ATF_JPH_SOH_POH_NMH_OMH_LPO_ZTO_XTH_YTH_HSF_KSF_NPO_XPO_FUO_JPO_QPF_NPF_KPH_FYG_RHM_JDP_EDP_YCP_KDP_ SET %se_fencing LDP_HDP_ZCP_FDP_ SET %se_mace DDP_ADP_IDP_ SET %se_bow XCP_ ;Mondain's Legacy Weapons--- SET %ml_sword RFR_NFR_SFR_OFR_EFR_YFR_XFR_DFR_ SET %ml_fencing KFR_GFR_LFR_HFR_IFR_MFR_FFR_JFR_ SET %ml_mace VFR_BFR_WFR_CFR_ SET %ml_bow VER_PFR_wer_QFR_ ;ARMOR TYPES================================================================ ;Medable first---- SET %leatherarmor VKH_NJL_QJL_JKH_QKH_DLH_HKH_PKH_SKH_KKH_ELH_PSF_QSK_ATK_ZSK_OSK_YSK_NSK_ SET %medhelmet NJL_QJL_NZH_TDI_VVI_KZH_PZH_DZH_ SET %medgorget JKH_RJG_SJG_FJG_MWL_ SET %medarm HKH_PKH_ SET %medtunic QKH_DLH_ SET %femalemedtunic ATK_ZSK_OSK_NSK_ SET %medglove KKH_SKH_WTO_ SET %medlegging VKH_ELH_ SET %femalemedlegging QSK_YSK_PSK_ ;Hats--- SET %hats CZH_HZH_GZH_BWI_WVI_XVI_YVI_IWI_HWI_KWI_JWI_EWI_JJN_OZH_DZH_BZH_EZH_VSH_QSH_VSH_NWL_MJN_ ;Samurai Empire Medable Armor--- SET %se_leatherarmor RWO_GCP_UBP_OWO_LCP_SWO_GWO_CCP_NCP_OCP_ SET %se_medhelmet GWO_CCP_ SET %se_medgorget SWO_ SET %se_medarm OWO_ SET %se_medtunic RWO_NCP_ SET %se_medglove OCP_ SET %se_medleggins GCP_UBP_LCP_ECP_ SET %se_medarmor %se_leatherarmor , %se_medhelmet , %se_medgorget , %se_medarm , %se_medtunic , %se_medglove , %se_medleggins ;Mondain's Legacy Medable Armor--- SET %ml_medhelmet IJQ_SJQ_HJQ_UES_ SET %ml_medgorget BAS_ SET %ml_medarm MAS_ SET %ml_medtunic ZZR_ SET %ml_medglove CAS_ SET %ml_medleggings OAS_LAS_ SET %ml_medarmor %ml_medhelmet , %ml_medgorget , %ml_medarm , %ml_medtunic , %ml_medglove , %ml_medleggings ;--- SET %medarmor %leatherarmor , %medHelmet , %hats , %medGorget , %medArm , %medTunic , %femaleMedTunic , %medGlove , %medLegging , %femaleMedLegging , %se_medarmor , %ml_medarmor ;Non medable--- SET %studdedarmor ALH_ULH_LLH_YKH_GLH_XKH_FLH_RLH_MLH_SSK_RSK_ SET %bonearmor ZPH_YPH_WPH_PPH_BQH_QPH_VPH_XPH_CQH_AQH_ SET %nonmedhelmet DSH_ASH_TSH_ESH_YPH_GSH_OSH_ZPH_ZRH_IWL_CSH_CSH_BSH_FSH_DPH_LKO_NWL_MKH_ SET %nonmedgorget NSH_ALH_ SET %nonmedarm BQH_JSH_XLH_GLH_MSH_YLH_QPH_YKH_DLO_ SET %nonmedtunic HSH_ULH_LLH_ZOH_IKH_VLH_KSH_WLH_WPH_PKO_PPH_RSK_ SET %femalenonmedtunic USK_SSK_MSK_TSK_LSK_USK_ SET %nonmedglove VPH_ISH_AQH_BMH_USH_XKH_FLH_KMH_RKO_ SET %nonmedlegging HMH_LSH_IMH_CQH_WSH_APH_MLH_RLH_NKH_XPH_NKO_ ;Samurai Empire Non Medable Armor--- SET %se_studdedarmor MWO_NWO_FCP_PCP_TBP_ SET %se_nonmedhelmet RBP_DCP_QWO_DWO_SBP_VBP_FWO_PWO_ SET %se_nonmedgorget PCP_ SET %se_nonmedarm NWO_WBP_ SET %se_nonmedtunic MWO_LWO SET %se_nonmedleggins FCP_TBP_ZBP_ SET %se_nonmedarmor %se_studdedarmor , %se_nonmedhelmet , %se_nonmedgorget , %se_nonmedarm , %se_nonmedtunic , %se_nonmedleggins ;Mondain's Legacy Non Medable Armor--- SET %ml_nonmedhelmet RJQ_UJQ_TJQ_ SET %ml_nonmedgorget QJQ_JJQ_ SET %ml_nonmedarm PJQ_GJQ_ SET %ml_nonmedtunic OJQ_ZIQ_ SET %ml_nonmedgloves NJQ_MJQ_ SET %ml_nonmedleggings AKQ_LJQ_ SET %ml_nonmedarmor %ml_nonmedhelmet , %ml_nonmedgorget , %ml_nonmedarm , %ml_nonmedtunic , %ml_nonmedgloves , %ml_nonmedleggings ;--- SET %nonmedarmor %studdedarmor , %bonearmor , %nonmedHelmet , %nonmedGorget , %nonmedArm , %nonmedTunic , %femaleNonMedTunic , %nonmedGlove , %nonmedLegging , %se_nonmedarmor , %ml_nonmedarmor ;super slayer set %A_B_SUPERSLAYER Abyss_Arachnid_Bat_Bear_Beetle_Bird_Bovine_Elemental_Fey_Flame_Ice_Mage_Repond_Reptile_Undead_Vermin_Wolf_ ;super slayer ;INIT LISTS==================================================================== SET %weapon %sword , %fencing , %mace , %bow , %se_sword , %se_fencing , %se_mace , %se_bow , %ml_sword , %ml_fencing , %ml_mace , %ml_bow SET %armor %medarmor , %nonmedarmor SET %shield LIK_MIK_CLK_AIK_CIK_LYD_GIK_NIK_ZHK_HLK_BLK_FIK_BIK_OIK_ SET %jewelery CWL_LWL_UJG_IJG_ set %equip %weapon , %armor , %shield , %jewelery set %MULTIVALUE_ASSES_1 ARMI_NEON|A_B_NEON|1 set %MULTIVALUE_ASSES_2 ARTIFACT_RARITY|A_B_RARITY|1 set %MULTIVALUE_ASSES_3 BALANCED|A_B_BA|1 set %MULTIVALUE_ASSES_4 BEST_WEAPON_SKILL|A_B_BWS|1 set %MULTIVALUE_ASSES_5 BLOOD_DRINKER|A_B_BD|1 set %MULTIVALUE_ASSES_6 CASTING_FOCUS|A_B_CF|1 set %MULTIVALUE_ASSES_7 DAMAGE_EATER|A_B_DE|1 set %MULTIVALUE_ASSES_8 DAMAGE_INCREASE|A_B_DI|1 set %MULTIVALUE_ASSES_9 DEFENSE_CHANCE_INCREASE|A_B_DCI|1 set %MULTIVALUE_ASSES_10 ENHANCE_POTIONS|A_B_EP|1 set %MULTIVALUE_ASSES_11 FASTER_CAST|A_B_FC|1 set %MULTIVALUE_ASSES_12 FASTER_CASTING_RECOVERY|A_B_FCR|1 set %MULTIVALUE_ASSES_13 HIT_CHANCE_INCREASE|A_B_HCI|1 set %MULTIVALUE_ASSES_14 HIT_CURSE|A_B_HC|1 set %MULTIVALUE_ASSES_15 HIT_DISPEL|A_B_HD|1 set %MULTIVALUE_ASSES_16 HIT_DRAIN_LEECH|A_B_HL|1 set %MULTIVALUE_ASSES_17 HIT_LOWER|A_B_HLOW|1 set %MULTIVALUE_ASSES_18 HIT_SPEEL|A_B_HS|1 set %MULTIVALUE_ASSES_19 HIT_SPEEL_AREA|A_B_HSA|1 set %MULTIVALUE_ASSES_20 LOWER_MANA_COST|A_B_LMC|1 set %MULTIVALUE_ASSES_21 LOWER_REAGENT_COST|A_B_LRC|1 set %MULTIVALUE_ASSES_22 LUCK|A_B_LUCK|1 set %MULTIVALUE_ASSES_23 MAGE_WEAPON|A_B_MW|1 set %MULTIVALUE_ASSES_24 POINT_INCREASE|A_B_PI|1 set %MULTIVALUE_ASSES_25 REACTIVE_PARALYZE|A_B_RP|1 set %MULTIVALUE_ASSES_26 REFLECT_PHISYCAL_DAMAGE|A_B_RPD|1 set %MULTIVALUE_ASSES_27 REGENERATION|A_B_REG|1 set %MULTIVALUE_ASSES_28 RESISTS|A_B_RES|1 set %MULTIVALUE_ASSES_29 RESONANCE|A_B_R|1 set %MULTIVALUE_ASSES_30 SELF_REPAIR|A_B_SR|1 set %MULTIVALUE_ASSES_31 SLAYER_CHECK|A_B_SLAYERNAME|2 set %MULTIVALUE_ASSES_32 SKILL_BONUS|A_B_SKILL|1 set %MULTIVALUE_ASSES_33 SOUL_CHARGE|A_B_SCH|1 set %MULTIVALUE_ASSES_34 SPELL_CHANNELING|A_B_SC|1 set %MULTIVALUE_ASSES_35 SPEEL_DAMAGE_INCREASE|A_B_SDI|1 set %MULTIVALUE_ASSES_36 SPLINTERING_WEAPON|A_B_SW|1 set %MULTIVALUE_ASSES_37 SWING_SPEED_INCREASE|A_B_SSI|1 set %MULTIVALUE_ASSES_38 STAT_BONUS|A_B_STAT|1 set %MULTIVALUE_ASSES_39 VELOCITY|A_B_VEL|1 set %MULTIVALUE_ASSES_MAX 39 return ;sub Asses_item v 1.1 -> p 1(2) -> d getproperty asses_display_erase sub Asses_item set %asses_old_lpc #lpc set #lpc 1000 set %asses_display #false if %0 = 2 set %asses_display %2 set %asses_item_id %1 gosub asses_azzera IF #FINDID <> %asses_item_id { FINDITEM %asses_item_id IF #FINDCNT < 1 { set #lpc %asses_old_lpc event exmsg #charid 3 %menu_col_ko NON TROVO L'OGGETTO set %asses_pass N/A return } } set %asses_item_type #findtype if %asses_item_type notin %equip { set #lpc %asses_old_lpc ;event exmsg #charid 3 %menu_col_ko NON RICONOSCO L' EQUIP set %asses_name UNKNOW ;%asses_item_id TYPE %asses_item_type set %asses_pass N/A return } gosub getproperty %asses_item_id set %asses_property #result if ( %asses_item_type IN %medarmor ) || ( mage , #SPC , armor IN %asses_property ) SET !asses_medable #TRUE if %asses_display gosub asses_display_erase gosub Split_to_Array %asses_property $ asses_line set !asses_linemax #result if !asses_linemax > 0 { for !i 1 !asses_linemax { str len %asses_line . !i if #strres > 0 { set %asses_index %asses_index + 1 if slayer in %asses_line . !i && !i > 1 gosub Asses_Analizza_Slayer %asses_line . !i BHO else gosub Asses_Analizza_Linea %asses_line . !i BHO if %asses_display gosub Asses_Display_Linea if !linea_type = BHO { set !linea_value 1000 gosub debug_display ? -> %asses_line . !i } set %asses_value %asses_value + !linea_value } } } if !asses_resists > 0 { set %asses_index %asses_index + 1 set !linea_name Resists , #spc , Value , #spc , ( , !asses_resists , ) set !linea_type PROPERTY set !linea_subvalue 0 IF %asses_item_type IN %hats set !asses_resists ( !asses_resists - 12 ) IF %asses_item_type IN %armor && !asses_resists > 30 set !linea_subvalue ( !asses_resists / 4 ) + ( !asses_resists / 10 ) IF %asses_item_type NOTIN %armor set !linea_subvalue ( !asses_resists / 5 ) set !linea_subvalue !linea_subvalue * 10 set !linea_percent %A_B_RES set !linea_color aqua set !linea_value ( !linea_percent * !linea_subvalue ) / 100 if %asses_display gosub Asses_Display_Linea set %asses_value %asses_value + !linea_value } if !asses_skills > 0 { set %asses_index %asses_index + 1 set !linea_name Skills , #spc , Value , #spc , ( , !asses_skills , ) set !linea_type PROPERTY set !linea_subvalue 0 set !linea_subvalue ( !asses_skills / 3 ) * 10 set !linea_percent %A_B_SKILL set !linea_color aqua set !linea_value ( !linea_percent * !linea_subvalue ) / 100 if %asses_display gosub Asses_Display_Linea set %asses_value %asses_value + !linea_value } if !asses_fc > 0 && !asses_fcr > 0 set %asses_linea_bonus Bonus , #spc , Casting= , 50 , $ , %asses_linea_bonus if !asses_fc >= 0 && !asses_sc set %asses_linea_bonus Spell , #spc , Weapon= , 50 , $ , %asses_linea_bonus if !asses_lmc > 0 && !asses_lrc >= 10 set %asses_linea_bonus LRC , #spc , Special= , 50 , $ , %asses_linea_bonus if !asses_medable set %asses_linea_bonus Medable= , 20 , $ , %asses_linea_bonus gosub Split_to_Array %asses_linea_bonus $ asses_line set !asses_linemax #result if !asses_linemax > 0 { for !i 1 !asses_linemax { str len %asses_line . !i if #strres > 0 && %asses_line . !i <> N/A { set %asses_index %asses_index + 1 gosub split %asses_line . !i = set !linea_name %strleft set !linea_type BONUS set !linea_subvalue %strright set !linea_percent 100 set !linea_value %strright set !linea_color $00FF00 if %asses_display gosub Asses_Display_Linea set %asses_value %asses_value + !linea_value } } } if %asses_display { set %asses_index %asses_index + 2 set !linea_name VALORE set !linea_type TOTAL set !linea_subvalue %asses_value set !linea_percent 100 set !linea_value %asses_value set !linea_color silver if %asses_value >= %asses_pass_value set !linea_color $00FF00 gosub Asses_Display_Linea } if %asses_value >= %asses_pass_value set %asses_pass #true set #lpc %asses_old_lpc return %asses_value ;sub Avvicinati_vendor v 1.1 -> p 1 -> d 0 sub Avvicinati_vendor set !v_id %1 ;vendor id finditem !v_id g if #findkind = -1 return #false gosub PathFind #findx #findy #findz return #result ;sub Check_guards v 1.0 -> p 0 -> d 0 sub Check_guards if guards in #journal { if under_the_protection in #journal { if %under_guards <> #true { set %under_guards #true menu set txtUnder_Guards UNDER GUARDS } } if left_the_protection in #journal { if %under_guards <> #false { set %under_guards #false menu set txtUnder_Guards #spc } } } return ;sub Check_skill_recall v 1.0 -> p 0 -> d 0 sub Check_skill_recall chooseSkill Mager set !csr_magery #SKILL chooseSkill Chiva set !csr_chiva #SKILL if !csr_magery > ( !csr_chiva - 1 ) { set !csr_skillsel !csr_magery set !csr_return mager } else { set !csr_skillsel !csr_chiva set !csr_return chiva } if !csr_skillsel < 250 { display OK Hai skill per recallarti troppo basse $ Script fermato. halt } return !csr_return ;sub Click_on_gump v 1.0 -> p 2 -> d 0 sub Click_on_gump set !cog_clickx #contposx + %1 ;x set !cog_clicky #contposy + %2 ;y click !cog_clickx !cog_clicky f return ;sub Debug_display v 1.0 -> p 1(x) -> d Menu_Crea_Type_Box sub Debug_display set !mex %1 if %0 > 1 { for !vs_for 2 %0 set !mex !mex , #spc , % . !vs_for } set !w_menu %w_menu_tot + 150 if %debug set !w_menu !w_menu + 105 if %debug_is_visible = N/A { Menu Window size !w_menu %h_menu set !yb 0 set !xb !w_menu - 149 set !wb 148 set !hb %h_menu menu font color AQUA gosub Menu_Crea_Type_Box !xb !yb !wb !hb DEBUG DEBUG INFO set %index_debug_info 0 set %debug_is_visible #true } menu font color red menu font size 5 menu font bgcolor $290B2B set %index_debug_info %index_debug_info + 1 set !yb 15 + 10 * %index_debug_info set !xb !w_menu - 144 menu text txt !xb !yb !mex return ;sub Get_modifier_peso v 1.0 -> p 1 -> d 0 sub Get_modifier_peso ;%1 nome var da impostare finditem #charid set % . %1 0 if #findtype in HS_IS set % . %1 40 return ;sub Get_position_container v 1.0 -> p 0 -> d Apri_gump_base sub Get_position_container gosub Apri_gump_base SAVE return ;sub Getproperty v 1.0 -> p 1 -> d 0 sub Getproperty GetProperty_loop1: event property %1 ;id object set !Property1 #property event property %1 set !Property2 #property event property %1 set !Property3 #property if ! ( !Property1 = !Property2 && !Property2 = !Property3 ) goto GetProperty_loop1 return #property ;sub Globalvalues_all v 1.1 -> p 1 -> d 0 sub Globalvalues_all ;%1 nome_global_var di solito id_script if %special_globalvar <> N/A && %1 = %idscript set %1 %1 , %special_globalvar nameSpace push nameSpace local #systime , _ , GET set !lpc #lpc set #lpc 1000 set !global * . %1 if %2 = #true display ok !global gosub split_to_array !global | matglobal set !to ( #result - 3 ) / 2 set !i 0 while !i < !to { set !i !i + 1 set !n !i * 2 + 1 set !v !n + 1 str del %matglobal . !n 1 1 set % . #strres %matglobal . !v } set #lpc !lpc nameSpace Clear nameSpace Pop return ;sub Globalvar_del v 1.1 -> p 2 -> d 0 sub Globalvar_del ;%1 nome_global_var di solito id_script, %2 nomevar da cancellare if %special_globalvar <> N/A && %1 = %idscript set %1 %1 , %special_globalvar nameSpace push nameSpace local #systime , _ , %2 , DEL set !lpc #lpc set #lpc 1000 set !global * . %1 set !varName v , %2 , | str pos !global !varName if #strres = 0 { set #lpc !lpc nameSpace clear nameSpace pop return #true } set !varNamePos #strres str len !varName set !splitString !varNamePos + #strres - 1 set !splitString2 !varNamePos - 2 str left !global !splitstring2 set !globalPart1 #strres str del !global 1 !splitString set !global #strres str len !global set !globalLen #strres str pos !global | set !splitString !globalLen - #strres + 1 str right !global !splitstring set !global #strres set * . %1 !globalPart1 , !global set #lpc !lpc nameSpace clear nameSpace pop return #true ;sub Globalvar_get v 1.1 -> p 2 -> d 0 sub Globalvar_get ;%1 nome_global_var di solito id_script, %2 nomevar da caricare if %special_globalvar <> N/A && %1 = %idscript set %1 %1 , %special_globalvar nameSpace push nameSpace local #systime , _ , %2 , GET set !lpc #lpc set #lpc 1000 set !global * . %1 set !varName v , %2 , | str pos !global !varName set #result #strres <> 0 if #result { set !varNamePos #strres str len !varName set !delString !varNamePos + #strres - 1 str del !global 1 !delString set !global #strres str pos !global | set !varNamePos #strres - 1 str left !global !varNamePos set % . %2 #strres } else { set % . %2 N/A } set #lpc !lpc nameSpace Clear nameSpace Pop return #result ;sub Globalvar_put v 1.1 -> p 2 -> d 0 sub Globalvar_put ;%1 nome_global_var di solito id_script, %2 nomevar da salvare if %special_globalvar <> N/A && %1 = %idscript set %1 %1 , %special_globalvar nameSpace push nameSpace local #systime , _ , %2 , PUT set !lpc #lpc set #lpc 1000 set !global * . %1 set !varName v , %2 , | str pos !global !varName if #strres = 0 { if |CEO*FILESYSTEM_MODIFIED| notin !global set !global |CEO*FILESYSTEM_MODIFIED| set * . %1 !global , !varName , % . %2 , | set #lpc !lpc nameSpace clear nameSpace pop return #true } set !varNamePos #strres str len !varName set !splitString !varNamePos + #strres - 1 str left !global !splitstring set !globalPart1 #strres str del !global 1 !splitString set !global #strres str len !global set !globalLen #strres str pos !global | set !splitString !globalLen - #strres + 1 str right !global !splitstring set !global #strres set * . %1 !globalPart1 , % . %2 , !global set #lpc !lpc nameSpace clear nameSpace pop return #true ;sub Menu_add_menu v 1.1 -> p 1 -> d 0 sub Menu_add_menu set !id %1 ;label menu set !label %2 ;label menu if %0 > 2 { for !vs_for 3 %0 set !label !label , #spc , % . !vs_for } set %menu_nButton %menu_nButton + 1 set %menu_label . %menu_nButton !label set %menu_valido . %menu_nButton #false set %BUT_MENU . %menu_nButton !id return ;sub Menu_crea v 1.2 -> p 0 -> d 0 sub Menu_crea set !mc_lpc #lpc set #lpc 1000 Menu Clear menu Window Title %Menu_Title - v %Menu_Version menu window transparent 100 Menu Window size %Menu_Width %Menu_Height Menu Window Color $000000 menu Font Transparent #true set !y_intestazione 2 set !add_y 0 if %new_version set !add_y 20 set !y_help %Menu_Height - 67 set !y_stato %Menu_Height - 13 set !y_button !y_intestazione + 54 + !add_y ;Intestazione set !x_box 2 set !y_box !y_intestazione set !w_box %Menu_Width - 4 set !h_box 50 Menu Shape mnuRectIntestazione !x_box !y_box !w_box !h_box 4 7 1 gray 7 $333333 Menu Font Name tahoma Menu Font Color yellow ;$F7D358 Menu font size 12 Menu Font Style b menu font bgcolor $333333 set !x !x_box + 6 set !y !y_box + 3 Menu Text Titolo !x !y %Menu_Title Menu Font Color $FFBF00 Menu font size 8 set !x !x_box + 6 set !y !y + 18 Menu Text Titolo !x !y %Menu_SubTitle Menu Font Color gray Menu font size 7 set !x !x_box + 6 set !y !y + 14 Menu Text Titolo !x !y by %Menu_Owner set !x !x_box + !w_box - 38 Menu Text Titolo !x !y v %Menu_Version Menu font size 5 set !y !y_box set !x !x_box + !w_box - 35 menu font bgcolor $555555 Menu Font Color silver if %new_version Menu Font Color $0080FF menu Button butGoSite !x !y 35 18 WWW ;Fine Intestazione if %new_version { Menu font size 6 Menu Font Color $0080FF set !x_box 4 set !y_box !y_intestazione + !h_box + 2 set !w_box %Menu_Width - 8 set !h_box 18 Menu Shape mnuRectNewVersion !x_box !y_box !w_box !h_box 4 7 1 $0080FF 7 $333333 set !y !y_box + 4 set !x !x_box + 45 menu text txt !x !y DISPONIBILE UNA NUOVA VERSIONE SUL SITO } ;pulsanti Menu font size 7 set !x_box 2 set !y_box !y_button set !w_box %Menu_Width - 4 set !h_box !y_help - !y_box - 4 set !h_panel !h_box - %menu_nbutton * 17 set !ymtem !ymenupulsanti Menu Shape mnuRectBoxPulsanti !x_box !y_box !w_box !h_box 3 7 1 gray 7 $002222 set %menu_valido_AVVIO #true for !f 2 %menu_nbutton { set !id %BUT_MENU . !f if %menu_valido_ . !id <> #True set %menu_valido_AVVIO #false } for !f 1 %menu_nbutton { if !f = %menu_sel { menu font bgcolor $333333 Menu Font Color white set !y !y_box + ( 17 * ( !f - 1 ) ) menu Button BUT_ATTUALE !x_box !y !w_box 17 %menu_label . !f set !y_panel !y + 17 } else { Menu Font Color yellow set !id %BUT_MENU . !f if %menu_valido_ . !id menu font bgcolor $006600 else menu font bgcolor $000088 if !f > %menu_sel set !y ( ( !y_box + !h_box ) - ( %menu_nbutton * 17 ) ) + ( 17 * ( !f - 1 ) ) if !f < %menu_sel set !y !y_box + ( 17 * ( !f - 1 ) ) menu Button BUT_MENU . !f !x_box !y !w_box 17 %menu_label . !f } } ;HELP set !x_box 2 set !y_box !y_help set !w_box %Menu_Width - 4 set !h_box 50 Menu Shape mnuRectMex1 !x_box !y_box !w_box !h_box 4 7 1 gray 7 $333333 Menu Shape mnuRectMex2 !x_box !y_box !w_box 13 4 7 1 gray 7 $550000 set !x !x_box + 6 set !y !y_box + 1 Menu Font Color aqua Menu Font Style b menu font bgcolor $550000 menu text txt !x !y MESSAGGIO set !y !y + 15 set !x !x_box + 5 Menu Font Color silver Menu Font Style b Menu font size 6 menu font bgcolor $333333 menu text txtMenuMex1 !x !y set !y !y + 10 menu text txtMenuMex2 !x !y set !y !y + 10 menu text txtMenuMex3 !x !y ;stato Menu Font Color white Menu Font Style b Menu font size 6 menu font bgcolor $000000 set !x 5 set !y !y_stato menu text txt !x !y AZIONE: set !x 40 Menu Font Color yellow menu text txtAzione !x !y CREA MENU ;area_sottomenu set !x_box 2 set !y_box !y_panel set !w_box %Menu_Width - 4 set !h_box !h_panel - 1 ;Menu Shape mnuRect1 !x_box !y_box !w_box !h_box 3 7 1 gray 7 $666666 set !id %BUT_MENU . %menu_sel set !nomesub Menu_crea_ , !id gosub !nomesub !x_box !y_box !w_box !h_box set #lpc !mc_lpc Return ;sub Menu_crea_box v 1.1 -> p 5(x) -> d 0 sub Menu_crea_box ;%1 %2 %3 %4 x y w h, %5 label set !l_mcb %5 if %0 > 5 { for !vs_for 6 %0 set !l_mcb !l_mcb , #spc , % . !vs_for } menu font size 7 Menu Shape mnuRectcb1 . #random %1 %2 %3 %4 3 7 1 gray 7 $002222 Menu Shape mnuRectcb2 . #random %1 %2 %3 13 3 7 1 gray 7 $004444 set !y_mcb %2 + 1 set !x_mcb %1 + 10 menu font bgcolor $004444 menu text txt !x_mcb !y_mcb !l_mcb return ;sub Menu_crea_box_loot_equip v 1.3 -> p 5(x) -> d Menu_Crea_Box_Multi_Value sub Menu_crea_box_loot_equip ;%1 %2 %3 set !y_mcb %2 set !x_mcb %1 set !w_mcb %3 menu font size 7 Menu Shape mnuRect1 !x_mcb !y_mcb !w_mcb 70 3 7 1 gray 7 $002222 Menu Shape mnuRect1 !x_mcb !y_mcb !w_mcb 16 3 7 1 gray 7 $004444 set !yt !y_mcb + 1 set !xt !x_mcb + 10 set !wt 15 menu font bgcolor $004444 if %Loot_equip = N/A set %Loot_equip #true Menu Check chkloot_equip !xt !yt !wt 13 %Loot_equip set !yt !y_mcb + 2 set !xt !x_mcb + 28 menu font color yellow menu text txt !xt !yt LOOT EQUIP menu font color silver set !yt !y_mcb + 3 set !xt !x_mcb + 103 menu font size 5 menu text txt !xt !yt SE IL VALORE È MAGGIORE DI menu font color yellow set !yt !y_mcb set !xt !x_mcb + 210 set !wt 30 menu edit edtasses_pass_value !xt !yt !wt %asses_pass_value menu font bgcolor $227722 menu font color white set !xt !x_mcb + 251 menu button butAsses_Check !xt !yt 35 16 CHECK menu font size 5 menu font color silver set !yt !y_mcb + 19 set !xt !x_mcb + 70 menu font bgcolor $002222 menu text txt !xt !yt MOLTIPLICATORI PROPRIETA EQUIP IN % set !xbmv !x_mcb + 10 set !ybmv !y_mcb + 29 set !wbmv !w_mcb - 20 set !hbmv 20 gosub Menu_Crea_Box_Multi_Value !xbmv !ybmv !wbmv !hbmv ASSES menu font size 5 menu font color silver set !yt !y_mcb + 50 set !xt !x_mcb + 12 menu font bgcolor $002222 menu text txt !xt !yt VALORI ALTI AUMENTANO IL PESO DELLA PROP NEL CALCOLARE IL VALORE set !yt !y_mcb + 58 set !xt !x_mcb + 13 menu text txt !xt !yt DELL' OGGETTO COMPLESSIVO. SPECIFICA I TUOI SLAYER IN SLAYERCHECK return ;sub Menu_crea_box_multi_value v 1.0 -> p 5(x) -> d Menu_display_box_multi_value sub Menu_crea_box_multi_value ;%1 %2 %3, %4, %5 id set !x_cbmv %1 set !y_cbmv %2 set !w_cbmv %3 set !h_cbmv %4 set !id_cbmv %5 ;coordinate set !lbl multivalue_ , !id_cbmv , _x set % . !lbl !x_cbmv set !lbl multivalue_ , !id_cbmv , _y set % . !lbl !y_cbmv set !lbl multivalue_ , !id_cbmv , _w set % . !lbl !w_cbmv set !lbl multivalue_ , !id_cbmv , _h set % . !lbl !h_cbmv ;garbage set !lbl_garbage multivalue_ , !id_cbmv , _garbage set % . !lbl_garbage gosub Menu_display_Box_Multi_Value !id_cbmv return ;sub Menu_crea_check_box v 1.2 -> p 6(x) -> d 0 sub Menu_crea_check_box ;%1 %2 %3 %4 x y w h, %5 id , %6 label set !l_mcb %6 if %0 > 6 { for !vs_for 7 %0 set !l_mcb !l_mcb , #spc , % . !vs_for } menu font size 7 Menu Shape mnuRectccb1 . #random %1 %2 %3 %4 3 7 1 gray 7 $002222 Menu Shape mnuRectccb2 . #random %1 %2 %3 13 3 7 1 gray 7 $004444 set !y_mcb %2 + 0 set !x_mcb %1 + 10 if % . %5 = N/A set % . %5 #false menu font bgcolor $004444 Menu Check chk . %5 !x_mcb !y_mcb 13 13 % . %5 set !y_mcb %2 + 1 set !x_mcb %1 + 25 menu text txt !x_mcb !y_mcb !l_mcb return ;sub Menu_crea_choise v 1.3 -> p 8(11) -> d 0 sub Menu_crea_choise set !x_linea %1 set !y_linea %2 set !w_linea %3 set !o_linea %4 set !id_linea %5 set %CHOISES_ . !id_linea %6 set !sel_linea %7 set !txt_linea %8 set !fz 7 set !xadd_linea 185 set !col_linea white if %0 >= 9 && %9 <> N/A set !fz %9 ;size font if %0 >= 10 && %10 <> N/A set !xadd_linea %10 ;x dei valori if %0 >= 11 && %11 <> N/A set !col_linea %11 ;colore bottoni menu font size !fz menu font color silver menu font bgcolor $002222 set !y !y_linea + 1 set !x !x_linea + 35 menu text txt !x !y !txt_linea if !o_linea = #true menu font color yellow else menu font color !col_linea if %CHOISE_ . !id_linea notin %CHOISES_ . !id_linea set %CHOISE_ . !id_linea !sel_linea set !x !x_linea + !xadd_linea menu text txtChoise_ . !id_linea !x !y %CHOISE_ . !id_linea menu font bgcolor $111111 set !fz !fz - 1 menu font size !fz set !xt !x_linea + 10 set !yt !y_linea - 2 set !ht 14 menu button butChoise_ . !id_Linea !xt !yt 22 !ht SET return ;sub Menu_crea_linea_chest v 1.3 -> p 5(7) -> d 0 sub Menu_crea_linea_chest set !x_linea %1 set !y_linea %2 set !w_linea %3 set !o_linea %4 set !id_linea %5 set !fz 7 set !usabank #False if %0 = 6 && %6 <> BANK set !fz %6 ;size font if %0 = 7 && %7 <> BANK set !fz %7 ;size font if %0 = 6 && %6 = BANK set !usabank #true if %0 = 7 && %7 = BANK set !usabank #true menu font size !fz menu font color silver menu font bgcolor $002222 set !y !y_linea + 1 set !x !x_linea + 35 menu text txt !x !y CHEST !id_Linea if !o_linea = #true menu font color yellow set !x !x_linea + 185 menu text txtChest_ . !id_linea !x !y %Chest_ . !id_linea menu font bgcolor $111111 set !fz !fz - 1 menu font size !fz set !xt !x_linea + 10 set !yt !y_linea set !ht !fz + !fz + 1 menu button butChest_ . !id_Linea !xt !yt 22 !ht SET if !usabank = #true { menu font color silver set !xt !x_linea + !w_linea - 32 menu button butBankChest_ . !id_Linea !xt !yt 30 !ht BANK set !x !x_linea + 160 set !y !y_linea + 2 menu font color $00bb00 menu font bgcolor $002222 if %bank_ . !id_linea = #TRUE menu text txtBankChest_ . !id_linea !x !y BANK else menu text txtBankChest_ . !id_linea !x !y #spc } if !o_linea = #false { set !xt !x_linea + !w_linea - 15 menu button butResetChest_ . !id_Linea !xt !yt 13 !ht x } return ;sub Menu_crea_linea_position v 1.3 -> p 4(7) -> d 0 sub Menu_crea_linea_position ;%1 %2 %3 dimension, %4 id variabile, %5 text to write, %6 obbligatorio (#true) , %7 font size set !x_linea %1 set !y_linea %2 set !w_linea %3 set !id_linea %4 if %0 < 5 set !text_linea !id_linea else set !text_linea %5 if %0 < 6 set !o_linea #true else set !o_linea %6 if %0 < 7 set !fz 7 else set !fz %7 menu font size !fz menu font color silver menu font bgcolor $002222 set !y !y_linea + 1 set !x !x_linea + 35 menu text txt !x !y POSIZIONE !text_linea (x y z) if !o_linea menu font color yellow else menu font color white set !x !x_linea + 185 menu text txtPosition_ . !id_linea !x !y %posX_ . !id_linea %posY_ . !id_linea %posZ_ . !id_linea menu font bgcolor $111111 set !fz !fz - 1 menu font size !fz set !xt !x_linea + 10 set !yt !y_linea menu button butPosition_ . !id_Linea !xt !yt 22 13 SET return ;sub Menu_crea_linea_rune_book v 1.3 -> p 4(7) -> d 0 sub Menu_crea_linea_rune_book set !x_linea %1 set !y_linea %2 set !w_linea %3 set !id_linea %4 if %0 < 5 set !o_linea #true else set !o_linea %5 if %0 < 6 set !fz 7 else set !fz %6 if %0 < 7 set %RBFLAG_ . !id_linea N/A else set %RBFLAG_ . !id_linea %7 menu font color silver menu font size !fz menu font bgcolor $002222 set !yt !y_linea + 1 set !xt !x_linea + 35 menu text txt !xt !yt ID set !xt !x_linea + 107 menu text txt !xt !yt DA RUNA set !xt !x_linea + 178 menu text txt !xt !yt A if !o_linea menu font color yellow else menu font color white set !xt !x_linea + 50 menu text txtRuneBook_ . !id_linea !xt !yt %RB_ . !id_linea menu font bgcolor $111111 set !fz !fz - 1 menu font size !fz set !xt !x_linea + 10 set !yt !y_linea menu button butRunebook_ . !id_Linea !xt !yt 22 13 SET set !yt !y_linea - 2 set !xt !x_linea + 158 if %firstrune_ . !id_linea = N/A set %firstrune_ . !id_linea 0 menu Edit edtfirstrune_ . !id_linea !xt !yt 16 %firstrune_ . !id_linea set !xt !x_linea + 190 if %lastrune_ . !id_linea = N/A set %lastrune_ . !id_linea 0 menu Edit edtlastrune_ . !id_linea !xt !yt 16 %lastrune_ . !id_linea return ;sub Menu_crea_type_box v 1.4 -> p 6(x) -> d 0 sub Menu_crea_type_box ;%1 %2 %3 %4 x y w h, %5 type style box, %6 label set !l_mcb %6 if %0 > 6 { for !vs_for 7 %0 set !l_mcb !l_mcb , #spc , % . !vs_for } set !mctb1_b $002222 set !mctb1_f gray set !mctb2_b $004444 set !mctb2_f gray set !mctb_t silver set !mctb_h 13 menu font size 7 if %5 = DEBUG { set !mctb1_b $290B2B set !mctb1_f $86088A set !mctb2_b $5B0B54 set !mctb2_f $86088A set !mctb_t white Menu Shape mnuRectdeb1 . #random %1 %2 %3 %4 3 7 1 !mctb1_f 7 !mctb1_b Menu Shape mnuRectdeb2 . #random %1 %2 %3 !mctb_h 3 7 1 !mctb2_f 7 !mctb2_b set !y_mcb %2 + 1 set !x_mcb %1 + 10 menu font color !mctb_t menu font bgcolor !mctb2_b menu text txt !x_mcb !y_mcb !l_mcb } if %5 = RADAR { set !mctb2_b $000000 set !mctb2_f gray set !mctb_t gray Menu Shape mnuRectrad . #random %1 %2 %3 %4 3 7 1 !mctb2_f 7 !mctb2_b set !y_mcb %2 + 1 set !x_mcb %3 / 2 - 10 menu font size 6 menu font color !mctb_t menu font bgcolor !mctb2_b menu text txt !x_mcb !y_mcb !l_mcb } if %5 = SUB { set !mctb1_b $001111 set !mctb2_b $191919 set !mctb_t gray menu font size 6 set !mctb_h 12 Menu Shape mnuRectctb1 . #random %1 %2 %3 %4 3 7 1 !mctb1_f 7 !mctb1_b Menu Shape mnuRectctb2 . #random %1 %2 %3 !mctb_h 3 7 1 !mctb2_f 7 !mctb2_b set !y_mcb %2 + 1 set !x_mcb %1 + 10 menu font bgcolor !mctb2_b menu font color !mctb_t menu text txt !x_mcb !y_mcb !l_mcb } return ;sub Menu_display_box_multi_value v 1.2 -> p 5(x) -> d 0 sub Menu_display_box_multi_value set !id_le %1 set !max_le multivalue_ , !id_le , _max set !i_le multivalue_ , !id_le , _index if % . !i_le = N/A set % . !i_le 1 if %0 = 2 && %2 <> SAVE { set % . !i_le % . !i_le + %2 if % . !i_le < 1 set % . !i_le % . !max_le if % . !i_le > % . !max_le set % . !i_le 1 } set !linea_le multivalue_ , !id_le , _ , % . !i_le set !garbage_le multivalue_ , !id_le , _garbage if %0 = 2 && %2 = SAVE { gosub Split_to_Array % . !linea_le | sr if %sr3 = 1 { ;gosub GlobalVar_put %idscript %sr2 } if %sr3 = 2 { menu get edtMultivalue_ , !id_le set % . %sr2 #menures gosub GlobalVar_put %idscript %sr2 } return } ;pulisci gosub Split_to_Array % . !garbage_le | garbage set !garbage_max #result if !garbage_max > 0 { for !i 1 !garbage_max { str len %garbage . !i if #strres > 1 { menu delete %garbage . !i } } } set % . !garbage_le _ ;coordinate set !lbl_mcb multivalue_ , !id_le , _x set !x_le % . !lbl_mcb set !lbl_mcb multivalue_ , !id_le , _y set !y_le % . !lbl_mcb set !lbl_mcb multivalue_ , !id_le , _w set !w_le % . !lbl_mcb set !lbl_mcb multivalue_ , !id_le , _h set !h_le % . !lbl_mcb gosub Split_to_Array % . !linea_le | sr menu font size 5 Menu Font Style b menu font color silver set !lbl_mcb mnurectle1_ , !id_le set !wt_le !w_le / 2 Menu Shape !lbl_mcb !x_le !y_le !wt_le !h_le 3 7 1 gray 7 $222222 set % . !garbage_le | , !lbl_mcb , % . !garbage_le menu font bgcolor $222222 set !xt_le !x_le + 1 set !yt_le !y_le + 1 set !ht_le !h_le - 2 set !lbl_mcb butMultiValueMove_sx_ , !id_le Menu button !lbl_mcb !xt_le !yt_le 15 !ht_le < set % . !garbage_le | , !lbl_mcb , % . !garbage_le set !xt_le !x_le + !w_le / 2 - 12 set !lbl_mcb butMultiValueMove_dx_ , !id_le Menu button !lbl_mcb !xt_le !yt_le 15 !ht_le > set % . !garbage_le | , !lbl_mcb , % . !garbage_le menu font bgcolor $002222 set !xt_le !x_le + 18 set !yt_le !y_le + 6 menu font color white set !lbl_mcb mnutxtle1_ , !id_le Menu text !lbl_mcb !xt_le !yt_le %sr1 set % . !garbage_le | , !lbl_mcb , % . !garbage_le menu font bgcolor $000000 if %sr3 = 1 { set !lbl_mcb mnurectle2_ , !id_le set !wt_le !w_le / 2 set !xt_le !x_le + !w_le / 2 Menu Shape !lbl_mcb !xt_le !y_le !wt_le !h_le 3 7 1 gray 7 $000000 set % . !garbage_le | , !lbl_mcb , % . !garbage_le set !xt_le !x_le + !w_le / 2 + !w_le / 4 - 5 set !yt_le !y_le + 5 set !lbl_mcb txtMultivalue_ , %sr2 Menu text !lbl_mcb !xt_le !yt_le % . %sr2 set % . !garbage_le | , !lbl_mcb , % . !garbage_le menu font color white set !xt_le !x_le + !w_le - 15 set !yt_le !y_le + 1 set !ht_le !h_le / 2 set !lbl_mcb butMultiValueChangeup_ , %sr2 Menu button !lbl_mcb !xt_le !yt_le 15 !ht_le ^ set % . !garbage_le | , !lbl_mcb , % . !garbage_le set !yt_le !y_le + !h_le / 2 set !lbl_mcb butMultiValueChangedown_ , %sr2 Menu button !lbl_mcb !xt_le !yt_le 15 !ht_le - set % . !garbage_le | , !lbl_mcb , % . !garbage_le return } if %sr3 = 2 { set !lbl_mcb mnurectle2_ , !id_le set !wt_le !w_le / 2 set !xt_le !x_le + !w_le / 2 Menu Shape !lbl_mcb !xt_le !y_le !wt_le !h_le 3 7 1 gray 7 $000000 set % . !garbage_le | , !lbl_mcb , % . !garbage_le menu font bgcolor $000000 set !xt_le !x_le + !w_le / 2 + 3 set !yt_le !y_le + 1 set !wt_le !w_le / 2 - 2 set !lbl_mcb edtMultivalue_ , !id_le menu font size 6 menu edit !lbl_mcb !xt_le !yt_le !wt_le % . %sr2 set % . !garbage_le | , !lbl_mcb , % . !garbage_le return } display ok Valore Box_Multi_Value sbagliato return ;sub Menu_init v 1.0 -> p 0 -> d 0 sub Menu_init set %menu_sel 1 set %menu_lastsel 1 set %menu_nButton 0 set %menu_col_i 51 set %menu_col_ko 33 set %menu_col_ok 58 gosub Menu_Add_Menu AVVIO AVVIO return ;sub Menu_modal_message v 1.2 -> p 0 -> d 0 sub Menu_modal_message set !title %1 set !text %2 set !type %3 set !w_menu %w_menu if %w_menu_tot <> N/A && %w_menu_tot > !w_menu set !w_menu %w_menu_tot set !oldalarm_lpc #lpc set #lpc 1000 gosub replace !title _ #spc set !title #strres gosub split_to_Array !text $ mmm_text set !mmm_len #result Menu Font Name tahoma menu Font Transparent #true Menu Font Style b set !alarm_wb 190 set !alarm_hb 75 + !mmm_len * 7 set !alarm_xb ( !w_menu - !alarm_wb ) / 2 set !alarm_yb ( %h_menu - !alarm_hb ) / 2 Menu Shape alarm_R0 1 1 !w_menu %h_menu 3 7 2 gray 4 $555555 Menu Shape alarm_R1 !alarm_xb !alarm_yb !alarm_wb !alarm_hb 3 7 2 red 7 $000033 Menu Shape alarm_R2 !alarm_xb !alarm_yb !alarm_wb 25 3 7 2 red 7 $000055 set %alarm_control |alarm_R1|alarm_R2| set !alarm_x !alarm_xb + 5 set !alarm_y !alarm_yb + 5 Menu font size 10 Menu Font Color yellow menu font bgcolor $000055 menu text alarm_TITLE !alarm_x !alarm_y !title set %alarm_control %alarm_control , alarm_TITLE| Menu font size 8 Menu Font Color white menu font bgcolor $000033 set !alarm_x !alarm_xb + 5 set !alarm_y !alarm_yb + 30 for !i 1 !mmm_len { menu text alarm_TEXT . !i !alarm_x !alarm_y %mmm_text . !i set %alarm_control %alarm_control , alarm_TEXT , !i , | if !i = 1 { Menu font size 6 Menu Font Color silver set !alarm_y !alarm_y + 5 } set !alarm_y !alarm_y + 7 } if !type = MODE1 { Menu font size 6 Menu Font Color silver Menu Font bgcolor purple set !alarm_x !alarm_xb + 5 set !alarm_y !alarm_y + 2 set %alarm_b1 IGNORA_ORA set %alarm_b2 IGNORA_SEMPRE set %alarm_b3 CONTINUA menu button alarm_B1 !alarm_x !alarm_y 90 15 IGNORA ORA set !alarm_x !alarm_xb + 95 menu button alarm_B2 !alarm_x !alarm_y 90 15 IGNORA SEMPRE Menu Font bgcolor black set !alarm_x !alarm_xb + 5 set !alarm_y !alarm_y + 15 menu button alarm_B3 !alarm_x !alarm_y 180 15 CONTINUA E NON IGNORARE set %alarm_control %alarm_control , alarm_B1|alarm_B2|alarm_B3| } if !type = MODE2 { Menu font size 6 Menu Font Color silver set %alarm_b1 CONTINUA Menu Font bgcolor black set !alarm_x !alarm_xb + 5 set !alarm_y !alarm_y + 15 menu button alarm_B1 !alarm_x !alarm_y 180 15 CONTINUA set %alarm_control %alarm_control , alarm_B1| } set %alarm_control %alarm_control , |alarm_R0 gosub alarm_menu_loop set !v_return #result gosub split_to_Array %alarm_control | object for !i 1 #result { menu delete %object . !i } set #lpc !oldalarm_lpc return !v_return ;sub Menu_set_bank_chest v 1.0 -> p 1 -> d antiblock sub Menu_set_bank_chest set !pID %1 set !pWHERE %2 set !p3 %3 set !p4 %4 msg BANK BANK $ gosub antiblock gosub wait_gump container_gump 5 if #CONTNAME = container_gump && #CONTTYPE = IKF { return #CONTID } return N/A ;sub Menu_set_chest v 1.1 -> p 1 -> d Set_Menu_Mex targetta_oggetto sub Menu_set_chest set !pID %1 set !pWHERE %2 set !p3 %3 set !p4 %4 event exmsg #charid 3 %menu_col_i Targhetta Chest !pID if !pWHERE = C { if !p3 = #backpackid gosub Set_Menu_Mex CLICCA SU UN CONTENITORE $ DEVE ESSERE NELLO ZAINO $ NB: LO SCRIPT NON FA NESSUN CONTROLLO SUL CONTENITORE else gosub Set_Menu_Mex CLICCA SU UN CONTENITORE $ DEVE ESSERE NEL CONTENITORE %4 $ NB: LO SCRIPT NON FA NESSUN CONTROLLO SUL CONTENITORE } if !pWHERE = G { gosub Set_Menu_Mex CLICCA SU UN CONTENITORE $ DEVI ESSERE NELLA POSIZIONE %4 $ NB: LO SCRIPT NON FA NESSUN CONTROLLO SUL CONTENITORE } gosub targetta_oggetto set !oggid #result if !oggid <> N/A { if !pWHERE = C { finditem !oggid C_ , !p3 if #findkind = -1 { event exmsg #charid 3 %menu_col_ko Deve essere nel Contenitore specificato! } else { return !oggid } return N/A } if !pWHERE = G { finditem !oggid G_ , !p3 if #findkind = -1 { event exmsg #charid 3 %menu_col_ko Deve essere a terra nel range di !p3 tile. } else { return !oggid } return N/A } } return N/A ;sub Menu_set_intestazione v 1.0 -> p 4 -> d Replace sub Menu_set_intestazione set %Menu_Title %1 ;Titolo script set %Menu_SubTitle %2 ;Sottotitolo set %Menu_Owner %3 ;Scripter set %Menu_Version %4 ;Versione Script gosub Replace %Menu_Title _ #spc set %Menu_Title #strRes gosub Replace %Menu_SubTitle _ #spc set %Menu_SubTitle #strRes gosub Replace %Menu_Owner _ #spc set %Menu_Owner #strRes Return ;sub Menu_set_runebook v 1.1 -> p 1 -> d 0 sub Menu_set_runebook set !pID %1 set !pWHERE %2 set !p3 %3 set !p4 %4 if GROUND in %RBFLAG_ . !pid { set !pWHERE G set !p3 2 } if BACKPACK in %RBFLAG_ . !pid { set !pWHERE C set !p3 #BACKPACKID } if ANYWHERE in %RBFLAG_ . !pid { set !pWHERE A } event exmsg #charid 3 %menu_col_i Targhetta Runebook !pID if !pWHERE = C { if !p3 = #backpackid gosub Set_Menu_Mex CLICCA SU UN RUNEBOOK $ DEVE ESSERE NELLO ZAINO else gosub Set_Menu_Mex CLICCA SU UN RUNEBOOK $ DEVE ESSERE NEL CONTENITORE %4 } if !pWHERE = G { gosub Set_Menu_Mex CLICCA SU UN RUNEBOOK $ DEVI ESSERE NELLA POSIZIONE %4 } if !pWHERE = A { gosub Set_Menu_Mex CLICCA SU UN RUNEBOOK } gosub targetta_oggetto set !oggid #result if !oggid <> N/A { event property !oggid if runebook notin #property { event exmsg #charid 3 %menu_col_ko Non sembra un RuneBook! return N/A } if !pWHERE = A { return !oggid } if !pWHERE = C { finditem !oggid C_ , !p3 if #findkind = -1 { event exmsg #charid 3 %menu_col_ko Deve essere nel Contenitore specificato! } else { return !oggid } return N/A } if !pWHERE = G { finditem !oggid G_ , !p3 if #findkind = -1 { event exmsg #charid 3 %menu_col_ko Deve essere a terra nel range di !p3 tile. } else { return !oggid } return N/A } } return N/A ;sub Menu_set_size v 1.0 -> p 2 -> d 0 sub Menu_set_size set %Menu_Width %1 ;width set %Menu_Height %2 ;height Return ;sub Open_container v 1.4 -> p 1(4) -> d antiblock sub Open_container set !Contenitore_oc %1 set !tentativi_max_oc #scnt + 5 set !move #false ;%3 %4 contpos ;5 dove trovarlo se non c'è lo cerca in terra nel range di due tile, se #false lo cerca genericamente if %0 >= 2 set !tentativi_max_oc #scnt + %2 if %0 > 3 { set #NEXTCPOSX %3 set #NEXTCPOSY %4 set !posx %3 set !posy %4 set !move #true } set !oc_dove g_2 if %0 = 5 && %5 = #false set !oc_dove #spc else set !oc_dove %5 if #contID = !Contenitore_oc return #true oc_find_contenitore: finditem !Contenitore_oc !oc_dove if #findkind = -1 return #false set !prove 0 oc_open_contenitore: if !prove > !tentativi_max_oc return #false set !prove !prove + 1 set #LOBJECTID !Contenitore_oc event macro 17 0 wait 30 gosub antiblock if #contID <> !Contenitore_oc goto oc_open_contenitore if !move { set #contposx !posx set #contposy !posy } return #true ;sub Pathfind v 2.3 -> p 3(4) -> d AntiBlock sub Pathfind set !pf_vx %1 set !pf_vy %2 set !pf_vz %3 if %0 = 4 set !pf_max_try %4 else set !pf_max_try 10 set !pf_inizioj #JINDEX + 1 set !pf_try 0 if #CHARPOSX = !pf_vx && #CHARPOSY = !pf_vy { goto pf_fattopathfind } pf_riprovapathfind: if !pf_try > !pf_max_try { return #false } event PathFind !pf_vx !pf_vy !pf_vz set !pf_error #scnt + 1 pf_attendipathfind: for !pf_scjvai !pf_inizioj #JINDEX { scanjournal !pf_scjvai if Can't_get_there in #journal || That_location_is_blocked in #journal { DELETEJOURNAL return #false } } if #CHARPOSX = !pf_vx && #CHARPOSY = !pf_vy { goto pf_fattopathfind } if #scnt > !pf_error { gosub AntiBlock NO_ALARM_EVENT set !pf_try !pf_try + 1 goto pf_riprovapathfind } goto pf_attendipathfind pf_fattopathfind: return #true ;sub Pause_event v 1.0 -> p 0 -> d sub Pause_event set !val_pause_event Script , #spc , in , #spc , pausa. gosub menu_modal_message PAUSA !val_pause_event MODE2 set %ALARM_JINDEX #jindex + 1 set %last_journal_read_save #jindex + 1 event sysmessage Fine pausa. return ;sub Replace v 1.3 -> p 2(3) -> d Split_to_Array sub Replace ;return #strRes str pos %1 %2 ;1 stringa in cui fare il replace 2 string da cercare if #strres = 0 set #strres %1 set !string %1 ;stringa in cui fare il replace set !find %2 ;string da cercare if %0 = 3 set !replace %3 ;stringa con cui sostituire se assente da togliere else set !replace N/A ;stringa con cui sostituire se assente da togliere gosub Split_to_Array !string !find s set !string %s1 if #result > 1 { for !f 2 #result { if !replace <> N/A set !string !string , !replace if %s . !f <> N/A set !string !string , %s . !f } } set #strres !string return ;sub Save_event v 1.1 -> p 1 -> d 0 sub Save_event if %1 = START { set !w 220 set !h 60 set !w_menu %w_menu if %w_menu_tot <> N/A && %w_menu_tot > !w_menu set !w_menu %w_menu_tot set !x ( !w_menu - !w ) / 2 set !y ( %h_menu - !h ) / 2 Menu Shape shpSave !x !y !w !h 4 7 3 yellow 7 black Menu font size 18 Menu Font Color Red menu font bgcolor black set !x !x + 15 set !y !y + 15 Menu Text txtSave !x !y SAVE IN CORSO } if %1 = STOP || %1 = FINE { Menu delete shpSave Menu delete txtSave } return ;sub Set_menu_azione v 1.0 -> p X -> d 0 sub Set_menu_azione set %p1 %1 if %0 > 1 { for !vs_for 2 %0 set %p1 %p1 , #spc , % . !vs_for } set !sma_r !sma_old set !sma_old %p1 Menu set txtAzione %p1 return !sma_r ;sub Set_menu_mex v 1.0 -> p X -> d 0 sub Set_menu_mex set !valmessaggiomenu1 set !lineaactmenumessaggio 1 set !ripristinalpcmessmenu #false if #lpc < 1000 { set !oldlpc #lpc set #lpc 1000 set !ripristinalpcmessmenu #true } set !sm 1 if %1 = DEFAULT { set !sm 2 } if %0 > !sm { for !f !sm %0 { if % . !f <> $ { set !valmessaggiomenu . !lineaactmenumessaggio !valmessaggiomenu . !lineaactmenumessaggio , #spc , % . !f } else { set !lineaactmenumessaggio !lineaactmenumessaggio + 1 set !valmessaggiomenu . !lineaactmenumessaggio } } if %1 = DEFAULT { set %defaultmessaggiomenu1 !valmessaggiomenu1 set %defaultmessaggiomenu2 !valmessaggiomenu2 set %defaultmessaggiomenu3 !valmessaggiomenu3 set %defaultlineemessaggio !lineaactmenumessaggio } } if %1 = DEFAULT && %0 = 1 { set !valmessaggiomenu1 %defaultmessaggiomenu1 set !valmessaggiomenu2 %defaultmessaggiomenu2 set !valmessaggiomenu3 %defaultmessaggiomenu3 set !lineaactmenumessaggio %defaultlineemessaggio } for !f 1 3 { if !f > !lineaactmenumessaggio menu set txtMenuMex . !f else menu set txtMenuMex . !f !valmessaggiomenu . !f } if !ripristinalpcmessmenu set #lpc !oldlpc return ;sub Split v 1.0 -> p 2 -> d 0 sub Split ;return %strleft e %strright str pos %1 %2 ;1 stringa da splittare 2 delimitatore if #strres = 0 { set %StrLeft %1 set %StrRight N/A } else { set %Temp #strres - 1 str left %1 %Temp set %StrLeft #strres str Len %2 set %Temp %Temp + #strres str del %1 1 %Temp set %StrRight #strres str len %StrRight if #strres = 0 set %StrRight N/A } return ;sub Split_to_array v 1.1 -> p 3(4) -> d 0 sub Split_to_array ;return #result len array namespace Push namespace Local split , #systime set !lpc #lpc if #lpc < 500 set #lpc 500 set !string %1 ;string to split set !divider %2 ;delimiter set !arrayName %3 ;arrayname str Len !divider set !lenDelimter #strres if %0 > 3 set !namespace %4 else set !namespace #false set !length 0 repeat { set !length !length + 1 str Pos !string !divider 1 if #strRes = 0 { set !done #true set ! . !arrayName , !length !string } else { set !pos #strRes set !len !pos - 1 str Left !string !len set ! . !arrayName , !length #strRes set !pos !pos + ( !lenDelimter - 1 ) str Del !string 1 !pos set !string #strRes } } until ( !done = #true ) set #result !length if !namespace <> #false { namespace Copy !arrayName , * To Local !namespace } else { for !i 1 #result { set !value !arrayName , !i set % . !arrayName , !i ! . !value } } set #lpc !lpc namespace Clear namespace Pop return #result ;sub Sposta_item v 1.1 -> p 3 -> d AntiBlock sub Sposta_item set !si_ogg %1 ;item da spostare set !si_tar %2 ;contenitore destinazione set !si_tot %3 ;quanti oggetti spostare Exevent Drag !si_ogg !si_tot gosub AntiBlock NO_ALARM_EVENT Exevent Dropc !si_tar return ;sub Targetta_oggetto v 1.3 -> p 0 -> d 0 sub Targetta_oggetto set #lTargetID N/A set #targCurs 1 set #lTargetKind 1 While #targCurs = 1 { onHotKey ESC set #targCurs 0 wait 1 } if #lTargetID = YC return N/A return #lTargetID ;sub Torna_a_restock v 1.0 -> p 0 -> d 0 sub Torna_a_restock gosub Set_Menu_Azione TORNO RESTOCK gosub Menu_info_quest_step 1 torna_a_RESTOCK_loop: gosub Torna_Posizione RESTOCK if #result = #false { if %id_error = cannot return #false goto torna_a_RESTOCK_loop } return #true ;sub Torna_posizione v 1.3 -> p 1(2) -> d Set_Menu_Azione AntiBlock Use_Runebook PathFind sub Torna_posizione ;r #true o #false (%id_error return type error) ;necessaria %magia_usata set !id_position %1 ;id per costruire le var necessarie set !go_point #true if %0 = 2 set !go_point %2 ;se #false non va al punto specifico ma si recalla e basta gosub Set_Menu_Azione TORNO !id_position ;prova_dist_e_magari_path if !go_point { if ( ABS ( #CHARPOSX - %posX_ . !id_position ) ) < 10 && ( ABS ( #CHARPOSY - %posY_ . !id_position ) ) < 10 { gosub PathFind %posX_ . !id_position %posY_ . !id_position %posZ_ . !id_position 2 if #result = #True return #true else goto tp_recall } } tp_riprova: if !go_point { if #CHARPOSX = %posX_ . !id_position && #CHARPOSY = %posY_ . !id_position goto tp_fattopath } tp_recall: gosub AntiBlock if %actRune_ . !id_position = N/A set %actRune_ . !id_position %firstRune_ . !id_position gosub Set_Menu_Azione TORNO !id_position RUNE %actRune_ . !id_position gosub Use_Runebook %RB_ . !id_position %actRune_ . !id_position %magia_usata if #result = #false { if %id_error = encumbered return #false wait 1s set %actRune_ . !id_position %actRune_ . !id_position + 1 if %actRune_ . !id_position > %lastRune_ . !id_position set %actRune_ . !id_position %firstRune_ . !id_position goto tp_riprova } if ! !go_point return #true gosub PathFind %posX_ . !id_position %posY_ . !id_position %posZ_ . !id_position if #result = #false goto tp_riprova tp_fattopath: return #true ;sub Trim v 1.1 -> p 1(2) -> d 0 sub Trim set !string %1 set !trim_mode LEFT if %0 = 2 set !trim_mode %2 if !trim_mode <> LEFT && !trim_mode <> BOTH goto loop_trim_right loop_trim: str left !string 1 if #strRes = #SPC { str del !string 1 1 set !string #strres goto loop_trim } if !trim_mode <> RIGHT && !trim_mode <> BOTH return !string loop_trim_right: str right !string 1 if #strRes = #SPC { str len !string set !vtrimdelete #strres - 1 str del !string !vtrimdelete 1 set !string #strres goto loop_trim_right } return !string ;sub Use_runebook v 4.5 -> p 3(4) -> d AntiBlock Wait_Gump sub Use_runebook ;r #true o #false (%id_error return type error) set !ur_bookid %1 ;id runebook set !ur_runenumber %2 ;index runa ;%3 magia usata (mager = mago), %4 GATE per gate invece di recall set !ur_oldx #charposx set !ur_oldy #charposy set !ur_runex 138 set !ur_ymagie 180 set !gate #false if %3 = mager set !ur_ymagie 145 if %4 = GATE { set !ur_ymagie 165 set !gate #true } set !ur_side 0 ;pagina set !ur_page !ur_runenumber + 1 set !ur_page !ur_page / 2 ;side set !ur_num !ur_runenumber / 2 set !ur_num !ur_num * 2 if !ur_num = !ur_runenumber set !ur_side 1 if !ur_side = 1 set !ur_runex 298 set !ur_pagexmod !ur_page * 34 set !ur_pagex 104 set !ur_pagex !ur_pagex + !ur_pagexmod if !ur_page > 4 set !ur_pagex !ur_pagex + 31 set !ur_recall_again 0 ur_recallopenagain: set !ur_recall_again !ur_recall_again + 1 set !jicp #JINDEX + 1 wait 5 set #LOBJECTID !ur_bookid event macro 17 0 wait 5 set !ur_error #scnt + 2 gosub AntiBlock gosub Wait_Gump generic_gump if #result = #false { if !ur_recall_again > 5 { display ok !ur_bookid set %id_error GENERIC return #false } goto ur_recallopenagain } set !ur_bookx #CONTPOSX set !ur_booky #CONTPOSY set !ur_xc !ur_bookx + !ur_pagex set !ur_yc !ur_booky + 195 click !ur_xc !ur_yc wait 5 gosub AntiBlock gosub Wait_Gump generic_gump if #result = #false goto ur_recallopenagain set !ur_bookx #CONTPOSX set !ur_booky #CONTPOSY set !ur_xc !ur_bookx + !ur_runex set !ur_yc !ur_booky + !ur_ymagie click !ur_xc !ur_yc set !ur_w4serr #scnt + 4 wait 10 ur_wait4secondrecall: for !ur_sc_recall !ur_inizioj #JINDEX { scanjournal !ur_sc_recall if : notin #journal { if You_have_not_yet_recovered in #journal || More_reagents in #journal || the_speel_fizzles in #journal { wait 50 DELETEJOURNAL goto ur_recallopenagain } if Thou_art_too_encumbered in #journal { DELETEJOURNAL set %id_error encumbered return #false } if You_cannot_teleport in #journal { DELETEJOURNAL set %id_error cannot return #false } if You_must_have in #journal { wait 1s DELETEJOURNAL goto ur_recallopenagain } } } if !gate { finditem OTF G_0 if #findkind <> -1 { set #lobjectid #findid gosub antiblock event macro 17 wait 50 } } if !ur_oldx = #charposx && !ur_oldy = #charposy && #scnt < !ur_w4serr { wait 50 goto ur_wait4secondrecall } gosub AntiBlock NO_ALARM_EVENT if !ur_oldx = #charposx && !ur_oldy = #charposy { set %id_error GENERIC return #false } set %id_error N/A return #true ;sub Wait_gump v 1.1 -> p 1(2) -> d 0 sub Wait_gump set !gumpdaattendere %1 ;name gump set !errwg #scnt + 10 if %0 = 2 set !errwg #scnt + %2 wg_subloop: wait 2 if #CONTNAME = !gumpdaattendere return #true if #scnt < !errwg goto wg_subloop return #false ;sub Wait_idgump v 1.0 -> p 1(2) -> d 0 sub Wait_idgump set !gumpdaattendere %1 ;id gump set !errwg #scnt + 10 if %0 = 2 set !errwg #scnt + %2 wg_idsubloop: wait 2 if #CONTID = !gumpdaattendere return #true if #scnt < !errwg goto wg_idsubloop return #false ;sub Wait_journal_msg v 1.1 -> p 2(4) -> d 0 sub Wait_journal_msg set !err #scnt + %1 ;err time in secondi set !start_wjm %2 ;start journal index ;%3 con 3 parametri messaggio da cercare ;%3 con 4 parametri matrice contenente messaggi da cercare ;%4 ubound matrice set !max 1 set !ok_wjm #false set !id msg if %0 = 3 set %msg1 %3 if %0 = 4 { set !id %3 set !max %4 } while #scnt < !err && ! !ok_wjm { set !finish_wjm #jindex for !scna_wjm !start_wjm !finish_wjm { scanjournal !scna_wjm if : notin #journal { for !index_wjm 1 !max { set !v_wjm !id , !index_wjm if % . !v_wjm in #journal { set !ok_wjm #true break } } } if !ok_wjm break } set !start_wjm !finish_wjm } return !ok_wjm ;sub Wait_systemvar v 1.1 -> p 2(3) -> d 0 sub Wait_systemvar set !svar %1 ;name system var set !sval %2 ;val system var set !errsv #scnt + 10 if %0 = 3 set !errsv #scnt + %3 wsv_subloop: wait 2 if # . !svar = !sval return #true if #scnt < !errsv goto wsv_subloop return #false ;sub Waitforsysvars v 1.0 -> p x -> d 0 sub Waitforsysvars ;this sub is made by Boydon ;a 3 a 3 di cui 1 nome var sys 2 valutazione 3 valore , se in più ultimo valore timeout set !cnt %0 / 3 if ( %0 % 3 = 1 ) set !timeOut #scnt + % . %0 else set !timeOut #scnt + 5 for !i 1 !cnt { set !offset 3 * !i - 2 set !evaluation !offset + 1 set !value !offset + 2 if ! ( # . % . !offset % . !evaluation % . !value ) set !i 0 if #scnt > !timeout return #false } return #true ;################## GENERIC SUB FINISH ########################## ;################## CUSTOM SUB START ############################ ;sub Add_list_item sub Add_list_item set !index %1 set !oggid %2 set !oggstack %3 sey !oggtype %4 if %y_list > %y_list_max { set %y_list %y_list_init set %x_list %x_list + %w_list set %w_menu_tot %w_menu_tot + %w_list Menu Window size %w_menu_tot %h_menu } if %loot_equip gosub asses_item !oggid #false else { set %asses_name UNKNOW set %asses_item_id %2 } ;set %item_ . #findindex %asses_item_id , _ , %asses_name , _ , %asses_value set !x %x_list set !y %y_list menu font name Arial menu font size 6 if %asses_name <> UNKNOW { if %asses_pass <> N/A { if %asses_pass menu font color $00FF00 else menu font color gray } set !name tL , #findindex menu text !name %x_list %y_list %asses_name set %asses_list_garbage _ , !name , %asses_list_garbage set !x %x_list + %w_list - 80 ;menu font color white set !name tLV , #findindex menu text !name !x %y_list v: %asses_value set %asses_list_garbage _ , !name , %asses_list_garbage } else { gosub getproperty !oggid gosub split #result $ set !name tL , #findindex gosub get_group_color #findtype menu font color #result menu text !name %x_list %y_list %strleft set %asses_list_garbage _ , !name , %asses_list_garbage set !x %x_list + %w_list - 80 set !name tLV , #findindex menu text !name !x %y_list n: !oggstack set %asses_list_garbage _ , !name , %asses_list_garbage } ;set !x %asses_x + 220 ;set !name butget , %asses_item_id ;menu button !name !x !y 20 8 GET ;set %asses_garbage _ , !name , %asses_garbage menu font size 5 set !x %x_list + %w_list - 23 set !name bIA , %asses_item_id menu button !name !x %y_list 10 8 I set %asses_list_garbage _ , !name , %asses_list_garbage set !x %x_list + %w_list - 43 set !name bGA , %asses_item_id menu button !name !x %y_list 19 8 GET set %asses_list_garbage _ , !name , %asses_list_garbage set %y_list %y_list + 9 return ;sub Asses_list_display_erase d Split_to_Array sub Asses_list_display_erase gosub Split_to_Array %asses_list_garbage _ garbage set !garbage_max #result if !garbage_max > 0 { for !i 1 !garbage_max { menu delete %garbage . !i } } set %asses_list_garbage _ menu font size 5 menu font color white return ;sub Crea_lista_item_e_container sub Crea_lista_item_e_container ;sotto un esempio di come dovrebbe essere ;if %chest_minerali = N/A ;set %chest_minerali %chest_base return ;sub Crea_menu_avviato sub Crea_menu_avviato set !lpc #lpc set #lpc 1000 set %h_menu 650 set %w_menu 300 set !w_spot 60 set !max_item_spot 16 set %w_menu_tot %w_menu ;+ !w_spot + ( ( %spot_max - 1 ) / !max_item_spot ) * !w_spot set %yfine %h_menu - 15 Menu Clear menu Window Title %Menu_Title - v %Menu_Version menu window transparent 100 set !y_intestazione 2 set !y_comandi 55 set !y_info_asses 97 set !hinfo 300 set %y_list_init 2 set %y_list !y_info_asses + !hinfo + 2 set %y_list_start %y_list set %x_list_init 8 set %x_list %x_list_init set %y_list_max %h_menu set %w_list %w_menu set %h_minimized !y_info_asses set %h_normal %y_list_start set %h_attuale %h_minimized Menu Window size %w_menu_tot %h_attuale Menu Window Color $000000 menu Font Transparent #true ;Intestazione set !xb 2 set !yb !y_intestazione set !wb %w_menu_tot - 4 set !hb 50 Menu Shape mnuRectIntest !xb !yb !wb !hb 4 7 1 gray 7 $333333 Menu Font Name tahoma Menu Font Color yellow ;$F7D358 Menu font size 12 Menu Font Style b set !x !xb + 6 set !y !yb + 3 menu font bgcolor $333333 Menu Text Titolo !x !y %Menu_Title Menu Font Color $FFBF00 Menu font size 8 set !x !xb + 6 set !y !y + 18 Menu Text Titolo !x !y %Menu_SubTitle Menu Font Color gray Menu font size 7 set !x !xb + 6 set !y !y + 14 Menu Text Titolo !x !y by %Menu_Owner set !x !xb + !wb - 38 Menu Text Titolo !x !y v %Menu_Version ;Fine Intestazione ;comandi set !yb !y_comandi set !xb 5 set !wb %w_menu - 10 gosub Menu_Crea_Box !xb !yb !wb 36 COMANDI set !x !xb + 2 set !y !yb + 15 set !w !wb / 3 - 3 menu font color black Menu Font bgcolor $008888 Menu font size 6 Menu Button ASSES_ITEM !x !y !w 17 VALUTA OGGETTO set !x !xb + !wb / 3 + 1 set !y !yb + 15 set !w !wb / 3 - 2 menu font color black Menu Font bgcolor $008888 Menu font size 6 Menu Button ASSES_CONTAINER !x !y !w 17 ELENCA CONTAINER set !x !x + !wb / 3 + 51 set !y !yb + 15 set !w !wb / 3 - 52 menu font color black Menu Font bgcolor $008888 Menu font size 6 Menu Button ASSES_CLEAR !x !y !w 17 CLEAR ;set !x !wb - !wb / 3 + 4 ;set !y !yb + 15 ;set !w !wb / 3 - 2 ;menu font color black ;Menu Font bgcolor $008888 ;Menu font size 6 ;Menu Button ASSES_ITEM !x !y !w 17 VALUTA OGGETTO ;fine comandi ;info asses Menu Font Color gray set !yb !y_info_asses set !xb 5 set !wb %w_menu - 10 menu font bgcolor $000000 gosub Menu_Crea_Box !xb !yb !wb !hinfo INFO OGGETTO set %asses_x !xb + 2 set %asses_y !yb + 15 set %asses_w !wb - 4 set %asses_garbage _ set !x !xb + 5 set !y !yb + !hinfo - 13 menu font bgcolor $002222 menu font color yellow menu text txtInfoAzione !x !y ;fine info asses menu font size 6 menu fotn name Arial menu font bgcolor $000000 menu text txtlist1 %x_list %y_list CLICCA SU ELENCA CONTAINER PER ESAMINARE GLI OGGETTI DENTRO set %asses_list_garbage _txtlist1_ ;stato menu font name Tahoma Menu Font Color white Menu Font Style b Menu font size 6 set !x 105 set !y !y_comandi + 2 ;menu text txt !x !y AZIONE: set !x 160 Menu Font Color yellow ;menu text txtAzione !x !y CREA MENU menu show 970 0 set #lpc !lpc return ;sub Display_property sub Display_property gosub getproperty %1 set %display_prop #result gosub asses_display_erase gosub Split_to_array %display_prop $ array set !ubound #result for !arraymat 1 !ubound { set %asses_index %asses_index + 1 set !linea_name %array . !arraymat set !linea_type PROPERTY set !linea_subvalue 0 set !linea_percent 100 set !linea_color silver set !linea_value #spc gosub Asses_Display_Linea } set %asses_index %asses_index + 2 set !linea_name VALORE set !linea_type TOTAL set !linea_subvalue 0 set !linea_percent 100 set !linea_value N/A set !linea_color silver gosub Asses_Display_Linea return ;sub Get_group_color sub Get_group_color set !col_r silver set !col_index 1 while %group_type_ . !col_index <> N/A { if %1 in %group_type_ . !col_index { set !col_r %group_color_ . !col_index break } set !col_index !col_index + 1 } return !col_r ;sub Inizializza_contatori sub Inizializza_contatori ;varie return ;sub Inizializza_variabili sub Inizializza_variabili gosub asses_init ;degni di attenzione set %type_soldi POF_ set %type_gemme NVF_EVF_RVF_UVF_HVF_VVF_ZVF_BVF_GVF_KUF_ set %type_reagenti SZF_WZF_RZF_DUF_KZF_MZF_KUF_JUF_JZF_UZF_YZF_IUF_TZF_ set %type_maps SVH_ set %type_keys ITY_ set %group_type_1 %type_soldi set %group_color_1 yellow set %group_type_2 %type_gemme , %type_reagenti set %group_color_2 white set %group_type_3 %type_maps , %type_keys set %group_color_3 $0066FF ;version set %new_version #false set #sendHeader User-Agent: , #spc , EasyUO , #spc , #cliVer , $ set !param /pepito_easyuo/check_version.php?idscript= , %idscript , &versionscript= , %versionscript ;send HTTPPost pepitoweb.altervista.org !param R return ;sub Menu_crea_avvio sub Menu_crea_avvio set !xb %1 set !yb %2 set !wb %3 set !hb %4 menu font size 7 if %menu_valido_AVVIO { set !y !yb + !hb / 2 + 49 set !x !xb + !wb / 2 - 100 menu font size 6 menu font bgcolor $222222 menu font color white menu font color silver menu font style B ;menu button butDebug !x !y 200 15 DEBUG START set !y !yb + !hb / 2 set !x !xb + !wb / 2 - 100 menu font size 20 menu font bgcolor $003300 menu font color yellow menu font style B menu button butStart !x !y 200 50 START } else { menu font color white set !y !yb + !hb / 2 set !x !xb + 25 set !w !wb - 50 Menu Shape mnuRect1 !x !y !w 45 3 7 1 gray 7 $111133 Menu Shape mnuRect1 !x !y !w 13 4 7 1 gray 7 $000055 set !y !y + 1 set !x !xb + 90 menu font bgcolor $000055 menu text txt !x !y AVVIO NON POSSIBILE set !x !xb + 33 menu font color silver set !y !y + 16 menu font bgcolor $111133 menu text txt !x !y CLICCA SULLE VOCI EVIDENZIATE IN ROSSO set !y !y + 11 menu text txt !x !y PER SETTARE LE IMPOSTAZIONI MANCANTI } gosub Set_Menu_Mex DEFAULT PREMI 'START' PER AVVIARE CON LE ULTIME IMPOSTAZIONI $ PREMI UNA VOCE DI MENU PER SETTARE QUELLA PARTE $ NB: PULSANTI ROSSI INDICANO UNA PARTE NON SETTATA gosub Set_Menu_Azione ATTENDO return ;sub Menu_crea_varie sub Menu_crea_varie set !xb %1 set !yb %2 set !wb %3 set !hb %4 set %MULTIVALUE_ASSES_1 ARMI_NEON|A_B_NEON|1 set %MULTIVALUE_ASSES_2 ARTIFACT_RARITY|A_B_RARITY|1 set %MULTIVALUE_ASSES_3 BEST_WEAPON_SKILL|A_B_BWS|1 set %MULTIVALUE_ASSES_4 DAMAGE_INCREASE|A_B_DI|1 set %MULTIVALUE_ASSES_5 DEFENSE_CHANCE_INCREASE|A_B_DCI|1 set %MULTIVALUE_ASSES_6 ENHANCE_POTIONS|A_B_EP|1 set %MULTIVALUE_ASSES_7 FASTER_CAST|A_B_FC|1 set %MULTIVALUE_ASSES_8 FASTER_CASTING_RECOVERY|A_B_FCR|1 set %MULTIVALUE_ASSES_9 HIT_CHANCE_INCREASE|A_B_HCI|1 set %MULTIVALUE_ASSES_10 HIT_DISPEL|A_B_HD|1 set %MULTIVALUE_ASSES_11 HIT_LEECH|A_B_HL|1 set %MULTIVALUE_ASSES_12 HIT_LOWER|A_B_HLOW|1 set %MULTIVALUE_ASSES_13 HIT_SPEEL|A_B_HS|1 set %MULTIVALUE_ASSES_14 HIT_SPEEL_AREA|A_B_HSA|1 set %MULTIVALUE_ASSES_15 LOWER_MANA_COST|A_B_LMC|1 set %MULTIVALUE_ASSES_16 LOWER_REAGENT_COST|A_B_LRC|1 set %MULTIVALUE_ASSES_17 LUCK|A_B_LUCK|1 set %MULTIVALUE_ASSES_18 MAGE_WEAPON|A_B_MW|1 set %MULTIVALUE_ASSES_19 POINT_INCREASE|A_B_PI|1 set %MULTIVALUE_ASSES_20 REFLECT_PHISYCAL_DAMAGE|A_B_RPD|1 set %MULTIVALUE_ASSES_21 REGENERATION|A_B_REG|1 set %MULTIVALUE_ASSES_22 RESISTS|A_B_RES|1 set %MULTIVALUE_ASSES_23 SELF_REPAIR|A_B_SR|1 set %MULTIVALUE_ASSES_24 SLAYER_CHECK|A_B_SLAYERNAME|2 set %MULTIVALUE_ASSES_25 SKILL_BONUS|A_B_SKILL|1 set %MULTIVALUE_ASSES_26 SPELL_CHANNELING|A_B_SC|1 set %MULTIVALUE_ASSES_27 SPEEL_DAMAGE_INCREASE|A_B_SDI|1 set %MULTIVALUE_ASSES_28 SWING_SPEED_INCREASE|A_B_SSI|1 set %MULTIVALUE_ASSES_29 STAT_BONUS|A_B_STAT|1 set %MULTIVALUE_ASSES_MAX 28 set !y !yb + 1 set !x !xb + 5 set !w !wb - 10 gosub Menu_Crea_Box_Loot_Equip !x !y !w menu font size 7 menu font color yellow set !y ( !yb + !hb - 15 ) set !x !xb + 18 menu font bgcolor $002222 menu text txt !x !y NB: GLI ELEMENTI IN GIALLO SONO OBBLIGATORI gosub Set_Menu_Mex DEFAULT SETTA LE ULTIME IMPOSTAZIONI gosub Set_Menu_Azione ATTENDO return ;sub Menu_loop sub Menu_loop set #MENUBUTTON N/A Menu_Loop_Ciclo: if #MENUBUTTON = N/A goto Menu_Loop_Ciclo ;selezionato pulsante if BUT_MENU in #menubutton { set !nomesub Menu_Validate_ , %BUT_MENU . %menu_lastsel gosub !nomesub if #result <> #false { gosub Split #menubutton BUT_MENU set %menu_sel %strright gosub Menu_Crea set %menu_lastsel %menu_sel } set #MENUBUTTON N/A goto Menu_Loop_Ciclo } ;site if #menubutton = butGoSite { display yesno Informazioni sullo script disponibili sul Web $ Vuoi apripre la pagina Web ? if #dispRes = yes { set !web http://pepitoweb.altervista.org/pepito_easyuo/index.php?idscript= , %idscript , &versionscript= , %versionscript execute !web } set #MENUBUTTON N/A goto Menu_Loop_Ciclo } ;asses if #menubutton = butAsses_Check { event exmsg #charid 3 %menu_col_i Targhetta un Oggetto e ti dirò il suo valore gosub targetta_oggetto set !oggid #result if !oggid <> N/A { gosub asses_item !oggid if %asses_pass event exmsg #charid 3 %menu_col_ok Vale #result else event exmsg #charid 3 %menu_col_ko Vale #result } set #MENUBUTTON N/A goto Menu_Loop_Ciclo } ;other if butChest_ in #menubutton { gosub Split #menubutton butChest_ set %id_object %strright if %bank_base = #true && %id_object <> base gosub Menu_Set_Chest %id_object C %chest_base BANK else gosub Menu_Set_Chest %id_object G 2 RESTOCK if #result <> N/A { set %bank_ . %id_object #False menu set txtBankChest_ . %id_object #spc set %chest_ . %id_object #Result menu set txtChest_ . %id_object %chest_ . %id_object set !nomevar chest_ , %id_object gosub GlobalVar_put %idscript !nomevar set !nomevar bank_ , %id_object gosub GlobalVar_put %idscript !nomevar } set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butBankChest_ in #menubutton { gosub Split #menubutton butBankChest_ set %id_object %strright gosub Menu_Set_Bank_Chest %id_object RESTOCK if #result <> N/A { set %chest_ . %id_object #Result set %bank_ . %id_object #True menu set txtBankChest_ . %id_object BANK menu set txtChest_ . %id_object %chest_ . %id_object set !nomevar chest_ , %id_object gosub GlobalVar_put %idscript !nomevar set !nomevar bank_ , %id_object gosub GlobalVar_put %idscript !nomevar } else { event exmsg #charid 3 %menu_col_ko BANK non trovata } set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butResetChest_ in #menubutton { gosub Split #menubutton butResetChest_ set %id_object %strright set %chest_ . %id_object N/A menu set txtChest_ . %id_object N/A set !nomevar chest_ , %id_object gosub Globalvar_put %idscript !nomevar set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butCHOISE_ in #menubutton { gosub Split #menubutton butCHOISE_ set %id_object %strright gosub Split_to_array %CHOISES_ . %id_object _ temp set !lenght #result set !s 0 for !i 1 !lenght { if %temp . !i = %CHOISE_ . %id_object set !s !i } set !s !s + 1 if !s > !lenght set !s 1 set %CHOISE_ . %id_object %temp . !s menu set txtChoise_ . %id_object %CHOISE_ . %id_object set !nomevar CHOISE_ , %id_object gosub GlobalVar_put %idscript !nomevar set #MENUBUTTON N/A goto Menu_Loop_Ciclo } if butMultiValueMove_ in #menubutton { gosub Split_to_array #menubutton _ but set %id_object %but3 gosub Menu_display_Box_Multi_Value %id_object SAVE if %but2 = sx gosub Menu_display_Box_Multi_Value %id_object -1 else gosub Menu_display_Box_Multi_Value %id_object 1 set #MENUBUTTON N/A goto Menu_Loop_Ciclo } if butMultiValueChange in #menubutton { if butMultiValueChangeup in #menubutton { gosub Split #menubutton butMultiValueChangeup_ set %id_object %strright set !val 10 } if butMultiValueChangedown in #menubutton { gosub Split #menubutton butMultiValueChangedown_ set %id_object %strright set !val -10 } set % . %id_object % . %id_object + !val menu set txtMultivalue_ . %id_object % . %id_object gosub GlobalVar_put %idscript %id_object set #MENUBUTTON N/A goto Menu_Loop_Ciclo } if butPosition_ in #menubutton { gosub Split #menubutton butPosition_ set %id_object %strright set %posX_ . %id_object #charposx set %posY_ . %id_object #charposy set %posZ_ . %id_object #charposz menu set txtPosition_ . %id_object %posX_ . %id_object %posY_ . %id_object %posZ_ . %id_object set !nomevar posX_ , %id_object gosub Globalvar_put %idscript !nomevar set !nomevar posY_ , %id_object gosub GlobalVar_put %idscript !nomevar set !nomevar posZ_ , %id_object gosub GlobalVar_put %idscript !nomevar set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butRunebook_ in #menubutton { gosub Split #menubutton butRunebook_ set %id_object %strright gosub Menu_Set_Runebook %id_object C #backpackid RESTOCK if #result <> N/A { set %RB_ . %id_object #Result menu set txtRunebook_ . %id_object %RB_ . %id_object set !nomevar RB_ , %id_object gosub GlobalVar_put %idscript !nomevar } set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butViewBook_ in #menubutton { gosub Split #menubutton butViewBook_ set %id_object %strright gosub Salva_Rune_Usate set %Menu_Vista_book %id_object set #MENUBUTTON N/A gosub Menu_Crea goto Menu_Loop_Ciclo } if butAddBook_ in #menubutton { gosub Split #menubutton butAddBook_ set %id_object %strright gosub Menu_Set_Runebook %id_object C #backpackid SPOT if #result <> N/A { set !exist #false for !c 1 %RB_SpotMAX { if %RB_Spot . !c = #Result { event exmsg #charid 3 %menu_col_ko Libro gia in lista! set !exist #true break } } if !exist = #false { set %RB_Spot . %id_object #Result set %RB_SpotMax %RB_SpotMax + 1 menu set txtRunebook_Spot . %id_object %RB_Spot . %id_object set !nomevar RB_Spot , %id_object gosub GlobalVar_put %idscript !nomevar gosub GlobalVar_put %idscript RB_SpotMax set %Menu_Vista_book %RB_SpotMax gosub Menu_Crea } } set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butRemoveBook_ in #menubutton { gosub Split #menubutton butRemoveBook_ set %id_object %strright if %RB_SpotMAX > 1 { set !i 1 for !c 1 %RB_SpotMAX { if !c <> %id_object { set %RB_Spot . !i %RB_Spot . !c set %RB_Rune . !i %RB_Rune . !c set !i !i + 1 set !nomevar RB_Spot , !i gosub GlobalVar_put %idscript !nomevar set !nomevar RB_Rune , !i gosub GlobalVar_put %idscript !nomevar } } set %RB_Spot . %RB_SpotMAX N/A set %RB_Rune . %RB_SpotMAX N/A set !nomevar RB_Spot , %RB_SpotMAX gosub Globalvar_del %idscript !nomevar set !nomevar RB_Rune , %RB_SpotMAX gosub Globalvar_del %idscript !nomevar set %RB_SpotMAX %RB_SpotMAX - 1 gosub GlobalVar_put %idscript RB_SpotMax gosub Menu_Crea } else { set %RB_Spot1 N/A set %RB_Rune1 N/A gosub Globalvar_del %idscript RB_Spot1 gosub Globalvar_del %idscript RB_Rune1 set %RB_SpotMAX %RB_SpotMAX - 1 gosub GlobalVar_put %idscript RB_SpotMax gosub Menu_Crea } set #MENUBUTTON N/A gosub Set_Menu_Mex DEFAULT goto Menu_Loop_Ciclo } if butAutoAddBook_ in #MENUBUTTON { gosub Split #menubutton butAutoAddBook_ set %id_object %strright gosub Menu_Get_Auto_Book %id_object set #MENUBUTTON N/A goto Menu_Loop_Ciclo } if #menubutton = BUT_ATTUALE { set #MENUBUTTON N/A goto Menu_Loop_Ciclo } if #menubutton = closed { set #MENUBUTTON N/A event ExMsg #CHARID 3 %menu_col_i Script chiuso halt } if #menubutton = BUTSTART { set %debug #false gosub Menu_Validate_Avvio set #MENUBUTTON N/A Menu Clear Menu Hide return #True } if #menubutton = BUTDEBUG { set %debug #true gosub Menu_Validate_Avvio set #MENUBUTTON N/A Menu Clear Menu Hide return #True } display ok #menubutton event exmsg #charid 3 %menu_col_ko Bottone non conosciuto! set #MENUBUTTON N/A goto loopmenuaspettaunbutton return ;sub Menu_validate_avvio sub Menu_validate_avvio return ;sub Menu_validate_varie sub Menu_validate_varie set %menu_valido_VARIE #true ;loot gosub Menu_display_Box_Multi_Value ASSES SAVE menu getnum chkloot_equip set %loot_equip #menures gosub GlobalVar_put %idscript loot_equip menu getnum edtasses_pass_value if #menures > 0 && #menures < 100000 set !val #MenuRes else set !val 0 if !val <> %asses_pass_value { set %asses_pass_value !val gosub GlobalVar_put %idscript asses_pass_value } If %asses_pass_value < 1 || %asses_pass_value > 100000 set %menu_valido_VARIE #false gosub GlobalVar_put %idscript menu_valido_VARIE return ;sub Set_ultime_variabili sub Set_ultime_variabili if #HITS = N/A gosub apri_gump_base gosub get_modifier_peso modweight set %time_start_script #scnt return ;sub Start_menu sub Start_menu gosub Menu_Init if %new_version gosub Menu_Set_Size 300 560 else gosub Menu_Set_Size 300 540 gosub Menu_Set_Intestazione %idscript Celo_celo_mima... Pepito_Settevite %versionscript gosub Menu_Add_Menu VARIE VARIE gosub GlobalValues_all %idscript #false gosub Menu_Crea menu show 970 0 gosub Menu_Loop return ;################## CUSTOM SUB FINISH ###########################