Как сравнить 2 переменные???

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Chris
Posts: 10
Joined: 2004-10-15 20:49:58

Как сравнить 2 переменные???

Post by Chris »

Я писал скрипт на мининг и столкнулся с проблемой. В начале я ввожу переменные "VAR my, ny". Это координаты. Вот начало скрипта, он начинает копать сверху вниз, при етом после каждого шага делает:
- my = UO.GetY("self")
Когда он доходит до предела он должен сравнить старые координаты с новыми и если они совпали, шагнуть в сторону. Я делаю это так:
- if my = ny then
или если не вводить переменную "ny":
- if my = ('UO.GetY("self")') then
Я недавно познакомился с Inject'ом поэтому прошу помощи.
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

нужно писат Не if (a=b) , а if (a==b) так как а=b присваивает значению а значение b, и не является логическим оператором :)
Chris
Posts: 10
Joined: 2004-10-15 20:49:58

Post by Chris »

Что-то скрипт всеравно не работает. Вот он. Не судите строго.

Sub Mining2()
VAR oldweight = UO.weight
VAR t=1
VAR my, ny

UO.print('Select a Pickaxe!')
UO.exec('addobject Pickaxe')
while uo.targeting()
wait(100)
wend

UO.print('Select a Shovel!')
UO.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend

Minedown:
my = UO.GetY("self")
while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Hiding")
wait(1000)
wend
UO.useobject('Pickaxe')
UO.waittargettile('tilenum 321,239')
Wait(3000)
If uo.weight > oldweight then
oldweight = uo.weight
Wait(5000)
Else
UO.useobject('Shovel')
UO.waittargettile('tilenum 321,239')
Wait(8000)
oldweight = uo.weight
Endif
UO.Press(34)
ny = UO.GetY("self")
If my == ny then
UO.press(33)
goto Mineup
Endif
Wait(1000)
If uo.weight > 625 then
goto end
Endif
goto Minedown

Mineup:
my = UO.GetY("self")
while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Hiding")
wait(1000)
wend
UO.useobject('Pickaxe')
UO.waittargettile('tilenum 321,239')
Wait(3000)
If uo.weight > oldweight then
oldweight = uo.weight
Wait(5000)
Else
UO.useobject('Shovel')
UO.waittargettile('tilenum 321,239')
Wait(8000)
oldweight = uo.weight
Endif
UO.Press(32)
ny = UO.GetX("self")
If my == ny then
UO.press(33)
goto Minedown

end:
End sub
Chris
Posts: 10
Joined: 2004-10-15 20:49:58

Post by Chris »

После небольших изменений получилось вот так:

Sub Mining2()
VAR oldweight = UO.weight
VAR t=1
VAR my, ny

UO.print('Select a Pickaxe!')
UO.exec('addobject Pickaxe')
while uo.targeting()
wait(100)
wend

UO.print('Select a Shovel!')
UO.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend

Minedown:
while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Hiding")
wait(1000)
wend
my = UO.GetY("self")
UO.useobject('Pickaxe')
UO.waittargettile('tilenum 325,240')
Wait(3000)
If uo.weight > oldweight then
oldweight = uo.weight
Wait(5000)
Else
UO.useobject('Shovel')
UO.waittargettile('tilenum 325,240')
Wait(8000)
oldweight = uo.weight
Endif
UO.Press(34)
Wait(2000)
ny = UO.GetY("self")
If my == ny then
UO.press(35)
UO.press(35)
Wait(1000)
goto Mineup
Endif
If uo.weight > 625 then
goto end
Else
goto Minedown
Endif

Mineup:
while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Hiding")
wait(1000)
wend
my = UO.GetY("self")
UO.useobject('Pickaxe')
UO.waittargettile('tilenum 325,240')
Wait(3000)
If uo.weight > oldweight then
oldweight = uo.weight
Wait(5000)
Else
UO.useobject('Shovel')
UO.waittargettile('tilenum 325,240')
Wait(8000)
oldweight = uo.weight
Endif
UO.Press(36)
Wait(2000)
ny = UO.GetY("self")
If my == ny then
UO.press(35)
UO.press(35)
Wait(1000)
goto Minedown
Else
goto Mineup
Endif

end:
End sub

Но теперь my == ny ВСЕГДА! Как этого избежать?
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

ну потому что Uo.Press(34) двигает тебя не по оси Y, а по Х

Code: Select all

sub main()
UO.Print(STR(UO.GetY('self')))
wait(500)
UO.Press(34)
wait(500)
UO.Press(34)
UO.Print(STR(UO.GetY('self')))
end sub


проверь сам :) Надо GetX или двигайся по У
Chris
Posts: 10
Joined: 2004-10-15 20:49:58

Post by Chris »

Короче, можешь написать как будет правильно весь скрипт. Plzzzz! А то я всеравно не понял где у меня ошибка. И еще можешь объяснить в какие стороны двигается чар когда UO.Press(32), UO.Press(33), UO.Press(34), UO.Press(35). И еще если есть варианты то какие? И как можно объяснить Inject'у, чтобы чар двигался на определённые координаты? (если это возможно)
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

Неее родной, это уже ты сам учись писать. Нам нужны новые люди в массах :)
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Ex-Brodyaga wrote:Неее родной, это уже ты сам учись писать. Нам нужны новые люди в массах :)


Надеюсь это не относится к твоей аватарке?
Chris
Posts: 10
Joined: 2004-10-15 20:49:58

Post by Chris »

А где можно про Inject почитать, кроме yoko.netroof.net/help?? :?: Там нет таких команд. :?
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Chris wrote:А где можно про Inject почитать, кроме yoko.netroof.net/help?? :?: Там нет таких команд. :?


А документацию слабо скачать?
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

AGRS wrote:
Ex-Brodyaga wrote:Неее родной, это уже ты сам учись писать. Нам нужны новые люди в массах :)


Надеюсь это не относится к твоей аватарке?


Тсссс, жертву спугнёшь :wink:
drcrazy
Junior Expert
Posts: 92
Joined: 2004-10-12 00:48:57
Location: Шард МЕ2

Post by drcrazy »

Chris wrote:А где можно про Inject почитать, кроме yoko.netroof.net/help?? :?: Там нет таких команд. :?


Look at scripting.txt at injection folder.

UO.Press send a key code to UO window.

So U just need to find what 33, 34 and so on mean.
The pleasure of satisfying a savage instinct, undomesticated by the ego, is incomparably much more intense then the one of satisfying a tamed instinct. S.Freud.
Post Reply