Нет больше сил искать...

Anything and all.

Moderators: Murderator+, Murderator

smi
Posts: 8
Joined: 2006-11-08 21:59:59

Нет больше сил искать...

Post by smi »

Всем привет!
А найти я хочу скрипт такой чтоб чар кидал Протект и Блесс на персонажа написавшего например слово obkast , но чтоб не на каждого он кидал а на оределенных людей;) если вы видели подобный скрипт, скажите где. Буду очень признателен!!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

А что его искать? Написать не сложно.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

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


Напиши. Докажи что твои сообщения не пустой флуд
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post 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


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

Code: Select all

,exec obkast.daemon
, предварительно настроив скрипт.
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

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

Для меня это невыполнимая задача;)
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

To Destruction: Спасибо тебе за скриптец;) сейчас борюсь с ним не хочет пока работать пишет про ошибку в 11 line
А что значит по принципу демона?;)
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

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


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

Дело говориш;)
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

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


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

Code: Select all

(jrn-1l)


здесь нету ошыбки ?
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

NMY wrote:

Code: Select all

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


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

Code: Select all

(jrn-1l)


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

Ага так и есть выодит из строя как будет корректно не подскажеш?;)
а (jrn-1l) я исправил;)
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post 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


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

ищо медитацыя непомешает гдето :roll:
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

ла - отстой, зачем переносить ее в уо?
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post 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


Проверено на птичках !!! 8)
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

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

Что касается

Code: Select all

if uo.COunt(chars)
-не уверен что будет работать т.к. думаю она проводит поиск в сумках и подсумках :\ Тогда

Code: Select all

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

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

Code: Select all

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


Не корректная запись :\
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

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

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

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

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


Если подольше посидеть с этим скриптом, то можно и добор регов и чеклаг и реконект добавить. Да и напихать еще кастов можно. Тоесть при сообщении "блесс" чтоб кастовал только блесс, при сообщении "протекшен", только протекшен. А при сообщении "обкаст", все сразу.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Code: Select all

   For i = 0 To 5


здесь шесть шагов. 0,1,2,3,4,5.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

:D Теперь увидел, осознал.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

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

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

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

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


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


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

Code: Select all

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

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


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


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

Code: Select all

цикл перебора сообщений кастов
если в журнале(месага элемент1) тогда
  взять ИД объекта который произнёс строку журнала
  цикл перебора ИД на кого кастовать
    сравнить это значение с теми что в массиве. если == , тогда кастуй
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post 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


не тестил возможны ошибки
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

Слушайте а как вставлять такое поле в форум Code: ????
smi
Posts: 8
Joined: 2006-11-08 21:59:59

Post by smi »

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