Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Правила форума Чёрный рынок Реклама и привилегии Гаранты Арбитраж

Вернуться   Чит портал RF-Cheats.ru - форум читеров и ботоводов > > > >

Архив

: Старые, но рабочие вещи для RF Online серверов
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр





Ответ
 
Опции темы
Старый 21.04.2013, 13:11   #1
ЕНЫ
Эксперт
Аватар для ЕНЫ
OFFLINE
Регистрация: 05.12.2011
Возраст: 25
Сообщений: 863
Благодарностей:
448 всего
Мнения: + 2549
Репутация: 1342
Отправить сообщение для ЕНЫ с помощью Skype™

[Фиксы] Полезное.


Я смотрю народ стал добрым и стал отдавать фиксы :)
решил аналогично кое чем поделиться.

Фикс ВХ \ ФХ
Код:
bool __cdecl IsMoveValid(CPlayer * _this, float * pfCur)
{
 CCharacter *p_Char = (CCharacter*)_this;
 CGameObject *p_Object = (CGameObject*)_this;
 CMainThread *g_Main = (CMainThread *)0x14154F250;

 float m_fCurOld[3];
 float m_fTarOld[3];
 float m_fOldOld[3];

 memcpy(m_fCurOld, p_Object->m_fCurPos, sizeof(float)*3);
 memcpy(m_fOldOld, p_Object->m_fOldPos, sizeof(float)*3);
 memcpy(m_fTarOld, p_Char->m_fTarPos, sizeof(float)*3);


 float fDist = sqrt(pow(m_fCurOld[0] - m_fTarOld[0], 2) + pow(m_fCurOld[2] - m_fTarOld[2], 2));
 float fDistF = sqrt(pow(m_fCurOld[0] - pfCur[0], 2) + pow(m_fCurOld[2] - pfCur[2], 2));
 float fDistS = sqrt(pow(pfCur[0] - p_Char->m_fTarPos[0], 2) + pow(pfCur[2] - p_Char->m_fTarPos[2], 2));

 DWORD m_dwCurrentTime;
 m_dwCurrentTime = timeGetTime();
 float m_fAvatarSpeed = 0.0f;

 if(_this->m_pUsingUnit && !_this->m_pParkingUnit)
 {
  _UnitFrame_fld* pFrameFld = (_UnitFrame_fld*)p_CRecordData__GetRecord(&g_Main->m_tblUnitFrame, _this->m_pUsingUnit->byFrame);
  m_fAvatarSpeed = pFrameFld->m_fMoveRate_Seed;
  switch(_this->m_byMoveType)
  {
  case 0:
   {   
    for(int i = 0; i < 6; i++)
    {
     _UnitPart_fld * pPartFld = (_UnitPart_fld*)p_CRecordData__GetRecord(&g_Main->m_tblUnitPart[i], _this->m_pUsingUnit->byPart[i]);
     m_fAvatarSpeed += pPartFld->m_fMoveSpdRev;
    }
   }break;
  case 1:
   {
    _UnitPart_fld* pPartFld = (_UnitPart_fld*)p_CRecordData__GetRecord(&g_Main->m_tblUnitPart[5], _this->m_pUsingUnit->byPart[5]);
    m_fAvatarSpeed += pPartFld->m_fBstSpd;
   }break;
  }
 }
 else
 {
  switch(_this->m_byMoveType)
  {
  case 0:
   {
    _player_fld * pPlayerFld = (_player_fld*)p_CRecordData__GetRecord(&g_Main->m_tblPlayer, _this->m_Param.m_dbChar.m_byRaceSexCode);
    m_fAvatarSpeed += pPlayerFld->m_fMoveWalkRate;
    m_fAvatarSpeed += p_Char->m_EP.m_pDataParam->m_fEff_Plus[20];
   }break;
  case 1:
   {
    _player_fld * pPlayerFld = (_player_fld*)p_CRecordData__GetRecord(&g_Main->m_tblPlayer, _this->m_Param.m_dbChar.m_byRaceSexCode);
    m_fAvatarSpeed += pPlayerFld->m_fMoveRunRate;
    m_fAvatarSpeed += p_Char->m_EP.m_pDataParam->m_fEff_Plus[20];
   }break;
  case 2:
   {
    _player_fld * pPlayerFld = (_player_fld*)p_CRecordData__GetRecord(&g_Main->m_tblPlayer, _this->m_Param.m_dbChar.m_byRaceSexCode);
    m_fAvatarSpeed += pPlayerFld->m_fMoveRunRate;
    _CloakItem_fld * pCloackFld = (_CloakItem_fld*)p_CRecordData__GetRecord(&g_Main->m_tblItemData[7], _this->m_Param.m_dbEquip.m_List[7].m_wItemIndex);
    m_fAvatarSpeed += pCloackFld->m_fBoosterSpeed;
   }break;
  }
 }
 char strSend[256];
 char * strSendTmp;
 float fABS = abs(fDist-fDistF-fDistS);
 float fGoodDist = (m_dwCurrentTime - GuardService[_this->m_id.wIndex].m_dwMoveCheckTime) * m_fAvatarSpeed * DefaultPlayerSpeed * MaxSpeedDiff + 15;
 bool bMoveHack = false;
 GuardService[_this->m_id.wIndex].m_cFree++;
 if(fABS > MaxMoveDiff)
  bMoveHack = true;
 if(fDistF > fGoodDist)
 {
  if((fDistF - fGoodDist)*1.2 > fGoodDist)
  {
   bMoveHack = true;
   //p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, "Допуск > 20% Откатываю", _this->m_Param.m_byPvPGrade, "Guard");
  }
  else
  {
   GuardService[_this->m_id.wIndex].m_cIter++;
   GuardService[_this->m_id.wIndex].m_cFree = 0;
   strSendTmp = "Предупреждение СпидХака %d из 3";
   sprintf_s(strSend, strSendTmp, GuardService[_this->m_id.wIndex].m_cIter);
   p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, strSend, _this->m_Param.m_byPvPGrade, "Guard");
  }
 }
 if(GuardService[_this->m_id.wIndex].m_cIter > 3)
 {
  bMoveHack = true;
  p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, "Предупреждения исчерпаны. Откатываю", _this->m_Param.m_byPvPGrade, "Guard");
  GuardService[_this->m_id.wIndex].m_cIter = 0;
 }
 if(GuardService[_this->m_id.wIndex].m_cFree > 7 && GuardService[_this->m_id.wIndex].m_cIter != 0)
 {
  GuardService[_this->m_id.wIndex].m_cIter = 0;
  GuardService[_this->m_id.wIndex].m_cFree = 0;
  p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, "Предупреждения сняты", _this->m_Param.m_byPvPGrade, "Guard");
 }

 if(!bMoveHack)
 {
  Vector3f fNewPos;
  pfCur[1] = m_fCurOld[1];
  
  if(!p_CBsp__CanYouGoThere(p_Object->m_pCurMap->m_Level.mBsp, m_fCurOld, pfCur, &fNewPos))
  {
   float m_MovePos[16][3];
   DWORD cnt =0;
   if(p_Ori_CBsp__GetPathFind(p_Object->m_pCurMap->m_Level.mBsp, m_fCurOld, pfCur, (Vector3f*)m_MovePos, &cnt, 15) != 1 || cnt < 2)
   {
    p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, "Попытка пройти сквозь стену", _this->m_Param.m_byPvPGrade, "Guard");
    return false;
   }
   float m_fCur[3];
   memcpy(m_fCur, pfCur, sizeof(float)*3);
   m_fCur[0] = abs(m_fCur[0]-m_MovePos[cnt-1][0]);
   m_fCur[2] = abs(m_fCur[2]-m_MovePos[cnt-1][2]);
   if(m_fCur[0] > 0.6 || m_fCur[2] > 0.6)
   {
    strSendTmp = "X= %.2f  >0.6 или Y= %.2f > 0.6 Попытка пройти сквозь стену.";
    sprintf_s(strSend, strSendTmp, m_fCur[0], m_fCur[2]);
    p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, strSend, _this->m_Param.m_byPvPGrade, "Guard");
    return false;
   }
  }
  
  if(!p_CLevel__GetNextYposForServerFar(&p_Object->m_pCurMap->m_Level, m_fCurOld, pfCur, &pfCur[1]))
  {
   if(!p_CLevel__GetNextYposFarProgress(&p_Object->m_pCurMap->m_Level, m_fCurOld, pfCur, &pfCur[1]))
   {
    p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, "Не удалось оценить высоту позиции. Откатываю", _this->m_Param.m_byPvPGrade, "Guard");
    return false;
   }
  }
  //strSendTmp = "OK DELTA MOVE %.f";
  //float fDelta = fGoodDist - fDistF;
  //sprintf_s(strSend, strSendTmp, fDelta);
  //p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, strSend, _this->m_Param.m_byPvPGrade, "Guard");
  GuardService[_this->m_id.wIndex].m_dwMoveCheckTime = m_dwCurrentTime;
  return true;
 }

 if(fABS > MaxMoveDiff)
 {
  strSendTmp = "Абсолютная погрешность превышена %.2f > %.2f Откатываю";
  sprintf_s(strSend, strSendTmp, fABS, MaxMoveDiff);
 }
 else
 {
  strSendTmp = "Вы двигаетесь слишком быстро %.2f > %.2f Откатываю";
  sprintf_s(strSend, strSendTmp, fDistF, fGoodDist);
 }
 p_CPlayer__SendData_ChatTrans(_this, 2, _this->m_Param.m_dbChar.m_dwSerial, _this->m_Param.m_dbChar.m_byRaceSexCode, false, strSend, _this->m_Param.m_byPvPGrade, "Guard");
 
 //GuardService[_this->m_id.wIndex].m_dwMoveCheckTime = m_dwCurrentTime;
 return false;
}
Это проверка на вх

Код:
if(!p_CLevel__GetNextYposForServerFar(&p_Object->m_pCurMap->m_Level, m_fCurOld, pfCur, &pfCur[1]))
  {
   if(!p_CLevel__GetNextYposFarProgress(&p_Object->m_pCurMap->m_Level, m_fCurOld, pfCur, &pfCur[1]))
   {
это сх проверка
Код:
if((fDistF - fGoodDist)*1.2 > fGoodDist)
все остальное просто вспомогательные вычисления чтобы получить скорость чара и получение всякой фигни о чаре

[/HIDE]

фикс безниких и безтелых

Код:
bool __cdecl pc_Insert_Char_Request(CUserDB *_this, char *pwszCharName, char bySlotIndex, char byRaceSexCode, char *pszClassCode, unsigned int dwBaseShape)
{
 unsigned int i, j, r;
 r = 1;
 for(i = 2; i < 8; i++)
 {
  j=dwBaseShape<<(i*4);
  j=j>>28;
  if(j==15)
  {
   r=0;
   break;
  }
 }
 for(i=0; i < strlen(pwszCharName); i++)
 {
  if(!(((pwszCharName[i] >= 'A') && (pwszCharName[i] <= 'Z')) ||
    ((pwszCharName[i] >= 'a') && (pwszCharName[i] <= 'z')) ||
    ((pwszCharName[i] >= '0') && (pwszCharName[i] <= '9')) ||
    ((pwszCharName[i] >= 'А') && (pwszCharName[i] <= 'я')) ||
    (pwszCharName[i] == '-')))
  {
   r=0;
   break;
  }
 }
 bool bResult;
 if(r==0)
 {
  char* pwszCharName2 = "12345678901234567890";
  bResult = p_Ori_CUserDB__Insert_Char_Request(_this, pwszCharName2, bySlotIndex, byRaceSexCode, pszClassCode, dwBaseShape);
  return bResult;
 }
 bResult = p_Ori_CUserDB__Insert_Char_Request(_this, pwszCharName, bySlotIndex, byRaceSexCode, pszClassCode, dwBaseShape);
 return bResult;
[/HIDE]

фикс падения гильдией

Код:
void __cdecl pc_GuildManageRequest(CPlayer *_this, char byType, unsigned int dwDst, unsigned int dwObj1, unsigned int dwObj2, unsigned int dwObj3)
{
 if(!_this->m_Param.m_pGuild)
  return;
 p_Ori_CPlayer_pc_GuildManageRequest(_this, byType, dwDst, dwObj1, dwObj2, dwObj3);
}
вот сам фикс
Код:
if(!_this->m_Param.m_pGuild)
[/HIDE]

Фикс трейд хака

Код:
void __cdecl pc_DTradeOKRequest(CPlayer *_this, unsigned int *pdwKey)
{
 CPlayer * g_Player = (CPlayer*)0x1799CA490;
 CPlayer * pDst = &g_Player[_this->m_pmTrd.wDTradeDstIndex];
 if(!_this->m_pmTrd.bDTradeMode || !_this->m_pmTrd.bDTradeLock || !pDst->m_pmTrd.bDTradeMode || !pDst->m_pmTrd.bDTradeOK || !pDst->m_pmTrd.bDTradeLock)
 {
  p_Ori_pc_DTradeOKRequest(_this, pdwKey);
  return;
 }

 _STORAGE_LIST * pMyInevn = (_STORAGE_LIST*)&_this->m_Param.m_dbInven;
 _STORAGE_LIST * pDstInevn = (_STORAGE_LIST*)&pDst->m_Param.m_dbInven;

 int nMyEmptySlot = p_Ori_GetNumEmptyCon(pMyInevn);
 int nDstEmptySlot = p_Ori_GetNumEmptyCon(pDstInevn);

 if(_this->m_pmTrd.bySellItemNum > nDstEmptySlot || pDst->m_pmTrd.bySellItemNum > nMyEmptySlot)
  return;
 p_Ori_pc_DTradeOKRequest(_this, pdwKey);
}
[/HIDE]

Фикс треда

Код:
bool __cdecl CNetworkEX__DTradeAskRequest(LPVOID *_this, int n, char *pBuf)
{
 _d_trade_ask_request_clzo * pRecv = (_d_trade_ask_request_clzo*)pBuf;
 if(pRecv->wDstIndex > 2531)
  return false;
 bool bResult = (функция оригинала)p)Ori_CNetworkEX__DTradeAskRequest(_this, n, pBuf);
 return bResult;
}
//Трирожка (с)
[/HIDE]

Последний раз редактировалось Император; 28.06.2017 в 15:12.
 
Ответить с цитированием
Сказали спасибо:
Dire (24.04.2013), gleb1234 (22.04.2013), Aken (21.04.2013)

- Реферальная программа 6.0 - премиум танк 8 уровня - ЛУЧШАЯ ЦЕНА;
- ИВЕНТ ТАНКИ С ГК : Carro 45 t , Об. 907, VK72.01K...;
- Выполнение новых ЛБЗ 2.0: Об.279, Химера, Эскалибур;
- Три отметки и Поднятие статистики на любом танке.;
- Фарм серебра и опыта – прокачка танков с нуля;
- WOT Twitch Prime актуальный набор ;

Старый 21.04.2013, 13:57   #2
[Zeto]
Проверенный продавец
Аватар для [Zeto]
OFFLINE
Регистрация: 06.07.2012
Сообщений: 698
Благодарностей:
1,011 всего
Мнения: + 2496
Репутация: 3034
Отправить сообщение для [Zeto] с помощью Skype™

Вы если выкладываете что-то, то выкладывайте всё что относится к этому фиксу, а так тупо алгоритм с названиями функций и без нужных структур/класов - это хлам.

Если уж давать посты, то давать трирогу, он тут есть.

Интересно, если исходник калькулятора выложить, то дарк даст постов?
 
Ответить с цитированием
Сказали спасибо:
Вульф88 (21.04.2013)
Старый 21.04.2013, 14:17   #3
Вульф88
Скриптер RF Online
Аватар для Вульф88
OFFLINE
Регистрация: 29.03.2010
Возраст: 30
Сообщений: 281
Благодарностей:
1,071 всего
Мнения: + 3346
Репутация: 3214
Отправить сообщение для Вульф88 с помощью Skype™

Чувствую скоро можно выкладывать v1.5....

Да и если что-то выкладывать, то как минимум так, чтобы это было работоспособным, а не кусками, а то действительно от этого просто нету смысла.

Да и не мне это вам говорить...

Единственный путь стать умнее — играть с более сильным противником.(Эмануэль Ласкер)

Мои услуги на RF-C:
[Продажа] - Сборки | Структуры | Программы [RF Online]

Мои разделы:
Установка и поддержка RFO сервера
подраздел Вульфа88
Заработок в интернете


Мой скайп: gmwolf495
 
Ответить с цитированием
Сказали спасибо:
Devilry-PvP (24.04.2014), Dire (24.04.2013)
Старый 21.04.2013, 14:19   #4
[Zeto]
Проверенный продавец
Аватар для [Zeto]
OFFLINE
Регистрация: 06.07.2012
Сообщений: 698
Благодарностей:
1,011 всего
Мнения: + 2496
Репутация: 3034
Отправить сообщение для [Zeto] с помощью Skype™

Цитата:
Сообщение от Вульф88 Посмотреть сообщение
Чувствую скоро можно выкладывать v1.5....

Да и если что-то выкладывать, то как минимум так, чтобы это было работоспособным, а не кусками, а то действительно от этого просто нету смысла.

Да и не мне это вам говорить...
угу, только без обрезанного массива для игроков, плз =)
 
Ответить с цитированием
Старый 21.04.2013, 14:31   #5
SI1M
Читер со стажем
Аватар для SI1M
OFFLINE
Регистрация: 05.11.2009
Сообщений: 613
Благодарностей:
1,429 всего
Мнения: + 6028
Репутация: 4288

Ну ты неплохо поделился) с 10тью донатерами =\
Цитата:
Сообщение от [Zeto] Посмотреть сообщение
Вы если выкладываете что-то, то выкладывайте всё что относится к этому фиксу, а так тупо алгоритм с названиями функций и без нужных структур/класов - это хлам.

Если уж давать посты, то давать трирогу, он тут есть.

Интересно, если исходник калькулятора выложить, то дарк даст постов?
Кинь профиль)

Какой стыд. Займись делом.
 
Ответить с цитированием
Старый 21.04.2013, 14:40   #6
[Zeto]
Проверенный продавец
Аватар для [Zeto]
OFFLINE
Регистрация: 06.07.2012
Сообщений: 698
Благодарностей:
1,011 всего
Мнения: + 2496
Репутация: 3034
Отправить сообщение для [Zeto] с помощью Skype™

Цитата:
Сообщение от SI1M Посмотреть сообщение
Ну ты неплохо поделился) с 10тью донатерами =\

Кинь профиль)
https://www.rf-cheats.ru/forum/member.php?u=10405
 
Ответить с цитированием
Сказали спасибо:
SI1M (21.04.2013)
Старый 21.04.2013, 18:40   #7
TriRozhka
Подпольщик
Аватар для TriRozhka
OFFLINE
Регистрация: 10.03.2008
Возраст: 32
Сообщений: 1,505
Благодарностей:
56 всего
Мнения: + 369
Репутация: 171
Отправить сообщение для TriRozhka с помощью Skype™

Копирайты ставьте умники.
Слито из сурсов старого шилда так как только ему я давал эти фиксы.
Сейчас фикс уже переделан.

Последний раз редактировалось TriRozhka; 21.04.2013 в 18:44.
 
Ответить с цитированием
Сказали спасибо:
РаССеЛ (25.04.2013), Dire (24.04.2013), 4a4i (22.04.2013), FlyGirl (22.04.2013), Skill4FuN (22.04.2013), Korolina (21.04.2013), ЕНЫ (21.04.2013), Вульф88 (21.04.2013), Salomey (21.04.2013), Allianz (21.04.2013)
Старый 24.04.2013, 15:00   #8
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 971
Благодарностей:
35,262 всего
Мнения: + 24912
Репутация: 112449
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от [Zeto] Посмотреть сообщение
Вы если выкладываете что-то, то выкладывайте всё что относится к этому фиксу, а так тупо алгоритм с названиями функций и без нужных структур/класов - это хлам.

Если уж давать посты, то давать трирогу, он тут есть.

Интересно, если исходник калькулятора выложить, то дарк даст постов?
Абсолютно согласен.
Тем более в некоторых местах сорсы либо кривые, либо делались под конкретную сборку сервера.
Цитата:
CMainThread *g_Main = (CMainThread *)0x14154F250;
Как можно объяснить захардкоженный в сорсах адрес функции запущенного бинарника?

А фикс флайхака уже выкладывался и тоже без нужных инклудов.

Создание читов на заказ | Правила форума

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 25.04.2013, 00:46   #9
TriRozhka
Подпольщик
Аватар для TriRozhka
OFFLINE
Регистрация: 10.03.2008
Возраст: 32
Сообщений: 1,505
Благодарностей:
56 всего
Мнения: + 369
Репутация: 171
Отправить сообщение для TriRozhka с помощью Skype™

Это не бинарник а зона. Вирт пространство в зоне статичное потому можно смело ссылаться на глобальные массивы таким способом. Вирт адреса меняются только со сменой сборки например 223 и га вирт адреса будут разные. Учитывая что в шаре сборки каждой версии всегда одной компиляции можно смело утверждать что фикс будет работать на любом сервере одной с ним версии.

Суть такая: код понятен только посвященным. Для других надо полноценный проект выкладывать со всеми настройками. Так как хреново собранная длл может и не запуститься вовсе, притом код будет верный.

 
Ответить с цитированием
Сказали спасибо:
Вульф88 (26.04.2013), FlyGirl (25.04.2013), Salomey (25.04.2013)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр