|
Окрытие ХХ - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
21.08.2011, 22:48
|
#1
|
|
|
|
Разведчик
|
Регистрация: 12.11.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Окрытие ХХ
Всем доброго времени суток, когда берешь квест на обычной локации (на тарелке или яшму), то берешь NPS в таргет открываешь диалог и берешь квест, id nps и id квеста не изменяются
selectTarget
Код:
Func selectTarget($targetId, $pid)
;//Select the NPC/Mob/Player denoted by targetId
local $packet, $packetSize
$packet = '0200'
$packet &= _hex($targetId)
$packetSize = 6
sendPacket($packet, $packetSize, $pid)
EndFunc
startNpcDialogue
Код:
Func startNpcDialogue($npcId, $pid)
;//Opens up an NPC's main menu. Is necessary before
;//accepting/handing in quests, buy/sell/repair
local $packet, $packetSize
$packet = '2300'
$packet &= _hex($npcId)
$packetSize = 6
sendPacket($packet, $packetSize, $pid)
EndFunc
acceptQuest
Код:
Func acceptQuest($questId, $pid)
;//Accept a new quest
local $packet, $packetSize
$packet = '2500'
$packet &= '07000000'
$packet &= '04000000'
$packet &= _hex($questId)
$packetSize = 14
sendPacket($packet, $packetSize, $pid)
EndFunc
но если открывать хх (при входе 3 столба) то в зависимости от того в какую локу попадешь изменяется id nps (столба)
PW_PacketListener
Код:
02 00 28 67 70 84 (Выделить моба/НПС/Игрока.)
23 00 28 67 70 84 (Неизвестный пакет)
25 00 07 00 00 00 04 00 00 00 49 23 00 00 (Неизвестный пакет) квест
31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
08 00 (Сбросить таргет.)
02 00 AC 5F 70 84 (Выделить моба/НПС/Игрока.)
23 00 AC 5F 70 84 (Неизвестный пакет)
25 00 07 00 00 00 04 00 00 00 49 23 00 00 (Неизвестный пакет) квест
31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
08 00 (Сбросить таргет.)
подскажите в какую сторону копать
ps кто знает что за пакет 31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
|
|
|
21.08.2011, 23:52
|
#2
|
|
|
|
Разведчик
|
Регистрация: 03.03.2011
Сообщений: 19
Популярность: 36
Сказал(а) спасибо: 17
Поблагодарили 12 раз(а) в 4 сообщениях
|
Re: Окрытие ХХ
|
Цитата: |
|
|
|
|
|
|
|
|
|
Всем доброго времени суток, когда берешь квест на обычной локации (на тарелке или яшму), то берешь NPS в таргет открываешь диалог и берешь квест, id nps и id квеста не изменяются
selectTarget
Код:
Func selectTarget($targetId, $pid)
;//Select the NPC/Mob/Player denoted by targetId
local $packet, $packetSize
$packet = '0200'
$packet &= _hex($targetId)
$packetSize = 6
sendPacket($packet, $packetSize, $pid)
EndFunc
startNpcDialogue
Код:
Func startNpcDialogue($npcId, $pid)
;//Opens up an NPC's main menu. Is necessary before
;//accepting/handing in quests, buy/sell/repair
local $packet, $packetSize
$packet = '2300'
$packet &= _hex($npcId)
$packetSize = 6
sendPacket($packet, $packetSize, $pid)
EndFunc
acceptQuest
Код:
Func acceptQuest($questId, $pid)
;//Accept a new quest
local $packet, $packetSize
$packet = '2500'
$packet &= '07000000'
$packet &= '04000000'
$packet &= _hex($questId)
$packetSize = 14
sendPacket($packet, $packetSize, $pid)
EndFunc
но если открывать хх (при входе 3 столба) то в зависимости от того в какую локу попадешь изменяется id nps (столба)
PW_PacketListener
Код:
02 00 28 67 70 84 (Выделить моба/НПС/Игрока.)
23 00 28 67 70 84 (Неизвестный пакет)
25 00 07 00 00 00 04 00 00 00 49 23 00 00 (Неизвестный пакет) квест
31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
08 00 (Сбросить таргет.)
02 00 AC 5F 70 84 (Выделить моба/НПС/Игрока.)
23 00 AC 5F 70 84 (Неизвестный пакет)
25 00 07 00 00 00 04 00 00 00 49 23 00 00 (Неизвестный пакет) квест
31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
08 00 (Сбросить таргет.)
подскажите в какую сторону копать
ps кто знает что за пакет 31 00 03 00 00 00 01 49 23 (Неизвестный пакет)
|
|
|
|
|
|
И что собственно? Нормальный НПС меняется на текстуру, ничего нового.
Врядли где найдет применение, кроме визуальных багов.
|
|
|
22.08.2011, 05:34
|
#3
|
|
|
|
Разведчик
|
Регистрация: 12.11.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Окрытие ХХ
|
Цитата: |
|
|
|
|
|
|
|
|
|
И что собственно? Нормальный НПС меняется на текстуру, ничего нового.
Врядли где найдет применение, кроме визуальных багов.
|
|
|
|
|
|
Не совсем понял, если поменять текстуру id от этого не изменится, а визуально менять зачем?
Я может неточно выразился в первом посте, я хочу ботом открывать столб расположенный внутри хх (один из 3 при вхоже), причем без эмуляции нажатия мышкой чтобы бот работал и с неактивным окном то же. Чтобы открыть нужно взять квест, например что бы открыть 2 хх id квеста 00 00 23 49, но перед тем как взять квест надо столб взять в таргет и начать диалог, но каждый раз при открытии id столба меняется, отсюда вопрос как открыть хх если id столба каждый раз разное
|
|
|
22.08.2011, 09:45
|
#4
|
|
|
|
Разведчик
|
Регистрация: 05.03.2011
Сообщений: 40
Популярность: 841
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Окрытие ХХ
Тупишь.
________________
Dinmaite пишет с меня, когда он на работе.
|
|
|
22.08.2011, 17:40
|
#5
|
|
|
|
Сержант
|
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
|
Re: Окрытие ХХ
izgnannic, определяй нужного нипа по координатам =)
|
|
|
08.09.2011, 13:02
|
#6
|
|
|
|
Разведчик
|
Регистрация: 07.12.2009
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Окрытие ХХ
столбы это нипы, их можно просто найти, подойти поговорить и взять квест !))
|
|
|
14.09.2011, 12:52
|
#7
|
|
|
|
Разведчик
|
Регистрация: 01.07.2009
Сообщений: 21
Популярность: 83
Сказал(а) спасибо: 30
Поблагодарили 14 раз(а) в 11 сообщениях
|
Re: Окрытие ХХ
Код тупорыленький, но рабочий.
Принцип:
- Посмотреть NPC вокруг
- Найти с нужным ID и взять его WID
- По его WID послать пакет и т.д. Дальше придумаете....
procedure GetMobList(npcID:integer); //Передаем ID NPC (не меняется)
var
d1,d2: dword;
N,Key,List: dword;
i: integer;
HexId, HexWid:string;
val:integer;
s: array [0..100] of char;
begin
//Получаем хэш ключ и начало списков
Key:= getDWORD(game_add);
Key:= getDWORD(Key+$8);
Key:= getDWORD(Key+$24);
List:= getDWORD(Key+$18);
Key:= getDWORD(Key+$24);
i:=0;
for n:=0 to Key-1 do
begin
d1:= getDWORD(List+$4*N);
while d1<>0 do
begin
d2:= getDWORD(d1+$4);
//Читаем и выводим имя
// if getDWORD(d2+$B4)=6 then
//begin
// aMob[i].Name:=getWideString(hProcess, getDWORD(d2+$254));
val:=getDWORD(d2+$11C);
HexWid:=Format('%x',[val]);
s[0]:=HexWid[7]; //Если подскажете, как "нормально" переворачивать
s[1]:=HexWid[8]; //(инвертировать) HEX буду благодарен
s[2]:=HexWid[5]; // (так тоже работает)
s[3]:=HexWid[6];
s[4]:=HexWid[3];
s[5]:=HexWid[4];
s[6]:=HexWid[1];
s[7]:=HexWid[2];
{ npcID:=getDWORD(d2+$120);
form1.Memo1.Lines.Add(getWideString(hProcess, getDWORD(d2+$254))+'::'+
inttostr(getDWORD(d2+$120))+'::'+
s+'::'); }
if npcID=getDWORD(d2+$120) then //Здесь сравниваешь найденый ID
begin //с заданным
Packet('0200'+s);//Выделяем столб
Sleep(200);
Packet('2300'+s);//Открываем диалог
Sleep(200);
end;
// aMob[i].WID:=getDWORD(d2+$11C);
// aMob[i].ID:=getDWORD(d2+$120);
// aMob[i].Distance:=getSINGLE(d2+$278);
inc(i);
// end;
d1:= getDWORD(d1);
end;
end;
end;
|
|
|
14.09.2011, 20:17
|
#8
|
|
|
|
Сержант
|
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
|
Re: Окрытие ХХ
немножко не в тему, а id квестов где можно раздобыть?
|
|
|
14.09.2011, 20:21
|
#9
|
|
|
|
Главнокомандующий
|
Регистрация: 11.04.2010
Сообщений: 1,314
Популярность: 100919
Золото Zhyk.Ru: 7
Сказал(а) спасибо: 249
Поблагодарили 1,066 раз(а) в 767 сообщениях
|
Re: Окрытие ХХ
gurin, в базе. Последнее число в ссылке на страницу с квестом - это его id.
|
|
|
14.09.2011, 21:49
|
#10
|
|
|
|
Пехотинец
|
Регистрация: 16.01.2010
Сообщений: 97
Популярность: 483
Сказал(а) спасибо: 83
Поблагодарили 93 раз(а) в 68 сообщениях
|
Re: Окрытие ХХ
|
|
|
18.09.2011, 10:01
|
#11
|
|
|
|
Разведчик
|
Регистрация: 23.05.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Окрытие ХХ
Можно небольшой вопросик, он применим и для этой темы поэтому не стал создавать новую.
Пишу программу на Delphi смысл ее таков: перс подходит к нипу --> открывает диалог --> заходит во вкладку "Задания" --> выбирает некий квест.
подойти к нипу открыть диалог это я смог а вот далше остановившись на вкладке "задания" не знаю как ее пройти и выбрать квест если кто знает инжект или чать даже хаотичного кода на Delphi на эту тему буду благодарен
В моей голове крутится мысль о том что достаточно просто открыть диалог и отправить инжект с Id задания не можу найти этот убогий инжект трудновато дается мне это дело (((
Последний раз редактировалось jekans; 18.09.2011 в 10:07.
|
|
|
18.09.2011, 11:03
|
#12
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Окрытие ХХ
Подойти, открыть, послать пакет (функцией инжекта пакетов) с ID щадания.
Прфит.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
18.09.2011, 18:45
|
#13
|
|
|
|
Разведчик
|
Регистрация: 09.09.2010
Сообщений: 32
Популярность: 82
Сказал(а) спасибо: 16
Поблагодарили 37 раз(а) в 12 сообщениях
|
Re: Окрытие ХХ
если что, пакет - 25000700000004000000 + id квеста(2 байта) + 0000
|
|
|
18.09.2011, 20:22
|
#14
|
|
|
|
Разведчик
|
Регистрация: 23.05.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Окрытие ХХ
Получилось! СПАСИБО! жалко тыкнуть не можу хоть напишу
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 16:21.
|
|