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

Помогите плиз взять квест)

-

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

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

Ответ
 
Опции темы
Старый 07.05.2014, 04:01   #1
 Разведчик
Аватар для VitMitS
 
VitMitS никому не известный тип
Регистрация: 13.04.2011
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Помогите плиз взять квест)

Пишу VB.NET
Есть несколько примеров из чужего исходника, к примеру: Взятие кв у Ли Мэнбай

SendPacket(2, 0, &H1B, &H49, &H10, &H80)
SendPacket(&H23, 0, &H1B, &H49, &H10, &H80)
SendPacket(&H25, 0, 7, 0, 0, 0, 12, 0, 0, 0, &HCD, &H20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)


3,4 байты(первые 2 пакета) я так понимаю имеют отношения к самому нипу, сделал такой вывод сравнив пакеты Ли Мэнбай (у него 7 квестов, 1 стартующий и 6 принимает) отличия только в последней строчке 11 и 12 байты.
Сравнивая с другими нипами пришел к выводу что 3,4(первые 2 пакета) это нип. 11,12(третий пакет) это квест.
Ну вот теперь не могу сопоставить с базой PW.
То есть нип Ли Мэнбай имеет код 14090 (&H370A) тут как не тыкай непонимаю.
Квест вроде подходит - "Дом за скрепку" - 8397(&H20CD)

Что нужно, может уже кто делал, В морае взять часовой квест и любые 2 из списка возможных(суточных, знаю наглею но желательно на раскопку)
Если я правильно понимаю у нипа надо с начало прочесть список имеющихся и по ID выбрать.
Также соответственно их сдать(после завершения),
Еще может кто научит как прочесть число мобов(набитых\необходимых)
умею читать ID квестов, вот наверняка где то рядом (просто не хочется губить квесты на поиски, репу фармлю)


Dim Quest As List(Of Integer) = New List(Of Integer)
WinAPI.ReadProcessMemory(ptr, (AdrPERSSTRUCT + Offsets.PERS.Quest.Array), Buffer, 4, Num)
WinAPI.ReadProcessMemory(ptr, (BitConverter.ToInt32(Buffer, 0) + Offsets.PERS.Quest.Pointer), Buffer, 4, Num)
Dim QuestPointer As Integer = BitConverter.ToInt32(Buffer, 0)
For i = 0 To 70 - 1
' Вот тут офсетик может кто подскажит сколько мобов еще нуно?
WinAPI.ReadProcessMemory(ptr, (QuestPointer + ((i * 32) + Offsets.PERS.Quest.ID)), Buffer, 2, Num)
Dim ID As Integer = BitConverter.ToUInt16(Buffer, 0)
If ID <> 0 Then
Quest.Add(ID)
End If
Next i
ReDim Pers.Quest(Quest.Count - 1)
Quest.CopyTo(Pers.Quest)

Добавлено через 16 минут
Стоп меня тут осенило) в первых двух пакетах WID нипа 8010491B, у меня уже мозги плавятся,
тогда 2 вопроса,

как прочитать список доступных квестов? (я так понимаю 2 варианта этих списков, обычные и типо таких как по доске или морае суточные)

Как прочесть в квестах сколько времени осталось и сколько требуется\убито мобов.

Последний раз редактировалось VitMitS; 07.05.2014 в 04:18. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 16.05.2014, 02:46   #2
 Разведчик
Аватар для zasranecqwe1111
 
zasranecqwe1111 никому не известный тип
Регистрация: 13.08.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 6
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Помогите плиз взять квест)

Про квесты очень мало информации на форуме, пытаюсь научится читать хотя бы доступные/текущие без результатно
  Ответить с цитированием
Старый 23.05.2014, 23:17   #3
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Помогите плиз взять квест)

Цитата:
Про квесты очень мало информации на форуме, пытаюсь научится читать хотя бы доступные/текущие без результатно

могу посоветовать читать через GUI обращаясь к контролу с квестами и занося весь массив строк, а затем видоизменять.




Цитата:
просто не хочется губить квесты на поиски

обычно все работают на фришках там все куда проще и доступней, а на офф просто подставляют оффсеты


Цитата:
Как прочесть в квестах сколько времени осталось и сколько требуется\убито мобов.

на каждый квест своя ячейка памяти, где хранится вся информация о квесте, и путем перечисления уже вытаскивать нужное
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 25.05.2014, 02:10   #4
 Разведчик
Аватар для zasranecqwe1111
 
zasranecqwe1111 никому не известный тип
Регистрация: 13.08.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 6
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Помогите плиз взять квест)

GUI Как то не пошел, то ли офсеты неверные, то ли использовал их неправильно, и информации про это меньше всего на форуме
  Ответить с цитированием
Старый 13.06.2014, 12:24   #5
 Разведчик
Аватар для VitMitS
 
VitMitS никому не известный тип
Регистрация: 13.04.2011
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Помогите плиз взять квест)

Цитата:
Сообщение от GinreyПосмотреть сообщение
на каждый квест своя ячейка памяти, где хранится вся информация о квесте, и путем перечисления уже вытаскивать нужное

Я так понимаю там не ячейка а целая структура, я знаю как вытянуть список ID квестов взятых.
Код:
Dim Quest As List(Of Integer) = New List(Of Integer)
WinAPI.ReadProcessMemory(ptr, (AdrPERSSTRUCT + Offsets.PERS.Quest.Array), Buffer, 4, Num)
WinAPI.ReadProcessMemory(ptr, (BitConverter.ToInt32(Buffer, 0) + Offsets.PERS.Quest.Pointer), Buffer, 4, Num)
Dim QuestPointer As Integer = BitConverter.ToInt32(Buffer, 0)
For i = 0 To 70 - 1
   WinAPI.ReadProcessMemory(ptr, (QuestPointer + ((i * 32) + Offsets.PERS.Quest.ID)), Buffer, 2, Num)
   Dim ID As Integer = BitConverter.ToUInt16(Buffer, 0)
   If ID <> 0 Then ' Сдесь если квест не 0, значит сохраняем его
      Quest.Add(ID)
   End If
   If ID = 2312 Then ' Сдесь я выводил в отладчик 32 байта и изучал их
' Ну по той логике что ID читаются с шагом 32 байта
' Однако таймера и количество мобов я тут не нашел. 
   Dim temp(31) As Byte
     WinAPI.ReadProcessMemory(ptr, (QuestPointer + ((i * 32))), temp, 32, Num)
     Dim st As Integer = 0
   End If
Next i
Подозреваю что на нужные мне значения таймера и кол.мобов в этой структуре их нет, но возможно есть ссылки.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взять и сдать квест... Разные ли пакеты? Жека19 Общение разработчиков 4 29.08.2012 15:23
помогите с рангом немогу взять.... artem_1025 Общение и обсуждение Aion 5 15.09.2011 23:16
[Помогите!] Де патч для РУ оффа взять? плиз хелп ми RFmaster Общение и обсуждение Aion 1 15.03.2010 07:59
[Помогите!] Не могу взять квест на Gold Barы KyM Общение и обсуждение, архив Lineage 2 6 14.03.2010 22:37

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

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

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