[Help] Накатка патчей

Пропатчил через 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/)

{

тут что надо делать?

откатить файл до чистой копии и накатить из патча все изменения на этот файл ручками.

rej файлы это отвергнутые строки патча. Как раз таки надо вставить их в cpp и убрать +

Спасибо тут разобрался