case 1:
setarray .@Items[0],2307,2309,2314,2316,2321,2325,2327,2328,2330,2332,2334,2335,2341,2344,2346,2348,2350,2337,2386,2394,2395,2396;
set .@j,50; // this .@j is you max rand for spesific item
break;
case 2:
setarray .@Items[0],2311,2318,2319,2320,2308,2310,2315,2317,2322,2324,2326,2331,2333,2336,2342,2345,2347,2349,2351;
set .@j,55; // this .@j is you max rand for spesific item
set .@k,1;
break;
case 3:
setarray .@Items[0],2364,2365,2391,2374,2375,2376,2377,2378,2379,2380,2381,2382,2387,2388,2389,2390;
set .@j,60; // this .@j is you max rand for spesific item
if you are looking on your script you have case 36 success, more than 36 you will not get the item (enchant fail). idk if its work. but try change default to use break; insted of close;
case 36: set .@addpart,4750;break;
default: specialeffect2 EF_PHARMACY_FAIL; break;