First things first, here's the models, feel free to make a mirror.
com/vencillio/rs2/content/combat/formula/MeleeFormulas.java
[spoil]
Under switch (weapon.getId()) {
Code:
case 13263:
double d = 0;
System.out.println("First: "+d);
if (player.getLevels()[5] == 0) {
d = player.getMaxLevels()[5] / 2 * 0.01;
} else if (player.getLevels()[5] > 0) {
d = ((player.getMaxLevels()[5] - player.getLevels()[5]) / 2) * 0.01;
}
return 1.0+d;
[/spoil]
com/vencillio/rs2/content/combat/specials
Create a new class file named AbyssalBludgeonSpecialAttack.java
[spoil]
Code:
package com..rs2.content.combat.special.specials;
import com.server.rs2.content.combat.formula.MeleeFormulas;
import com.server.rs2.content.combat.special.Special;
import com.server.rs2.entity.Animation;
import com.server.rs2.entity.Graphic;
import com.server.rs2.entity.player.Player;
/**
*@author Andrew
*/
public class AbyssalBludgeonSpecialAttack implements Special {
MeleeFormulas meleeformula = new MeleeFormulas();
@Override
public boolean checkRequirements(Player player) {
return true;
}
@Override
public int getSpecialAmountRequired() {
return 50;
}
@Override
public void handleAttack(Player player) {
player.getCombat().getMelee().setAnimation(new Animation(7010, 0));
player.getCombat().getAttacking().getUpdateFlags().sendGraphic(Graphic.highGraphic(1284, 0));
meleeformula.getSpecialStr(player);
}
}
[/spoil]
Definitions XML
[spoil]
ItemDefinitions.xml
Code:
<ItemDefinition>
<name>Abyssal Bludgeon</name>
<id>13263</id>
<members>false</members>
<tradable>true</tradable>
<stackable>false</stackable>
<note>false</note>
<noteId>13264</noteId>
<highAlch>156000</highAlch>
<lowAlch>104000</lowAlch>
<generalPrice>41453380</generalPrice>
</ItemDefinition>
<ItemDefinition>
<name>Abyssal Bludgeon</name>
<id>13264</id>
<members>false</members>
<tradable>true</tradable>
<stackable>true</stackable>
<note>true</note>
<noteId>799</noteId>
<highAlch>156000</highAlch>
<lowAlch>104000</lowAlch>
<generalPrice>41453380</generalPrice>
</ItemDefinition>
SpecialAttackDefinitions.xml
Code:
<SpecialAttackDefinition>
<id>13263</id>
<barId1>7474</barId1>
<barId2>7486</barId2>
<button>29049</button>
<amount>5.0</amount>
</SpecialAttackDefinition>
WeaponDefinitions.xml
Code:
<WeaponDefinition>
<id>13263</id>
<twoHanded>true</twoHanded>
<type>MELEE</type>
<attackAnimations>
<short>1665</short>
<short>1665</short>
<short>1665</short>
<short>1665</short>
</attackAnimations>
<attackSpeeds>
<short>4</short>
<short>4</short>
<short>4</short>
<short>4</short>
</attackSpeeds>
<block>1666</block>
<stand>1662</stand>
<walk>1663</walk>
<run>1664</run>
<standTurn>1663</standTurn>
<turn180>820</turn180>
<turn90CW>821</turn90CW>
<turn90CCW>821</turn90CCW>
<sidebarId>425</sidebarId>
</WeaponDefinition>
ItemBonusDefinitions.xml
Code:
<ItemBonusDefinition>
<id>13263</id>
<bonuses>
<short>0</short>
<short>0</short>
<short>102</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>85</short>
<short>0</short>
<short>0</short>
</bonuses>
</ItemBonusDefinition>
<ItemBonusDefinition>
<id>13264</id>
<bonuses>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
<short>0</short>
</bonuses>
</ItemBonusDefinition>
[/spoil]
Packing Models
[spoil]
To pack the models into your cache, create a new folder inside your cache folder and name it index1 and put the two gzip files inside that folder, then go to your client.java class, and search for repackCacheIndex(1); and uncomment it, if it's not there, add it under loadTitleScreen();
[/spoil]