Commander
-
Posts
2 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by Commander
-
-
Hello.
After blind and other flee effects the character can fall through textures and die, when his z-coord < 500.0f (from MovementHandler.cpp):
if(movementInfo.z < -500.0f) { if(GetPlayer()->InBattleGround() && GetPlayer()->GetBattleGround() && GetPlayer()->GetBattleGround()->HandlePlayerUnderMap(_player)) { // do nothing, the handle already did if returned true } else { if(GetPlayer()->isAlive()) GetPlayer()->EnvironmentalDamage(GetPlayer()->GetGUID(),DAMAGE_FALL_TO_VOID, GetPlayer()->GetMaxHealth()); GetPlayer()->BuildPlayerRepop(); GetPlayer()->RepopAtGraveyard(); } }
But when he appears at graveyard, he stays and can't move or take other actions. Inserting some clearUnitState-s does nothing. How to fix this bug? Is there some patches, fixing it?
Also, I have next question: why after blind character can move underground? I have vmaps enabled. In FleeingMovementGeneratos.cpp I tried to add after
if( !(new_z - z) || distance / fabs(new_z - z) > 1.0f) { float new_z_left = _map->GetHeight(temp_x + 1.0f*cos(angle+M_PI/2),temp_y + 1.0f*sin(angle+M_PI/2),z,true); float new_z_right = _map->GetHeight(temp_x + 1.0f*cos(angle-M_PI/2),temp_y + 1.0f*sin(angle-M_PI/2),z,true); if(fabs(new_z_left - new_z) < 1.2f && fabs(new_z_right - new_z) < 1.2f) { x = temp_x; y = temp_y; z = new_z;
next lines:
float zz = _map->GetHeight(temp_x, temp_y, MAX_HEIGHT); if(z < zz) z = zz + 1;
On my oppinion this step must make unavailable to fall through world while fleeing, but really it does nothing.
Please, help me, if anybody can read, what i wrote =)
Thanks.
Relocating In Dynamic Object Creation
in ... acceptedOld
Posted
Rev: 6216
What this patch fixes: invalid position at creating dynamic object
P.S.> I also think, that we must not check ispositionvalid() here, it's necessary for some spells such as conscecration, but it's only my opinion