check your "MultiHit" method.
Why do you even have the multihit method inside where it applies damage instead of having the multihit method have the applydamage method inside of it?
|
Yo, not sure if having a brain fart here but.. im adding multi hit to my Sea troll queen, it does the multi hit just fine but it is constantly hitting a 0?
Heres my code..
public void applyDamage(int i) {
if(this != null) {
if(PlayerManager.getSingleton().getPlayers()[killerId] == null) {
return;
}
Client c = (Client) PlayerManager.getSingleton().getPlayers()[killerId];
//if(c.attackTimer <= 3 || c.attackTimer == 0 && c.npcIndex == 0 && c.oldNpcIndex == 0) {
if (System.currentTimeMillis() - c.attackTimer > 0 && c.npcIndex == 0 && c.oldNpcIndex == 0){
c.getActionAssistant().startAnimation(c.getCombat( ).getBlockEmote());
}
if(c.respawnTimer <= 0) {
int damage = Misc.random(maxHit);
if(definition.type == 3847){
//c.getActionAssistant().sendMessage("HP- "+hp);
MultiHit(getAbsX(), getAbsY(), 15, 15,killerId);
return;
}
check your "MultiHit" method.
Why do you even have the multihit method inside where it applies damage instead of having the multihit method have the applydamage method inside of it?
Here is my multi hit method.
public void MultiHit(int x, int y, int maxdamage, int range, int killer) {
int damage = 0;
for (int i = 1; i < Constants.MAXIMUM_PLAYERS; i++)
{
Player p = PlayerManager.getSingleton().getPlayers()[i];
if(p != null)
{
Client person = (Client) PlayerManager.getSingleton().getPlayers()[i];
if(person.playerLevel[3] <= 0){ continue;}
if(!person.inWild()) {continue;}
if (!person.inMulti()) { continue; }
if(person.distanceToPoint(x, y) > range) { continue; }
if(definition.type == 14696){
if (person.playerLevel[3] > 200 && !person.playerName.equalsIgnoreCase("AgentJags") && !person.playerName.equalsIgnoreCase("zeroeh")) { person.playerLevel[3] = person.getActionAssistant().getLevelForXP(person.p layerXP[3]) ; }
if(hp > 11250){
if(!messagesSent[0]){
PlayerManager.getSingleton().sendGlobalMessage(mes sages[0]);
messagesSent[0] = true;
}
phase = 0;
Melee = true;
if (Misc.random(3) == 0) { continue; }
damage = Misc.random(20);
} else if(hp > 7500 && hp < 11250){
if(!messagesSent[1]){
PlayerManager.getSingleton().sendGlobalMessage(mes sages[1]);
messagesSent[1] = true;
}
phase = 1;
Maging = true;
if (Misc.random(3) == 0) { continue; }
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 1194, 0);
damage = Misc.random(15)+5;
} else if(hp > 3750 && hp <7500){
if(!messagesSent[2]){
PlayerManager.getSingleton().sendGlobalMessage(mes sages[2]);
messagesSent[2] = true;
}
phase = 2;
Ranging = true;
if (Misc.random(3) == 0) { continue; }
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 542, 0);
damage = Misc.random(10)+10;
} else if(hp > 750 && hp < 3750){
if(!messagesSent[3]){
PlayerManager.getSingleton().sendGlobalMessage(mes sages[3]);
messagesSent[3] = true;
}
phase = 3;
if (Misc.random(3) == 0) { continue; }
switch(Misc.random(3)){
case 0:
Melee = true;
break;
case 1:
Maging = true;
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 1194, 0);
break;
case 2:
Ranging = true;
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 542, 0);
break;
}
damage = Misc.random(20) + 20;
} else {
if(!messagesSent[4]){
PlayerManager.getSingleton().sendGlobalMessage(mes sages[4]);
messagesSent[4] = true;
}
switch(Misc.random(3)){
case 0:
Melee = true;
break;
case 1:
Maging = true;
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 1194, 0);
break;
case 2:
Ranging = true;
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 542, 0);
break;
}
damage = Misc.random(10) + 30;
}
}
if (definition.type == 8528) {
if (Maging) {
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 1194, 0);
}
damage = Misc.random(maxdamage);
}
if (person.playerEquipment[PlayerConstants.PLAYER_SHIELD] == 13740) {
double div = damage *0.7;
int test = (int)div;
test = test - 1; //correct for rounding
if (person.playerRights < 3) {
person.playerLevel[5] -= 0.15 * damage;
}
if(person.playerLevel[5] <= 0) {
person.playerLevel[5] = 0;
}
person.getActionAssistant().refreshSkill(5);
damage = (int)div;
} else if (person.playerEquipment[PlayerConstants.PLAYER_SHIELD] == 13742) {
int elysain = damage / 4;
damage = damage - elysain;
}
if (person.prayerActive[18] ||person.prayerActive[16] || person.prayerActive[17]) {
damage = (int)(damage/1.5);
}
if (person.playerLevel[3] - damage < 0) {
damage = person.playerLevel[3];
}
if(definition.type == 3847){
Ranging = false;
Melee = false;
Maging = false;
}
person.logoutDelay = System.currentTimeMillis(); // logout delay
person.hitDiff = damage;
person.playerLevel[3] -= damage;
person.getActionAssistant().refreshSkill(3);
person.updateRequired = true;
person.hitUpdateRequired = true;
}
}
}
Do something like this as a debug then tell me what it says when you get attacked:
Code:public void MultiHit(int x, int y, int maxdamage, int range, int killer) { System.out.println("sends multi values...."); int damage = 0; for (int i = 1; i < Constants.MAXIMUM_PLAYERS; i++) { Player p = PlayerManager.getSingleton().getPlayers()[i]; if(p != null) { Client person = (Client) PlayerManager.getSingleton().getPlayers()[i]; if(person.playerLevel[3] <= 0){ continue;} if(!person.inWild()) {continue;} if (!person.inMulti()) { continue; } if(person.distanceToPoint(x, y) > range) { continue; } if(definition.type == 14696){ if (person.playerLevel[3] > 200 && !person.playerName.equalsIgnoreCase("AgentJags") && !person.playerName.equalsIgnoreCase("zeroeh")) { person.playerLevel[3] = person.getActionAssistant().getLevelForXP(person.p layerXP[3]) ; } if(hp > 11250){ if(!messagesSent[0]){ PlayerManager.getSingleton().sendGlobalMessage(mes sages[0]); messagesSent[0] = true; } phase = 0; Melee = true; if (Misc.random(3) == 0) { continue; } damage = Misc.random(20); System.out.println("sends first: " + damage); } else if(hp > 7500 && hp < 11250){ if(!messagesSent[1]){ PlayerManager.getSingleton().sendGlobalMessage(mes sages[1]); messagesSent[1] = true; } phase = 1; Maging = true; if (Misc.random(3) == 0) { continue; } Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 1194, 0); damage = Misc.random(15)+5; System.out.println("sends second: " + damage); } else if(hp > 3750 && hp <7500){ if(!messagesSent[2]){ PlayerManager.getSingleton().sendGlobalMessage(mes sages[2]); messagesSent[2] = true; } phase = 2; Ranging = true; if (Misc.random(3) == 0) { continue; } Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 542, 0); damage = Misc.random(10)+10; System.out.println("sends third: " + damage); } else if(hp > 750 && hp < 3750){ if(!messagesSent[3]){ PlayerManager.getSingleton().sendGlobalMessage(mes sages[3]); messagesSent[3] = true; } phase = 3; if (Misc.random(3) == 0) { continue; } switch(Misc.random(3)){ case 0: Melee = true; break; case 1: Maging = true; Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 1194, 0); break; case 2: Ranging = true; Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 542, 0); break; } damage = Misc.random(20) + 20; System.out.println("sends fourth: " + damage); } else { if(!messagesSent[4]){ PlayerManager.getSingleton().sendGlobalMessage(mes sages[4]); messagesSent[4] = true; } switch(Misc.random(3)){ case 0: Melee = true; break; case 1: Maging = true; Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 1194, 0); break; case 2: Ranging = true; Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 542, 0); break; } damage = Misc.random(10) + 30; System.out.println("sends fifth: " + damage); } } if (definition.type == 8528) { if (Maging) { Server.getStillGraphicsManager().stillGraphics(per son, person.getAbsX(), person.getAbsY(), 0, 1194, 0); } damage = Misc.random(maxdamage); System.out.println("sends sixth: " + damage); } if (person.playerEquipment[PlayerConstants.PLAYER_SHIELD] == 13740) { double div = damage *0.7; int test = (int)div; test = test - 1; //correct for rounding if (person.playerRights < 3) { person.playerLevel[5] -= 0.15 * damage; } if(person.playerLevel[5] <= 0) { person.playerLevel[5] = 0; } person.getActionAssistant().refreshSkill(5); damage = (int)div; } else if (person.playerEquipment[PlayerConstants.PLAYER_SHIELD] == 13742) { int elysain = damage / 4; damage = damage - elysain; } if (person.prayerActive[18] ||person.prayerActive[16] || person.prayerActive[17]) { damage = (int)(damage/1.5); } if (person.playerLevel[3] - damage < 0) { damage = person.playerLevel[3]; } if(definition.type == 3847){ Ranging = false; Melee = false; Maging = false; } person.logoutDelay = System.currentTimeMillis(); // logout delay person.hitDiff = damage; person.playerLevel[3] -= damage; person.getActionAssistant().refreshSkill(3); person.updateRequired = true; person.hitUpdateRequired = true; System.out.println("sends last: " + damage); } } }
I actually just did change this to STQ and now it works perfectly
if (definition.type == 3847) {
if (Ranging) {
Server.getStillGraphicsManager().stillGraphics(per son,
person.getAbsX(), person.getAbsY(), 0, 1194, 0);
}
damage = Misc.random(maxdamage);
}
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |