Синтаксис uo.exec, Передача параметра |
Синтаксис uo.exec, Передача параметра |
Сообщений: 275 Рег. 10.03.2017 |
21 июня 2017 07:58
Сообщение #1
|
Подскажите, пожалуйста. Необходимо передать параметр в Function(param) с помощью uo.exec Пробовал UO.Exec('exec Function#param') выдает ошибку. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
21 июня 2017 17:06
Сообщение #2
|
sub main() uo.exec('exec main1#123') wait(2000); пауза для наглядности end sub sub main1(n) uo.textPrint(n) wait(1000); пауза для наглядности end sub Все нормально работает (YokoInjection 1508) |
|
|
|
Сообщений: 275 Рег. 10.03.2017 |
21 июня 2017 21:05
Сообщение #3
|
Так работает, а вот с переменной в параметре почему то не хочет. sub main() var txt=123 uo.exec('exec main1#txt') wait(2000); пауза для наглядности end sub sub main1(n) uo.textPrint(n) wait(1000); пауза для наглядности end sub |
|
|
|
22 июня 2017 10:06
Сообщение #4
|
|
sub main() var txt=123 uo.exec('exec main1#'+str(txt)) wait(2000); пауза для наглядности end sub sub main1(n) uo.textPrint(n) wait(1000); пауза для наглядности end sub вроде так |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
22 июня 2017 13:15
Сообщение #5
|
sub main() var txt='321321' uo.exec('exec main1'+'#'+txt) wait(2000); пауза для наглядности end sub sub main1(n) uo.textPrint(n) wait(1000); пауза для наглядности end sub Или 'exec main1#'+txt и так и так работает. |
|
|
|
Сообщений: 275 Рег. 10.03.2017 |
22 июня 2017 21:47
Сообщение #6
|
Спасибо, за ответы. Пробовал, почему то через раз работает, надо с системой или инжой разбираться. Но ошибку не выдает. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
22 июня 2017 22:11
Сообщение #7
|
vovan, У меня вчера тоже не с первого раза завелось :) Просто я редко пользуюсь в параллель запущенными процедурами. Бывает из одной вызываются штук 15-17 но последовательно. А что ты ваяешь? |
|
|
|
Сообщений: 275 Рег. 10.03.2017 |
23 июня 2017 06:39
Сообщение #8
|
Автотайминг животных. Первая процедура ведет поиск животного и заполняет массив с их сериалами. А вторая последовательно таймит из этого массива. Но массив заполняется гораздо быстрее, а таймится медленно, вот и есть необходимость параллельной работы с одним массивом. В принципе и последовательная работает, но хотел вообще без задержек. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
23 июня 2017 21:27
Сообщение #9
|
Если ты тамишь не убивая, а отпуская то можно ID в файл заносить и брать из файла. Если убивать то можно просто - нашел - подошел - затамил - убил. Тут первый способ не очень работает - звери растамливаются очень долго. |
|
|
|
Сообщений: 275 Рег. 10.03.2017 |
24 июня 2017 07:26
Сообщение #10
|
Идея не плохая, но на сколько я понимаю, инжа файл в реалтайме не может менять. Открыла файл, записала, закрыла. А если второй раз откроет, и попробует записать, что будет с существующими записями? Или надо процедуру писать проверки содержимого? |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
24 июня 2017 09:01
Сообщение #11
|
Был вот такой старый скрипт. Логирование работает но лучше немного переделать. У меня вариант похожий но на стелсе. ######################################## # Revenant / Antares / Animal Taming ######################################## # В загончик площадью один тайл загоняется туча живности # все равно какой, любых видов и расцветок, лишь бы тамилась. # Для корректной работы желательно больше 50 шт. # Отпускаете ее и ждете пока забудет вас (на Антаресе - 5 мин) # Заползаете в этот же загончик. # Единственный раз запускается процедура saver() при которой # скрипт заносит ID всех тварей в файл count.dat # после этого смело запускаете процедуру main() и идете # досматривать фильм по телеку # Да, и еще, галочка в TWI отнюдь не помешает для первого запуска. var f=file("d:\count1.dat") var i, ii var food='0x097B' ; еда, по умолчанию лук sub saver() dim a[40] var ser, nam var s=0 var exit=0 uo.ignorereset() uo.set('finddistance','3') i=0 repeat repeat uo.findtype('-1','-1','ground') if not UO.FindCount() then exit=1 endif uo.ignore("finditem") wait(100) until uo.IsNPC("finditem") and uo.getserial("finditem")<>uo.getserial("self") or not UO.FindCount() if not exit then i=i+1 ser = uo.getserial("finditem") ii=i a[i]=ser uo.Print('ser = '+ a[i]) uo.Print(uo.GetName(ser)) endif wait(100) until i==40 or exit==1 uo.Print('Open file') f.open() f.create() uo.Print('elements = '+ str(ii)) s=safe call f.writeln(ii) for i=1 to ii s=safe call f.writeln(a[i]) next f.close() uo.Print('All IP saved') end sub sub main() dim b[40] var count=0 VAR LastTimer, start f.open() ii=safe call f.ReadNumber() uo.Print('ii='+str(ii)) for i=1 to ii b[i]=safe call f.ReadString() next f.close() uo.DeleteJournal() while not uo.Dead() uo.DeleteJournal() start = UO.Timer() for i=1 to ii uo.Print("Живность номер " +str(i)) repeat UO.DeleteJournal() uo.WaitTargetObject(b[i]) UO.Useskill('Animal Taming') LastTimer=UO.Timer() repeat wait(1000) until UO.InJournal('You fail') OR UO.InJournal('It seems') OR UO.InJournal('You can not see')OR UO.InJournal('away') OR UO.InJournal('remember') OR UO.InJournal('cancelled')OR UO.InJournal('already')OR UO.InJournal('target')OR UO.Timer()>LastTimer+400 until Uo.InJournal('It seems') OR UO.InJournal('remember') OR UO.InJournal('cancelled')OR UO.InJournal('already')OR UO.InJournal('target') uo.Say('All release') next eat() wend end sub sub eat() UO.DeleteJournal() repeat if UO.Count(food)>0 then UO.UseType(food) wait(500) else return end if Until UO.InJournal("stuffed!") OR UO.InJournal("think") end sub |
|
|
|
Сообщений: 275 Рег. 10.03.2017 |
25 июня 2017 00:13
Сообщение #12
|
Спасибо, на досуге попробую разобраться что к чему. |
|
|
|
Сейчас: 23 ноября 2024 23:05 |