Yoko
http://forum.yoko.com.ua/

Нет больше сил искать...
http://forum.yoko.com.ua/viewtopic.php?f=20&t=9317
Page 1 of 2

Author:  smi [ 2006-11-08 23:19:06 ]
Post subject:  Нет больше сил искать...

Всем привет!
А найти я хочу скрипт такой чтоб чар кидал Протект и Блесс на персонажа написавшего например слово obkast , но чтоб не на каждого он кидал а на оределенных людей;) если вы видели подобный скрипт, скажите где. Буду очень признателен!!

Author:  slonopotam [ 2006-11-09 01:59:23 ]
Post subject: 

А что его искать? Написать не сложно.

Author:  Scripts Writer [ 2006-11-09 04:08:55 ]
Post subject: 

slonopotam wrote:
А что его искать? Написать не сложно.


Напиши. Докажи что твои сообщения не пустой флуд

Author:  Destruction [ 2006-11-09 08:48:35 ]
Post subject: 

You Must Die wrote:
slonopotam wrote:
А что его искать? Написать не сложно.


Напиши. Докажи что твои сообщения не пустой флуд

Дык ведь и правда не сложно.. -)

Скрипт НЕ тестировался, писался в форме ответа -)
Code:
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


О работе скрипта - скрипт работает по принципу демона, т.е. висит до поры до времени, а как понадобится - делает нужные операции. Соответсвенно нужно запустить демона -
Code:
,exec obkast.daemon
, предварительно настроив скрипт.

Author:  smi [ 2006-11-09 16:51:02 ]
Post subject: 

slonopotam wrote:
А что его искать? Написать не сложно.

Для меня это невыполнимая задача;)

Author:  smi [ 2006-11-09 16:55:11 ]
Post subject: 

To Destruction: Спасибо тебе за скриптец;) сейчас борюсь с ним не хочет пока работать пишет про ошибку в 11 line
А что значит по принципу демона?;)

Author:  smi [ 2006-11-09 17:06:37 ]
Post subject: 

You Must Die wrote:
slonopotam wrote:
А что его искать? Написать не сложно.


Напиши. Докажи что твои сообщения не пустой флуд

Дело говориш;)

Author:  Nmy [ 2006-11-09 18:29:37 ]
Post subject: 

Code:
   while mana == uo.mana
      wait(50)
   wend


некоректно, мана поднимится на 1% и скрипт выходит из цыкла...

Code:
(jrn-1l)


здесь нету ошыбки ?

Author:  smi [ 2006-11-09 19:33:26 ]
Post subject: 

NMY wrote:
Code:
   while mana == uo.mana
      wait(50)
   wend


некоректно, мана поднимится на 1% и скрипт выходит из цыкла...

Code:
(jrn-1l)


здесь нету ошыбки ?

Ага так и есть выодит из строя как будет корректно не подскажеш?;)
а (jrn-1l) я исправил;)

Author:  Nmy [ 2006-11-09 23:17:41 ]
Post subject: 

Code:
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


последний цыкл можно убрать, но если быстро опять иго ктото запустит, сфизлит :roll:

ищо медитацыя непомешает гдето :roll:

Author:  Savage [ 2006-11-10 00:30:30 ]
Post subject: 

ла - отстой, зачем переносить ее в уо?

Author:  slonopotam [ 2006-11-10 02:09:22 ]
Post subject: 

You Must Die wrote:
slonopotam wrote:
А что его искать? Написать не сложно.


Напиши. Докажи что твои сообщения не пустой флуд


Я не волшебник, я только учусь. Но вот наваял :) :
Code:
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


Проверено на птичках !!! 8)

Author:  Scripts Writer [ 2006-11-10 02:55:57 ]
Post subject: 

У тебя 5 элементов массива, а ты ищешь до 6ого

Что касается
Code:
if uo.COunt(chars)
-не уверен что будет работать т.к. думаю она проводит поиск в сумках и подсумках :\ Тогда
Code:
uo.FindCount() 
уж если что, но в любом случае надо предварительно найти то,что ты принял за "chars". Если ты принял типы-тогда почему так много?
Если ID -то Count([object]) ошибка синтаксиса.

И не совсем понял принцип работы ожидания и медитации.

Code:
Ждём 100 сек
Сообщения нет => Идём медитировать
Используем скил медитации
Ждём 100 сек
Возврат к первой строке.


Не корректная запись :\

Author:  slonopotam [ 2006-11-10 03:58:08 ]
Post subject: 

5 элементов . С 0 до 4 =5 и ищу вроде только 5

if uo.COunt(chars) ищет не только в паке и подсумках, по крайней мере находило птичек.

uo.FindCount() может ощибся, всяко бывает, но работает же :roll:

Принцип медитации простой, пока нет сообщений (тоесть его не вызывают) он медитирует.


Если подольше посидеть с этим скриптом, то можно и добор регов и чеклаг и реконект добавить. Да и напихать еще кастов можно. Тоесть при сообщении "блесс" чтоб кастовал только блесс, при сообщении "протекшен", только протекшен. А при сообщении "обкаст", все сразу.

Author:  Edred [ 2006-11-10 04:02:11 ]
Post subject: 

Code:
   For i = 0 To 5


здесь шесть шагов. 0,1,2,3,4,5.

Author:  slonopotam [ 2006-11-10 04:13:37 ]
Post subject: 

:D Теперь увидел, осознал.

Author:  Scripts Writer [ 2006-11-10 16:36:25 ]
Post subject: 

slonopotam wrote:
5 элементов . С 0 до 4 =5 и ищу вроде только 5

if uo.COunt(chars) ищет не только в паке и подсумках, по крайней мере находило птичек.

uo.FindCount() может ощибся, всяко бывает, но работает же :roll:

Принцип медитации простой, пока нет сообщений (тоесть его не вызывают) он медитирует.


Если подольше посидеть с этим скриптом, то можно и добор регов и чеклаг и реконект добавить. Да и напихать еще кастов можно. Тоесть при сообщении "блесс" чтоб кастовал только блесс, при сообщении "протекшен", только протекшен. А при сообщении "обкаст", все сразу.


У тебя нерациональное решение. Не пробовал забивать в массив название кастов?

Code:
элемент 1 = Блесс

если в журнале(месага с содержанием элемент1) тогда
  кастуй элемент 1 на того кто произнёс.


Вот и всё.
Что касается обкаста то и вовсе-если в журнале обкаст, тогда кастуй цикл. Скрипт на самом деле минутный.


2А если тебе нужна проверка на ИД то также забиваешь в том же скрипте второй массив и конструкция примерно следующая:

Code:
цикл перебора сообщений кастов
если в журнале(месага элемент1) тогда
  взять ИД объекта который произнёс строку журнала
  цикл перебора ИД на кого кастовать
    сравнить это значение с теми что в массиве. если == , тогда кастуй

Author:  Mihail [ 2006-11-10 21:05:44 ]
Post subject: 

вариант 1.
через серийники

Code:
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:
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


не тестил возможны ошибки

Author:  smi [ 2006-11-11 02:24:34 ]
Post subject: 

Слушайте а как вставлять такое поле в форум Code: ????

Author:  smi [ 2006-11-11 02:43:46 ]
Post subject: 

А медитация не нужна у меня на шарде металлы есть ману восстанавливающие;)

Page 1 of 2 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/