poncha 0 Жалоба Опубликовано 30 апреля, 2010 помогите разобраться что я делаю не так... идея такая: 1. еда в паке (рыбные стейки - кстати, умер неоднократно пока разобрался что же drow ест, и пока нашел где взять жареной рыбы в серпенте... стоит где-то в описании расы написать что она ест). 2. ищем в паке еду 3. если таковой нет, то раз в минуту напоминаем что надо достать еды (пока еда не появится или не умрем - тут как вариант думаю сделать чтобы происходил логаут, но не факт что очень надо). 4. дальше ищем в паке ключевое слово на голод (тут кстати загвоздка - я посмотрел сколько разных фраз бывает и одного слова которое бы было во всех нету. есть ли в инжекте поддержка регулярных выражений? а то очень не хочется много или-или-или писать )) 5. если голод обнаружен, то кормим - пока не поймаем в журнале ключевое слово на сытость 6. после этого журнал обнуляется и ждем дальше первую часть (с ожиданием еды в паке) я протестировал и вроде всё было ок. но как только я добрался до части которая занимается кормежкой - у меня сразу же валится инжект... никак не могу понять что я сделал не так могу конечно тупо жрать еду каждые N минут, но легкий путь ведь это не для нас? код ниже, буду признателен за комментарии и любые подсказки. очень давно не писал скриптов для инжекта, так что память надо освежить)) sub autofood() var foodType = '0x097B'; # 0x097B: fishsteaks var hasFood = 0; # this will hold an amount of foodType found.. var foodWaitTime = 1000; # how much to wait between feedings var warningInterval = 600; # 60 seconds (OU.Timer() returns amount in 0.1 second units) var warningTimer = 0; # last warning timer var matchHungry = 'голод'; # a word to match hunger var matchNotHungry = 'неголод'; # a word to match we're no longer hungry var isHungry = 1; while not UO.Dead() repeat UO.FindType(foodType,-1,'my'); # count food in backpack hasFood = UO.FindCount(); if hasFood == 0 then if warningTimer < UO.Timer() - warningInterval then UO.print('You are out of food!'); warningTimer = UO.Timer(); # reset warning timer endif wait(10000); # wait 10 seconds endif until hasFood > 0 if UO.InJournal(matchHungry) > 0 then isHungry = 1; # someone's hungry! endif while isHungry == 1 and hasFood > 0 UO.print('Fish.. fish... FIIIIISH!'); UO.UseType(foodType); # lets eat hasFood = hasFood - 1; # decrement the amount of food so we don't try to eat air if UO.InJournal(matchNotHungry) > 0 then isHungry = 0; # we're no longer hungry! UO.DeleteJournal(); # clear the journal so we don't get fooled into idea that we still require food else wait(foodWaitTime); # wait before eating again! endif wend if isHungry == 1 then UO.print('Still hungry! hurry up! get some food!'); endif wait(foodWaitTime); wend UO.print('You are dead!') end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MakeMeHappy 0 Жалоба Опубликовано 1 мая, 2010 Ну во первых если посмотреть командой ,showjournal инжект не понимает серверных сообщений на русском, в журнале они отображаются кракозябликами. Во вторых фразы при голоде совершенно рандомные, а в третих все это - лишний геморрой. прокачай своему рогу хп выше 30 и не умрешь с голоду никогда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
poncha 0 Жалоба Опубликовано 2 мая, 2010 Ну во первых если посмотреть командой ,showjournal инжект не понимает серверных сообщений на русском, в журнале они отображаются кракозябликами. Во вторых фразы при голоде совершенно рандомные, а в третих все это - лишний геморрой. прокачай своему рогу хп выше 30 и не умрешь с голоду никогда. спасибо за инфу) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeSSiR 0 Жалоба Опубликовано 3 мая, 2010 ппц ты намудрил с кодом) var food='0x097B' # Тип еды, которую будем кушать в процессе. # '0x097B' - жаренная рыба # '0x09F2' - жаренное мясо # '0x171F' - бананы Sub eda() uo.findtype(food) if uo.findcount() then uo.usetype(food) else uo.print("Нет еды!") endif wait(1000) end sub можешь запихивать в любой скрипт.. будет в твоем цикле пытаться что-то сожрать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты