Thread: [PI][Soulsplit]Crash

Results 1 to 7 of 7
  1. #1 [PI][Soulsplit]Crash 
    Banned
    Join Date
    Aug 2010
    Age
    30
    Posts
    119
    Thanks given
    0
    Thanks received
    1
    Rep Power
    0
    Sometimes this happens on my server:


    After that I see a bunch of

    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    and then it goes back to normal.


    I have no idea why this happens ,what makes it crash?
    Reply With Quote  
     

  2. #2  
    Banned
    Join Date
    May 2010
    Posts
    1,550
    Thanks given
    92
    Thanks received
    154
    Rep Power
    0
    Looks like a a player is using item 1377 to attack and it crashes the server.
    Reply With Quote  
     

  3. #3  
    Banned
    Join Date
    Aug 2010
    Age
    30
    Posts
    119
    Thanks given
    0
    Thanks received
    1
    Rep Power
    0
    Quote Originally Posted by Falador View Post
    Looks like a a player is using item 1377 to attack and it crashes the server.
    Just went on my serv, attked an NPC and looked at cmd and attked a player and the cmd didnt print errors , so thats not it
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    Sep 2010
    Posts
    31
    Thanks given
    0
    Thanks received
    1
    Rep Power
    1
    Go into CombatAssistant.java and search for:

    Code:
    		public void attackPlayer(int i) {
    Replace that whole void with:

    Code:
            public void attackPlayer(int i) {
    
            if (Server.playerHandler.players[i] != null) {
                
                if (Server.playerHandler.players[i].isDead) {
                    resetPlayerAttack();
                    return;
                }
                
                if(c.respawnTimer > 0 || Server.playerHandler.players[i].respawnTimer > 0) {
                    resetPlayerAttack();
                    return;
                }
                
                /*if (c.teleTimer > 0 || Server.playerHandler.players[i].teleTimer > 0) {
                    resetPlayerAttack();
                    return;
                }*/
                
                if(!c.getCombat().checkReqs()) {
                    return;
                }
                
                if (c.getPA().getWearingAmount() < 4 && c.duelStatus < 1) {
                    c.sendMessage("You must be wearing at least 4 items to attack someone.");
                    resetPlayerAttack();
                    return;
                }
                boolean sameSpot = c.absX == Server.playerHandler.players[i].getX() && c.absY == Server.playerHandler.players[i].getY();
                if(!c.goodDistance(Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), c.getX(), c.getY(), 25) && !sameSpot) {
                    resetPlayerAttack();
                    return;
                }
    
                if(Server.playerHandler.players[i].respawnTimer > 0) {
                    Server.playerHandler.players[i].playerIndex = 0;
                    resetPlayerAttack();
                    return;
                }
                
                if (Server.playerHandler.players[i].heightLevel != c.heightLevel) {
                    resetPlayerAttack();
                    return;
                }
                //c.sendMessage("Made it here0.");
                c.followId = i;
                c.followId2 = 0;
                if(c.attackTimer <= 0) {
                    c.usingBow = false;
                    c.specEffect = 0;
                    c.usingRangeWeapon = false;
                    c.rangeItemUsed = 0;
                    boolean usingBow = false;
                    boolean usingArrows = false;
                    boolean usingOtherRangeWeapons = false;
                    boolean usingCross = c.playerEquipment[c.playerWeapon] == 9185;
                    c.projectileStage = 0;
                    
                    if (c.absX == Server.playerHandler.players[i].absX && c.absY == Server.playerHandler.players[i].absY) {
                        if (c.freezeTimer > 0) {
                            resetPlayerAttack();
                            return;
                        }    
                        c.followId = i;
                        c.attackTimer = 0;
                        return;
                    }
                    
                    /*if ((c.inPirateHouse() && !Server.playerHandler.players[i].inPirateHouse()) || (Server.playerHandler.players[i].inPirateHouse() && !c.inPirateHouse())) {
                        resetPlayerAttack();
                        return;
                    }*/
                    //c.sendMessage("Made it here1.");
                    if(!c.usingMagic) {
                        for (int bowId : c.BOWS) {
                            if(c.playerEquipment[c.playerWeapon] == bowId) {
                                usingBow = true;
                                for (int arrowId : c.ARROWS) {
                                    if(c.playerEquipment[c.playerArrows] == arrowId) {
                                        usingArrows = true;
                                    }
                                }
                            }
                        }                
                    
                        for (int otherRangeId : c.OTHER_RANGE_WEAPONS) {
                            if(c.playerEquipment[c.playerWeapon] == otherRangeId) {
                                usingOtherRangeWeapons = true;
                            }
                        }
                    }
                    if (c.autocasting) {
                        c.spellId = c.autocastId;
                        c.usingMagic = true;
                    }
                    //c.sendMessage("Made it here2.");
                    if(c.spellId > 0) {
                        c.usingMagic = true;
                    }
                    c.attackTimer = getAttackDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    
                    if(c.duelRule[9]){
                    boolean canUseWeapon = false;
                        for(int funWeapon: Config.FUN_WEAPONS) {
                            if(c.playerEquipment[c.playerWeapon] == funWeapon) {
                                canUseWeapon = true;
                            }
                        }
                        if(!canUseWeapon) {
                            c.sendMessage("You can only use fun weapons in this duel!");
                            resetPlayerAttack();
                            return;
                        }
                    }
                    //c.sendMessage("Made it here3.");
                    if(c.duelRule[2] && (usingBow || usingOtherRangeWeapons)) {
                        c.sendMessage("Range has been disabled in this duel!");
                        return;
                    }
                    if(c.duelRule[3] && (!usingBow && !usingOtherRangeWeapons && !c.usingMagic)) {
                        c.sendMessage("Melee has been disabled in this duel!");
                        return;
                    }
                    
                    if(c.duelRule[4] && c.usingMagic) {
                        c.sendMessage("Magic has been disabled in this duel!");
                        resetPlayerAttack();
                        return;
                    }
                    
                    if((!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 4) && (usingOtherRangeWeapons && !usingBow && !c.usingMagic)) 
                    || (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 2) && (!usingOtherRangeWeapons && usingHally() && !usingBow && !c.usingMagic))
                    || (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), getRequiredDistance()) && (!usingOtherRangeWeapons && !usingHally() && !usingBow && !c.usingMagic)) 
                    || (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 10) && (usingBow || c.usingMagic))) {
                        //c.sendMessage("Setting attack timer to 1");
                        c.attackTimer = 1;
                        if (!usingBow && !c.usingMagic && !usingOtherRangeWeapons && c.freezeTimer > 0)
                            resetPlayerAttack();
                        return;
                    }
                    
                    if(!usingCross && !usingArrows && usingBow && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223) && !c.usingMagic) {
                        c.sendMessage("You have run out of arrows!");
                        c.stopMovement();
                        resetPlayerAttack();
                        return;
                    }
                    if(correctBowAndArrows() < c.playerEquipment[c.playerArrows] && Config.CORRECT_ARROWS && usingBow && !usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 9185 && !c.usingMagic) {
                        c.sendMessage("You can't use "+c.getItems().getItemName(c.playerEquipment[c.playerArrows]).toLowerCase()+"s with a "+c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()+".");
                        c.stopMovement();
                        resetPlayerAttack();
                        return;
                    }
                    if (c.playerEquipment[c.playerWeapon] == 9185 && !properBolts() && !c.usingMagic) {
                        c.sendMessage("You must use bolts with a crossbow.");
                        c.stopMovement();
                        resetPlayerAttack();
                        return;                
                    }
                    
                    
                    if(usingBow || c.usingMagic || usingOtherRangeWeapons || usingHally()) {
                        c.stopMovement();
                    }
                    
                    if(!checkMagicReqs(c.spellId)) {
                        c.stopMovement();
                        resetPlayerAttack();
                        return;
                    }
                    
                    c.faceUpdate(i+32768);
                    
                    if(c.duelStatus != 5) {
                        if(!c.attackedPlayers.contains(c.playerIndex) && !Server.playerHandler.players[c.playerIndex].attackedPlayers.contains(c.playerId)) {
                            c.attackedPlayers.add(c.playerIndex);
                            c.isSkulled = true;
                            c.skullTimer = Config.SKULL_TIMER;
                            c.headIconPk = 0;
                            c.getPA().requestUpdates();
                        } 
                    }
                    c.specAccuracy = 1.0;
                    c.specDamage = 1.0;
                    c.delayedDamage = c.delayedDamage2 = 0;
                    if(c.usingSpecial && !c.usingMagic) {
                        if(c.duelRule[10] && c.duelStatus == 5) {
                            c.sendMessage("Special attacks have been disabled during this duel!");
                            c.usingSpecial = false;
                            c.getItems().updateSpecialBar();
                            resetPlayerAttack();
                            return;
                        }
                        if(checkSpecAmount(c.playerEquipment[c.playerWeapon])){
                            c.lastArrowUsed = c.playerEquipment[c.playerArrows];
                            activateSpecial(c.playerEquipment[c.playerWeapon], i);
                            c.followId = c.playerIndex;
                            return;
                        } else {
                            c.sendMessage("You don't have the required special energy to use this attack.");
                            c.usingSpecial = false;
                            c.getItems().updateSpecialBar();
                            c.playerIndex = 0;
                            return;
                        }    
                    }
                    
                    if(!c.usingMagic) {
                        c.startAnimation(getWepAnim(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()));
                        c.mageFollow = false;
                    } else {
                        c.startAnimation(c.MAGIC_SPELLS[c.spellId][2]);
                        c.mageFollow = true;
                        c.followId = c.playerIndex;
                    }
                    Server.playerHandler.players[i].underAttackBy = c.playerId;
                    Server.playerHandler.players[i].logoutDelay = System.currentTimeMillis();
                    Server.playerHandler.players[i].singleCombatDelay = System.currentTimeMillis();
                    Server.playerHandler.players[i].killerId = c.playerId;
                    c.lastArrowUsed = 0;
                    c.rangeItemUsed = 0;
                    if(!usingBow && !c.usingMagic && !usingOtherRangeWeapons) { // melee hit delay
                        c.followId = Server.playerHandler.players[c.playerIndex].playerId;
                        c.getPA().followPlayer();
                        c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
                        c.delayedDamage = Misc.random(calculateMeleeMaxHit());
                        c.projectileStage = 0;
                        c.oldPlayerIndex = i;
                    }
                                    
                    if(usingBow && !usingOtherRangeWeapons && !c.usingMagic || usingCross) { // range hit delay
                        if(c.playerEquipment[c.playerWeapon] >= 4212 && c.playerEquipment[c.playerWeapon] <= 4223) {
                            c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
                            c.crystalBowArrowCount++;
                        } else {
                            c.rangeItemUsed = c.playerEquipment[c.playerArrows];
                            c.getItems().deleteArrow();
                        }
                        if (c.fightMode == 2)
                            c.attackTimer--;
                        if (usingCross)
                            c.usingBow = true;
                        c.usingBow = true;
                        c.followId = Server.playerHandler.players[c.playerIndex].playerId;
                        c.getPA().followPlayer();
                        c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
                        c.lastArrowUsed = c.playerEquipment[c.playerArrows];
                        c.gfx100(getRangeStartGFX());    
                        c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
                        c.projectileStage = 1;
                        c.oldPlayerIndex = i;
                        fireProjectilePlayer();
                    }
                                                
                    if(usingOtherRangeWeapons) {    // knives, darts, etc hit delay
                        c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
                        c.getItems().deleteEquipment();
                        c.usingRangeWeapon = true;
                        c.followId = Server.playerHandler.players[c.playerIndex].playerId;
                        c.getPA().followPlayer();
                        c.gfx100(getRangeStartGFX());
                        if (c.fightMode == 2)
                            c.attackTimer--;
                        c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
                        c.projectileStage = 1;
                        c.oldPlayerIndex = i;
                        fireProjectilePlayer();
                    }
    
                    if(c.usingMagic) {    // magic hit delay
                        int pX = c.getX();
                        int pY = c.getY();
                        int nX = Server.playerHandler.players[i].getX();
                        int nY = Server.playerHandler.players[i].getY();
                        int offX = (pY - nY)* -1;
                        int offY = (pX - nX)* -1;
                        c.castingMagic = true;
                        c.projectileStage = 2;
                        if(c.MAGIC_SPELLS[c.spellId][3] > 0) {
                            if(getStartGfxHeight() == 100) {
                                c.gfx100(c.MAGIC_SPELLS[c.spellId][3]);
                            } else {
                                c.gfx0(c.MAGIC_SPELLS[c.spellId][3]);
                            }
                        }
                        if(c.MAGIC_SPELLS[c.spellId][4] > 0) {
                            c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 78, c.MAGIC_SPELLS[c.spellId][4], getStartHeight(), getEndHeight(), -i - 1, getStartDelay());
                        }
                        if (c.autocastId > 0) {
                            c.followId = c.playerIndex;
                            c.followDistance = 5;
                        }    
                        c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
                        c.oldPlayerIndex = i;
                        c.oldSpellId = c.spellId;
                        c.spellId = 0;
                        Client o = (Client)Server.playerHandler.players[i];
                        if(c.MAGIC_SPELLS[c.oldSpellId][0] == 12891 && o.isMoving) {
                            //c.sendMessage("Barrage projectile..");
                            c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 85, 368, 25, 25, -i - 1, getStartDelay());
                        }
                        if(Misc.random(o.getCombat().mageDef()) > Misc.random(mageAtk())) {
                            c.magicFailed = true;
                        } else {
                            c.magicFailed = false;
                        }
                        int freezeDelay = getFreezeTime();//freeze time
                        if(freezeDelay > 0 && Server.playerHandler.players[i].freezeTimer <= -3 && !c.magicFailed) { 
                            Server.playerHandler.players[i].freezeTimer = freezeDelay;
                            o.resetWalkingQueue();
                            o.sendMessage("You have been frozen.");
                            o.frozenBy = c.playerId;
                        }
                        if (!c.autocasting && c.spellId <= 0)
                            c.playerIndex = 0;
                    }
    
                    if(usingBow && Config.CRYSTAL_BOW_DEGRADES) { // crystal bow degrading
                        if(c.playerEquipment[c.playerWeapon] == 4212) { // new crystal bow becomes full bow on the first shot
                            c.getItems().wearItem(4214, 1, 3);
                        }
                        
                        if(c.crystalBowArrowCount >= 250){
                            switch(c.playerEquipment[c.playerWeapon]) {
                                
                                case 4223: // 1/10 bow
                                c.getItems().wearItem(-1, 1, 3);
                                c.sendMessage("Your crystal bow has fully degraded.");
                                if(!c.getItems().addItem(4207, 1)) {
                                    Server.itemHandler.createGroundItem(c, 4207, c.getX(), c.getY(), 1, c.getId());
                                }
                                c.crystalBowArrowCount = 0;
                                break;
                                
                                default:
                                c.getItems().wearItem(++c.playerEquipment[c.playerWeapon], 1, 3);
                                c.sendMessage("Your crystal bow degrades.");
                                c.crystalBowArrowCount = 0;
                                break;
                            }
                        }    
                    }
                }
            }
        }
    Reply With Quote  
     

  5. #5  
    Respected Member


    Join Date
    Jan 2009
    Posts
    5,743
    Thanks given
    1,162
    Thanks received
    3,603
    Rep Power
    5000
    Quote Originally Posted by Vegas View Post
    Sometimes this happens on my server:


    After that I see a bunch of

    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    [DEREGISTRED]name
    and then it goes back to normal.


    I have no idea why this happens ,what makes it crash?
    Code:
    int[] example = new int[10];
    System.out.println("" + example[11] + "");
    Would do the same thing as the array is no 11 in length.
    Reply With Quote  
     

  6. #6  
    Banned
    Join Date
    Aug 2010
    Age
    30
    Posts
    119
    Thanks given
    0
    Thanks received
    1
    Rep Power
    0
    bumpe
    Reply With Quote  
     

  7. #7  
    Banned
    Join Date
    Aug 2010
    Age
    30
    Posts
    119
    Thanks given
    0
    Thanks received
    1
    Rep Power
    0
    bamppp
    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. [SoulSplit/pi] Dupe?
    By im slickk in forum Help
    Replies: 21
    Last Post: 06-04-2011, 03:55 PM
  2. Soulsplit help
    By drop down in forum Help
    Replies: 3
    Last Post: 10-06-2010, 05:21 PM
  3. SoulSplit Server
    By Flux in forum Requests
    Replies: 3
    Last Post: 09-15-2010, 07:10 PM
  4. veng other for soulsplit?
    By Trock in forum Requests
    Replies: 3
    Last Post: 09-10-2010, 12:17 AM
  5. [PI] SoulSplit how to run on vps?
    By DDS-PKZ in forum Help
    Replies: 10
    Last Post: 08-12-2010, 01:02 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
  •