Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Движение за выбранным персонажем

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 09.05.2012, 22:21   #1
Заблокирован
 Пехотинец
Аватар для Spyware
 
Spyware скоро будет известенSpyware скоро будет известенSpyware скоро будет известенSpyware скоро будет известенSpyware скоро будет известен
Регистрация: 06.03.2012
Сообщений: 80
Популярность: 413
Сказал(а) спасибо: 15
Поблагодарили 73 раз(а) в 15 сообщениях
Отправить сообщение для Spyware с помощью ICQ
 
По умолчанию Движение за выбранным персонажем

Есть чар в таргете, мы должы следоваьт за ним(всегда).
Как такое реализовать?(C#)
Хоть намек
  Ответить с цитированием
Старый 09.05.2012, 22:48   #2
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: Движение за выбранным персонажем

Берешь исходники FlyWQ и смотришь как там сделано движение по точкам.
Потом переписываешь всё на шарп.
Мои боты в иксах исправно ходили на мной. Могу кинуть код, но он под 1.4.4, я оффсеты еще не правил.

Ну а координаты цели узнаем по оффсетам.
  Ответить с цитированием
Старый 09.05.2012, 23:07   #3
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: Движение за выбранным персонажем

Цитата:
Сообщение от TBX1nПосмотреть сообщение
Структура / Список игроков рядом:
GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])

GA +8 +20 +14: - Players count
+3C PlayerLocX (float)
+40 PlayerLocZ (float)
+44 PlayerLocY (float)

+35C + [I*2] PlayerBuffs (I in [0..N]) (1b)
+360 PlayerBuffs Number
+458 PlayerId
+464 PlayerLvl
+46C PlayerHP
+470 PlayerMP
+4A4 PlayerMaxHP
+4A8 PlayerMaxMP
+5D4 PlayerClanID
+608 +0 PlayerName (UText / Unicode String)
+610 PlayerClassID
+614 PlayerGender
+61C PlayerWalkMode
+620 RunMode (1b) (0 - Walk; 1 - Run)
+6С8 PlayerMTargetID

адреса старые

1. ищем имя перса или ID
2. узнаем координаты перса
3. используем координаты для инжекта Walk инжект переделать под (C#)!!!)
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
  Ответить с цитированием
Пользователь сказал cпасибо:
Spyware (09.05.2012)
Старый 10.05.2012, 02:26   #4
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Движение за выбранным персонажем

У меня вот так. Только тут адрес под 1.4.4.

Код:
void CHostPlayer::MoveToTarget(DWORD WorldId)
{
	DWORD Function = 0x42EEE0;
	__asm	{
		mov ecx,dword ptr [BA]
		push 0
		push WorldId
		mov ecx,dword ptr [ecx+0x1C]
		mov ecx,dword ptr [ecx+0x1C]
		call Function
	}
}
Бег к NPC. Честно говоря, не тестировал на игроках, но я уверен, что прокатит.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 20.05.2012, 15:16   #5
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Движение за выбранным персонажем

Код:
procedure Walk(x,y,z:single);
var aParams: TParams;
begin
ReadProcessMemory(aHandle,ptr(BaseWalkMode),@WalkMode,1,readwrite); //BaseWalkMode = GA +20 +61C
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.Param3:=x;
aParams.Param4:=y;
aParams.Param5:=z;
InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
end;
почему в readwrite показывает ошибку? как его обозначить?

и BaseWalkMode = GA +20 +61C я правильно записал?
Код:
var
WalkMode1,WalkMode2,WalkMode3: dword;
...
ReadProcessMemory(KlientWindow,Pointer($A571E0),@WalkMode1,1,readwrite);
ReadProcessMemory(KlientWindow,Pointer(BUM+$20),@WalkMode2,1,readwrite);
ReadProcessMemory(KlientWindow,Pointer(BUM+$61c),@WalkMod3,1,readwrite);
и когда создаю такую процедуру,показывается ошибка в конце PParams
Код:
 procedure WalkCall(aPParams:PParams);Stdcall;

Последний раз редактировалось Meg(0); 20.05.2012 в 15:49.
  Ответить с цитированием
Старый 24.05.2012, 05:25   #6
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 21
Популярность: 83
Сказал(а) спасибо: 30
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: Движение за выбранным персонажем

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
Код:
procedure Walk(x,y,z:single);
var aParams: TParams;
begin
ReadProcessMemory(aHandle,ptr(BaseWalkMode),@WalkMode,1,readwrite); //BaseWalkMode = GA +20 +61C
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.Param3:=x;
aParams.Param4:=y;
aParams.Param5:=z;
InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
end;
почему в readwrite показывает ошибку? как его обозначить?

и BaseWalkMode = GA +20 +61C я правильно записал?
Код:
var
WalkMode1,WalkMode2,WalkMode3: dword;
...
ReadProcessMemory(KlientWindow,Pointer($A571E0),@WalkMode1,1,readwrite);
ReadProcessMemory(KlientWindow,Pointer(BUM+$20),@WalkMode2,1,readwrite);
ReadProcessMemory(KlientWindow,Pointer(BUM+$61c),@WalkMod3,1,readwrite);
и когда создаю такую процедуру,показывается ошибка в конце PParams
Код:
 procedure WalkCall(aPParams:PParams);Stdcall;

readwrite -обычный dword;
ReadProcessMemory(KlientWindow,Pointer(BUM+$20),@WalkMode2,1,readwrite);
- тут не $20 а $34 - начало структуры персонажа
-вместо 1 поставил бы - SizeOf(WalkMode2)

PParams - типы для инжекта

нуно добить это:
TYPE
PParams = ^TParams; //типы инжектов
TParams = packed record
Param4,Param5,Param6:Single;
end;


Вот рабочий Walk с исправленными адрессами

Последний раз редактировалось krysun; 24.05.2012 в 13:29.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Движение эллипса Fantom_3 Вопросы и ответы, обсуждения 0 18.04.2012 23:51
[Статья] Вылет с крашем при попытке входа персонажем High007 Общение и обсуждение Perfect World 2 01.02.2011 14:28
[Куплю] Аккаунт с персонажем Vasia 111 Point Blank 2 09.10.2010 19:11
[Руководство] Настройка интефейса и управление персонажем #r00t Статьи и руководства по Aion 0 23.11.2009 12:44

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 03:41.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net