What AO really needs, is a deep mechanics change, that allows the effects of nanos to have conditions attached, based on which the final value of the buff/debuff/heal can be calculated. Adding a mechanic such as this would give you an extremely flexible control over buff/debuff/heal values over a wide range of circumstances, for example:
* Higher level players buffing lower level players need to give smaller buffs - but still be high buffs when buffing their peers.
* Damage debuffing mobs needs to be bigger in value than damage debuffing players... but the debuff should not so massively debuff much lower level mobs, to help powerlevelling lowbies
* A HoT given to a low level player needs to be suitable in heal value for the target's level, even if given by a high level player.
* Trader Drains: the higher in the ladder they go, the less the debuff/buff resulting based on relative level of caster/target
* A player debuffs a target for a higher value based on higher Nanoskills... but debuffs the target for less if the target has stronger Nano Resist.
* etc. etc.
I've used Damage Debuff as the example here, but it could just as easily be NCU buff value or a trader drain value or a fixer HoT value or whatever. So with the Damage Debuff example, a nano might have a base effect. e.g.:
Effect: Debuff Damage
Value: 1000
But then you'd want to be able to say that based on a condition, that base amount would have a percentage applied to it. e.g.:
Effect: Debuff Damage
Base Value: 1000
Condition: Caster Level / Target Level
The Condition would be calculated to deliver a Modifier - and then the Base Effect would be multiplied by that value to find the End Value. So in the above example, if the level of the Caster was 100 and the level of the mob was 90, then:
Effect: Debuff Damage
Base Value: 1000
Condition: Target Level / Caster Level
Modifier: 90 / 100 = 0.9
End Value: = 1000 * 0.9 = 900
Where a nano has a range - for example, a heal might heal for (300-600) - then the modifier is applied to both range values. So a modifier of 2.0 would turn a 300-600 heal into a 600-1200 heal.
Any condition could be used, that would return a modification value. For example, you might do a comparison of attack skills Vs Defence Skills on a debuff:
Effect: Debuff Damage
Base Value: 1000
Condition: Casting AR / Target NR
So, when using this against a mob - you might have an MP with Casting AR of 2000 and a mob with NanoResist of 1800:
Effect: Debuff Damage
Base Value: 1000
Condition: Casting AR / Target NR
Modifier: 2000 / 1800 = 1.1
End Value: 1000 * 1.1 = 1100
Since you're still basing the value of the buff/debuff/heal on an absolute value, you can create real nano-lines with increasing power as you go up the line, while still managing the effects of the nanos according to the conditions.
Such an example shows another major benefit of a system like this, which is that having more than the required skill for casting, gives a real benefit through affecting the actual value of the buff/debuff... but also highlights an issue: when designing nanolines for such a system, a player might end up getting a higher value with a low QL nano, than with a nano of higher QL.
So you need to add in some kind of min/max values for the modifiers, for example:
Effect: Debuff Damage
Base Value: 1000
Condition: Casting AR / Target NR
Min Modifier: 0.7
Max Modifier: +2.0
Such a nano would never debuff for less than 700 or more than 2000. By setting Min and Max modifiers, you could ensure that, where necessary, the nanos perform within ranges that do not overlap with other nanos in the line (or only overlap by a controlled amount).
This system allows a lot of flexibility in the conditions you can choose to compare and then modifies the resulting buff accordingly. You could also add If... conditions such as 'If Target = NPC then conditionX, Else If Target = Player then condition Y'. You'd be able to really fit the size of buffs, debuffs etc to the situation as required.
X