"Кукла Флема" была нужна чтобы долбить по ней АОЕ скилами которые не привязаны к цели, чтобы на шару качаться стаскивая мобов к какому-то препятствию, сидя за ним на волхаке.
нет, это не так
кукла нужна была чтоб клиент думал что ты бьешь ее, а серверу ты говорил что бьешь настоящего моба
Хз как сюда гифку нормально вставить, но выглядит это примерно вот так, пару лет назад ради интереса сделал такого. Все еще работает на любых серверах из которых я пробовал
Псевдо Флема не делал, сложно было, сделал оконного танка, он как Флем но танк и не зобанют.
В смысле?
Ты "пытался" атаковать в пк игрока своей расы каким-то массовыми патронами пулика/пу = так происходил процесс фарма?
а танк у тебя типа двигался немножко и хватало чтобы задевались несколько мобов стабильно за какое-то время?
@A.F.I
Чел, завязывай с модеркой играться
Я понимаю что тебе хочется кушать$ и совсем не хочется чтобы у всех появился бесплатный Tab Target.
Но это не повод баловаться модеркой.
------
Иди лучше бота своего к нормальному виду приведи
А то простой подход ГМа к нему и спавн мобов - отправляет в бан твоих клиентов пачками.
Хотя админ pvpwar'a со своим "Ку-ку" в чат игровой - оказался самым эффективным в плане детекта на бота))))
------------
Ты же хотел творить для себя и изучать игру
Не вижу проблемы - наконец-то выйти из тени = предложить администраторам серверов новую функцию для премиум аккаунтов.
Именно то о чём я тут на 1ой странице расписал - встроенный автобой
Последний раз редактировалось Diantro; 12.01.2025 в 17:20.
Причина: Добавил оффтоп
В смысле?
Ты "пытался" атаковать в пк игрока своей расы каким-то массовыми патронами пулика/пу = так происходил процесс фарма?
а танк у тебя типа двигался немножко и хватало чтобы задевались несколько мобов стабильно за какое-то время?
Нет, мобы собирается в паровоз и ведутся к этому "танку", после чего начинаешь атаковать своими какими-нибудь магиями или атаками с АОЕ эффектом танка, вместо сбежавшихся к нему мобов, персы без гравов критуются лучше чем мобы. Мобы вбегают в АОЕ радиус и станется.
Можно с 40 пуликом на хаосы поставить пару окон, можно самому долбать если Коробелка и есть ученики магии и крит шмотки чтобы станлок каждый скил был.
Но правда потом придумали вариант проще, с руной защиты.
Добавлено через 5 минут
Цитата:
Сообщение от Jlo6aH
нет, это не так
кукла нужна была чтоб клиент думал что ты бьешь ее, а серверу ты говорил что бьешь настоящего моба
Хз как сюда гифку нормально вставить, но выглядит это примерно вот так, пару лет назад ради интереса сделал такого. Все еще работает на любых серверах из которых я пробовал
Это, по моему ещё в Варриоре оно так могло. Наш гильдийный коллективный разум не понял как такое сделать, но один соорудил просто псевдомоба, но такое себе, там одна инструкция с порядком действий в Читенджине, как "Война и Мир" была.
Последний раз редактировалось DungeonKeeper; 13.11.2024 в 21:24.
Причина: Добавлено сообщение
lolz i dont remember i ever said pidaras in normal chat
@A.F.I
Чел, завязывай с модеркой играться
Я понимаю что тебе хочется кушать$ и совсем не хочется чтобы у всех появился бесплатный Tab Target.
Но это не повод баловаться модеркой.
а при чем тут "и совсем не хочется чтобы у всех появился бесплатный Tab Target"? я что потер тему или что? я свернул в оффтоп посты, которые мало того что простыня на 54 страницы, так еще и не несущие смысловой нагрузки.
за моих клиентов можно не переживать. мобов табают, ГМов видят, смотрят сериалы, пока окна фармят. При этом суммы не космические, чтобы я переживал из-за них. бот написан изначально для себя
Связь на форуме 24-666-09
RF-Cheats.ru2016год - политика, педерастия, вкусная и здоровая пища
Это, по моему ещё в Варриоре оно так могло. Наш гильдийный коллективный разум не понял как такое сделать, но один соорудил просто псевдомоба, но такое себе, там одна инструкция с порядком действий в Читенджине, как "Война и Мир" была.
1. Шлём пакет клиенту с появлением и описанием моба - вот тебе кукла
2. В пакетах на атаку на эту куклу подменяем её ID на ID любого нужного моба (разумеется, надо из остальных пакетов или из памяти - как в статье - вытаскивать ID мобов).
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
В стародавние времена был план несколько проще. В игре есть опция бинда целей на кнопки 1-9, выбираем в игре что-то, биндим и потом одной кнопкой вызываем в таргет. Пока таргет не убит будет вызываться в цель.
Вот, можно было там в памяти записать ИДишник вообще всего что хочешь взять в бинд найдя его в в памяти клиента, в списке того, что вообще есть вокруг перса. Например мину инвизера или какого-то определенного монстра. Можно было особо гадких игроков при запуске игры себе туда вписать, чтобы их предварительно не таргетить в зарубе.
Для автофарма, например Лазувардинов в шахте в АФК, программным, каким-нибудь костылём, что в память писать умеет, в бинд записывался ID ближайшего Лазувардина и всё, только вместо "Таб" жмёшь в скрипте "1".
уххх, еще в 2008 году я такую прогу делал.
Добавлено через 2 минуты
Цитата:
Сообщение от DungeonKeeper
"Кукла Флема" была нужна чтобы долбить по ней АОЕ скилами которые не привязаны к цели, чтобы на шару качаться стаскивая мобов к какому-то препятствию, сидя за ним на волхаке.
Не это нужно было потому, что дарк не мог сделать нормально атаку мобов и придумал такой костыль, как выше лобан написал.
Добавлено через 6 минут
Цитата:
Сообщение от A.F.I
а при чем тут "и совсем не хочется чтобы у всех появился бесплатный Tab Target"? я что потер тему или что? я свернул в оффтоп посты, которые мало того что простыня на 54 страницы, так еще и не несущие смысловой нагрузки.
за моих клиентов можно не переживать. мобов табают, ГМов видят, смотрят сериалы, пока окна фармят. При этом суммы не космические, чтобы я переживал из-за них. бот написан изначально для себя
ой лол, я тут уже тыщу лет на рфч не заходил. щас решил глянуть незалогениным чо тут нового, увидел эту темку зашел почитать и смотрю тут нытик опять ноет что ему бесплатно проги никто не хочет делать, а те кто делал когда то забили и больше не поддерживают. ой беда беда. интересно этот нытик чтом делает какие нибудь проекты на бесплатных началах и поддерживает их десятками лет? даже решил залогиниться чтоб пару строчек чиркануть. кстати всем привет.
Добавлено через 6 минут
и всем пока, увидимся там когда нить еще.
Последний раз редактировалось Тигрь; 15.11.2024 в 16:07.
Причина: Добавлено сообщение
Fun fact: там, где на Цербе идут обращения к 233B5F0, на PvPWaRe всегда используются разные адреса, а не один и тот же.
Человек еще написал в ЛС, что у него на клиенте для локального сервера адрес тоже другой.
Для универсальности слегка доработал DLL — теперь базовый адрес берётся из аргумента команды, указанной на скриншоте (то есть из адреса 0x005182C7 + 2 = 0x005182C9). C++ код
Код:
#include <Windows.h>
struct _Global {
DWORD* obtainTargetableObjectsAddress = (DWORD*)0x005182C9;
size_t targetabeObjectArrayLen = 0xC;
}Global;
struct _CGP_MainGame
{
typedef void* (__thiscall* _SelectTarget)(void* ecx, void* target, int zero);
_SelectTarget SelectTarget = (_SelectTarget)(0x005234E0);
void** pThis = (void**)0x23D6B50;
}CGP_MainGame;
void select_target(int index, int *innerIndex, _In_ int vKey) {
if (GetAsyncKeyState(vKey) & 0x8000) {
DWORD* targetableObjectsPtr = (DWORD*)*Global.obtainTargetableObjectsAddress;
void*** ptrToFirstTargetableObjectPtr = (void***)(*targetableObjectsPtr + 0xC + 4);
void*** ptrToLastTargetableObjectPtr = (void***)(*targetableObjectsPtr + 0xC + 8);
void*** ptrToFirstObjectPtr = (void***)((char*)ptrToFirstTargetableObjectPtr + (index << 4));
void*** ptrToLastObjectPtr = (void***)((char*)ptrToLastTargetableObjectPtr + (index << 4));
void** firstObjectPtr = *ptrToFirstObjectPtr;
void** lastObjectPtr = *ptrToLastObjectPtr;
void** currentObjectPtr = (void**)((char*)firstObjectPtr + (*innerIndex * 4));
// If outside the range, reset the index to 0
if (currentObjectPtr < firstObjectPtr || currentObjectPtr >= lastObjectPtr) {
*innerIndex = 0;
currentObjectPtr = (void**)((char*)firstObjectPtr + (*innerIndex * 4));
}
if (currentObjectPtr >= lastObjectPtr) { // If it's still the end then the array is empty
Sleep(500);
return;
}
CGP_MainGame.SelectTarget(*CGP_MainGame.pThis, *currentObjectPtr, 0);
*innerIndex = *innerIndex + 1;
Sleep(500);
}
}
void injected_thread() {
int index1 = 0;
int index2 = 0;
int index3 = 0;
int index4 = 0;
int index5 = 0;
int index6 = 0;
int index7 = 0;
int index8 = 0;
int index9 = 0;
int index10 = 0;
int index11 = 0;
int index12 = 0;
while (true) {
select_target(0, &index1, '1'); // Other characters
select_target(1, &index2, '2'); // Mobs
select_target(2, &index3, '3'); // NPCs
select_target(3, &index4, '4');
select_target(4, &index5, '5');
select_target(5, &index6, '6');
select_target(6, &index7, '7');
select_target(7, &index8, '8');
select_target(8, &index9, '9');
select_target(9, &index10, '0');
select_target(10, &index11, '-');
select_target(11, &index12, '=');
Sleep(10);
}
}
BOOL WINAPI DllMain([[maybe_unused]] HINSTANCE hinstDLL, DWORD fdwReason, [[maybe_unused]] LPVOID lpvReserved) {
if (fdwReason == DLL_PROCESS_ATTACH) {
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)injected_thread, NULL, 0, NULL);
}
return TRUE;
}
В итоге на пвпваре будет работать, но будет дисконнектить после нескольких выборов цели. На цербе такой проблемы нет.
Добавлено через 2 часа 13 минут
Цитата:
В итоге на пвпваре будет работать, но будет дисконнектить после нескольких выборов цели.
Дополню про пвпвар: это относится к любым функциям, не только к выбору таргета. Если вызывать их из DLL, клиент через какое-то время отключается. При этом хукаться к функциям можно без проблем. Логгер пакетов, например, работает.
Последний раз редактировалось Diantro; 21.11.2024 в 20:38.
Причина: Добавлено сообщение
Ну, должен же хотя бы 1 сервер пиратский - пытаться "защитить себя."
---
Почти уже 2 года назад, был зимний старт их сервера Refresh
И вот тогда портал смог нас с другом удивить.
Нет, не новыми фичами и интересными ивентами.Увы.
А тем,что местный "главный" администратор ЛИЧНО бегал по игровому миру
И по средством "Ку-ку" в игровом чате - отлавливал Ботов.
2 года назад популярностью пользовался немного другой Бот
Не тот который AFI тут активно рекламирует
Но принцип детекта автономных действий игрока - никогда и не был связан с особенностями работы софта который выбирает цели для игрока.
PS:
Вообще, касательно проектов pvpwar/cerberus
Когда вар переходил на 2232 - вроде ещё происходило сотрудничество или использование защиты от Виктора или каких-либо файлов.
Так же, всем известный исторический факт - pvpwar,перевёл свои сервера на 2232
САМЫМ последним из всех кто когда-либо открывал проекты на базе этого апдейта.
Как объяснял это сам Антон - требовалось время, на перенос и адаптацию всех тех "достижений" что проект вобрал в себя за время функционирования на 223 BSB
Большая часть этих "наработок" видимо как раз касалось защиты или же стабильности клиента/сервера. Опять же, из исторических фактов
Проектам портала pvpwar - повезло(с)
С годами они стали единственными серверами - где происходили удачные или неудачные попытки совершения "неигровых нарушений" какие только можно себе представить или какие вообще существовали применительно к RF Online как игре
Ни один другой сервер или портал - так не проверяли на прочность или не исследовали с целью нагнуть/получить выгоду$
Хотя надо признать - встречались и Робин Гуды; которые находили уязвимости и сами сливали их администрации. Получая за это - школьную грамоту и признание от Антона. Иногда джейды или какую-то ещё рисовку.
Последний раз редактировалось Diantro; 12.01.2025 в 17:22.
Причина: Добавил оффтоп
Fun fact: там, где на Цербе идут обращения к 233B5F0, на PvPWaRe всегда используются разные адреса, а не один и тот же.
Человек еще написал в ЛС, что у него на клиенте для локального сервера адрес тоже другой.
Для универсальности слегка доработал DLL — теперь базовый адрес берётся из аргумента команды, указанной на скриншоте (то есть из адреса 0x005182C7 + 2 = 0x005182C9). C++ код
Код:
#include <Windows.h>
struct _Global {
DWORD* obtainTargetableObjectsAddress = (DWORD*)0x005182C9;
size_t targetabeObjectArrayLen = 0xC;
}Global;
struct _CGP_MainGame
{
typedef void* (__thiscall* _SelectTarget)(void* ecx, void* target, int zero);
_SelectTarget SelectTarget = (_SelectTarget)(0x005234E0);
void** pThis = (void**)0x23D6B50;
}CGP_MainGame;
void select_target(int index, int *innerIndex, _In_ int vKey) {
if (GetAsyncKeyState(vKey) & 0x8000) {
DWORD* targetableObjectsPtr = (DWORD*)*Global.obtainTargetableObjectsAddress;
void*** ptrToFirstTargetableObjectPtr = (void***)(*targetableObjectsPtr + 0xC + 4);
void*** ptrToLastTargetableObjectPtr = (void***)(*targetableObjectsPtr + 0xC + 8);
void*** ptrToFirstObjectPtr = (void***)((char*)ptrToFirstTargetableObjectPtr + (index << 4));
void*** ptrToLastObjectPtr = (void***)((char*)ptrToLastTargetableObjectPtr + (index << 4));
void** firstObjectPtr = *ptrToFirstObjectPtr;
void** lastObjectPtr = *ptrToLastObjectPtr;
void** currentObjectPtr = (void**)((char*)firstObjectPtr + (*innerIndex * 4));
// If outside the range, reset the index to 0
if (currentObjectPtr < firstObjectPtr || currentObjectPtr >= lastObjectPtr) {
*innerIndex = 0;
currentObjectPtr = (void**)((char*)firstObjectPtr + (*innerIndex * 4));
}
if (currentObjectPtr >= lastObjectPtr) { // If it's still the end then the array is empty
Sleep(500);
return;
}
CGP_MainGame.SelectTarget(*CGP_MainGame.pThis, *currentObjectPtr, 0);
*innerIndex = *innerIndex + 1;
Sleep(500);
}
}
void injected_thread() {
int index1 = 0;
int index2 = 0;
int index3 = 0;
int index4 = 0;
int index5 = 0;
int index6 = 0;
int index7 = 0;
int index8 = 0;
int index9 = 0;
int index10 = 0;
int index11 = 0;
int index12 = 0;
while (true) {
select_target(0, &index1, '1'); // Other characters
select_target(1, &index2, '2'); // Mobs
select_target(2, &index3, '3'); // NPCs
select_target(3, &index4, '4');
select_target(4, &index5, '5');
select_target(5, &index6, '6');
select_target(6, &index7, '7');
select_target(7, &index8, '8');
select_target(8, &index9, '9');
select_target(9, &index10, '0');
select_target(10, &index11, '-');
select_target(11, &index12, '=');
Sleep(10);
}
}
BOOL WINAPI DllMain([[maybe_unused]] HINSTANCE hinstDLL, DWORD fdwReason, [[maybe_unused]] LPVOID lpvReserved) {
if (fdwReason == DLL_PROCESS_ATTACH) {
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)injected_thread, NULL, 0, NULL);
}
return TRUE;
}
В итоге на пвпваре будет работать, но будет дисконнектить после нескольких выборов цели. На цербе такой проблемы нет.
Добавлено через 2 часа 13 минут
Дополню про пвпвар: это относится к любым функциям, не только к выбору таргета. Если вызывать их из DLL, клиент через какое-то время отключается. При этом хукаться к функциям можно без проблем. Логгер пакетов, например, работает.
Я же тебе объяснил еще вроде в предыдущей теме когда дёргаешь клиенские функии важно чтобы вызов происходил синхронно с основным потоком игры..