Thread: [718] Error while adding difficulty modes

Results 1 to 9 of 9
  1. #1 [718] Error while adding difficulty modes 
    Extreme Donator

    Join Date
    Jul 2014
    Posts
    414
    Thanks given
    46
    Thanks received
    8
    Rep Power
    15
    Edit: Posting this in here because I accidentally put it in the RS2 server help by accident, sorry!

    I added difficulties from Rune-Evo 3, as I was hoping to test it out.
    I got everything working but then when I added for it to open the dialogue to select the difficulty, I logged in a new account and it gave me this error:

    Code:
    java.lang.NullPointerException
    	at core.framework.game.player.controlers.StartTutorial.forceClose(StartTutorial.java:191)
    	at core.framework.game.player.ControlerManager.forceStop(ControlerManager.java:274)
    	at core.framework.game.player.ControlerManager.login(ControlerManager.java:62)
    	at core.framework.game.player.Player.run(Player.java:1451)
    	at core.framework.game.player.Player.start(Player.java:1134)
    	at core.framework.net.decoders.LoginPacketsDecoder.decodeWorldLogin(LoginPacketsDecoder.java:179)
    	at core.framework.net.decoders.LoginPacketsDecoder.decode(LoginPacketsDecoder.java:44)
    	at core.framework.net.ServerChannelHandler.messageReceived(ServerChannelHandler.java:122)
    	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95)
    	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
    	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558)
    	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
    	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
    	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
    	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
    	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
    	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    I have no idea how to fix this and I put so much time into trying this out, any help would be lovely. Thanks a lot RuneServer.
    Reply With Quote  
     

  2. #2  
    Registered Member
    Join Date
    May 2010
    Age
    29
    Posts
    143
    Thanks given
    103
    Thanks received
    63
    Rep Power
    10
    Code:
    at core.framework.game.player.controlers.StartTutorial.forceClose(StartTutorial.java:191)
    Show me line 191 in StartTutorial.java.




    Reply With Quote  
     

  3. #3  
    Extreme Donator

    Join Date
    Jul 2014
    Posts
    414
    Thanks given
    46
    Thanks received
    8
    Rep Power
    15
    Quote Originally Posted by Telopya View Post
    Code:
    at core.framework.game.player.controlers.StartTutorial.forceClose(StartTutorial.java:191)
    Show me line 191 in StartTutorial.java.
    Code:
    getDialogueManager().startDialogue("NewStarter");
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    May 2010
    Age
    29
    Posts
    143
    Thanks given
    103
    Thanks received
    63
    Rep Power
    10
    Quote Originally Posted by Projecteco View Post
    Code:
    getDialogueManager().startDialogue("NewStarter");
    That's incorrect, there's no visible
    Code:
    getDialogueManager()
    inside a dialogue.......?

    The line you quoted would be something found in Player.java.

    Paste the entire StartTutorial.java class.




    Reply With Quote  
     

  5. Thankful user:


  6. #5  
    Extreme Donator

    Join Date
    Jul 2014
    Posts
    414
    Thanks given
    46
    Thanks received
    8
    Rep Power
    15
    Quote Originally Posted by Telopya View Post
    That's incorrect, there's no visible
    Code:
    getDialogueManager()
    inside a dialogue.......?

    The line you quoted would be something found in Player.java.

    Paste the entire StartTutorial.java class.
    I'm sorry sir, still learning. My sincere apologies if I'm doing something wrong.
    Here's my StartTutorial.java:

    Code:
    package core.framework.game.player.controlers;
    
    import core.framework.game.Entity;
    import core.framework.game.player.DialogueManager;
    import core.framework.game.World;
    import core.framework.game.WorldObject;
    import core.framework.game.WorldTile;
    import core.framework.game.npc.NPC;
    import core.framework.game.player.Skills;
    import core.framework.game.tasks.WorldTask;
    import core.framework.game.tasks.WorldTasksManager;
    
    import java.util.Date;
    
    import java.util.Calendar;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.text.DecimalFormat;
    import java.io.IOException;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import core.framework.tools.FileManager;
    
    
    public class StartTutorial extends Controler {
    	
    	private transient DialogueManager dialogueManager;
    
    	private static final int QUEST_GUIDE_NPC = 949;
    
    	@Override
    	public void start() {
    		refreshStage();
    	}
    
    	public NPC findNPC(int id) {
    		// as it may be far away
    		for (NPC npc : World.getNPCs()) {
    			if (npc == null || npc.getId() != id)
    				continue;
    			return npc;
    		}
    		return null;
    	}
    
    	/*
    	 * return remove controler
    	 */
    	@Override
    	public boolean login() {
    		start();
    		return true;
    	}
    
    	/*
    	 * return remove controler
    	 */
    	@Override
    	public boolean logout() {
    		return false;
    	}
    
    	@Override
    	public boolean processMagicTeleport(WorldTile toTile) {
    		return false;
    	}
    
    	@Override
    	public boolean keepCombating(Entity target) {
    		return false;
    	}
    
    	@Override
    	public boolean canAttack(Entity target) {
    		return false;
    	}
    
    	@Override
    	public boolean canHit(Entity target) {
    		return false;
    	}
    
    	@Override
    	public boolean processItemTeleport(WorldTile toTile) {
    		return false;
    	}
    
    	@Override
    	public boolean processObjectTeleport(WorldTile toTile) {
    		return false;
    	}
    
    @Override
    	public void process() {
    		if (getStage() == 1 && player.getPrayer().isAncientCurses())
    			updateProgress();
    	}
    
    	@Override
    	public boolean processObjectClick1(WorldObject object) {
    		int id = object.getId();
    		if ((id == 47120 && getStage() == 1)
    				|| (Wilderness.isDitch(id) && getStage() == 2))
    			return true;
    		return false;
    	}
    
    	@Override
    	public boolean processObjectClick2(WorldObject object) {
    		return false;
    	}
    
    	@Override
    	public boolean processObjectClick3(WorldObject object) {
    		return false;
    	}
    	
    	public DialogueManager getDialogueManager() {
    		return dialogueManager;
    	}
    
    	public void refreshStage() {
    		int stage = getStage();
    		if (stage == 0) {
    			NPC guide = findNPC(QUEST_GUIDE_NPC);
    			if (guide != null)
    				player.getHintIconsManager().addHintIcon(guide, 0, -1, false);
    		} else if (stage == 1) {
    			player.getHintIconsManager().addHintIcon(3102, 3504, 0, 100, 0, 0,
    					-1, false);
    		} else if (stage == 2) {
    			player.getHintIconsManager().addHintIcon(3092, 3521, 0, 0, 0, 0,
    					-1, false);
    		}
    		sendInterfaces();
    	}
    
    	
    
    	public void updateProgress() {
    		setStage(getStage() + 1);
    		if (getStage() == 2) {
    			player.getDialogueManager().startDialogue("QuestGuide",
    					QUEST_GUIDE_NPC, this);
    		}
    		refreshStage();
    	}
    
    	@Override
    	public boolean processNPCClick1(NPC npc) {
    		if (npc.getId() == QUEST_GUIDE_NPC) {
    			player.getDialogueManager().startDialogue("QuestGuide",
    					QUEST_GUIDE_NPC, this);
    		}
    		return false;
    	}
    
    	public void setStage(int stage) {
    		getArguments()[0] = stage;
    	}
    
    	public int getStage() {
    		if (getArguments() == null)
    			setArguments(new Object[] { 0 }); // index 0 = stage
    			return (Integer) getArguments()[0];
    		}
    	@Override
    	public void forceClose() {
    		WorldTasksManager.schedule(new WorldTask() {
    			public void run() {
    				player.getInterfaceManager().sendInterfaces();
    				player.getInterfaceManager().closeReplacedRealChatBoxInterface();
    			}
    		});
    		/*int[] itemList = { 1153, 1115, 1067, 1323, 1167, 1129, 1095, 841, 577, 1011, 1381, 1725, 1731 };
    		for (int i = 0; i < itemList.length; i++) {
    			player.getInventory().addItem(itemList[i], 1);
    		}
    		player.getInventory().addItem(882, 500);
    		player.getInventory().addItem(556, 10000);
    		player.getInventory().addItem(558, 10000);
    		player.getInventory().addItem(554, 10000);
    		player.getInventory().addItem(995, 750000);*/
    		player.getHintIconsManager().removeUnsavedHintIcon();
    		player.setExamine("Legion Newbie");
    		player.getMusicsManager().reset();
    		World.sendWorldMessage("<col=01DFD7>Welcome to Legion,</col> " + player.getDisplayName() + "!", false);
    		FileManager.writeToFile("iplogs", "IP-Created-Accounts.txt", "["+ player.getDisplayName() +", "+ DateFormat.getDateTimeInstance().format(new Date()) + "]: "+ player.getSession().getIP()+ "");
    		player.welcomeInterface();
    		getDialogueManager().startDialogue("NewStarter");
    	}
    }
    Basically I want it to open the dialogue when a new player joins. As you can see it opens a interface there too.
    Reply With Quote  
     

  7. #6  
    Registered Member
    Join Date
    May 2010
    Age
    29
    Posts
    143
    Thanks given
    103
    Thanks received
    63
    Rep Power
    10
    Quote Originally Posted by Projecteco View Post
    I'm sorry sir, still learning. My sincere apologies if I'm doing something wrong.
    Here's my StartTutorial.java:

    Basically I want it to open the dialogue when a new player joins. As you can see it opens a interface there too.
    change

    Code:
    getDialogueManager().startDialogue("NewStarter");
    to

    Code:
    player.getDialogueManager().startDialogue("NewStarter");




    Reply With Quote  
     

  8. Thankful user:


  9. #7  
    Extreme Donator

    Join Date
    Jul 2014
    Posts
    414
    Thanks given
    46
    Thanks received
    8
    Rep Power
    15
    Quote Originally Posted by Telopya View Post
    change

    Code:
    getDialogueManager().startDialogue("NewStarter");
    to

    Code:
    player.getDialogueManager().startDialogue("NewStarter");
    Thank you so much! The error is gone, but now I'm receiving other errors:

    Code:
    ERROR! THREAD NAME: World Thread
    java.lang.NullPointerException
    	at core.framework.game.player.Skills.addXp(Skills.java:410)
    	at core.framework.game.player.actions.PlayerCombat.delayHit(PlayerCombat.java:3176)
    	at core.framework.game.player.actions.PlayerCombat.delayNormalHit(PlayerCombat.java:3102)
    	at core.framework.game.player.actions.PlayerCombat.meleeAttack(PlayerCombat.java:2520)
    	at core.framework.game.player.actions.PlayerCombat.processWithDelay(PlayerCombat.java:117)
    	at core.framework.game.player.ActionManager.process(ActionManager.java:29)
    	at core.framework.game.player.Player.processEntity(Player.java:1293)
    	at core.framework.cores.WorldThread.run(WorldThread.java:34)
    I'm really confused on this, sorry. That error occurs when I try to kill NPC's/creatures.
    Reply With Quote  
     

  10. #8  
    Registered Member
    Join Date
    Feb 2017
    Age
    29
    Posts
    53
    Thanks given
    3
    Thanks received
    4
    Rep Power
    11
    Quote Originally Posted by Projecteco View Post
    Thank you so much! The error is gone, but now I'm receiving other errors:

    Code:
    ERROR! THREAD NAME: World Thread
    java.lang.NullPointerException
    	at core.framework.game.player.Skills.addXp(Skills.java:410)
    	at core.framework.game.player.actions.PlayerCombat.delayHit(PlayerCombat.java:3176)
    	at core.framework.game.player.actions.PlayerCombat.delayNormalHit(PlayerCombat.java:3102)
    	at core.framework.game.player.actions.PlayerCombat.meleeAttack(PlayerCombat.java:2520)
    	at core.framework.game.player.actions.PlayerCombat.processWithDelay(PlayerCombat.java:117)
    	at core.framework.game.player.ActionManager.process(ActionManager.java:29)
    	at core.framework.game.player.Player.processEntity(Player.java:1293)
    	at core.framework.cores.WorldThread.run(WorldThread.java:34)
    I'm really confused on this, sorry. That error occurs when I try to kill NPC's/creatures.
    did you add it in skills.java in the addXP method?
    Reply With Quote  
     

  11. #9  
    Extreme Donator

    Join Date
    Jul 2014
    Posts
    414
    Thanks given
    46
    Thanks received
    8
    Rep Power
    15
    Quote Originally Posted by Faitful_ View Post
    did you add it in skills.java in the addXP method?
    Yep, this is the same method as Rune-Evo 3:
    Code:
    public void addXp(int skill, double exp) {
    		if (player.isXpLocked() || locked[skill]) {
    			return;
    		}
    		
    		if (player.allowChange() == true) {
    			player.setAllowChange(false);
    			player.sendMessage("<col=FF0000>You can now no longer change your Difficulty.");
    		}
    		
    		if (player.getDifficulty() == 1) {
    			exp *= 200; // Super Easy
    		} else if (player.getDifficulty() == 2) {
    			exp *= 150; // Easy
    		} else if (player.getDifficulty() == 3) {
    			exp *= 90; // Normal
    		} else if (player.getDifficulty() == 4) {
    			exp *= 50; // Hard
    		} else if (player.getDifficulty() == 5) {
    			exp *= 10; // Extreme
    		}
    		
    		player.getControlerManager().trackXP(skill, (int) exp);
    		exp *= player.getAuraManager().usingWisdom() == true ? 1.025 : 1;
    		exp *= TimeManager.isWeekend() == true ? 1.7 : 1.0;
    		
    		int oldLevel = getLevelForXp(skill);
    		xp[skill] += exp;
    		for (int i = 0; i < trackSkills.length; i++) {
    			if (trackSkills[i]) {
    				if (trackSkillsIds[i] == 30
    						|| (trackSkillsIds[i] == 29 && (skill == Skills.ATTACK
    								|| skill == Skills.DEFENCE
    								|| skill == Skills.STRENGTH
    								|| skill == Skills.MAGIC
    								|| skill == Skills.RANGE || skill == Skills.HITPOINTS))
    						|| trackSkillsIds[i] == getCounterSkill(skill)) {
    					xpTracks[i] += exp;
    					refreshCounterXp(i);
    				}
    			}
    		}
    
    		if (xp[skill] > MAXIMUM_EXP) {
    			xp[skill] = MAXIMUM_EXP;
    		}
    		
    		int newLevel = getLevelForXp(skill);
    		int levelDiff = newLevel - oldLevel;
    		if (newLevel > oldLevel) {
    			level[skill] += levelDiff;
    			player.getDialogueManager().startDialogue("LevelUp", skill);
    			if (skill == SUMMONING || (skill >= ATTACK && skill <= MAGIC)) {
    				player.getAppearence().generateAppearenceData();
    				if (skill == HITPOINTS)
    					player.heal(levelDiff * 10);
    				else if (skill == PRAYER)
    					player.getPrayer().restorePrayer(levelDiff * 10);
    			}
    			player.getQuestManager().checkCompleted();
    		}
    		refresh(skill);
    	}
    Just not sure why it's not working. Again my apologies as I'm still learning Java.

    Edit: I think I'm just gonna get help on adding a non-ripped version of a XP mode thing. I created a different thread about it.
    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. Wrong section, please move/delete
    By Projecteco in forum Help
    Replies: 0
    Last Post: 02-14-2017, 06:25 PM
  2. errors while adding new interface:S
    By Mr.PedoBear in forum Help
    Replies: 0
    Last Post: 11-24-2010, 02:16 PM
  3. Replies: 2
    Last Post: 09-13-2010, 08:14 PM
  4. Replies: 3
    Last Post: 08-16-2009, 01:27 AM
  5. A little error while adding buy x amount.
    By mudvayne5493 in forum Help
    Replies: 3
    Last Post: 02-03-2009, 03:30 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
  •