Thread: Oh god...applydead Method.

Results 1 to 7 of 7
  1. #1 Oh god...applydead Method. 
    Registered Member
    Join Date
    Jul 2011
    Posts
    537
    Thanks given
    25
    Thanks received
    35
    Rep Power
    0
    Hi guys, I'm pretty new to java, but whilst running my server I'm noticing these errors. I'm not sure if they're memory leaks or errors, but here they are.
    Code:
    [9/21/11 6:30 AM]: java.lang.NullPointerException
    [9/21/11 6:30 AM]:      at server.model.players.PlayerAssistant.
    Assistant.java:1531)
    [9/21/11 6:30 AM]:      at server.model.players.Client.process(C
    
    [9/21/11 6:30 AM]:      at server.model.players.PlayerHandler.pr
    ler.java:151)
    [9/21/11 6:30 AM]:      at server.Server.main(Server.java:186)
    
    applydead method:
    
     public void applyDead() { 
            if (c.playerName.equalsIgnoreCase("limey")){
            c.isDead = true;
            c.forcedChat("I REALLY SUCK AND I WILL NEVER GET 99 PK'ING!");
            }
            c.respawnTimer = 15;
            c.isDead = false;
            Client o = (Client) Server.playerHandler.players[c.killerId];
            Client c2 = (Client)Server.playerHandler.players[c.killerId];
            if(c.duelStatus != 6) {
                c.killerId = findKiller();
                if(o != null) {
                    c.playerKilled = c.playerId;
                    if(o.duelStatus == 5) {
                        o.duelStatus++;
                    }
                    if (Server.playerHandler.players[c.killerId].connectedFrom == Server.playerHandler.players[c.playerKilled].connectedFrom) {
            c.faceUpdate(0);
            c.npcIndex = 0;
            c.playerIndex = 0;
            c.stopMovement();
            if(c.duelStatus <= 4) {
                c.sendMessage("Oh dear you are dead!");
            } else if(c.duelStatus != 6) {
                c.sendMessage("You have lost the duel!");
            }
            resetDamageDone();
            c.lastVeng = 0;
            c.vengOn = false;
            resetFollowers();
            c.attackTimer = 10;
            removeAllWindows();
            // sendFrame126("PkP: "+c.pkPoints+" K: "+c.kills+" D: "+c.deaths+"", 663); demise sendframe
            c.tradeResetNeeded = true;
            return;
            }
            if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {
                       &nbsp;o.sendMessage("Multiple IP detected, PK point reward removed.");
            c.faceUpdate(0);
            c.npcIndex = 0;
            c.playerIndex = 0;
            c.stopMovement();
            if(c.duelStatus <= 4) {
                c.sendMessage("Oh dear you are dead!");
            } else if(c.duelStatus != 6) {
                c.sendMessage("You have lost the duel!");
            }
            resetDamageDone();
            c.lastVeng = 0;
            c.vengOn = false;
            resetFollowers();
            c.attackTimer = 10;
            removeAllWindows();
            //sendFrame126("PkP: "+c.pkPoints+" K: "+c.kills+" D: "+c.deaths+"", 663); demise sendframe
            c.tradeResetNeeded = true;
            return;
            }
                    if (Server.playerHandler.players[c.playerId].connectedFrom != o.lastKilled && c.duelStatus == 0) {
                       &nbsp;o.pkPoints = (o.pkPoints + 4);
                       &nbsp;o.sendMessage("You recieved 4 EEP.");
                       &nbsp;o.sendMessage("You have defeated " +Misc.optimizeText(c.playerName)+ "!");
                       &nbsp;o.lastKilled = Server.playerHandler.players[c.playerId].connectedFrom;
                       &nbsp;o.getPA().addSkillXP(9000, 23);
                        c.getPA().addSkillXP(-4000, 23);
                            if (o.earningPotential >= 85) {
                   &nbsp;o.earningPotential -= 40 + Misc.random(50);
                    int random = (int)(Math.random() * (xEP.length - 1));
                    Server.itemHandler.createGroundItem(o, xEP[random][0], c.absX, c.absY, 
                                                xEP[random][1], o.playerId);
                                               &nbsp;o.sendMessage("You recieved an EP drop.");
                   &nbsp;o.sendMessage("Your EP decreased to: "+c.earningPotential+".");
    }
                    } else {
                        c.getPA().addSkillXP(-4000, 23);
                       &nbsp;o.sendMessage("You do not recieve EPP because you have killed " +c.playerName+ " twice in a row.");
                        if (o.earningPotential >= 85) {
                   &nbsp;o.earningPotential -= 40 + Misc.random(50);
                    int random = (int)(Math.random() * (xEP.length - 1));
                    Server.itemHandler.createGroundItem(o, xEP[random][0], c.absX, c.absY, 
                                                xEP[random][1], c.playerId);
                   &nbsp;o.sendMessage("Your EP decreased to: "+c.earningPotential+".");
    }
                    }
                }
            }
            c.faceUpdate(0);
            c.npcIndex = 0;
            c.playerIndex = 0;
            c.stopMovement();
                        if (c.duelStatus <= 4) {
                    c.sendMessage("Oh dear you are dead!");
                    c.getPA().addSkillXP(-4000, 23);
                } else if(c.duelStatus != 6 || !c.inArena()) {
                    c.sendMessage("You have lost the duel!");
                    /*o.getPA().movePlayer(
                            Config.DUELING_RESPAWN_X
                                    + (Misc.random(Config.RANDOM_DUELING_RESPAWN)),
                            Config.DUELING_RESPAWN_Y
                                    + (Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);*/
                }
            resetDamageDone();
            c.DC++;
            c.KC++;    
            c.specAmount = 10;
            c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
            c.lastVeng = 0;
            c.vengOn = false;
            resetFollowers();
            c.attackTimer = 10;
            if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {
           &nbsp;o.sendMessage("You Don't Recieve PK Points for killing yourself!");
            c.faceUpdate(0);
            c.npcIndex = 0;
            c.playerIndex = 0;
            c.stopMovement();
            if(c.duelStatus <= 4) {
                c.sendMessage("Oh dear you are dead!");
                
            } else if(c.duelStatus != 6) {
                c.sendMessage("You have lost the duel!");
            }
            resetDamageDone();
            c.lastVeng = 0;
            c.vengOn = false;
            resetFollowers();
            c.attackTimer = 10;
            removeAllWindows();
            c.tradeResetNeeded = true;
            return;
            }
                
        }


    Here's my Line 1531 in PlayerAssistant.java:

    if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {

    Several People are facing this issue, so hopefully I can get this solved asap.
    If this helps, I'm using PI - InsidiaX's source.

    Thanks
    Last edited by Huey; 09-21-2011 at 02:40 PM.
    I support Eliminate.


    [Today 06:28 PM] Scu11: Mans gotta spread his wings, to do his tings
    Reply With Quote  
     

  2. #2  
    Registered Member

    Join Date
    Aug 2011
    Posts
    2,760
    Thanks given
    297
    Thanks received
    534
    Rep Power
    1596
    Code:
    if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {
    remove that part and try again?
    Quote Originally Posted by Aj View Post
    This is not even a tutorial. It's fail for rep. It's fail for life.
    Reply With Quote  
     

  3. #3  
    Registered Member

    Join Date
    Sep 2008
    Posts
    2,219
    Thanks given
    148
    Thanks received
    204
    Rep Power
    1570
    code tags and highlight line 1531



    Reply With Quote  
     

  4. #4  
    q.q


    Join Date
    Dec 2010
    Posts
    6,519
    Thanks given
    1,072
    Thanks received
    3,535
    Rep Power
    4752
    use try catch statements firstly

    secondly

    Code:
    if (c != null)
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Jul 2011
    Posts
    537
    Thanks given
    25
    Thanks received
    35
    Rep Power
    0
    Quote Originally Posted by Harlan View Post
    use try catch statements firstly

    secondly

    Code:
    if (c != null)
    Sorry do I put that right above my line 1531?
    I support Eliminate.


    [Today 06:28 PM] Scu11: Mans gotta spread his wings, to do his tings
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Mar 2011
    Posts
    3
    Thanks given
    0
    Thanks received
    6
    Rep Power
    0
    Quote Originally Posted by Harlan View Post
    use try catch statements firstly

    secondly

    Code:
    if (c != null)
    try->catch should be avoided at all costs.

    if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {

    Server.playerHandler.players[c.killerId] could be null (Though you should bounds check too), Server.playerHandler.players[c.killerId].connectedFrom could be null, Server.playerHandler.players[c.playerKilled] could be null, or Server.playerHandler.players[c.playerKilled].connectedFrom could be null. Null check all of it.
    Reply With Quote  
     

  7. #7  
    Registered Member
    Join Date
    Jul 2011
    Posts
    537
    Thanks given
    25
    Thanks received
    35
    Rep Power
    0
    Alright my friend who owned Relentless (Shassim), gave me his applydead method. Here's what I put in, in-place of my method, but the question is how much would this effect my PI source..? Oh and yes it did solve the problem when I die I don't receive the error anymore. Here's what I put in

    public void applyDead() {
    c.respawnTimer = 10;
    c.isDead = false;
    if(c.duelStatus != 6) {
    //c.killerId = c.getCombat().getKillerId(c.playerId);
    c.killerId = findKiller();
    Client o = (Client) Server.playerHandler.players[c.killerId];
    if(o != null) {
    if(!(c.npcIndex > 0) && c.inPits == false){
    }
    if (c.killerId != c.playerId)
    o.sendMessage("You have defeated "+Misc.optimizeText(c.playerName)+"!");
    if(c.inWild()){
    c.pkPoints += 5;
    o.sendMessage("You have received 5 Pk Points");
    }
    c.playerKilled = c.playerId;
    if(o.duelStatus == 5) {
    o.duelStatus++;
    }
    }
    }
    c.poisonDamage = 0;
    c.faceUpdate(0);
    c.npcIndex = 0;
    c.playerIndex = 0;
    c.stopMovement();
    if(c.duelStatus <= 4) {
    c.sendMessage("Oh dear you are dead!");
    } else if(c.duelStatus != 6) {
    c.sendMessage("You have lost the duel!");
    }
    resetDamageDone();
    c.specAmount = 10;
    c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
    c.lastVeng = 0;
    c.vengOn = false;
    resetFollowers();
    c.attackTimer = 10;
    removeAllWindows();
    c.tradeResetNeeded = true;
    }
    I support Eliminate.


    [Today 06:28 PM] Scu11: Mans gotta spread his wings, to do his tings
    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. [PI] Help with applyDead method ! [HELP]
    By pk str ownz in forum Help
    Replies: 0
    Last Post: 07-30-2011, 04:59 PM
  2. [PI] Help With ApplyDead
    By I'm A Jerk in forum Help
    Replies: 5
    Last Post: 05-02-2011, 08:48 PM
  3. [PI] applydead and givelife method correct?
    By Ninja assassin in forum Help
    Replies: 3
    Last Post: 04-10-2011, 09:53 PM
  4. applydead help please?
    By myK- in forum Help
    Replies: 6
    Last Post: 01-21-2011, 11:04 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •