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

оффсеты и autoit

-

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

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

Ответ
 
Опции темы
Старый 16.04.2011, 20:00   #1
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Question оффсеты и autoit

собственно решил разобраться в данном вопросе, с самого начала возникла загвоздка, не могу получить хп персонажа (да пофигу что, видимо ошибка в алгоритме его получения)
код
Код:
$memory = _MemoryOpen (ProcessExists("elementclient.exe"))
$base = 0xA5BFCC
$result = _MemoryRead ($base, $memory)
MsgBox (0, "!", "base:"&$result)
$gm = $result+0x1C
$result = _MemoryRead ($gm, $memory)
MsgBox (0, "!", "gm:"& $result)
$gm = $result+0x20
$result = _MemoryRead ($gm, $memory)
MsgBox (0, "!", "gm:"& $result)
$hp = $result+0x4b4
$result = _MemoryRead ($hp, $memory)
MsgBox (0, "!", "hp:"& $result)
для удобства сделал вывод после каждого чтения, результата чтения.
сразу после исполнения
Код:
$gm = $result+0x20
$result = _MemoryRead ($gm, $memory)
MsgBox (0, "!", "gm:"& $result)
начинают выводится только ноли. ba новый, как получить GA и т.д. вычитал тут, офф сет самого хп, тоже новый, скажите в чем косяк

пы.сы. мучаю клиент ру офф

Последний раз редактировалось misterzym; 16.04.2011 в 20:02.
  Ответить с цитированием
Старый 16.04.2011, 23:46   #2
 Пехотинец
Аватар для pwgamer
 
pwgamer никому не известный тип
Регистрация: 11.11.2010
Сообщений: 67
Популярность: 16
Сказал(а) спасибо: 58
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: оффсеты и autoit

realBaseAddress=0xA5B90C
  Ответить с цитированием
Старый 17.04.2011, 00:42   #3
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

да, еще тупее сделать ошибку было невозможно...)
спасибо большое
  Ответить с цитированием
Старый 17.04.2011, 13:46   #4
Заблокирован
 Разведчик
Аватар для Segacom12
 
Segacom12 никому не известный тип
Регистрация: 05.03.2011
Сообщений: 20
Популярность: 10
Сказал(а) спасибо: 20
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

не понял нечего или непашет
  Ответить с цитированием
Старый 17.04.2011, 14:09   #5
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

еще вопрос такой на счет [I*4]
что это? я прочитал тему, понял что это итератор, погуглив прочитал о нем, но так и не до конца понял как найти переменную I

Последний раз редактировалось misterzym; 17.04.2011 в 14:37.
  Ответить с цитированием
Старый 17.04.2011, 17:21   #6
 Разведчик
Аватар для Dinmaite[Work]
 
Dinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небе
Регистрация: 05.03.2011
Сообщений: 40
Популярность: 841
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: оффсеты и autoit

Это не итератор, а счетчик цикла.
________________
Dinmaite пишет с меня, когда он на работе.
  Ответить с цитированием
Старый 17.04.2011, 19:50   #7
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

спасибо, теперь все встает на свои места
  Ответить с цитированием
Старый 27.04.2011, 21:30   #8
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

пошел дальше в написание своего творения, и вот новая проблема, копаю уже долго но не вижу причины такого поведения проги
суть - это урезанная, тестовая часть проги, отвечает за составление таблицы персонажей находящихся вокруг тебя, в таблицы столбцы №строки, ник, лвл, клан. вместо этого получаю таблицу из нулей (ну кроме номера строки, кол-во персонажей рядом с тобой определяется идеально)
Код:
#include <nomadmemory.au3>
#include <memory.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
$base=0xA5B90C ;базовый адрес
Global $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)
Global $ga ; GA
Global $pipl ; сколько игроков вокруг тебя

$memory = _MemoryOpen (ProcessExists("elementclient.exe")) ;определяем откуда читать

$FORM_MAIN = GUICreate('Человеки вокруг', 300, 800)
WinSetOnTop ( 'Человеки вокруг', "text", 1 )
$btn=GUICtrlCreateButton ("Refresh", 250, 40, 50) ;Добавляем кнопку обновления
$listview = GUICtrlGetHandle(GUICtrlCreateListView("", 1, 10, 250, 780, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles);Применяем стиль
_GUICtrlListView_AddColumn($listview, "№", 20);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "Nic", 75);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "lvl", 70);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "clan", 70);Добавляем столбец
GUISetState(@SW_SHOW, $FORM_MAIN)
Example1()
Func Example1()
Tablica1()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE ;если закрыть окно
ExitLoop
Case $btn ;нажата кнопка обновления
Tablica1()
EndSwitch
WEnd
GUIDelete()
EndFunc

Func Tablica1();список игроков
_GUICtrlListView_DeleteAllItems($listview); чистим список, если он не пуст
pipl() ;перепроверяем сколько людей на локе
$result = _MemoryRead ($ga, $memory)
$list = $result+0x8
$result = _MemoryRead ($list, $memory)
$list = $result+0x20
$result = _MemoryRead ($list, $memory)
$list = $result+0x18
$result = _MemoryRead ($list, $memory)
For $i=0 To $pipl
If $i<=$pipl Then
	_GUICtrlListView_AddItem($listview, $i, $i) ;записываем значение  I в 1 столбец
$is=$i*4 ;вычисляем долбаную [I*4]
$list = $result+$is
$result = _MemoryRead ($list, $memory)
$list = $result+0x4   
$result = _MemoryRead ($list, $memory)
If $i>=1 Then ; тут пытался сделать листание списка по (+0)^J 
$result=$result+0x4
EndIf
; собственно поехали выводить
$zz = $result+0x608
$zz= _MemoryRead ($zz, $memory)
_GUICtrlListView_AddSubItem($listview, $i, $zz, 1, $i+1) ;nic
$zz = $result+0x464
$zz= _MemoryRead ($zz, $memory)
_GUICtrlListView_AddSubItem($listview, $i, $zz, 2, $i+1); Lvl
$zz = $result+0x5D4
$zz= _MemoryRead ($zz, $memory)
_GUICtrlListView_AddSubItem($listview, $i, $zz, 3, $i+1); Clan
EndIf
Next
EndFunc

Func pipl() ;читаем сколько людей рядом
$result = _MemoryRead ($base, $memory)
$ga = $result+0x1C
$result = _MemoryRead ($ga, $memory)
$gm = $result+0x8
$result = _MemoryRead ($gm, $memory)
$gm = $result+0x20
$result = _MemoryRead ($gm, $memory)
$gm = $result+0x14
$pipl = _MemoryRead ($gm, $memory)
EndFunc
для напоминания, да и что бы не листать/искать, вот офф сеты
Структура / Список игроков рядом:
GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])
+464 PlayerLvl
+5D4 PlayerClanID
+608 +0 PlayerName (UText / Unicode String)
на счет ника скажу сразу - теоретически, так как считываю я, он и не должен считываться наверное.. но ник меня пока волнует меньше всего, добью позже, особую ценность для меня сейчас предстовляет определение PlayerClanID

Последний раз редактировалось misterzym; 27.04.2011 в 21:34.
  Ответить с цитированием
Старый 27.04.2011, 23:09   #9
Заблокирован
 Рыцарь-капитан
Аватар для semoder
 
semoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе ценуsemoder знает себе цену
Регистрация: 02.05.2009
Сообщений: 525
Популярность: 4586
Золото Zhyk.Ru: 20
Сказал(а) спасибо: 37
Поблагодарили 767 раз(а) в 220 сообщениях
 
По умолчанию Re: оффсеты и autoit

Оффсеты обновились...
Код:
#include <nomadmemory.au3>
#include <memory.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
Global $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)
Global $gma = 0xA5BFCC, $culti, $name, $x, $y, $z, $clan, $pipl

$memory = _MemoryOpen (ProcessExists("elementclient.exe")) ;определяем откуда читать

$FORM_MAIN = GUICreate('Люди вокруг', 800, 600)
WinSetOnTop ( 'Люди вокруг', "text", 1 )
$btn=GUICtrlCreateButton ("Refresh", 750, 40, 50) ;Добавляем кнопку обновления
$listview = GUICtrlGetHandle(GUICtrlCreateListView("", 1, 10, 750, 560, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles);Применяем стиль
_GUICtrlListView_AddColumn($listview, "№", 20);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "Nic", 75);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "culti", 70);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "clanID", 70);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "X", 70);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "y", 70);Добавляем столбец
_GUICtrlListView_AddColumn($listview, "z", 70);Добавляем столбец
GUISetState(@SW_SHOW, $FORM_MAIN)
Example1()
Func Example1()
Tablica1()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE ;если закрыть окно
ExitLoop
Case $btn ;нажата кнопка обновления
Tablica1()
EndSwitch
WEnd
GUIDelete()
EndFunc

;Func Tablica2()
;	_GUICtrlListView_DeleteAllItems($listview); чистим список, если он не пуст
;	pipl()
;	Local $I
;	$list = _MEMORYREAD($gma, $memory)
;	$list = _MEMORYREAD($list + 8, $memory)
;	$list = _MEMORYREAD($list + 0x20, $memory)
;	$list = _MEMORYREAD($list + 0x18, $memory)
;	For $I = 0 To 767
;		_GUICtrlListView_AddItem($listview, $i, $i) ;записываем значение  I в 1 столбец
;		$result = _MEMORYREAD($list + 4 * $I, $memory)
;		$result = _MEMORYREAD($result + 4, $memory)
;		$NAME = _MEMORYREAD(_MEMORYREAD($result + 1560, $memory), $memory, "wchar[9]")
;		_GUICtrlListView_AddSubItem($listview, $i, $NAME, 1, $i+1) ;nic
;		$culti = _MEMORYREAD($result + 1136, $memory)
;		_GUICtrlListView_AddSubItem($listview, $i, $culti, 2, $i+1); culti
;		$clan = _MEMORYREAD($result + 1508, $memory)
;		_GUICtrlListView_AddSubItem($listview, $i, $clan, 3, $i+1) ;clan
;		$X = _MEMORYREAD($result + 60, $memory, "float") / 10 + 400
;		_GUICtrlListView_AddSubItem($listview, $i, $x, 4, $i+1) ;x
;		$Y = _MEMORYREAD($result + 68, $memory, "float") / 10 + 550
;		_GUICtrlListView_AddSubItem($listview, $i, $y, 5, $i+1) ;y
;		$Z = _MEMORYREAD($result + 64, $memory, "float") / 10
;		_GUICtrlListView_AddSubItem($listview, $i, $z, 6, $i+1) ;z
;	Next
;EndFunc

Func Tablica1()
	_GUICtrlListView_DeleteAllItems($listview); чистим список, если он не пуст
	pipl()
	Local $I
	$list = _MEMORYREAD($gma, $memory)
	$list = _MEMORYREAD($list + 0x20, $memory)
	$list = _MEMORYREAD($list + 0x380, $memory)
	$list = _MEMORYREAD($list + 0x88, $memory)
	For $I = 0 To $pipl
		_GUICtrlListView_AddItem($listview, $i, $i) ;записываем значение  I в 1 столбец
		$result = _MEMORYREAD($list + 4 * $I, $memory)
		$NAME = _MEMORYREAD(_MEMORYREAD($result + 0x618, $memory), $memory, "wchar[9]")
		_GUICtrlListView_AddSubItem($listview, $i, $NAME, 1, $i+1) ;nic
		$culti = _MEMORYREAD($result + 0x470, $memory)
		_GUICtrlListView_AddSubItem($listview, $i, $culti, 2, $i+1); culti
		$clan = _MEMORYREAD($result + 0x5E4, $memory)
		_GUICtrlListView_AddSubItem($listview, $i, $clan, 3, $i+1) ;clan
		$X = _MEMORYREAD($result + 60, $memory, "float") / 10 + 400
		_GUICtrlListView_AddSubItem($listview, $i, $x, 4, $i+1) ;x
		$Y = _MEMORYREAD($result + 68, $memory, "float") / 10 + 550
		_GUICtrlListView_AddSubItem($listview, $i, $y, 5, $i+1) ;y
		$Z = _MEMORYREAD($result + 64, $memory, "float") / 10
		_GUICtrlListView_AddSubItem($listview, $i, $z, 6, $i+1) ;z
	Next
EndFunc

Func pipl()
$result = _MemoryRead ($gma, $memory)
$gm = $result+0x20
$result = _MemoryRead ($gm, $memory)
$gm = $result+0x380
$result = _MemoryRead ($gm, $memory)
$gm = $result+0x14
$pipl = _MemoryRead ($gm, $memory)
return $pipl
EndFunc
По хэштэйблу много пустых мест получаю =(, а по линейному массиву всё гуд =)
Культивация: 0 - нет, 1 - 9 ур, 2 - 19ур, 8 - 79 ур, 20 - Рай1, 21 - Рай2, 23 - Рай3, 30 - Ад1, 31 - Ад2, 33 - Ад3

Последний раз редактировалось semoder; 27.04.2011 в 23:23.
  Ответить с цитированием
Старый 27.04.2011, 23:31   #10
 Разведчик
Аватар для misterzym
 
misterzym никому не известный тип
Регистрация: 09.11.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: оффсеты и autoit

и снова я напарываюсь на старые оффсеты
спасибо за новые, и за готовый примерчик
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оффсеты Maty Общение разработчиков 8 14.03.2012 21:00
Оффсеты wzhik Общение и обсуждение CrossFire 0 19.02.2011 13:43
Оффсеты на AxesasPW Nichoas Общение и обсуждение Perfect World 3 11.01.2010 22:09

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

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

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