Page 1 of 1

opponent

Posted: 2006-05-06 14:51:09
by noLe
Приветсвтую !
Прошу помоц написать скрипт. В суть хочу вложить что бы он мог:
Когда тебя атакуют запоминать атакующего или записывать его в файл.
После чего что бы можно было в других скриптах работать с этой переменной.
И что бы работал счетчик. Тоесть записывал 1-го атакующего, потом когда атакуют еще раз, записывал следующего, всего счетчик от 0 до 2, вообщем 2-х оппонентов которые тебя атакуют, что бы потом с ними работать. У меня не получается.. Вродебы запоминает одного, но в других скриптах с данной переменной работать не получаеся. Как работать с файлом не знаю. Помогите плиз.

Code: Select all

Var opponent, Color

sub war()
 while not UO.Dead()
      if UO.InJournal("attacking you") then
         opponent=UO.GetSerial(UO.JournalSerial(0))
         Color=UO.GetNotoriety(opponent)
            if Color==2 OR Color==1 then
                wait(100)
                UO.DeleteJournal()
            else
                  uo.warmode(true)
                  uo.attack('opponent')
            end if
                wait(100)
      else
         wait(100)
      end if
   wend
end sub

Posted: 2006-05-10 22:34:04
by flake
Если счетчик от 0 до 2, то это 3.
А для передачи значений в другие скрипты тебе файл не нужен, можешь использовать UO.Set/GetEasyUO()

Posted: 2006-05-10 22:45:43
by Grin
Флейк а ты уверен что от 0 до 2 это 3? 3 состояния - Да, но не 3 опонента... 0 -никого нет и тд..
Неверно...
opponent=UO.GetSerial(UO.JournalSerial(0))
ввернет серийник последний строчки...

Code: Select all

Var opponent, Color 

sub war()
var n
 while not UO.Dead()
      n=UO.InJournal("attacking you")
      if n then
         opponent=UO.GetSerial(UO.JournalSerial(n-1))
         Color=UO.GetNotoriety(opponent)
            if Color==2 OR Color==1 then
                wait(100)
                UO.DeleteJournal()
            else
                  uo.warmode(true)
                  uo.attack('opponent')
            end if
                wait(100)
      end if
      wait(100)
   wend
end sub

Поповоду передачи...
Можн опередавать масивы можно и просто глобальными перемеными обойтись...
И потом ты не объеснил как должна запись в масив происходить а что если 3 раз атакуют? я понимаю что должен быть сдвиг масива...
Поподробней

Posted: 2006-05-10 23:44:38
by flake
Grin wrote:Флейк а ты уверен что от 0 до 2 это 3? 3 состояния - Да, но не 3 опонента... 0 -никого нет и тд..
Неверно...


Человек говорил о счетчике от 0 до 2.

Posted: 2006-05-11 05:42:21
by BoBBaH
Люди раз уж тут говорят прошу написать встречный скрипт
когда меня атакуют чтобы инжект записывал просто ники с указанием гилдии если такавая имееется и чтобы я потом мог посмареть лог и пойти вырубить крыс плиз помагите

Posted: 2006-05-11 09:24:44
by Sanch
чтобы работать потом с переменной в других скриптах:

Code: Select all

...
uo.setglobal('i', 'opponent')
...



Code: Select all

...
j = uo.getglobal('i')
uo.attak('j')
...
точно как это делается не помню сейчас

Posted: 2006-05-18 17:02:03
by noLe
Спасибо всем, что уделили внимание этой теме.

Grin wrote:Флейк а ты уверен что от 0 до 2 это 3? 3 состояния - Да, но не 3 опонента... 0 -никого нет и тд..
Неверно...
opponent=UO.GetSerial(UO.JournalSerial(0))
ввернет серийник последний строчки...

Code: Select all

Var opponent, Color 

sub war()
var n
 while not UO.Dead()
      n=UO.InJournal("attacking you")
      if n then
         opponent=UO.GetSerial(UO.JournalSerial(n-1))
         Color=UO.GetNotoriety(opponent)
            if Color==2 OR Color==1 then
                wait(100)
                UO.DeleteJournal()
            else
                  uo.warmode(true)
                  uo.attack('opponent')
            end if
                wait(100)
      end if
      wait(100)
   wend
end sub

Поповоду передачи...
Можн опередавать масивы можно и просто глобальными перемеными обойтись...
И потом ты не объеснил как должна запись в масив происходить а что если 3 раз атакуют? я понимаю что должен быть сдвиг масива...
Поподробней

Да, подумал бред... Надежнее сделать что бы после запуска скрипта, переменные запоминались по последнему атаку. Всего 2. Подробно: Запускаю скрипт, вижу 2-х человек. Атачу одного - записался в переменную, атачу 2-го - записался 2-ю переменную. Скрипт остановился. Далее допустим в автолоуде у меня такие скрипты на касты:
sub Febl()
UO.Set('lasttarget','laststatus')
UO.FindType('0x1F30',-1,'my')
If UO.GetQuantity('finditem')>0 then
if UO.Mana>=14 then
UO.WaitTargetObject('laststatus')
UO.UseObject('finditem')
else
UO.Print("No mana")
endif
else
if UO.Mana>=28 then
UO.Cast('Feeblemind','laststatus')
else
UO.Print("No mana")
endif
endif
end sub

А я добавляю еще скрипты и вместо "laststatus" - переменная 1-го и 2-го перса :roll: что-то вроде :)

Не соображу как с массивами работать... помогите разобраться. :arrow:

Posted: 2006-05-18 17:04:16
by noLe
Киньте хоть часть скрипта плз с массивом