Thread: [PI]REALFIX for -1 Fatal exception has been thrown! while killing barrows CLIPPEDNPCS

Results 1 to 7 of 7
  1. #1 [PI]REALFIX for -1 Fatal exception has been thrown! while killing barrows CLIPPEDNPCS 
    Registered Member Luigii's Avatar
    Join Date
    Aug 2013
    Posts
    35
    Thanks given
    5
    Thanks received
    2
    Rep Power
    11
    I couldn't find a working tutorial for this, and i just kept on trying to fix it and i found it!
    I'm not very good at coding, so i saw this as my chance to contribute to rune-server

    What you will be fixing:
    Code:
    [1/09/13 17:06]: java.lang.ArrayIndexOutOfBoundsException: -1
    [1/09/13 17:06]:  at server.clip.region.Region.getClip(Region.java:21)
    [1/09/13 17:06]:  at server.clip.region.Region.getClipping(Region.java:251)
    [1/09/13 17:06]:  at server.model.npcs.NPCHandler.handleClipping(NPCHandler.java:1661)
    [1/09/13 17:06]:  at server.model.npcs.NPCHandler.followPlayer(NPCHandler.java:1644)
    [1/09/13 17:06]:  at server.model.npcs.NPCHandler.process(NPCHandler.java:970)
    [1/09/13 17:06]:  at server.Server.main(Server.java:190)
    [1/09/13 17:06]: A fatal exception has been thrown!
    Open ActionHandler class.
    Search for case 6707:
    You should see something like this:
    Code:
    //coffins
    		case 6707: // verac
    			c.getPA().movePlayer(3556, 3298, 0);
    			break;
    			
    		case 6823:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[0][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2030, c.getX(), c.getY()-1, -1, 0, 120, 25, 200, 200, true, true);
    				c.barrowsNpcs[0][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    
    		case 6706: // torag 
    			c.getPA().movePlayer(3553, 3283, 0);
    			break;
    			
    		case 6772:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[1][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2029, c.getX()+1, c.getY(), -1, 0, 120, 20, 200, 200, true, true);
    				c.barrowsNpcs[1][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    			
    		case 6705: // karil stairs
    			c.getPA().movePlayer(3565, 3276, 0);
    			break;
    		case 6822:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[2][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2028, c.getX(), c.getY()-1, -1, 0, 90, 17, 200, 200, true, true);
    				c.barrowsNpcs[2][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6704: // guthan stairs
    			c.getPA().movePlayer(3578, 3284, 0);
    			break;
    		case 6773:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[3][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2027, c.getX(), c.getY()-1, -1, 0, 120, 23, 200, 200, true, true);
    				c.barrowsNpcs[3][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6703: // dharok stairs
    			c.getPA().movePlayer(3574, 3298, 0);
    			break;
    		case 6771:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[4][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2026, c.getX(), c.getY()-1, -1, 0, 120, 45, 250, 250, true, true);
    				c.barrowsNpcs[4][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6702: // ahrim stairs
    			c.getPA().movePlayer(3565, 3290, 0);
    			break;
    		case 6821:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[5][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2025, c.getX(), c.getY()-1, -1, 0, 90, 19, 200, 200, true, true);
    				c.barrowsNpcs[5][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    Replace all of it with this:
    Code:
    case 6707: // verac
    			c.getPA().movePlayer(3556, 3298, 0);
    			break;
    case 6823:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[0][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2030, c.getX(), c.getY()-1, 3, 0, 120, 25, 200, 200, true, true);
    				c.barrowsNpcs[0][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    
    		case 6706: // torag 
    			c.getPA().movePlayer(3553, 3283, 0);
    			break;
    			
    		case 6772:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[1][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2029, c.getX()+1, c.getY()-1, 3, 0, 120, 20, 200, 200, true, true);
    				c.barrowsNpcs[1][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    			
    		case 6705: // karil stairs
    			c.getPA().movePlayer(3565, 3276, 0);
    			break;
    		case 6822:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[2][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2028, c.getX(), c.getY()-1, 3, 0, 90, 17, 200, 200, true, true);
    				c.barrowsNpcs[2][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6704: // guthan stairs
    			c.getPA().movePlayer(3578, 3284, 0);
    			break;
    		case 6773:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[3][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2027, c.getX(), c.getY()-1, 3, 0, 120, 23, 200, 200, true, true);
    				c.barrowsNpcs[3][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6703: // dharok stairs
    			c.getPA().movePlayer(3574, 3298, 0);
    			break;
    		case 6771:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[4][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2026, c.getX(), c.getY()-1, 3, 0, 120, 45, 250, 250, true, true);
    				c.barrowsNpcs[4][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6702: // ahrim stairs
    			c.getPA().movePlayer(3565, 3290, 0);
    			break;
    		case 6821:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[5][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2025, c.getX(), c.getY()-1, 3, 0, 90, 19, 200, 200, true, true);
    				c.barrowsNpcs[5][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    Open playerAssistant class.
    Search for public void changeLocation() {

    And you should see something like this:
    Code:
                   public void changeLocation() {
    		switch(c.newLocation) {
    			case 1:
    			sendFrame99(2);
    			movePlayer(3578,9706,-1);
    			break;
    			case 2:
    			sendFrame99(2);
    			movePlayer(3568,9683,-1);
    			break;
    			case 3:
    			sendFrame99(2);
    			movePlayer(3557,9703,-1);
    			break;
    			case 4:
    			sendFrame99(2);
    			movePlayer(3556,9718,-1);
    			break;
    			case 5:
    			sendFrame99(2);
    			movePlayer(3534,9704,-1);
    			break;
    			case 6:
    			sendFrame99(2);
    			movePlayer(3546,9684,-1);
    			break;
    		}
    		c.newLocation = 0;
    	}
    Replace everything with this:

    Code:
    public void changeLocation() {
    		switch(c.newLocation) {
    			case 1:
    			sendFrame99(2);
    			movePlayer(3578,9706,3);
    			break;
    			case 2:
    			sendFrame99(2);
    			movePlayer(3568,9683,3);
    			break;
    			case 3:
    			sendFrame99(2);
    			movePlayer(3557,9703,3);
    			break;
    			case 4:
    			sendFrame99(2);
    			movePlayer(3556,9718,3);
    			break;
    			case 5:
    			sendFrame99(2);
    			movePlayer(3534,9704,3);
    			break;
    			case 6:
    			sendFrame99(2);
    			movePlayer(3546,9684,3);
    			break;
    		}
    		c.newLocation = 0;
    	}
    Save, compile and its fixed!
    If it helped you, click the thanks button and/or rep++
    Reply With Quote  
     

  2. Thankful user:


  3. #2  
    Donator

    Join Date
    Feb 2013
    Posts
    197
    Thanks given
    100
    Thanks received
    8
    Rep Power
    19
    Thanks
    Spoiler for massive sig:




    Reply With Quote  
     

  4. #3  
    leme give u some n00ts

    noot noot's Avatar
    Join Date
    Dec 2012
    Posts
    1,183
    Thanks given
    187
    Thanks received
    130
    Discord
    View profile
    Rep Power
    343
    Dat contribution, noice noice
    [Only registered and activated users can see links. ]
    Spoiler for :

    [Today 05:42 AM] Thakiller: Danced to make us lauigh and put a smile on our faces
    Reply With Quote  
     

  5. #4  
    Best Hybrid Alive
    Almagesrnubs's Avatar
    Join Date
    Nov 2009
    Posts
    884
    Thanks given
    443
    Thanks received
    261
    Rep Power
    114
    Why, when you can simply just replace your getClip method?

    Code:
    	private int getClip(int x, int y, int height) {
    		if (height > 3 || height < 0) {
    			height = Math.abs(height) % 4;
    		}
    		int regionAbsX = (id >> 8) * 64;
    		int regionAbsY = (id & 0xff) * 64;
    		if (clips[height] == null) {
    			return 0;
    		}
    		return clips[height][x - regionAbsX][y - regionAbsY];
    	}
    Reply With Quote  
     

  6. #5  
    Registered Member Luigii's Avatar
    Join Date
    Aug 2013
    Posts
    35
    Thanks given
    5
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by Almagesrnubs View Post
    Why, when you can simply just replace your getClip method?

    Code:
    	private int getClip(int x, int y, int height) {
    		if (height > 3 || height < 0) {
    			height = Math.abs(height) % 4;
    		}
    		int regionAbsX = (id >> 8) * 64;
    		int regionAbsY = (id & 0xff) * 64;
    		if (clips[height] == null) {
    			return 0;
    		}
    		return clips[height][x - regionAbsX][y - regionAbsY];
    	}
    No idea to be honest. I did this when i finished adding clipped following + npc's, and saw the errors and tried fixing them
    But if this works, thanks!
    Reply With Quote  
     

  7. #6  
    Registered Member Aleksandr's Avatar
    Join Date
    Sep 2006
    Age
    30
    Posts
    1,027
    Thanks given
    450
    Thanks received
    131
    Discord
    View profile
    Rep Power
    53
    real fix, lol. Real fix is supposed to be done in here
    Code:
    [1/09/13 17:06]:  at server.clip.region.Region.getClip(Region.java:21)
    [1/09/13 17:06]:  at server.clip.region.Region.getClipping(Region.java:251)
    just do [height & 3]
    Al


    There is no RL, just AFK
    Reply With Quote  
     

  8. #7  
    Registered Member Luigii's Avatar
    Join Date
    Aug 2013
    Posts
    35
    Thanks given
    5
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by aleksandr View Post
    real fix, lol. Real fix is supposed to be done in here
    Code:
    [1/09/13 17:06]:  at server.clip.region.Region.getClip(Region.java:21)
    [1/09/13 17:06]:  at server.clip.region.Region.getClipping(Region.java:251)
    just do [height & 3]
    Well what i did fixed it also, and at that time i couldn't think of something else.. Geuss this thread can be deleted.
    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. Replies: 5
    Last Post: 11-26-2012, 10:38 AM
  2. Replies: 16
    Last Post: 07-23-2012, 02:16 AM
  3. Replies: 3
    Last Post: 09-07-2011, 04:56 AM
  4. Replies: 22
    Last Post: 05-03-2011, 03:49 AM
  5. Replies: 14
    Last Post: 06-18-2008, 03:10 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
  •