Page 1 of 1

Может кто-нибудь написать скрипт?

Posted: 2007-01-10 06:19:19
by GooD
Суть скрипта:
Чар кидает заклинание "Magiс arrow" в другого чара и следит за его жизнью, как здоровье опустилось ниже положеного лечит его и моет бинты, если не хватает маны на заклинание медитирует полностью.

Заранее спасибо!

Re: Может кто-нибудь написать скрипт?

Posted: 2007-01-10 07:39:54
by Nmy
GooD wrote:Суть скрипта:
Чар кидает заклинание "Magiс arrow" в другого чара и следит за его жизнью, как здоровье опустилось ниже положеного лечит его и моет бинты, если не хватает маны на заклинание медитирует полностью.

Заранее спасибо!
такое можно наидти в поиске...

Re: Может кто-нибудь написать скрипт?

Posted: 2007-01-10 12:03:39
by GooD
NMY wrote:такое можно наидти в поиске...
Я пробовал, чего-то не нашёл! Если поможешь найти буду благодарен!

Posted: 2007-01-10 15:54:18
by Mihail
Я могу написать!

Posted: 2007-01-11 03:03:57
by GooD
Mihail wrote:Я могу написать!
Напиши пожалуйста, буду примного благодарен!

Posted: 2007-01-11 10:04:24
by Destruction
Хмм, ну взять мой же AdvancedMagery, настроить, сделать пару поправочек, чтобы порверял чужие хп и всё..

Posted: 2007-01-11 16:51:26
by GooD
Destruction wrote:Хмм, ну взять мой же AdvancedMagery, настроить, сделать пару поправочек, чтобы порверял чужие хп и всё..
Я в инже ноль просто, могу только в готовом скрипте поменять ИД или ТИП предмета, всё что я могу, а вставлять всякие проверки для меня это тёмный лес. Помоги пожалуйста если можешь!

Posted: 2007-01-12 00:51:15
by Mihail
могут-то тут через одного этот скрипт написать но не будут.. иди читай уроки скриптинга

Posted: 2007-01-12 04:16:18
by Destruction
Поглядел свой скрипт - ужос нах -)

Code: Select all

sub AdvancedMagery() 
; Advanced magery script v1.1, (c) Destruction. 
; Special version for GooD.
var i, spell = "Magic Arrow" ; спел который кастовать 
var target = "ID другого чара" ; куда прицеливаться - 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
if bag  then
	uo.useobject(bag) 
	checklag() 
endif
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,target) 
	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, tar) 
; функция лечения себя, b - тип бинтов
if NOT b then
	return false
endif
while uo.getHP() < uo.str 
	uo.waittargetobject( tar ) 
	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
Так попробуй.