According with eAthena (and ratemyserver), cursed status resistance applies in this way:
If luk > base lvl, the resistance will always be 100%
If luk = or < base lvl, the resistance will be Luk+3
In calculator is always luk+3.
Btw. Thanks a lot for braggy fix, hope some day eA fix that bug. Also applies to cast delay calculation.
Is there any new about dummie monster damage calculator? more interested in woe mechanics damage calculation. Thanks for all the work 
I know zero about that working with blv[it's even a new thing to me since I just tested the info I had around from a friend and got someone to confirm the values after I run some tests since I'm lazy sometimes and don't check code all the time >_>], the info I got was this and works 100% on my test server and the times I tested with a friend on rms test server:
If VIT = 100, Cursed Time = 0 = no curse.
If LUK = 100, 0 chance to curse.
If LUK = 0, no curse.
Checking the code, I guess you're right and I totally missed that blv thing ._.
case SC_CURSE:
//Special property: immunity when luk is greater than level or zero
if (status->luk > status_get_lv(bl) || status->luk == 0)[the first part in blue I missed; the one in gree is missing an < symbol so it applies to 0 or less]
return 0;
else
sc_def = 3 +status->luk;[the 3+luk case]
tick_def = status->vit;[the 100 vit case]
break;
The after cast I will confirm it to know what I need to change in the formula but if it works as bragi, it shouldn't be hard to edit based on what I already made.
I'm still working on the dummy part because I'm missing something that is making this not work at 100% since I'm getting error on variables[variables not defined] and I still can't find why that is happening when the code looks good for me >_> This stupid bugs are making me not being able to add two menus to this fast as I wanted -.-