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

Requests of new features and reports on bugs needs to be fixed

Moderators: Murderator+, Murderator

Post Reply
XSmith
Posts: 6
Joined: 2004-10-08 09:46:39

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

Post by XSmith »

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

С наилучшими,
XSmith, крафтер. ;)
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

насчёт двумерных то понятно, а вот насчёт строк я не понял, строковые переменные и так допустимы
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

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

Post 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
XSmith
Posts: 6
Joined: 2004-10-08 09:46:39

Post 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. И, как кто-то сюда уже писал, конечно используя несколько поисков по типу можно играться с семафорами, но больно уж громоздко получается. Некая поисковая функция по типу/цвету, прямо возвращающая серийник, а не кладущая его куда либо, была бы весьма и весьма в кассу. И хрен бы с ним, с консольным её вариантом... ;)
Post Reply