Yoko

All sides of Injection
It is currently 2024-04-18 05:47:18

All times are UTC+02:00




Post new topic  Reply to topic  [ 94 posts ]  Go to page 1 2 3 4 5 Next
Author Message
PostPosted: 2012-11-27 19:36:52 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Хочу сделать скрипт на мининг, чистый, минимально короткий, который будет очень быстро реагировать и работать. В миниге нужно 1. Чтобы выкапывал всю руду по 1 разу, и некоторые, указанные - 2 раза. Ходьба будет по координатам, такого плана проверка что если чар находится в определенных координатах то делает 5 шагов на N, или 5 шагов на S, потому что копает через один тайл в сторону и соответственно сделать 5 шагов в любую из 4 сторон чтобы стать на чистый участок. Уже собрал координаты точек 3-х интересующих меня шахт.
Нужно чтобы чар контролировал шаги, чтобы не убежал куда нибудь, и если все же сбился с пути то реколился домой и сообщал что заблудился.

Рекол, нужно чтобы хорошо и быстро определял на игроков, к примеру сейчас у меня скрипт на рекол, на уопилот, проверяет только по ластмсг, если что то видит то сравнивает с тем что задано в условии, если совпадает то либо копает дальше, либо убивает гварда, если видит что угодно другое. Даже собственную кирку то улетает. Проблема в том что когда например скрипт убивает гварда то на некоторое время перестает проверять сообщения сервера и если в это время кто то прибежит он может пропустить это и меня конечно же убьют. Там есть некоторые игроки, похоже на инже играют, находят меня даже когда я в хайде и прямо стают на тот тайл на котором стою я, и как то раздетекчивают меня при этом сами оставаясь в хайде, прямо чудеса вытворяют :lol: Чар копает в хайде так что нужно еще и проверку чтобы если чар раздетектился то он сразу жал трекинг, и если появилось окно что кого то нашел то так же жал рекол. Да и сам процес улетания можно обдумать, может кидать стену возле себя в сторону откуда бежит игрок, хотя бывает что стают прямо на меня...

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

Скрипт хочу сделать целиком новый, чтобы вспомнить то что я уже забыл и узнать все то что я еще не знал. Пока что пойду читать фак.chm по функциям, освежу немного память а то даже какие галочки в первой вкладке инжекта уже не помню что значат :roll: Конечно же любая возможная помощь в написании, с пониманием того что вопросов может быть много и глупых приветствуется :oops:

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-27 20:18:45 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Incorrect User wrote:
1. Чтобы выкапывал всю руду по 1 разу, и некоторые, указанные - 2 раза.

Не понял =D
Incorrect User wrote:
Ходьба будет по координатам, такого плана проверка что если чар находится в определенных координатах то делает 5 шагов на N, или 5 шагов на S, потому что копает через один тайл в сторону и соответственно сделать 5 шагов в любую из 4 сторон чтобы стать на чистый участок.

просто отходить -легко. отходить с проверками на кол-во пройденных тайлов и обходом препятствий - максимально коротко не получится
Incorrect User wrote:
Рекол, нужно чтобы хорошо и быстро определял на игроков

тема Палево =D
Incorrect User wrote:
к примеру сейчас у меня скрипт на рекол, на уопилот

не нашёл блевательного смайлика
Incorrect User wrote:
Проблема в том что когда например скрипт убивает гварда то на некоторое время перестает проверять сообщения сервера и если в это время кто то прибежит он может пропустить это и меня конечно же убьют

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

Интересно как они это делают... может сервер отправляет клиенту даже спрятанных чаров, а клиент их просто не отрисовывает?
Incorrect User wrote:
Да и сам процес улетания можно обдумать, может кидать стену возле себя в сторону откуда бежит игрок

а разве можно кастовать стену в момент каста рекола? или кастовать до рекола, но это время. проще поставить ящик... или несколько
Incorrect User wrote:
Можно еще сделать просто плавку и выгрузку в сундук, но не ботом, а нажатием кнопки

чего сразу не плавить? пару строк всего
Incorrect User wrote:
Вот только антимакрос разве что добавить, где то он был на форуме.

если не найдёшь - помогу чем смогу

дрв? :(


Top
   
PostPosted: 2012-11-27 20:45:14 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Из одного тайла некоторая руда может выкопаться сразу а некоторая копается за 2-3 раза по 1-несколько ингов за раз.

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

Да, кинуть стену, или энерджифилд, чтобы отгородиться а потом уже инвиз-рекол. Была еще мысль чтобы чар жал рекол и кидал на противника любой итем чтобы открылось трейд окно, когда оно открыто то нет возможности юзать предметы и соответственно скролы и на меня не смогут их использовать, но это палево и могут просто скрипт на закрытие трейда сделать его кстати если ты в инвизе и кидаешь на чара предмет то окно открывается но для чара на которого кинул предмет его не видно. Можно и камень ставить... посто они весят хорошо. Хотя я думаю обычного инвиз-рекола будет достаточно.

FWUO

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-27 23:43:01 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
2 ZeroDX
1) железо копнул - пошел дальше. Валорит копнул - вычистил всю жилу. Жадничает барин. :mrgreen:

2 автор
в принципе я никогда не ставил целью поработить весь мир в лице одного шарда но я никогда не понимал зачем мутить с реколлами и рунбуками когда можно поставить самый не дорогой "сортир" ВОЗЛЕ 1 пещеры и просто таскать руду туда сюда. Притом что как правило в недалеке от пещеры тусит лекарь-реинкарнатор либо на сервере работает перелет на "маркет"/к кресту с кнопки в меню когда ты гост.
Я копал сутками в течении недели вот таким не замысловатым вариантом:

Code:
var bag = '0x4018A728'  ; сундук куда скидывать руду и откуда брать инструменты
var instr = 'тип кирки или лопаты'
var ore1 = '0x19B7'
var ore2 = '0x19BA'
var ore3 = '0x19B8'
var ore4 = '0x19B9'
var Lasttimer

sub main()
repeat
walker(1874, 267, 0)
UO.UseObject(bag)
wait(1000)
putore()    ; скидываем руду
getinstr()  ; добираем инструменты
walker(1874, 267, 0)
walker(1874, 271, 0)
walker(1887, 271, 0)
walker(1897, 271, 0)
walker(1904, 271, 0)
Mine()
walker(1912, 273, 0)
Mine()
walker(1916, 281, 0)
Mine()
walker(1921, 276, 0)
Mine()
walker(1921, 269, 0)
Mine()
walker(1924, 264, 0)
Mine()
walker(1917, 271, 0)
walker(1901, 271, 0)
walker(1887, 271, 0)
walker(1874, 271, 0)
walker(1874, 267, 0)
until UO.Dead()
end sub

Sub getinstr()
get(instr, bag, 3, 1)
get(instr, bag, 3, 1)
get(instr, bag, 3, 1)
endsub
Sub putore()
put(ore1,bag)
put(ore2,bag)
put(ore3,bag)
put(ore4,bag)
end sub

сходил в пещеру, выкопал, отнес домой, добрал инструментов по необходимости. Обходит за цикл респа пещеру в пол игрового экрана. Когда выкапывался последний тайл на первом происходил респ. Ну в крайнем случае делал один холостой пробег по точкам.

Mine() - частный случай моего добывающего скрипта с обкопом вокруг себя.
Ходилка Брейкера. Самая путевая из программных на момент написания скрипта. Сундук встроен в ворота - чар владелей может в него закинуть руду, враги достать не могут.
Ресалку не показываю - реализовывал уже на стелсе. Инжект не очень любит когда чара убивают/оживляют (по моим наблюдениям).
Даже если чара будут гопать - ну и фиг с ними. Все равно бот будет копать когда ПК спят. А написать грамотного "отжимателя" руды в разы сложнее чем "рудокопа".

PS если все таки очень очень хочется то что в первом сообщении темы и очень очень не хочется пользоваться поиском то треба переезжать на скриптовый маркет. Там такие скрипты могут за определённую мзду оформить и настроить.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2012-11-28 00:13:01 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Quote:
Скрипт хочу сделать целиком новый, чтобы вспомнить то что я уже забыл и узнать все то что я еще не знал.

Это означает, что человек хочет написать всё сам. :roll: чё сразу в поиск то? и так форум мертвый, а тут по посту в день хоть какое-нибудь оживление.

Code:
walker(1904, 271, 0)
Mine()
walker(1912, 273, 0)
Mine()
walker(1916, 281, 0)
Mine()
walker(1921, 276, 0)
Mine()
walker(1921, 269, 0)
Mine()
walker(1924, 264, 0)
Mine()

жуть :twisted: у меня такой был


Top
   
PostPosted: 2012-11-28 01:45:54 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Quote:
зачем мутить с реколлами и рунбуками

Никаких рунбуков и реколов, кроме рекола домой при опасности или перевесе. Бот не нужен. Копает только когда я у компа, сам лечу в нужную шахту, в нужное место, нучжно чтобы только копал убивал гвардов и улетал когда ловят. Кстати вся вышка у нас копается по 1 разу, мне айрон и нужно рыть до упора :)

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 03:20:56 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
И сразу вопрос, как проверить что на экране появился гамп? uo.LastGump? Как оно работает? Мне нужно после юза кирки проверять на антимакроса гамп.

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 08:04:56 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
sub AntiMacro()
   ;   while not uo.Dead()
   if not uo.LastGump('replyed') then   ; если открылось какое то окно
      if uo.LastGump('text', 0) == 'Привет, добытчик!' then ; и слова заголовка
         Gong(3)   
         wait(5000)
      endif
   endif
   ;   wend
end sub

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

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2012-11-28 14:36:29 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Ничего не менялось и не меняется уже давно, и не изменится.

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 15:10:51 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Заготовка, меня интересует, как сделать ожидание/проверку что кирка заюзалась? uo.usetype(). И еще интересует как сделать чтобы скрипт начал сначала, например чар нажал на кирку, вылез антимакрос, он его ввел, и чтобы скрипт не бежал дальше вниз а перешел на начало где заново жмет на кирку.

Code:
var pause
pause = 0
sub Mining()
var coordx, coordy, tilex, tiley, circle
coordx = uo.getx('self')
coordy = uo.gety('self')
  for tilex = coordx - 2 to coordx + 2
    for tiley = coordy - 2 to coordy + 2
      uo.waittargettile('1341', str(tilex), str(tiley))
      uo.usetype()
      if not uo.LastGump('replyed') then
      if uo.LastGump('text', 0) == 'Antimacros System' then
         AntiMacros()
      endif
   endif
end sub

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 15:40:11 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
ну правильно, только паузу то потерял.
PS нельзя поставить паузу между использованием объекта и прицелом.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2012-11-28 16:18:26 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Mirage wrote:
ну правильно, только паузу то потерял

Паузу после AntiMacros()? И как скрипт в начало после ввода антимакроса пересести?

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 16:29:56 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Может так? Пока проверить не могу в игре.
Code:
uo.usetype()
      if not uo.LastGump('replyed') then
      if uo.LastGump('text', 0) == 'Antimacros System' then
         AntiMacros()
      endif
        else
         uo.waittargettile('1341', str(tilex), str(tiley))
   endif

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 17:40:05 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Code:
var pause
pause = 0
sub Mining()
var coordx, coordy, tilex, tiley, circle
coordx = uo.getx('self')
coordy = uo.gety('self')
  for tilex = coordx - 2 to coordx + 2
    for tiley = coordy - 2 to coordy + 2
lab:
      uo.waittargettile('1341', str(tilex), str(tiley))
      uo.usetype()
      if not uo.LastGump('replyed') then
      if uo.LastGump('text', 0) == 'Antimacros System' then
         AntiMacros()
goto lab
      endif
   endif
#сюда паузу на время копки сунуть бы не помешало
next #for должен закрываться next'ом
next #for должен закрываться next'ом
end sub


Top
   
PostPosted: 2012-11-28 17:55:05 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
На строке ниже вылазит runtime error.
Code:
uo.waittargettile('1339', str(tilex), str(tiley), str(tilez))


Весь код

Code:
var pause
sub Mining()
var coordx, coordy, coordz, tilex, tiley, tilez, circle
pause = 0
coordx = uo.getx('self')
coordy = uo.gety('self')
coordz = uo.getz('self')
 for tilex = coordx - 2 to coordx + 2
    for tiley = coordy - 2 to coordy + 2
      uo.waittargettile('1339', str(tilex), str(tiley), str(tilez))
      uo.usetype(0x0E85, 0x0000)
      if not uo.LastGump('replyed') then
      if uo.LastGump('text', 0) == 'Antimacros System' then
         AntiMacros()
      endif
         endif
end sub

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 17:59:04 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Это ок
Code:
coordz = uo.getz('self')

но где инициализация для
Code:
tilez

из
Code:
uo.waittargettile('1339', str(tilex), str(tiley), str(tilez))


Мб надо так?
Code:
uo.waittargettile('1339', str(tilex), str(tiley), str(coordz))


Top
   
PostPosted: 2012-11-28 18:33:25 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
и переводить в строки необязательно


Top
   
PostPosted: 2012-11-28 18:42:41 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Вот так работает, и антимакрос вводит как надо. Поехали дальше :)

Code:
var pause
pause = 0

sub Mining()
var coordx, coordy, coordz, tilex, tiley, circle
circle = 0
coordx = uo.getx('self')
coordy = uo.gety('self')
coordz = uo.getz('self')
 for tilex = coordx - 2 to coordx + 2
    for tiley = coordy - 2 to coordy + 2
mine:
      uo.waittargettile('1339', str(coordx), str(coordy), str(coordz))
      uo.usetype(0x0E85, 0x0000)
      wait(500)
      if not uo.LastGump('replyed') then
      if uo.LastGump('text', 0) == 'Antimacros System' then
      uo.deletejournal()
      while not uo.injournal('success')
         AntiMacros()
         wait(1000)
         wend
      endif
      endif
end sub

sub AntiMacros()
   dim reindex[8]
   reindex[0] = 11
   reindex[1] = 12
   reindex[2] = 13
   reindex[3] = 10
   reindex[4] = 16
   reindex[5] = 14
   reindex[6] = 17
   reindex[7] = 15
   var GumpID = 0
   var ButtonID = 0
   var ButtonText
   var i = 18
   if uo.LastGump('text', 4) <> "0" then
      i = 19
   end if
   GumpID = val(Mid(uo.LastGump('command', i), 16, 4))
   ButtonID = reindex[GumpID-2225]
   ButtonText = uo.LastGump('command', ButtonID)
   uo.LClick(Val(Mid(ButtonText, 7, 3)), Val(Mid(ButtonText, 11, 3)))
   while not uo.LastGump('replyed')
      wait(100)
   wend
end sub

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-28 18:56:52 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Code:
uo.waittargettile('1339', str(tilex), str(tiley), str(coordz))

Ато будет рыть всегда под собой.


Top
   
PostPosted: 2012-11-28 19:27:31 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Ок, запутался уже :roll: Теперь доделываю до конца копалку вокруг себя. Потом перейдем к реколу.

_________________
CodeSweeper


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 94 posts ]  Go to page 1 2 3 4 5 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited