Thread: 667 SoulSplit curse issue

Results 1 to 6 of 6
  1. #1 667 SoulSplit curse issue 
    Registered Member
    Join Date
    Jul 2012
    Posts
    6
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Soulsplit seems to be smiting my prayer, i've tried to figure it out but can't seem to find a solution. I've tried replacing it with prayer.java from other 667 archives and gotten nowhere.
    Any help would be appreciated.

    spoiler for code:
    [spoil]
    Code:
    package com.rs.game.player;
    
    import java.io.Serializable;
    
    import com.rs.game.Animation;
    import com.rs.game.Graphics;
    import com.rs.utils.Utils;
    
    public class Prayer implements Serializable {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = -2082861520556582824L;
    
    	private final static int[][] prayerLvls = {
    			// normal prayer book
    			{ 1, 4, 7, 8, 9, 10, 13, 16, 19, 22, 25, 26, 27, 28, 31, 34, 35,
    					37, 40, 43, 44, 45, 46, 49, 52, 60, 65, 70, 74, 77 },
    			// ancient prayer book
    			{ 50, 50, 52, 54, 56, 59, 62, 65, 68, 71, 74, 76, 78, 80, 82, 84,
    					86, 89, 92, 95 } };
    
    	private final static int[][][] closePrayers = { { // normal prayer book
    			{ 0, 5, 13 }, // Skin prayers 0
    					{ 1, 6, 14 }, // Strength prayers 1
    					{ 2, 7, 15 }, // Attack prayers 2
    					{ 3, 11, 20, 28 }, // Range prayers 3
    					{ 4, 12, 21, 29 }, // Magic prayers 4
    					{ 8, 9, 26 }, // Restore prayers 5
    					{ 10 }, // Protect item prayers 6
    					{ 17, 18, 19 }, // Protect prayers 7
    					{ 16 }, // Other protect prayers 8
    					{ 22, 23, 24 }, // Other special prayers 9
    					{ 25, 27 } // Other prayers 10
    			}, { // ancient prayer book
    			{ 0 }, // Protect item prayers 0
    					{ 1, 2, 3, 4 }, // sap prayers 1
    					{ 5 }, // other prayers 2
    					{ 7, 8, 9, 17, 18 }, // protect prayers 3
    					{ 6 }, // other protect prayers 4
    					{ 10, 11, 12, 13, 14, 15, 16 }, // leech prayers 5
    					{ 19 }, // other prayers
    			} };
    
    	private final static int[] prayerSlotValues = { 1, 2, 4, 262144, 524288, 8,
    			16, 32, 64, 128, 256, 1048576, 2097152, 512, 1024, 2048, 16777216,
    			4096, 8192, 16384, 4194304, 8388608, 32768, 65536, 131072,
    			33554432, 134217728, 67108864, 268435456 * 2, 268435456 };
    
    	private transient Player player;
    	private transient boolean[][] onPrayers;
    	private transient boolean usingQuickPrayer;
    	private transient int onPrayersCount;
    
    	private boolean[][] quickPrayers;
    	private int prayerpoints;
    	private transient int[] leechBonuses;
    	private boolean ancientcurses;
    	private transient int drainDelay;
    	private transient boolean boostedLeech;
    
    	public double getMageMultiplier() {
    		if (onPrayersCount == 0)
    			return 1.0;
    		double value = 1.0;
    
    		// normal
    		if (usingPrayer(0, 4))
    			value += 0.05;
    		else if (usingPrayer(0, 12))
    			value += 0.10;
    		else if (usingPrayer(0, 21))
    			value += 0.15;
    		else if (usingPrayer(0, 29))
    			value += 0.20;
    		else if (usingPrayer(1, 3)) {
    			double d = (leechBonuses[2]);
    			value += d / 100;
    		} else if (usingPrayer(1, 12)) {
    			double d = (5 + leechBonuses[5]);
    			value += d / 100;
    		}
    		return value;
    	}
    
    	public double getRangeMultiplier() {
    		if (onPrayersCount == 0)
    			return 1.0;
    		double value = 1.0;
    
    		// normal
    		if (usingPrayer(0, 3))
    			value += 0.05;
    		else if (usingPrayer(0, 11))
    			value += 0.10;
    		else if (usingPrayer(0, 20))
    			value += 0.15;
    		else if (usingPrayer(0, 28))
    			value += 0.20;
    		else if (usingPrayer(1, 2)) {
    			double d = (leechBonuses[1]);
    			value += d / 100;
    		} else if (usingPrayer(1, 11)) {
    			double d = (5 + leechBonuses[4]);
    			value += d / 100;
    		}
    		return value;
    	}
    
    	public double getAttackMultiplier() {
    		if (onPrayersCount == 0)
    			return 1.0;
    		double value = 1.0;
    
    		// normal
    		if (usingPrayer(0, 2))
    			value += 0.05;
    		else if (usingPrayer(0, 7))
    			value += 0.10;
    		else if (usingPrayer(0, 15))
    			value += 0.15;
    		else if (usingPrayer(0, 25))
    			value += 0.15;
    		else if (usingPrayer(0, 27))
    			value += 0.20;
    		else if (usingPrayer(1, 1)) {
    			double d = (leechBonuses[0]);
    			value += d / 100;
    		} else if (usingPrayer(1, 10)) {
    			double d = (5 + leechBonuses[3]);
    			value += d / 100;
    		} else if (usingPrayer(1, 19)) {
    			double d = (15 + leechBonuses[8]);
    			value += d / 100;
    		}
    		return value;
    	}
    
    	public double getStrengthMultiplier() {
    		if (onPrayersCount == 0)
    			return 1.0;
    		double value = 1.0;
    
    		// normal
    		if (usingPrayer(0, 1))
    			value += 0.05;
    		else if (usingPrayer(0, 6))
    			value += 0.10;
    		else if (usingPrayer(0, 14))
    			value += 0.15;
    		else if (usingPrayer(0, 25))
    			value += 0.18;
    		else if (usingPrayer(0, 27))
    			value += 0.23;
    		else if (usingPrayer(1, 1)) {
    			double d = (leechBonuses[0]);
    			value += d / 100;
    		} else if (usingPrayer(1, 14)) {
    			double d = (5 + leechBonuses[7]);
    			value += d / 100;
    		} else if (usingPrayer(1, 19)) {
    			double d = (23 + leechBonuses[10]);
    			value += d / 100;
    		}
    		return value;
    	}
    
    	public double getDefenceMultiplier() {
    		if (onPrayersCount == 0)
    			return 1.0;
    		double value = 1.0;
    
    		// normal
    		if (usingPrayer(0, 0))
    			value += 0.05;
    		else if (usingPrayer(0, 5))
    			value += 0.10;
    		else if (usingPrayer(0, 13))
    			value += 0.15;
    		else if (usingPrayer(0, 25))
    			value += 0.20;
    		else if (usingPrayer(0, 27))
    			value += 0.25;
    		else if (usingPrayer(0, 28))
    			value += 0.25;
    		else if (usingPrayer(0, 29))
    			value += 0.25;
    		else if (usingPrayer(1, 1)) {
    			double d = (leechBonuses[0]);
    			value += d / 100;
    		} else if (usingPrayer(1, 13)) {
    			double d = (6 + leechBonuses[6]);
    			value += d / 100;
    		} else if (usingPrayer(1, 19)) {
    			double d = (15 + leechBonuses[9]);
    			value += d / 100;
    		}
    		return value;
    	}
    
    	public boolean reachedMax(int bonus) {
    		if (bonus != 8 && bonus != 9 && bonus != 10)
    			return leechBonuses[bonus] >= 20;
    		else
    			return false;
    	}
    
    	public void increaseLeechBonus(int bonus) {
    		leechBonuses[bonus]++;
    		if (bonus == 0) {
    			adjustStat(0, leechBonuses[bonus]);
    			adjustStat(1, leechBonuses[bonus]);
    			adjustStat(2, leechBonuses[bonus]);
    		} else if (bonus == 1) {
    			adjustStat(2, leechBonuses[bonus]);
    			adjustStat(3, leechBonuses[bonus]);
    		} else if (bonus == 2) {
    			adjustStat(2, leechBonuses[bonus]);
    			adjustStat(4, leechBonuses[bonus]);
    		} else if (bonus == 3)
    			adjustStat(0, leechBonuses[bonus]);
    		else if (bonus == 4)
    			adjustStat(3, leechBonuses[bonus]);
    		else if (bonus == 5)
    			adjustStat(4, leechBonuses[bonus]);
    		else if (bonus == 6)
    			adjustStat(2, leechBonuses[bonus]);
    		else if (bonus == 7)
    			adjustStat(1, leechBonuses[bonus]);
    	}
    
    	public void increaseTurmoilBonus(Player p2) {
    		leechBonuses[8] = (int) ((100 * Math.floor(0.15 * p2.getSkills()
    				.getLevelForXp(Skills.ATTACK))) / p2.getSkills().getLevelForXp(
    				Skills.ATTACK));
    		leechBonuses[9] = (int) ((100 * Math.floor(0.15 * p2.getSkills()
    				.getLevelForXp(Skills.DEFENCE))) / p2.getSkills()
    				.getLevelForXp(Skills.DEFENCE));
    		leechBonuses[10] = (int) ((100 * Math.floor(0.1 * p2.getSkills()
    				.getLevelForXp(Skills.STRENGTH))) / p2.getSkills()
    				.getLevelForXp(Skills.STRENGTH));
    		adjustStat(0, leechBonuses[8]);
    		adjustStat(1, leechBonuses[10]);
    		adjustStat(2, leechBonuses[9]);
    	}
    
    	public void adjustStat(int stat, int percentage) {
    		player.getPackets().sendConfigByFile(6857 + stat, 30 + percentage);
    	}
    
    	public void closePrayers(int prayerId) {
    		if (ancientcurses) {
    			if (prayerId == 1) {
    				if (leechBonuses[0] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Attack is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(0, 0);
    				adjustStat(1, 0);
    				adjustStat(2, 0);
    				leechBonuses[0] = 0;
    			} else if (prayerId == 2) {
    				if (leechBonuses[1] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Range is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(2, 0);
    				adjustStat(4, 0);
    				leechBonuses[1] = 0;
    			} else if (prayerId == 3) {
    				if (leechBonuses[2] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Magic is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(2, 0);
    				adjustStat(5, 0);
    				leechBonuses[2] = 0;
    			} else if (prayerId == 10) {
    				if (leechBonuses[3] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Attack is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(0, 0);
    				leechBonuses[3] = 0;
    			} else if (prayerId == 11) {
    				if (leechBonuses[4] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Ranged is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(4, 0);
    				leechBonuses[4] = 0;
    			} else if (prayerId == 12) {
    				if (leechBonuses[5] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Magic is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(5, 0);
    				leechBonuses[5] = 0;
    			} else if (prayerId == 13) {
    				if (leechBonuses[6] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Defence is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(2, 0);
    				leechBonuses[6] = 0;
    			} else if (prayerId == 14) {
    				if (leechBonuses[7] > 0)
    					player.getPackets()
    							.sendGameMessage(
    									"Your Strength is now unaffected by sap and leech curses.",
    									true);
    				adjustStat(1, 0);
    				leechBonuses[7] = 0;
    			} else if (prayerId == 19) {
    				leechBonuses[8] = 0;
    				leechBonuses[9] = 0;
    				leechBonuses[10] = 0;
    				adjustStat(0, 0);
    				adjustStat(1, 0);
    				adjustStat(2, 0);
    			}
    		}
    	}
    
    	public int getPrayerHeadIcon() {
    		if (onPrayersCount == 0)
    			return -1;
    		int value = -1;
    		if (usingPrayer(0, 16))
    			value += 8;
    		if (usingPrayer(0, 17))
    			value += 3;
    		else if (usingPrayer(0, 18))
    			value += 2;
    		else if (usingPrayer(0, 19))
    			value += 1;
    		else if (usingPrayer(0, 22))
    			value += 4;
    		else if (usingPrayer(0, 23))
    			value += 6;
    		else if (usingPrayer(0, 24))
    			value += 5;
    		else if (usingPrayer(1, 6)) {
    			value += 16;
    			if (usingPrayer(1, 8))
    				value += 2;
    			else if (usingPrayer(1, 7))
    				value += 3;
    			else if (usingPrayer(1, 9))
    				value += 1;
    		} else if (usingPrayer(1, 7))
    			value += 14;
    		else if (usingPrayer(1, 8))
    			value += 15;
    		else if (usingPrayer(1, 9))
    			value += 13;
    		else if (usingPrayer(1, 17))
    			value += 20;
    		else if (usingPrayer(1, 18))
    			value += 21;
    		return value;
    	}
    
    	public void switchSettingQuickPrayer() {
    		usingQuickPrayer = !usingQuickPrayer;
    		player.getPackets().sendGlobalConfig(181, usingQuickPrayer ? 1 : 0);// activates
    																			// quick
    																			// choose
    		unlockPrayerBookButtons();
    		if (usingQuickPrayer) // switchs tab to prayer
    			player.getPackets().sendGlobalConfig(168, 6);
    	}
    
    	public void switchQuickPrayers() {
    		if (!checkPrayer())
    			return;
    		if (hasPrayersOn())
    			closeAllPrayers();
    		else {
    			boolean hasOn = false;
    			int index = 0;
    			for (boolean prayer : quickPrayers[getPrayerBook()]) {
    				if (prayer) {
    					if (usePrayer(index))
    						hasOn = true;
    				}
    				index++;
    			}
    			if (hasOn) {
    				player.getPackets().sendGlobalConfig(182, 1);
    				recalculatePrayer();
    			}
    		}
    	}
    
    	private void closePrayers(int[]... prayers) {
    		for (int[] prayer : prayers)
    			for (int prayerId : prayer)
    				if (usingQuickPrayer)
    					quickPrayers[getPrayerBook()][prayerId] = false;
    				else {
    					if (onPrayers[getPrayerBook()][prayerId])
    						onPrayersCount--;
    					onPrayers[getPrayerBook()][prayerId] = false;
    					closePrayers(prayerId);
    
    				}
    	}
    
    	public void switchPrayer(int prayerId) {
    		if (!usingQuickPrayer)
    			if (!checkPrayer())
    				return;
    		usePrayer(prayerId);
    		recalculatePrayer();
    	}
    
    	private boolean usePrayer(int prayerId) {
    		if (prayerId < 0 || prayerId >= prayerLvls[getPrayerBook()].length)
    			return false;
    		if (player.getSkills().getLevelForXp(5) < prayerLvls[this
    				.getPrayerBook()][prayerId]) {
    			player.getPackets().sendGameMessage(
    					"You need a prayer level of at least "
    							+ prayerLvls[getPrayerBook()][prayerId]
    							+ " to use this prayer.");
    			return false;
    		}
    		if (getPrayerBook() == 0 && prayerId == 25 || prayerId == 27) {
    			if (player.getSkills().getLevelForXp(Skills.DEFENCE) < 60) {
    				player.getPackets().sendGameMessage(
    						"You need a defence level of at least " + 60
    								+ " to use this prayer.");
    				return false;
    			}
    		} else if (getPrayerBook() == 1) {
    			if (player.getSkills().getLevelForXp(Skills.DEFENCE) < 30) {
    				player.getPackets().sendGameMessage(
    						"You need a defence level of at least " + 30
    								+ " to use this prayer.");
    				return false;
    			}
    		}
    		if (player.getPrayerDelay() >= Utils.currentTimeMillis()) {
    			player.getPackets()
    					.sendGameMessage(
    							"You are currently injured and cannot use protection prayers!");
    			if (ancientcurses && prayerId >= 6 && prayerId <= 9)
    				return false;
    			else if (prayerId >= 16 && prayerId <= 19)
    				return false;
    		}
    		if (!usingQuickPrayer) {
    			if (onPrayers[getPrayerBook()][prayerId]) {
    				onPrayers[getPrayerBook()][prayerId] = false;
    				closePrayers(prayerId);
    				onPrayersCount--;
    				player.getAppearence().generateAppearenceData();
    				player.getPackets().sendSound(2663, 0, 1);
    				return true;
    			}
    		} else {
    			if (quickPrayers[getPrayerBook()][prayerId]) {
    				quickPrayers[getPrayerBook()][prayerId] = false;
    				player.getPackets().sendSound(2663, 0, 1);
    				return true;
    			}
    		}
    		boolean needAppearenceGenerate = false;
    		if (getPrayerBook() == 0) {
    			switch (prayerId) {
    			case 0:
    			case 5:
    			case 13:
    				closePrayers(closePrayers[getPrayerBook()][0],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			case 1:
    			case 6:
    			case 14:
    				closePrayers(closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][3],
    						closePrayers[getPrayerBook()][4],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			case 2:
    			case 7:
    			case 15:
    				closePrayers(closePrayers[getPrayerBook()][2],
    						closePrayers[getPrayerBook()][3],
    						closePrayers[getPrayerBook()][4],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			case 3:
    			case 11:
    			case 20:
    				closePrayers(closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][2],
    						closePrayers[getPrayerBook()][3],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			case 4:
    			case 12:
    			case 21:
    				closePrayers(closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][2],
    						closePrayers[getPrayerBook()][4],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			case 8:
    			case 9:
    			case 26:
    				closePrayers(closePrayers[getPrayerBook()][5]);
    				break;
    			case 10:
    				closePrayers(closePrayers[getPrayerBook()][6]);
    				break;
    			case 17:
    			case 18:
    			case 19:
    				closePrayers(closePrayers[getPrayerBook()][7],
    						closePrayers[getPrayerBook()][9]);
    				needAppearenceGenerate = true;
    				break;
    			case 16:
    				closePrayers(closePrayers[getPrayerBook()][8],
    						closePrayers[getPrayerBook()][9]);
    				needAppearenceGenerate = true;
    				break;
    			case 22:
    			case 23:
    			case 24:
    				closePrayers(closePrayers[getPrayerBook()][7],
    						closePrayers[getPrayerBook()][8],
    						closePrayers[getPrayerBook()][9]);
    				needAppearenceGenerate = true;
    				break;
    			case 25:
    			case 27:
    			case 28:
    			case 29:
    				closePrayers(closePrayers[getPrayerBook()][0],
    						closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][2],
    						closePrayers[getPrayerBook()][3],
    						closePrayers[getPrayerBook()][4],
    						closePrayers[getPrayerBook()][10]);
    				break;
    			default:
    				return false;
    			}
    		} else {
    			switch (prayerId) {
    			case 0:
    				if (!usingQuickPrayer) {
    					player.setNextAnimation(new Animation(12567));
    					player.setNextGraphics(new Graphics(2213));
    				}
    				closePrayers(closePrayers[getPrayerBook()][0]);
    				break;
    			case 1:
    			case 2:
    			case 3:
    			case 4:
    				closePrayers(closePrayers[getPrayerBook()][5],
    						closePrayers[getPrayerBook()][6]);
    				break;
    			case 5:
    				if (!usingQuickPrayer) {
    					player.setNextAnimation(new Animation(12589));
    					player.setNextGraphics(new Graphics(2266));
    				}
    				closePrayers(closePrayers[getPrayerBook()][2]);
    				break;
    			case 7:
    			case 8:
    			case 9:
    			case 17:
    			case 18:
    				closePrayers(closePrayers[getPrayerBook()][3]);
    				needAppearenceGenerate = true;
    				break;
    			case 6:
    				closePrayers(closePrayers[getPrayerBook()][4]);
    				needAppearenceGenerate = true;
    				break;
    			case 10:
    			case 11:
    			case 12:
    			case 13:
    			case 14:
    			case 15:
    			case 16:
    				closePrayers(closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][6]);
    				break;
    			case 19:
    				// stop changing this idiot. it doesnt stop walk on rs
    				if (!usingQuickPrayer) {
    					player.setNextAnimation(new Animation(12565));
    					player.setNextGraphics(new Graphics(2226));
    				}
    				closePrayers(closePrayers[getPrayerBook()][1],
    						closePrayers[getPrayerBook()][5],
    						closePrayers[getPrayerBook()][6]);
    				break;
    			default:
    				return false;
    			}
    		}
    		if (!usingQuickPrayer) {
    			onPrayers[getPrayerBook()][prayerId] = true;
    			if (onPrayersCount == 0)
    				resetDrainPrayer();
    			onPrayersCount++;
    			if (needAppearenceGenerate)
    				player.getAppearence().generateAppearenceData();
    		} else {
    			quickPrayers[getPrayerBook()][prayerId] = true;
    		}
    		player.getPackets().sendSound(2662, 0, 1);
    		return true;
    	}
    
    	public void processPrayer() {
    		if (!hasPrayersOn())
    			return;
    		boostedLeech = false;
    		if (drainDelay <= 0) {
    			drainPrayer(5);
    			resetDrainPrayer();
    		}
    		drainDelay--;
    		if (!checkPrayer())
    			closeAllPrayers();
    	}
    
    	public void resetDrainPrayer() {
    		drainDelay = 3;
    	}
    
    	public int getOnPrayersCount() {
    		return onPrayersCount;
    	}
    
    	public void closeAllPrayers() {
    		onPrayers = new boolean[][] { new boolean[30], new boolean[20] };
    		leechBonuses = new int[11];
    		onPrayersCount = 0;
    		player.getPackets().sendGlobalConfig(182, 0);
    		player.getPackets().sendConfig(ancientcurses ? 1582 : 1395, 0);
    		player.getAppearence().generateAppearenceData();
    		resetStatAdjustments();
    	}
    
    	public boolean hasPrayersOn() {
    		return onPrayersCount > 0;
    	}
    
    	private boolean checkPrayer() {
    		if (prayerpoints <= 0) {
    			player.getPackets().sendSound(2672, 0, 1);
    			player.getPackets().sendGameMessage("Please recharge your prayer at the Lumbridge Church.");
    			return false;
    		}
    		return true;
    	}
    
    	private int getPrayerBook() {
    		return ancientcurses == false ? 0 : 1;
    	}
    
    	private void recalculatePrayer() {
    		int value = 0;
    		int index = 0;
    		for (boolean prayer : (!usingQuickPrayer ? onPrayers[getPrayerBook()]
    				: quickPrayers[getPrayerBook()])) {
    			if (prayer)
    				value += ancientcurses ? Math.pow(2, index)
    						: prayerSlotValues[index];
    			index++;
    		}
    		player.getPackets().sendConfig(
    				ancientcurses ? (usingQuickPrayer ? 1587 : 1582)
    						: (usingQuickPrayer ? 1397 : 1395), value);
    	}
    
    	public void refresh() {
    		player.getPackets().sendGlobalConfig(181, usingQuickPrayer ? 1 : 0);
    		player.getPackets().sendConfig(1584, ancientcurses ? 1 : 0);
    		unlockPrayerBookButtons();
    	}
    
    	public void resetStatAdjustments() {
    		for (int i = 0; i < 5; i++)
    			adjustStat(i, 0);
    	}
    
    	public void init() {
    		player.getPackets().sendGlobalConfig(181, usingQuickPrayer ? 1 : 0);
    		player.getPackets().sendConfig(1584, ancientcurses ? 1 : 0);
    		resetStatAdjustments();
    	}
    
    	public void unlockPrayerBookButtons() {
    		player.getPackets().sendUnlockIComponentOptionSlots(271,
    				usingQuickPrayer ? 42 : 8, 0, 29, 0);
    	}
    
    	public void setPrayerBook(boolean ancientcurses) {
    		closeAllPrayers();
    		this.ancientcurses = ancientcurses;
    		player.getInterfaceManager().sendPrayerBook();
    		refresh();
    	}
    
    	public Prayer() {
    		quickPrayers = new boolean[][] { new boolean[30], new boolean[20] };
    		prayerpoints = 10;
    	}
    
    	public void setPlayer(Player player) {
    		this.player = player;
    		onPrayers = new boolean[][] { new boolean[30], new boolean[20] };
    		leechBonuses = new int[11];
    	}
    
    	public boolean isAncientCurses() {
    		return ancientcurses;
    	}
    
    	public boolean usingPrayer(int book, int prayerId) {
    		return onPrayers[book][prayerId];
    	}
    
    	public boolean isUsingQuickPrayer() {
    		return usingQuickPrayer;
    	}
    
    	public boolean isBoostedLeech() {
    		return boostedLeech;
    	}
    
    	public void setBoostedLeech(boolean boostedLeech) {
    		this.boostedLeech = boostedLeech;
    	}
    
    	public int getPrayerpoints() {
    		return prayerpoints;
    	}
    
    	public void setPrayerpoints(int prayerpoints) {
    		this.prayerpoints = prayerpoints;
    	}
    
    	public void refreshPrayerPoints() {
    		player.getPackets().sendConfig(2382, prayerpoints);
    	}
    
    	public void drainPrayerOnHalf() {
    		if (prayerpoints > 0) {
    			prayerpoints = prayerpoints / 2;
    			refreshPrayerPoints();
    		}
    	}
    
    	public void drainPrayer(int amount) {
    		if ((prayerpoints - amount) >= 0)
    			prayerpoints -= amount;
    		else
    			prayerpoints = 0;
    		refreshPrayerPoints();
    	}
    
    	public void restorePrayer(int amount) {
    		int maxPrayer = player.getSkills().getLevelForXp(Skills.PRAYER) * 10;
    		if ((prayerpoints + amount) <= maxPrayer)
    			prayerpoints += amount;
    		else
    			prayerpoints = maxPrayer;
    		refreshPrayerPoints();
    	}
    
    	public void reset() {
    		closeAllPrayers();
    		prayerpoints = player.getSkills().getLevelForXp(Skills.PRAYER) * 10;
    		refreshPrayerPoints();
    	}
    
    }
    [/spoil]
    Reply With Quote  
     

  2. #2  
    Banned

    Join Date
    Oct 2012
    Posts
    4,710
    Thanks given
    1,679
    Thanks received
    1,105
    Rep Power
    0
    In this code there is no soulsplit handled
    Reply With Quote  
     

  3. #3  
    Registered Member

    Join Date
    Mar 2011
    Age
    27
    Posts
    555
    Thanks given
    168
    Thanks received
    190
    Rep Power
    0
    That should be handled in PlayerCombat, but if it's original matrix the idiots put it in Player.java, check there.

    Remove your method in Player.java and add these.

    Put this in PlayerCombat
    Code:
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    		int damage = hit.getDamage() > target.getHitpoints() ? target.getHitpoints() : hit.getDamage();
    		if (damage == 0)
    			return;
    		World.sendSoulsplitProjectile(player, target, 2263);
    		if (player.getHitpoints() > 0 && player.getHitpoints() <= player.getMaxHitpoints()) {
    			player.heal(damage / 5);
    			if (target instanceof Player) {
    				Player p2 = (Player) target;
    				p2.getPrayer().drainPrayer(damage / 5);
    			}
    		}
    		WorldTasksManager.schedule(new WorldTask() {
    			@Override
    			public void run() {
    				if (player == null || target == null || player.isDead() || player.hasFinished() || target.isDead()
    						|| target.hasFinished())
    					return;
    				target.setNextGraphics(new Graphics(2264));
    				World.sendSoulsplitProjectile(target, player, 2263);
    			}
    		}, 1);
    	}
    Under
    Code:
    if (blood_spell)
    				player.heal(damage / 4);
    add

    Code:
    if (player.getPrayer().usingPrayer(1, 18) && damage > 0)
    				sendSoulSplit(hit, player, target);
    World.java
    Code:
    public static final void sendSoulsplitProjectile(Entity shooter, Entity receiver, int gfxId) {
    		for (int regionId : shooter.getMapRegionsIds()) {
    			List<Integer> playersIndexes = getRegion(regionId).getPlayerIndexes();
    			if (playersIndexes == null)
    				continue;
    			for (Integer playerIndex : playersIndexes) {
    				Player player = players.get(playerIndex);
    				if (player == null || !player.hasStarted() || player.hasFinished()
    						|| (!player.withinDistance(shooter) && !player.withinDistance(receiver)))
    					continue;
    				int size = shooter.getSize();
    				int distance = Utils.getDistance(shooter, receiver);
    				int startOffsetDistance = distance > 2 ? 0 : 11;
    				
    				player.getPackets().sendProjectile(receiver,
    						new WorldTile(shooter.getCoordFaceX(size), shooter.getCoordFaceY(size), shooter.getPlane()),
    						receiver, gfxId, 0, 0, distance < 4 ? 26 : 31, 41, 6,
    						receiver instanceof Player ? startOffsetDistance : startOffsetDistance, size);
    			}
    		}
    	}
    Avalon Developer
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    Jul 2012
    Posts
    6
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by -Andreas View Post
    That should be handled in PlayerCombat, but if it's original matrix the idiots put it in Player.java, check there.

    Remove your method in Player.java and add these.

    Put this in PlayerCombat
    Code:
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    		int damage = hit.getDamage() > target.getHitpoints() ? target.getHitpoints() : hit.getDamage();
    		if (damage == 0)
    			return;
    		World.sendSoulsplitProjectile(player, target, 2263);
    		if (player.getHitpoints() > 0 && player.getHitpoints() <= player.getMaxHitpoints()) {
    			player.heal(damage / 5);
    			if (target instanceof Player) {
    				Player p2 = (Player) target;
    				p2.getPrayer().drainPrayer(damage / 5);
    			}
    		}
    		WorldTasksManager.schedule(new WorldTask() {
    			@Override
    			public void run() {
    				if (player == null || target == null || player.isDead() || player.hasFinished() || target.isDead()
    						|| target.hasFinished())
    					return;
    				target.setNextGraphics(new Graphics(2264));
    				World.sendSoulsplitProjectile(target, player, 2263);
    			}
    		}, 1);
    	}
    Under
    Code:
    if (blood_spell)
    				player.heal(damage / 4);
    add

    Code:
    if (player.getPrayer().usingPrayer(1, 18) && damage > 0)
    				sendSoulSplit(hit, player, target);
    World.java
    Code:
    public static final void sendSoulsplitProjectile(Entity shooter, Entity receiver, int gfxId) {
    		for (int regionId : shooter.getMapRegionsIds()) {
    			List<Integer> playersIndexes = getRegion(regionId).getPlayerIndexes();
    			if (playersIndexes == null)
    				continue;
    			for (Integer playerIndex : playersIndexes) {
    				Player player = players.get(playerIndex);
    				if (player == null || !player.hasStarted() || player.hasFinished()
    						|| (!player.withinDistance(shooter) && !player.withinDistance(receiver)))
    					continue;
    				int size = shooter.getSize();
    				int distance = Utils.getDistance(shooter, receiver);
    				int startOffsetDistance = distance > 2 ? 0 : 11;
    				
    				player.getPackets().sendProjectile(receiver,
    						new WorldTile(shooter.getCoordFaceX(size), shooter.getCoordFaceY(size), shooter.getPlane()),
    						receiver, gfxId, 0, 0, distance < 4 ? 26 : 31, 41, 6,
    						receiver instanceof Player ? startOffsetDistance : startOffsetDistance, size);
    			}
    		}
    	}
    Thanks for the help, it fixed my issue however I now have 13 errors in my compiler lol
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Jan 2015
    Posts
    277
    Thanks given
    30
    Thanks received
    23
    Rep Power
    34
    Post your errors
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Jul 2012
    Posts
    6
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    [spoil]
    Note: Recompile with -Xlint:unchecked for details.
    14 errors
    compiled Server folder
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\Player.java:1948: error: cannot find symbol
    sendSoulSplit(hit, p2);
    ^
    symbol: method sendSoulSplit(Hit,Player)
    location: class Player
    src\com\rs\game\player\Player.java:2277: error: cannot find symbol
    sendSoulSplit(hit, n);
    ^
    symbol: method sendSoulSplit(Hit,NPC)
    location: class Player
    src\com\rs\game\World.java:492: error: method getDistance in class Utils cannot be applied to given types;
    int distance = Utils.getDistance(shooter, receiver);
    ^
    required: int,int,int,int
    found: Entity,Entity
    reason: actual and formal argument lists differ in length
    src\com\rs\game\player\actions\PlayerCombat.java:2 614: error: cannot find symbol
    sendSoulSplit(hit, player, target);
    ^
    symbol: method sendSoulSplit(Hit,Player,Entity)
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: variable player is already defined in method checkAll(Player)
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 026: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 044: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\npc\SlayerHelp.java:63: error: duplicate case label
    case 2783: //dbeast
    ^
    Note: src\com\rs\game\player\Inventory.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    14 errors
    compiling Dialogues
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\Player.java:1948: error: cannot find symbol
    sendSoulSplit(hit, p2);
    ^
    symbol: method sendSoulSplit(Hit,Player)
    location: class Player
    src\com\rs\game\player\Player.java:2277: error: cannot find symbol
    sendSoulSplit(hit, n);
    ^
    symbol: method sendSoulSplit(Hit,NPC)
    location: class Player
    src\com\rs\game\World.java:492: error: method getDistance in class Utils cannot be applied to given types;
    int distance = Utils.getDistance(shooter, receiver);
    ^
    required: int,int,int,int
    found: Entity,Entity
    reason: actual and formal argument lists differ in length
    src\com\rs\game\player\actions\PlayerCombat.java:2 614: error: cannot find symbol
    sendSoulSplit(hit, player, target);
    ^
    symbol: method sendSoulSplit(Hit,Player,Entity)
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: variable player is already defined in method checkAll(Player)
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 026: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 044: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\npc\SlayerHelp.java:63: error: duplicate case label
    case 2783: //dbeast
    ^
    Note: src\com\rs\game\player\Inventory.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    14 errors
    compiled Main Server Folder
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\Player.java:1948: error: cannot find symbol
    sendSoulSplit(hit, p2);
    ^
    symbol: method sendSoulSplit(Hit,Player)
    location: class Player
    src\com\rs\game\player\Player.java:2277: error: cannot find symbol
    sendSoulSplit(hit, n);
    ^
    symbol: method sendSoulSplit(Hit,NPC)
    location: class Player
    src\com\rs\game\World.java:492: error: method getDistance in class Utils cannot be applied to given types;
    int distance = Utils.getDistance(shooter, receiver);
    ^
    required: int,int,int,int
    found: Entity,Entity
    reason: actual and formal argument lists differ in length
    src\com\rs\game\player\actions\PlayerCombat.java:2 614: error: cannot find symbol
    sendSoulSplit(hit, player, target);
    ^
    symbol: method sendSoulSplit(Hit,Player,Entity)
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: variable player is already defined in method checkAll(Player)
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 026: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 044: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\npc\SlayerHelp.java:63: error: duplicate case label
    case 2783: //dbeast
    ^
    Note: src\com\rs\game\player\Inventory.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    14 errors
    compiled Main Server Folder
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: illegal start of expression
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: <identifier> expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: ';' expected
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\Player.java:1948: error: cannot find symbol
    sendSoulSplit(hit, p2);
    ^
    symbol: method sendSoulSplit(Hit,Player)
    location: class Player
    src\com\rs\game\player\Player.java:2277: error: cannot find symbol
    sendSoulSplit(hit, n);
    ^
    symbol: method sendSoulSplit(Hit,NPC)
    location: class Player
    src\com\rs\game\World.java:492: error: method getDistance in class Utils cannot be applied to given types;
    int distance = Utils.getDistance(shooter, receiver);
    ^
    required: int,int,int,int
    found: Entity,Entity
    reason: actual and formal argument lists differ in length
    src\com\rs\game\npc\SlayerHelp.java:63: error: duplicate case label
    case 2783: //dbeast
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:2 614: error: cannot find symbol
    sendSoulSplit(hit, player, target);
    ^
    symbol: method sendSoulSplit(Hit,Player,Entity)
    src\com\rs\game\player\actions\PlayerCombat.java:3 022: error: variable player is already defined in method checkAll(Player)
    public void sendSoulSplit(final Hit hit, final Player player, final Entity target) {
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 026: error: incompatible types: missing return value
    return;
    ^
    src\com\rs\game\player\actions\PlayerCombat.java:3 044: error: incompatible types: missing return value
    return;
    ^
    Note: src\com\rs\game\player\Inventory.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    14 errors
    Compiled all Successfully
    Press any key to continue . . .
    [/spoil]
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. 667 soulsplit
    By Drathus Scape in forum Help
    Replies: 5
    Last Post: 12-03-2012, 11:44 PM
  2. 667 source compilier issue plz help :(
    By shocked kill in forum Help
    Replies: 5
    Last Post: 11-22-2012, 08:47 AM
  3. 667/7** Mining Issue
    By PvMLegacyTyler in forum Help
    Replies: 6
    Last Post: 08-31-2012, 10:52 PM
  4. Replies: 1
    Last Post: 08-03-2011, 07:01 PM
  5. Replies: 10
    Last Post: 12-18-2010, 11:23 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •