Page 1 of 1

Мерность массивов и текстовые переменные...

Posted: 2004-10-08 10:09:57
by XSmith
Здорово не хватает дву(и более... ;) )мерных массивов.
Конечно, можно написать скрипт и без них, но больно уж ракообразно получается, например, когда пытаешься более-менее унифицированно оскриптить крафт нескольких однотипных предметов, требующих для крафта более одного ресурса (пример: алхимия - несколько поушенов из разных регов).
А если к этому ещё и возможность заводить переменные типа строка добавить... ;)

С наилучшими,
XSmith, крафтер. ;)

Posted: 2004-10-08 20:17:53
by Yoko
насчёт двумерных то понятно, а вот насчёт строк я не понял, строковые переменные и так допустимы

Re: Мерность массивов и текстовые переменные...

Posted: 2004-10-08 20:39:02
by Edred
XSmith wrote:А если к этому ещё и возможность заводить переменные типа строка добавить... ;)


Если ты имеешь в виду работу со строкой как с одномерным массивом - так это есть. Попробуй:

Code: Select all

sub testtxt()
   VAR txt = 'this is test'
   VAR i, j
   j = len( txt ) - 1
   for i = 0 to j
      UO.Print( txt[i] )
   next
endsub

Posted: 2004-10-10 16:20:30
by XSmith
Нет, интересует не работа со строкой как с массивом, а двумерный массив, элементами которого являются строки. То есть, например, нечто подобное:

Code: Select all

Dim Responces[3][10]
Responces[0][0] = ...
...
Responces[2][0] = "You can't"
Responces[2][1] = "Try to"
Responces[2][2] = "You put"
Responces[2][3] = "There are no"
Responces[2][4] = "Oops!"
...


Каковое "нечто" потом может быть использовано, например, так: ;)

Code: Select all

...
For j= ...
  If TileNum == TreeTileType[j] Then
    ProprietaryTool = 'Hatchet'
    UsedSkill = 2
  EndIf
Next
...
UO.Waitfortargettile('TileNum',TargetX,TargetY,Z)
UO.UseObject(ProprietaryTool)
RectifyJournal()

Repeat
  Wait(100)
  For j = 0 To 9 Then
    If UO.InJournal(Responces[UsedSkill][j])
       ExitFlag = 1
    EndIf
  Next
Until ExitFlag <>0
...


Впрочем, на крайняк, сойдёт и одномерный массив, элементами которого являются структуры (в С-шной терминологии, в паскалевской - по-моему, это называется "записи). ;)

P.S. И, как кто-то сюда уже писал, конечно используя несколько поисков по типу можно играться с семафорами, но больно уж громоздко получается. Некая поисковая функция по типу/цвету, прямо возвращающая серийник, а не кладущая его куда либо, была бы весьма и весьма в кассу. И хрен бы с ним, с консольным её вариантом... ;)