Yoko

All sides of Injection
It is currently 2025-12-23 04:26:05

All times are UTC+02:00




Post new topic  Reply to topic  [ 12 posts ] 
Author Message
PostPosted: 2007-07-10 20:46:35 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Code:
VAR sunduk
var SundukPust
var Empty=1
var beltpouch
VAR x
VAR y
sub posadka()
UO.Exec("set distance 0")
UO.FindType('0x0E75','0x0000','ground')
uo.addobject('sunduk','finditem')
wait(1000)
UO.FindType('0x0E75','0x00AD','ground')
uo.addobject('SundukPust','finditem')
UO.UseObject('sunduk')
wait(1000)
UO.UseObject('SundukPust')
while UO.InJournal("Эта местность")==0
if Empty == 1 then
         UO.FindType('0x0E76','-1','sunduk')
         uo.click('finditem')
         wait(500)
         if (UO.FindCount() > 0) then
            uo.addobject('beltpouch','finditem')
         Else
            UO.FindType('0x0E79','-1','sunduk')
            uo.click('finditem')
            wait(500)
            if (UO.FindCount() > 0) then
               uo.addobject('beltpouch','finditem')
            Else
               UO.FindType('0x09B0','-1','sunduk')
               uo.click('finditem')
               wait(500)
               if (UO.FindCount() > 0) then
                  uo.addobject('beltpouch','finditem')
               Else
                  uo.Print('Выберите мешок: ')
                  uo.exec('addobject beltpouch')
                  while uo.targeting()
                     wait(100)
                  wend
               Endif
            Endif
         Endif
UO.UseObject('beltpouch')

UO.Findtype( '0x18E3', '-1', 'beltpouch' )
while UO.FindCount() > 0

for x = -3 to 3
for y= -3 to 3

UO.FindType('0x18E3', -1, 'beltpouch')
if UO.FindCount() > 0 then
uo.drop("1",STR(x),STR(y),"0",'finditem')
end if
UO.DeleteJournal()
wait (700)
UO.Exec("set distance 3")
if UO.FindCount() > 0 then
while UO.CountGround('0x18E3') > 0 and UO.InJournal("Эта местность")==0
UO.Usefromground('0x18E3')
wait (100)
wend
end if
next
next
wend
Empty=0
UO.Findtype( '0x18E3', '-1', 'beltpouch' )
 if UO.FindCount() == 0 then
         UO.MoveItem('beltpouch', 0, 'SundukPust')
         Empty=1
      end if
wend
end sub

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


Top
   
PostPosted: 2007-07-11 14:13:57 
Offline

Joined: 2005-01-06 11:49:28
Posts: 205
[quote="MorbidAngel"]
Code:
#VAR sunduk #####эти переменные
#var SundukPust ###обьявлять не надо
var Empty=1
#var beltpouch###эту тоже
VAR x
VAR y
sub posadka()
UO.Exec("set distance 0")
UO.FindType('0x0E75','0x0000','ground')
uo.addobject('sunduk','finditem')
wait(1000)
UO.FindType('0x0E75','0x00AD','ground')
uo.addobject('SundukPust','finditem')
UO.UseObject('sunduk')
wait(1000)
UO.UseObject('SundukPust')
while UO.InJournal("Эта местность")==0 ## уверен что инжа читает по русски ?
if Empty == 1 then
         UO.FindType('0x0E76','-1','sunduk')
         uo.click('finditem')  #зачем кликаем ?
         wait(500)
         if (UO.FindCount() > 0) then
            uo.addobject('beltpouch','finditem')
         Else
            UO.FindType('0x0E79','-1','sunduk')
            uo.click('finditem')    #зачем кликаем ?
            wait(500)
            if (UO.FindCount() > 0) then
               uo.addobject('beltpouch','finditem')
            Else
               UO.FindType('0x09B0','-1','sunduk')
               uo.click('finditem')
               wait(500)
               if (UO.FindCount() > 0) then
                  uo.addobject('beltpouch','finditem')
               Else
                  uo.Print('Выберите мешок: ')
                  uo.exec('addobject beltpouch')
                  while uo.targeting()
                     wait(100)
                  wend
               Endif
            Endif
         Endif
UO.UseObject('beltpouch')

UO.Findtype( '0x18E3', '-1', 'beltpouch' )
while UO.FindCount() > 0

for x = -3 to 3
for y= -3 to 3

UO.FindType('0x18E3', -1, 'beltpouch')
if UO.FindCount() > 0 then
uo.drop("1",STR(x),STR(y),"0",'finditem')
end if
UO.DeleteJournal()
wait (700)
UO.Exec("set distance 3")
if UO.FindCount() > 0 then
while UO.CountGround('0x18E3') > 0 and not UO.InJournal("Эта местность") ## тут чуток поправил
UO.Usefromground('0x18E3')
wait (100)
wend
end if
next
next
wend
Empty=0
UO.Findtype( '0x18E3', '-1', 'beltpouch' )
 if UO.FindCount() == 0 then
         UO.MoveItem('beltpouch', 0, 'SundukPust')
         Empty=1
      end if
wend
end sub

Хз.. я покомментировал только мелкие недочёты.. а серьёзных ошибок не нашёл


Top
   
 Post subject:
PostPosted: 2007-07-11 15:26:01 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Через прицелы цикл не делается- по завершении первой иттерации он попросит указать мешок второй раз, а скрипт как я понял расчитан на отсутствие игрока у компа. Делай через

Code:
uo.FindType()
if uo.FindCount() then
  variable= uo.GetSerial()
end if


2.
Code:
uo.set('finddistance','3') 


Top
   
 Post subject:
PostPosted: 2007-07-12 13:27:06 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Scripts Writer wrote:
Через прицелы цикл не делается- по завершении первой иттерации он попросит указать мешок второй раз, а скрипт как я понял расчитан на отсутствие игрока у компа. Делай через

Code:
uo.FindType()
if uo.FindCount() then
  variable= uo.GetSerial()
end if


2.
Code:
uo.set('finddistance','3') 

Чесно говоря я не гуру по скриптам и по програмированию...скрипты я пишу не с нуля, а переделываю существующие под свои нужды...вот то чего ты написал я вообще не понял :oops:


Top
   
PostPosted: 2007-07-12 13:28:39 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Rivory wrote:
MorbidAngel wrote:
Code:
#VAR sunduk #####эти переменные
#var SundukPust ###обьявлять не надо
var Empty=1
#var beltpouch###эту тоже
VAR x
VAR y
sub posadka()
UO.Exec("set distance 0")
UO.FindType('0x0E75','0x0000','ground')
uo.addobject('sunduk','finditem')
wait(1000)
UO.FindType('0x0E75','0x00AD','ground')
uo.addobject('SundukPust','finditem')
UO.UseObject('sunduk')
wait(1000)
UO.UseObject('SundukPust')
while UO.InJournal("Эта местность")==0 ## уверен что инжа читает по русски ?
if Empty == 1 then
         UO.FindType('0x0E76','-1','sunduk')
         uo.click('finditem')  #зачем кликаем ?
         wait(500)
         if (UO.FindCount() > 0) then
            uo.addobject('beltpouch','finditem')
         Else
            UO.FindType('0x0E79','-1','sunduk')
            uo.click('finditem')    #зачем кликаем ?
            wait(500)
            if (UO.FindCount() > 0) then
               uo.addobject('beltpouch','finditem')
            Else
               UO.FindType('0x09B0','-1','sunduk')
               uo.click('finditem')
               wait(500)
               if (UO.FindCount() > 0) then
                  uo.addobject('beltpouch','finditem')
               Else
                  uo.Print('Выберите мешок: ')
                  uo.exec('addobject beltpouch')
                  while uo.targeting()
                     wait(100)
                  wend
               Endif
            Endif
         Endif
UO.UseObject('beltpouch')

UO.Findtype( '0x18E3', '-1', 'beltpouch' )
while UO.FindCount() > 0

for x = -3 to 3
for y= -3 to 3

UO.FindType('0x18E3', -1, 'beltpouch')
if UO.FindCount() > 0 then
uo.drop("1",STR(x),STR(y),"0",'finditem')
end if
UO.DeleteJournal()
wait (700)
UO.Exec("set distance 3")
if UO.FindCount() > 0 then
while UO.CountGround('0x18E3') > 0 and not UO.InJournal("Эта местность") ## тут чуток поправил
UO.Usefromground('0x18E3')
wait (100)
wend
end if
next
next
wend
Empty=0
UO.Findtype( '0x18E3', '-1', 'beltpouch' )
 if UO.FindCount() == 0 then
         UO.MoveItem('beltpouch', 0, 'SundukPust')
         Empty=1
      end if
wend
end sub

Хз.. я покомментировал только мелкие недочёты.. а серьёзных ошибок не нашёл

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


Top
   
 Post subject:
PostPosted: 2007-07-13 08:09:06 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Пытался объяснить что хотел сказать-не получилось.

Распиши скрипт на мелочи и всё. Сначало чтобы он брал 1 мешок ,затем пустой убирал, затем отличал пустой мешок от полного, затем сажал, затем всё это соедини вместе и будет тебе собственный скрипт в котором ты уже будешь разбираться и уверен на 100%.


Top
   
 Post subject:
PostPosted: 2007-07-13 19:03:54 
Offline
User avatar

Joined: 2006-05-12 08:03:45
Posts: 223
Scripts Writer wrote:
Распиши скрипт на мелочи и всё.


Да, распиши, я хоть посмотрю, как надо расписывать правильные скрипты... :mrgreen:
Э-эхх... Чой-то мне весело. К "дождю-сь", наверное. :roll:


Top
   
 Post subject:
PostPosted: 2007-07-13 19:18:21 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
ADEPT_ABP wrote:
Scripts Writer wrote:
Распиши скрипт на мелочи и всё.


Да, распиши, я хоть посмотрю, как надо расписывать правильные скрипты... :mrgreen:


По пунктам на маленькие отрывки. Обычно я начинал с

Code:
*К примеру скрипт на тинкер*


1. указать сундук, открыть сундук, взять мешок, присвоить его ID какой то переменной. Написали, запустили, проверили -всё работает, идём дальше.

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

3. пишем функцию крафта в которой будет у нас меню, цикл проверки на журнал и динамическая пауза

4. добавляем к пункту 3 цикл и тестируем в создании 255 вещей + перекладка в определённый мешок.

5. ...

n. соединяем всё воедино и тестируем конечный вариант + правим если что.

п.с. но это было давно. Сейчас уже всё в одной функции всё сразу а потом уже небольшие корректировки.


Top
   
 Post subject:
PostPosted: 2007-07-13 19:46:58 
Offline
User avatar

Joined: 2006-05-12 08:03:45
Posts: 223
Scripts Writer wrote:
По пунктам на маленькие отрывки. Обычно я начинал с

Code:
*К примеру скрипт на тинкер*


1. указать сундук, открыть сундук, взять мешок, присвоить его ID какой то переменной. Написали, запустили, проверили -всё работает, идём дальше.

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

3. пишем функцию крафта в которой будет у нас меню, цикл проверки на журнал и динамическая пауза

4. добавляем к пункту 3 цикл и тестируем в создании 255 вещей + перекладка в определённый мешок.

5. ...

n. соединяем всё воедино и тестируем конечный вариант + правим если что.

п.с. но это было давно. Сейчас уже всё в одной функции всё сразу а потом уже небольшие корректировки.


Ну-у... Если мне не изменяет память - это ж блок-схема, только по-строчно.

Я кстати так и делаю, с заглядыванием в HELP инжекта.
Вот и спросил, что даёт резервирование переменных, до начала "тела функции". Пробежался по ФАК-у, - не нашёл, завтра буду шерстить Уроки.
Хочу сократить скрипт на BS(тема BlackSmithing).


Top
   
 Post subject:
PostPosted: 2007-07-13 19:49:16 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Нет, блок схема это блок схема, а я тебе расписал алгоритм.

Блок схема это операторы и вызовы функций в схеме :) (прямоугольник для операторов, ромб для условных операторов, вызов функций в прямоугольниках с полосками побокам) :)


Top
   
 Post subject:
PostPosted: 2007-07-13 20:02:27 
Offline
User avatar

Joined: 2006-05-12 08:03:45
Posts: 223
Scripts Writer wrote:
Нет, блок схема это блок схема, а я тебе расписал алгоритм.

Блок схема это операторы и вызовы функций в схеме :) (прямоугольник для операторов, ромб для условных операторов, вызов функций в прямоугольниках с полосками побокам) :)


Умеешь неотвечать на важные вопросы. :mrgreen:
С другой стороны, буду знать, что такое алгоритм. Спасибо.


Top
   
 Post subject:
PostPosted: 2007-07-13 20:10:00 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
ADEPT_ABP wrote:
Scripts Writer wrote:
Нет, блок схема это блок схема, а я тебе расписал алгоритм.

Блок схема это операторы и вызовы функций в схеме :) (прямоугольник для операторов, ромб для условных операторов, вызов функций в прямоугольниках с полосками побокам) :)


Умеешь неотвечать на важные вопросы. :mrgreen:
С другой стороны, буду знать, что такое алгоритм. Спасибо.
:wink:


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 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:  
Powered by phpBB® Forum Software © phpBB Limited