Page 1 of 1

Резист, хилинг, мэджери - нужна маленькая доработка.

Posted: 2006-06-26 13:02:22
by Osvald
Это первый мой скрипт, собранный из кусочков, фиксированный паузы заменены на динамичиские. Собственно вот:

Code: Select all

sub Magery() 
VAR msg1, msg2, msg3, msg4
msg1 = "You heal yourself succesfully."
msg3 = "You are at peace.  reached full mana"
msg2 = "You are full healed."
msg4 = "You are at peace.  already have full mana"

while UO.NS>0 AND UO.BP>0 # какие реги юзаем

UO.Cast ('Energy Bolt') # название спела
uo.Waittargetobject('self')
wait(4000) # задержка на спел, смотрим скорость каста

If UO.Life<60 then
While UO.GetHP() < UO.GetMaxHP()
UO.DeleteJournal()
UO.exec("bandageself")
Repeat
wait(1000)
until UO.InJournal( msg2 ) OR UO.InJournal( msg1 )
Wend
EndIf

if UO.Mana <55 then
UO.DeleteJournal()
UO.UseSkill("Meditation")
Repeat
wait(1000)
until UO.InJournal( msg3 ) OR UO.InJournal( msg4 )
EndIf

wend

end sub

Иногда чар начинает уже хилится, но ещё один раз кастует - вот этот момент мне неясен. И хотелось бы сделать так: когда чар начал хилится, чтоб начинал и медитировать(благо дело на шарде это можно), независимо от того выполняется ли условие

Code: Select all

if UO.Mana <55

Помогите, если Вас это не затруднит.

Posted: 2006-06-26 13:27:50
by Grin

Code: Select all

While UO.GetHP() < UO.GetMaxHP()

за мени на

Code: Select all

While UO.Life < UO.Str

Попоодумедитации Сделай ее в отдельном потоке. Тоесть в от дельном скрипте который сам посебекрутится будет...
Медитация касту не мешает?

Posted: 2006-06-26 13:28:23
by Nmy

Code: Select all

UO.exec("bandageself")


Code: Select all

UO.exec("bandageself")
uo.useskill('Meditation')

Posted: 2006-06-26 13:30:22
by Nmy
2Grin

хотел спросить- тье команды отличаются стабильностью? :?: почему заменять?

Posted: 2006-06-26 13:38:04
by Grin
Те команды брали инфу состороны серва (как из вестно на некоторых серверах присылается белеберда).
А те берутся из мозга клиента.

Posted: 2006-06-26 13:39:24
by Osvald
Grin wrote:

Code: Select all

While UO.GetHP() < UO.GetMaxHP()

за мени на

Code: Select all

While UO.Life < UO.Str

У нас ХП больше чем стр., т. е. у меня 110 стр. и 136 ХП
Grin wrote:Попоодумедитации Сделай ее в отдельном потоке. Тоесть в от дельном скрипте который сам посебекрутится будет...
Медитация касту не мешает?

Каст сбивает медитацию

Posted: 2006-06-26 13:41:34
by Nmy
насколько больше хп? рандом или строго +26 ?

з.ы. пусть туго юзает медитацию с хилингом... :roll:


может у него хп от хилинга, мол, при 109хп юзал бинты и хп намного больше стр? ну тогда

Code: Select all

while uo.injournal('You are full healed')

Posted: 2006-06-26 13:45:38
by Osvald
Сейчас на 26, при следующем левеле +27, плюс очками опыта могу поднять на пару едениц.

Posted: 2006-06-26 13:46:31
by Grin
Osvald wrote:
Grin wrote:

Code: Select all

While UO.GetHP() < UO.GetMaxHP()

за мени на

Code: Select all

While UO.Life < UO.Str

У нас ХП больше чем стр., т. е. у меня 110 стр. и 136 ХП
Grin wrote:Попоодумедитации Сделай ее в отдельном потоке. Тоесть в от дельном скрипте который сам посебекрутится будет...
Медитация касту не мешает?

Каст сбивает медитацию

Скрипт твой не должен сбиватся в плане, неуспел дохилится сразу кастует это может быть только тут While UO.GetHP() < UO.GetMaxHP()
Если твои хп не растут за время тренеровки тогда сделай жестко
While UO.Life < 136

Медитацию юзай или вмомент лечения бинтами как уже тебепоказали или более сложный путь с независемым потоком. Для синхронизации можешь поробовать разные методы... глобальные переменые и тд..

Posted: 2006-06-26 13:47:02
by Nmy
Osvald wrote:Сейчас на 26, при следующем левеле +27, плюс очками опыта могу поднять на пару едениц.


крч делай через журнал или просто пропишы свои цифры

Posted: 2006-06-26 13:47:11
by Osvald
система очков опыта типа как в Диабло

Posted: 2006-06-26 13:51:09
by Grin

Code: Select all

If UO.Life<60 then 
Repeat
UO.DeleteJournal()
UO.bandageself()
цфше(1000)
UO.UseSkill("Meditation")
Repeat
wait(1000)
until UO.InJournal( msg2 ) OR UO.InJournal( msg1 )
until UO.InJournal( msg2 )
EndIf

Posted: 2006-06-26 13:53:52
by Nmy
Grin wrote:

Code: Select all

цфше(1000) 


:mrgreen:

Code: Select all

If UO.Life<60 then
Repeat
UO.DeleteJournal()
UO.bandageself()
wait(1000)
UO.UseSkill("Meditation")
Repeat
wait(1000)
until UO.InJournal( msg2 ) OR UO.InJournal( msg1 )
until UO.InJournal( msg2 )
EndIf

Posted: 2006-06-26 13:59:49
by Osvald
NMY wrote:

Code: Select all

UO.exec("bandageself")


Code: Select all

UO.exec("bandageself")
uo.useskill('Meditation')

Да, работает, только вот так:

Code: Select all

UO.exec("bandageself")
wait(500)
uo.useskill('Meditation')

Posted: 2006-06-26 14:01:12
by Grin
Osvald wrote:
NMY wrote:

Code: Select all

UO.exec("bandageself")


Code: Select all

UO.exec("bandageself")
uo.useskill('Meditation')

Да, работает, только вот так:

Code: Select all

UO.exec("bandageself")
wait(500)
uo.useskill('Meditation')

Не у спеваешь ты освальд за ходоим этой темы;)))

Posted: 2006-06-26 14:08:38
by Osvald
2 NMY Спасибо.
2 Grin Ну не успеваю. Надо же ещё и потестить, то что дают. :D ,
Медитацию юзай или вмомент лечения бинтами как уже тебепоказали или более сложный путь с независемым потоком. Для синхронизации можешь поробовать разные методы... глобальные переменые и тд..

Не, до этого я еще не дорос. Синхронизации там всякие, переменные глобальные... :D
Большое всем спасибо.