Как бы определить объекты вокруг себя

Anything and all.

Moderators: Murderator+, Murderator

Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

You Must Die wrote:DIM loot[10]

это хорошо, но посчитай пальцем )

0.1.2.3...10 = 11 элементов, а ты задал тока 10.

как я понял ты говоришь про этот массив :):

Code: Select all

Loot[0]=0x1089 ; 
Loot[1]=0x1F0A ;
Loot[2]=0x1F07 ; 
Loot[3]=0x1F06 ;
Loot[4]=0x1F09 ;
Loot[5]=0x108A ;
Loot[6]=0x0EED ;
Loot[7]=0x1086 ;
Loot[8]=0x1087 ;
Loot[9]=0x1F08 ;
Loot[10]=0x1088 ;

но когда я задаю в цикле

Code: Select all

  For i=0 to 11 

он у меня начинает тупить. Потому чисто методом втыка :) поставил 10, заработало нормально
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

это уже на то что бы понять.


дим (скока всего)

for само мленькое to самое большое
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

так у меня ж в скрипте массив обозначен DIM Loot[20] , а элементов массива 10. Скрипт за рамки не вылазиет... блин запутался :(
Вот еще непонятка

Code: Select all

if uo.InJournal(PKMagArr) or uo.InJournal(PKTeleport) or uo.InJournal(PKParaliz) or uo.InJournal(PKpf) or uo.InJournal(PKPoison) or uo.InJournal(PKFire)or uo.InJournal(PKSumVort) or uo.InJournal(PKSumVort) then

он должен искать в журнале переменные, и если находит то выполняет следующие действия. Но он ничег оне делает :(
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

ну в общем выглядит функция на АнтиПК примерно так:

Code: Select all

sub AntiPK()
if Apk == 1 then
while not uo.Dead()
uo.DeleteHournal()
  if uo.InJournal(PKMagArr) or uo.InJournal(PKTeleport)
     Terminate() 
     RunebookRecall()
  endif
endif
wait (500)
wend
wait (500)
end sub

может я опять где то че то намудрил. Чар должен видеть заклинания из журнала и тыкаться в рунбуку
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

говорят как надо, а ты как самому заблагоразумется. Сам тогда и решай все свои вопросы
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

You Must Die wrote:говорят как надо, а ты как самому заблагоразумется. Сам тогда и решай все свои вопросы

Ну я просто не понял на что мне толком указывают :(
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Я тебе указываю, что если ты обозначил

Code: Select all

DIM loot[20]


то пиши либо

Code: Select all

loot[0]
loot[1]
...
loot[19]
либо

Code: Select all

loot[1]
loot[2]
...
loot[20]


Чтобы если обозначил 20 элементов массива,что бы их 20 и было.А что качается for :

Code: Select all

for (цифра 1 элемента массива) to (цифра последнего элемента)
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

А ну в принципе врубился :). Спасибо за то что понял меня :)
А какую посоветуешь проверку для АнтиПК, чтобы чар смывался оттуда? У меня сейчас проверка в журнале, если появляются заклинания то чар убегает. Но помоему это не нажено
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

по цвету ника . Такая проверка в мининге или ламбере у ВЕТЕРана есть.
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

но ведь может и синий вылезти и убить меня. И тем более я убиваю красных НПСников. Я уже думал об этом.. Нада какой нибудь скрипт с новым принципом определения :)
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

You Must Die wrote:Я тебе указываю, что если ты обозначил

Code: Select all

DIM loot[20]


то пиши либо

Code: Select all

loot[0]
loot[1]
...
loot[19]
либо

Code: Select all

loot[1]
loot[2]
...
loot[20]


Чтобы если обозначил 20 элементов массива,что бы их 20 и было.А что качается for :

Code: Select all

for (цифра 1 элемента массива) to (цифра последнего элемента)

Нет ты неправ, если юзается 20-й элемент массива то объявлять надо 21 элемент потому что отсчет идет от 0.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Savage wrote:
You Must Die wrote:Я тебе указываю, что если ты обозначил

Code: Select all

DIM loot[20]


то пиши либо

Code: Select all

loot[0]
loot[1]
...
loot[19]
либо

Code: Select all

loot[1]
loot[2]
...
loot[20]


Чтобы если обозначил 20 элементов массива,что бы их 20 и было.А что качается for :

Code: Select all

for (цифра 1 элемента массива) to (цифра последнего элемента)

Нет ты неправ, если юзается 20-й элемент массива то объявлять надо 21 элемент потому что отсчет идет от 0.


каким образом =\

Элементов 20
начиная с 0 , последний элемент будет 19ый.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Верно, а начиная с 1 последний будет 20-й а всего 21 потому что нулевой хоть и не используется в скрипте все равно учтен.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Точнее, не в скрипте учтен, а автоматически создан скриптовым модулем, только не проинициализирован скриптом. Мастдай, читай доку. Элементы массивов всегда нумеруются с 0. Если ты нумеруешь с 1, совсем не означает, что элемента 0 нету.
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Блин, а чего нибудь по существу моей проблемы у вас есть? Как мне сделать проверку на ПК, если меня может убить и синий и крассный. И прошу принять к сведению что проверка на пол тоже не подходит, так как я убиваю НПСников и у них такой же пол как и у плееров. Как нибудь НПС от плееров отличаются в клиетне или инже?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Rijo wrote:Как нибудь НПС от плееров отличаются в клиетне или инже?


По большому счету нет, если, естественно, используются одни "тела". Можно пробовать сделать проверку по сериалу, у НПСов обычно маленькие сериалы, по сравнению с игроками, но ненадежно. Можно по имени, но это срабатывает только в том случае, если у тебя есть заранее список возможных имен НПСов в этом месте.
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Ну я стою на возвышенности, точнее на крыше и единственный способ ко мне забраться это телепортануться, а убить меня с полу можно только заклинаниями, я поставил проверку на спелы которые появляются в журнале, но чар начинает шкерится от своих же заклинаний :). Как себя проигнорить в журнали. Я использовал твою(Edred) функцию на удаление строки,

Code: Select all

Sub DeleteJournal( string1 ) 
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub

но почему то не получается себя из неё удалить.
DeleteJournal(char)
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Как вариант, на теле найденом недалеко от чара, искать какой нить шмот, например часть доспеха или бакпак.

А из лука тебя разве достать не смогут?
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Savage wrote:Как вариант, на теле найденом недалеко от чара, искать какой нить шмот, например часть доспеха или бакпак.

А из лука тебя разве достать не смогут?

Из лука сверху вниз не стреляет, я думаю снизу вверх тоже.
А искать шмот на ком нибудт, придется перебрать оочень много всякого армора. Или ты предлагаешь искать одну вещь(допустим оружие) и если она находится, то убегаем? Если да, то как бы это пограмотнее реализовать?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Rijo wrote:Как себя проигнорить в журнали.


Ты же по журналу берешь сериал чара? Ну так вставь после этого проверку типа:

Code: Select all

If charserial <> UO.GetSerial( 'self' ) Then


charserial - это сериал чара, считанный из журнала.
Post Reply