Yoko

All sides of Injection
It is currently 2025-12-03 00:24:49

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2006-11-19 13:41:00 
Offline
User avatar

Joined: 2005-01-14 13:41:05
Posts: 73
Location: Одесса - мама
чтото у меня скрипт не клеится :) если он очень кривой- не ругайте сильно, я в инже не проффесионал :)
кароче, есть скрипт на мининг с тотемом. крафт облетает по рб шахтыи сносит все в кастл. пишет под крышей дроп, тотем скидывает все на пол и улетает себе дальше копать. но итемов то которые он скидывает ( руда ) очень много. за ночь ОЧЕЕНЬ даже много :) вручную все это стекировать очень нудно. попытался написать скрипт который разложит все эте итемы по ЦВЕТАМ в 1 кучку. не получилось. возможно я пошёл вобще по невозможному пути... однако помогите :roll:
Code:
sub Stack()
   var GroundItem, PackItem, i, ruda
   PackItem = ''
   GroundItem = ''
   ruda = '0x19B9'
   Dim Ore[3]
Ore[1]= 0x0042 ;  #цвет руды#
Ore[2]= 0x0602 ; 
Ore[3]= 0x0000 ;
UO.exec('set distance 2')
UO.exec('set finddistance 2')
while uo.weight < 3000
   UO.FindType(ruda,'-1','ground')
   while UO.FindCount() > 5
   for i=1 to 4
   uo.FindType(ruda,Ore[i],'ground')
   if UO.CountGround(ruda) then
      PackItem = '^'+ruda
      Uo.ignore('finditem')
      uo.FindType(ruda,Ore[i],'ground')
   if UO.CountGround(ruda) then
      GroundItem = '~'+ruda
      wait(500)
   if ((PackItem <> '') and (GroundItem <> '')) then
      UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
     i = i + 1
     wend
     end if
end sub


Top
   
 Post subject:
PostPosted: 2006-11-19 14:24:35 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Намудрил выше крыши.

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

Очередной пример как никогда не надо писать скрипты. Для новичков поясняю: Табуляция выглядит следующим образом:

Code:
while not uo.Dead()
  if ... then
    for i = 0 to 5
      repeat
        wait(100)
        if ... then
          uo.Print('Hi')
        else
          while uo.FindCount()
            wait(500)
          wend
        end if
      until
    next
  end if
wend

Для каждого оператора выбора условия или же цикла, должно соблюдаться определённое правило. У этих операторов всегда должны быть начало и конец( if - end if, while - wend , for - next , repeat - until ). Для удобности чтения, существует табуляция(отступы) -наглядно показано на примере скрипта выше.
Чтобы небыло ситуации написаной ниже, удобнее делать отступы и смотреть что,где и как надо закрывать.

п.с. Автор, выкинь скрипт и начни дай новую жизнь скрипту здесь.
А Вот так писать не надо:
Code:
while uo.weight < 3000 
   UO.FindType(ruda,'-1','ground')
   while UO.FindCount() > 5
     for i=1 to 4
       uo.FindType(ruda,Ore[i],'ground')
       if UO.CountGround(ruda) then
         PackItem = '^'+ruda
         Uo.ignore('finditem')
         uo.FindType(ruda,Ore[i],'ground')
         if UO.CountGround(ruda) then
          GroundItem = '~'+ruda
          wait(500)
          if ((PackItem <> '') and (GroundItem <> '')) then
            UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
            i = i + 1
  ??   wend    ??
  ??   end if   ??


Top
   
 Post subject:
PostPosted: 2006-11-19 14:45:06 
Offline
User avatar

Joined: 2005-01-14 13:41:05
Posts: 73
Location: Одесса - мама
- на полу лежит руда разных цветов
- радиус 2 тайла от чара
- руды очень большое количество, но она лежит маленькими порциями друг на друге ( то есть итемов очень много )
- задача скрипта- разтолкать все эти маленькие стопки в одну, тоесть чтобы на полу осталась лишь по одной стопке данного цвета.
- скорее всего маленькие стопки, что лежат на полу, в бекпак не влезут, то есть "собирать в кучу" их прийдется не кладя в бекпак изначально.

спасибо что уже пытаешься чемто помочь :roll:


Top
   
 Post subject:
PostPosted: 2006-11-19 22:46:35 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Сходу не разбираясь вижу что:

1. у цикла for нет конца (next)

2. While и If пересекаются, то есть:

Code:
while...
...
if...
...
wend
...
endif

Это недопустимая ситуация.

3. На три if приходится один endif

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-11-20 20:11:41 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Edred wrote:
Сходу не разбираясь вижу что:

1. у цикла for нет конца (next)

2. While и If пересекаются, то есть:

Code:
while...
...
if...
...
wend
...
endif

Это недопустимая ситуация.

3. На три if приходится один endif

В след. раз прочитай содержимое темы.


Top
   
 Post subject:
PostPosted: 2006-11-20 23:00:48 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Попробуй на пол бросить несколько мешков и чтоб чар сбрасывал каждую руду в свой мешок. По определению руда при перетаскивании на мешок, должна там изначально в 1 кучу падать.

_________________
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog


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

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