The final forumla, or one way of doing it, looks like this:

0 - iif([%Range%] < 30, 10, iif([%Range%] < 60, 20, iif([%Range%] < 80, (30 + ([%Range%] - 60)), (50 + (([%Range%] - 80) * 2)))))

Just a bit messy. Most forumlas will not be anywhere NEAR this complicated, you just happened to pick a difficult one to do.

Here's the breakdown..

Code:

0 -

iif([%Range%] < 30, 10,

iif([%Range%] < 60, 20,

iif([%Range%] < 80, (30 + ([%Range%] - 60)),

(50 + (([%Range%] - 80) * 2)))))

First, a little note: %RANGE% is a variable- it is whatever the current range to the target is. If he's at 50ls its 50, if he's at 10ls its 10, 5 at 5ls, etc.

First line: 0 is just there to make the rest of the numbers negative by using the following - sign. The base to-hit in SE5 is 100%, so what this means is "100% - the result of the following formula" (call that X).

Second line: iif is an if/then statement. The format is iif(value (sign), (then), else). This says IF the range is less than 30, THEN X is 10. ELSE it runs the next IF statement. Why 30? Because that's where your values start to change from that flat -10% chance. Same with all of the breakpoints below- the value checked for is the value where the result changes.

Third line: Same thing. IF the range is less than 60, THEN x is 20. ELSE it runs the next IF statement.

Fourth line: Last if/then. This one says IF the range is less than 80, THEN run the formula (30 + ([%Range%] - 60) and set X to that. If not run the formula (50 + (([%Range%] - 80) and set X to that.

The tricky part is keeping all the blasted parathesis straight..

Elsemeravin: you've got it pretty much right. By default all SE5 weapons hit all the time; unless there's some negative number in the to-hit field you'll never miss.