Page 1 of 1

Advanced magery

Posted: 2006-04-17 04:06:45
by Destruction
Собственно приспичило мне магию прокачать, да не просто прокачать, а афигенно прокачать :-)) Написал небольшой скриптец - может кому пригодиться.

Code: Select all

sub AdvancedMagery()
; Advanced magery script v1.1, (c) Destruction.
var i, spell = "Magic Arrow" ; спел который кастовать
var target = "self" ; куда прицеливаться - false если не требуется
var nmedit = true ; нужно ли медитировать?
var nheal = "0x0E21" ; тип бинтов или false, чтобы не лечиться
var b_ban = "0x0E20" ; тип кровавых бинтов
var water =  "0x400524D2" ; water tub ID или false, чтобы не мыть бинты
var watertile = false ; tile type, tile x, tile y, tile z через зепятую или false чтобы не мыть
var bag = "0x40021A29" ; сумка откуда всё набирать или false
uo.useobject(bag)
checklag()
var nlen = 3 ; количество необходимых реагентов
DIM reagents[val(str(nlen))]
; реагенты
reagents[0] = "0x0F88" ; nightshade
reagents[1] = "0x0F7A" ; black pearls
reagents[2] = "0x0E21" ; bandages
while uo.skillval("Magery",1) < 1000
if bag then
for i=0 to nlen-1
GrabReag(reagents[i],bag)
next
endif
Cast(spell,target)
if nmedit then
Medit()
endif
if nheal then
Heal(nheal)
endif
if water then
CleanBTub(water,b_ban)
endif
if watertile then
CleantBTile(water,b_ban)
endif
wend
endsub

Sub GrabReag(r,b)
; функция добора r из b до 30.
var q
repeat
q = GetCount(r)
if q < 30 then
uo.findtype(r,"-1",b)
uo.moveitem("finditem",str(30-q),"backpack")
wait(100)
endif
until q >= 30
endsub

Sub GetCount(type)
; функция подсчёта количества вещей (стекующихся) в бекпеке по типу
var count = 0
uo.findtype(type,"-1","backpack")
while uo.findcount()
count = count + uo.getQuantity("finditem")
uo.ignore("finditem")
uo.findtype(type,"-1","backpack")
wend
uo.ignorereset()
return count
endsub

Sub CleantBTile(t,b)
; помывка бинтов в луже, t - информация о тайле (from tileinfo), b - грязные бинты
while uo.count()
uo.exec("waittargettile "+t)
uo.usetype(b)
checklag()
wait(50)
wend
endsub

Sub CleanBTub(w,b)
; помывка бинтов в тазике, w - Tazik ID, b - грязные бинты
while uo.count(b)
uo.waittargetobject(w)
uo.usetype(b)
checklag()
wait(50)
wend
endsub

Sub Heal(b)
; функция лечения себя, b - тип бинтов
while uo.getHP() < uo.str
uo.waittargetobject("self")
uo.usetype(b)
checklag()
wait(750)
wend
endsub

Sub Medit()
; функция медитации
while uo.mana < uo.int
uo.useskill("Meditation")
wait(300)
wend
endsub

Sub Cast(p1, p2)
; функция каста. p1 - что кастуем, p2 - куда кастуем.
var mana = uo.mana
if p2 then
uo.waittargetobject(p2)
endif
uo.cast(p1)
var timer = uo.timer()
repeat
wait(100)
until uo.mana < mana || uo.timer()-30 > timer
endsub


PS: Приоритеты легко меняются простой правкой условий в первой функции.

Posted: 2006-04-18 17:28:10
by Destruction
Update.

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

Теперь бинты по прежнему лежат десятком кучек, но подсчитываются корректно.

Posted: 2006-04-22 17:34:04
by 1a2a3a4a5a6a
Человек написал скрипт, а никто не ценит. Ужас.
Я бы потестировал, но магия уже давным давно прокачена. :)

Posted: 2006-04-22 21:42:02
by Destruction
Der wrote:Не гони... я например на POL'е играю... у меня всё намного проще :) мой скрипт 13 строчек :)

Дану, и как насчёт с пойзона перебежать на магик арров? Много времени займёт?.. То-то же!

Posted: 2006-04-24 20:02:00
by ghost_hnt
а можешь сделать так:
чар использует магию- поизон на себя пока не кончится мана, потом хелится, когда похелится врубается медитация и все по кругу...
или скрипт будет не надежен и чар себя убьет?)

Posted: 2006-04-24 20:08:26
by DerMeister =)
Destruction wrote:
Der wrote:Не гони... я например на POL'е играю... у меня всё намного проще :) мой скрипт 13 строчек :)

Дану, и как насчёт с пойзона перебежать на магик арров? Много времени займёт?.. То-то же!


Что ты имеешь ввиду?
...с пойзона перебежать на магик арров...
Я внатуре не врубился =(

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

Еслиб у меня была фабрика про качанию чаров то я наверное бы написал полный автомат на прокачку, но мне этого не надо... проще ручками всё подправить (1 минута на это уходит) =)

ЗЫ: Я не имею ничего против твоего скрипта. Каждый выбирает под себя... Мне он не нужен, а кому-то наверно пригодится... я просто хотел сказать, что мне проще пользоваться своим малюсеньким скриптом...

Posted: 2006-04-25 12:31:43
by Destruction
Der wrote:
Destruction wrote:
Der wrote:Не гони... я например на POL'е играю... у меня всё намного проще :) мой скрипт 13 строчек :)

Дану, и как насчёт с пойзона перебежать на магик арров? Много времени займёт?.. То-то же!


Что ты имеешь ввиду?
...с пойзона перебежать на магик арров...
Я внатуре не врубился =(

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

Еслиб у меня была фабрика про качанию чаров то я наверное бы написал полный автомат на прокачку, но мне этого не надо... проще ручками всё подправить (1 минута на это уходит) =)

ЗЫ: Я не имею ничего против твоего скрипта. Каждый выбирает под себя... Мне он не нужен, а кому-то наверно пригодится... я просто хотел сказать, что мне проще пользоваться своим малюсеньким скриптом...

Зависит от шарда, это раз.

Магию я качаю на пойзоне, а вот резист нас трелках или стенках - приходиться менять спелл,это я имел ввиду сказав "перебежать".

И ваще, скрипт чтобы люди пользовались, которые не скриптописатели.

Posted: 2006-04-26 10:17:51
by Destruction
ghost_hnt wrote:а можешь сделать так:
чар использует магию- поизон на себя пока не кончится мана, потом хелится, когда похелится врубается медитация и все по кругу...
или скрипт будет не надежен и чар себя убьет?)

Замени спелл на Poison и всё будет..

Скрипт надёжный, я фигню не выкладываю.

Posted: 2006-04-26 15:00:00
by ghost_hnt
ну мне действие скрипта чуток не понятно...
почему он не полностью вырабатывает ману и хелится , а только пару раз, потом хелится и в медитацию, когда мана почти полная
но вроде все пашет :)

Posted: 2006-04-26 16:46:31
by Destruction
ghost_hnt wrote:ну мне действие скрипта чуток не понятно...
почему он не полностью вырабатывает ману и хелится , а только пару раз, потом хелится и в медитацию, когда мана почти полная
но вроде все пашет :)

Исправь приоритеты в условиях.

Posted: 2006-05-13 14:14:00
by S.M.A.R.T
can anyone translate to me the part that is in..is it russian? :roll:
thanks

Posted: 2006-05-14 10:12:30
by Edred

Posted: 2008-03-21 18:39:42
by Staxxx
не пашет блин, а bag должен быть на полу? или на руках?

Posted: 2008-03-22 08:50:13
by Kynep
Staxxx wrote:не пашет блин, а bag должен быть на полу? или на руках?


Конечно на полу :lol: Ты удержишь в руках тысяч 10 регов и пару тысяч бинтов? :twisted: