public boolean isRestoringSpec = false;
if (c.getCombat().checkSpecAmount(c.playerEquipment[c.playerWeapon])) {
c.lastArrowUsed = c.playerEquipment[c.playerArrows];
c.getCombat().activateSpecial(
c.playerEquipment[c.playerWeapon], i);
c.followId = c.playerIndex;
if(!c.isRestoringSpec){
RestoreSpecialAttack.execute(c);
}
if(c.getCombat().checkSpecAmount(c.playerEquipment[c.playerWeapon])){
c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
c.lastArrowUsed = c.playerEquipment[c.playerArrows];
c.getCombat().activateSpecial(c.playerEquipment[c.playerWeapon], i);
if(!c.isRestoringSpec){
RestoreSpecialAttack.execute(c);
}
public void initialize() {
if(this.specAmount < 10){
RestoreSpecialAttack.execute(this);
}
package org.rs2server.entity.players.content;
import org.rs2server.entity.players.*;
import org.rs2server.event.*;
public class RestoreSpecialAttack {
public static void execute(final Client player){
player.isRestoringSpec = true;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (player.specAmount < 10) {
player.specAmount += 1;
if (player.specAmount > 10) {
player.specAmount = 10;
container.stop();
}
player.getItems().addSpecialBar(player.playerEquipment[player.playerWeapon]);
}
}
@Override
public void stop() {
player.isRestoringSpec = false;
}
}, 29);
}
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.