Движение при прокачке
Moderators: Murderator+, Murderator
Движение при прокачке
Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...
-
- Posts: 51
- Joined: 2004-08-26 16:47:05
Re: Движение при прокачке
Lobster wrote:Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...
Примерно так:
UO.cast Кастуем магию
uo.press(40) Жмем кнопку чтобы он передвинулся на таил...
wait(100)
uo.press(40) Надо два раза кнопку одну и туже нажать чтобы он прошелся а то при одном разе он просто повернется в сторону куда была нажата кнопка =)
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
ну и естественно скилл ты пишешь тот что качаешь
Посмотрите и скажите что так и что не так. Смысл я думаю понятен.
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
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
При этом ты получишь конечно достаточно тупой скрипт. Так как нет проверки координат при перемещении - чар может куда-нибудь при лагах ухайдакать, в результате пойзон перестанет срабатывать. Ну и скрипт будет крутиться до упора, пока не прервешь... Но это уже мелочи.
Я уже сам забыл что хотел. А хотел немного другое. Допустим у меня щас 85 magery. Я стою кастую на бота пойзон. Потом бац на 0.1 поднял и терь у меня 85.1, чар сразу сделал шаг в лево. Стою кастую дальше. Опять бац 0.1, уже 85.2, чар сделал шаг вправо(встал на исходную точку). 85.3 - шаг в лево... и т.д. Было бы круто еслиб в скрипте использовались координаты чара.
вставь где надо:
не помню коды клавишь, поменяй цифры, чтобы ходили в противоположном направлении.
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
Всё круто вот токо сцп или не работает или я не так сделал. Не ходит он короче.
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
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
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
ну обшибся я, но и смотреть надо скрипт малёха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

и метки - ну не люблю я их...
поправил в цитате...