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.