Page 1 of 1
Движение при прокачке
Posted: 2004-09-20 17:37:58
by колхоз
Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...
Re: Движение при прокачке
Posted: 2004-09-21 00:10:25
by MorbidAngel
Lobster wrote:Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...
Примерно так:
UO.cast Кастуем магию
uo.press(40) Жмем кнопку чтобы он передвинулся на таил...
wait(100)
uo.press(40) Надо два раза кнопку одну и туже нажать чтобы он прошелся а то при одном разе он просто повернется в сторону куда была нажата кнопка =)
Posted: 2004-09-22 12:34:37
by колхоз
нее мне нада чтобы типа - стоит чар, чёто делает потом бац скилл поднялся на 0.1 и токо тогда делает шаг в лево, в слудующий раз в право. Чтобы какбы не делал лишних шагов. И ещё желательно без использования журанала, если это возможно
Posted: 2004-09-22 12:48:47
by Edred
Lobster wrote:нее мне нада чтобы типа - стоит чар, чёто делает потом бац скилл поднялся на 0.1 и токо тогда делает шаг в лево, в слудующий раз в право. Чтобы какбы не делал лишних шагов. И ещё желательно без использования журанала, если это возможно
Введи контроль роста скилла. То есть в скрипте создаешь переменную:
Code: Select all
VAR oldskill = UO.Skillval( 'Anatomy' )
потом после необходимых действий для прокачки ставишь:
Code: Select all
if UO.Skillval( 'Anatomy' ) > oldskill then
UO.Press( ... ) ; ходим
UO.Press( ... )
oldskill = UO.Skillval( 'Anatomy' )
endif
ну и естественно скилл ты пишешь тот что качаешь
Posted: 2004-09-22 20:44:26
by колхоз
Edred а по подробней можно? ато я в это покачто полный 0
Posted: 2004-09-25 20:02:36
by колхоз
Посмотрите и скажите что так и что не так. Смысл я думаю понятен.
Code: Select all
sub Magery()
cast:
VAR oldskill = UO.Skillval( 'Magery' )
uo.Cast('Poison','lasttarget')
wait(4000)
uo.UseSkill('Meditation')
if UO.Skillval( 'Magery' ) > oldskill then
UO.Press( 36 )
UO.Press( 34 )
oldskill = UO.Skillval( 'Magery' )
endif
goto cast
Posted: 2004-09-25 20:24:29
by Edred
Lobster wrote:Посмотрите и скажите что так и что не так. Смысл я думаю понятен.
Code: Select all
sub Magery()
cast:
VAR oldskill = UO.Skillval( 'Magery' )
uo.Cast('Poison','lasttarget')
wait(4000)
uo.UseSkill('Meditation')
if UO.Skillval( 'Magery' ) > oldskill then
UO.Press( 36 )
UO.Press( 34 )
oldskill = UO.Skillval( 'Magery' )
endif
goto cast
Лучше так:
Code: Select all
sub Magery()
VAR oldskill = UO.Skillval( 'Magery' )
; Иначе будет ошибка вылезать что ты пытаешься создать переменную,
; которая уже создана
cast:
uo.Cast('Poison','lasttarget')
wait(4000)
uo.UseSkill('Meditation')
if UO.Skillval( 'Magery' ) > oldskill then
UO.Press( 36 )
; Один раз на клавишу - чар только повернется в этом направлении,
; потому надо дважды и еще и паузу между нажатиями хоть какую-то
wait(300)
UO.Press( 36 )
wait(300)
; Аналогично
UO.Press( 34 )
wait(300)
UO.Press( 34 )
wait(300)
oldskill = UO.Skillval( 'Magery' )
endif
goto cast
; Ну и ендсаб не забываем, скрипт где-то закончиться должен...
endsub
При этом ты получишь конечно достаточно тупой скрипт. Так как нет проверки координат при перемещении - чар может куда-нибудь при лагах ухайдакать, в результате пойзон перестанет срабатывать. Ну и скрипт будет крутиться до упора, пока не прервешь... Но это уже мелочи.
Posted: 2004-09-26 21:46:34
by колхоз
Я уже сам забыл что хотел. А хотел немного другое. Допустим у меня щас 85 magery. Я стою кастую на бота пойзон. Потом бац на 0.1 поднял и терь у меня 85.1, чар сразу сделал шаг в лево. Стою кастую дальше. Опять бац 0.1, уже 85.2, чар сделал шаг вправо(встал на исходную точку). 85.3 - шаг в лево... и т.д. Было бы круто еслиб в скрипте использовались координаты чара.
Posted: 2004-09-27 13:10:44
by колхоз
Я бы сам попробывал чёто замутить...вот токо некуда посмотреть как это вообще делается...
Posted: 2004-09-27 13:49:00
by Sfagnum
вставь где надо:
Code: Select all
var t=1
...
if UO.SkillVal('Magery') < oldskill then
oldskill = UO.Skillval('Magery')
if t==1 then
UO.Press(36)
CheckLag()
UO.Press(36)
CheckLag()
t=0
else
UO.Press(38)
CheckLag()
UO.Press(38)
CheckLag()
t=0
end if
end if
не помню коды клавишь, поменяй цифры, чтобы ходили в противоположном направлении.
Posted: 2004-09-27 18:41:04
by колхоз
Всё круто вот токо сцп или не работает или я не так сделал. Не ходит он короче.
Code: Select all
sub Magery()
VAR oldskill = UO.Skillval( 'Magery' )
VAR t=1
cast:
uo.Cast('Poison','lasttarget')
wait(3500)
uo.UseSkill('Meditation')
if UO.SkillVal('Magery') < oldskill then
oldskill = UO.Skillval('Magery')
if t==1 then
UO.Press(34)
CheckLag()
UO.Press(34)
CheckLag()
t=0
else
UO.Press(36)
CheckLag()
UO.Press(36)
CheckLag()
t=0
end if
end if
goto cast
endsub
Posted: 2004-09-27 20:33:30
by anatolij
Попробуй вырубить NUM LOCK и смотри, чтоб в окне уо строка ввода текста была пуста!
Posted: 2004-09-28 03:58:35
by tanatas
sub Magery()
VAR oldskill = UO.Skillval( 'Magery' )
VAR t=1
cast:
uo.Cast('Poison','lasttarget')
wait(3500)
uo.UseSkill('Meditation')
if UO.SkillVal('Magery') < oldskill then
oldskill = UO.Skillval('Magery')
if t==1 then
UO.Press(34)
CheckLag()
UO.Press(34)
CheckLag()
t=0
else
UO.Press(36)
CheckLag()
UO.Press(36)
CheckLag()
t=0 // думаю тут должно быть t=1 а то он будет всё время в одну сторону шагать
end if
end if
goto cast
endsub
Posted: 2004-09-28 08:17:42
by Sfagnum
Lobster wrote:Всё круто вот токо сцп или не работает или я не так сделал. Не ходит он короче.
Code: Select all
sub Magery()
VAR oldskill = UO.Skillval( 'Magery' )
VAR t=1
while not UO.Dead and UO.SkillVal('Magery')<>1000
uo.Cast('Poison','lasttarget')
wait(3500)
uo.UseSkill('Meditation')
if UO.SkillVal('Magery') > oldskill then
oldskill = UO.Skillval('Magery')
if t==1 then
UO.Press(34)
CheckLag()
UO.Press(34)
CheckLag()
t=0
else
UO.Press(36)
CheckLag()
UO.Press(36)
CheckLag()
t=0
end if
end if
wend
end sub
ну обшибся я, но и смотреть надо скрипт малёха
Code: Select all
if UO.SkillVal('Magery') > oldskill then
должно быть, скилл то у тебя растёт, а не уменьшаться
и метки - ну не люблю я их...
поправил в цитате...
Posted: 2004-09-28 20:54:07
by колхоз
Я уже это заметил

спасибо