Page 1 of 2
Нет больше сил искать...
Posted: 2006-11-08 23:19:06
by smi
Всем привет!
А найти я хочу скрипт такой чтоб чар кидал Протект и Блесс на персонажа написавшего например слово obkast , но чтоб не на каждого он кидал а на оределенных людей;) если вы видели подобный скрипт, скажите где. Буду очень признателен!!
Posted: 2006-11-09 01:59:23
by slonopotam
А что его искать? Написать не сложно.
Posted: 2006-11-09 04:08:55
by Scripts Writer
slonopotam wrote:А что его искать? Написать не сложно.
Напиши. Докажи что твои сообщения не пустой флуд
Posted: 2006-11-09 08:48:35
by Destruction
You Must Die wrote:slonopotam wrote:А что его искать? Написать не сложно.
Напиши. Докажи что твои сообщения не пустой флуд
Дык ведь и правда не сложно.. -)
Скрипт НЕ тестировался, писался в форме ответа -)
Code: Select all
sub obkast.daemon()
var jrnl, i, p_len = 1 ; количество игроков, в списке
var phrase = "obcast" ; фраза, на которую реагируем.
DIM players[]
; Список ID игроков, на которых вешаем обкаст.
players[0] = '0x0000000';
repeat
jrnl = uo.inJournal(phrase);
if jrnl then
for i=0 to p_len-1
if uo.journalserial(jrn-1l) == players[i] then
obkast.do( journalserial(jrnl-1) )
break
endif
next
uo.setjournalline(jrnl-1, '')
endif
wait(200)
until false
endsub
Sub obkast.do(serial)
var mana = uo.mana
uo.cast('Protection', serial)
while mana == uo.mana
wait(50)
wend
mana = uo.mana
uo.cast('Bless', serial)
while mana == uo.mana
wait(50)
wend
endsub
О работе скрипта - скрипт работает по принципу демона, т.е. висит до поры до времени, а как понадобится - делает нужные операции. Соответсвенно нужно запустить демона -
, предварительно настроив скрипт.
Posted: 2006-11-09 16:51:02
by smi
slonopotam wrote:А что его искать? Написать не сложно.
Для меня это невыполнимая задача;)
Posted: 2006-11-09 16:55:11
by smi
To Destruction: Спасибо тебе за скриптец;) сейчас борюсь с ним не хочет пока работать пишет про ошибку в 11 line
А что значит по принципу демона?;)
Posted: 2006-11-09 17:06:37
by smi
You Must Die wrote:slonopotam wrote:А что его искать? Написать не сложно.
Напиши. Докажи что твои сообщения не пустой флуд
Дело говориш;)
Posted: 2006-11-09 18:29:37
by Nmy
Code: Select all
while mana == uo.mana
wait(50)
wend
некоректно, мана поднимится на 1% и скрипт выходит из цыкла...
здесь нету ошыбки ?
Posted: 2006-11-09 19:33:26
by smi
NMY wrote:Code: Select all
while mana == uo.mana
wait(50)
wend
некоректно, мана поднимится на 1% и скрипт выходит из цыкла...
здесь нету ошыбки ?
Ага так и есть выодит из строя как будет корректно не подскажеш?;)
а (jrn-1l) я исправил;)
Posted: 2006-11-09 23:17:41
by Nmy
Code: Select all
Sub obkast.do(serial)
var m = uo.mana
uo.cast('Protection', serial)
repeat
wait(50)
until uo.mana<m
m = uo.mana
uo.cast('Bless', serial)
repeat
wait(50)
until uo.mana<m
endsub
последний цыкл можно убрать, но если быстро опять иго ктото запустит, сфизлит
ищо медитацыя непомешает гдето

Posted: 2006-11-10 00:30:30
by Savage
ла - отстой, зачем переносить ее в уо?
Posted: 2006-11-10 02:09:22
by slonopotam
You Must Die wrote:slonopotam wrote:А что его искать? Написать не сложно.
Напиши. Докажи что твои сообщения не пустой флуд
Я не волшебник, я только учусь. Но вот наваял

:
Code: Select all
VAR One='0x99999999' ; чар № 1
VAR Two='0x99999999' ; ИД чара № 2
VAR Three='0x99999999' ; ИД чара № 3
VAR Four='0x99999999' ; ИД чара № 4
VAR Five='0x99999999' ; ИД чара № 5
VAR goblin=1
sub Start()
repeat
Ojidanie()
wait(100)
until goblin>2
end sub
Sub Ojidanie()
If UO.InJournal('obkast') Then
Protection()
UO.DeleteJournal()
wait(100)
Else
Meditation()
Endif
end sub
Sub Protection()
DIM Chars[5]
Chars[0] = One
Chars[1] = Two
Chars[2] = Three
Chars[3] = Four
Chars[4] = Five
VAR i
For i = 0 To 5
If UO.Count(Chars[ i ]) == 0 Then
UO.Cast('Protection',Chars[ i ])
wait(2500)
Else
wait(100)
Endif
Next
end sub
Sub Meditation()
If UO.mana<=10 Then
UO.useskill('Meditation')
Else
wait(100)
EndIf
end sub
Проверено на птичках !!!
Posted: 2006-11-10 02:55:57
by Scripts Writer
У тебя 5 элементов массива, а ты ищешь до 6ого
Что касается
-не уверен что будет работать т.к. думаю она проводит поиск в сумках и подсумках :\ Тогда
уж если что, но в любом случае
надо предварительно найти то,что ты принял за "chars". Если ты принял типы-тогда почему так много?
Если ID -то Count([object])
ошибка синтаксиса.
И не совсем понял принцип работы ожидания и медитации.
Code: Select all
Ждём 100 сек
Сообщения нет => Идём медитировать
Используем скил медитации
Ждём 100 сек
Возврат к первой строке.
Не корректная запись :\
Posted: 2006-11-10 03:58:08
by slonopotam
5 элементов . С 0 до 4 =5 и ищу вроде только 5
if uo.COunt(chars) ищет не только в паке и подсумках, по крайней мере находило птичек.
uo.FindCount() может ощибся, всяко бывает, но работает же
Принцип медитации простой, пока нет сообщений (тоесть его не вызывают) он медитирует.
Если подольше посидеть с этим скриптом, то можно и добор регов и чеклаг и реконект добавить. Да и напихать еще кастов можно. Тоесть при сообщении "блесс" чтоб кастовал только блесс, при сообщении "протекшен", только протекшен. А при сообщении "обкаст", все сразу.
Posted: 2006-11-10 04:02:11
by Edred
здесь шесть шагов. 0,1,2,3,4,5.
Posted: 2006-11-10 04:13:37
by slonopotam

Теперь увидел, осознал.
Posted: 2006-11-10 16:36:25
by Scripts Writer
slonopotam wrote:5 элементов . С 0 до 4 =5 и ищу вроде только 5
if uo.COunt(chars) ищет не только в паке и подсумках, по крайней мере находило птичек.
uo.FindCount() может ощибся, всяко бывает, но работает же
Принцип медитации простой, пока нет сообщений (тоесть его не вызывают) он медитирует.
Если подольше посидеть с этим скриптом, то можно и добор регов и чеклаг и реконект добавить. Да и напихать еще кастов можно. Тоесть при сообщении "блесс" чтоб кастовал только блесс, при сообщении "протекшен", только протекшен. А при сообщении "обкаст", все сразу.
У тебя нерациональное решение. Не пробовал забивать в массив название кастов?
Code: Select all
элемент 1 = Блесс
если в журнале(месага с содержанием элемент1) тогда
кастуй элемент 1 на того кто произнёс.
Вот и всё.
Что касается обкаста то и вовсе-если в журнале обкаст, тогда кастуй цикл. Скрипт на самом деле минутный.
2А если тебе нужна проверка на ИД то также забиваешь в том же скрипте второй массив и конструкция примерно следующая:
Code: Select all
цикл перебора сообщений кастов
если в журнале(месага элемент1) тогда
взять ИД объекта который произнёс строку журнала
цикл перебора ИД на кого кастовать
сравнить это значение с теми что в массиве. если == , тогда кастуй
Posted: 2006-11-10 21:05:44
by Mihail
вариант 1.
через серийники
Code: Select all
sub obkast()
###############
var keyword = 'обкаст' ; слово на которое реагировать
var refreshtime = 0.5 ; время проверки сообщений в журнале в сек
##############
var i, t, reg
Dim a[5]
# серийники
a[0]='0x0000000'
a[1]='0x0000000'
a[2]='0x0000000'
a[3]='0x0000000'
a[4]='0x0000000'
repeat
if uo.injournal(keyword) then
for i=0 to 4
if uo.journalserial(uo.injournal(keyword))==a[i] then
uo.cast('Bless',a[i])
uo.deletejournal()
t=0
reg= uo.ns # Название рега присуствующего в касте
repeat
t=t+1
wait(500)
until uo.injournal('spell|mana') or t==15 or tmp<uo.ns #опять название рега
####
uo.cast('Protection',a[i])
uo.deletejournal()
t=0
reg=uo.ns # Название рега присуствующего в касте
repeat
t=t+1
wait(500)
until uo.injournal('spell|mana') or t==15 or tmp<uo.ns #опять название рега
end if
next
end if
wait(refreshtime*1000)
until uo.dead()
end sub
варинт 2
те, на кого кастуешь каст должны говорить слово "каст" определенным цветом (можно сделать в инжекте), тогда:
Code: Select all
sub obkast()
###############
var keyword = 'обкаст' ; слово на которое реагировать
var refreshtime = 0.5 ; время проверки сообщений в журнале в сек
##############
var t, reg
repeat
if uo.injournal(keyword) then
if uo.journalcolor(uo.injournal(keyworde))=='0x0000' then #цвет сообщений
uo.cast('Bless',uo.journalserial(uo.injournal(keyworde)))
uo.deletejournal()
t=0
reg= uo.ns # Название рега присуствующего в касте
repeat
t=t+1
wait(500)
until uo.injournal('spell|mana') or t==15 or tmp<uo.ns #опять название рега
####
uo.cast('Protection',uo.journalserial(uo.injournal(keyworde)))
uo.deletejournal()
t=0
reg=uo.ns # Название рега присуствующего в касте
repeat
t=t+1
wait(500)
until uo.injournal('spell|mana') or t==15 or tmp<uo.ns #опять название рега
end if
end if
wait(refreshtime*1000)
until uo.dead()
end sub
не тестил возможны ошибки
Posted: 2006-11-11 02:24:34
by smi
Слушайте а как вставлять такое поле в форум Code: ????
Posted: 2006-11-11 02:43:46
by smi
А медитация не нужна у меня на шарде металлы есть ману восстанавливающие;)