PDA

Просмотр полной версии : РУОФФ Адреса и оффсеты


Страницы : [1] 2 3 4 5 6

sumikot
25.10.2011, 14:46
Программка для поиска Базового адреса.
При запуске выводится окошко открытия файла elementclient.
Указываете на интересующий вас файл, при удачном поиске программа копирует BaseAdress в буфер обмена и показывает его в боксе.
Бывает, что на фришках файл elementclient запакован - тогда запускаете игру, на аккаунт можно не заходить - программа ищет BaseAdress из запущенного процесса elementclient и копирует его в буфер обмена. Когда поиск ведется из запущенного процесса, находится также GameAdress.
Также есть возможность поиска BaseAdress в других играх, где используется elementclient.exe - например, Jade Dynasty или Legend of Martial Arts. Скриншотов нет, так как программа не имеет формы. Написано специально для zhyk.ru для быстрого определения BaseAdress на неизвестных фришках и при обновлении на оф сайте.
34119
VT ([Ссылки могут видеть только зарегистрированные и активированные пользователи] 622d780c1777ee/analysis/1341209123/)
===============================================




BaseAdress=00926FD4
GameAdress=0092764C


FullTarget=00584580
Attack=005A80C0
ToVillage=005A84E0
MeditRest=005A8820
MeditCancel=005A8860
PetRecover=005A9A80
Assist=005A9680
PetAction=00550060
PetAttack=008DD798
PetStop=008DAD98
PetFollow=008DD790
PetOffensive=008DD784
PetDefensive=008DD778
PetCombat=008DD770
PetCancel=008D641C
PetSkillUse=004F6B30
PetSetMode1=004AC290
PetSetMode2=005848E0
PetEvocative=005A9A40
Mining=005A89C0
TalkToNPC=00584940
Walk1=0045D9F0
Walk2=00461470
Walk3=0045DDF0
WalkOfs1=00000BB8
WalkOfs2=0000062C
UseItem=00584320
Pick=00584510
PickWalk=0045A9D0
UseSkill=004559D0
Buy=005A9BB0
Sell=005A9C30
RepairAll=005A9CB0
Fly=00451FF0
IdCancel=008D641C
ButtonPress=006D1C90
Jump=0046B6F0
PackCall=00589F20


NextLevel=00928040
ZoomHack=004056F7 (75 > EB)
Launcher=0043ABE1 (75 > EB)
MultiClient=0043BA9B (74 > EB)
SmileHack=004BA6C4

ChatStart=00929DB8
ChatMax=00929DC0
ChatNumber=00929DC4
ChatEnd=00929DBC
===============================================



BaseAdress=00B27A04
GameAdress=00B280C4


BaseAdress +0x1C +0x34, длинна структуры 0x1274 байта

+000C Sin, float /синус угла поворота/
+002C Cos, float /косинус угла поворота/
+003C LocX, float /Координата X/ +007C /Повтор/
+0040 LocZ, float /Координата Z/ +0080 /Повтор/
+0044 LocY, float /Координата Y/ +0084 /Повтор/
+00B8
Значения: 1 - скилл используется, 0 - нет
+016B Customize->Mouth->thickDownLip (byte)
+0171 Customize->Mouth->scaleMouthH2 (byte)
+0280
Значения: 0 - копает, 1 - не копает, валиден после 1й копки
+0368
+ [I*2] Buffs, word
+036C BuffsCnt, dword /Количество баффов/
+038С
+088+I*4 (I=GA+34+38C+14)
+03BC GenieRotationTimer, dword /таймер, следящий за отображением джинна или фейки/
+03C0 GenieRotationTimerMax, dword /максимальное значение этого таймера/
+03C4 IsGenieVisible, byte/bool /если 1, то вокруг игрока летает джинн (если есть), иначе - фейка (если есть)/
+03CC +AC /текущая энергия джина/
+03CC +B0 /максимальная энергия джина/
+03CC +B8 /текущий заряд джина/
+047C WID, dword /World ID перса/
+0480 Chi, dword /Количество чи/
+0488 PlayerLvL, dword /Уровень перса/
+048C PlayerStatus, dword /Статус перса/
+0490 HP, dword /Жизненная сила/
+0494 MP, dword /Магическая энергия/
+0498 Experience, dword /текущий Опыт/
+049C Spirit, dword /текущий Дух/
+04A0 SkillPoins, dword /Доступно очков для распределения/
+04A4 ChiPoints, dword /Единицы Ярости/
+04A8 /Атака/
+04AC /Защита/
+04B0 /Шанс крита/
+04B8 /Скрытность/
+04BC /Обнаружение/
+04C0 Vitality, dword /Выносливость/
+04C4 Intellect, dword /Интеллект/
+04C8 Strength, dword /Сила/
+04CC Dexterity, dword /Ловкость/
+04D0 MaxHP, dword /Максимум Жизненной Силы/
+04D4 MaxMP, dword /Максимум Магической Энергии/
+04F0 Hit, dword /Меткость/
+04F4 MinPhyzAtk, dword /Физ Атака, мин/
+04F8 MaxPhyzAtk, dword /Физ Атака, макс/
+052C MinMagAtk, dword /Магическая атака, минимум/
+0530 MaxMagAtk, dword /Магическая атака, максимум/
+0534 DefMetal, dword /Защита, Металл/
+0538 DefWood, dword /Защита, Дерево/
+053C DefWater, dword /Защита, Вода/
+0540 DefFire, dword /Защита, Огонь/
+0544 DefEarth, dword /Защита, Земля/
+0548 DefPhyz, dword /Физическая защита/
+054C Flee, dword /Уклонение/
+0550 MaxFury, dword /Ярость, максимум/
+0554 Money, dword /Деньги/
+0558 MaxMoney, dword /Деньги, максимально возможное/
+055C EquipWeapon, word*
+0560 EquipHelmet, word*
+0564 EquipNecklace, word*
+0568 EquipManteau, word*
+056C EquipShirt, word*
+0570 EquipWaistAdorn, word*
+0574 EquipFootwear, word*
+0578 EquipBoots, word*
+057C EquipWristBracer, word*
+0580 EquipRing1, word*
+0584 EquipRing2, word*
+0588 EquipProjectile, word
+058C EquipFly, word /ID полета/
+0590 EquipBodyFashion, word*
+0594 EquipLegwearFashion, word*
+0598 EquipSpecialFootwears, word*
+059C EquipArmFashion, word*
+05A0 EquipHead, word*
+05A4 EquipPigment, word*
+05A8 EquipSmiley, word*
+05AC Equip GuardianCharm, word*
+05B0 Equip SpiritCharm, word*
+05B4 EquipX1, word*
+05B8 EquipGenie, word /wid одетого джина/
+05BC EquipX2, word*
+05C8 Reputation, dword
+05D4 FlagPeaceZone, byte
+0604 ClanID, dword
+0608
2-мастер, 3-маршал, 4-майор, 5-капитан
+060С ActivePetId /ID призванного ездового пета. =0 если не призван/
+0618 flagGM, bit 00000001
+0634 SpouseID, dword /ID супруг(а)/
+0638 +0 PlayerName, wchar*8 (UText / Unicode String)
+0640
Значение: 0-воин 1-маг 2-шаман 3-друид 4-оборотень 5-убийца 6-лучник 7-жрец 8-страж 9-мистик
+0644
Значение: 0 - Male, 1 - Female
+064C
Позиция: 0 - Земля, 1 - Вода, 2 - Воздух
+0650
Значение: 0 - Walk, 1 - Run
+0698
Значение: 0 - Walking, 10 - Flying, 20 - Meditation
+06AC AngryFlag, byte
+06D8
+14 +[i*4], i = 1 to 5
+00C PartyId, dword
+06F4
+4 SkillID
+8 SkillID
+C SkillLvl
+10 SkillCoolDown
+14 SkillMaxCoolDown
+06F8 CastID, dword
+0708 +C+0+0+0 OverheadName, wchar /имя игрока, отображающееся над головой/
+0728 +C+0+0+0 Имя клана
+0734 NameCatHsop /Название магазина/
+0760 HandPers /ID персонажа, которого держите на руках (или который вас держит)/
+0774 ActivePetId /Призванный пет/
+0994 Current Skill Activation CoolDown
+0998 Current Skill Activation Max CoolDown
+099C TimeMining /Время копания реса/
+09A0 TimeMiningConst /Максимальное время копания реса/
+09CC WaitPotHMP, dword
+0A0C WaitPotHP, dword
+0A14 WaitPotMP, dword
+0A2C WaitRunaTP, dword /откат Руна переноса Id=14351/
+0A3C WaitPlayerInfo*
+0A44 WaitFoodPet, dword
+0A5C WaitChemistry /Откат химии/
+0A6C WaitSos /Откат соски/
? +0B60 Duration of life/recall of a pet /Ожидание призыва пета/ непроверено
+0B68 Target, dword
+0BAC GroundZ
+0C64 JumpingCnt
+0CA6 BankPass, byte /Флаг блокировки паролем от банка/
+0CAC
+010 InvMax /Максимальное кол-во ячеек инвентаря/

+0С+[(0-31(40))*4] /Ячейка/

+0x04 Type
+0x08 ID, dword
+0x10 Count, dword /количество в ячейке/
+0x18 Price, dword /цена/
+0x40 +0x0 Name, char, unicod /описание/
+0x4C +0x0 GlType
+0x58 Lvl /Требуемый уровень для потов/
+0x78 CrafterName, char, unikod /Имя создателя/
+0xA4

+0x00 Effect1Id, dword /ID 1 го свойства/
+0x0C Effect1Value, float/dword /значение 1 го свойства/
+0x1C Effect2Id, dword /ID 2 го свойства/
+0x28 Effect2Value, float/dword /значение 2 го свойства/
+0x38 Effect3Id, dword /ID 3 го свойства/
+0x44 Effect3Value, float/dword /значение 3 го свойства/

+0xA8 ExtraEffectsCount, ushort, /кол-во доп свойств/

Type = 0,3 Name = +E0 +C
Type = 17 Name = +4C +8
Type = 2 Name = +CC +8
Type = 8,9,23 Name = +54 +C
Type = 15 Name = +E8 +C
Type = 20,27,32,5,10,13,19,31 Name = +4C +4
Type = 43 Name = +54 +4
Type = 36 Name = +B8 +4
Type = 41 Name = +10C +4
+0CB0
+0C+[(0-x)*4] /Ячейка/
+0CB4
+C44 +C +[I*4] /Ячейка/
+0D08
+0x08 ID
+0x10 Number
+0x40 Description
+1050
+C Stand Action
+14 Current Action
+14 +10 P.Target ID
+30 +4 MovePoint Action
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
+30 +8 MoveTarget Action
+30 +8 +20 Destination ID
+30 +10 +30 M.Target ID
+30 +2C Mining Action
+30 +30 PetEvocative Action
+1058
+8 +(i*32+8) i=0 to 19
+1068
+0x08 PetHutch /Номер призванного пета (0-9), (-1) - пет не вызван/
+0x3C ActivePetId /Призванный пет/

+(PetHutch*4+0x10), i=0-4(9)

+0x04 PetLoyale, dword /Верность/
+0x08 PetHunger, dword /Голод, 0, 1, 2-изголодавшийся, 6,7-полуживой, 8-умирающий/
+0x18 PetClass /класс пета - 0-ездовой, 1-друид, 2-декор/
+0x1C PetHPPrc, float /Жизнь, от 0.00 до 1.00/
+0x20 PetMPPrc, float /Мана, от 0.00 до 1.00 - для мистиков/
+0x24 PetLvl, dword /Уровень/
+0x2C PetExp, dword /Опыт/
+0x34 +0x0 PetName, wchar (UText / Unicode String) /Имя пета/
+0x38 HP, dword /Жизнь/
+0x3C MP, dword /Мана - для мистиков/
+0x40 PetSkillId1, dword /Id скила 1/
+0x44 PetSkillLvl1 /Уровень скила 1, возм значения 0,1,2,3,4,5/
+0x48 PetWaitSkill1 /Откат скилла 1/
+0x50 PetSkillId2, dword /Id скила 2/
+0x54 PetSkillLvl2 /Уровень скила 2/
+0x58 PetWaitSkill2 /Откат скилла 2/
+0x60 PetSkillId3, dword /Id скила 3/
+0x64 PetSkillLvl3 /Уровень скила 3/
+0x68 PetWaitSkill3 /Откат скилла 3/
+0x70 PetSkillId4, dword /Id скила 4/
+0x74 PetSkillLvl4 /Уровень скила 4/
+0x78 PetWaitSkill4 /Откат скилла 4/
+0x150 MaxHP /Не для друидов, для мистиков/
+107С
+[I*4]
+4 CurrentSkillSturct
+4 +4 +0x36 SkillRage /Количество ярости для скила/
+8 SkillID
+C SkillLvl
+10 SkillCoolDown
+14 SkillMaxCoolDown
+1080 ActiveSkillCnt
+1098 PassiveSkillCnt
+10AC
+[i*4], i = 0 to 9
+008 IDGenie
+010 WaitGenie
+014 WaitMaxGenie
+10B0 GenieCount
+10E8
+188 TargetX (float)
+18C TargetZ (float)
+190 TargetY (float)



BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
или
BA +0x1C +0x34 +0x38C +0x88 +(i*0x4) /i = 0 - Count/
или
BA +0x1C +0x1C +0x20 +0x88 +(i*0x4) /i = 0 - Count/

Длинна структуры 0x91С байта

+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x46C ID, dword
+0x478 Lvl, dword
+0x47C WID, dword
+0x480 HP, dword
+0x484 MP, dword
+0x4C0 MaxHP, dword
+0x4C4 MaxMP, dword
+0x59C HPCharm
+0x5A0 MPCharm
+0x638 +0x0 Name, wchar (UText / Unicode String)
+0x6F8 MagAtk /Цель для маг атаки/
+0x724 +0x0 NameCatHsop, wchar (UText / Unicode String) `(734)
+0x--- PhizAtk /Цель для физ атаки/



BA +0x1C +0x1C +0x24 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
или
BA +0x1C +0x1C +0x24 +0x50 +(i*0x4) /i = 0 - Count/
длинна структуры 0x384 байта

+0X03C LocX,float /Координата X/ (X/10+400)
+0x040 LocZ,float /Координата Z/ (Z/10)
+0x044 LocY,float /Координата Y/ (Y/10+550)
+0x0B4
Значение: 6 - моб, 7 - NPC, 9 - Pet
+0x11C WID, dword
+0x120 ID, dword
+0x124 Lvl
+0x12C HP, dword
+0x16C MaxHP, dword
+0x218 /Номер в массиве/
+0x248
Значение:
0 - Нет
1 - Ускорение
2 - Pacifist
3 - Усиленная защита
4 - Усиленная магическая защита
5 - Усиленная атака
6 - Усиленная магия
7 - Берсерк
8 - Улучшенное здоровье
9 - Слабость
+0x254 +0 Name, wchar (UText / Unicode String)
+0x278 Distance, float
+0x2AC Среда (0-земля 1-вода 2-воздух)
+0x2B0 MovFlag, byte (1-стоит, 0-двигается)
+0x2B8 MobAction (1 - Пассивный; 2 - Физ.атака; 3 - Маг.атака; 4 - Умер; 5 - Двигается)
+0x2C4 /Атака, флаг, 1 - атакует/
+0x2DC MobPTargetID, dword (ID для Физ.атаки)
+0x2E0 MobMTargetID, dword (ID для Маг.атаки)
+0x310 + [I*2] MobBuffs, array (I in [0..N]) (1b)
+0x314 Mob Buffs Count



BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
длинна структуры 0x180 байт

+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x10C WID, dword
+0x110 ID, dword
+0x14C
0000 0000 0000 0001 - Лут
0000 0000 0000 0010 - Шахты
0000 0000 0000 0011 - Монеты
0000 0001 0000 0001 - Синька, Фиол
0001 0001 0000 0001 - Голд, Грин
+0x150
Значение: 0,1,20,40,60,80
+0x154 Distance, float
+0x164 +0x0 Name, wchar (UText / Unicode String)



BA +218 +4 Count, dword /Количество/
BA +218 +8 +[i*4] + (+0)^J: Clans Struct (I in [0..389])

+4 ID, dword
+8 +0 See: +4
+8 +4 +0 Name, wchar (UText / Unicode String)
+8 +8 Lvl, dword
+C See: +4



BA +0x1C +0x1C +0x60 +0x4 +0x0 Название локации
BA +0x1C +0x18 +0x8 +0x810 Количество слома/нных/ющихся вещей



FullTarget=006686E0
Attack=00696D60*
ToVillage=00697220*
MeditRest=00697560*
MeditCancel=006975A0*
Assist=00698720*
PetAction=00616EA0*
PetAttack=00AD2740*
PetStop=00ACF030*
PetFollow=00AD2738*
PetOffensive=00AD272C*
PetDefensive=00AD2720*
PetCombat=00AD2718*
PetCancel=00ACB998*
PetSkillUse=005666D0*
PetSetMode1=004DD740*
PetSetMode2=00668A50*
PetEvocative=00698AE0*
Mining=00697700*
TalkToNPC=00668AB0
Walk1=0046E410
Walk2=004728E0
Walk3=0046E880
WalkOfs1=064C
WalkOfs2=1050
UseItem=00668490*
Pick=00668670*
PickWalk=00469B40*
UseSkill=00463630
Buy=00698F30*
Sell=00698FC0*
Fly=0045C3B0*
IdCancel=00ACB998*
ButtonPress=00804A80*
Jump=00459D60
PackCall=006737B0
NPCSelect=00696D20


BA+0x1C+0x04+0x18+I+D
I (окна, длинна 0x850 байт)
0x2B8 Действия
0x2C0 Игроки и группы
0x2C4 Служба поддержки
0x314 Характеристики персонажа
0x32C Ремонт
0x36C Призыв духа
0x3E8 Помощь
0x40C Инвентарь
0x428 Диалог с нпс
0x438 Домашние животные
0x458 Окно алхимика
0x468 Панель 1-9
0x470 Горячие клавиши
0x4B0 Настройки
0x4C4 Умения
0x50C Системная панель
0x51C Задания
D (данные окна, длинна 0x218 байт)
0x98 WndX, dword
0x9C WndY, dword
0xA0 WndW, dword
0xA4 WndH, dword
0X90 WndO, byte (1-open, 0-close)



Unfreeze=00B28534
Unfreeze=00431F02 (84 C0 > B0 01) /B0 00 - заморожен/
FreezeFlag=00AF78D4 (00B28534)
Zoom=00407E40
ExpArr=00B28C40+[(Lvl)*4]
MultOff=00437712 (57 8D 4E 04 E8 55 EA FD FF > 90 8D 4E 04 90 90 90 90 90)
OnlineFlag = 00B27CE0 /В игре - 1, не в игре - 0/

ChatStart = 00B2CD80 (С какого адреса ссылки)
ChatEnd = 00B2CD84 (По какой адрес ссылки)
ChatMax = 00B2CD88 (Максимальное количество ссылок, max 0x109)
ChatNumber = 00B2CD8C (Ссылок в наличии, max 0xC7)
Message = [[ChatStart]+((0 to ChatNumber)*0x1C+0x08)]+0]
===============================================



BaseAdress = 0x00A591E0
GameAdress = 0x00A59ACC

Структура перса (HostPlayer Struct) такая же, как у "Земли духов"


ToVillage=00652110
PetAttack=00964ECC
PetStop=009ADFC0
PetFollow=00964EC4
PetOffensive=00964EB8
PetDefensive=00964EAC
PetCombat=00964EA4
PetCancel=0094A010
PetSkillUse=005A7B00
PetSetMode1=005318E0
PetSetMode2=006324C0
Mining=006525F0
TalkToNPC=00632520
Walk1=00495680
Walk2=00499320
Walk3=00495F20
WalkOfs1=000010BC
UseItem=00631F40
Pick=006320E0
PickWalk=0048A140
Sell=004D7290
IdCancel=0094A010
ButtonPress=005D5810
PackCall=0063F890



ExpArr=00A5C510+[(Lvl)*4]
ChatStart=00A5EAC0
ChatNumber=00A5EAC8

===============================================



BaseAdress=00A571E0
GameAdress=00A57ACC


BaseAdress +0x1C +0x34, длинна структуры 0x1314 байта

+000C Sin, float /синус угла поворота/
+002C Cos, float /косинус угла поворота/
+003C LocX, float /Координата X/ +007C /Повтор/
+0040 LocZ, float /Координата Z/ +0080 /Повтор/
+0044 LocY, float /Координата Y/ +0084 /Повтор/
+00B8
Значения: 1 - скилл используется, 0 - нет
+0288
Значения: 0 - копает, 1 - не копает, валиден после 1й копки
+036C
+ [I*0x12] Buffs, word
+0374 BuffsCnt, dword /Количество баффов/
+0390
+088+I*4 (I=GA+34+38C+14)
+03C0 GenieRotationTimer, dword /таймер, следящий за отображением джинна или фейки/
+03C4 GenieRotationTimerMax, dword /максимальное значение этого таймера/
+03C8 IsGenieVisible, byte/bool /если 1, то вокруг игрока летает джинн (если есть), иначе - фейка (если есть)/
+03D4 GenieArray
+0480 WID, dword /World ID перса/
+048C PlayerLvL, dword /Уровень перса/
+0490 PlayerStatus, dword /Статус перса/
+0494 HP, dword /Жизненная сила/
+0498 MP, dword /Магическая энергия/
+049C Experience, dword /текущий Опыт/
+04A0 Spirit, dword /текущий Дух/
+04A4 SkillPoins, dword /Доступно очков для распределения/
+04A8 ChiPoints, dword /Единицы Ярости/
+04CC Vitality, dword /Выносливость/
+04D0 Intellect, dword /Интеллект/
+04D4 Strength, dword /Сила/
+04D8 Dexterity, dword /Ловкость/
+04DC MaxHP, dword /Максимум Жизненной Силы/
+04E0 MaxMP, dword /Максимум Магической Энергии/
+04FC Hit, dword /Меткость/
+0500 MinPhyzAtk, dword /Физ Атака, мин/
+0504 MaxPhyzAtk, dword /Физ Атака, макс/
+0538 MinMagAtk, dword /Магическая атака, минимум/
+053C MaxMagAtk, dword /Магическая атака, максимум/
+0540 DefMetal, dword /Защита, Металл/
+0544 DefWood, dword /Защита, Дерево/
+0548 DefWater, dword /Защита, Вода/
+054C DefFire, dword /Защита, Огонь/
+0550 DefEarth, dword /Защита, Земля/
+0554 DefPhyz, dword /Физическая защита/
+0558 Flee, dword /Уклонение/
+055C MaxFury, dword /Ярость, максимум/
+0560 Money, dword /Деньги/
+0568 EquipWeapon
+056C EquipHelmet
+0570 EquipNecklace
+0574 EquipManteau
+0578 EquipShirt
+057C EquipWaistAdorn
+0580 EquipFootwear
+0584 EquipBoots
+058C EquipRing1
+0590 EquipRing2
+0598 EquipFly
+059С Equip BodyFashion
+0564 MaxMoney, dword /Деньги, максимально возможное/
+05A0 Equip Legwear Fashion
+05A4 Equip Special Footwears
+05A8 Equip Arm Fashion
+05AC Equip Head
+05B0 EquipSmiley / Книга
+05B8 Equip GuardianCharm / Амулет
+05BC Equip SpiritCharm / Идол
+05C0 EquipX1 / Сборник цитат
+05C4 EquipGenie / Джин
+05D0 EquipX2 / Жетон престижа
+05E0 Fame /Репутация/
+05EC FlagPeaceZone, byte
+05F0 FlagPK
+05F4 TimerPK
+061C ClanID, dword
+0630 flagGM, bit 00000001
+066C +0 PlayerName, wchar*8 (UText / Unicode String)
+0674
Значение: 0-воин 1-маг 2-шаман 3-друид 4-оборотень 5-убийца 6-лучник 7-жрец 8-страж 9-мистик
+0678
Значение: 0 - Male, 1 - Female
+0680
Позиция: 0 - Земля, 1 - Вода, 2 - Воздух
+0684
Значение: 0 - Walk, 1 - Run
+06CC
Значение: 0 - Walking, 10 - Flying, 20 - Meditation
+070C
+18 MembersCount, dword
MemberStruct, i = 0 to 6 - MemberIndex. PartyLeader i = 0 - всегда."]
+C MemberWId
+10 Lvl, dword
+1C HP, dword
+20 MP, dword
+24 MaxHP, dword
+28 MaxMP, dword
+34 LocX, float
+38 LocZ, float
+3C LocY, float
+0728 +8 CurSkillID
+0728 +10 CurSkillCD
+072C CastID, dword
+07C0 ActivePetId /Призванный пет/
+0804 CamCos /Косинус угла поворота камеры/
+080C CamSin /Синус угла поворота камеры/
+0A10 WaitPotHMP, dword
+0A50 WaitPotHP, dword
+0A58 WaitPotMP, dword
+0A88 WaitFoodPet, dword
+0AA0 WaitChemistry /Откат химии/
+0AB0 WaitSos /Откат соски/
+0C18 GroundZ
+0BD4 Target, dword
+0CD0 JumpingCnt
+0D18 InventoryArray /Структура инвентаря/
+0D1C EquipmentArray /Структура экипировки/
+0D20 QuestItemsArray /Квестовый инвентарь/
+0D70 ReviewPlayerArr
+10BC ActionArray /Массив действий/
+10C4
+0x8+(i*0x20+0x8) - dword id квеста(от 0 до 19)
+10D4
+8 IsCalled /FFFFFFFF - not Called, 0-9 Pet Number/
+3C CurrentPetID
+40 PetMode (0 - Охрана, 1 - Агрессивный, 2 - По команде)

+[4*I + 10] /I in [0-9] - Pet Cell/
+04 Loyale,dw /верность/
+08 Hunger,dw /голод: 01-норм 2-изгол, 67-полужив,8-умирающ/
+18 Class /класс пета - 0-ездовой, 1-друид, 2-декор/
+1C HPProc,fl /%/
+20 MPProc,fl /% маны, для мистиков/
+24 Lvl,dw /уровень/
+2C Exp,dw /опыт/
+34 +0 Name
+38 HP,dw /жизнь/
+40 IdSkill1
+44 LvlSkill1
+48 WaitSkill1 /+[J*10+34] PetSkill CD (J in [1..4])/
+4C WaitSkill1 Const
+10E8 SkillArray /Массив умений/
+10EC ActiveSkillCnt
+1104 PassiveSkillCnt
+1118 GenieArray
+111C GenieCount
+116C TargetKrd
+11F8 Gold



BA +0x1C +0x1C +0x24 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

+0X03C LocX,float /Координата X/ (X/10+400)
+0x040 LocZ,float /Координата Z/ (Z/10)
+0x044 LocY,float /Координата Y/ (Y/10+550)
+0x0B4
Значение: 6 - моб, 7 - NPC, 9 - Pet
+0x120 WID, dword
+0x124 ID, dword
+0x128 Lvl, dvord
+0x130 HP, dword
+0x178 MaxHP, dword
+0x254
Значение:
0 - Нет
1 - Ускорение
2 - Pacifist
3 - Усиленная защита
4 - Усиленная магическая защита
5 - Усиленная атака
6 - Усиленная магия
7 - Берсерк
8 - Улучшенное здоровье
9 - Слабость
+0x260 +0 Name, wchar (UText / Unicode String)
+0x284 Distance, float
+0x2B8 Enviropment /0-земля 1-вода 2-воздух/
+0x2BC FlagAction /1-стоит, 0-двигается/
+0x2C8 MobAction (0 - Пассивный; 2 - Физ.атака; 3 - Маг.атака; 4 - Умер; 5 - Двигается)
+0x2D4 MobAttack /0 - нет, 1 - атакует/
+0x2EC PhizAttack
+0x2F0 MagAttack
+0x328 Buffs
+0x32C CountBuffs



BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x110 WID, dword
+0x114 ID, dword
+0x150
0000 0000 0000 0001 - Лут
0000 0000 0000 0010 - Шахты
0000 0000 0000 0011 - Монеты
0000 0001 0000 0001 - Синька, Фиол
0001 0001 0000 0001 - Голд, Грин
+0x154
Значение: 0,1,20,40,60,80
+0x158 Distance, float
+0x168 +0x0 Name, wchar (UText / Unicode String)



InGameFlag=00A573C8, byte /0 - не в игре 1 - в игре/
OnLineFlag=00A688EC, byte
Unfreeze=00420204 (84 C0 > B0 01) /B0 00 - заморожен/ или 00420206 (88 75 > C6 01)
Zoom=00439EBB (0F 85 1D > E9 1E FF)
UnfreezeFlag=00A57F3C
FullTarget=00630790
ToVillage=006500D0
PetAttack=00962E7C
PetStop=009AC2E0
PetFollow=00962E74
PetOffensive=00962E68
PetDefensive=00962E5C
PetCombat=00962E54
PetCancel=00950C18
PetSkillUse=005A63C0
PetSetMode1=005307F0
PetSetMode2=00630B00
Mining=006505B0
TalkToNPC=00630B60
Walk1=00494620
Walk2=00498290
Walk3=00494EC0
WalkOfs1=000010BC
UseItem=00630580
Pick=00630720
PickWalk=00489470
PackCall 0063DB70
Sell=004D6250
SkillCall=00492A90
ButtonPress=005D40C0
NPCSelect=0064FBD0
Для работы с диалогами :
DialogOpAddr = 0077D3E0;
DlgCancelPush = 00950C18; IdCancel
DlgNoPush = 00950C24;
DlgYesPush = 00950C08;
Autoattack=0064FC10 /Автоатака по таргету/

ChatStart=00A5CAB8
ChatNumber=00A5CAC4

===============================================



BaseAdress=00B4EF34
GameAdress=00B4F5FC

Структура перса такая же как в Землях духов, отличия после 0xA00
GroundZ=0C20
Target=0BDC
InventArr=0D20
EquipArr=0D24
QuestItemArr=0D28
ActionArr=10C4
QuestArr=10CC
PetArr=10DC
SkillArr=10F0
ActiveSkillCnt=10F4

Структура мобов такая же, как в Землях Духов, отличие:
BufCount=032C

Структура лута такая же, как в Землях Духов

ChatStart=00B53E90
ChatEnd=00B53E94
ChatNumber=00B53E9C

InviteArr 00B574C0
InviteCnt 00B574CC

PackCall=0068D640 /SendPacket/
Walk1=004782A0
Walk2=0047C5F0
Walk3=00478710
WalkOfs1=10C4
WalkOfs2=6CC
Fly=004629C0
FullTarget=00681F50
Attack=006B27A0
UseSkill=0046A740
ToVillage=006B2C60
MeditRest=006B2FA0
MeditCancel=006B2FE0
Assist=006B4260
PetAction=00636F60
PetAttack=00AF5D28
PetStop=00AF2004
PetFollow=00AF5D20
PetOffensive=00AF5D14
PetDefensive=00AF5D08
PetCombat=00AF5D00
PetCancel=00AE7F40
PetSkillUse=0057D5A0
PetSetMode1=004EB440
PetSetMode2=00682310
Mining=006B3140
TalkToNPC=00682370
UseItem=00681D00
Pick=00681EE0
PickWalk=00471860
Buy=006B4B30
Sell=006B4BD0

InGameFlag=00B4F218
ZoomHack=00407CD0
FaceHack=005BCB3C 005BCB5C
Unfreeze=00B4FA6C
ExpArr=00B50118+[(Lvl)*4]
===============================================



BaseAdress=00B8FBCC
GameAdress=00B9029C


BaseAdress +0x1C +0x34, длинна структуры 0x1344 байта

+003C LocX, float /Координата X/ +007C /Повтор/
+0040 LocZ, float /Координата Z/ +0080 /Повтор/
+0044 LocY, float /Координата Y/ +0084 /Повтор/
+00B8 SkillFlag, byte /Флаг использования скилла/
+0288 MiningFlag, byte /Флаг использования кирки/
+036C BuffsArray /Список баффов/
+0374 BuffsCnt, dword /Количество баффов/
+0390 PCCharacter, array /Хеш близлежащих игроков/

+AC - текущая мана джина
+B0 - максимальная мана
+B8 - зарядка джина (0-999999)
+68 - предположительно опыт джина
+7C - возможно случайные очки джина
+6C - уровень джина
+B4 - (float) реген джина

+0480 WID, dword /Мировой ID перса/
+048C PlayerLvL, dword /Уровень перса/
+0490 PlayerStatus, dword /Статус перса/
+0494 HP, dword /Жизненная сила/
+0498 MP, dword /Магическая энергия/
+049C Experience, dword /текущий Опыт/
+04A0 Spirit, dword /текущий Дух/
+04A4 SkillPoins, dword /Доступно очков для распределения/
+04A8 ChiPoints, dword /Единицы Ярости/
+04AC Atack /Атака/
+04B0 Def /Защита/
+04B4 Krit /Шанс крита/
+04B8 Damage /Ущерб/
+04BC Steal /Скрытность/
+04C0 Detect /Обнаружение/
+04CC Vitality, dword /Выносливость/
+04D0 Intellect, dword /Интеллект/
+04D4 Strength, dword /Сила/
+04D8 Dexterity, dword /Ловкость/
+04DC MaxHP, dword /Максимум Жизненной Силы/
+04E0 MaxMP, dword /Максимум Магической Энергии/
+04FC Hit, dword /Меткость/
+0500 MinPhyzAtk, dword /Физ Атака, мин/
+0504 MaxPhyzAtk, dword /Физ Атака, макс/
+0538 MinMagAtk, dword /Магическая атака, минимум/
+053C MaxMagAtk, dword /Магическая атака, максимум/
+0540 DefMetal, dword /Защита, Металл/
+0544 DefWood, dword /Защита, Дерево/
+0548 DefWater, dword /Защита, Вода/
+054C DefFire, dword /Защита, Огонь/
+0550 DefEarth, dword /Защита, Земля/
+0554 DefPhyz, dword /Физическая защита/
+0558 Flee, dword /Уклонение/
+055C MaxFury, dword /Ярость, максимум/
+0560 Money, dword /Деньги/
+0564 MaxMoney, dword /Деньги, максимально возможное/
+0568 EquipWeapon, word
+056C EquipHelmet, word
+0570 EquipNecklace, word
+0574 EquipManteau, word
+0578 EquipShirt, word
+057C EquipWaistAdorn, word
+0580 EquipFootwear, word
+0584 EquipBoots, word
+0588 EquipWristBracer, word
+058C EquipRing1, word
+0590 EquipRing2, word
+0594 EquipProjectile, word
+0598 EquipFly, word /ID полета/
+059C EquipBodyFashion, word
+05A0 EquipLegwearFashion, word
+05A4 EquipSpecialFootwears, word
+05A8 EquipArmFashion, word
+05AC EquipHead, word
+05B0 EquipPigment, word
+05B4 EquipSmiley, word
+05B8 Equip GuardianCharm, word
+05BC Equip SpiritCharm, word
+05C0 EquipBox, word
+05C4 EquipGenie, word /wid одетого джина/
+05C8 EquipLicense, word
+05E0 Reputation, dword
+05EC FlagPeaceZone, byte
+061C ClanID, dword
+0620 ClanPost /Должность в клане/
+0624 ActivePetId /ID призванного ездового пета. =0 если не призван/
+0630 flagGM, bit 00000001
+0670 +0 PlayerName, wchar*8 (UText / Unicode String)
+0678 ClassID, byte
+067C Gender, byte
+0684 WalkMode, byte
+0688 RunMode, byte
+06D0 Meditation, byte /State/
+06E4 AngryFlag, byte
+0710 PartyMember, array /Структуры членов группы/
+072C SkillArr, array
+0730 CastID, dword
+0740 +C+0+0+0 OverheadName, wchar /имя игрока, отображающееся над головой/
+0760 +C+0+0+0 Имя клана
+076C NameCatHsop /Название магазина/
+07CC ActivePetId /Призванный пет/
+0848 BrokenItem /Кол-во сломавшихся вещей/
+09E4 Current Skill Activation CoolDown
+09E8 Current Skill Activation Max CoolDown
+09EC TimeMining /Время копания реса/
+09F0 TimeMiningConst /Максимальное время копания реса/
+0A1C WaitPotHMP, dword
+0A5C WaitPotHP, dword
+0A64 WaitPotMP, dword
+0A8C WaitPlayerInfo
+0ABC WaitSos, dword
+0ACC WaitChemistry /Откат химии/
+0BF8 Target, dword
+0C3C GroundZ
+0CF4 JumpingCnt
+0D7C BankPass, byte /Флаг блокировки паролем от банка/
+0D84 InventoryArray /Структура инвентаря/
+0D88 EquipmentArray /Структура экипировки/
+0D8C QuestItemsArray /Квестовый инвентарь/
+0DE0 ReviewPlayerArr
+1128 ActionArray /Массив действий/
+1130 QuestArray /Квестовый массив/
+1140 PetArray /Массив петов/
+1154 ActiveSkillArray /Массив умений/
+1158 ActiveSkillCnt
+116С PassiveSkillArray
+1170 PassiveSkillCnt
+119C GenieArray
+11A0 GenieCount
+1339 FlagPhizSos, byte
+133A FlagMagSos, Byte



BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
Длинна структуры 0x950 байт
Адреса такие же, как и у своего перса



BA +0x1C +0x1C +0x24 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
Длинна структуры 0x3D4 байта

+0X03C LocX,float /Координата X/ (X/10+400)
+0x040 LocZ,float /Координата Z/ (Z/10)
+0x044 LocY,float /Координата Y/ (Y/10+550)
+0x0B4
Значение: 6 - моб, 7 - NPC, 9 - Pet
+0x120 WID, dword
+0x124 ID, dword
+0x128 Lvl, dvord
+0x130 HP, dword
+0x178 MaxHP, dword
+0x254
Значение:
0 - Нет
1 - Ускорение
2 - Pacifist
3 - Усиленная защита
4 - Усиленная магическая защита
5 - Усиленная атака
6 - Усиленная магия
7 - Берсерк
8 - Улучшенное здоровье
9 - Слабость
+0x260 +0 Name, wchar (UText / Unicode String)
+0x284 Distance, float
+0x2B8 Enviropment /0-земля 1-вода 2-воздух/
+0x2BC FlagAction /1-стоит, 0-двигается/
+0x2C8 MobAction (0 - Пассивный; 2 - Физ.атака; 3 - Маг.атака; 4 - Умер; 5 - Двигается)
+0x2D4 MobAttack /0 - нет, 1 - атакует/
+0x2EC PhizAttack
+0x2F0 MagAttack
+0x328 Buffs
+0x32C CountBuffs



InGameFlag 00B8FEB8
OnlineFlag 00B9F7B8
Unfreeze 00436986 (84 C0 > B0 01 > B0 00)
Unfreeze 00436988 (88...75 > C6...01)
UnfreezeData 00B9070C
ZoomHack 004087B0 (75 03 > EB 03)
WallHack 004081B3 (D9 C1 > D9 C0)
NextLevel 00B90DF8

ChatStart 00B94C70
ChatMax 00B94C78
ChatNumber 00B94C7C
ChatEnd 00B94C74

InviteArr 00B98650
InviteCnt 00B9865C

PackCall 0069F9C0
FullTarget 00693D60
Walk1 00479A40
Walk2 0047DD40
Walk3 00479EB0
WalkOfs1=0684
WalkOfs2=1128
Fly 00463C50
Attack 006C5820
ToVillage 006C5CE0
MeditRest 006C6020
MeditCancel 006C6060
PetRecover 006C5D20
Assist 006C73A0
PetAction 006470E0
PetAttack 00B33968;'attack'
PetStop 00B2F9DC;'stop'
PetFollow 00B33960;'follow'
PetOffensive 00B33954;'offensive'
PetDefensive 00B33948;'defensive'
PetCombat 00B33940;'combat'
PetCancel 00B25010;'IDCANCEL'
PetSkillUse 005876D0
PetSetMode1 004EE5F0
PetSetMode2 00694120
Mining 006C61C0
TalkToNPC 00694180
UseItem 00693B10
Pick 00693CF0
PickWalk 00472EE0
UseSkill 0046BDA0
UseSkillGenie 004F89A0
Buy 006C7C70
Sell 006C7D10
RepairAll 006C7D90
ButtonPress 008483B0
DialogOpAddr 0084D5B0

===============================================



BaseAdress =00C38B6C
GameAdress=00C392CC

Структуры игроков:
BA+0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA+0x1C +0x1C +0x20 +0x94 +(i*0x4) /i = 1 - Count/
BA+0x1C +0x1C +0x20 +0x1C +(i*0x4) +0x4 /i = 0 - 0x300/

BA +0x1C +0x1C +0x24 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x24 +0x1C +(i*0x4) +0x4 /i = 0 - 0x300/

+0X03C LocX,float /Координата X/ (X/10+400)
+0x040 LocZ,float /Координата Z/ (Z/10)
+0x044 LocY,float /Координата Y/ (Y/10+550)
+0x0B4
Значение: 6 - моб, 7 - NPC, 9 - Pet
+0x120 WID, dword
+0x124 ID, dword
+0x128 Lvl, dvord
+0x130 HP, dword
+0x178 MaxHP, dword
+0x268
Значение:
0 - Нет
1 - Ускорение
2 - Pacifist
3 - Усиленная защита
4 - Усиленная магическая защита
5 - Усиленная атака
6 - Усиленная магия
7 - Берсерк
8 - Улучшенное здоровье
9 - Слабость
+0x274 +0 Name, wchar (UText / Unicode String)
+0x298 Distance, float
+0x2CC Enviropment /0-земля 1-вода 2-воздух/
+0x2D0 FlagAction /1-стоит, 0-двигается/
+0x2DC MobAction (0 - Пассивный; 2 - Физ.атака; 3 - Маг.атака; 4 - Умер; 5 - Двигается)
+0x2C8 MobAttack /0 - нет, 1 - атакует/
+0x300 PhizAttack
+0x304 MagAttack
+0x338 Buffs
+0x340 CountBuffs

Лут:
BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x1С +(i*0x4) +0x4 /i = 0 - 0x300/
Кланы:
BA +248 +4 Count, dword /Количество/
BA +248 +8 +[i*4] + (+0)^J: Clans Struct (I in [0..389])


Unfreeze 0043BC56 (84 C0 > B0 01 > B0 00)
Unfreeze 0043BC58 (88...75 > C6...01)
UnfreezeData 00C39780

ChatStart = 00C3DF10(С какого адреса ссылки)
ChatEnd = 00C3DF14 (По какой адрес ссылки)
ChatMax = 00C3DF18 (Максимальное количество ссылок)
ChatNumber = 00C3DF1C (Ссылок в наличии)

PackCall=006F55E0
FullTarget=006E8060
Walk1=00484690
Walk2=004889B0
Walk3=00484B00
WalkOfs1=1290
WalkOfs2=6E8
Fly=0046CB00
UseSkill=00475740
UseSkillGenie=004E2750
Attack=00723910
ToVillage=00723DD0
MeditRest=00724110
MeditCancel=00724150
Assist=00725750
Mining=007242B0
Pick=006E7FF0
PickWalk=0047CAE0
PetAction=0068DA10
PetAttack=00BD8568
PetStop=00BD2B54
PetFollow=00BD8560
PetOffensive=00BD8554
PetDefensive=00BD8548
PetCombat=00BD8540
PetCancel=00BC6F70
PetSkillUse=005BCFF0
PetSetMode1=00500B90
PetSetMode2=006E8430
NPCSelect=007238D0
TalkToNPC=006E8490
Buy=007261A0
Sell=00726240
UseItem=006E7E10
IdCancel=00BC6F70
ButtonPress=008CC960
AutoPath 00447A20
SkillCall 00475740
ZoomHack $00408E30
NextLevel=00C39EA8



whoami, _Rocksi_, obiovn, semoder, sirkio
war2lock, Dremalka, stsnsw, DHouse, VictorPr
krysun, Arvol, Это_Что_то, Skuka.95
begemottio2, Prom4eg, sin(alpha), FreePVP)))
krukovis, BritishColonist, Sanych89, rufat2005
pwgamer,redmagic,jdark,Arvol
gurin,pw.lancer,vogel,VeTaL_UA
Nitrogen,_DVD_,Spyware,tianddu


Эти адреса и оффсеты были найдены и выложены
специально для посетителей сайта zhyk.ru
При этом были задействованы знания и время
участников этого проекта.
Если Вы собрались спиз. ой, скопипастить эти данные для
другого сайта, просьба присоединить к своей теме ссылку
на первоисточник.

Обновление ниже

sumikot
27.10.2011, 01:12
BaseAdress =00C9DFAC
GameAdress=00C9E74C

HostPlayer Struct
BA+0x1C+0x30+

+003C LocX, float
+0040 LocZ, float
+0044 LocY, float
+0494 WID, dword /Мировой ID перса/
+04A0 PlayerLvL, dword /Уровень перса/
+04A4 PlayerStatus, dword /Статус перса/
+04A8 HP, dword /Жизненная сила/
+04AC MP, dword /Магическая энергия/
+04B0 Experience, dword /текущий Опыт/
+04B4 Spirit, dword /текущий Дух/
+04B8 SkillPoins, dword /Доступно очков для распределения/
+04BC ChiPoints, dword /Единицы Ярости/
+04C0 Atack /Атака/
+04C4 Def /Защита/
+04C8 Krit /Шанс крита/
+04D0 Steal /Скрытность/
+04D4 Detect /Обнаружение/
+04D8 /Урон по монстрам/
+04DC /Защита от монстров/
+04E0 /Боевой дух/
+04E4 Vitality, dword /Выносливость/
+04E8 Intellect, dword /Интеллект/
+04EC Strength, dword /Сила/
+04F0 Dexterity, dword /Ловкость/
+04F4 MaxHP, dword /Максимум Жизненной Силы/
+04F8 MaxMP, dword /Максимум Магической Энергии/
+0514 Hit, dword /Меткость/
+0518 MinPhyzAtk, dword /Физ Атака, мин/
+051С MaxPhyzAtk, dword /Физ Атака, макс/
+0550 MinMagAtk, dword /Магическая атака, минимум/
+0554 MaxMagAtk, dword /Магическая атака, максимум/
+0558 DefMetal, dword /Защита, Металл/
+055С DefWood, dword /Защита, Дерево/
+0560 DefWater, dword /Защита, Вода/
+0564 DefFire, dword /Защита, Огонь/
+0568 DefEarth, dword /Защита, Земля/
+056С DefPhyz, dword /Физическая защита/
+0570 Flee, dword /Уклонение/
+0574 MaxFury, dword /Ярость, максимум/
+0578 Money, dword /Деньги/
+057С MaxMoney, dword /Деньги, максимально возможное/
+0580 EquipWeapon, word /оружие/
+0584 EquipHelmet, word /шлем/
+0588 EquipNecklace, word /бижа верх/
+058C EquipManteau, word /накидка/
+0590 EquipShirt, word /корпус/
+0594 EquipWaistAdorn, word /бижа низ/
+0598 EquipFootwear, word /штаны/
+059C EquipBoots, word /обувь/
+05A0 EquipWristBracer, word /наручи/
+05A4 EquipRing1, word /кольцо 1/
+05A8 EquipRing2, word /кольцо 2/
+05AC EquipProjectile, word
+05B0 EquipFly, word /ID полета/
+05B4 EquipBodyFashion, word /стиль пиджак/
+05B8 EquipLegwearFashion, word /стиль штаны/
+05BC EquipSpecialFootwears, word /стиль туфли/
+05C0 EquipArmFashion, word /стиль перчатки/
+05C4 /знаки атаки/, word
+05C8 /книга/, word
+05CC EquipSmiley, word /смайлы/
+05D0 Equip GuardianCharm, word /амулет хп/
+05D4 Equip SpiritCharm, word /амулет мп/
+05D8 EquipBox, word
+05DC EquipGenie, word /wid одетого джина/
+05E0 /торговая лавка/, word
+05E4 /стиль прическа/, word
+05F4 /стиль оружие/, word
+0600 /карта Разрушение/, dword
+0604 /карта Уничтожение/, dword
+0608 /карта Долголетие/, dword
+060С /карта Здоровье/, dword
+0610 /карта Тайна/, dword
+0614 /карта Загадка/, dword
+0620 Reputation, dword
+062C FlagPeaceZone, byte
+065C ClanID, dword
+0660 ClanPost /Должность в клане/
+06B0 +0 PlayerName, wchar*8 (UText / Unicode String)
+06B8 ClassID, byte
+06BC Gender, byte
+06C4 WalkMode, byte
+06C8 RunMode, byte
+0740 Meditation, byte /State/
+0784 PartyMember, array /Структуры членов группы/
+0B24 WaitPotHMP, dword
+0B64 WaitPotHP, dword
+0B6C WaitPotMP, dword
+0B84 /откат руна переноса/
+0B94 WaitPlayerInfo
+0D3C Target, dword

+0F48 Инвентарь
+0F48 + 0x10 - Inventory count /количество ячеек инвентаря
+0F48 + 0x0C + [0x04 * I] (I = 0 .. Inv_count) - структура
+ 0x08 - тип предмета (одежда, оружие, зелье и т.п.)
+ 0x0C - ID предмета
+ 0x14 - количество в ячейке
+ 0x4C + 0x0 - название предмета (unicode)
+ 0x18 - максимальное кол-во в ячейке
+ 0x1C - цена (у торговца)
+ 0x64 - требуемый уровень

+13A8 ActionArray
+13B0 QuestArray
+ 13B0 + 0x08 + 0x0 Quest count
+ 13B0 + 0x08 + (0x8+I*0x20) Quest ID (I = 0 .. Quest count)

+13C0 PetArray
+ 0x0C - Pet count / количество петов
+ 0x08 - Pet number / номер призванного пета
+ 0x3C - Pet WID / WID призванного пета
+ [0x10 + I * 0x04] (I = 0 .. Pet count) - массив петов
++ 0x04 - loyale / верность
++ 0x2C - epx / текущий опыт
++ 0x24 - level / уровень питомца
++ 0x38 - HP
++ 0x34 + 0x0 - Pet Name

+13D4 + [0x04 * I] (I=0 .. Skills_count) / массив скиллов
+13D8 - SkillCount
+ 0x08 - Skill_ID
+ 0x0C - Skill_level
+ 0x10 - Cooldown / текущий откат (в миллисекундах)
+ 0x14 - Max Cooldown / максимальный откат скилла

Структура персов
BA + 0x1C + 0x1C + 0x1С + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x1С + 0x18 + [i*0x4] /i = 0 - 0x300/

Структура моба, NPC, пета
BA + 0x1C + 0x1C + 0x20 + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x20 + 0x18 + [i*0x4] /i = 0 - 0x300/
BA + 0x1C + 0x1C + 0x20 + 0x58 + [i*0x4] /i = 0 - 0x300/ ?
+0x278 +0 Name, wchar (UText / Unicode String)
+0x29C Distance, float

Структура лута
BA + 0x1C + 0x1C + 0x24 + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x24 + 0x18 + [i*0x4] /i = 0 - 0x300/

PackCall=0073BBB0
флаг таргета BA+1C+30+1458+3C
4D0 UnfreezeOffset
00C9EC00 Unfreeze
Unfreeze 0043BF46 (84 C0 > B0 01 > B0 00)
Unfreeze 0043BF48 (88...75 > C6...01)
ZoomHack=004081D0
Walk1=0048DF20
Walk2=004922D0
Walk3=0048E3D0
Fly=00471CB0
FullTarget=00730FD0
UseSkill=0047CBF0
UseSkillGenie=004F5400
Assist=007704B0
Mining=0076EFE0
Pick=00730F60
PickWalk=00484440
NPCSelect=0076E5C0
TalkToNPC=00731400
Buy=007711A0
Sell=00771240
UseItem=00730D80
ButtonPress=0090F810
IdCancel=00C291E4
GUI=00914A70



BaseAdress=00CCEFAC
GameAdress=00CCF74C

HostPlayer Struct BA+0x1C+0x30+

+003C LocX, float
+0040 LocZ, float
+0044 LocY, float
+00B8 Skiling /1b, byte, флаг использования скилла/
+0288 Mining /1b, byte, флаг копки реса/
+04A4 WID, dword /Мировой ID перса/
+04B0 LeveL, dword /Уровень перса/
+04B4 Status, dword /Статус перса/
+04B8 HP, dword /Жизненная сила/
+04BC MP, dword /Магическая энергия/
+04C0 Experience, dword /текущий Опыт/
+04C4 Spirit, dword /текущий Дух/
+04C8 SkillPoins, dword /Доступно очков для распределения/
+04CC Fury, dword /Единицы Ярости/
+04D0 Atack /Атака/
+04D4 Def /Защита/
+04D8 Krit /Шанс крита/
+04E0 Steal /Скрытность/
+04E4 Detect /Обнаружение/
+04E8 Damage /Урон по монстрам/
+04EC Protect /Защита от монстров/
+04F0 Morale /Боевой дух/
+04F4 Vitality, dword /Выносливость/
+04F8 Intellect, dword /Интеллект/
+04FC Strength, dword /Сила/
+0500 Dexterity, dword /Ловкость/
+0504 MaxHP, dword /Максимум Жизненной Силы/
+0508 MaxMP, dword /Максимум Магической Энергии/
+0524 Hit, dword /Меткость/
+0528 MinPhyzAtk, dword /Физ Атака, мин/
+052C MaxPhyzAtk, dword /Физ Атака, макс/
+0560 MinMagAtk, dword /Магическая атака, минимум/
+0564 MaxMagAtk, dword /Магическая атака, максимум/
+0568 DefMetal, dword /Защита, Металл/
+056C DefWood, dword /Защита, Дерево/
+0570 DefWater, dword /Защита, Вода/
+0574 DefFire, dword /Защита, Огонь/
+0578 DefEarth, dword /Защита, Земля/
+057C DefPhyz, dword /Физическая защита/
+0580 Flee, dword /Уклонение/
+0584 MaxFury, dword /Ярость, максимум/
+0588 Money, dword /Деньги/
+058С MaxMoney, dword /Деньги, максимально возможное/
+0590 EquipWeapon, word /оружие/
+0594 EquipHelmet, word /шлем/
+0598 EquipNecklace, word /бижа верх/
+059c EquipManteau, word /накидка/
+05A0 EquipShirt, word /корпус/
+05A4 EquipWaistAdorn, word /бижа низ/
+05A8 EquipFootwear, word /штаны/
+05AC EquipBoots, word /обувь/
+05B0 EquipWristBracer, word /наручи/
+05B4 EquipRing1, word /кольцо 1/
+05B8 EquipRing2, word /кольцо 2/
+05C0 EquipFly, word /ID полета/
+05EC EquipGenie, word /wid одетого джина/
+0608 Reputation, dword
+066C ClanID, dword
+06C0 +0 PlayerName, wchar*8 (UText / Unicode String)
+06C8 ClassID, byte
+06CC Gender, byte /пол/
+06D4 WalkMode, byte
+06D8 RunMode, byte
+0750 Meditation, byte /State/
+0794 PartyMember, array /Структуры членов группы/
+07B0 WaitSkill
+07B4 SkillID
+0B34 WaitPotFP, dword /Откат смешанных зелий/
+0B74 WaitPotHP, dword /Откат зелий здоровья/
+0B7C WaitPotMP, dword /Откат зелий маны/
+0BA4 WaitPlayerInfo,dword /Откат информации/
+0BAC WaitPetPot, dword /Откат кормления/
+0BC4 WaitChemistry, dword /Откат химии/
+0BD4 WaitCharms, dword
+0D64 Target, dword
+0DAC GroundZ, float
+0E64 Jamp
+0F74 Инвентарь
+0F74 + 0x10 - Inventory count /количество ячеек инвентаря
+0F74 + 0x0C + [0x04 * I] (I = 0 .. Inv_count) - структура
+0F78 Equipment
+0F7C QuestItems
+13D4 ActionArray
+13DC QuestArray
+13DC + 0x08 + 0x0 Quest count
+13DC + 0x08 + (0x8+I*0x20) Quest ID (I = 0 .. Quest count)
+13EC PetArray
+1400 + [0x04 * I] (I=0 .. Skills_count) / массив скиллов
+1404 - SkillCount
+1484 TargetArray +18C X, +190 Z, +194 Y, +D64 ID

Структура персов
BA + 0x1C + 0x1C + 0x1С + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x1С + 0x18 + [i*0x4] /i = 0 - 0x300/

Структура моба, NPC, пета
BA + 0x1C + 0x1C + 0x20 + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x20 + 0x18 + [i*0x4] /i = 0 - 0x300/
BA + 0x1C + 0x1C + 0x20 + 0x58 + [i*0x4] /i = 0 - 0x300/ ?
+03C LocX
+040 LocZ
+044 LocY
+0B4 Type
+120 WID
+124 ID
+128 Lvl
+130 HP
+17C MaxHP
+27C Feature
+288 +0 Name
+2B0 Distance
+2E0 Envilopment
+2F0 Action
+318 MagAttack
+31C Attack

Структура лута
BA + 0x1C + 0x1C + 0x24 + 0x14 Count, dword /Количество/
BA + 0x1C + 0x1C + 0x24 + 0x18 + [i*0x4] /i = 0 - 0x300/
+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x110 WID, dword
+0x114 ID, dword
+0x150 Type, 2byte
+0x Lvl, dword
+0x15C Distance, float
+0x168 +0x0 Name, wchar (UText / Unicode String)

PackCall=00751D10
4D0 UnfreezeOffset
Walk1=00490E00
Walk2=004954B0
Walk3=004912D0
Fly=00474360
Autopath=00449770
FullTarget=00746BD0
UseSkill=0047F790
UseSkillGenie=004F9FB0
Assist=00786980
Mining=007854B0
Pick=00746B60
PickWalk=00487020
NPCSelect=00784A90
TalkToNPC=00747000
Buy=00787670
Sell=00787710
UseItem=00746980
ButtonPress=00937490
IdCancel=00C581B4
ChatStart=00CD47E8
ChatEnd=00CD47EC
ChatMax=00CD47F0
ChatNumber=00CD47F4
Autoattack=00784AD0 /Автоатака по таргету/

DialogOpAddrec 93C700
EXP_Calc_Base: CD03C0

Arvol
27.10.2011, 18:13
BA+1C+034+107C+I*4 Skills array (I=Number of active skills)} //Массив умений
BA+1C+034+1050 Actions array //Массив действий

Это_Что_то
28.10.2011, 03:13
блин оффсеты не верные
деньги например не 558 а 554

demon6
28.10.2011, 16:58
искал базовый адрес по одному из гайдов на этом сайте с помощью СЕ, получил 00B27A02 оч похож на адрес автора темы, ток чот на 2 не сходится....

_Rocksi_
28.10.2011, 21:59
+1068 PetArray {+(I*4+0x10)+0x38-HP +0x150-MaxHP}


Не верно:
+04C8 MaxHP, dword
+04CC MaxMP, dword

Правильно:
+4D0 MaxHP, dword
+04D4 MaxMP, dword

sumikot
29.10.2011, 23:20
Извиняюсь, некоторые адреса действительно неверны. В основном они были найдены автоматически. Там, где кто нибудь подтвердил правильность, через слеш даю имя (кроме раздела структура игрока). В понедельник освобожусь, постараюсь проверить все вручную. Так как сам играю на фришке, оффсеты на оффе ищу только в очень свободное время, от игры в том числе, к сожалению...
И к очень большому сожалению - активность проверки очень маленькая... Такое впечатление, что со времен форума елитепвперс интересующихся этой темой стало раз в 10 меньше.

demon6, базовый адрес точно верен - у меня он проверяется 2мя способами и было подтверждение в другой ветке, можно не сомневаться.

sirkio
30.10.2011, 10:27
Исправь:

+04C8 MaxHP, dword
+04CC MaxMP, dword


На следующие:


+04D0 MaxHP, dword
+04D4 MaxMP, dword


Добавлено через 6 минут
Дополнения (ссори яесли уже некоторые написаны правельно)

(все проверенно мною)


FreezeFunction = 431F04
FreezeFlag = B28534
GameRun = B280C4
HostPlayerStruct = 34
PlayerName = 638
PlayerHP = 490
PlayerMP = 494
PlayerMaxHP = 4D0
PlayerMaxMP = 4D4
PlayerTargetID = B68
TargetMobHP = 12C
TargetMobMaxHP = 16C
HPPotionCD = A0C
MPPotionCD = A14
PetStruct = 1068
PetSlotID = 8
PetHPPrc = 1C
PetHP = 38

krysun
30.10.2011, 14:55
Интересует следующее:
Было:
В пределах радара:
GA +8 +20 - hashtable игроков
GA +8 +24 - hashtable мобов и NPC
GA +8 +28 - hashtable валяющихся на земле предметов и шахт

Все три контейнера устроены одинаково:
+14 - количество элементов во всем контейнере
+18 - адрес начала массива адресов первых элементов списков
+24 - количество списков

Структура элемента списка:
+0 - адрес следующего элемента в списке (или ноль)
+4 - адрес структуры объекта
+8 - World ID объекта

А что сейчас?

Добавлено через 3 часа 37 минут
Интересует следующее:
Было:
А что сейчас?
______________________________________________
Нашел, всем спасибо.
-= NPC/mob/pet list (sorted) =-
NPC count RBASE+0x1C+0x1C+0x24+0x14
NPC pointer RBASE+0x1C+0x1C+0x24+0x50+(X*0x4) X=NPC number (0 ... NPC count)
NPC X coord. RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x3C (400+X/10) Float
NPC Y coord. RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x44 (550+Y/10) Float
NPC Z coord. RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x40 (Z/10) Float
NPC id RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x11C
NPC pwdb id RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x120
NPC current HP RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x12C
NPC max. HP RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x16C
NPC name RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x254+0x0 Text (Unicode)
NPC spec. feat. RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)+0x248

-= PPL list (sorted) =-
PPL count RBASE+0x1C+0x1C+0x20+0x14
PPL pointer RBASE+0x1C+0x1C+0x20+0x88+(X*0x4) X=PPL number (0 ... PPL count)
PPL X coord. RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x3C (400+X/10) Float
PPL Y coord. RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x44 (550+Y/10) Float
PPL Z coord. RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x40 (Z/10) Float
PPL id RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x46C
PPL lvl RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x478
PPL cultivation RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x47C
PPL current HP RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x480
PPL current MP RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x484
PPL max. HP RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x4C0
PPL max. MP RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x4C4
PPL name RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x628+0x0 Text (Unicode)
PPL HP charm RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x59C
PPL MP charm RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x5A0
PPL cathop name RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x724+0x0 Text (Unicode)

-= Resource/Loot list (unsorted) =-
Resource count RBASE+0x1C+0x1C+0x28+0x14
Resource pointer RBASE+0x1C+0x1C+0x28+0x18+(X*0x4) X=Resource number (0 ... 768)
Resource X coord. RBASE+0x1C+0x1C+0x28+0x18+(X*0x4)+0x4+0x3C (400+X/10) Float
Resource Y coord. RBASE+0x1C+0x1C+0x28+0x18+(X*0x4)+0x4+0x44 (550+Y/10) Float
Resource Z coord. RBASE+0x1C+0x1C+0x28+0x18+(X*0x4)+0x4+0x40 (Z/10) Float
Resource ID RBASE+0x1C+0x1C+0x28+0x18+(X*0x4)+0x4+0x10C
Resource name RBASE+0x1C+0x1C+0x28+0x18+(X*0x4)+0x4+0x164+0x0 Text (Unicode)

likas
03.11.2011, 16:07
Что то печально с окнами..
Пытаюсь найти в клиенте эту структуру:
BA+0x1C+0x04+0x18+I+D
Уже при +0х04 значение ссылается на 0, а дальше вообще на неизвестное.
Кто то уже смотрел эту структурку? Не подскажете, как верно?

Skuka.95
20.11.2011, 09:54
sumikot, у тя там вс оффсеты перепутаны...
выкладываю то что успел проверить из списка..
498- опыт, 544-защита от земли .540- Защита от огня
53С-защита от воды 538 -защита от дерево 548-физ деф
54C-уклонение 4A4-чи
4C0-выносливость 4C4- интелект 4CC-ловкость 4C8-сила
4F0-меткость

HellD
22.11.2011, 01:30
похоже что тема забыта... ибо не исправлено даже то, что уже давно писалось... ((

AEBus
22.11.2011, 07:04
Автора темы можно изменить, если кто - то согласится поддерживать тему и развивать её - назначу автором

Skuka.95
22.11.2011, 07:07
похоже что тема забыта... ибо не исправлено даже то, что уже давно писалось... ((
ну как видиш часть оффсетов из его списка правельных я выписал, потом остальные проверю)

hiho
22.11.2011, 15:44
Походу народ думает, что чем меньше правильных оффсетов тут лежит, тем меньше псевдоботов-кликером появляется в игре

Skuka.95
22.11.2011, 15:57
Походу народ думает, что чем меньше правильных оффсетов тут лежит, тем меньше псевдоботов-кликером появляется в игре
ты думаешь люди не могут подставлять и проверять оффсеты ?

Skuka.95
22.11.2011, 17:21
особенно на мах хп уж точно... а если нет.. то и нафиг очередной безмозглый ботовод миру нужен? )) имхо! ))
ну я пока что безмозглый) лан тогда нестану выкладывать правельные оффсеты из списка автора)

Skuka.95
22.11.2011, 21:19
И были люди, которые разжевали мне и инжекты, и динамическую адресацию.
можешь мне разжуёшь про инжекты ? желательно в этой теме [Ссылки могут видеть только зарегистрированные и активированные пользователи] да бы не "флудить" тут

sumikot
22.11.2011, 21:46
Skuka.95, обязательно. Только уже не сегодня, оки?

HellD, да и так ошибок полно... еще если их и специально делать...

Да, потом неинформативные сообщения поудаляем - не будем давать работу модераторам )

Dinmaite
22.11.2011, 23:35
с утра... (~13:00) по мск удалю все свое...

речь не о конкретно этой теме.. а суммарно... мой пост про обезьяну с гранатой... не хочу никого обежать... но людей прежде чем дать им оружие, учат с ним обращаться... а мы даем им именно оружие... я просто предлагаю поставить его на предохранитель... пусть все правильные адреса лежат в подполье... (сам в нем не состою) здесь выкладывать... но выкладывать с частичными ошибками... мое мнение... завтра все свои сабжи удаляю.

Данный раздел создавался именно для открытого обсуждения любой доступной информации. Конечно лишь той, которой пользователи пожелают поделиться.
Адреса в подполье это нонсенс. Что бы рождались новые идею нужно освободить людей от потребности в создании велосипеда.

Prom4eg
23.11.2011, 02:01
Я не дополнил?? значит тока в мозгу и было ))) правильные оффсеты тока в подполье, в паблике, оффсеты с частичными ошибками ))

А что означает с частичными ошибками? Я вот 3 дня пытался сообразить чем отличается флажок анфриза от функции, перечитал кучу тем по несколько раз, кучу раз убивал клиент игры пытаясь менять значения.Очень смущало небольшое различие выложенного адреса функции и того который прописан в настройке фоксбота, но Я вроде бы разобрался. Вот мне и интересно какую же частичную ошибку можно сделать например в данном случае?

Мне бы очень хотелось не обычного написание готовых адресов и смещений, а побольше материала о том какими путями это можно найти =) и желательно без всяких там ошибок =)

Добавлено через 6 минут
Кстати, пока искал нужное мне пришел у выводу, что даже с правильной информацией далеко не каждый может, а скорее всего желает этой информацией воспользоватся, большинству подавай готовых "супер-пупер" ботов =) так зачем же еще больше осложнять жизнь тем единицам которые пытаются хотя бы в чем нибудь разобраться.

Skuka.95
23.11.2011, 07:11
Я не дополнил?? значит тока в мозгу и было ))) правильные оффсеты тока в подполье, в паблике, оффсеты с частичными ошибками ))
а зачем ? с одними лишь оффсетами они бота не сделают, тут как минимум нужно знания инжектинга)

Dinmaite
23.11.2011, 18:39
тут как минимум нужно знания инжектинга)
Этого, иногда, много для бота.

VeTaL_UA
23.11.2011, 18:56
с одними лишь оффсетами они бота не сделают
Бота, хоть и неполноценного, можно сделать и записью в ячейку памяти, а это вполне реально сделать, зная оффсеты :)

А про адреса в подполье - бред полнейший... /facepalm

whoami
23.11.2011, 19:05
Иные умельцы делают ботов посылая WM_KEY* окну =)

Dinmaite
23.11.2011, 19:29
В использовании инжектов главное знать где остановиться. Чтобы не превращать средство в самоцель.
Кроме того, чем меньше использовано инжектов, и чем меньше использовано офсетов - тем проще поддерживать бота в будующем :)

Edellake
23.11.2011, 19:46
В теме чуть выше все молчат.. неужели никто не знает оффсет для получения данных о пати и вообще ПЛа?

sumikot
23.11.2011, 20:06
Все таки понял, что смущает народ - смогут сделать бота vs не смогут сделать бота :)

Большая просьба тем, кто отписывается по теме - будьте внимательны. Если не хотите выдавать суперсекретные данные, лучше не пишите. Дезы в сети и так много.

RBASE+0x1C+0x1C+0x24+0x50+(X*0x4)
RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)

HellD
26.11.2011, 19:42
+0x150 MaxHP
либо утки высоко летают, либо я собаку низко подкидываю... потому что как не кручу, нефига у меня тут максхп пета не выдается...

Prom4eg
27.11.2011, 06:23
либо утки высоко летают, либо я собаку низко подкидываю... потому что как не кручу, нефига у меня тут максхп пета не выдается...

У мистиков выдается =) у друлек нет.

Есть вот такая штука еще
+1C PetHP(%) (float)
отсюда и макс ХП можно узнать

HellD
27.11.2011, 13:50
вот надо было подписать что для мистиков )) а то я уж подумал, что я полный идиот, и зачем то всю жизнь получал мхп через
+1C PetHP(%) (float)
когда все можно было сделать намного проще )) правда подозрения все равно были, учитывая количество прокаченых друлек в попытках найти этот самый злополучный оффсет ))

begemottio2
27.11.2011, 19:23
Тоже задам пару вопросов =)

1) Что такое Duration of life/recall of a pet?
2) Где лежит WID текущего призванного пета? Раньше, по разным сведениям, было либо GA + HostPlayer + $74C, либо GA + HostPlayer + PetStruct + $38

Заранее спасибо.
P.S.: FlagPeaceZone будет правильнее :)
P.P.S.: Windows Struct + $810 - количество сломанных/вот-вот сломающихся вещей (Broken Items Count (1b)).

sumikot
28.11.2011, 12:08
P.P.S.: Windows Struct + $810 - количество сломанных/вот-вот сломающихся вещей (Broken Items Count (1b)).
Это получается BA+0x1C+0x04+0x18+0x810 ? Окно показа сломанной вещи? Не понял, но сегодня постараюсь найти.
Про пета будем ответ от Helld ждать - у меня на офе есть кто угодно, друлей нет)
Прийдется наверно хоть одну друльку завести и докачать до квеста приручения петов - для проверки.

Skuka.95
28.11.2011, 12:21
sumikot, могу дать друльку на время на сириусе)

sumikot
28.11.2011, 13:24
sumikot, могу дать друльку на время на сириусе)
Давай, только для качественного поиска офсетов нужна друля 102 лвл с голд шмотом и фулл доступом :) временно конечно. В жизни все временно, как ни крути )

begemottio2
28.11.2011, 13:50
sumikot, BA + 1C + 18 + 8 + 810

Skuka.95
28.11.2011, 14:44
Давай, только для качественного поиска офсетов нужна друля 102 лвл с голд шмотом и фулл доступом
я под столом)
надеюсь дру 30 лвл пойдёт)) щас вышлю логин и пароль) (сервер сириус)

Prom4eg
28.11.2011, 15:40
2) Где лежит WID текущего призванного пета? Раньше, по разным сведениям, было либо GA + HostPlayer + $74C, либо GA + HostPlayer + PetStruct + $38

GA + HostPlayer + PetStruct + $3С --- Если я правильно понимаю то так

begemottio2
28.11.2011, 19:46
Да, оно самое. Спасибо =)

(NevO)
28.11.2011, 21:22
Скиньте плиз elementclient.exe из которого выдергивались эти адреса. у меня почему-то валхак не принимает бейс адрес(

AEBus
28.11.2011, 21:43
у меня почему-то валхак не принимает бейс адрес(
этот? ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

а этот пробовал ([Ссылки могут видеть только зарегистрированные и активированные пользователи])? по моему намного удобнее

HellD
28.11.2011, 23:13
Про пета будем ответ от Helld ждать - у меня на офе есть кто угодно, друлей нет)
ответа?? а у меня никто ничего не спрашивал )) про какого пета? )) если речь про макс хп, то на сколько я для себя понял его просто не существует... либо высчитывается он просто по какой то форумуле внутри клиента, либо так же как и большинство через
+1C PetHP(%) (float)
но CE при различных условиях поиска, при различных петах и ситуациях выдавал в конечном итоге либо что то явно не то, либо вообще заканчивался поиск нулевым результатом ((

я, конечно, не исключаю возможности что я где то ошибся... и не утверждаю, что его нет сто процентов, вперед ищите если желание есть )) но то, что я его не нашел... а пробовал не раз, эт факт )

begemottio2
29.11.2011, 05:21
HellD, Что такое Duration of life/recall of a pet?

HellD
29.11.2011, 05:34
HellD, Что такое Duration of life/recall of a pet?
Если я правильно понял, это что то вроде секундомера, который сбрасывается на ноль при призыве и отзыве любого пета...

Jordi333
29.11.2011, 14:31
у меня вопрос уважаемые знатаки\хакеры) раз мизвесты офф сеты нельзя взять бота пвавто и тупо забить другие офф сеты?

Skuka.95
29.11.2011, 14:37
нельзя
вот и ответ

VeTaL_UA
29.11.2011, 16:36
раз мизвесты офф сеты нельзя взять бота пвавто и тупо забить другие офф сеты?
Можно. Только для этого нужна знания ассемблера и умение пользоваться дебагером и хекс редактором...

Skuka.95
29.11.2011, 16:44
Можно. Только для этого нужна знания ассемблера и умение пользоваться дебагером и хекс редактором...
или тупо спросить исходники у автора

HellD
29.11.2011, 17:31
у меня вопрос уважаемые знатаки\хакеры) раз мизвесты офф сеты нельзя взять бота пвавто и тупо забить другие офф сеты?
Как же все просто )) и зачем тут все головы ломают... Что то ищут, разбираются, придумывают... нужно просто взять оффсеты и !тупо! забить их в пвавто )) Все ж так просто... снимаю шляпу перед Вашей гениальностью...
Ну так попробуй забить... а если слишком сложно, то есть еще одно веселое занятие, думать прежде чем писать ))

Skuka.95
29.11.2011, 17:36
HellD, ну это уж грубо как то, хотя в чём то ты прав)
p.s. ушол изучать 180 страниц писанины на элитпвперс

VeTaL_UA
29.11.2011, 17:48
или тупо спросить исходники у автора
Легче уже дебагером изменить, чем сорцы у него выпросить...


есть еще одно веселое занятие, думать прежде чем писать ))
:D

sumikot
29.11.2011, 17:51
Skuka.95, вообще то про друлю - это была шутка с моей стороны....
Так что логин-пасс запоминать и записывать не стал. Спасибо, конечно.

Можно. Только для этого нужна знания ассемблера и умение пользоваться дебагером и хекс редактором...

Если бот не упакован. Если не сильно изменились коды для инжекта. В общем, легче написать нового...

Есть вопрос - для чего использовался оффсет
BA+1C+58+04+08+24+08+20+AF8 в версии с базовым 009C0E6C ?

Skuka.95
29.11.2011, 17:54
Легче уже дебагером изменить, чем сорцы у него выпросить...
ну владеть исходниками пвАвто тоже хорошо...)
Skuka.95, вообще то про друлю - это была шутка с моей стороны....
эх, ну спасибо за то что хоть дру цела)
p.s. блин чё то я тут зафлудился(

HellD
29.11.2011, 18:24
Есть вопрос - для чего использовался оффсет
BA+1C+58+04+08+24+08+20+AF8 в версии с базовым 009C0E6C ?
я, конечно, далеко не уверен в правильности моей версии... AF8 это id персонажа... да и +20 это как раз структура игрока... так что.. думаю что то из этой серии... был бы тут цикл... сказал с большой долей уверенности, что это получение id персонажей в клане, или еще где нить ))

sumikot
29.11.2011, 19:41
цикла нет явно, цепочка прямая. Если из структуры персонажа на той версии - это таргет.
Если из структуры игроков - даже не знаю что, там по моему, вся структура 0х870 байт весила.
но цепочка очень длинная...
и +1С +58 я сюда и не лазил никогда...
полностью выглядит так
mov eax, 009C14F8 ; это GA только -1С
mov eax, [eax+1Ch]
mov eax, [eax+58h]
mov eax, [eax+4]
mov eax, [eax+8]
mov eax, [eax+24h]
mov eax, [eax+8]
mov eax, [eax+20h]
mov eax, [eax+0AF8h]

и обидно что проверить негде...

Skuka.95
29.11.2011, 19:47
это GA только -1С
сразу написал бы что это ba , т.к. GA=BA+1c
и обидно что проверить негде...
всмысле ?

sumikot
29.11.2011, 19:58
сразу написал бы что это ba , т.к. GA=BA+1c
по смыслу это и есть [BA], просто дал как в оригинале
а mov eax, [009C0E6C] и mov eax, 009C14F8 по смыслу не отличается никак, только синтаксисом.

p.s. ушол изучать 180 страниц писанины на элитпвперс
а зря не прочитал - на основе данных из этой ветки у меня бегал бот по треку вокруг ГО, собирал Т1. За ночь приносил минимум 1кк выручки. 2 "но" - это было давно, цены явно изменились; бегал он методом "тыка" с подменой координат, что не есть гуд.

всмысле ?
В смысле версии клиента 009C0E6C уже нет.

Skuka.95
29.11.2011, 21:02
Ого, тему закрепили, значит мне уже опасно тут флудить)
p.s. надо чёнить полезное написать а то ещё красную выдадут(
а зря не прочитал
180 страниц ?) ты шутиш что ли)

p.p.s. у тя тут нехватает оффсета в структуре петов... офст растояния..
MobStructure+$278 расстояние до моба

sumikot
29.11.2011, 21:57
у тя тут нехватает оффсета в структуре петов... офст растояния..
поставил, хотя и есть подозрение, что он со старой версии клиента. Проверить не могу сейчас - один проектик в дверь постучался ))

barmatula
03.12.2011, 12:38
может кто дать офф сет рабочий под PW Window Unfreezer?Или уже не работает эта программа?Ну или рабочий анфризер

VeTaL_UA
03.12.2011, 12:53
Ну или рабочий анфризер
Вот же он ([Ссылки могут видеть только зарегистрированные и активированные пользователи])...

Nickitee
03.12.2011, 16:11
Ребятки, решил заняться написанием софта для PW.
Пока только учусь находить оффсеты.
Стал вопрос,
вот я нашёл BA - 0x00B27A04
Как мне теперь получить GA в таком же виде как и BA?
(Принимаю и кодом на C# :D)

Skuka.95
03.12.2011, 16:40
попробуй эту прогу....[Ссылки могут видеть только зарегистрированные и активированные пользователи] исходники прилогаются)
p.s. Base_Adress это GA
а Base_CallAdress это ВА

VeTaL_UA
03.12.2011, 17:12
Как мне теперь получить GA в таком же виде как и BA?
GA=BA+1C

Nickitee
03.12.2011, 19:20
Если не трудно, дайте оффсет дистанции от моба. Ибо который в первом посте - устарел.
//Поправка, оффсет работает, просто вышла ошибочка в коде.

sin(alpha)
10.12.2011, 15:44
+058C - ID полета
+06F8 - scill flag

semoder
12.12.2011, 01:29
GA+34+728+C+0+0+0 Имя клана

begemottio
16.12.2011, 22:47
0001 0001 0000 0001 - не только голд, но и грин. Осталось кому-то оранж выронить для полноты картины :)

FreePVP)))
16.12.2011, 22:50
GA+34+728+C+0+0+0 Имя клана
728 - структура клана?
GA+34+CA6(byte) - флаг блокировки паролем от банка

semoder
16.12.2011, 23:43
728 - структура клана?
Глубже не копал)

krukovis
23.12.2011, 19:08
Добрый день!

Раньше структура игроков рядом описывалась так: GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])

А сейчас я вижу что BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

Исчез (+0)^J
Делаю вывод - Теперь все игроки на одной странице. Но вроде как это не может быть? Или может?

krukovis
24.12.2011, 19:15
+0A44 WaitPotPet* - правильный адрес. подтверждаю.

sumikot
24.12.2011, 23:02
krukovis
Просто проверил в гд днем, когда много котов по GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])
Некоторых персов бот не видит. В таргет берешь - в игре инфа по персу есть. Бот найти его не может.
Причем разница между счетчиком +14 и посчитанными персами на всех страницах небольшая - допустим, 128 по счетчику и 135 на страницах. Предположил, что есть еще какой то механизм, который я не знаю. Либо еще одна страница, наподобие кеша - для старых записей. Потому как не видны в боте были в основном коты, которые долго стояли. Новый перс вошел - его сразу видно, а на некоторых котах хоть затыкайся....
Так что формула не изменилась, просто я ее полностью не знаю.

HellD
25.12.2011, 00:43
А чем вас GA+$34+$38с+$88+I*4 не устраивает? )

sumikot
27.12.2011, 18:33
Helld
А чем вас GA+$34+$38с+$88+I*4 не устраивает? )
Если обратить внимание на шапку, то там это есть.

opex90
27.12.2011, 21:41
Простите если не в тему.
Как в делфи прочесть имя перса? раньше это запросто делалось а сейчас какойто набор символов выдает

krysun
27.12.2011, 21:59
Дополню структуру питомца: (проверено)


//Питомец
OfActivePetId = $774
OfPet= $1068;
OfPetName= $34;// +0 имя (WideChar string)
OfPetHp= $38;//текущее значение хп
OfPetHpPerc= $1C;//Значение ХП в процентах (float, от 0.00 до 1.00)
OfPetLoyale= $4;//верность
OfPetLvl= $24;//уровень
OfPetExp= $2C;//Опыт
OfPetSkillId1=$40;//Id скила 1 (bot.ini) // Названия скилов по id в соседней ветки
OfPetSkillId2=$50;//Id скила 2 (bot.ini) // ...проверено, совпадает.
OfPetSkillId3=$60;//Id скила 3 (bot.ini)
OfPetSkillId4=$70;//Id скила 4 (bot.ini)
OfPetCd1= $48;//Откат скила №1
OfPetCd2= $58;//Откат скила №2
OfPetCd3= $68;//Откат скила №3
OfPetCd4= $78;//Откат скила №4
OfPetHunger= $8; //голод
//0
//1
//2 -изголодавшийся
//6,7 -полуживой
//8 -умирающий

Добавлено через 8 минут
Простите если не в тему.
Как в делфи прочесть имя перса? раньше это запросто делалось а сейчас какойто набор символов выдает



function GetPlayerName(Local_hProc:dword):string;
var
data,rw:dword;
str:string;
begin
ReadProcessMemory(Local_hProc,ptr($00B280C4),@data ,sizeof(data),rw);
ReadProcessMemory(Local_hProc,ptr(data+$34),@data, sizeof(data),rw);
ReadProcessMemory(Local_hProc,ptr(data+$638),@data ,sizeof(data),rw);
ReadProcessMemory(Local_hProc,ptr(data),@str,32,rw );

Result:=str;
end;

sumikot
28.12.2011, 00:36
Спасибо, krysun. Не за себя - мне оффсеты пета не нужны. Просто приятно видеть, что не все "свое личное, накопанное таким трудом" держат только для себя. Всех с наступающим!

krukovis
29.12.2011, 17:49
Cтруктура пета описывается немного элегантнее, если знать, что

PetsStruct + 0x8 - это PetHutch - № клетки вызванного пета 0-9 или -1 (0xFFFFFFFF)- не вызван (PetsStruct надо понимать как HostPlayerStruct + 0x1068)
А дальше через этот параметр приходим в структуру нужного нам пета:
PetStruct + (PetHutch * 0x4 + 0x10) - пусть это будет CurrentPetStruct
И уже в ней имеются все параметры как:
+0x4 - PetLoyalty
+0x8 - PetHungry и т.д. на первой странице остальная инфа.
Вот этого параметр никто не выкладывал, по-моему:
+0x18 - PetClass - класс пета (0-ездовой, 1-друид, 2-декор)
И дальше красивее, по-моему тогда описывать скиллы пета так: ( j - номер нужного нам скила от 0 до 3)
+ ( j * 0x10 + 0x40 ) -/dword/ PetSkillID
+(j * 0x10 + 0x44) - /bool/PetSkillAviable - выучен ли скилл 0- не выучен, 1-выучен
+((j*0x10 +0x48) ) - /dword/PetSkillCoolDown

krysun
29.12.2011, 19:37
+(j * 0x10 + 0x44) - /bool/PetSkillAviable - выучен ли скилл 0- не выучен, 1-выучен
Пригодилось) Спасибо)

krukovis
29.12.2011, 22:08
Адрес UseSkill=00463630* для инжектов не фурычит. Не подскажите правильный? Или гайд как самому адреса инжектов искать?

semoder
29.12.2011, 23:40
Адрес UseSkill=00463630* для инжектов не фурычит. Не подскажите правильный? Или гайд как самому адреса инжектов искать?


Нормально пашет)))
Delphi
procedure SkillCall(aPParams:PParams); stdcall;
var CallAddress:pointer;
P1:DWord;
begin
CallAddress:=Pointer($00463630);
P1:=aPParams^.Param1;
asm
pushad
mov ecx, dword ptr [BASE_ADD]
mov ecx, dword ptr [ecx+$1C]
mov ecx, dword ptr [ecx+$34]
push $FFFFFFFF
push $00
push $00
mov edx, P1
push edx
call CallAddress
popad
end;
end;

AutoIt
Func INJECTSKILL($SKILLID)
$OPCODE = ""
PUSHAD()
MOV_ECX_DWORD_PTR($BASEADD)
PUSH(-1)
PUSH(0)
MOV_EDX_DWORD_PTR_ECX_ADD(28)
PUSH(0)
PUSH($SKILLID)
MOV_ECX_DWORD_PTR_EDX_ADD(52)
MOV_EAX(4601392)
CALL_EAX()
POPAD()
RET()
INJECTCODERUN($PID)
EndFunc

krukovis
30.12.2011, 09:01
Добавлено через 7 минут
Нормально пашет)))
Сори... Все действительно пашет.
Я просто забыл в функции поправить указатель на структуру персонажа в строчке "mov ecx, dword ptr [ecx+$34]", у меня старые +$20 стояло.

Кстати, а если полностью на пакеты переходить, там же нужно контролировать постоянно расстояние до цели иначе не будет скилл кастоваться? Есть способ узнать максимальное расстрояние для скила, кроме как глазами посмотреть в игре в описании скила? Или проще находиться от цели на каком расстроянии просто всегда заведомо достаточном для кастования?

krysun
30.12.2011, 13:13
Добавлено через 7 минут
Или проще находиться от цели на каком расстроянии просто всегда заведомо достаточном для кастования?

Если OUT бота пишешь, то смысл есть....
При использовании инжекта скила все намного проще... Сам бежит сколько надо. Не заморачивайся только на пакетах....

Добавлено через 2 минуты
+(j * 0x10 + 0x44) - /bool/PetSkillAviable - выучен ли скилл 0- не выучен, 1-выучен
Это лвл скила. 0=не выучен, 1,2,3,4,5 - его уровень. Не путайте людей.

BeniRey
02.01.2012, 14:14
Подскажите пожалуйста как можно найти такие оффсеты как :
<offset name="Name" value="0x638" type="string" />
<offset name="TargetID" value="0xB68" />
Это сейчас на руофе
А я хочу найти на фришке, но пока без успешно.. (PW Crystal)
Ищу при помощи СЕ 6.1
Если у кого нибудь есть какая нибудь информация по этой фришке, поделитесь пожалуйста, если конечно это возможно...:bow:

semoder
02.01.2012, 14:28
1. Через CE ищешь имя перса в Unicode, смотришь нужное(например изменяй значение имени на что нибудь другое, и смотри когда оно изменится над головой) потом смотри откуда идёт доступ к этому адресу...
2. вводишь в консоль d_showid появятся WID'ы мобов над их головами, выбери любого и ищи его WID через CE, выбери другого моба, отсей все значения, и опять смотришь откуда идёт доступ к памяти...

Объяснять толком не умею, но думаю суть ясна

BeniRey
02.01.2012, 17:42
Подскажите в чем моя ошибка?
Нахожу Адрес изменяя значение которого меняется имя персонажа над головой, просматриваю информацию нахожу на что ссылается. Тут у меня ступор:
1. Не могу понять где смещение..
2. Почему второй адрес ссылается сам на себя
На скрине слева первый адрес справа второй адрес

BritishColonist
02.01.2012, 18:52
HostPlayerStruct
+0xC = [float] синус угла поворота
+0x2C = [float] косинус угла поворота

P.S. Очень вероятно, что по таким же оффсетам будут синус и косинус у любого моба, НиПа и т.д.

BeniRey
02.01.2012, 21:52
HostPlayerStruct
+0xC = [float] синус угла поворота
+0x2C = [float] косинус угла поворота

А можно по подробнее об этом? Просто я не совсем понял что от чего и к чему... Для меня все это ново, я еще только пытаюсь во всем этом разобраться.

Lёхa
02.01.2012, 22:06
А можно по подробнее об этом? Просто я не совсем понял что от чего и к чему... Для меня все это ново, я еще только пытаюсь во всем этом разобраться.

Эт не тебе было адресовано. Это дополнение к оффсетам структуры персонажа

BritishColonist
02.01.2012, 22:42
ыы. Да не, я не тебе написал, а просто в дополнение к шапке. Люди оффсеты кидают, вот и я подкинул свои пять копеек.

А вообще, не знаю, в чём у тебя проблема. Ты уверен, что проверяешь нужный адрес? Попробуй другой.
И проверяй только те адреса, которые больше, чем начало структуры персонажа, но и чтоб не на много больше были. В общем, делай так: ищи ник, в таблицу добавляй только то, что больше начала структуры игрока, затем ставь на каждый адрес отладчик. Никаких там умножений в квадратных скобочках быть не должно. Скорее всего будет так: [ecx+12345] или [esi+12345].

Jok3r666
05.01.2012, 18:24
Привет народ, туплю по страшному. Есть инжект передвижения:CallAddress1:=Pointer($00468070);
CallAddress2:=Pointer($0046BCB0);
CallAddress3:=Pointer($00468470);
x:=aPParams^.Param4;
y:=aPParams^.Param5;
z:=aPParams^.Param6;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov esi, dword ptr [eax+$20]
mov ecx, dword ptr [esi+$FE0]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0C]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$FE0]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov eax, dword ptr [eax+$20]
mov eax, dword ptr [eax+$FE0]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad

Выделено:
Синий - заменил на адреса из шапки
Walk1=0046E410 /by VictorPr
Walk2=004728E0 /by VictorPr
Walk3=0046E880 /by VictorPr
Зеленый - заменил на офсеты из шапки
WalkOfs1=064C /by VictorPr
WalkOfs2=1050 /by VictorPr
Красный - хз че делать
Фиол - тоже хз

Разьясните что да как плиз.:wtf:

semoder
05.01.2012, 19:38
Лично у меня вот так

procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:cardinal;
begin
CallAddress1:=Pointer($0046E410);
CallAddress2:=Pointer($004728E0);
CallAddress3:=Pointer($0046E880);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [game_add]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1050]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0c]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1050]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [game_add]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1050]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;

procedure Walk(x,y,z:single);
var aParams: TParams;
ipbuf,BytesCount,BaseWalkMode:dword;
begin
ReadProcessMemory(hProcess, ptr(GAME_ADD), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$64C), @BaseWalkMode, sizeof(BaseWalkMode), BytesCount);
if BaseWalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.x:=x;
aParams.y:=y;
aParams.z:=z;
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aPar ams));
end;

BritishColonist
09.01.2012, 05:55
0xB27CE0 - [byte] OnlineFlag
значения:
= 0 (игрок не зашёл в аккаунт/не выбрал персонажа/ещё не дождался загрузки мира)
= 1 (игрок выбрал персонажа и находится онлайн в игре).

Идеальная проверка перед запуском бота.

ToRcH2565
09.01.2012, 09:47
+0CAC
+0С+[(0-31)*4] /Ячейка/
+0x08 ID
+0x10 Count /количество/

Весь моск сломал, может кто пояснить как сие считать?
на примере нулевой и 2 ячейки....)

semoder
09.01.2012, 10:21
Весь моск сломал, может кто пояснить как сие считать?
на примере нулевой и 2 ячейки....)

а что сложного?
GA+34+CAC+10+C+I*4+8(это ид вещи)
вместо I, ставь 0 или 2 :omg:

ReadProcessMemory(hProcess, ptr(game_add), @ch, sizeof(ch), BytesCount);
ReadProcessMemory(hProcess, ptr(ch+$34), @ch, sizeof(ch), BytesCount);
ReadProcessMemory(hProcess, ptr(ch+$CAC), @ch, sizeof(ch), BytesCount);
ReadProcessMemory(hProcess, ptr(ch+$10), @invmax, sizeof(invmax), BytesCount);
ReadProcessMemory(hProcess, ptr(ch+$C), @invstruct, sizeof(invstruct), BytesCount);
ReadProcessMemory(hProcess, ptr(invstruct+i*4), @itemstruct, sizeof(itemstruct), BytesCount);
ReadProcessMemory(hProcess, ptr(itemstruct+$8), @itemID, sizeof(itemID), BytesCount);

Опятьже вместо I, ставь 0 или 2 :eek:

ToRcH2565
09.01.2012, 10:47
GA+34+CAC+10+C+I*4+8(это ид вещи)

вот сего в исходной формуле незаметил)) да и не замечаю досих))))

но вобщем то спасибо именно за пример) по нему разобрался..)

Sanych89
09.01.2012, 18:56
Для инвентаря дополню:
CAC+C+I*4+58 - требуемый уровень, если это банка.
CAC+C+I*4+4C+0 - затрудняюсь, как его назвать, "глобальный тип". Пример. Банки на хп. ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
CAC+10 - количество ячеек в рюкзаке.
CAC+40+0 - название предмета.
Если было - извиняюсь, но в первом посте не обновлено.

krukovis
09.01.2012, 22:42
CAC+40+0 - название предмета.
Ну это не совсем название предмета. Это, как я понял, часть описания предмета при наведении мышкой в инвентаре.
Название предмета лежит тут:
CAC+C+I*4+54+С - где I - номер ячейки, но не все названия читаются.

Добавлено через 18 минут
Подскажите пожалуйста как можно найти такие оффсеты как :
<offset name="Name" value="0x638" type="string" />
<offset name="TargetID" value="0xB68" />
Это сейчас на руофе
А я хочу найти на фришке, но пока без успешно.. (PW Crystal)
Ищу при помощи СЕ 6.1
Если у кого нибудь есть какая нибудь информация по этой фришке, поделитесь пожалуйста, если конечно это возможно...:bow:

А ты хочешь чужой бот адаптировать под фришку или свой пишешь?
Если чужой и ты не понимаешь в программировании - то тут сложно помочь, только если за тебя найти.
А если свой пишешь и понимаешь чуток в программировании, то легкий и быстрый способ найти все искомые значения простым перебором в цикле. Т.е. перебираешь все смещения в каких то разумных пределах, пока не найдешь нужное значение при определенном смещении. Я так все смещения для фришки искал, да и сейчас под последнюю версию руофа.

semoder
09.01.2012, 23:49
Имена вещей читаются в зависимости от их типа...
Например

(itemType=0) or (itemType=3) то
ReadProcessMemory(hProcess, ptr(itemstruct+$e0),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$C),@itemNname,64,BytesCount);

(itemType=17) то
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$4c),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$8),@itemNname,64,BytesCount);
end

(itemType=2) то
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$cc),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$8),@itemNname,64,BytesCount);
end

(itemType=8) or (itemType=9) or (itemType=23) то
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$54),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$C),@itemNname,64,BytesCount);
end

(itemType=15) то
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$e8),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$C),@itemNname,64,BytesCount);
end

(itemType=20) or (itemType=27) or (itemType=32) or (itemType=5) or (itemType=10) or (itemType=13) or (itemType=19)or (itemType=31) then
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$4C),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$4),@itemNname,64,BytesCount);
end

itemType=43 then
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$54),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$4),@itemNname,64,BytesCount);
end

itemType=36 then
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$b8),@itemNtmpname,sizeof(itemNtmpn ame),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$4),@itemNname,64,BytesCount);
end

itemType=41 то
begin
ReadProcessMemory(hProcess, ptr(itemstruct+$10c),@itemNtmpname,sizeof(itemNtmp name),BytesCount);
ReadProcessMemory(hProcess, ptr(itemNtmpname+$4),@itemNname,64,BytesCount);
end

Остальные типы не рассматривал, потому что их не было в инвентаре)

krukovis
10.01.2012, 07:24
Имена вещей читаются в зависимости от их типа...

Спасибо за инфу!
Дополню до общей картины:
CAC+C+I*4+4 -(где I-номер ячейки) = ItemType - тип вещи из предыдущего примера.

krukovis
11.01.2012, 17:51
Доброго времени суток!
А кто нибудь знает где лежит информация в памяти клиента сколько ярости нужно для конкретного скилла, время отката, время пения, наименование?

BritishColonist
12.01.2012, 00:58
Присоединяюсь к вопросу. Ещё бы хорошо узнать кол-во затрачиваемой маны, длительность каста, а так же тип применения (на себя или на цель, атакующий или хилящий. наверняка есть в памяти) и, собственно, эффект (сколько урона, какой стихией и т.д.). Было бы здорово, ибо не придётся составлять базу скиллов для каждого класса.

Remii
13.01.2012, 07:28
Выкладываю по вашей просьбе:
[Ссылки могут видеть только зарегистрированные и активированные пользователи] Flugel PW
Версия в лаунчере - 42
24715

wajskopf
13.01.2012, 19:15
Подскажите по какому оффсету и какое значение должно быть фулл чи? То есть, то что выложено показывает текущий уровень ярости, а мне нужен фулл чи. Типа 1 или 0 (есть или нет)

krukovis
13.01.2012, 19:20
Я проанализировал значение 06F4 WaitSkill* - это указатель на структуру кастующегося в данный момент скилла. Если посмотреть дальше, то можно обнаружить следующие показатели:
+4 SkillID
+8 SkillID
+C SkillLvl
+10 SkillCoolDown
+14 SkillMaxCoolDown

Это смещение интересно по нескольким причинам:
1) Мы можем легко обнаружить какой скилл кастуется в данный момент посмотрев на его ID по смещению +8 - SkillID
2) Мы можем легко понять когда скилл перестал кастоваться - по этому смещению будет 0.

Я бы назвал это смещение как ActiveSkillPtr.

Добавлено через 8 минут
================================================== ===============================================
Подскажите по какому оффсету и какое значение должно быть фулл чи? То есть, то что выложено показывает текущий уровень ярости, а мне нужен фулл чи. Типа 1 или 0 (есть или нет)

На сколько я знаю полных чи нет. Да и зачем оно, если можно проверять кол-во ярости по смещению +4A4 в структуре персонажа. Если >= 100 - значит 1 чи есть, если >=200 - значит 2 чи, если >= 300 - значит 3 чи.

Добавлено через 15 минут
================================================== =============================================
/+0480 Chi, dword/*

По этому смещению лежит количество полных чи. Т.е. если это значение = I, то максимальное кол-во ярости будет I+99, где i = 0 to 3.

Добавлено через 1 час 47 минут
==================================================
Что то по этому адресу не вижу Ожидания призыва пета +0B60 Duration of life/recall of a pet /Ожидание призыва пета/, не подскажите правильный? Или поясните что это за параметр, пожалуйста.

wajskopf
13.01.2012, 22:10
На сколько я знаю полных чи нет. Да и зачем оно, если можно проверять кол-во ярости по смещению +4A4 в структуре персонажа. Если >= 100 - значит 1 чи есть, если >=200 - значит 2 чи, если >= 300 - значит 3 чи.


Этот совет помог. По смещению +0480 лежат нули

krukovis
13.01.2012, 22:48
Этот совет помог. По смещению +0480 лежат нули

Очевидно твой перс не получил еще ни одного чи ;)

Docent2001
14.01.2012, 01:45
Возможно тут уже писали об этом, но я такого не нашел.

По смещениям от +055C до +05BC в структуре перса лежат item_id оружия, брони и т.п.

Но, несмотря на то что они определены как "двойное слово" - DWord, в реальности для хранения item_id используется только младшее слово, а старшее может содержать то ли мусор, то ли какую-то непонятную (во всяком случае не описанную здесь) информацию (а может и нули).
Поэтому нужно либо сразу определять в своей программе тип этих переменных как Word или SmallInt (для Delphi), либо маскировать старшее слово.

Choochoo
15.01.2012, 10:29
А чем вас GA+$34+$38с+$88+I*4 не устраивает? )

Пошу прощения, но поиски по этим офсетам. Как и по любым другим в списке игроков рядом правильно выдают только их количество. А такие данные как Имя перса. его лвл (после взятия в таргет) и прочее выдают заведомо ложную информацию. Или я что то не так делаю, или одно из двух....

Docent2001
15.01.2012, 18:58
Брать информацию о близлежащих игроках по ссылке из структуры перса не пробовал.

А вот здесь информация о них точно есть:

"Структура игроков
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300"

wajskopf
16.01.2012, 19:30
Где можно посмотреть какое либо значение, которое показывало бы в игре перс или вылетел? Коты часто вылетают...

krukovis
16.01.2012, 19:36
Где можно посмотреть какое либо значение, которое показывало бы в игре перс или вылетел? Коты часто вылетают...

OnlineFlag = 00B27CE0 /В игре - 1, не в игре - 0/
внимательно изучи первую страницу и всю эту ветку (с карандашем)

opex90
17.01.2012, 21:03
А у меня структура лута не работает.
списки игроков и мобов работают нормально.
При чем офсет на количество лута и ресов вокруг работает а инфа о них неправильная (((

Jok3r666
17.01.2012, 21:19
Лично у меня вот так

procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:cardinal;
begin
CallAddress1:=Pointer($0046E410);
CallAddress2:=Pointer($004728E0);
CallAddress3:=Pointer($0046E880);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [game_add]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1050]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0c]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1050]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [game_add]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1050]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;

procedure Walk(x,y,z:single);
var aParams: TParams;
ipbuf,BytesCount,BaseWalkMode:dword;
begin
ReadProcessMemory(hProcess, ptr(GAME_ADD), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$64C), @BaseWalkMode, sizeof(BaseWalkMode), BytesCount);
if BaseWalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.x:=x;
aParams.y:=y;
aParams.z:=z;
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aPar ams));
end;

Блин все равно не получается, клиент с ошибкой вылетает(((/okay

Решил отдельно замутить для проверки. Гляньте что не так плиз. Мозг уже не варит, он и так то не варил, а ща вообще мертв.:eek:

type
PParams = ^TParams;
TParams = packed record
WID: DWord;
end;

type
PWalkParams = ^TWalkParams;
TWalkParams = packed record
Packet: array [0..100] of byte;
CallAddress1,CallAddress2,CallAddress3: Pointer;
x,y,z: single;
Param1: dword;
Param4: array [1..88] of widechar;
end;
var
Form1: TForm1;

implementation

{$R *.dfm}



//podkluchenie k pw
function Contopw: dword;
var
WndHndl:Thandle;
PID,hprocess:dword;
begin
WndHndl:=findwindow(nil, pchar('Perfect World'));
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
if hprocess<>0 then begin
Result:=hprocess; end
else
begin
Result:=0;
end;
end;

procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
aParamsSize: DWord);
var
hThread: THandle;
lpNumberOfBytes: DWord;
ThreadAddr, ParamAddr: Pointer;
begin
if ProcessID<>0 then
begin
// ----
ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

// ----
ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

// ----
hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);

// ----
WaitForSingleObject(hThread, INFINITE);

// ----
CloseHandle(hThread);
VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
end
end;

procedure WalkCall(aPParams: PWalkParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:cardinal;
Game_add: integer;
begin
game_add := $B280C4;
CallAddress1:=Pointer($0046E410);
CallAddress2:=Pointer($004728E0);
CallAddress3:=Pointer($0046E880);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [game_add]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1050]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0c]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1050]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [game_add]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1050]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;

procedure Walk(x,y,z:single);
var
aParams: Twalkparams;
ipbuf,BytesCount,BaseWalkMode, hprocess:dword;
begin
hProcess := contopw();
ReadProcessMemory(hProcess, ptr($B280C4), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$64C), @BaseWalkMode, sizeof(BaseWalkMode), BytesCount);
if BaseWalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.x:=x;
aParams.y:=y;
aParams.z:=z;
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aPar ams));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Walk(0,0,0);
end;

end.

krukovis
18.01.2012, 16:07
Я чуть не разуверился в этом мире пока отловил ошибку тут:
MultOff=00437712 (57 8D 4E 04 EB 55 EA FD FF > 90 8D 4E 04 90 90 90 90 90)
Правильный опкод для исправления (57 8D 4E 04 E8 55 EA FD FF) - поправь пожалуйста.

sumikot
18.01.2012, 18:35
Ок, невнимательность моя...

gurin
19.01.2012, 12:01
Jok3r666, у меня вместо

lea eax, dword ptr [esp+$0c]

стоит

lea eax, dword ptr [esp+$18]

krukovis
19.01.2012, 21:37
Я нашел отсортированный список для Мобов/NPC/Петов ! :hd:
MobsHash = BaseAddress+0x1C+0x1C+0x24+0x50 + (0x04*I)

Где I = 0 to MobsCount (MobsCount = BaseAddress+0x1C+0x1C+0x24+0x14)

Добавлено через 12 часов 30 минут
Брать информацию о близлежащих игроках по ссылке из структуры перса не пробовал.

А вот здесь информация о них точно есть:

"Структура игроков
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300"

Рекомендую пользоваться отсортированным списком:
PlayersHash = BaseAdress +0x1C +0x34+038С+088+(I*4), где I = 0..PlayersCount
PlayersCount = BaseAdress +0x1C +0x34+038С+14
И дальше HashPlayers +
...
+0x46C ID, dword
+ прочие значения с 1-ой страницы....
+ ....
....


Удобнее.

Jok3r666
20.01.2012, 10:55
Я нашел отсортированный список для Мобов/NPC/Петов ! :hd:
MobsHash = BaseAddress+0x1C+0x1C+0x24+0x50 + (0x04*I)

Где I = 0 to MobsCount (MobsCount = BaseAddress+0x1C+0x1C+0x24+0x14)

Добавлено через 12 часов 30 минут


Рекомендую пользоваться отсортированным списком:
PlayersHash = BaseAdress +0x1C +0x34+038С+088+(I*4), где I = 0..PlayersCount
PlayersCount = BaseAdress +0x1C +0x34+038С+14
И дальше HashPlayers +
...
+0x46C ID, dword
+ прочие значения с 1-ой страницы....
+ ....
....


Удобнее.

именно это и искал спс

В шапку выложите + в структуре персонажей (ba+1c+1c+20+18...) исправьте playername - 0x638, да и все остальное как у hostplayer

sumikot
20.01.2012, 12:08
Структуру мобов BA +0x1C +0x1C +0x24 +0x50 +(i*0x4)
и персов BA +0x1C +0x1C +0x20 +0x88 +(i*0x4)
первый нашел krysun, но я не занес ее в шапку. krysun, прими мои извинения, восстанавливаю первооткрывателя. Там не полный массив игроков. Попробуйте зайти на ГДЗ и найти всех котов - многих там не будет.

krukovis
20.01.2012, 12:17
и персов BA +0x1C +0x1C +0x20 +0x88 +(i*0x4)

Я смотрел по этому адресу - он как то плохо работает. Не нужно его в шапку, я думаю.
BaseAdress +0x1C +0x34+038С+088+(I*4) - этот лучше. И он на первой странице есть. Но оформлен стилистически не очень хорошо, видимо в спешке. Если есть время - подкорректируй плиз.

sumikot
20.01.2012, 13:08
krukovis, да в принципе понятно оформлен, там больше ничего не допишешь :) На всякий случай вставил его в описание структуры игроков.
Только есть одно "но" -
BA +0x1C +0x1C +0x20 +0x88 +(i*0x4)
и
BA +0x1C +0x34+038С+088+(I*0x4)
ссылаются на одинаковую таблицу, на те же самые адреса, так что работают они абсолютно одинаково.
И нет в жизни счастья....

krukovis
20.01.2012, 13:27
+0x248 Feature
(+0x240 - See +0x225)


А не скажете что это: (+0x240 - See +0x225) ?

sumikot
20.01.2012, 13:40
что в скобках - это внесено обычно с левых источников, сам не проверял и не пользовался этими ячейками.
есть множество адресов, которые можно узнать, допустим на китайских сайтах - а с чем они их едят, разбираться лень. Оставляю обычно на всякий случай, может будет время разобраться и понять, например:
XingXingAdd
OpenXXPar
OpenXXCallA
OpenXXCallB
OpenXXCallC
OpenXXCallD
OpenXXCallE
AnswerCallA
AnswerCallB

krukovis
20.01.2012, 14:19
OpenXXCallA
OpenXXCallB
OpenXXCallC
OpenXXCallD
OpenXXCallE
AnswerCallA
AnswerCallB

Это параметры адресов для общения со столбами в ХХ - адреса строчек в диалоге.
Со времен общения с нипами с помощью инжектов.

Jok3r666
20.01.2012, 20:29
Со времен общения с нипами с помощью инжектов.
А сейчас как с нипами общаются?

krukovis
20.01.2012, 21:30
А сейчас как с нипами общаются?

Сейчас пакетами в основном. Хотя за всех сказать сложно. Но это самое простое, как мне кажется. Особенно с появлением утилиты Packet Listener.

sumikot
20.01.2012, 21:42
Сейчас пакетами в основном. Хотя за всех сказать сложно. Но это самое простое, как мне кажется. Особенно с появлением утилиты Packet Listener.
Точно ) Блин, ушли китайские адреса в прошлое, а я так и не успел разобраться, что это такое было).

krukovis
20.01.2012, 21:58
ссылаются на одинаковую таблицу, на те же самые адреса, так что работают они абсолютно одинаково.
И нет в жизни счастья....

Сначала они сказали мне что НЕТ(!) Деда Мороза, а потом это...
Да, ты пирафф. Видимо первый раз я допустил где то ошибку.

Добавлено через 13 часов 44 минуты
Точно ) Блин, ушли китайские адреса в прошлое, а я так и не успел разобраться, что это такое было).
Бог миловал :D

Стал переделывать под сортированный список функцию поиска моба. И мне кажется что отсортированный список - это не удобно. Т.к. там индекс моба постоянно меняется (особенно в местах массового фарма). Получается нашел себе моба. Запомнил индекс, чтобы потом по этому индексу постоянно контроливать его ХП, и прочие параметры. А в какой то момент клиент пересортировал массив и у меня по этому индексу уже другой моб записан. Это получается нужно постоянно проверять, то ли Id у моба по нужному индесу. Еще сложнее получается, чем при работе с несортированным списком. Там все проще - выбрал моба. Запомнил индекс и точно знаешь, что моб именно тот, который нужен. И он будет по этому индексу пока не сдохнет.
Так что зря я вообще искал отсортированный список.
==========
А еще поэкспериментировал и обнаружил, что индекс для Моба-НПС-Пета в неотсортированном списке условно постоянный. Т.е. если не бегать по городам и не загружать в память большое кол-во объектов, то индекс интересующего нас Моба-НПС-Пета будет один и тот же.

Добавлено через 15 часов 25 минут
+0x218 /Номер в массиве/

Что это за параметр?

Добавлено через 20 часов 6 минут
+2D4 MobPTargetID, dword (ID для Физ.атаки)
+2D8 MobMTargetID, dword (ID для Маг.атаки)

Эти смещения не правильные. Сейчас эти значения тут:
+2DC MobPTargetID, dword (ID для Физ.атаки)
+2E0 MobMTargetID, dword (ID для Маг.атаки)

Jok3r666
21.01.2012, 22:15
можешь в шапку добавить офсеты названий предметов от сюда [Ссылки могут видеть только зарегистрированные и активированные пользователи]

krukovis
21.01.2012, 22:59
можешь в шапку добавить офсеты названий предметов от сюда [Ссылки могут видеть только зарегистрированные и активированные пользователи]

А ты не мог бы их выложить в более привычном виде?
Например как на первой странице:
Type = 0,3 Name = +E0 +C
Type = 17 Name = +4C +8
Type = 2 Name = +CC +8
Type = 8,9,23 Name = +54 +C
Type = 15 Name = +E8 +C
Type = 20,27,32,5,10,13,19,31 Name = +4C +4
Type = 43 Name = +54 +4
Type = 36 Name = +B8 +4
Type = 41 Name = +10C +4

BeniRey
22.01.2012, 12:11
Ребят кто нибудь разбирался с массивом действий? Если кто знает тип данных и за что отвечают эти смещения отпишитесь пожалуйста.

+1050 ActionArray /Массив действий/

+C Stand Action
+14 Current Action
+14 +10 P.Target ID
+30 +4 MovePoint Action
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
+30 +8 MoveTarget Action
+30 +8 +20 Destination ID
+30 +10 +30 M.Target ID
+30 +2C Mining Action
+30 +30 PetEvocative Action

Choochoo
22.01.2012, 16:37
Брать информацию о близлежащих игроках по ссылке из структуры перса не пробовал.

А вот здесь информация о них точно есть:

"Структура игроков
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300"

Проверил все варианты указанные в шапке... Результат печальный...

ReadProcessMemory(hProcess, ptr(PW_Adres.PlayerStart+$18C), @ipbuf, sizeof(ipbuf), BytesCount);

i:=0;
repeat
ReadProcessMemory(hProcess, ptr(ipbuf+(i*4)), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf+$4), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf+$628), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @_nm, 32, BytesCount);
nm:=_nm;
s:=nm;
ListBox1.Items.Add(s);

VeTaL_UA
22.01.2012, 17:14
(ipbuf+(i*$4))
.

krukovis
22.01.2012, 18:24
Структура игроков
+0x46C ID, dword

Не правильное смещение. Правильное +0x47C - WID


+0x47C Cultivation, dword - это вообще надо удалить. херпоймическая культивация какая то )).

Поправь пожалуйста.

Добавлено через 5 минут
$4

ты хочешь сказать что $4 <> 4 ?

VeTaL_UA
22.01.2012, 18:38
ты хочешь сказать что
Не, не хочу :) Просто так привычнее :) А так то адреса некоторые кривые ;)

Jok3r666
22.01.2012, 20:00
Кто нить проверял офсеты окон? По той цепочке облом. ba+1c+4+18+...

Choochoo
23.01.2012, 15:32
(ipbuf+(i*$4))
Пробовал, не помогает.

krukovis
23.01.2012, 15:49
Пробовал, не помогает.

Да и не должно было. Потому что 4 = $4.
У тебя в другом ошибка, если она вообще есть. Посмотри как этот адрес ищется в Cheat Engine. И проверь все ли значения совпадают у тебя?

З.Ы. Ну что, VeTaL_UA, добился своего? Сбил парня с понталыку? :D

VeTaL_UA
23.01.2012, 16:28
Ну что, VeTaL_UA, добился своего? Сбил парня с понталыку?
:Злорадствует: /problem

Мне так привычнее, просто. Когда-то давно нифига не получалось прочитать значение и я исправил 4 на $4, а так же исправил ошибки. Тогда я подумал, что дело в знаке $ и не читалось именно из-за него :D

Choochoo
23.01.2012, 17:34
да нее, х10 и х16 для значений 0<х<10 не играет роли. офсеты норм. так как количество персов рядом читает норм.... Ошибка если и есть, то в приведенном куске кода. Пишу для PW не первый раз... Перепробовал много вариантов... Не сумел найти ошибки поэтому и спрашиваю сообщество...

Jok3r666
23.01.2012, 18:21
ReadProcessMemory(hProcess, ptr(buf+$628), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @_nm, 32, BytesCount);
Судя по этому получается +628+0+0 , 628 не правильный офсет, надо +638+0 (без еще одного ноля)
сделай так

ReadProcessMemory(hProcess, ptr(buf+$638), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @_nm, 32, BytesCount);

ЗЫ у меня по ба+1с+1с+20+18+и*4+4+638+0 все прекрасно ищется, просто не во всех значениях и есть данные, много пустых

krukovis
23.01.2012, 19:29
ЗЫ у меня по ба+1с+1с+20+18+и*4+4+638+0 все прекрасно ищется, просто не во всех значениях и есть данные, много пустых
Потому что это не отсортированный список там i = 0 - 0x300

А в сортированном
BA +0x1C +0x34 +0x38C +0x88 +(i*0x4)
i = от 0 до Count - кол-ва игроков. Там все персонажи идут по порядку. Но говорят, что в этот список не все попадают. А может быть просто эти персы определяются сервером с ошибкой и он о них инфу с ошибкой шлет.

Jok3r666
23.01.2012, 19:40
Но говорят, что в этот список не все попадают. А может быть просто эти персы определяются сервером с ошибкой и он о них инфу с ошибкой шлет.
У меня бот по отсортированому гоняет, сколько тестил ни разу не одного не пропустил,там просто бывает имена не подгружаются, это когда в игре у таргета вместо имени стоит Р-123435, а так все пучком, намного лучше чем не отсортированый вариант.

VeTaL_UA
23.01.2012, 20:38
в игре у таргета вместо имени стоит Р-123435
Id перса тоесть. Это лаги клиента при большом пинге :)

samosi
23.01.2012, 21:09
И так есть вопрос вот с етим
Структура лута, ресов

BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

читаю так
var nearCount = MemoryManager.ChainReadInt32(GameRun, 0x28, 0x14);
но у меня не хочет показивать кол во лута помогите а.
Пишу на С#

krukovis
23.01.2012, 21:35
А ты читаешь потому что не правильно. Читай так
var nearCount = MemoryManager.ChainReadInt32(BaseAdr, 0x1c, 0x1c, 0x28, 0x14);

Ну если прям фанат GA, то так
var nearCount = MemoryManager.ChainReadInt32(GameRun, 0x1c, 0x28, 0x14);

sumikot
23.01.2012, 22:43
Не правильное смещение. Правильное +0x47C - WID
Да там все просто - какие смещения на своем персе, такие и на чужих. Только длинна структуры меньше и не все переменные попадают к клиенту - он их выставляет в 0. Каюсь, упорядочить все некогда. Сейчас и играть то некогда... Так что заношу ваши офсеты, не проверяя. Спасибо всем, кто доводит правильные данные в массы :)

PS Вопрос - для инжектов смещения вообще нужны кому нибудь? А то может их нафик затереть и лучше таблицу пакетов сделать ?
Оставим движение, остальное, я чувствую, никому не нужно? ** так и стоят...

krukovis
24.01.2012, 06:36
PS Вопрос - для инжектов смещения вообще нужны кому нибудь? А то может их нафик затереть и лучше таблицу пакетов сделать ?
Оставим движение, остальное, я чувствую, никому не нужно? ** так и стоят...

Пусть будут :) . Использование скилла я использую еще - удобнее пакета. Расстояние до цели контролировать не нужно. Некоторые прыгают инжектом.

Прыжок еще говорят пакетами не работает. Если есть пакет на прыжок - напишите опкод плиз. Я только инжектом знаю.

Движение пакетами есть способ осуществить?

sumikot
24.01.2012, 06:53
Движение пакетами есть способ осуществить?
Можно, только считать сложно... Инжектом гораздо удобнее - конечную точку отправил, и все. А пакетами прийдется множество точек трека отправлять плюс пакет остановки, при этом глушить пакеты движения, которые сам клиент будет пытаться пропихнуть.
Если у меня есть оффсеты с * , которые у вас работают, подтверждайте, плз.

krukovis
24.01.2012, 06:54
Так что заношу ваши офсеты, не проверяя.

Неправда... Проверил то что я выкладывал - на первой странице не обновлено.
Отнесись серьезней, пожалуйста. Тогда и люди будут к поиску смещений серьезней относиться и выкладывать легко, не жалея. А сейчас только и делаешь, что ищешь уже давно найденное, как оказывается в итоге. Или проверяешь, то что уже давно проверили.

Если прям ну ваще нет времени - давай попросим модераторов поменять автора. У меня сейчас есть время и желание. Потом будешь по-свободнее, скажешь, поставим обратно.

Добавлено через 6 минут
Да там все просто - какие смещения на своем персе, такие и на чужих.

Не могу найти адрес для PhizTarget для чужих игроков. Подскажите, пожалуйста!
Для MagicTarget нашел + &H6F8

Jok3r666
24.01.2012, 09:41
Не могу найти адрес для PhizTarget для чужих игроков. Подскажите, пожалуйста!
Для MagicTarget нашел + &H6F8
Затести прогу [Ссылки могут видеть только зарегистрированные и активированные пользователи]

krukovis
24.01.2012, 10:00
Я проверил всячески. PhizTarget в структуре чужого персонажа отсутствует. Я зашел в 2 окна и на своем втором персе тестировал. Есть только MagTarget, но учитывая что в 99% случаев скилы используют, то MagTarget в общем то достаточно.

krukovis
24.01.2012, 15:04
Для твоего удобства подведу итог по тому что обнаружил и не увидел на первой странице.

В структуре чужих персонажей
MagicTarget + &H6F8
FizTarget - отсутствует
WID +0x47C
Cultivation - затереть думаю надо, ибо х.з. чО (было +0х47С).
К остальным не проверенным параметрам надо добавить звездочки, убрать звездочки только после проверки.

В структуре Мобов/НПС/Петов
+2DC MobPTargetID, dword (ID для Физ.атаки)
+2E0 MobMTargetID, dword (ID для Маг.атаки)

В структуре своего персонажа
+0B60 Duration of life/recall of a pet /Ожидание призыва пета/ - неправильный адрес. И правильный не смог найти. М.б. затереть или пометить что он не найден? Может кто увидит и скажет?

Можно, думаю, добавить пояснение к этому значению:
/+0480 Chi, dword/ - По этому смещению лежит количество полных чи. Т.е. если это значение = I, то максимальное кол-во ярости будет I+99, где i = 0 to 3.

Ну вроде все :)

Docent2001
24.01.2012, 15:29
krukovis, ты не совсем прав.

Cultivation - затереть думаю надо, ибо х.з. чО
Это не хз чо, а вполне понятная вещь - числовая форма "статуса" персонажа - значение меняется каждые 10 лвл с прохождением "уважения". Причем, что интересно, если окружающих персов не брать в таргет - то их данные практически пустые, за исключением очень немногих значений, одно из которых как раз Cultivation.
К примеру таким образом можно определить примерный лвл персонажа не выделяя его в таргет (1-8, 9-18, 19-28 и т.п.). Кроме того это единственный, насколько я понимаю, способ определить адский или райский перс.

krukovis
24.01.2012, 15:34
Это не хз чо, а вполне понятная вещь - числовая форма "статуса" персонажа -
Спасибо, что пояснил. А я спрашивал - все плечами пожимали. А смещение рабочее не подскажешь?

Docent2001
24.01.2012, 15:39
Я на работе сейчас, как дома буду - гляну в исходники. Но вообще брал смещения из этой темы. По сути это смещение такое же как и у "своего" перса - то бишь должно быть 0х48С

krukovis
24.01.2012, 15:42
Я на работе сейчас, как дома буду - гляну в исходники. Но вообще брал смещения из этой темы. По сути это смещение такое же как и у "своего" перса - то бишь должно быть 0х48С

Ну если у тебя будет отличаться от того что на сайте - выложи плиз. А так я домой приду - проверю.

samosi
24.01.2012, 16:31
Структура лута, ресов
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

хотел спросить нашет етого дак вот читаю я так

var nearItemCount = MemoryManager.ChainReadInt32(BaseAddress, 0x1c, 0x1c, 0x28, 0x14);
for (var i = 0; i < nearItemCount; i++)
{
var itemBase = MemoryManager.ChainReadInt32(BaseAddress, 0x1c, 0x1c, 0x28, 0x18, i * 0x4, 0x4);
if (itemBase != 0)
{
// Получаем данные из структуры, которые нам нужны
var Name = MemoryManager.ChainReadString(itemBase + 0x164, 64, 0x0);

resultBuilder.AppendLine(String.Format("Name Item: {0}", Name));
resultBuilder.AppendLine();
}
}


и как не странно не все имена предметов выводит, выводит где то 2 из 30 в чем ошибка???

krukovis
24.01.2012, 16:42
как не странно не все имена предметов выводит, выводит где то 2 из 30 в чем ошибка???
Ошибки нет. Просто имена предметов читаются в зависимости от типа предмета.
Читай тут [Ссылки могут видеть только зарегистрированные и активированные пользователи]
И тут есть более полная функа на определение Имени предмета [Ссылки могут видеть только зарегистрированные и активированные пользователи] правда на Delphi, но смещения есть.

Choochoo
24.01.2012, 18:16
Потому что это не отсортированный список там i = 0 - 0x300

А в сортированном
BA +0x1C +0x34 +0x38C +0x88 +(i*0x4)
i = от 0 до Count - кол-ва игроков. Там все персонажи идут по порядку. Но говорят, что в этот список не все попадают. А может быть просто эти персы определяются сервером с ошибкой и он о них инфу с ошибкой шлет.

Попробовал и это
ReadProcessMemory(hProcess, ptr($00B27A04), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$38), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$88), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+(i*$4)), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf+$628), @buf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(buf), @_nm, 32, BytesCount);

В результате список заполненый "кракозябрами" Ниодного удобочитаемого имени..../facepalm

samosi
24.01.2012, 18:23
Ошибки нет. Просто имена предметов читаются в зависимости от типа предмета.
Читай тут [Ссылки могут видеть только зарегистрированные и активированные пользователи]
И тут есть более полная функа на определение Имени предмета [Ссылки могут видеть только зарегистрированные и активированные пользователи] правда на Delphi, но смещения есть.
хм можеш помочь со смещениям а то я не понял хД особино со смещениями

ну вот к примеру
2: begin //strella
ReadProcessMemory(hProcess, ptr(jumpptr+item1_2_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_2_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
и вот смешения
item1_2_ofs=$C8
item2_2_ofs=$4
вот и как его там хз вапше

krukovis
24.01.2012, 18:57
ReadProcessMemory(hProcess, ptr(ipbuf+$38), @ipbuf, sizeof(ipbuf), BytesCount);
Не $38, а $38C

Добавлено через 14 минут
хм можеш помочь со смещениям а то я не понял хД особино со смещениями
Вот, лови:
Функция получения имени предмета:
public string parItemName(cell_number)
{

switch (parItemType(cell_number)) {
case (0 | 3):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xe0, 0xc);
case (8 | 9 | 23):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x54, 0xc);
case (17):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x4c, 0x8);
case (2):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xcc, 0x8);
case (15):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xe8, 0xc);
case (20 | 27 | 32 | 5 | 10 | 13 | 19 | 31):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x4c, 0x4);
case (43):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x54, 0x4);
case (36):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xb8, 0x4);
case (41):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x10c, 0x4);
default:
return "Наименование не определено. Тип = " + parItemType(cell_number);
}

}


Функция получения типа предмета:
public Int32 parItemType(Int32 cell_number)
{

return MemoryManager.ChainReadInt32(adrBaseAdress, 0x1c, 0x34, 0xcac, 0xc, cell_number * 0x4, 0x4);

}

samosi
24.01.2012, 20:13
Не $38, а $38C

Добавлено через 14 минут

Вот, лови:
Функция получения имени предмета:
public string parItemName(cell_number)
{

switch (parItemType(cell_number)) {
case (0 | 3):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xe0, 0xc);
case (8 | 9 | 23):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x54, 0xc);
case (17):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x4c, 0x8);
case (2):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xcc, 0x8);
case (15):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xe8, 0xc);
case (20 | 27 | 32 | 5 | 10 | 13 | 19 | 31):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x4c, 0x4);
case (43):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x54, 0x4);
case (36):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0xb8, 0x4);
case (41):
return MemoryManager.ChainReadString(this.adrInventaryCel lsStuct + cell_number * this.osItemPtrStep, 100, 0x10c, 0x4);
default:
return "Наименование не определено. Тип = " + parItemType(cell_number);
}

}


Функция получения типа предмета:
public Int32 parItemType(Int32 cell_number)
{

return MemoryManager.ChainReadInt32(adrBaseAdress, 0x1c, 0x34, 0xcac, 0xc, cell_number * 0x4, 0x4);

}

Благодарствую!
кстате че за 2 параметра
osItemPtrStep и adrInventaryCellsStuct???

krukovis
24.01.2012, 20:33
кстате че за 2 параметра
osItemPtrStep и adrInventaryCellsStuct???

osItemPtrStep - шаг чтения указателей = 0x4.
adrInventaryCellsStuct = MemoryManager.ChainReadInt32(adrBaseAdress, 0x1c, 0x34, 0xcac, 0xc); - я назвал эту цепочку как Структура ячеек инвентаря.

Я функции из свойств класса выдрал. Поэтому this - убери.

samosi
24.01.2012, 20:51
:/ меня убило
таким методом он не хочет считивать
case (20 | 27 | 32 | 5 | 10 | 13 | 19 | 31):
а только так
case (20):
case (27):
и т.д а то он мне гад Наименование не определено.


и читает както кривовато хм
Item count: 17
Name Item: Ящик с оружием (5 ур.)
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0

Name Item: ☆Примитивная булава
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0

Name Item: ☆Тренировочные бриджи
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0

Name Item: Малое исцеляющее зелье
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0

Name Item: Толченая известь
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0

Name Item:
ID Item: 0
WID Item: 0
Distance: 0
Location: 400, 550 ↑0
и т.д.

krukovis
24.01.2012, 22:40
:/ меня убило
таким методом он не хочет считивать
case (20 | 27 | 32 | 5 | 10 | 13 | 19 | 31):
а только так
case (20):
case (27):
и т.д а то он мне гад Наименование не определено.


и читает както кривовато хм

Добавь после каждого return в переборе select case - брейк.

break;

samosi
25.01.2012, 18:18
Спасибо, теперь вопрос что делают в программе инвентарь если мне надо лут хм ну по функам все какраз таки инвентарь и смотрит и т.д ловыца из инветроря а лут он показует имя пробел хм...

samosi
25.01.2012, 19:14
Кстате не у кого нет офсетов аукциона голда??

krukovis
27.01.2012, 16:29
? +0B60 Duration of life/recall of a pet /Ожидание призыва пета/ непроверено

Подскажите пожалуйста правильное смещение этого параметра.
С меня спасибки :).

Jok3r666
27.01.2012, 21:26
Никто не знает офсет пинга или как его определить вообще?

ЗЫ надпись при наводе на шестеренку(где пинг в игре пишется и сервер) я нашел, но он редко обновляется.

Может пригодится кому нить
ба+1с+34+са8+170+184

HellD
27.01.2012, 22:51
? +0B60 Duration of life/recall of a pet /Ожидание призыва пета/ непроверено

Если я правильно понял, это что то вроде секундомера, который сбрасывается на ноль при призыве и отзыве любого пета...

А значение именно времени до вызова пета... не слышал про такое )

opex90
28.01.2012, 16:16
ЗЫ надпись при наводе на шестеренку(где пинг в игре пишется и сервер) я нашел, но он редко обновляется.

Может пригодится кому нить
ба+1с+34+са8+170+184

не работает, смещение ба+1с+34+са8 ведет на ноль

krukovis
28.01.2012, 18:21
Нашел 2 адреса. Текущий и максимальный кулдаун времени пения текущего скила, если скилл не мгновенный.
В структуре персонажа:
+ 994 - Current Skill Activation CoolDown
+ 998 - Current Skill Activation Max CoolDown

Появляются в момент начала кастования скилла. Я думаю, что клиент их использует для отображения пения скила.

Пользоваться ими для осознания кастуется ли в данный момент скилл - не целесообразно. Удобнее по старинке через параметра ActiveSkill_Ptr = HostPlaerStruct + 0x6F4

Но можно контролировать докастовался ли скилл или был прерван. Например скилл воскрешения питомца.
Проверять можно задав условие "Не прерывался ли скилл (не стало ли ActiveSkill_Ptr = 0) на протяжении времени = максимальному времени пения этого скилла"

yeyebvz
29.01.2012, 02:30
Jump=0047E890*


пол дня потратил, нашел на форуме правильный
Jump := $459D60 ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

=Оленька=
29.01.2012, 13:10
Помогите пожалуйсто с инжектом закрытия окон
procedure BtnPressAs(Btn: PParams); stdcall;
var
PW_Call: Pointer;
PW_BASE_ADDR: dword;
BT_ADDR: dword;
begin

PW_Call := Pointer($?????????);
PW_BASE_ADDR :=$B27A04;

BT_ADDR := Btn^.Param1;
asm
pushad
mov eax, BT_ADDR
push eax
mov esi, PW_BASE_ADDR
mov esi, dword ptr [esi]
mov esi, dword ptr [esi+$4]
mov esi, dword ptr [esi+$8]
mov esi, dword ptr [esi+$70]
mov ecx, esi
call PW_Call
popad
end;
end;

procedure .........
var
aParams: TParams;
aParamsSize: dword;
begin

aParams.Param1 := $ACB998;

aParamsSize := SizeOf(aParams);
InjectFunc(hProcess, @BtnPressAs, @aParams, aParamsSize);
end;

Может ктонить нашел значение PW_Call?

Jok3r666
29.01.2012, 13:19
А передать ескапе не пойдет?

krukovis
29.01.2012, 14:49
PW_Call := Pointer($?????????);

Я полагаю что тут должно быть 00804A80, но функция возможно уже изменилась.

samosi
29.01.2012, 16:25
Подкиньте офсеты аука голда плз.

krukovis
29.01.2012, 16:30
Подсмотрел у semoder значение Кол-во ярости для скилла, добавляю в копилку:
SkillRage = SkillsStruct + (i * 0x4) + 0x4 + 0x4 +0x36 , где i = 0 to ActiveSkillsCount

yeyebvz
29.01.2012, 20:34
Attack=00696D60* нужно заменить на Attack=004523F0
источник [Ссылки могут видеть только зарегистрированные и активированные пользователи]

ссылка исправлена, сори)

BritishColonist
29.01.2012, 21:58
Attack=00696D60* нужно заменить на Attack=004523F0
источник [Ссылки могут видеть только зарегистрированные и активированные пользователи]

вообще-то вот источник ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) ;D

krukovis
31.01.2012, 15:59
Всем привет!

А не подскажите смещение на параметр у лута - "свой" - "чужой" (может персонаж собрать лут или нет).

Choochoo
31.01.2012, 17:57
Не $38, а $38C
Прошу прощения но все равно не работает... Я близок к истерике.....

krukovis
31.01.2012, 19:49
Оконная структура:
Окна

BA+0x1C+0x04+0x18+I+D

Подскажите, пожалуйста, это правильный набор смещений? У меня по этому адресу пусто.
Точнее пусто уже тут BA+0x1C+0x04+0x18

DHouse
31.01.2012, 21:30
Структура перса
$060c - ID призванного ездового пета. =0 если не призван.

Добавлено через 1 час 36 минут
$0760 - ID персонажа, которого держите на руках (или который вас держит)

lcd1232
01.02.2012, 07:32
Есть какие-нибудь структуры пати? Конкретно интересует сколько человек в пати и кто на какой локации.

krukovis
01.02.2012, 07:56
Есть какие-нибудь структуры пати? Конкретно интересует сколько человек в пати и кто на какой локации.
В структуре персонажа:
+06D8 PartyMember, array /Структуры членов группы/
+14 +[i*4], i = 1 to 5
+00C PartyId, dword

Добавлено через 3 часа 15 минут
Вот еще данные по Пати которых нет в нашей ветке:
(Pm - PartyMember )

+10 PmLvl
+1C PmHP
+20 PmMP
+24 PmMaxHP
+28 PmMaxMP
+34 PmLocX (float)
+38 PmLocZ (float)
+3C PmLocY (float)

Choochoo
02.02.2012, 19:48
Проблемма со списком персонажей решилась.. как не знаю пока что сам....
Никому не попадался флаг ПК ?

Пивень
03.02.2012, 01:49
BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

Что-то я в трёх соснах заблудился. Используя эти данные, я получаю количество лута/шахт - оно получается и правильное. Но вот когда я пытаюсь получить описание лута/шахт все выходят нули на этапе i*0x4. В примере 0х0, т.е. я получаю описание первого объекта. Где грабли? оО

#include <NomadMemory.au3>

$processes = ProcessList( 'elementclient.exe' )

If UBound( $processes ) < 2 Then
Exit

Else
$pID = $processes[1][1]
EndIf

$baseCall = 0x00B27A04

_ChainRead( 0x1c, 0x1c, 0x28, 0x14 )
_ChainRead( 0x1c, 0x1c, 0x28, 0x18, 0x0 )

Func _ChainRead( $Param1 = Default, $Param2 = Default, $Param3 = Default, $Param4 = Default, $Param5 = Default )
$iOffset = $baseCall
$pHandle = _MemoryOpen( $pID )

For $i = 1 To @NumParams
ConsoleWrite( 'Offset: ' & Hex( $iOffset, 8 ) & ', value: ' & Hex( _MemoryRead( $iOffset, $pHandle ), 8 ) & ' + ' & Hex( Eval( 'Param' & $i ), 2 ) & ' = ' )
$iOffset = _MemoryRead( $iOffset, $pHandle ) + Eval( 'Param' & $i )
ConsoleWrite( Hex( $iOffset, 8 ) & @CRLF )
Next

ConsoleWrite( 'Offset: ' & Hex( $iOffset, 8 ) & ', value: ' & Hex( _MemoryRead( $iOffset, $pHandle ), 8 ) & @CRLF )
_MemoryClose( $pHandle )

Return( _MemoryRead( $iOffset, $pHandle ) )
EndFunc

В консоли SciTe я вижу как функция проходит по цепочке до информации о луте:

Offset: 00B27A04, value: 00B280A8 + 1C = 00B280C4
Offset: 00B280C4, value: 06E71A28 + 1C = 06E71A44
Offset: 06E71A44, value: 16895988 + 28 = 168959B0
Offset: 168959B0, value: 0DA2D538 + 14 = 0DA2D54C
Offset: 0DA2D54C, value: 00000001 < Количество объектов рядом (бросаю монетку на землю)

Offset: 00B27A04, value: 00B280A8 + 1C = 00B280C4
Offset: 00B280C4, value: 06E71A28 + 1C = 06E71A44
Offset: 06E71A44, value: 16895988 + 28 = 168959B0
Offset: 168959B0, value: 0DA2D538 + 18 = 0DA2D550
Offset: 0DA2D550, value: 175B8878 + 00 = 175B8878
Offset: 175B8878, value: 00000000 < А вот тут уже нули

Jok3r666
03.02.2012, 06:04
Там елементы лежат не по порядку(половина значений I пустые), проверяй id на <> 0 или еще что нибудь и потом собирай всю инфу.
Т.е. (I*4) = 0 может быть что то есть а (I*4) = 4,8,12,16 пусто, затем (I*4) = 20 что то лежит.

VeTaL_UA
03.02.2012, 15:40
Unfreeze function - $00431F02
Норма - TEST AL,AL
Вечно разморожен - MOV AL,1
Вечно заморожен - MOV AL,0
Zoom Address - $00407E40
Норма - JNZ SHORT 00407E45
Неограниченный Zoom - JMP SHORT 00407E45

Пивень
03.02.2012, 20:28
Jok3r666, спасибо, после перебора i все объекты нашлись.

krukovis
03.02.2012, 21:09
Unfreeze function - $00431F02 Норма - TEST AL,AL Вечно разморожен - MOV AL,1 Вечно заморожен - MOV,AL,0
Ну это на первой странице какбэ есть :)



А за зум спасибо, сам бы не нашел - ибо не знаю как искать (м.б. скажешь как, если знаешь, можно в личку) Добавлю в свой патчер :)

Вечно заморожен - MOV,AL,0
Улыбнуло :)

VeTaL_UA
03.02.2012, 21:52
Ну это на первой странице какбэ есть
Unfreeze=00431F02 (84 C0 > B0 01)
Там в байтах, а я в ассемблерных командах записал :D
А за зум спасибо, сам бы не нашел - ибо не знаю как искать
Сам долго искал. Искать по методу жука ([Ссылки могут видеть только зарегистрированные и активированные пользователи]), только искать не sequence of commands
, а All sequence. Там внизу адрес найдёт. Рядом с ним и искал :)
Улыбнуло
Почему же? Иногда это является очень даже полезным :)

krukovis
03.02.2012, 22:01
Почему же? Иногда это является очень даже полезным
Например?

Добавлено через 1 час 17 минут
Вечно заморожен - MOV,AL,0

Да... забыл сразу сказать... запятая лишняя... :)

VeTaL_UA(1)
04.02.2012, 00:03
Например?
Например, когда программа выполняет цепочку действий в клиенте и вмешательство пользователя может навредить этому, удобно заморозить клиент напрочь для предотвращения ошибок. :)
Да... забыл сразу сказать... запятая лишняя... :)
Действительно, допустил ошибку. Зайду с компа - исправлю. :-)

krukovis
04.02.2012, 10:41
удобно заморозить клиент напрочь для предотвращения ошибок.

Да, интересный подход. Но он может напугать юзверя - раз и все почернело. А если операция долгая - юзверь подумает что ему подсунули глючный софт )).

VeTaL_UA
04.02.2012, 11:17
юзверь подумает что ему подсунули глючный софт )).
Тем лучше. Меньше нубских юзверей - меньше нубских вопросов /dgs

krukovis
04.02.2012, 11:24
Меньше нубских юзверей - меньше нубских вопросов
Хороший юзер - мертвый юзер. :pif:/problem

pw.lancer
04.02.2012, 12:19
...
[MORE="Окна"]
BA+0x1C+0x04+0x18+I+D
I (окна, длинна 0x850 байт)
0x2B8 Действия
0x2C0 Игроки и группы
0x2C4 Служба поддержки
0x314 Характеристики персонажа
0x32C Ремонт
0x36C Призыв духа
0x3E8 Помощь
0x40C Инвентарь
0x428 Диалог с нпс
0x438 Домашние животные
0x458 Окно алхимика
0x468 Панель 1-9
0x470 Горячие клавиши
0x4B0 Настройки
0x4C4 Умения
0x50C Системная панель
0x51C Задания
D (данные окна, длинна 0x218 байт)
0x98 WndX, dword
0x9C WndY, dword
0xA0 WndW, dword
0xA4 WndH, dword
0X90 WndO, byte (1-open, 0-close)

...

Пробежался по окнам, адреса верные. Удалось также выцепить оттуда имя класса окна. Однако, не получается найти указатель на список контролов. Может быть, это не единственный список окон? Если у кого есть информация, очень прошу поделиться. Очень хочется заинжектить хотя бы закрытие окна (через пункт "До встречи" или системный "крестик"), ибо в хх перед Эмиссаром не боты не могут через ESC закрыть диалоговое окно с НПС, какое-то оно там особенное (остальные закрываются). А с открытым окном прист не запрыгивает на постамент ни пробелом, ни инжектом..
Кстати, если кому пригодится, офффсет для Class name ptr: 4C.
Ну и сами названия по этому смещению:

Действия 'Win_Action'
Игроки и группы 'Win_ArrangeTeam'
Служба поддержки 'Win_InputString6'
Характеристики персонажа 'Win_Character'
Ремонт 'Win_DamageRep'
Призыв духа 'Win_AddExp'
Помощь 'Win_Help'
Инвентарь 'Win_Inventory'
Диалог с нпс 'Win_NPC'
Домашние животные 'Win_PetList'
Окно алхимика 'Win_Produce'
Панель 1-9 'Win_Quickbar9Va'
Горячие клавиши 'Win_QuickKey'
Настройки 'Win_SettingSystem'
Умения 'Win_Skill'
Системная панель 'Win_Main'
Задания 'Win_Quest'


Оконная структура:
Подскажите, пожалуйста, это правильный набор смещений? У меня по этому адресу пусто.
Точнее пусто уже тут BA+0x1C+0x04+0x18

BA+0x1C+0x18+0x08

krukovis
04.02.2012, 15:31
Очень хочется заинжектить хотя бы закрытие окна
Тут посмотри [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Добавлено через 2 минуты
Однако, не получается найти указатель на список контролов.
WinStruct + 1C8 - Структура контролов.
Более подробно тут [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Vadim_n
07.02.2012, 19:01
Подскажите пожалуйста правильные пути до офсетов для нового клиента?
BaseCall_Address=B27A04
раньше я использовал такие пути, поиск нашего перса:
calba+1C+20+ofset+0 - имя нашего перса (в цикле слажую по 1й букве имя до пустого байта, так как не знаю где найти количество букв в имени)
calba+1C+20+ofset - инфа нашего перса
calba+1C+20+ofset+перобразование по формуле (значение+4000)/10 = x, (значение+5500)/10 = y, (значение/10) = z - координаты нашего перса
поиск мобов и нипов :
calba +1C+8+24+18+(e*4)+(0 i рас)+4+11c (e = от 0 до 768) (i = от 1 до пустой страницы) - WID моба/нипа
(0 i рас) – 0 прибавляю i рас, это вроде переход на другую страницу памяти. Я перебираю страницы пока не дойду до пустой, так как не знаю где найти количество мобов/нипов, обычно страниц выходит до 5ти шт.
Если есть WID то нахожу мне нужную информацию calba+1C+8+24+18+(e*4)+(0 i рас)+4+ofset
отделяю мобов от нипов calba +1C+8+24+18+(e*4)+(0 i рас)+4+B4 (если значение = 6-моб 7-NPC 9-Пет)
поиск персов:
calba+1C+8+20+18+(e*4)+(0 i рас)+4+11c (e = от 0 до 768) (i = от 1 до пустой страницы) - WID других персов
Ну там в формулах много квадратных кавычек, в скобках я написал циклы, я не сильно разбираюсь в правильности написания формул, просто прибавляю не всё подряд а значение по адресу + следующий переход и получаю новый адрес. Ну Вы это знаете. Мне просто понятнее так записывать.
PPL max. HP RBASE+0x1C+0x1C+0x20+0x88+(X*0x4)+0x4C0
Это как теперь 2 раза нужно 1С прибавлять? Мой бот на вб а в эсемблере не разбираюсь, 0x1C это я так понял просто 1С.
Я так понял перебирать по страницам (0 i рас) уже не нужно, все мобы на одной странице, и достаточно просто прочитать 768 адресов 1 страницы?
У меня ещё не получается найти название клана персонажей вокруг. По какой формуле найти название клана перса?
По какой формуле можно найти лут рядом лежащий?

BritishColonist
07.02.2012, 19:15
Для начала обратись к первому посту данной темы, там под спойлерами адреса, если ты вдруг не видел.
А потом рекомендую исправить пост таким образом, чтобы его можно было нормально читать, понимая при этом, чего ты хочешь.

krukovis
07.02.2012, 20:13
Это как теперь 2 раза нужно 1С прибавлять? Мой бот на вб а в эсемблере не разбираюсь, 0x1C это я так понял просто 1С.
Я так понял перебирать по страницам (0 i рас) уже не нужно, все мобы на одной странице, и достаточно просто прочитать 768 адресов 1 страницы?
У меня ещё не получается найти название клана персонажей вокруг. По какой формуле найти название клана перса?
По какой формуле можно найти лут рядом лежащий?

Как будто переводчиком от гугла переводил... У тебя русский язык - не родной?

Choochoo
09.02.2012, 15:59
Если кому то интересно пересчет координат. Сменился коэффициент по оси Y
X (0x3C + 4000)/10
Y (0x44 + 5500)/10
Z (0x40 / 10)

chersanya
09.02.2012, 22:37
Choochoo, а разве были не такие же?

Jok3r666
10.02.2012, 00:21
Если кому то интересно пересчет координат. Сменился коэффициент по оси Y
X (0x3C + 4000)/10
Y (0x44 + 5500)/10
Z (0x40 / 10)

Там все по старому:pandal:

Choochoo
11.02.2012, 09:20
А если чесно не помню уже.. вроде было 4000 и 5000 ровно... Просто в теме не нашел данных и решил выложить.

krukovis
11.02.2012, 09:43
А если чесно не помню уже.. вроде было 4000 и 5000 ровно... Просто в теме не нашел данных и решил выложить.
Не нужно выкладывать непроверенных данных. А за проверенные можно и спасибку получить.
Вот проверенные данные:
Координата viewX= (realX/10+400)
Координата viewZ = (realZ/10)
Координата viewY = (realY/10+550)

Choochoo
12.02.2012, 13:25
Не нужно выкладывать непроверенных данных. А за проверенные можно и спасибку получить.
Вот проверенные данные:
Координата viewX= (realX/10+400)
Координата viewZ = (realZ/10)
Координата viewY = (realY/10+550)

Данные проверенны, я их использую сам. Непроверенное это изменилась ли формула.

lcd1232
12.02.2012, 22:58
Такой интересный вопрос насчет делфи. Если написать просто x,y,z:single;
...
...
...
Label1.Caption:=inttostr(x/10+400) компилятор выпишет ошибку. Но если написать
x,y,z:single;
...
...
...
Label1.Caption:=inttostr(round(x/10+400))То все работает нормально. Как я понимаю функция round переводит число в тип integer?

Update 1.
Кстати, что значат следующие данные?
+099C Time Mining
+09A0 Time Mining Const
Лично у меня показывает 1000.

Update 2.
Также вопрос: как можно узнать стоит ли замок, сколько времени осталось до конца и насколько он стоит?

krukovis
12.02.2012, 23:17
Как я понимаю функция round переводит число в тип integer?
Для ответов на эти вопросы есть Help по делфи, а еще ближе Google.


+099C Time Mining
+09A0 Time Mining Const
Это кулдаун копания и максимальный кулдаун копания ресурсов.
Попробуй посмотреть на эти значения когда копаешь что нибудь.

Jok3r666
13.02.2012, 11:38
Label1.Caption:=inttostr(round(x/10+400))
При делении получается число с точкой (1.11 или 1.00) а это уже не инт а float
ЗЫ замени инттостр на floattostr

sumikot
14.02.2012, 21:45
Подсмотрел у semoder значение Кол-во ярости для скилла, добавляю в копилку:
SkillRage = + (i * 0x4) + 0x4 + 0x4 +0x36 , где i = 0 to ActiveSkillsCount

Вот тут немного не понял - SkillsStruct + (i * 0x4) + 0x4 получается SkillID, а так как это не адрес для дальнейшего смещения, то где я неправ?
SkillsStruct = +107С ?

krukovis
14.02.2012, 22:02
SkillsStruct + (i * 0x4) + 0x4 получается SkillID -это не ID, а указатель на структуру текущего скила. Т.к. скилы все разные, то все подумали, что это ID, но это на самом деле это структура текущего скила - CurrentSkillSturct. Я не смотрел, но там же могут быть показатели "Время каста" и прочее. А ID скилла было всегда тут : ID = SkillsStruct + (i * 0x4) + 0x8.

Добавлено через 2 минуты
SkillsStruct = +107С ?
Да

lcd1232
15.02.2012, 17:11
Reputation: BaseAdress +0x1C +0x34 +0x5C8, dword

HellD
15.02.2012, 20:39
//Сори, не удержался...

найти лут рядом лежащий?
Йода, ты? )

Пивень
18.02.2012, 02:06
BA +218 +4 Count, dword /Количество/
BA +218 +8 +[i*4] + (+0)^J: Clans Struct (I in [0..389])

Что это за (+0)^j?
Какие значения кроме +0 оно может принимать? У меня при любых значениях кроме +0 получается ахинея в результатах, но при этом +0 показывает не все кланы, которые попадались персонажу.

gurin
18.02.2012, 07:22
Что это за (+0)^j?
Какие значения кроме +0 оно может принимать? У меня при любых значениях кроме +0 получается ахинея в результатах, но при этом +0 показывает не все кланы, которые попадались персонажу.
-
(+0)^J - специальный символ, отображающий количество (J) страниц (+0) в связанном списке.

Запись BA +218 +8 +[I*4] + (+0)^J +4 для разных значений J расшифровывается как:

J = 0: BA +218 +8 +[I*4] +4
J = 1: BA +218 +8 +[I*4] +0 +4
J = 2: BA +218 +8 +[I*4] +0 +0 +4
J = 3: BA +218 +8 +[I*4] +0 +0 +0 +4
J = 4: BA +218 +8 +[I*4] +0 +0 +0 +0 +4
J = 5: ...

Продолжать, пока не будут найдены все элементы. Элементы неравномерно распределены по всему массиву. Количество элементов можно посмотреть по адресу, указанному в первой строке описания каждой структуры.

Добавлено через 6 минут
Цитата:
Сообщение от sumikot

SkillsStruct + (i * 0x4) + 0x4 получается SkillID


-это не ID, а указатель на структуру текущего скила. Т.к. скилы все разные, то все подумали, что это ID, но это на самом деле это структура текущего скила - CurrentSkillSturct. Я не смотрел, но там же могут быть показатели "Время каста" и прочее. А ID скилла было всегда тут : ID = SkillsStruct + (i * 0x4) + 0x8.

в смысле указатель на структуру текущего скила? там же стот I, что подразумевает перечисление

Пивень
18.02.2012, 10:54
gurin, спасибо. Всё оказалось проще, чем я думал.

Vadim_n
19.02.2012, 11:00
Для начала обратись к первому посту данной темы,
Извините за моё сообщение выше, не заметил скрытого текста с данными.
Спасибо создателям темы!
У тебя русский язык - не родной?
У меня действительно с русским очень плохо.
Подскажите пожалуйста что значит - MobPTargetID (ID для Физ.атаки), MobMTargetID (ID для Маг.атаки), MagAtk /Цель для маг атаки/, PhizAtk /Цель для физ атаки/?
Ещё есть ли Count для количества символов в имени персонажа? PlayerName, wchar*8 (UText / Unicode String) на VB у меня читает по 2 байта ReadToInteger до пустого и иногда получается имя персонажа + ещё какой то текст с игры.
Есть адреса чтобы найти имя клана или ID клана другого персонажа, или как определить клан другого персонажа со структуры кланов?
Есть известные офсеты и адреса или может готовые структуры для аукциона и чата?

HellD
20.02.2012, 10:46
Ещё есть ли Count для количества символов в имени персонажа? PlayerName, wchar*8 (UText / Unicode String) на VB у меня читает по 2 байта ReadToInteger до пустого и иногда получается имя персонажа + ещё какой то текст с игры.
Показал бы как читаешь ) и лучше в теме общения а не тут ) скорей всего косяк где то в коде ) у меня всегда читается на ура, включая русские символы и всякие знаки...(хоть может и не все) )) и никакой лишней инфы ))

Есть адреса чтобы найти имя клана или ID клана другого персонажа
адрес id клана другого, такой же как и своего ) а как найти из него имя клана, вопрос поднимался уже неоднократно.. поройся ) тут дофига по этому поводу ) сам спрашивал даже ))

krukovis
21.02.2012, 07:22
в смысле указатель на структуру текущего скила? там же стот I, что подразумевает перечисление

sumikot спрашивал по поводу значения: SkillsStruct + (i * 0x4) + 0x4 , где i - номер скилла.
На певой странице это значение было обозначено как SkillID, что не верно. Это указатель на описание скилла. В этой структуре лежит значение необходимой ярости, например. Я думаю, если посмотреть на память в виде float чисел, там же лежат и остальные показатели скилла - время пения, кол-во манны и прочие показатели. Сейчас нет желания копаться в этой структуре, т.к. основной нужный показатель - кол-во Ярости (чи) для скилла - уже найден и выложен.

Добавлено через 14 минут
MobPTargetID (ID для Физ.атаки), MobMTargetID (ID для Маг.атаки), MagAtk /Цель для маг атаки/, PhizAtk /Цель для физ атаки/?
Это значения ID цели при кастовании скилла и при физической атаке. Нужно определять на кого в данный момент направлена агрессия моба или персонажа. При проверке совместно с действием (Action = бьет физой, бьет магией, идет, стоит, и т.д.) дает ясную картину что делает моб и на кого направлена его агрессия, в случае агрессивных состояний.


Ещё есть ли Count для количества символов в имени персонажа? PlayerName, wchar*8 (UText / Unicode String) на VB у меня читает по 2 байта ReadToInteger до пустого и иногда получается имя персонажа + ещё какой то текст с игры.
А ты не думаешь освоить VB.Net ? Для .NET программистов сделали классную DLL - PW FrameWork называется. Позволяет абстрагироваться от подобных вопросов и просто считывать данные из памяти. Поищи на форуме - если не найдешь - напиши, я тебе дам ссылку на исходники на форуме и, если нужно будет - дам исходники доработанной ДЛЛ, я добавлял туда чтение ACSII строк (мне для анализа окон было нужно).

Добавлено через 21 минуту
Есть адреса чтобы найти имя клана или ID клана другого персонажа, или как определить клан другого персонажа со структуры кланов?
Используй смещения для СВОЕГО игрока в структуре ЧУЖОГО игрока. Это справедливо не только для кланов. Если обратишь внимание и сравнишь числа - то все смещения одинаковые.

whoami
23.02.2012, 12:17
я добавлял туда чтение ACSII строк (мне для анализа окон было нужно)

вообще-то оно там всегда было... ну, или очень давно. Свойство MemPtr.AString и метод MemPtr.ToAString()

krukovis
23.02.2012, 22:00
вообще-то оно там всегда было... ну, или очень давно. Свойство MemPtr.AString и метод MemPtr.ToAString()

whoami, при всем моем уважении, ты фреймворк дополнял как не для людей. Типо "мне понятно и ладно". Зачем добавлять методы не стандартизированные изначально? Почему нельзя было добавить в том же виде что и TBXin? Ты же грамотный программист и людей программировать учишь, а комментировать код как будто не умеешь. Если можешь - прокомментируй код в дополненном тобой фреймоврке. Честно признаться, знаний не хватает осознать все что ты написал, многим не пользуюсь, потому что просто не знаю что есть и приходится "изобретать велосипеды". Очень тебя прошу - дооформи все и выложи где нибудь здесь или на каком нибудь специализированном для этого сервисе вроде codeproject.com. Думаю, что не я один скажет тебе за это огромное спасибо.

Perimetr
27.02.2012, 21:28
как узнать кого смотрит игрок рядом. смещение маг-атаки 6F8 в структуре игроков пробывал - не то.

krukovis
28.02.2012, 07:54
как узнать кого смотрит игрок рядом. смещение маг-атаки 6F8 в структуре игроков пробывал - не то.
На сколько я знаю, узнать на кого смотрит чужой персонаж - нельзя, если он не в пати. Можно узнать на кого направлен его скилл и то, только на период кастования. Это я выкладывал уже. Продублирую:
Для PhizTarget для чужих игроков значения нет.
Для MagicTarget нашел + &H6F8

Если конечно, этот чужой персонаж не находится с твоим в одной команде.

Perimetr
01.03.2012, 07:14
Странно.. должно же быть где-то значение, указывающее на то кто в таргете (помечен, выделен) у персонажа в локации, ведь у мобов это есть. у своего персонажа - есть, а у другого игрока - данных в клиенте разве нет..
я все-таки попробую поискать, давно уже не лазил по клиенту.
Может кто знает как определить - ПК персонажа рядом с собой - вроде там какие-то биты в байте - но по какому смещению в структуре игроков рядом ???

krukovis
01.03.2012, 07:17
ведь у мобов это есть. у своего персонажа - есть, а у другого игрока - данных в клиенте разве нет..
У мобов - нет и у чужих персов нет, пока они не агрессивны. Или пока персонаж не в твоей команде.

DHouse
04.03.2012, 00:25
+5B8 wid одетого джинна, например 23753 - Тай Бо [Ссылки могут видеть только зарегистрированные и активированные пользователи] 23752 - Тай Инь и т.д.

Добавлено через 8 минут
Кста, заметил тенденцию, что при смене джинна список доступных скиллов не обновляется, а дописывается. Т.е. был один джин например со Словом и Сферой, одели другого с Защитником и Проклятьем князя, в итоге в памяти клиента будут все 4 скилла. Радует, что при попытке заюзать через пакеты "отсутствующий" скилл управление над клиентом не теряется :) Надо думать как определить с какого смещения хранятся валидные скиллы.

Arvol
06.03.2012, 14:29
Коллеги - помогите разобраться...
+0368 BuffsArray /Список баффов/
+ [I*2] Buffs, dword
+036C BuffsCnt, dword /Количество баффов/
+036C - судя по Cheat Engine - это количество бафов навешанных на перса.
Не могу разобраться с +0368+ [I*2].
При первом использовании первого бафа в +0368+ [0*2] нормально появляется его тип. Но при пропадании бафа тип остается в ячейке памяти.
Далее в следующих ячейках массива появляется информация, но непонятно какая. Это и не тип бафа и не указатель. Затем - почему умножается на 2? Во всех остальных массивах умножается на 4 из-за типа данных DWord.
Буду благодарен за любые подсказки.

krukovis
06.03.2012, 14:32
[I*2] Buffs, dword
То, что шаг в 2 байта уже говорит о том, что тип не Dword, а просто word или int16. Или не знаю как в вашем языке, но нужно понимать, что число занимает только 2 байта.

Arvol
06.03.2012, 14:38
Я это прекрасно понимаю :) Однако, данные, которые там появляются не пойму, как интерпретировать.

krukovis
06.03.2012, 14:54
Я это прекрасно понимаю Однако, данные, которые там появляются не пойму как интерпритировать.
Для начала нужно научиться читать 2 байта, это важно. Не слышал, что данные не исчезают после окончания действия бафа.
данные, которые там появляются не пойму как интерпритировать.
Это ID бафа. Где то на форуме вроде выкладывали список ID + Имя бафа для последней версии клиента - поищите. В сборке configs.pck (если распотрошить) можно найти файл Buffs.txt, там находится актуальная информация. Вот тут можно посмотреть распарсенный файл для клиента 1.3.6 [Ссылки могут видеть только зарегистрированные и активированные пользователи] Можно читать эту информацию прямо из памяти. Но я не знаю смещений.

Arvol
07.03.2012, 21:48
Благодарю, krukovis.
Вроде разобрался.
По адресу:
+0368 BuffsArray /Список баффов/
+ [I*2] Buffs, 2byte
лежит не указатель на примененный скил, а указатель на иконку статуса, наложенного на перса (баф, дебаф или иное).

Возник вопрос :)
Может кому известно, как связывается ID статуса наложенного на перса с ID примененного скила?

krukovis
07.03.2012, 21:55
лежит не указатель на примененный скил, а указатель на иконку статуса, наложенного на перса (баф, дебаф или иное).
А это никто и не утверждал. И в файле ID не скиллов а наложенных бафов.
Может кому известно, как связывается ID статуса наложенного на перса с ID примененного скила?
Поддерживаю. Тоже интересно было бы узнать это. Упростило бы функцию бафа.

BritishColonist
09.03.2012, 12:14
В полезности следующих оффсетов я не уверен, но всё же :D

PlayerStructStart
+3BC - (dword) GenieRotationTimer // таймер, следящий за отображением джинна или фейки.
+3C0 - (dword) GenieRotationTimerMax // тут максимальное значение этого таймера. можно изменять.
+3C4 - (byte/bool) IsGenieVisible? // если 1/true, то вокруг игрока летает джинн (если есть), в противном случае - фейка (опять же, если есть).

A1B708 - (float) GenieFadePower (константа, равная 0.2) // коэффициент скорости затухания/появления джинна/фейки; чем больше - тем менее плавный переход между джинном и фейкой.

DHouse
10.03.2012, 14:17
Может кому известно, как связывается ID статуса наложенного на перса с ID примененного скила?

Никак, разные скиллы могут весить одинаковые бафы. Больше интересует само смещение на данные, используемого в данный момент скилла, в массиве игроков. Визуально же отображается что на тебя кастуют, значит и данные должны передаваться.

Добавлено через 5 часов 50 минут
Крайне интересна информация о том как считать энергию и физическую силу джинна, поделитесь кто знает.

Добавлено через 8 часов 22 минуты
отбой, сам нашел:
+3CC +AC - текущая энергия
+3CC +B0 - максимальная энергия
+3CC +B8 - текущий заряд

BritishColonist
14.03.2012, 21:03
HostPlayerStruct
+708 +C +0 +0 +0 = (wchar_t) OverheadName // имя игрока, отображающееся над головой

tianddu
14.03.2012, 22:34
а есть инфа о заюзанности соски у игрока(иименно у себя)?

krukovis
15.03.2012, 06:29
а есть инфа о заюзанности соски у игрока(иименно у себя)?
+0A5C WaitChemistry
+0A6C WaitSos

Смотреть в структуре игрока. Это откаты химии и сосок. Если не 0, то откатывается, значит заюзали.

skew222
30.03.2012, 21:08
а как узнать оффсеты хп мп и лвл перса на сервере axesas/

krukovis
31.03.2012, 09:55
а как узнать оффсеты хп мп и лвл перса на сервере axesas/
так же как и на руофе. Узнай базовый адрес, а остальные смещения возьми с первой страницы.

вот ссылка на гайд [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Perimetr
02.04.2012, 22:55
Я так читаю умения и их откаты, может есть более простой способ ?
см. вложение..
в первой вырезке - проверка с записью в файл прямо при работе бота,
во второй функции чтения значений..

krukovis
03.04.2012, 08:09
в первой вырезке - проверка с записью в файл прямо при работе бота,
А зачем в файл записываешь? У тебя вроде не портянка в три листа, поясни где тебе ощущается несовершенство и в какой части ты бы хотел что то упростить? И обсуждать это нужно в разделе Общение разработчиков. Сюда выкладываются готовые смещения или запросы об их поиске.

whoami
03.04.2012, 15:42
На сколько я знаю, узнать на кого смотрит чужой персонаж - нельзя, если он не в пати.
...
Если конечно, этот чужой персонаж не находится с твоим в одной команде.

да и даже если в пати, то не делая ассиста - тоже нельзя, к сожалению =( а то можно было бы грамотные автоассисты делать

Perimetr
03.04.2012, 19:18
Запись в файл для просмотра состояния умения - его времени отката, например при откате в 60 сек. там в листинге будет стоять время меньшее 60 сек. - это гоаорит о том, что смещение действительно показывает - откат, но вот время действия умения к примеру - Наряд из цветов у Дру - 5 минут, я его считаю по таймеру, а где оно действительно лежит - так и не нашел, хоть я и указываю в коде смещение к времени работы умения - я им не пользуюсь, т.к. непонятно - что там происходит. Поэтому я и спросил - как делаете - вы ? Может можно как-то еще узнать, что умение - отработало ?

Добавлено через 37 минут
Еще вопрос..
Клиент всегда знает каким цветом отображать имена над головой персонажей, стоит нашему Персу оглянуться - как всех видно, даже ненадо наводить указатель мыши на играков.
Где же лежит этот параметр - (может быть кто знает по какому смещению). Интересусь т.к. ПК-игроки нападают неожиданно, когда мы например копаем ресы или бъем кучку мобов, неплохо-бы было, если Бот оповещал о игроках с красными никами в локации. Это нужно и самим ПК-игрокам, т.к. на них тоже могут нападать.

krukovis
03.04.2012, 22:29
да и даже если в пати, то не делая ассиста - тоже нельзя, к сожалению =( а то можно было бы грамотные автоассисты делать
Я не дела автоасистера для игроков. Но почему то думал, что инжект асиста должен вычислять ID цели у члена пати и устанавливать это ID в цель моего персонажа. И соответственно полагал, что цепочку смещений можно выдернуть из этого инжекта. Там другой принцип?
Добавил:
============
Раньше в инжекте Асиста была функция:
0044ED63 |. E8 487D1A00 CALL elementc.005F6AB0
Я не знаю какой сейчас инжект асиста и какая там функция.
Но по логике вещей эта функция и вычисляла ID цели у члена пати, наверно.
============

Добавлено через 21 минуту
Запись в файл для просмотра состояния умения - его времени отката, например при откате в 60 сек. там в листинге будет стоять время меньшее 60 сек. - это говорит о том, что смещение действительно показывает - откат,
Тут мне кажется можно обойтись без файла:
Есть 2 параметра в структуре скилла:
+10 SkillCoolDown
+14 SkillMaxCoolDown
SkillCoolDown - убывающий таймер показывающий сколько еще осталось до отката скилл. Если = 0, то скилл откатился.
SkillMaxCoolDown - максимальный показатель таймера.

Поэтому что понять сработал ли скилл - смотрим на SkillCoolDown - если он не 0 - скилл сработал и откатывается. Если 0 - откатился - можно использовать снова.





но вот время действия умения к примеру - Наряд из цветов у Дру - 5 минут, я его считаю по таймеру, а где оно действительно лежит - так и не нашел

Этот параметр сам долго искал - не нашел. Подвешивал вопрос, но либо народ знает но молчит, либо молчит потому что не знает. Я предполагаю что этот параметр где то рядом с Яростью в структуре скилла :
выдержка с первой страницы:
+107С SkillArray /Массив умений/

+[I*4] -
+4 - CurrentSkillSturct
+4 +4 +0x36 SkillRage /Количество ярости для скила/
+4 +4 +??? - где то рядом с Яростью возможно лежит показатель кул-дауна бафа :)

Но как я сказал так и не нашел. И добавил просто в настройку использования бафов время через которое делать ребаф.

Клиент всегда знает каким цветом отображать имена над головой персонажей, стоит нашему Персу оглянуться - как всех видно, даже не надо наводить указатель мыши на игроков.

Это называется Флаг ПК. И мне кажется его тут выкладывали где то. Или так же спрашивал кто то... не помню. Попробуй в этой ветке поискать.