Затуп скрипта
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
9 ноября 2016 10:48
Сообщение #1
Вопрос знатокам, почему крафтит вещи крайне долго, первые несколько раз быстро а дальше уже с затупами?
Sub Tinkering(n, Type, Name1, Name2)
   var Container = '0x4057E78C'
  
   while UO.Count(Type, 0x0000, 'backpack')  < n
      if not AddItems(0x1EBC, 0x0000, 1, Container, 'backpack') then
         UO.ColorPrint(0x0026, 'Нехватает инструмента' )
         return
      end if  
      if not AddItems(0x1BEF, 0x0000, 30, Container, 'backpack') then
         UO.ColorPrint(0x0026, 'Нехватает железа' + str(30 - UO.Count(0x175D, 0x0000,'backpack')))
         return
      end if
      if not AddItems(0x1BDD, 0x0000, 30, Container, 'backpack') then
         UO.ColorPrint(0x0026, 'Нехватает дерева' + str(30 - UO.Count(0x0FA0, 0x0000,'backpack')))
         return
      end if
      repeat
         if UO.Count(0x1EBC) == 0 then
            UO.ColorPrint(0x0026, 'Инструмент "Tinker Tools" не найден!')
            return
         end if
         UO.DeleteJournal()
         UO.WaitMenu('Tinkering',Name1,Name1,Name2)
         UO.UseType(0x1EBC)
         UO.WaitingForJournalText(Now(), 60000, "quality|You can't|fail|You broke|destroyed!")
         Wait(50)
      until UO.GetFoundedTextID() <= 1
      
   wend
   MoveItems(0x1BEF, 0x0000, 'backpack', Container)
   MoveItems(0x1BDD, 0x0000, 'backpack', Container)
   MoveItems(0x1EBC, 0x0000, 'backpack', Container)
   UO.ColorPrint(0x0446, 'Изготовление заказа Tinker завершено.')    
end sub
Маршал (59723793)11 летИнквизитор
Inquisitor
Сообщений: 1462
Рег. 16.08.2013
10 ноября 2016 08:55
Сообщение #2
ну скорость крафта от скила зависит. если меньше 100 то ом медленней делает.
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
10 ноября 2016 09:31
Сообщение #3
Barbatos,
ну у меня около 70, у него задержка большая оч,
мб в этой функции ?
UO.WaitingForJournalText(Now(), 60000, "quality|You can't|fail|You broke|destroyed!")
Сержант (551834)11 лет
Urukhay
Сообщений: 262
Рег. 18.06.2013
10 ноября 2016 09:33
Сообщение #4
ну 60 000 это время )
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
10 ноября 2016 09:48
Сообщение #5
Morgan La Fey,
я так понял 60 000 это время выхода из функции если ничего никаких сообщений из списка не замечено ?
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
10 ноября 2016 09:58
Сообщение #6
Shantaram,
Ждет минуту появления сообщения потом вырубает.
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
10 ноября 2016 10:41
Сообщение #7
Mirage,
ну вот похоже на правду, а разве при тинкеринге бывает такое что нет сообщения ?
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
10 ноября 2016 10:57
Сообщение #8
Раньше бывало что изза спама просто не срабатывала проверка. И потом там может проскочить сообщение неучтенное в проверке. Например когда копаешь под собой копать не везде можно и пишется - "Под собой копать нельзя" Но поскольку фраза не распространена то её обычно не вставляют в проверку. И скрипт стоит тупит и ждет когда какое то событие произойдет - а оно уже произошло. Вот таймер и вышибит цикл по истечению времени.
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
10 ноября 2016 10:59
Сообщение #9
Mirage,
ну так в моём случае при тинкеринге, что лучше сделать ? уменьшить время на 20 сек вместо минуты или еще меньше поставить?
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
10 ноября 2016 11:31
Сообщение #10
Надо просто вписать одну фразу :) Когда не ГМ скилл ты не делаешь предметы высшего качества.

"quality|You put|You can|fail|You broke|destroyed"

У меня крафт месага была вот такой:
"destroyed|You put|положили|fail|не удалось|You broke|сломали|izzle|uccess|in your pack"
Старший Прапорщик (2421139)9 лет
Dragonstalker
Сообщений: 282
Рег. 20.09.2015
10 ноября 2016 11:49
Сообщение #11
Mirage,
почему была ?)))
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
10 ноября 2016 13:23
Сообщение #12
Крафт скриптом имеет смысл когда до жопы ресурсов, их имеет смысл крафтить и продавать по повышеной цене столбу. Так было раньше. Сейчас 3-4 недостающие вещи можно и руками сделать. И я почти не бегаю. Так что БЫЛ = последний вариант который мной использовался в более менее активную стадию игры.
Маршал (73319389)14 летИнквизитор
Inquisitor
Сообщений: 1693
Рег. 19.06.2010
10 ноября 2016 13:35
Сообщение #13
         UO.WaitingForJournalText(Now(), 60000, "You put|fail|You can't|You broke|destroyed!")
         Wait(50)      
      until UO.GetFoundedTextID() == -1 || UO.GetFoundedTextID() >= 2
Последние посетители (0):

 
Сейчас: 24 ноября 2024 06:29