Page 1 of 1

смена стрелкового оружия, панацея

Posted: 2011-10-15 11:06:09
by Gromiz
волей судеб надо использовать луки, арбалеты и малые арбалеты на разных континентах игры.

можно было обойтись несколькими скриптами, а точнее 3-мя.
Но хочется чтобы автолоад был не таким длинным и лишние кнопки не задействовать, для этого планировалось сделать 1 скрипт на 3 стрелковых вида и в разном цветовом исполнении.
и тут я в тупик пришел, и прошу вашего совета, чтобы сделать абсолютно функциональный скрипт.

а идея его такова:

Одевает 1 из трех видов стрелкового цветного оружия, если находит в паке.
• поиск оружия из пака (в сумках искать не надо)
• проверка на цвет
• если лук нашел - одевает, если нет- одевает малый арбалет и если его тоже нет, то большой арбалет

в скриптах не силен, ни один написать не могу, только редактирую

остановился на таком варианте, правда без проверки цвета на арбалетах:

одевает только лук, арбалеты не видит

Code: Select all

sub Bow()
   var i
   var bow = '0x13B1' 
   var crbow = '0x0F4F'
   var hcrbow = '0x13FC'

   dim bowcol[4]
   bowcol[0]='0x0035'
   bowcol[1]='0x0BAC'
   bowcol[2]='0x13FC'
   bowcol[3]='0x0000'
   for i = 0 to 3
      if uo.count(bow, bowcol[i]) then
         UO.UseType(bow, '0x0000')
      else
         UO.UseType(crbow, '0x0000')         
      else
         UO.UseType(hcrbow, '0x0000')
return
      end if
         next
end sub


скрипт вроде бы не сложный, но я на нем встрял, "help"

Re: смена стрелкового оружия, панацея

Posted: 2011-10-16 15:48:13
by Mirage
двойное условие пишется немного по другому.
Если я тебя правильно понял в алгоритме то твой скрипт будет выглядеть вот так:

Code: Select all

sub Bow()
   var i
   var bow = '0x13B1'
   var crbow = '0x0F4F'
   var hcrbow = '0x13FC'
   dim bowcol[4]
   bowcol[0]='0x0035'
   bowcol[1]='0x0BAC'
   bowcol[2]='0x13FC'
   bowcol[3]='0x0000'
   for i = 0 to 3 ; ghdjthztv на 3 цветных лука
      if uo.count(bow, bowcol[i]) then
         UO.UseType(bow, bowcol[i])
         return
      end if
   next
   if uo.count(crbow) then ; если луки не найдены то проверяем на первый арбалет
      UO.UseType(crbow, '0x0000')         
   else ; или второй арбалет
      UO.UseType(hcrbow, '0x0000')
   end if
end sub

Подразумевается что чтото в паке да имеется. ;)

Re: смена стрелкового оружия, панацея

Posted: 2011-10-16 21:15:47
by Gromiz
скрипт замечательный,

работает, спасибо