Боевой Скрипт
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
8 июля 2010 16:03
Сообщение #1
Подскажите как сделать так чтоб этот скрипт если находит такую запись в журнале то берёт новое оружие в руки.

sub fighting()
var weapon="0x13fe",shield="0x1b76" оружие и мечь
var timer
repeat
if uo.gethp('laststatus')>45 then
uo.warmode(1)
uo.attack('laststatus')
repeat
wait(100)
until uo.gethp('laststatus')<30
endif
if uo.gethp('laststatus')<30 then
uo.warmode(0)
repeat
timer=uo.timer()+40
uo.deletejournal()
wait(300)
until uo.gethp('laststatus')>45 or timer<=uo.timer()
uo.equipt("Rhand",weapon)
uo.equipt("Lhand",shield)
endif
wait(100)
until 0>1
endsub


когда вот в этот отрывок

var weapon="0x13fe",shield="0x1b76" оружие и мечь
var timer
repeat
if uo.gethp('laststatus')>45 then
uo.warmode(1)
uo.attack('laststatus')


добавляю вот это

var weapon="0x13fe",shield="0x1b76" оружие и мечь
 var timer
 repeat
if uo.injournal('destroyed!') then
uo.equipt("Rhand",weapon)
 if uo.gethp('laststatus')>45 then
uo.warmode(1)
 uo.attack('laststatus')


то выдёт просто ошибку

Frozen
8 июля 2010 16:38
Сообщение #2
не знаю sad
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
9 июля 2010 00:01
Сообщение #3
Ну что не кто незнает как вставить функцию проверки чтоб брал оружие если сломалось???
15 лет
Oldest Trasher
Сообщений: 1684
Рег. 6.09.2009
9 июля 2010 00:24
Сообщение #4
А ошибка то какая?
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
9 июля 2010 00:37
Сообщение #5
sub fighting()
var weapon="0x13fe",shield="0x1b76" оружие и мечь
var timer
repeat
if uo.injournal('destroyed!') then
uo.equipt("Rhand",weapon)
repeat
endif
if uo.gethp('laststatus')>45 then
uo.warmode(1)
uo.attack('laststatus')
repeat
wait(100)
until uo.gethp('laststatus')<30
endif
if uo.gethp('laststatus')<30 then
uo.warmode(0)
repeat
timer=uo.timer()+40
uo.deletejournal()
wait(300)
until uo.gethp('laststatus')>45 or timer<=uo.timer()
uo.equipt("Rhand",weapon)
uo.equipt("Lhand",shield)
endif
wait(100)
until 0>1
endsub


вот замутил скрипт но он пашит если у героя не одет армор и хп доходят до 80 до того когда другие функции начинают включатся

Frozen
9 июля 2010 08:20
Сообщение #6

1)

if uo.injournal('destroyed!') then

uo.equipt("Rhand",weapon)

repeat

endif

endif - должно быть выше репеат.

2) Это лучше вынести в отдельную процедуру, ибо если он будет крутится в тех циклах неизвестно, когда он это проверит.

в той процедуре вставить 

uo.Exec('exec proverkaweap')
сразу после всех объявлений переменных и написать после end sub

sub proverkaweap()

while 1==1

if uo.injournal('destroyed!') then

uo.equipt("Rhand",weapon)

endif

uo.deletejournal()

wait(300)

wend

endsub

Ну и переменную Weapon вынести выше всех процедур чтобы она была общей.

3)

И это оставь в этом цикле, но переставь в начало

uo.equipt("Rhand",weapon)
uo.equipt("Lhand",shield)

Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
9 июля 2010 13:07
Сообщение #7
sub fighting()
var weapon="0x1400",shield="0x1b76";âïèñà

;ü òèï îðóæèÿ è ùèòîâ
var timer
repeat
uo.equipt("Rhand",weapon)
uo.equipt("Lhand",shield)
uo.Exec('exec proverkaweap')
if uo.gethp('laststatus')>45 then
uo.warmode(1)
uo.attack('laststatus')
repeat
wait(100)
until uo.gethp('laststatus')<30
endif
if uo.gethp('laststatus')<30 then
uo.warmode(0)
repeat
timer=uo.timer()+40
uo.deletejournal()
wait(300)
until uo.gethp('laststatus')>45 or timer<=uo.timer()
endif
wait(100)
until 0>1
end sub

sub proverkaweap()
var weapon="0x1400"
while 1==1
if uo.injournal('destroyed!') then
uo.equipt("Rhand",weapon)
endif
uo.deletejournal()
wait(300)
wend
end sub


Вот скрипт выглядит тепрь вот так пашит только единственное что заметил это если вдруг скрипт дойдёт до 80 хп то когда жертва насобирает хп до полного бара он опять включит функцию проверкавеапон. И из за этого можит крашанут так как много проверок включено будет.
СПС

И вопрос что означают вот эти функции
timer=uo.timer()+40

while 1==1


Frozen
9 июля 2010 16:12
Сообщение #8

 

While 1==1  

wend

тоже самое что и

repeat

until 0>1

Это бесконечные циклы.

Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
9 июля 2010 16:15
Сообщение #9
Что за бесконечные цыклы как небудь по проще обьясни пожалуйста

Frozen
9 июля 2010 16:19
Сообщение #10

Тоесть действия записанные внутри этих циклов будут повторят до бесконечности.

Смотри цикл While выполняется до тех пор пока выполняется условие которое записано в нем, тоесть как не крути 1 всегда равно 1му.

Цикл Repeat until выполняется до тех пор, пока не выполняется условие тоесть 0 не когда не станет больше единицы.

Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
9 июля 2010 16:47
Сообщение #11
Спасибо теперь понял что за  комманды
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
11 июля 2010 10:45
Сообщение #12
sub fighting()
uo.Exec('exec proverkaweap')
endif
var weapon="0x1400",shield="0x1b76";your weapon and shield
var timer
repeat
uo.equipt("Rhand",weapon)
uo.equipt("Lhand",shield)
if uo.gethp('laststatus')>45 then
uo.warmode(1)
uo.attack('laststatus')
repeat
wait(100)
until uo.gethp('laststatus')<30
endif
if uo.gethp('laststatus')<30 then
uo.warmode(0)
repeat
timer=uo.timer()+40
uo.deletejournal()
wait(300)
until uo.gethp('laststatus')>45 or timer<=uo.timer()
endif
wait(100)
until 0>1
end sub

sub proverkaweap()
var weapon="0x1400"
while 1==1
if uo.injournal('destroyed!') then
uo.equipt("Rhand",weapon)
repeat
endif
uo.deletejournal()
wait(300)
wend
end sub


Во вот теперь скрипт работает как надо.Я оказывается не туда влепил функцию Uo.exec.Теперь эта функция не включается по 20 раз
14 лет
Monk
Сообщений: 187
Рег. 14.06.2010
14 июля 2010 22:13
Сообщение #13
Цитата: Betrazen
if uo.injournal('destroyed!') then
uo.equipt("Rhand",weapon)
repeat
 endif


uo.deletejournal забыл
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
16 июля 2010 12:18
Сообщение #14
А репет зачем?

Frozen
17 июля 2010 23:42
Сообщение #15

Я качал вообще вот таким скриптом.

 

Закидывал в пак много оружия и на макрос.

 

sub sparing()
repeat
uo.usetype(0x0F51) # type weapon
wait(10000)
until false
end sub

Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
18 июля 2010 00:01
Сообщение #16
Возможно тоже но если у твоей куклы сломается армор или реген остановится то она будет стоять гостом.
А в этом скрипте он останавливается если хп меньше 80

Frozen
18 июля 2010 01:22
Сообщение #17
Ну тогда уже лутше такой скрипт мутить под прогу стелз.
Лейтенант (3862022)14 лет
Druid
Сообщений: 1246
Рег. 12.12.2009
18 июля 2010 11:57
Сообщение #18
это уже другой вопрос
Последние посетители (0):

 
Сейчас: 25 ноября 2024 22:56