Yoko

All sides of Injection
It is currently 2026-01-25 05:14:42

All times are UTC+02:00




Post new topic  Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 2006-10-17 15:18:01 
Offline

Joined: 2005-05-02 17:37:12
Posts: 46
При присваивании переменной из объекта пользуйюь такой примитивной конструкцией
Code:
if n = 1 then
   Runebookid = 'RB_TM1'
end if
if n = 2 then
   Runebookid = 'RB_TM2'
end if
if n = 3 then
   Runebookid = 'RB_TM3'
end if
if n = 4 then
   Runebookid = 'RB_TM4'
end if
if n = 5 then
   Runebookid = 'RB_TM5'
end if


надо что то типа
Runebookid = 'RB_TM' + str(n)

но напрямую из Обьекта передать в переменную не выходит, кто что подксажет ?
[/code]


Top
   
 Post subject:
PostPosted: 2006-10-17 16:00:02 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Не понял твоего кода =\ В чём его смысл?


Top
   
PostPosted: 2006-10-17 22:05:33 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Chico wrote:
При присваивании переменной из объекта пользуйюь такой примитивной конструкцией
Code:
if n = 1 then
   Runebookid = 'RB_TM1'
end if
if n = 2 then
   Runebookid = 'RB_TM2'
end if
if n = 3 then
   Runebookid = 'RB_TM3'
end if
if n = 4 then
   Runebookid = 'RB_TM4'
end if
if n = 5 then
   Runebookid = 'RB_TM5'
end if


надо что то типа
Runebookid = 'RB_TM' + str(n)

но напрямую из Обьекта передать в переменную не выходит, кто что подксажет ?
[/code]


Какого "Объекта"? В мире много языков программирования и все они имеют свою особенную терминологию. В нашем понимании (инжекта), "объект" это часть "мира" УО, имеющая свой серийный номер, тип, цвет и тд и тп... Поэтому поясни что ты имел ввиду.
ЗЫ: А, кстате, Runebookid = 'RB_TM' + str(n) должно работать.

_________________
DerMeister сейчас на нейрале!


Top
   
PostPosted: 2006-10-17 22:12:55 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
DerMeister =) wrote:
Какого "Объекта"?
ЗЫ: А, кстате, Runebookid = 'RB_TM' + str(n) должно работать.


Он имел в виду наверняка объекты, им определенные на закладке объектов. То есть те, которые в скрипте пишутся в кавычках. Кстати,
Chico wrote:
Runebookid = 'RB_TM1'

это не должно работать. Если RB_TM1 - это объект, определенный на закладке объектов. Тебе надо писать:
Code:
Runebookid = UO.GetSerial('RB_TM1')

И, кстати, тебе никто не мешает написать:
Code:
Runebookid = UO.GetSerial('RB_TM' + str(n))

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


Top
   
 Post subject:
PostPosted: 2006-10-17 22:15:40 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Хмм, угу...
А он так написал, что я ничё не понял... Меня сбило с толку Runebookid = 'RB_TM1'... до сих пор не могу представить, что это попытка обращения к объекту...

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-10-19 13:01:09 
Offline

Joined: 2005-05-02 17:37:12
Posts: 46
Ну да Я имел ввиду, обьекты на закладке Object - я решил что все поймут, так как объекты в мире имеют ID а ниакак не название RB_TM1
А конструкция
Code:
Runebookid = 'RB_TM1'

прекрасно всегда работала и работает, у меня она используется повсеместно, а зачем использовать UO.GetSerial('RB_TM1'), если сериал уже и есть RB_TM1. UO.GetSerial мной используется для преобразования тип-> обьект.

Короче говоря, мне надо на основании сгенереных динамично объектов получать ID в переменную.

То есть
В шапке указываю количество рунбук
var kol_buk = 5

потом делаю
Code:
   for i= 1 to Kol_buk 
      uo.Exec('addobject Runebookid')
      while Uo.Targeting()
        wait(100)
       wend
       RB = "RB_TM"+str(i)
       Uo.addobject(RB,'Runebookid')
   next

У меня создается кучка объектов с именами RB_TM1, RB_TM2и т.д., столько сколько надо. от 1 до бесконечности

Потом у меня есть процедурка смены буки при прохождении первой
Code:
Sub Smena_run()
   var v = val(uo.getglobal('Tek_run_tm'))
   var n = val(uo.getglobal('nomer_buki'))
   if  v < kol_run - 1  then     ; Если текущий номер меньше всего количества рун то
         uo.setglobal('Tek_run_tm',str(v+1))        ;  + 1 к счетчику рунок
      else
         uo.setglobal('Tek_run_tm','0')        ; Иначе начинаем цикл сначала
         uo.print('bila buka - ' + str(n))
         
           if n == kol_buk then
                uo.print('stala buka - ' + str(1)) ; Если текущий номер равен количству рунбук то  к первой иначе к следующей
               uo.setglobal('nomer_buki',str(1))       
         else
            uo.print('stala buka - ' + str(n+1))
            uo.setglobal('nomer_buki',str(n+1))       
         end if   
   end if
   wait(500)
end sub



То есть при прохождении буки до конца начинается следующая, до последней и сначала.

А вот реколится по букам так

Code:
sub Rec_to_home()
var Udacha = 0
var Run, Runebookid
var v = val(uo.getglobal('Tek_run_tm'))
var n = val(uo.getglobal('nomer_buki'))
uo.set( "norbcheck", "1" )
uo.set( "norbcalc", "1" )
if n == 1 then
   Runebookid = 'RB_TM1'
end if
if n == 2 then
   Runebookid = 'RB_TM2'
end if
if n == 3 then
   Runebookid = 'RB_TM3'
end if
if n == 4 then
   Runebookid = 'RB_TM4'
end if
if n == 5 then
   Runebookid = 'RB_TM5'
end if

run = v + 9
      repeat
         UO.FindType('0x0e43', '-1', '1')      ; Ищем сундуки
         wait(100)
         If UO.FindCount() < 1 Then      ; если не находим сундук то значит еще в лесу
            uo.cast("Recall",Runebookid)
            wait(8000)
         else
            Udacha = 1               
         end if      
         until  Udacha == 1      
Udacha = 0
end sub



И мне вышеприведенная конструкция не наравится, хотя весь скрипт и работает изумиетльно, но перебор по условию сдишком громоздок, и нельзя сделать большое число рунбук


Top
   
 Post subject:
PostPosted: 2006-10-19 13:09:25 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
А, теперь ясно...

Токо Эдред то тебе всё уже подсказал:
Вместо
Code:
if n == 1 then 
   Runebookid = 'RB_TM1'
end if
if n == 2 then
   Runebookid = 'RB_TM2'
end if
if n == 3 then
   Runebookid = 'RB_TM3'
end if
if n == 4 then
   Runebookid = 'RB_TM4'
end if
if n == 5 then
   Runebookid = 'RB_TM5'
end if

Сделай просто:
Code:
Runebookid = UO.GetSerial('RB_TM' + str(n))

_________________
DerMeister сейчас на нейрале!


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 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