Rus. server

10/30/2009 15:29 vies1812#541
Люди добрые!!! Как я понял вы уже далеко ушли в "разборке" на запчасти PW.
Поэтому хочу попросить, если не тяжело напишите смещения для текущего и максимального значения ХП питомца который сидит в 1 клетке.
А то я в програмировании совсем нуб.
10/31/2009 03:09 KOPC#542
Ребят..Смещения это хорошо, но как обстоят дела с ботом для ПВ на данный момент?

Просто не могу подцепить ни одного,сам GNU'шный клиент юзаю...обычные настройки того же зеворка под форточку не подходят.
Вылоите пожалуйста либо оффсет свежий,дабы прицепить бота , либо расскажите , какую часть перепаять.
10/31/2009 22:42 sumikot#543
Ну раз я первый зашел, мне и флудить...

drShtain Если текст вызывает улыбку - он не является флудом :)
Насчет умного поста есть один глупый вопрос - не могу придумать, каким способом можно обходить препятствия. Могу включить в умения перса проходить сквозь них, если возникнет ситуация, с которой бот не справится. Допустим, прыгнул - не помогло. Движение вправо - не помогло... Проходим. Но это не выход. Могу еще сирену включить, чтоб ботовода разбудить (системный бипер, например). Это вообще жестоко.

maxim31153 А вот тут есть несколько выходов. Первый - скачать Autoit и начать читать форум полностью. Если будут какие то вопросы - всегда помогут те, кто будет в сети. Но для этого нужны какие то начальные знания. Второй - есть платные боты довольно неплохого качества. Найти их в сети нетрудно. Главное - не накачать вирусов на "левых" сайтах. Третий - подождать, может, все таки кто нибудь напишет что нибудь более путевое и выложит хотя бы для теста. Я собирался выложить, но меня напрягает то обстоятельство, что за это привлекли ботописателей в китае. И, наверно, надолго. Да и не готов мой бот еще...

vies1812 HP первого питомца BaseAdress+$20+$c24+$10+$38
Максимального нет. Может, оно где то и есть - не нашли. Можно при каждом считывании HP сравнивать его с MaxHP. Если HP больше MaxHP, присваиваем значение MaxHP. Вроде работает. Автор идеи FunkU.

KOPC Напиши, какие смещения ему нужны - не пользовался я этим ботом. Или гугли, если до сих пор еще не нашел.
Добавил: Не это?
[Perfect_World_Base_Address_In_Decimal]
Application_Title=Element Client
Base_Address=9925052
[Custom_32_Offsets_In_Decimal]
Target_OffSet=2664
MaxMP_OffSet=1176
MaxHP_OffSet=1172
MP_OffSet=1128
HP_OffSet=1124

Ну вот, нафлудился... Всем удачного фарма!
Тем, кто знает больше меня, над ответами не смеяться!!!
11/01/2009 13:42 Tr1k#544
Люди а Рево бот реально так же переделать как MSH ?
11/02/2009 00:15 FunkU#545
Если его исходники найдёшь. )
11/02/2009 08:44 vies1812#546
To sumikot

Quote:
Originally Posted by sumikot View Post
Ну раз я первый зашел, мне и флудить...


vies1812 HP первого питомца BaseAdress+$20+$c24+$10+$38
Максимального нет. Может, оно где то и есть - не нашли. Можно при каждом считывании HP сравнивать его с MaxHP. Если HP больше MaxHP, присваиваем значение MaxHP. Вроде работает. Автор идеи FunkU.
Спабо за ответ, но к сожалению не всё так просто. Если перевести это смежение в десятичную систему то получаеться 3212, теперь забиваю это число в MHS-Bot-PW 2.3 вместо своего текужего ХП (это потому что в качестве бота друля, а она получет удары редко и хватает раз в 3 мин бафнуться своим бафом на ХП. А вот пета бьют порядочно а хилю я его наугад т.к. не вижу его ХП).
Так вот, забив 3212 в офсет.ини мне показывает значение ХП - 0 !!!! И не имеет значения выпустил я пета или нет. Ради интереса я вручную перебрал смещения от 3000 до 3300 и всё равно не вижу ХП пета, ни того что в первой клетке ни того что во второй.

Что я делаю не так, подскажи плиз. :handsdown:

В читэнжайне я вижу ХП пета, оно точно совпадает с тем что есть в игре, синхронно растёт или падает, в зависимости от того бьют пета или нет, но я к сожалению не умею перевести тот адрес что вижу в читэнжайне в смещение для MHS-Bot-PW 2.3 :confused:
11/02/2009 10:33 CrazyPill#547
Quote:
Originally Posted by vies1812 View Post
Спабо за ответ, но к сожалению не всё так просто. Если перевести это смежение в десятичную систему то получаеться 3212, теперь забиваю это число в MHS-Bot-PW 2.3 вместо своего текужего ХП

Что я делаю не так, подскажи плиз.
Ленишься читать наверное. В этой теме уже несколько раз объяснялось что означают эти плюсики в смещениях.
BaseAdress+$20+$c24+$10+$38 читается так
adr1=[BaseAddr+$20]
adr2=[adr1+$c24]
adr3=[adr2+$10]
res0=[adr3+$38]

[xxx] - прочитать значение по адресу xxx.

Когда ты прописываешь в ini-файле смещение для HP перса, то оно нужно одно потому что BaseAdress+$20 общее для всех значений, связанных со структурой данных игрока и его смещение выглядит как BaseAdress+$20+$HPoffset. А здоровье пета зарыто на два указателя глубже. Вот и нестыковочка.
11/02/2009 10:47 Skand#548
vies1812, код должен быть примерно таким

Code:
global $pet[5]
$mob1[1]=20
$mob1[2]=c24
$mob1[3]=10
$mob1[4]=38
$PetHP= _MemoryPointerRead($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $pet)
11/02/2009 11:13 FunkU#549
А чтоб вместо здоровья персонажа его вывести можно заменить стандартный массив в MHS. )

Global $OFFSET_HP[5]
$OFFSET_HP[1] = 20
$OFFSET_HP[2] = c24
$OFFSET_HP[3] = 10
$OFFSET_HP[4] = 38


Но это не очень хороший выход. Лучше сделать отдельный массив и отдельную функцию для лечения питомца.

Вот мой упрощённый пример:

В область объявления глобальных переменных добавляем это:
Global $PET_HP
Global $PET_MAX_HP
Global $PET_HP_PERC


В функцию UpdateCharInfo:
$PET_HP = _MemoryPointerRead($APP_BASE_ADDRESS, $PROCESS_MEMORY, $OFFSET_PET_HP)
If $PET_MAX_HP < $PET_HP[1] Then
$PET_MAX_HP = $PET_HP[1]
EndIf
$PET_HP_PERC = $PET_HP[1] / $PET_MAX_HP * 100
If $PET_HP[1] == 0 Then
$PET_HP_PERC = 0
EndIf


Добавляем новую функцию:
Func PetAutoHealCheck()
While Int ($PET_HP_PERC) < 80 And $HP[1] > 0
ControlSend($APP_TITLE, "", "", "{F1}", 0)
Sleep(1000)
UpdateCharInfo()
HPMPAutoPotCheck()
WEnd
EndFunc


И добовляем вызов этой функции куда-нибудь в функцию KillTarget.
11/02/2009 11:54 vies1812#550
Спасибо всем за ответы, но это наверное моя вина что я сразу не сказал что я не програмист, и не пишу собственного бота, а хочу использовать уже существующего, и всё что мне нуно это цифирку которую нужно прописать в Custom_OffSets.ini (бот MHS-Bot-PW 2.3) чтобы выдавало значение ХП пета.
Если это возможно (а я уже начинаю сомневаться) напишите эту цифирку плиз.
11/02/2009 11:56 FunkU#551
В том то и дело, что это невозможно. Иначе тебе бы всё так не расписывали. )
11/02/2009 12:19 vies1812#552
:(
11/02/2009 12:26 FunkU#553
Качай AutoIt и делай, что я написал выше, потом компилируй и проверяй. Всё это очень просто делается. Программистом быть не надо, чтобы вставить что-то в код. )

Только массив надо задать так, чтоб всё работало:
Global $OFFSET_PET_HP[5]
$OFFSET_PET_HP[1] = 20
$OFFSET_PET_HP[2] = c24
$OFFSET_PET_HP[3] = 10
$OFFSET_PET_HP[4] = 38
11/02/2009 14:22 vies1812#554
Перед тем как начну "колдовать" сразу возник вопрос
If $PET_MAX_HP < $PET_HP[1] Then
Но ведь мы нигде не задали чему равно PET_MAX_HP.
Его наверное надо в начале прописать что PET_MAX_HP=0
Я правильно рассуждаю?

И вопрос: а как организовать вывод значений "на экран"? Ну типа $LABEL_HP_STATUS. Где этот лейбл задать?

Сори если вопросы "тупые", но последний раз я "колдовал" на турбо-паскале и было это лет 15 назад :)
11/02/2009 15:44 CrazyPill#555
Quote:
Originally Posted by vies1812 View Post
Его наверное надо в начале прописать что PET_MAX_HP=0
Я правильно рассуждаю?
Верно, а говоришь 15 лет назад, на турбо паскале ;-)

Quote:
И вопрос: а как организовать вывод значений "на экран"? Ну типа $LABEL_HP_STATUS. Где этот лейбл задать?
Немного переделывал AutoPot под себя, вот там такую фигню с выводом инфы замутил на базе мелкого окошка, которое слева висит. Несколько страниц, Содержимое 0й страницы перетирает всё остальное. Смотрится код криво, ибо все значения забиты жёстко, но работает.