Скрипт на мэджери, помогите плз

Anything and all.

Moderators: Murderator+, Murderator

Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Скрипт на мэджери, помогите плз

Post by Kosmozone »

sub magery()
repeat
while uo.mana < uo.int
uo.useskill("Meditation")
wait (2500)
wend
uo.WaitTargetLast
uo.exec ("cast 'Poison'")
until uo.dead()
end sub

на этом простеньком скрипте клиент выдает hung мессагу и вылетает...
идея такова, что если мана не 100 ( не равна уо.инт) то медитировать пока не будет полная, (т.е you are at peace), а потом кастовал пойзон на ласт таргет и опять медитировал до 100 и опять кастовал

помогите плиз
[LD] Lamer's Death
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Re: Скрипт на мэджери, помогите плз

Post by AntiKiller »

sub Magery()
Repeat
While UO.Mana < UO.Int
UO.UseSkill("Meditation")
Wait(2500)
Wend
UO.WaitTargetLast()
UO.Exec("cast 'Poison'")
Wait(3000)
Until UO.Dead()
endsub

работает
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

Спасибо
но появился еще вопрос,
как сделать чтоб он проверил журнал на you are at peace а потом начал кастовать и в начале очистил журнал?
[LD] Lamer's Death
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Post by AntiKiller »

Kosmozone wrote:Спасибо
но появился еще вопрос,
как сделать чтоб он проверил журнал на you are at peace а потом начал кастовать и в начала очистил журнал?



Да кстате магию ты так не покачаеш) он 1 раз кастует и медитирует.
И медитацию так тоже не покачать))
Кастуй на себя АНКОРП (ресурекшенс)
Там маны куча нужна и поэтому долго медитировать будет.
А магию те тоды надо переделать скрипт чтоб он кастовал до дех пор пока маны не будет ( допустим 10 ), а потом уж Медитировал.
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

AntiKiller wrote:
Kosmozone wrote:Спасибо
но появился еще вопрос,
как сделать чтоб он проверил журнал на you are at peace а потом начал кастовать и в начала очистил журнал?



Да кстате магию ты так не покачаеш) он 1 раз кастует и медитирует.
И медитацию так тоже не покачать))
Кастуй на себя АНКОРП (ресурекшенс)
Там маны куча нужна и поэтому долго медитировать будет.
А магию те тоды надо переделать скрипт чтоб он кастовал до дех пор пока маны не будет ( допустим 10 ), а потом уж Медитировал.

на шарде где я ща играю именно так и растет, 55 сфера
медитация растет когда будет you are at peace, поэтому я и рассчитывал что 1 раз кастанет пойзон

подскажи как сделать проверку на you are at peace а потом чтоб кастовал и стерал журнал
[LD] Lamer's Death
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Post by AntiKiller »

Так у тебяж медитация закагчивается когда мана равня интеллекту)))))
Зачем тебе по Надписи из журнала?))))))))
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

AntiKiller wrote:Так у тебяж медитация закагчивается когда мана равня интеллекту)))))
Зачем тебе по Надписи из журнала?))))))))

блин :) хорош глумиться :)
а как тогда сделать? нельзя же чтоб медитировал до тех пор когда медитация станет больше инты :)
[LD] Lamer's Death
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Re: Скрипт на мэджери, помогите плз

Post by AntiKiller »

while uo.mana < uo.int

В этой строке у тя написано медитировать пока мана меньше интеллекта!! Это 1 условие! когда Мана Равняется ителлекту усё заканчивается твоя медитация и на экране появляется что : Ю аре пеасе)))))
После чего у тя Репиат как никак есть и работате))
Я те дал готовый скрипт включай его и наслаждайся))
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Re: Скрипт на мэджери, помогите плз

Post by Kosmozone »

AntiKiller wrote:while uo.mana < uo.int

В этой строке у тя написано медитировать пока мана меньше интеллекта!! Это 1 условие! когда Мана Равняется ителлекту усё заканчивается твоя медитация и на экране появляется что : Ю аре пеасе)))))
После чего у тя Репиат как никак есть и работате))
Я те дал готовый скрипт включай его и наслаждайся))

он не пишет ю ар эт пис а сразу начинает кастовать как только 100, я думаю мож надо вэйт 1 больше сделать, только какой :)
[LD] Lamer's Death
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Re: Скрипт на мэджери, помогите плз

Post by AntiKiller »

Kosmozone wrote:
AntiKiller wrote:while uo.mana < uo.int

В этой строке у тя написано медитировать пока мана меньше интеллекта!! Это 1 условие! когда Мана Равняется ителлекту усё заканчивается твоя медитация и на экране появляется что : Ю аре пеасе)))))
После чего у тя Репиат как никак есть и работате))
Я те дал готовый скрипт включай его и наслаждайся))

он не пишет ю ар эт пис а сразу начинает кастовать как только 100, я думаю мож надо вэйт 1 больше сделать, только какой :)



Блин он писать будет если ты при МАНЕ 100 попробуеш медитировать вот тьогда он те скажит ГУЛЯЙ ВАСЁК и ак под завязку мана)))
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Kosmozone wrote:
AntiKiller wrote:Так у тебяж медитация закагчивается когда мана равня интеллекту)))))
Зачем тебе по Надписи из журнала?))))))))

блин :) хорош глумиться :)
а как тогда сделать? нельзя же чтоб медитировал до тех пор когда медитация станет больше инты :)


Изменение в две строки:

sub Magery()
Repeat
UO.DeleteJournal()
While NOT UO.InJournal( 'You are a peace')
UO.UseSkill("Meditation")
Wait(2500)
Wend
UO.WaitTargetLast()
UO.Exec("cast 'Poison'")
Wait(3000)
Until UO.Dead()
endsub

Только проверь сообщение, я счас не помню как оно правильно звучит... И не забудь правильно указать заглавные буквы...
Biga
Posts: 76
Joined: 2004-04-04 21:04:43
Contact:

Post by Biga »

можно совсем коротко и не заморачиваться на написание:
uo.injournal("peace")
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

Я проставил просто еще один вэйт на 1000 после wend он успевает написать ю ар эт пис и начинает кастовать,
обошелся без журнала, спасибо за помощь :)
[LD] Lamer's Death
Biga
Posts: 76
Joined: 2004-04-04 21:04:43
Contact:

Post by Biga »

Ну и зря без журнала. Это же совсем разные уровни.
С вэйтом ты надеешься, что этого времени хватит, но вдруг ворлдсэйв?
А с журналом ты гарантированно знаешь, что дождешься этого события.

Хотя, это не критично.
Вот что более важно: Ты ставишь задержку на 1000мс. Чар успевает сказать at peace и около 500мс простаивает впустую. Я понимаю, что пример смешной - полсекунды, какие мелочи. Но если ты будешь везде ставить вэйты вместо наблюдения журнала, то, во-первых, получишь менее надежные скрипты, а во-вторых, в сумме будешь прокачиваться медленнее, чем возможно, и терять лишний трафик.

Не знаю убедил я тебя или нет не полагаться на русский "авось", но вот полезная штука, которая реально облегчает жизнь:


sub waitmsg(msg, maxwt)
var i=0
repeat
wait(100)
i=i+1
until uo.injournal(msg) or i>maxwt
end sub


Использование:
uo.deletejournal(); - важно
<action>
waitmsg("peace",50)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Biga wrote:Вот что более важно: Ты ставишь задержку на 1000мс. Чар успевает сказать at peace и около 500мс простаивает впустую. Я понимаю, что пример смешной - полсекунды, какие мелочи. Но если ты будешь везде ставить вэйты вместо наблюдения журнала, то, во-первых, получишь менее надежные скрипты, а во-вторых, в сумме будешь прокачиваться медленнее, чем возможно, и терять лишний трафик.


Вот с медитацией ты тут не прав. Фокус в том, что чар может (при низком скилле особенно) терять концентрацию и прекращать медитировать. И если просто ставить проверку на peace и на время ничего хорошего не получится. тогда надо Ставить проверку на два сообщения, надо ветвить через иф проверку, а если хочешь избежать гоуту, то вводить лишний репеат... гимор. Проще как раз обойтись паузой в 1000 мс. :lol:
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

Бига прав, кто может сделать скрипт с проверкой журнала, на основе того, что щас есть....

на этом шарде где я играю персонаж если входит в транс то выходит либо вар модом либо другим действием либо ю ар эт пис
[LD] Lamer's Death
ZloyLuter
Posts: 3
Joined: 2004-04-23 19:02:31
Contact:

Post by ZloyLuter »

sub main()
while not uo.dead()
if uo.mana >76 then
uo.exec("waittargetself")
wait(500)
uo.exec("cast 'Resurrection' self")
wait(1000)
else
while UO.Mana<UO.Int
UO.UseSkill("Meditation")
wait(500)
wend
endif
wend
end sub
ZHR
Myst
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

ZloyLuter wrote:sub main()
while not uo.dead()
if uo.mana >76 then
uo.exec("waittargetself")
wait(500)
uo.exec("cast 'Resurrection' self")
wait(1000)
else
while UO.Mana<UO.Int
UO.UseSkill("Meditation")
wait(500)
wend
endif
wend
end sub


по-моему это скрипт не для меня, мне нужно не больше кол-во маны тратить а потом кастить....
спасибо за помощь
[LD] Lamer's Death
Kosmozone
Posts: 20
Joined: 2004-05-04 12:07:16
Contact:

Post by Kosmozone »

sub Magery()
Repeat
UO.DeleteJournal()
While NOT UO.InJournal( 'peace')
UO.UseSkill("Meditation")
Wait(2500)
Wend
UO.WaitTargetLast()
UO.Exec("cast 'Poison'")
Wait(3000)
Until UO.Dead()
end sub

вот так работает замечательно, спасибо Биге за убеждение и Эдреду за поправку скрипта :)
[LD] Lamer's Death
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Kosmozone wrote:sub Magery()
Repeat
UO.DeleteJournal()
While NOT UO.InJournal( 'peace')
UO.UseSkill("Meditation")
Wait(2500)
Wend
UO.WaitTargetLast()
UO.Exec("cast 'Poison'")
Wait(3000)
Until UO.Dead()
end sub

вот так работает замечательно, спасибо Биге за убеждение и Эдреду за поправку скрипта :)


Уменьши паузу после команды на медитацию до 1000 и будет работать еще лучше :)
Post Reply