Движение при прокачке

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Движение при прокачке

Post by колхоз »

Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...
MorbidAngel
Posts: 51
Joined: 2004-08-26 16:47:05

Re: Движение при прокачке

Post by MorbidAngel »

Lobster wrote:Если кому не сложно напишите скриптик чтобы когда скилл (в данном случае магия) поднимается на 0.1, чар делал шаг в лево при следующем 0.1 - делал шаг в право и так покругу. У нас просто такой дебилизм на шарде придумали что на одном и том же месте скилл качается плохо, а я в этих скриптах мало чё понимаю...

Примерно так:
UO.cast Кастуем магию
uo.press(40) Жмем кнопку чтобы он передвинулся на таил...
wait(100)
uo.press(40) Надо два раза кнопку одну и туже нажать чтобы он прошелся а то при одном разе он просто повернется в сторону куда была нажата кнопка =)
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

нее мне нада чтобы типа - стоит чар, чёто делает потом бац скилл поднялся на 0.1 и токо тогда делает шаг в лево, в слудующий раз в право. Чтобы какбы не делал лишних шагов. И ещё желательно без использования журанала, если это возможно
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post 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


ну и естественно скилл ты пишешь тот что качаешь
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Edred а по подробней можно? ато я в это покачто полный 0
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post 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
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post 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


При этом ты получишь конечно достаточно тупой скрипт. Так как нет проверки координат при перемещении - чар может куда-нибудь при лагах ухайдакать, в результате пойзон перестанет срабатывать. Ну и скрипт будет крутиться до упора, пока не прервешь... Но это уже мелочи.
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Я уже сам забыл что хотел. А хотел немного другое. Допустим у меня щас 85 magery. Я стою кастую на бота пойзон. Потом бац на 0.1 поднял и терь у меня 85.1, чар сразу сделал шаг в лево. Стою кастую дальше. Опять бац 0.1, уже 85.2, чар сделал шаг вправо(встал на исходную точку). 85.3 - шаг в лево... и т.д. Было бы круто еслиб в скрипте использовались координаты чара.
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Я бы сам попробывал чёто замутить...вот токо некуда посмотреть как это вообще делается...
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post 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
не помню коды клавишь, поменяй цифры, чтобы ходили в противоположном направлении.
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post 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
anatolij
Posts: 6
Joined: 2004-08-29 22:27:55

Post by anatolij »

Попробуй вырубить NUM LOCK и смотри, чтоб в окне уо строка ввода текста была пуста!
tanatas
Posts: 6
Joined: 2004-08-29 11:22:56

Post 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
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post 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
должно быть, скилл то у тебя растёт, а не уменьшаться :)
и метки - ну не люблю я их...
поправил в цитате...
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Я уже это заметил 8) спасибо
Post Reply