opponent

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
noLe
Posts: 23
Joined: 2006-02-13 21:35:28

opponent

Post 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
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Если счетчик от 0 до 2, то это 3.
А для передачи значений в другие скрипты тебе файл не нужен, можешь использовать UO.Set/GetEasyUO()
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post 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 раз атакуют? я понимаю что должен быть сдвиг масива...
Поподробней
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

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


Человек говорил о счетчике от 0 до 2.
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Люди раз уж тут говорят прошу написать встречный скрипт
когда меня атакуют чтобы инжект записывал просто ники с указанием гилдии если такавая имееется и чтобы я потом мог посмареть лог и пойти вырубить крыс плиз помагите
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post by Sanch »

чтобы работать потом с переменной в других скриптах:

Code: Select all

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



Code: Select all

...
j = uo.getglobal('i')
uo.attak('j')
...
точно как это делается не помню сейчас
noLe
Posts: 23
Joined: 2006-02-13 21:35:28

Post 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:
noLe
Posts: 23
Joined: 2006-02-13 21:35:28

Post by noLe »

Киньте хоть часть скрипта плз с массивом
Post Reply