AssaultCube Reloaded Forums

Full Version: SUGGESTION: Combined Perk overhauls
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Mossberg and I have been collaborating on ideas to make the combined perks more useful to players. As of right now, the only real combined perk that is useful is the Recon perk (darn, just gave away my secret).
Keep in mind that this is all just suggestions, and will not be added to ACR until people approve it.

1. Time perk
Addition: Reduced reload time by ~.1 second. This amounts to ~8-10% reduction in reload time for each weapon.
What will stay the same is the faster scope and weapon transition.

2. Ninja
Addition: Double throwing knives, shots wont display on minimap, lower sound signature (may be removed)
What will stay the same is the AntiRecon ability.


Additional perk ideas (may either be combined or single perks):
1. Bandolier
Start off with increased grenade loadout

2. Support
Start off with increased primary/secondary magazines
It looks like the reload time is server side and can't really be changed....
You have to change it in more places than that...
I haven't started on the reload animations for the time perk but what about this for the server side reload?

Code:
diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp
index aabc24b..166ef6e 100644
--- a/source/src/weapon.cpp
+++ b/source/src/weapon.cpp
@@ -413,6 +413,9 @@ bool weapon::reload(){
    updatelastaction(owner);
    reloading = lastmillis;
    gunwait += info.reloadtime;
+    if (owner->perk1 == PERK_TIME || owner->perk2 == PERK_TIME) {
+        gunwait = ((gunwait < 100) ? 0 : (gunwait - 100));
+    }

    owner->ammo[type] -= /*rs*/ 1;
    owner->mag[type] = min<int>(ms, owner->mag[type] + rs);
diff --git a/source/src/serverevents.h b/source/src/serverevents.h
index b3e1eff..00efd3b 100644
--- a/source/src/serverevents.h
+++ b/source/src/serverevents.h
@@ -266,6 +266,9 @@ void reloadevent::process(client *ci){
        sendf(-1, 1, "ri5", N_RELOAD, ci->clientnum, weap, gs.mag[weap], gs.ammo[weap]);
        if(!gs.gunwait[weap] || wait >= gs.gunwait[weap]) gs.updateshot(gamemillis);
        gs.gunwait[weap] += reloadtime(weap);
+       if (ci->state.perk1 == PERK_TIME || ci->state.perk2 == PERK_TIME) {
+               gs.gunwait[weap] = ((gs.gunwait[weap] < 0) ? 0 : (gs.gunwait[weap] - 100));
+       }
}

void akimboevent::process(client *ci){

If not this where in the code determines the server part of the reload?