diff --git a/Kryszard-s-PD2-Loot-Filter 汉化.txt b/Kryszard-s-PD2-Loot-Filter 汉化.txt index dc2790b..c41ead6 100644 --- a/Kryszard-s-PD2-Loot-Filter 汉化.txt +++ b/Kryszard-s-PD2-Loot-Filter 汉化.txt @@ -1,4 +1,4 @@ -// Kryszard's PD2 Loot Filter for Season 13: ver 13.2.2 +// Kryszard's PD2 Loot Filter for Season 13: ver 13.3.1 // // // twitch.tv/kryszard @@ -16,7 +16,7 @@ ItemDisplayFilterName[]: Strict Filter - w/o Potions ItemDisplayFilterName[]: Max-Strictness Filter //Show info about current Filter Level in description of Horadric Cube -ItemDisplay[box]:%NAME%{%NAME%%NL%%GRAY%item.filter ver 13.2.2 %BLACK%| %GRAY% updated: 2026-04-30}%CONTINUE% +ItemDisplay[box]:%NAME%{%NAME%%NL%%GRAY%item.filter ver 13.3.1 %BLACK%| %GRAY% updated: 2026-05-01}%CONTINUE% ItemDisplay[box FILTLVL=0]: %NAME%{%NAME%%NL%%WHITE%You Can Change it in Settings%NL%0 - %TAN%Show All Items%NL%%TAN% Note%WHITE%: Kryszard's PD2 Loot-Filter level:%NL%} ItemDisplay[box FILTLVL=1]: %NAME%{%NAME%%NL%%WHITE%You Can Change it in Settings%NL%1 - %TAN%Hide Just Trash Items%NL%%TAN% Note%WHITE%: Kryszard's PD2 Loot-Filter level:%NL%} ItemDisplay[box FILTLVL=2]: %NAME%{%NAME%%NL%%WHITE%You Can Change it in Settings%NL%2 - %TAN%More Notify%NL%%TAN% Note%WHITE%: Kryszard's PD2 Loot-Filter level:%NL%} @@ -4147,6 +4147,7 @@ ItemDisplay[(RARE OR CRAFT OR UNI OR SET) MAXSOCKETS>1 ID SOCK=0 !GROUND]: %NAME ItemDisplay[MAG MAXSOCKETS>1 ID SOCK=0 !GROUND]: %NAME%{%NAME%%CL%%WHITE%Max Sockets: %TAN%[%WHITE%L:2}%CONTINUE% //P:2-4 values ItemDisplay[(MAG OR RARE OR CRAFT OR UNI OR SET) (ARMOR OR (WEAPON 1H) OR QUIVER) MAXSOCKETS>1 ID SOCK=0 !GROUND]: %NAME%{%NAME%, %TAN%P%WHITE%:2}%CONTINUE% +ItemDisplay[(MAG OR RARE OR CRAFT OR UNI OR SET) (WEAPON 2H) MAXSOCKETS=2 ID SOCK=0 !GROUND]: %NAME%{%NAME%, %TAN%P%WHITE%:2}%CONTINUE% ItemDisplay[(MAG OR RARE OR CRAFT OR UNI OR SET) (WEAPON 2H) MAXSOCKETS=3 ID SOCK=0 !GROUND]: %NAME%{%NAME%, %TAN%P%WHITE%:3}%CONTINUE% ItemDisplay[(MAG OR RARE OR CRAFT OR UNI OR SET) (WEAPON 2H) MAXSOCKETS>3 ID SOCK=0 !GROUND]: %NAME%{%NAME%, %TAN%P%WHITE%:4}%CONTINUE% //C:2-6 values @@ -5611,7 +5612,7 @@ ItemDisplay[MAPTIER=3 OR (MAPTIER=5 !t53 !t52 !t51)]: %GRAY%[%ORANGE%T3%GRAY%] % ItemDisplay[MAPTIER=4]: %GRAY%[%RED%D%GRAY%] %NAME% %RED%*%CONTINUE% ItemDisplay[MAPTIER>0 (!ID OR NMAG) !UNI]: %MAP-7F%%NAME%%CONTINUE% ItemDisplay[MAPTIER>0 !ID UNI]: %MAP-7F%%DOT-68%%RED%*%GREEN%*%YELLOW%* %NAME% %YELLOW%*%GREEN%*%RED%*%CONTINUE% -ItemDisplay[MAPTIER~1-3]: %NAME%{%TAN%Note%WHITE%: To Modify Maps visit Anya}%CONTINUE% +ItemDisplay[MAPTIER~1-3 NMAG]: %NAME%{%TAN%Note%WHITE%: To Modify Maps visit Anya}%CONTINUE% ItemDisplay[MAPTIER=1]: %NAME%{%WHITE%3x%BLUE%M%WHITE%a%YELLOW%p %WHITE%Tier: %DARK_GREEN%1 %WHITE%= Random Tier: %DARK_GREEN%1 %WHITE%Map%CL%%NAME%}%CONTINUE% ItemDisplay[MAPTIER=2]: %NAME%{%WHITE%3x%BLUE%M%WHITE%a%YELLOW%p %WHITE%Tier: %TAN%2 %WHITE%= Random Tier: %TAN%2 %WHITE%Map%CL%%NAME%}%CONTINUE% ItemDisplay[MAPTIER=3]: %NAME%{%WHITE%3x%BLUE%M%WHITE%a%YELLOW%p %WHITE%Tier: %ORANGE%3 %WHITE%= Random Tier: %ORANGE%3 %WHITE%Map%CL%%NAME%}%CONTINUE% @@ -5737,6 +5738,82 @@ ItemDisplay[t57]: %NAME%{%RED%F%WHITE%:75 %BLACK%| %BLUE%C%WHITE%:75 %BLACK%| %Y ItemDisplay[t58]: %NAME%{%WHITE%Boss Damage: %GRAY%Missing Data %BLACK%| %WHITE%Monsters Highest Res:%CL%%NAME%}%CONTINUE% ItemDisplay[t58]: %NAME%{%RED%F%WHITE%:75 %BLACK%| %BLUE%C%WHITE%:85 %BLACK%| %YELLOW%L%WHITE%:80 %BLACK%| %GREEN%P%WHITE%:75 %BLACK%| %ORANGE%M%WHITE%:50 %BLACK%| %GOLD%P%WHITE%:50%CL%%NAME%}%CONTINUE% +// ============================== +// EXPERIMENTAL MAP SCORING SYSTEM START +// ============================== +// +// No nested formulas. +// Formula names use letters only. +// +// Practical scoring model: +// - Minimum meaningful map = around 1 +// - Average rare map = exactly 5 +// - 90% of max core roll = 10 +// +// This avoids treating maps as if they start from 0, +// because maps always roll at least some useful stats. +// ============================== +// +// STAT370 = Map Magic Find (%) +// STAT372 = Monster Density (%) +// STAT373 = Map Experience (%) +// STAT374 = Area Level (+1 possible) +// STAT375 = Monster Rarity (%), usually 30-60 or 0 +// +// STAT494 = Additional Jewelry +// STAT495 = Additional Weapons +// STAT496 = Additional Armor +// STAT497 = Additional Crafting +// STAT502 = Additional Charms +// STAT506 = Additional Jewels +// STAT498 = Extra Boss + + +// ============================== +// XP SCORE +// ============================== + +Formula[XPA]: max(1,min(10,round(if((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))<=((100+71)*(100+14)*(80+71)),1+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+20)*(100+3)*(80+20)))*4)/(((100+71)*(100+14)*(80+71))-((100+20)*(100+3)*(80+20))),5+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+71)*(100+14)*(80+71)))*5)/(((100+130)*(100+38)*(80+130)*9/10)-((100+71)*(100+14)*(80+71))))*2)/2)) + +Formula[XPB]: max(1,min(10,round(if((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))<=((100+78)*(100+16)*(80+78)),1+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+20)*(100+3)*(80+20)))*4)/(((100+78)*(100+16)*(80+78))-((100+20)*(100+3)*(80+20))),5+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+78)*(100+16)*(80+78)))*5)/(((100+155)*(100+46)*(80+155)*9/10)-((100+78)*(100+16)*(80+78))))*2)/2)) + +Formula[XPC]: max(1,min(10,round(if((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))<=((100+85)*(100+18)*(80+85)),1+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+20)*(100+3)*(80+20)))*4)/(((100+85)*(100+18)*(80+85))-((100+20)*(100+3)*(80+20))),5+(((((100+STAT372)*(100+STAT373)*(80+STAT372)*(100+STAT375/2)*(100+min(1,STAT374)*8))/(100*100))-((100+85)*(100+18)*(80+85)))*5)/(((100+180)*(100+54)*(80+180)*9/10)-((100+85)*(100+18)*(80+85))))*2)/2)) + + +// ============================== +// MF SCORE +// ============================== +// +// Rarity is stronger for MF because: +// Champion and Unique monsters have guaranteed high-quality drops. +// +// Therefore rarity is weighted at 150%: +// +// 100 + STAT375*3/2 +// +// Examples: +// 30 rarity = +45% +// 60 rarity = +90% + +Formula[MFA]: max(1,min(10,round(if((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))<=((100+71)*(100+50)*(80+71)),1+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+20)*(100+20)*(80+20)))*4)/(((100+71)*(100+50)*(80+71))-((100+20)*(100+20)*(80+20))),5+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+71)*(100+50)*(80+71)))*5)/(((100+130)*(100+170)*(80+130)*9/10)-((100+71)*(100+50)*(80+71))))*2)/2+if(STAT498>0,1/2,0))) + +Formula[MFB]: max(1,min(10,round(if((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))<=((100+78)*(100+75)*(80+78)),1+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+20)*(100+20)*(80+20)))*4)/(((100+78)*(100+75)*(80+78))-((100+20)*(100+20)*(80+20))),5+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+78)*(100+75)*(80+78)))*5)/(((100+155)*(100+240)*(80+155)*9/10)-((100+78)*(100+75)*(80+78))))*2)/2+if(STAT498>0,1/2,0))) + +Formula[MFC]: max(1,min(10,round(if((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))<=((100+85)*(100+100)*(80+85)),1+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+20)*(100+20)*(80+20)))*4)/(((100+85)*(100+100)*(80+85))-((100+20)*(100+20)*(80+20))),5+(((((100+STAT372)*(100+STAT370)*(80+STAT372)*(100+STAT375*3/2)*(100+STAT494*2+STAT495*2+STAT496*2+STAT502*2+STAT506*2+STAT497/2)*(100+min(1,STAT374)*8))/(100*100*100))-((100+85)*(100+100)*(80+85)))*5)/(((100+180)*(100+320)*(80+180)*9/10)-((100+85)*(100+100)*(80+85))))*2)/2+if(STAT498>0,1/2,0))) + + +// ============================== +// DISPLAY +// ============================== + +ItemDisplay[MAPTIER=1 (MAG OR RARE)]: %NAME%{%WHITE%Exp. Rating: %BLUE%%FORMULAXPA% %BLACK%| %WHITE%MF Rating: %BLUE%%FORMULAMFA% %DARK_GREEN%[1-10]%CL%%NAME%}%CONTINUE% +ItemDisplay[MAPTIER=2 (MAG OR RARE)]: %NAME%{%WHITE%Exp. Rating: %BLUE%%FORMULAXPB% %BLACK%| %WHITE%MF Rating: %BLUE%%FORMULAMFB% %DARK_GREEN%[1-10]%CL%%NAME%}%CONTINUE% +ItemDisplay[MAPTIER=3 (MAG OR RARE)]: %NAME%{%WHITE%Exp. Rating: %BLUE%%FORMULAXPC% %BLACK%| %WHITE%MF Rating: %BLUE%%FORMULAMFC% %DARK_GREEN%[1-10]%CL%%NAME%}%CONTINUE% + +// ============================== +// EXPERIMENTAL MAP SCORING SYSTEM STOP +// ============================== + //Essences ItemDisplay[tes]: %PX-9D%%NAME%{%TAN%Essence %WHITE%from: %BLUE%Andariel %WHITE%or %BLUE%Duriel} ItemDisplay[ceh]: %PX-9D%%NAME%{%TAN%Essence %WHITE%from: %TAN%Mephisto}