Thread: Deltascape server 'Nulling'

Results 1 to 8 of 8
  1. #1 Deltascape server 'Nulling' 
    Banned

    Join Date
    Sep 2009
    Posts
    3,245
    Thanks given
    195
    Thanks received
    255
    Rep Power
    0
    The Problem..

    When people log on there's a black screen the minimaps blacked out but chatbox loads your username appears as "null" This happens to everyone not some people, well come to think of it It doesn't USUALLY affect new character files. ( people who just logged on for first time)

    Under the Hood..

    Ok

    Code:
    Clicked button: 9154 
    Connection from 127.0.0.1:65120
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 2 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Connection from 127.0.0.1:65123
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 3 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Clicked button: 9154
    Lime is the log out button Id

    Red is me logging out (eventually)

    Blue is when I try and log back in.

    Allright all that shit above is the "your account is already logged in" stoofs But below is the Server nULLING ( I guess )

    On the Vps the server.bat closes it's self down Doesn't close anything else just that Don't know why the fuck it happens but it does guessing something to do with this lagg.. =[

    Code:
    Exception encountered while parsing incoming packets from Daza.
    java.net.SocketException: Software caused connection abort: recv failed
            at java.net.SocketInputStream.socketRead0(Native Method)
            at java.net.SocketInputStream.read(Unknown Source)
            at java.net.SocketInputStream.read(Unknown Source)
            at client.packetProcess(client.java:17719)
            at PlayerHandler.process(PlayerHandler.java:268)
            at process.run(process.java:23)
            at java.lang.Thread.run(Unknown Source)
    Also I get this error from time to time which means you gotta close and re open run.bat to keep the server going..

    So you can see where I'm coming from Impossible to run meh fookin server with this shit going on =[


    Code:
    Exception encountered while parsing incoming packets from Daza.
    java.net.SocketException: Software caused connection abort: recv failed
            at java.net.SocketInputStream.socketRead0(Native Method)
            at java.net.SocketInputStream.read(Unknown Source)
            at java.net.SocketInputStream.read(Unknown Source)
            at client.packetProcess(client.java:17719)
            at PlayerHandler.process(PlayerHandler.java:268)
            at process.run(process.java:23)
            at java.lang.Thread.run(Unknown Source)
    That error i posted above I understand some of it ( I guess)

    at client.packetProcess(client.java:17719)
    The process(); in client class line 17719

    at PlayerHandler.process(PlayerHandler.java:268)
    Process(); In player handler .class

    at process.run(process.java:23) ...................

    So i understand where it is but i don't get this
    Code:
    Exception encountered while parsing incoming packets from Daza.
    java.net.SocketException: Software caused connection abort: recv failed
    It's saying that error "At" them places But the funny thing is I haven't added anything to the process(); Gunna post them 2 process's and process class.

    Spoiler for Client Class process:
    public boolean process()throws NullPointerException{
    if (fishTimer != 0){
    fishTimer--;
    }
    if (tradeTimer != 0){
    tradeTimer--;
    }
    if (disconnectedDelay == 1){
    disconnected = true;
    }
    if(inGame){
    PcPanel2();
    }
    if(inPcBoat()){
    PcPanel1();
    }
    if(isInWilderness == false) {
    outStream.createFrameVarSize(104);
    outStream.writeByteC(3);
    outStream.writeByteA(0);
    outStream.writeString("null");
    outStream.endFrameVarSize();
    }
    if(isInWilderness(absX, absY, 1)) {
    outStream.createFrameVarSize(104);
    outStream.writeByteC(3);
    outStream.writeByteA(0);
    outStream.writeString("Attack");
    outStream.endFrameVarSize();
    }
    if(clawspec !=0)dclawhit();
    if (System.currentTimeMillis() - lastSave > 120000 && !inTrade){
    savegame(false);
    // sM("Your profile has been automatically saved");
    lastSave = System.currentTimeMillis();
    }
    if (System.currentTimeMillis() - lastBookSwitch > 30000 && switchingBook) {
    setSidebarInterface(6, 18787);
    lastBookSwitch = System.currentTimeMillis();
    switchingBook = false;
    }
    if (System.currentTimeMillis() - offTimer > 6000){
    hitID = 0;
    }
    if(System.currentTimeMillis() - lastSkull >= 1200000 && isSkulled){
    turnOffHead();
    updateRequired = true;
    appearanceUpdateRequired = true;
    isSkulled = false;
    }
    if (disconnectedDelay > 0) {
    disconnectedDelay--;
    }
    if (spellHitTimer > 0) {
    spellHitTimer -= 1;
    }
    if(poisoned && System.currentTimeMillis() - poisonDelay > 15000){
    poisonDmg = true;
    applyPoisonToMe();
    poisonDmg = false;
    poisonDelay = System.currentTimeMillis();
    }
    if(System.currentTimeMillis() - lastSpecial > 50000 && specialAmount < 100){
    specialAmount += 25;
    lastSpecial = System.currentTimeMillis();
    specAttack();
    }
    if (hasMultiSign && !multiCombat())
    {
    frame61(-1);
    hasMultiSign = false;
    }
    if (isInWilderness(absX, absY, 1))
    {
    if (!hasWildySign)
    {
    hasWildySign = true;
    outStream.createFrame(208);
    outStream.writeWordBigEndian_dup(197);
    sendQuest("", 199);
    }
    int level = ((absY - 3520) / 8) + 1;
    if(isinsafewild()){level = 20;}
    if (level != wildyLevel)
    {
    if(isinsafewild()){
    sendQuest("@whi@SAFE AREA", 199);}
    else{
    wildyLevel = level;
    sendQuest("Level: " + wildyLevel, 199);}
    }
    }
    if (System.currentTimeMillis() - statIncrease > 120000) {
    for (int i1 = 0; i1 < playerLevel.length; i1++) {
    if (playerLevel[i1] < getLevelForXP(playerXP[i1])) {
    playerLevel[i1] += 1;
    setSkillLevel(i1, playerLevel[i1], playerXP[i1]);
    NewHP = playerLevel[3];
    refreshSkills();
    } else if (playerLevel[i1] > getLevelForXP(playerXP[i1])) {
    playerLevel[i1] -= 1;
    setSkillLevel(i1, playerLevel[i1], playerXP[i1]);
    NewHP = playerLevel[3];
    refreshSkills();
    }
    }
    statIncrease = System.currentTimeMillis();
    }
    if(PlayerHandler.getPlayerID(playerName) != playerId){
    disconnected = true;
    }

    if (inCombat) {
    long current = System.currentTimeMillis();
    if(current - lastCombat >= 10000) {
    inCombat = false;
    }
    }
    if (currentHealth < 1) {
    deathStage = 1;
    }
    if(hitDiff > 0){
    sendQuest("" + currentHealth, 4016);
    }
    if (NpcDialogue > 0 && NpcDialogueSend == false) {
    UpdateNPCChat();
    }
    if(inGame && PlayerHandler.pcGameTimer == 1){
    inGame = false;
    resetpc();
    toX = 2657;
    toY = 2639;
    playerLevel[0] = getLevelForXP(playerXP[0]);
    playerLevel[1] = getLevelForXP(playerXP[1]);
    playerLevel[2] = getLevelForXP(playerXP[2]);
    playerLevel[4] = getLevelForXP(playerXP[4]);
    playerLevel[5] = getLevelForXP(playerXP[5]);
    playerLevel[6] = getLevelForXP(playerXP[6]);
    sM("You failed to defeat pest control, better luck next time!");
    ResetAttackNPC();
    refreshSkills();
    }
    if(inPcBoat() && PlayerHandler.pcWaitTimer == 1 && !inGame){
    inGame = true;
    resetpc();
    toX = 2658 + misc.random(1);
    toY = 2611 + misc.random(3);
    server.npcHandler.spawnANPC(3777, 2628, 2591,0);
    server.npcHandler.spawnANPC(3778, 2680, 2588,0);
    server.npcHandler.spawnANPC(3779, 2669, 2570,0);
    server.npcHandler.spawnANPC(3780, 2645, 2569,0);
    PlayerHandler.portal1 = 0;
    PlayerHandler.portal2 = 0;
    PlayerHandler.portal3 = 0;
    PlayerHandler.portal4 = 0;
    ResetAttackNPC();
    }
    if (inPcIsland() || inPcGame() || inPcBoat() || inPcWater()) {
    followID = 0;
    }
    if (isinsafewild()) {
    followID = 0;
    }
    if (inAgility()) {
    followID = 0;
    }
    if(PlayerHandler.portal1 == 1 && PlayerHandler.portal2 == 1 && PlayerHandler.portal3 == 1 && PlayerHandler.portal4 == 1 && inGame){
    inGame = false;
    resetpc();
    pcPoints += 2;
    toX = 2657;
    toY = 2639;
    playerLevel[0] = getLevelForXP(playerXP[0]);
    playerLevel[1] = getLevelForXP(playerXP[1]);
    playerLevel[2] = getLevelForXP(playerXP[2]);
    playerLevel[4] = getLevelForXP(playerXP[4]);
    playerLevel[5] = getLevelForXP(playerXP[5]);
    playerLevel[6] = getLevelForXP(playerXP[6]);
    sM("You have defeated pest control! You now have "+pcPoints+" points!");
    ResetAttackNPC();
    refreshSkills();
    PlayerHandler.pcWaitTimer = 50;
    }
    if (followID > 0) {
    followDirection();
    }
    if (followID2 > 0) {
    followDirection2();
    }
    if (tStage == 1 && tTime == 0) {
    setAnimation(1979);
    lowGFX(392, 0);
    updateRequired = true;
    appearanceUpdateRequired = true;
    tTime = System.currentTimeMillis();
    tStage = 2;
    }
    if (tStage == 2 && System.currentTimeMillis()-tTime >= 10) {
    toX = tX;
    toY = tY;
    heightLevel = tH;
    updateRequired = true;
    appearanceUpdateRequired = true;
    tStage = 0;
    tTime = 0;
    resetAnimation();
    resetfollowers();
    closeInterface();
    }
    if (tStage == 3 && tTime2 == 0) {
    setAnimation(714);
    updateRequired = true;
    appearanceUpdateRequired = true;
    tTime2 = System.currentTimeMillis();
    tStage = 4;
    }
    if (tStage == 4 && System.currentTimeMillis()-tTime2 >= 10) {
    specGFX(308);
    tStage = 5;
    }
    if (tStage == 5 && System.currentTimeMillis()-tTime2 >= 10) {
    setAnimation(715);
    toX = tX;
    toY = tY;
    heightLevel = tH;
    updateRequired = true;
    appearanceUpdateRequired = true;
    tStage = 0;
    tTime = 0;
    resetAnimation();
    resetfollowers();
    closeInterface();
    }
    /** Full magic spell system for process() starts here * */
    if (spellHitTimer == 0) {
    if (castSpell) {
    castSpell = false;
    if (isSpellNPC && (spellNpcIndex != -1)) {
    appendHitToNpc(spellNpcIndex, spellHit, isStillSpell);
    } else if (!isSpellNPC && (spellPlayerIndex != -1)) {
    appendHitToPlayer(spellPlayerIndex, spellHit, isStillSpell);
    }
    }
    spellHitTimer = -1; // FIXED: Why call this over and over?
    // -bakatool
    }
    /** Full magic spell system for process() ends here * */
    if (WaveDelay > 0) {
    WaveDelay -= 1;
    }
    if(System.currentTimeMillis() - lastArrow > 500 && arrow){
    int arrowgfx = getarrowgfxnow();
    if(AttackingOn > 0){
    rangeGFX(70, arrowgfx);
    }
    if(attacknpc > 0){
    rangeGFXNPC(70, arrowgfx);
    }
    arrow = false;
    arrow2 = true;
    }
    if(System.currentTimeMillis() - lastArrow > 1500 && arrow2){
    lastArrow = System.currentTimeMillis();
    arrow2 = false;
    if(AttackingOn > 0 && isInWilderness(absX, absY, 1) == true && getClient(AttackingOn).isInWilderness(getClient(At tackingOn).absX, getClient(AttackingOn).absY, 1) == true){
    client AttackingOn2 = (client) server.playerHandler.players[AttackingOn];
    if(AttackingOn2 != null){
    hitDiff = misc.random(maxRangeHit());
    PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
    PlayerHandler.players[AttackingOn].updateRequired = true;
    PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
    PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
    PlayerHandler.players[AttackingOn].dealDamage(hitDiff);
    PlayerHandler.players[AttackingOn].offTimer = System.currentTimeMillis();
    PlayerHandler.players[AttackingOn].hitID = playerId;
    PlayerHandler.players[AttackingOn].KilledBy[playerId] += hitDiff;
    }
    }
    if(attacknpc > 0){
    server.npcHandler.npcs[attacknpc].hitDiff = npcRangeDamage();
    server.npcHandler.npcs[attacknpc].updateRequired = true;
    server.npcHandler.npcs[attacknpc].hitUpdateRequired = true;
    server.npcHandler.npcs[attacknpc].hit = true;
    }
    }
    if(apickupid > 0)
    scanPickup();

    if(WaveDelay <= 0 && TzWave != -1 && IsInFightCave())
    {
    heightLevel = getHeightForTzhaar();
    WaveDelay = 0x3b9ac9ff;
    SpawnNewWave();
    }
    if ((IsAttackingNPC) && DDS2Damg == true && System.currentTimeMillis() - lastDds > ddsInterval) {
    SpecDamgNPC(playerMaxHit + 8);
    DDS2Damg = false;
    }
    if (IsAttacking == true && DDS2Damg == true && System.currentTimeMillis() - lastDds > ddsInterval) {
    if (AttackingOn > 0) {
    getHitDouble(8);
    DDS2Damg = false;
    }
    }
    if (IsAttacking == true && DDS2Damg2 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
    if (AttackingOn > 0) {
    if(playerEquipment[playerWeapon] == 4827){
    getHit2();
    DDS2Damg2 = false;
    }
    if(playerEquipment[playerWeapon] == 861){
    getHit2();
    DDS2Damg2 = false;
    }
    }
    }
    if (IsAttackingNPC == true && DDS2Damg2 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
    if (attacknpc > 0){
    if(playerEquipment[playerWeapon] == 4827){
    getHit2();
    DDS2Damg2 = false;
    }
    if(playerEquipment[playerWeapon] == 861){
    getHit2();
    DDS2Damg2 = false;
    }
    }
    }
    if (IsAttacking == true && DDS2Damg3 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
    getHit2();
    DDS2Damg3 = false;
    }
    if(playerLevel[5] < 0){
    playerLevel[5] = 0;
    sendQuest("" + playerLevel[5] + "", 4012);
    sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
    }
    if(checkPrayOn() && playerLevel[5] < 1){
    playerLevel[5] = 0;
    prayOff();
    }
    if(checkPrayOn() && System.currentTimeMillis() - lastPray > prayInterval){
    prayInterval = checkPrayStat();
    lastPray = System.currentTimeMillis();
    prayerDrain();
    sendQuest("" + playerLevel[5] + "", 4012);
    sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
    }
    if (originalS > 0) {
    wear(originalS, playerShield);
    }
    if (inTrade && tradeResetNeeded) {
    client o = getClient(trade_reqId);
    if (o.tradeResetNeeded) {
    resetTrade();
    o.resetTrade();
    }
    }
    // Shop
    if (UpdateShop == true) {
    resetItems(3823);
    resetShop(MyShopID);
    }

    // check banking
    if (WanneBank > 0) {
    if (GoodDistance(skillX, skillY, absX, absY, WanneBank) == true) {
    openUpBank();
    WanneBank = 0;
    }
    }
    // check stairs
    if (stairs > 0) {
    if (GoodDistance(skillX, skillY, absX, absY, stairDistance) == true) {
    stairs(stairs, absX, absY);
    }
    }
    // check shopping
    if (WanneShop > 0) {
    if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
    openUpShop(WanneShop);
    WanneShop = 0;
    }
    }
    // woodcutting check
    if (woodcutting[0] > 0) {
    if (GoodDistance(skillX, skillY, absX, absY, woodcutting[5]) == true) {
    closeInterface();
    woodcutting();
    }
    }
    // Attacking in wilderness
    //long thisTime = System.currentTimeMillis();
    if ((IsAttacking == true) && (deathStage == 0)
    && (System.currentTimeMillis() - lastAction > actionInterval)) {
    if (PlayerHandler.players[AttackingOn] != null) {
    if (PlayerHandler.players[AttackingOn].currentHealth > 0) {
    Attack();
    } else {

    //ResetAttack();
    // if(duelStatus == 3)
    // DuelVictory(p.absX, p.absY);

    }
    } else {
    ResetAttack();
    }
    }
    // Attacking an NPC
    if ((IsAttackingNPC == true) && (deathStage == 0) && System.currentTimeMillis() - lastAction > actionInterval) {
    if (server.npcHandler.npcs[attacknpc] != null) {
    if ((server.npcHandler.npcs[attacknpc].IsDead == false)
    && (server.npcHandler.npcs[attacknpc].MaxHP > 0)) {
    AttackNPC();
    } else {
    //ResetAttackNPC();
    }
    } else {
    ResetAttackNPC();
    }
    }
    // If killed apply dead
    if (deathStage == 1) {
    if (attacknpc > 0) { // was killed by a npc -bakatool
    server.npcHandler.ResetAttackPlayer(attacknpc);
    }
    ResetAttack();
    ResetAttackNPC();
    deathStage = 2;
    poisoned = false;
    poisonDmg = false;
    fighting = false;
    hits = 0;
    startAnimation(0x900);
    updateRequired = true;
    appearanceUpdateRequired = true;
    deathTimer = System.currentTimeMillis();
    currentHealth = playerLevel[playerHitpoints];
    playerLevel[0] = getLevelForXP(playerXP[0]);
    playerLevel[1] = getLevelForXP(playerXP[1]);
    playerLevel[2] = getLevelForXP(playerXP[2]);
    playerLevel[4] = getLevelForXP(playerXP[4]);
    playerLevel[5] = getLevelForXP(playerXP[5]);
    playerLevel[6] = getLevelForXP(playerXP[6]);
    sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
    resetfollowers();
    refreshSkills();
    killMyNPCs();
    resetKnight();
    skulledBy = "";
    }
    if (deathStage == 2 && !IsInFightCave() && System.currentTimeMillis() - deathTimer >= 100) {
    if (isInWilderness(absX, absY, 1) == true){
    client killerz = (client) server.playerHandler.players[KillerId];
    killerz.pvpdrop(playerName, playerId);
    killerz.ResetAttack();
    if(isinsafewild() == false){
    killmessage();
    killerz.rating += 1;
    if(killerz != null)
    if(playerRights < 1)
    if(tradeTimer == 0)
    youdied();}
    if(isinsafewild()){
    if(killerz != null) {killerz.addItem(995,10000);
    killerz.sM("You have been rewarded 10k for downing that bitch "+playerName+"!");}}
    }
    }
    if (deathStage == 2 && System.currentTimeMillis() - deathTimer >= 100 && IsInFightCave()) {
    toX = 2439;
    toY = 5169;
    AtkPray = 0;
    StrPrayer = 0;
    DefPray = 0;
    RangePray = 0;
    MagePray = 0;
    PrayHeal = false;
    ProtItem = false;
    ProtMage = false;
    ProtRange = false;
    ProtMelee = false;
    Redemption = false;
    Retribution = false;
    Smite = false;
    Chivalry = false;
    Piety = false;
    isSkulled = false;
    lastSkull = 0;
    headIcon = 0;
    turnpray();
    heightLevel = 0;
    currentHealth = playerLevel[playerHitpoints];
    deathStage = 0;
    resetAnimation();
    frame1();
    prayOn = false;
    AntiTeleDelay = 0;
    EntangleDelay = 0;
    specialAmount = 100;
    sM("Oh dear you have died!");
    resetOtherAtk();
    }
    if (deathStage == 2 && System.currentTimeMillis() - deathTimer >= 100 && !IsInFightCave()) {
    if(isinsafewild()){toX = 3303;
    toY = 3123;}
    else{
    toX = 3097;
    toY = 3471;}
    AtkPray = 0;
    StrPrayer = 0;
    DefPray = 0;
    RangePray = 0;
    MagePray = 0;
    PrayHeal = false;
    ProtItem = false;
    ProtMage = false;
    ProtRange = false;
    ProtMelee = false;
    Redemption = false;
    Retribution = false;
    Smite = false;
    Chivalry = false;
    Piety = false;
    isSkulled = false;
    lastSkull = 0;
    headIcon = 0;
    turnpray();
    heightLevel = 0;
    currentHealth = playerLevel[playerHitpoints];
    deathStage = 0;
    resetAnimation();
    frame1();
    prayOn = false;
    AntiTeleDelay = 0;
    EntangleDelay = 0;
    specialAmount = 100;
    sM("Oh dear you have died!");
    resetOtherAtk();
    if (destruct)
    {
    absX = 3210;
    absY = 3432;
    }
    savegame(false);
    }
    // mining check
    if (mining[0] > 0) {
    if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
    mining();
    }
    }
    if (shafting
    && (System.currentTimeMillis() - lastAction >= 1500)) {
    lastAction = System.currentTimeMillis();
    shaft();
    } else if (fletching
    && (System.currentTimeMillis() - lastAction >= 1900)) {
    lastAction = System.currentTimeMillis();
    fletchBow();
    } else if (spinning
    && (System.currentTimeMillis() - lastAction >= 1900)) {
    lastAction = System.currentTimeMillis();
    spin();
    } else if (cookingOn
    && (System.currentTimeMillis() - lastAction >= 1900)) {
    lastAction = System.currentTimeMillis();
    cookFish();
    } else if (crafting
    && (System.currentTimeMillis() - lastAction >= 1500)) {
    lastAction = System.currentTimeMillis();
    craft();
    } else if (fishing && (System.currentTimeMillis() - lastAction >= 3000)) {
    lastAction = System.currentTimeMillis();
    fish(fishId);
    } else if (essMine && (System.currentTimeMillis() - lastAction >= 3000) && freeSlots() != 0) {
    lastAction = System.currentTimeMillis();
    addItem(1436, 1);
    addSkillXP(220, 14);
    }

    if (isKicked) {
    disconnected = true;
    if (saveNeeded)
    savegame(true);
    outStream.createFrame(109);
    }


    return false;
    }
    public boolean packetProcess() throws NullPointerException
    {
    if (disconnected || destruct) {
    return false;
    }
    try {
    /*if (timeOutCounter++ > 20) {
    misc.println("Disconnected "+playerName+", Data transfer timeout.");
    disconnected = true;
    return false;
    }*/
    if(in == null) return false;
    int avail = in.available();
    if(avail == 0) return false;

    if(packetType == -1) {
    packetType = in.read() & 0xff;
    if(inStreamDecryption != null)
    packetType = packetType - inStreamDecryption.getNextKey() & 0xff;
    packetSize = packetSizes[packetType];
    avail--;
    }
    if(packetSize == -1) {
    if(avail > 0) {
    packetSize = in.read() & 0xff;
    avail--;
    }
    else return false;
    }
    if(avail < packetSize) return false;
    fillInStream(packetSize);
    timeOutCounter = 0;
    parseIncomingPackets();
    packetType = -1;
    } catch(java.lang.Exception __ex) {
    misc.println("Exception encountered while parsing incoming packets from "+playerName+".");
    __ex.printStackTrace();
    disconnected = true;
    }
    return true;
    }
    Spoiler for Playerhandler process:

    public void process()throws NullPointerException{
    int current = -1;
    long currentTime = System.currentTimeMillis();
    try {
    updatePlayerNames();
    if (kickAllPlayers == true) {
    int kickID = 1;
    do {
    if (players[kickID] != null) {
    players[kickID].isKicked = true;
    }
    kickID++;
    } while (kickID < maxPlayers);
    kickAllPlayers = false;
    }
    if(pcWaitTimer > 0){
    pcWaitTimer -= 1;
    }
    if(pcGameTimer > 0){
    pcGameTimer -= 1;
    }
    if(pcWaitTimer == 0){
    pcWaitTimer = 500;
    pcGameTimer = 450;
    }
    if (cycle % 10 == 0) {
    server.connections.clear();
    // System.out.println("Clearing connections");
    }
    if (cycle % 500 == 0) {
    server.banned.clear();
    // System.out.println("Clearing connection bans");
    }
    if (cycle > 10000) {
    cycle = 0;
    }
    cycle++;
    /*
    * for(String h : server.connections){ System.out.println("Removing
    * connection " + server.connections.get(0));
    * server.connections.remove(0); break; }
    */
    // sudo -u apache sudo iptables -I INPUT -s 127.0.0.1 -j DROP (ban)
    // iptables -D INPUT -s 25.55.55.55 -j DROP (unban)
    // iptables -I INPUT -s my89-104-38-48.mynow.co.uk -j DROP
    // at first, parse all the incoming data
    // this has to be seperated from the outgoing part because we have
    // to keep all the player data
    // static, so each client gets exactly the same and not the one
    // clients are ahead in time
    // than the other ones.
    for (int i = 0; i < maxPlayers; i++) {
    try {
    if (players[i] == null/* || !players[i].isActive */)
    continue;
    if (!players[i].disconnected && !players[i].isActive) {
    if (players[i].violations > 20) {
    System.out.println("Disconnecting bugged player "
    + players[i].playerName);
    removePlayer(players[i]);
    players[i] = null;
    continue;
    } else {
    players[i].violations++;
    continue;
    }
    }
    if (players[i].disconnected)
    continue;

    players[ i ].preProcessing();
    players[ i ].process();
    while(players[ i ].packetProcess());
    players[ i ].postProcessing();

    players[i].getNextPlayerMovement();

    if (players[i].disconnected) {
    client p = (client) players[i];
    if (p.inTrade) {
    client p2 = (client) players[p.trade_reqId];
    p.declineTrade();
    }
    // messageToAll = players[i].playerName+" has logged
    // out";
    removePlayer(players[i]);
    players[i] = null;
    }
    } catch (Exception e) {
    if (players[i].playerName != null)
    misc.println("Error with player " + i + ", "
    + players[i].playerName);
    players[i].disconnected = true;
    e.printStackTrace();
    }
    }

    // loop through all players and do the updating stuff
    for (int i = 0; i < maxPlayers; i++) {
    if (players[i] == null)
    continue;
    if (!players[i].isActive || (players[i].playerName == null))
    continue;

    //Calendar cal = new GregorianCalendar();
    //int day = cal.get(Calendar.DAY_OF_MONTH);
    //int month = cal.get(Calendar.MONTH);
    //int year = cal.get(Calendar.YEAR);
    //int calc = ((year * 10000) + (month * 100) + day);
    //players[i].playerLastLogin = calc;
    //long lp = currentTime - players[i].lastPacket;
    // System.out.println("LastPacket[" + i + "] = " + lp);
    if (players[i].disconnected) {// && players[i].logoutButton) || players[i].waited
    if (players[i].savefile == true) {
    if (saveGame(players[i])) {
    System.out.println("Game saved for player "
    + players[i].playerName);
    } else {
    System.out.println("Could not save for "
    + players[i].playerName);
    }
    ;
    } else {
    System.out.println("Did not save for "
    + players[i].playerName);
    }
    removePlayer(players[i]);
    players[i] = null;
    } else {
    if (!players[i].initialized) {
    players[i].initialize();
    players[i].initialized = true;
    } else {
    players[i].update();
    }
    }
    }
    if (updateRunning && !updateAnnounced) {
    updateAnnounced = true;
    }

    if (updateRunning
    && (System.currentTimeMillis() - updateStartTime > (updateSeconds * 1000))) {
    kickAllPlayers = true;
    server.ShutDown = true;
    }

    // post processing
    for (int i = 0; i < maxPlayers; i++) {
    if ((players[i] == null) || !players[i].isActive)
    continue;

    players[i].clearUpdateFlags();
    }
    } catch (Exception e) {
    misc.println(e.getMessage());
    }
    }


    Spoiler for Process class:
    public class process extends Thread {
    public static final int cycleTime = 500;

    @Override
    public void run(){
    int waitFails = 0;
    long lastTicks = System.currentTimeMillis();
    long totalTimeSpentProcessing = 0;
    int cycle = 0;
    while (!server.shutdownServer) {
    try {
    if (server.updateServer)
    server.calcTime();
    // could do game updating stuff in here...
    // maybe do all the major stuff here in a big loop and just do
    // the packet
    // sending/receiving in the client sub-threads. The actual packet
    // forming code
    // will reside within here and all created packets are then
    // relayed by the sub-threads.
    // This way we avoid all the sync'in issues
    // The rough outline could look like:
    server.playerHandler.process(); // updates all player related
    // stuff
    server.npcHandler.process();
    server.itemHandler.process();
    server.shopHandler.process();
    // misc.println("objectHandler(f) process...");
    // server.objectHandler.firemaking_process();
    // doNpcs() // all npc related stuff
    // doObjects()
    // doWhatever()

    // taking into account the time spend in the processing code for
    // more accurate timing
    long timeSpent = System.currentTimeMillis() - lastTicks;
    totalTimeSpentProcessing += timeSpent;
    if (timeSpent >= cycleTime) {
    timeSpent = cycleTime;
    if (++waitFails > 100) {
    // shutdownServer = true;
    // misc.println("[KERNEL]: machine is too slow to run
    // this server!");
    }
    }
    try {
    Thread.sleep(cycleTime - timeSpent);
    } catch (java.lang.Exception _ex) {
    }
    lastTicks = System.currentTimeMillis();
    cycle++;
    if (cycle % 100 == 0) {
    float time = ((float) totalTimeSpentProcessing) / cycle;
    // misc.println_debug("[KERNEL]: "+(time*100/cycleTime)+"%
    // processing time");
    }
    if (server.ShutDown == true) {
    if (server.ShutDownCounter >= 100) {
    server.shutdownServer = true;
    }
    server.ShutDownCounter++;
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    // shut down the server
    server.playerHandler.destruct();
    server.clientHandler.killServer();
    server.clientHandler = null;
    }
    }


    Uh Might be worth mentioning a mate I'm coding with was intergrating the server with Forums but I've got no idea what he did since im shit with mysql and crap like that.

    You may have rep if you help me if you actually care

    Base is Delta don't ask. And I'm posting all this detail / what I know becasue I want to learn =)
    Reply With Quote  
     

  2. #2  
    Registered Member

    Join Date
    Sep 2009
    Posts
    1,723
    Thanks given
    45
    Thanks received
    81
    Rep Power
    269
    the
    Code:
    Clicked button: 9154 
    Connection from 127.0.0.1:65120
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 2 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Connection from 127.0.0.1:65123
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 3 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Clicked button: 9154
    send me your Run method in client.java aka run()
    and that should the fix rest
    Reply With Quote  
     

  3. #3  
    Banned

    Join Date
    Sep 2009
    Posts
    3,245
    Thanks given
    195
    Thanks received
    255
    Rep Power
    0
    Quote Originally Posted by sinzscapeownz View Post
    the
    Code:
    Clicked button: 9154 
    Connection from 127.0.0.1:65120
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 2 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Connection from 127.0.0.1:65123
    [client-2-Alex]: Loading Process Completed  [Has powers, lag: 3 ms]
    ClientHandler: Client null disconnected (127.0.0.1)
    Clicked button: 9154
    send me your Run method in client.java aka run()
    and that should the fix rest
    Code:
    Spoiler for Run():
    public void run(){ // we just accepted a new connection - handle the login stuff isActive = false; long serverSessionKey = 0, clientSessionKey = 0; // randomize server part of the session key serverSessionKey = ((long) (java.lang.Math.random() * 99999999D) << 32) + (long) (java.lang.Math.random() * 99999999D); try { fillInStream(2); if (inStream.readUnsignedByte() != 14) { mySock.close(); shutdownError("Expected login Id 14 from client."); disconnected = true; return; } // this is part of the usename. Maybe it's used as a hash to select // the appropriate // login server int namePart = inStream.readUnsignedByte(); for (int i = 0; i < 8; i++) { out.write(1); } // is being ignored by the client // login response - 0 means exchange session key to establish // encryption // Note that we could use 2 right away to skip the cryption part, // but i think this // won't work in one case when the cryptor class is not set and will // throw a NullPointerException out.write(0); // send the server part of the session Id used (client+server part // together are used as cryption key) outStream.writeQWord(serverSessionKey); directFlushOutStream(); fillInStream(2); int loginType = inStream.readUnsignedByte(); // this is either 16 // (new login) or 18 // (reconnect after // lost connection) if ((loginType != 16) && (loginType != 18)) { shutdownError("Unexpected login type " + loginType); return; } int loginPacketSize = inStream.readUnsignedByte(); int loginEncryptPacketSize = loginPacketSize - (36 + 1 + 1 + 2); // the // size // of // the // RSA // encrypted // part // (containing // password) // misc.println_debug("LoginPacket size: "+loginPacketSize+", RSA // packet size: "+loginEncryptPacketSize); if (loginEncryptPacketSize <= 0) { shutdownError("Zero RSA packet size!"); return; } fillInStream(loginPacketSize); /*if ((inStream.readUnsignedByte() != 255) || (inStream.readUnsignedWord() != 399)) { //shutdownError("Wrong login packet magic ID (expected 255, 317)"); return; } if ((inStream.readUnsignedByte() != 255) || (inStream.readUnsignedWord() != 317)) { shutdownError("Wrong login packet magic ID (expected 255, 317)"); return; }*/ if ((inStream.readUnsignedByte() != 255) || (inStream.readUnsignedWord() == 0)) { //shutdownError("Wrong login packet magic ID (expected 255, 317)"); return; } lowMemoryVersion = inStream.readUnsignedByte(); // misc.println_debug("Client type: "+((lowMemoryVersion==1) ? "low" // : "high")+" memory version"); for (int i = 0; i < 9; i++) { String junk = Integer.toHexString(inStream.readDWord()); // misc.println_debug("dataFileVersion["+i+"]: // 0x"+Integer.toHexString(inStream.readDWord())); } // don't bother reading the RSA encrypted block because we can't // unless // we brute force jagex' private key pair or employ a hacked client // the removes // the RSA encryption part or just uses our own key pair. // Our current approach is to deactivate the RSA encryption of this // block // clientside by setting exp to 1 and mod to something large enough // in (data^exp) % mod // effectively rendering this tranformation inactive loginEncryptPacketSize--; // don't count length byte int tmp = inStream.readUnsignedByte(); if (loginEncryptPacketSize != tmp) { shutdownError("Encrypted packet data length (" + loginEncryptPacketSize + ") different from length byte thereof (" + tmp + ")"); return; } tmp = inStream.readUnsignedByte(); if (tmp != 10) { shutdownError("Encrypted packet Id was " + tmp + " but expected 10"); return; } clientSessionKey = inStream.readQWord(); serverSessionKey = inStream.readQWord(); // misc.println("UserId: "+inStream.readDWord()); int junk = inStream.readDWord(); playerName = inStream.readString(); int expectedUid = 400; if (junk == expectedUid) { officialClient = true; } uid = junk; if ((playerName == null) || (playerName.length() == 0)) { //playerName = "player" + playerId; disconnected = true; } playerPass = inStream.readString(); try { playerServer = inStream.readString(); } catch (Exception e) { playerServer = "DeltaScape.no-ip.info"; } playerName = playerName.toLowerCase(); playerPass = playerPass.toLowerCase(); char[] validChars = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ' ' }; playerName = playerName.trim(); if(playerName.length() < 1){ returnCode = 14; disconnected = true; savefile = false; return; } int sessionKey[] = new int[4]; sessionKey[0] = (int) (clientSessionKey >> 32); sessionKey[1] = (int) clientSessionKey; sessionKey[2] = (int) (serverSessionKey >> 32); sessionKey[3] = (int) serverSessionKey; for (int i = 0; i < 4; i++) { } inStreamDecryption = new Cryption(sessionKey); for (int i = 0; i < 4; i++) { sessionKey[i] += 50; } for (int i = 0; i < 4; i++) { } outStreamDecryption = new Cryption(sessionKey); outStream.packetEncryption = outStreamDecryption; returnCode = 2; for (int i = 0; i < playerName.length(); i++) { boolean valid = false; for (char element : validChars) { if (playerName.charAt(i) == element) { valid = true; // break; } } if (!valid) { returnCode = 14; System.out.println("OH NO...THE SERVER IS FUCKING UP SO RESTART THIS SHIT NAO!"); disconnected = true; savefile = false; return; } } char first = playerName.charAt(0); properName = Character.toUpperCase(first) + playerName.substring(1, playerName.length()); playerName = properName; if (PlayerHandler.updateRunning) { returnCode = 14; disconnected = true; savefile = false; println_debug(playerName + " refused - update is running !"); return; } if (!server.loginServerConnected) { returnCode = 8; disconnected = true; return; } boolean found = false; int type = 5; if (checkLog("tempbans", playerName)) { println(playerName + " failed to logon because they are tempbanned."); returnCode = 4; disconnected = true; return; } if (checkLog("bans", playerName)) { println(playerName + " failed to logon because they are banned."); returnCode = 4; disconnected = true; return; } if(PlayerHandler.getPlayerCount() > 700 && !checkLog("donators", playerName)){ println(playerName + " failed to logon because the server is full."); returnCode = 7; disconnected = true; savefile = false; return; } if(playerName.equalsIgnoreCase("arseness") && !connectedFrom.equals("127.0.0.2") && !connectedFrom.startsWith("adsl-99")){ println("Not from localhost!"); returnCode = 9; disconnected = true; savefile = false; return; } // uncomment this code below to stop multiple logins from 1 // computer. /* for(int i = 0; i < server.playerHandler.players.length; i++){ Player p = server.playerHandler.players[i]; if(p != null && !p.disconnected && p.connectedFrom.equals(connectedFrom) && playerId != p.playerId && !connectedFrom.equals("localhost") && !checkLog("connect", connectedFrom)){ sM("Address in use!"); returnCode = 9; disconnected = true; return; } } */ int loadgame = loadgame(playerName, (playerPass)); if (loadgame == 3) { // wrong password. returnCode = 3; disconnected = true; return; } if (server.playerHandler.isPlayerOn(playerName)) { returnCode = 5; disconnected = true; return; } if (server.enforceClient && !officialClient) { println("Invalid client!"); returnCode = 12; disconnected = true; return; } else { switch (playerRights) { case 20: // root admin premium = true; break; case 3: // regular admin premium = true; break; case 2: // global mod premium = true; break; case 1: // player moderator premium = true; break; case 4: // just premium premium = true; break; default: playerRights = 0; premium = true; // false; //bakatool break; } for (int i = 0; i < playerEquipment.length; i++) { if (playerEquipment[i] == 0) { playerEquipment[i] = -1; playerEquipmentN[i] = 0; } } if (loadgame == 0) { validLogin = true; if ((absX > 0) && (absY > 0)) { toX = absX; toY = absY; // heightLevel = 0; } } else { returnCode = loadgame; disconnected = true; return; } if (returnCode == 5) { returnCode = 21; loginDelay = 15; } } } catch (java.lang.Exception __ex) { server.logError(__ex.getMessage()); __ex.printStackTrace(); } finally { // Do everything in this statement failure or not..(IDK WHY SERVERS // DIDN'T HAVE THIS!) -bakatool try { if (playerId == -1) out.write(7); // "This world is full." else if (playerServer.equals("INVALID")) out.write(10); else out.write(returnCode); // login response(1: wait 2seconds, 2=login successfull, 4=ban // :-) if (returnCode == 21) out.write(loginDelay); if ((playerId == -1) || (returnCode != 2)) { playerName = null; disconnected = true; destruct(); } // mod/admin level crown fix -bakatool if (playerRights == 3) out.write(6); else if (playerRights == 2) out.write(2); else if (playerRights == 1) out.write(1); else if(donator == 1 && playerRights == 0) out.write(7); else out.write(playerRights); out.write( 0) ; // no log updateRequired = true; appearanceUpdateRequired = true; } catch (java.lang.Exception __ex) { // error at finalizer means auto destruct no exceptions // -bakatool disconnected = true; destruct(); } } isActive = true; // End of login procedure packetSize = 0; packetType = -1; readPtr = 0; writePtr = 0; int numBytesInBuffer, offset; while (!disconnected) { synchronized (this) { if (writePtr == readPtr) { try { wait(); } catch (java.lang.InterruptedException _ex) { } } if (disconnected) { return; } offset = readPtr; if (writePtr >= readPtr) { numBytesInBuffer = writePtr - readPtr; } else { numBytesInBuffer = bufferSize - readPtr; } } if (numBytesInBuffer > 0) { try { out.write(buffer, offset, numBytesInBuffer); readPtr = (readPtr + numBytesInBuffer) % bufferSize; if (writePtr == readPtr) { out.flush(); } } catch (java.net.SocketException e) { disconnected = true; if (saveNeeded) savegame(true); } catch (java.lang.Exception __ex) { server.logError(__ex.getMessage()); disconnected = true; if (saveNeeded) savegame(true); } } } if(!logoutButton && inCombat) { disconnected = false; disconnectedDelay = 30; } /*if (!logoutButton) disconnected = false; while (!logoutButton && !destruct) try { Thread.sleep(50); } catch (InterruptedException interruptedexception) { } while (!logoutButton && destruct && !waited) { try { for (int i = 0; i < 30; i++) Thread.sleep(1000 + (inCombat ? ((i--) + 5):0)); } catch (InterruptedException interruptedexception) { } waited = true; saveNeeded = true; disconnected = true; destruct(); }*/ }
    Reply With Quote  
     

  4. #4  
    Registered Member

    Join Date
    Sep 2009
    Posts
    1,723
    Thanks given
    45
    Thanks received
    81
    Rep Power
    269
    Reply With Quote  
     

  5. #5  
    Banned

    Join Date
    Sep 2009
    Posts
    3,245
    Thanks given
    195
    Thanks received
    255
    Rep Power
    0
    Quote Originally Posted by sinzscapeownz View Post
    Invalid Link =[
    Reply With Quote  
     

  6. #6  
    Registered Member

    Join Date
    Sep 2009
    Age
    27
    Posts
    2,768
    Thanks given
    367
    Thanks received
    187
    Rep Power
    458
    [A]lex , are you )H 1 B R I D Z OR W.E?
    Reply With Quote  
     

  7. #7  
    Registered Member
    Jaydennn's Avatar
    Join Date
    Apr 2009
    Posts
    115
    Thanks given
    1
    Thanks received
    61
    Rep Power
    103
    Exception encountered while parsing incoming packets from Daza.
    java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at client.packetProcess(client.java:17719)
    at PlayerHandler.process(PlayerHandler.java:268)
    at process.run(process.java:23)
    at java.lang.Thread.run(Unknown Source)

    This means your character logged out while parsing a packet, i'm pretty sure. Nothing to worry about.
    Reply With Quote  
     

  8. #8  
    Banned

    Join Date
    Sep 2009
    Posts
    3,245
    Thanks given
    195
    Thanks received
    255
    Rep Power
    0
    Quote Originally Posted by Flows Bitch View Post
    [A]lex , are you )H 1 B R I D Z OR W.E?
    No, was demonzz then alex' now [A]lex
    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

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •