Ultima Online программы,советы,скрипты. Вторник, 14.05.2024, 09:15
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Скрипты [22]
Интересное Чтиво. (советы) [3]
Публикации пользователей [2]
Проверенные статьи переношу в основные разделы.

Главная » Статьи » Скрипты

Магия, резист
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

Категория: Скрипты | Добавил: cornor (25.03.2008)
Просмотров: 2098 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Форма входа

Поиск

Друзья сайта

Статистика

Copyright MyCorp © 2024 Сделать бесплатный сайт с uCoz