[Guide] Adding working Ava's accumulator (225 based)

Adding Ava’s accumulator to the game

This is a guide on adding working ava’s accumulator to your own server.
The ammo save rate is set to 80% and arrows never dropping, if ava equipped
This isn’t a tutorial on why everything is added
In short: we are checking for a cape slot, if ava is equipped it rolls for 80% chance of saving arrows.

225 revision compatible ava’s wear and ground models (ZIP)
https://mega.nz/file/ClQmRAZT#xupnD8htRP33usfpiykJ3rBIhnM6FR1_qemlofoCFeE

To add custom models, refer to this guide:

capes.obj
Add this to the bottom

[ava_accumulator]
cost=32
name=Ava's accumulator
desc=A superior bagged chicken ready to serve you, magnet in claw.
model=ava_ground
2dxof=-4
2dyof=-1
2dzoom=976
2dyan=1120
2dxan=567
iop2=Wear
wearpos=back
manwear=ava_man_wear,0
womanwear=ava_woman_wear,0
weight=1lb
param=rangeattack,4
param=slashdefence,1
param=magicdefence,4

player_ranged.rs2

ctrl+f anim(%com_attackanim, 0);
above add:
def_obj $back = inv_getobj(worn, ^wearpos_back);

few lines down find def_int $delay = ...
change to:
def_int $delay = add(~player_ranged_use_weapon($rhand, $ammo, $back), 30);

ctrl+f [proc,player_ranged_use_weapon]
change it to:

[proc,player_ranged_use_weapon](obj $rhand, obj $ammo, obj $back)(int)
switch_category(oc_category($rhand)) {
    case weapon_bow, weapon_crossbow : return(~ranged_shoot_npc($ammo, $back));
    case weapon_thrown, weapon_javelin : return(~ranged_throw_npc($ammo));
    case default : return(30); // idk some random default delay just in case shouldnt happen tho
}

under that, [proc,ranged_shoot_npc]
change it to:

[proc,ranged_shoot_npc](obj $ammo, obj $back)(int)
if($ammo = ogre_arrow) spotanim_pl(oc_param($ammo, proj_launch), 50, 0);
else spotanim_pl(oc_param($ammo, proj_launch), 96, 0);
if($back ! ava_accumulator | random(5) = 0) {
    inv_del(worn, $ammo, 1);
}
return(~npc_projectile(coord, npc_uid, oc_param($ammo, proj_travel), 40, 36, 41, 15, 5, 11, 5));

ctrl+f if ($ammo = holy_water)
above this add:

if($back ! ava_accumulator) {
    ~ranged_dropammo_npc($ammo, 5, sub(divide($delay, 30), 2));
}

Clean, Build, Run
Ava’s accumulator should be working now
get it with ::give ava_accumulator

Good luck with developing and happy scaping!

2 Likes

You probably also wanna do this similarly in pvp_ranged.rs2 as well.

If they add ava accumulator, people will start demand fire cape.
Just use cheaper arrows.

This code is meant for people to use on their own servers. It’s not a suggestion to add it to the live game, that will come chronologically

For the record, Fire Cape pre-dates Ava’s Accumulator anyway, so there’s no slippery slope here.

That being said, I personally am not supporting copying and pasting anything beyond May 2006 as far as custom servers go.

It’s good to see guides like this coming up though.