Синтаксис uo.exec, Передача параметра
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
21 июня 2017 07:58
Сообщение #1
Подскажите, пожалуйста.
Необходимо передать параметр в Function(param) с помощью uo.exec
Пробовал UO.Exec('exec Function#param') выдает ошибку.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 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)
Прапорщик (1724985)7 лет
Ranger
Сообщений: 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

Старший Лейтенант (6669019)10 лет
Necromancer
Сообщений: 208
Рег. 22.12.2013
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

вроде так
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 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
и так и так работает.
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
22 июня 2017 21:47
Сообщение #6
Спасибо, за ответы. Пробовал, почему то через раз работает, надо с системой или инжой разбираться. Но ошибку не выдает.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
22 июня 2017 22:11
Сообщение #7
vovan,
У меня вчера тоже не с первого раза завелось :) Просто я редко пользуюсь в параллель запущенными процедурами. Бывает из одной вызываются штук 15-17 но последовательно.
А что ты ваяешь?
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
23 июня 2017 06:39
Сообщение #8
Автотайминг животных. Первая процедура ведет поиск животного и заполняет массив с их сериалами. А вторая последовательно таймит из этого массива. Но массив заполняется гораздо быстрее, а таймится медленно, вот и есть необходимость параллельной работы с одним массивом. В принципе и последовательная работает, но хотел вообще без задержек.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 июня 2017 21:27
Сообщение #9
Если ты тамишь не убивая, а отпуская то можно ID в файл заносить и брать из файла.
Если убивать то можно просто - нашел - подошел - затамил - убил.

Тут первый способ не очень работает - звери растамливаются очень долго.
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
24 июня 2017 07:26
Сообщение #10
Идея не плохая, но на сколько я понимаю, инжа файл в реалтайме не может менять. Открыла файл, записала, закрыла. А если второй раз откроет, и попробует записать, что будет с существующими записями? Или надо процедуру писать проверки содержимого?
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 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
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
25 июня 2017 00:13
Сообщение #12
Спасибо, на досуге попробую разобраться что к чему.
Последние посетители (0):

 
Сейчас: 23 ноября 2024 06:39