Hello community,
Soulsplit
I am wondering how i would add a delay or like a timer to my soulsplit...
Becuz now it is doing the gfx and heals everyhit if you have hp 99 or less.
Would could help me i, would love him.
Already tired to add a delay but didn't work out.
My code:
Code:
public void applySoulSplit(int index, int damage) {
if (!c.prayerActive[21])
return;
if (Server.playerHandler.players[index] != null) {
final Client c2 = (Client)Server.playerHandler.players[index];
final int pX = c.getX();
final int pY = c.getY();
final int oX = c2.getX();
final int oY = c2.getY();
int offX = (pY - oY)* -1;
int offY = (pX - oX)* -1;
if (c.prayerActive[21] && (c.playerLevel[3] <= 99)) {
int heal = 2;
if (c2.playerLevel[5] <= 0) {
c2.playerLevel[5] = 0;
c2.getCombat().resetPrayers();
}
if (c.playerLevel[3] + heal >= c.getPA().getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] = c.getPA().getLevelForXP(c.playerXP[3]);
} else {
c.playerLevel[3] += heal;
c2.playerLevel[5] -= 1;
}
c.getPA().refreshSkill(3);
c2.getPA().refreshSkill(5);
}
c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2263, 31, 31, - c.oldPlayerIndex - 1, 0);
c.soulSplitDelay = 4;
EventManager.getSingleton().addEvent(new Event() {
public void execute(EventContainer s) {
if (c.soulSplitDelay > 0) {
c.soulSplitDelay--;
}
if (c.soulSplitDelay == 3) {
c2.gfx0(2264);
}
if (c.soulSplitDelay == 2) {
int offX2 = (oY - pY)* -1;
int offY2 = (oX - pX)* -1;
c.getPA().createPlayersProjectile(oX, oY, offX2, offY2, 50, 45, 2263, 31, 31, - c.playerId - 1, 0);
}
if (c.soulSplitDelay == 0) {
s.stop();
}
}
}, 500);
}
}
Wrath
I am trying to add like the wrath damage is based on your last hit but that didn't work out aswell...
My code:
Code:
public void initiateWrath() {
try {
if(!c.inWild())
return;
int[] xLoc = new int[25];
int[] yLoc = new int[25];
if(c.prayerActive[22]) {
c.gfx0(2259);
int x = c.absX - 3;
int y = c.absY - 2;
for(int i = 0; i < 25; i++) {
x++;
if(i == 5 || i == 10 || i == 15 || i == 20) {
x-=5;
y++;
}
xLoc[i] = x;
yLoc[i] = y;
c.getPA().createPlayersStillGfx(2260, x, y, c.heightLevel, 25);
}
for(int playerId = 0; playerId < PlayerHandler.players.length; playerId++) {
Player player = PlayerHandler.players[playerId];
if(player != null) {
if(player.playerName.equalsIgnoreCase(c.playerName))
continue;
for(int i = 0; i < 25; i++) {
if(player.absX == xLoc[i] && player.absY == yLoc[i]) {
if(player.inWild()) {
Client target = (Client) player;
Client c = (Client) Server.playerHandler.players[playerId];;
int wrathDamage = c.playerLevel[5]/10 * 3;
target.playerLevel[3] -= wrathDamage;
target.handleHitMask(wrathDamage);
target.getPA().refreshSkill(3);
//int damage = c.playerLevel[5]/10 * 3;
//target.handleHitMask(damage);
//target.dealDamage(damage);
target.sendMessage("You are damaged by the plagued death of the player you killed.");
}
}
}
}
}
}
} catch (Exception e) {
Misc.println("Error initiating the wrath prayer.");
e.printStackTrace();
}
}
Thanks for helping,