Jump to content

phelpsben

Members
  • Posts

    64
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by phelpsben

  1. I'm really not sure why, or how, this is happening, but i would say, 1 out of every 50 deaths result in the player being in a mix of dead and alive. They can cast spells, but they can't do melee damage (hunters shots count as melee), they can't move, but they can blink/charge, they have ~100-200hp and are about to die when it happens. With a patch for instant respawn in FFA a selected zone, there are about 2-4 deaths per second when I have about 70 players online so this is happening alot, the only way to fix the player is to revive them as a GM, or the player can relog and they are back to normal. Sometimes a sheep, or hex will also take them out of the phase of dead and alive.

    This has also happened once to a player in the arena, where the Avoid GY check doesn't even get ran, so thats leading me to think its not 100% my code, maybe my code is causing it to happen alot more though, not sure.

    I think it might have something to do with this file, but I'm not sure. These are the edits I have made to player.cpp:

    http://bphelpsen.pastebin.com/f452a5a76

    I think its happening in "void Player::RepopAtGraveyard()" but i have looked over it and can't seem to find what might cause it.

    void Player::RepopAtGraveyard()
    {
       // note: this can be called also when the player is alive
       // for example from WorldSession::HandleMovementOpcodes
    
       AreaTableEntry const *zone = GetAreaEntryByAreaID(GetAreaId());
    
       // Such zones are considered unreachable as a ghost and the player must be automatically revived
       if ((!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY) || GetTransport())
       {
           ResurrectPlayer(0.5f);
           SpawnCorpseBones();
       }
    
       WorldSafeLocsEntry const *ClosestGrave = NULL;
    
       // Special handle for battleground maps
       if( BattleGround *bg = GetBattleGround() )
           ClosestGrave = bg->GetClosestGraveYard(this);
       else
           ClosestGrave = sObjectMgr.GetClosestGraveYard( GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeam() );
    
       // stop countdown until repop
       m_deathTimer = 0;
    
    // !-Phelps
    // Custom Avoid GY Checks
    
    
    // this matches player being in Dire Maul - The Maul (FFA-PvP)
    if (sMapMgr.GetZoneId(GetMapId(),GetPositionX(),GetPositionY(),GetPositionZ()) == 2557){
    
    	TeleportTo(1, -3761.428223, 1137.259277, 131.261383, 4.729075);
    	ResurrectPlayer(1.0f);
    	UninviteFromGroup();
    	SpawnCorpseBones();
    	//RemoveArenaSpellCooldowns(); - too much burst for everyone in ffa
    
    
    }
    // match player in Circle of Blood and send to proper faction base
    else if (sMapMgr.GetZoneId(GetMapId(),GetPositionX(),GetPositionY(),GetPositionZ()) == 3522){
    
    	switch (GetTeam()) {
    		case HORDE:
    			TeleportTo(530, 2907.686, 5973.359, 2.200, 4.050);
    			break;
    
    		case ALLIANCE:
    			TeleportTo(530, 2771.037, 5884.949, 2.726, 0.937);
    			break;
    
    		default:
    			TeleportTo(530, 2838.707, 5928.274, 0.892, 5.606);
    			break;
    	}
    
    	ResurrectPlayer(1.0f);
    	SpawnCorpseBones();
    
    }
       // if no grave found, and not in a custom GY zone, stay at the current location
       // and don't show spirit healer location
       if(ClosestGrave)
       {
           TeleportTo(ClosestGrave->map_id, ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, GetOrientation());
           if(isDead())                                        // not send if alive, because it used in TeleportTo()
           {
               WorldPacket data(SMSG_DEATH_RELEASE_LOC, 4*4);  // show spirit healer position on minimap
               data << ClosestGrave->map_id;
               data << ClosestGrave->x;
               data << ClosestGrave->y;
               data << ClosestGrave->z;
               GetSession()->SendPacket(&data);
           }
       }
    }
    

  2. autoreconf: `configure.ac' or `configure.in' is required

    Is due to you not being in the proper directory when you run the autoreconf command.

    On the OS X note, that's strange because it complies fine for me with extra mac patches or any install files.

    The reason why it fails the OpenSSL check is because you have an old revision (If you check the git logs, they had to rollback some files, and i think there was an error with the ACE library, not 100% sure). I just ran the whole process from start to finish on an 8.04 Ubuntu Server install (VPS since its convenient), and it worked fine.

    Here is the bash log of me getting everything and running the ./configure successfully.

    http://bphelpsen.pastebin.com/f2bbdcdcd

    @yip328 Thanks :) It's nice to be back. This time I come with C++ knowledge.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use