Пропатчил через git показывает две ошибки вот:
http://s48.radikal.ru/i121/1104/a7/092b1b95d6b1.jpg
открыл патч,зашел сюда src/server/game/Server/Protocol/Handlers/MovementHandler.cpp с патча скопировал что было с плюсиками добавил в MovementHandler.cpp с минусами убрал.
Перехожу к исправлению второй ошибки захожу src/server/game/Server/Protocol/Handlers/MovementHandler.cpp.rej
там вот что написано:
*** 24,36 ****
#include “Corpse.h”
#include “Player.h”
#include “Vehicle.h”
- #include “SpellAuras.h”
#include “MapManager.h”
#include “Transport.h”
#include “Battleground.h”
#include “WaypointMovementGenerator.h”
#include “InstanceSaveMgr.h”
#include “ObjectMgr.h”
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket & /recv_data/)
{
— 24,252 ----
#include “Corpse.h”
#include “Player.h”
#include “Vehicle.h”
#include “MapManager.h”
#include “Transport.h”
#include “Battleground.h”
#include “WaypointMovementGenerator.h”
#include “InstanceSaveMgr.h”
#include “ObjectMgr.h”
-
#include “World.h”
-
//#define ANTI_DEBUG
-
#ifdef ANTI_DEBUG
-
#include “Chat.h”
-
std::string FlagsToStr(const uint32 Flags)
-
{
-
std::string Ret=“”;
-
if(Flags==0)
-
{
-
Ret=“None”;
-
return Ret;
-
}
-
if(Flags & MOVEMENTFLAG_FORWARD)
-
{ Ret+="FW "; }
-
if(Flags & MOVEMENTFLAG_BACKWARD)
-
{ Ret+="BW "; }
-
if(Flags & MOVEMENTFLAG_STRAFE_LEFT)
-
{ Ret+="STL "; }
-
if(Flags & MOVEMENTFLAG_STRAFE_RIGHT)
-
{ Ret+="STR "; }
-
if(Flags & MOVEMENTFLAG_LEFT)
-
{ Ret+="LF "; }
-
if(Flags & MOVEMENTFLAG_RIGHT)
-
{ Ret+="RI "; }
-
if(Flags & MOVEMENTFLAG_PITCH_UP)
-
{ Ret+="PTUP "; }
-
if(Flags & MOVEMENTFLAG_PITCH_DOWN)
-
{ Ret+="PTDW "; }
-
if(Flags & MOVEMENTFLAG_WALK_MODE)
-
{ Ret+="WALK "; }
-
if(Flags & MOVEMENTFLAG_ONTRANSPORT)
-
{ Ret+="TRANS "; }
-
if(Flags & MOVEMENTFLAG_LEVITATING)
-
{ Ret+="LEVI "; }
-
if(Flags & MOVEMENTFLAG_FLY_UNK1)
-
{ Ret+="FLYUNK1 "; }
-
if(Flags & MOVEMENTFLAG_JUMPING)
-
{ Ret+="JUMP "; }
-
if(Flags & MOVEMENTFLAG_UNK4)
-
{ Ret+="UNK4 "; }
-
if(Flags & MOVEMENTFLAG_FALLING)
-
{ Ret+="FALL "; }
-
if(Flags & MOVEMENTFLAG_SWIMMING)
-
{ Ret+="SWIM "; }
-
if(Flags & MOVEMENTFLAG_FLY_UP)
-
{ Ret+="FLYUP "; }
-
if(Flags & MOVEMENTFLAG_CAN_FLY)
-
{ Ret+="CFLY "; }
-
if(Flags & MOVEMENTFLAG_FLYING)
-
{ Ret+="FLY "; }
-
if(Flags & MOVEMENTFLAG_FLYING2)
-
{ Ret+="FLY2 "; }
-
if(Flags & MOVEMENTFLAG_WATERWALKING)
-
{ Ret+="WTWALK "; }
-
if(Flags & MOVEMENTFLAG_SAFE_FALL)
-
{ Ret+="SAFE "; }
-
if(Flags & MOVEMENTFLAG_UNK3)
-
{ Ret+="UNK3 "; }
-
if(Flags & MOVEMENTFLAG_SPLINE)
-
{ Ret+="SPLINE "; }
-
if(Flags & MOVEMENTFLAG_SPLINE2)
-
{ Ret+="SPLINE2 "; }
-
return Ret;
-
}
-
#endif // ANTI_DEBUG
-
bool WorldSession::Anti__ReportCheat(const char* Reason,float Speed,const char* Op,float Val1,uint32 Val2,MovementInfo* MvInfo)
-
{
-
if(!Reason)
-
{
-
sLog->outError(“Anti__ReportCheat: Missing Reason parameter!”);
-
return false;
-
}
-
const char* Player = GetPlayer()->GetName();
-
uint32 Acc = GetPlayer()->GetSession()->GetAccountId();
-
uint32 Map = GetPlayer()->GetMapId();
-
uint32 zone_id = GetPlayer()->GetZoneId();
-
uint32 area_id = GetPlayer()->GetAreaId();
-
float startX = 0.0f;
-
float startY = 0.0f;
-
float startZ = 0.0f;
-
float endX = 0.0f;
-
float endY = 0.0f;
-
float endZ = 0.0f;
-
uint32 fallTime = 0;
-
uint32 t_guid = 0;
-
uint32 flags = 0;
-
MapEntry const* mapEntry = sMapStore.LookupEntry(GetPlayer()->GetMapId());
-
AreaTableEntry const* zoneEntry = GetAreaEntryByAreaID(zone_id);
-
AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(area_id);
-
std::string mapName(mapEntry ? mapEntry->name[GetSessionDbcLocale()] : “”);
-
std::string zoneName(zoneEntry ? zoneEntry->area_name[GetSessionDbcLocale()] : “”);
-
std::string areaName(areaEntry ? areaEntry->area_name[GetSessionDbcLocale()] : “”);
-
CharacterDatabase.escape_string(mapName);
-
CharacterDatabase.escape_string(zoneName);
-
CharacterDatabase.escape_string(areaName);
-
if(!Player)
-
{
-
sLog->outError(“Anti__ReportCheat: Player with no name?!?”);
-
return false;
-
}
-
QueryResult Res=CharacterDatabase.PQuery(“SELECT speed,Val1 FROM cheaters WHERE player=‘%s’ AND reason LIKE ‘%s’ AND Map=‘%u’ AND last_date >= NOW()-300”,Player,Reason,Map);
-
if(Res)
-
{
-
Field* Fields = Res->Fetch();
-
std::stringstream Query;
-
Query << “UPDATE cheaters SET count=count+1,last_date=NOW()”;
-
Query.precision(5);
-
if(Speed>0.0f && Speed > Fields[0].GetFloat())
-
{
-
Query << “,speed='”;
-
Query << std::fixed << Speed;
-
Query << “'”;
-
}
-
if(Val1>0.0f && Val1 > Fields[1].GetFloat())
-
{
-
Query << “,Val1='”;
-
Query << std::fixed << Val1;
-
Query << “'”;
-
}
-
Query << " WHERE player=‘" << Player << "’ AND reason=‘" << Reason << "’ AND Map=‘" << Map << "’ AND last_date >= NOW()-300 ORDER BY entry DESC LIMIT 1";
-
CharacterDatabase.Execute(Query.str().c_str());
-
}
-
else
-
{
-
if(!Op)
-
{ Op=“”; }
-
startX = GetPlayer()->GetPositionX();
-
startY = GetPlayer()->GetPositionY();
-
startZ = GetPlayer()->GetPositionZ();
-
if(MvInfo)
-
{
-
fallTime = MvInfo->fallTime;
-
flags = MvInfo->flags;
-
t_guid = MvInfo->t_guid;
-
endX = MvInfo->pos.GetPositionX();
-
endY = MvInfo->pos.GetPositionY();
-
endZ = MvInfo->pos.GetPositionZ();
-
}
-
CharacterDatabase.PExecute("INSERT INTO cheaters (player,acctid,reason,speed,count,first_date,last_date,Op,Val1,Val2,Map,mapEntry,zone_id,zoneEntry,area_id,areaEntry,Level,startX,startY,sta rtZ,endX,endY,endZ,t_guid,flags,fallTime) "
-
“VALUES (‘%s’,‘%u’,‘%s’,‘%f’,‘1’,NOW(),NOW(),‘%s’,‘%f’,‘%u’,‘%u’,‘%s’,‘%u’,‘%s’,‘%u’,‘%s’,‘%u’,‘%f’,‘%f’,‘%f’,‘%f’,‘%f’,‘%f’,‘%u’,‘%u’,‘%u’)”,
-
Player,Acc,Reason,Speed,Op,Val1,Val2,
-
Map, mapName.c_str(),
-
zone_id, zoneName.c_str(),
-
area_id, areaName.c_str(),
-
GetPlayer()->getLevel(),
-
startX,startY,startZ,
-
endX,endY,endZ,
-
t_guid,flags,t_guid);
-
}
-
if(sWorld->GetMvAnticheatKill() && GetPlayer()->isAlive())
-
{
-
GetPlayer()->DealDamage(GetPlayer(), GetPlayer()->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
-
}
-
if(sWorld->GetMvAnticheatKick())
-
{
-
GetPlayer()->GetSession()->KickPlayer();
-
}
-
if(sWorld->GetMvAnticheatBan() & 1)
-
{
-
sWorld->BanAccount(BAN_CHARACTER,Player,sWorld->GetMvAnticheatBanTime(),“Cheat”,“Anticheat”);
-
}
-
if(sWorld->GetMvAnticheatBan() & 2)
-
{
-
QueryResult result = LoginDatabase.PQuery(“SELECT last_ip FROM account WHERE id=%u”, Acc);
-
if(result)
-
{
-
Field *fields = result->Fetch();
-
std::string LastIP = fields[0].GetString();
-
if(!LastIP.empty())
-
{
-
sWorld->BanAccount(BAN_IP,LastIP,sWorld->GetMvAnticheatBanTime(),“Cheat”,“Anticheat”);
-
}
-
}
-
}
-
return true;
-
}
-
bool WorldSession::Anti__CheatOccurred(uint32 CurTime,const char* Reason,float Speed,const char* Op,
-
float Val1,uint32 Val2,MovementInfo* MvInfo)
-
{
-
if(!Reason)
-
{
-
sLog->outError(“Anti__CheatOccurred: Missing Reason parameter!”);
-
return false;
-
}
-
GetPlayer()->m_anti_lastalarmtime = CurTime;
-
GetPlayer()->m_anti_alarmcount = GetPlayer()->m_anti_alarmcount + 1;
-
if (GetPlayer()->m_anti_alarmcount > sWorld->GetMvAnticheatAlarmCount())
-
{
-
Anti__ReportCheat(Reason,Speed,Op,Val1,Val2,MvInfo);
-
return true;
-
}
-
return false;
-
}
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket & /recv_data/)
{
тут что надо делать?