Убийство мобов | "передача" таргета .

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
psixozz
Posts: 37
Joined: 2005-03-06 22:24:43

Убийство мобов | "передача" таргета .

Post by psixozz »

Всем привет, ищу два скрипта - 1й. Килл мобо луком, тоесть удержанием дистанции, допустим бьет моба , тот полюбому идет на меня , надо отбежать на 8 клеток, но при этом может быть рядом другой моб) реально это? 2й. Один чар атачит, отдаем команду, другой чар делает атаку по таргету первого. P.S. Кто чем может помочь , кинуть ссылку на верный поиск , выложить прииблеженный скрипт , намекнуть :) всем буду признателен :) можно в личку если иные варианты:)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Убийство мобов | "передача" таргета .

Post by Mirage »

Реально все. Другое дело что иногда затраты времени на скрипт его размеры (и как следствие цена) на столько высоки что проще играть все таки самому а не заставлять скрипт делать все за игрока.
1) Чар будет отбегать - до каких пор? А если на дистанции будет камень или дерево или скала? Куда чару отбегать? Получается должен быть постоянный монитор тайлов вокруг на проходимость не проходимость. У тебя комп сгорит от такого расчета :)
2) атакуя считываешь ID персонажа кого атакуешь - кадаешь текст в гильдчат/групповой месаг, второй чар считывает текст сверяя либо цвет сообщения либо ID произнёсшего текст с шаблоном (чтобы выловить свой/чужой), текст переводишь в ID и делаешь атаку ID. Сам скрипт не сложный. Нужно всего лишь знать каким образом работает гильдчат/групповой чат на сервере.
psixozz
Posts: 37
Joined: 2005-03-06 22:24:43

Re: Убийство мобов | "передача" таргета .

Post by psixozz »

Так 2й вариант . Суть - есть основной чар управляемый мной, к нему цепляем еще 1 или 2 , догон делаем за основным чаром - можно руками алт клик, дальше всех снабжаем луком , 1 чар атакует кричит команду на таргет - чат простой или через пати в клиенте ( 2.0.3 ) , возможен отход ( если моб будет близко , так как мы с луком ) - можно руками естественно, лут я делаю тоже основным чаром . Так я себе все представляю . Значит мне нужна передача таргета на мультов моих. Может у вас другие варианты?
psixozz
Posts: 37
Joined: 2005-03-06 22:24:43

Re: Убийство мобов | "передача" таргета .

Post by psixozz »

Основной вопрос как и куда писать в отсутствие гильд чата ? Под него есть скрипт, в пати клиентский можно ли или в обычный чат ( над чаром )?
psixozz
Posts: 37
Joined: 2005-03-06 22:24:43

Re: Убийство мобов | "передача" таргета .

Post by psixozz »

Вот часть скрипта , которая должна распознавать фразу и делать действие по указанному айди , пример фразы

Code: Select all

UO.MSG(-'#Target: '+name+' '+serial)

убираем - , скрипт не реагирует , ТВИ стоит галочка , может еще какие надо ?


Code: Select all

sub abs(number)
 if number < 0 then
  return number * (-1)
 else
  return number
 endif
end sub

sub GuildCommandGetSerial(temp)
 VAR len = strlen(temp)
 if (temp[len-10]+temp[len-9] == '0x') then
  return temp[len-10]+temp[len-9]+temp[len-8]+temp[len-7]+temp[len-6]+temp[len-5]+temp[len-4]+temp[len-3]+temp[len-2]+temp[len-1]
 else
  return '0x00000000'
 endif
end sub

sub DeleteGuildCommands(command)
 VAR stop = 0
 VAR temp
 while stop == 0
  temp = OnGuildCommand(command)
  if temp > -1 then
   UO.SetJournalLine(temp, '*DELETED*')
  else
   stop = 1
  endif
 wend
end sub

sub CheckMsg()
 UO.Msg('-+++ v0.5 + reflection')
end sub


sub OnGuildCommand(command)
 VAR res
 VAR number
 VAR tempstr
 VAR stop = 0
 while stop == 0
  number = UO.InJournal(command)
  if number > 0 then
   tempstr = UO.Journal(number-1)
   if tempstr[0] <> '[' then
    UO.SetJournalLine(number-1, '*NO BUGS*')
   else
    res = number-1
    stop = 1
   endif
  else
   res = -1
   stop = 1
  endif
 wend
 return res
end sub


sub GuildTargetClickNick()
 VAR serial = UO.GetGlobal('GuildLastTarget')
 if serial <> 'N/A' then
  UO.Click(serial)
 endif
end sub

sub click3time(serial, rastX, rastY)
 if (rastX <= 18) and (rastY <= 18) then
  if UO.GetGlobal('click3') == 'N/A' then
   UO.Click(serial)
   wait(50)
   UO.Click(serial)
   wait(50)
   UO.Click(serial)
   wait(50)
   UO.SetGlobal('click3', 'TRUE')
  endif
 else
  UO.SetGlobal('click3', 'N/A')
 endif
end sub

sub GuildCommandsReaction()
 VAR serial
 VAR temp
 VAR tempstr
 VAR rastX
 VAR rastY
 VAR tempserial = UO.GetGlobal('GuildLastTarget')
 if tempserial <> 'N/A' then
  serial = tempserial
  rastX = abs(UO.GetX(serial)-UO.GetX())
  rastY = abs(UO.GetY(serial)-UO.GetY())
  click3time(serial, rastX, rastY)
 endif
 temp = OnGuildCommand('#Script check')
 if temp > -1 then
  UO.SetJournalLine(temp, '*WORK DONE*')
  CheckMsg()
 else
  temp = OnGuildCommand('#Target: ')
  if temp > -1 then
   tempstr = UO.Journal(temp)
   UO.SetJournalLine(temp, '*WORK DONE*')
   serial = GuildCommandGetSerial(tempstr)
   rastX = abs(UO.GetX(serial)-UO.GetX())
   rastY = abs(UO.GetY(serial)-UO.GetY())
   if serial <> '0x00000000' then
    UO.SetGlobal('GuildLastTarget', serial)
    if (rastX <= 18) and (rastY <= 18) then
     UO.SetGlobal('GuildTargetOutOfRange', 'N/A')
     if UO.GetSerial('laststatus') <> serial then
      UO.Attack(serial)
      UO.PRINT('TARGET CHANGED TO '+UO.GetName(serial))
     endif
    else
     UO.SetGlobal('GuildTargetOutOfRange', 'TRUE')
    endif
   endif
  else
   if UO.GetGlobal('GuildTargetOutOfRange') == 'TRUE' then
    if (rastX <= 18) and (rastY <= 18) then
     UO.SetGlobal('GuildTargetOutOfRange', 'N/A')
     UO.Attack(serial)
     UO.PRINT('TARGET CHANGED TO '+UO.GetName(serial))
    endif
   else
    temp = OnGuildCommand('#Magic Arrow!')
    if temp > -1 then
     UO.SetJournalLine(temp, '*WORK DONE*')
     if tempserial <> 'N/A' then
      if (rastX <= 18) and (rastY <= 18) then
       UO.Attack(serial)
       UO.PRINT('Arrow in progress...')
       CastGuild_Target('Magic Arrow', serial, 4,  12)
      endif
     endif
    else
     temp = OnGuildCommand('#Flame Strike!')
     if temp > -1 then
      UO.SetJournalLine(temp, '*WORK DONE*')
      if tempserial <> 'N/A' then
       if (rastX <= 18) and (rastY <= 18) then
        if (rastX > 1) or (rastY > 1) then
         UO.Attack(serial)
         UO.PRINT('FS in progress...')
         if CastGuild_Target('Flame Strike', serial, 40, 28) == 7 then
          CastGuild_Target('Lightning', serial, 11,  20)
         endif
        endif
       endif
      endif
     else
      temp = OnGuildCommand('#Magic Reflection: ')
      if temp > -1 then
       tempstr = UO.Journal(temp)
       UO.SetJournalLine(temp, '*WORK DONE*')
       serial = GuildCommandGetSerial(tempstr)
       if (serial <> '0x00000000') and (serial <> UO.GetSerial('self')) then
        UO.PRINT('Reflection in progress...')
        CastGuild_Target('Magic Reflection', serial, 14,  28)
       endif
      endif
     endif
    endif
   endif
  endif
 endif
end sub

sub GuildCommands()
 if UO.GetGlobal('guild_commands') == 'TRUE' then
  UO.SetGlobal('guild_commands', 'N/A')
  UO.PRINT('GUILD COMMANDS REACTION OFF')
 else
  UO.SetGlobal('guild_commands', 'TRUE')
  UO.PRINT('GUILD COMMANDS REACTION ON')
  UO.DeleteJournal()
  VAR NickFloodTimer = 6
  while UO.GetGlobal('guild_commands') == 'TRUE'
   wait(200)
   NickFloodTimer = NickFloodTimer - 1
   GuildCommandsReaction()
   if NickFloodTimer == 0 then
    GuildTargetClickNick()
    NickFloodTimer = 6
   endif
  wend
 endif
end sub
Post Reply