.@total = countitem(994); // total number of Item ID 994
.@exchg = .@total / 100; //Floored division of total by 100 (e.g. 256 / 100 = 2)
.@remain = .@total % 100; //Remainder (e.g. 256 / 100 has remainder of 56)
delitem 944,(.@total - .@remain); //Remove all but the remainder
getitem 990,.@exchg; //Get total number of item id 990 = to floored division of total 994 (e.g. 256 --> 2)
Change:
if (countitem(969) <250) && (countitem(4001) <20) && (Zeny < .@NeedZeny) goto L_Missing;
To:
if(countitem(969) < 250 || countitem(4001) < 20 || Zeny < .@NeedZeny) goto L_Missing;
This will change the logic from AND (meaning all statements are true) to OR (at least one of the statements is true).
setd ".@enc$", select("Fighting Enchant:Magic Enchant:Archer Enchant:Critical/Fatal Enchant:Max HP Enchant:Max SP Enchant:ASPD Enchant:STR Enchant:AGI Enchant:DEX Enchant:VIT Enchant:INT Enchant:LUK Enchant");
This sets a variable (name determined by the value of .@enc$) equal to the selection of the menu presented by the select script command.
For example, if .@enc$ = ".@variable" and the user selects "Fighting Enchant" from the menu then .@variable = 1
.@EnStat = callfunc( (.chancetype?"EnchantStat_1":"EnchantStat_0"), .@enc$) ;
This sets the variable .@EnStat to the value that is returned by the function EnchantStat_1( ) or Enchant_Stat_0( ) (function determined by the variable .chancetype) with an argument passed that was defined by the above setd line.
Longer Answer: Not possible without re-writing how FluxCP gets its item db information. And if you did it would make your FluxCP far less efficient. Searching through a large text file such as item DB is terrible. This is exactly why things like SQL databases exist. Stick with the item DB on SQL