Szerző Téma: Gyakori hiba C++ avagy túl nagy támadó sebesség?  (Megtekintve 3740 alkalommal)

Nem elérhető Radox

  • Intermediate
  • **
  • Hozzászólások: 203
  • Segített: -11
Gyakori hiba C++ avagy túl nagy támadó sebesség?
« Dátum: 2021-04-15, 23:04:49 »
Sziasztok volna egy olyan probléma, hogy ha a karakter túlgyorsan üti a mobot akkor automata le dobja loginba az mitől lehet? És mi erre az orvosság forrásban?
Véletlennek azt nevezzük, amikor a számításaink kudarcot vallanak.

Nem elérhető TMP4

  • Trainee
  • *
  • Hozzászólások: 73
  • Segített: 14
Re:Gyakori hiba C++ avagy túl nagy támadó sebesség?
« Válasz #1 Dátum: 2021-04-16, 13:43:17 »
Emiatt van: input_main.cpp

if (CheckSpeedHack)
{
int iDelta = (int) (pinfo->dwTime - ch->GetDesc()->GetClientTime());
int iServerDelta = (int) (dwCurTime - ch->GetDesc()->GetClientTime());

iDelta = (int) (dwCurTime - pinfo->dwTime);

// ˝Ă°ŁŔĚ ´Ę°Ô°Ł´Ů. ŔĎ´Ü ·Î±×¸¸ ÇصдŮ. ÁřÂĄ ŔĚ·± »ç¶÷µéŔĚ ¸ąŔşÁö ĂĽĹ©ÇŘľßÇÔ. TODO
if (iDelta >= 30000)
{
sys_log(0, "SPEEDHACK: slow timer name %s delta %d", ch->GetName(), iDelta);
ch->GetDesc()->DelayedDisconnect(3);
}
// 1ĂĘżˇ 20msec »ˇ¸® °ˇ´Â°Ĺ ±îÁö´Â ŔĚÇŘÇŃ´Ů.
else if (iDelta < -(iServerDelta / 50))
{
sys_log(0, "SPEEDHACK: DETECTED! %s (delta %d %d)", ch->GetName(), iDelta, iServerDelta);
ch->GetDesc()->DelayedDisconnect(3);
}
}

Vagy kikommentezed a ch->GetDesc()->DelayedDisconnect(3); (kétszer van) vagy az értékeket megpróbálod finomhangolni addig hogy ne érzékelje csalásnak. Syslogba látod az értékeket, helyettesítsd be így látod mennyivel nagyobb / kissebb a te értéked, ennek alapján kell a 30000-et vagy az 50-et növelni vagy csökkenteni. Csak ahhoz nyúlj hozzá amelyik syslogot kapod, a másikhoz ne ha nincs vele baja. Ha a kikommentezés mellett döntessz sem lesz semmi baj, úgy hogy ez a két sor benne van simán speedelnek a bobbal és lalakerrel ;)

Nem elérhető Radox

  • Intermediate
  • **
  • Hozzászólások: 203
  • Segített: -11
Re:Gyakori hiba C++ avagy túl nagy támadó sebesség?
« Válasz #2 Dátum: 2021-04-16, 15:18:52 »
Értem köszi :)
Véletlennek azt nevezzük, amikor a számításaink kudarcot vallanak.