Page 1 of 1
Убийство мобов | "передача" таргета .
Posted: 2014-12-10 08:26:31
by psixozz
Всем привет, ищу два скрипта - 1й. Килл мобо луком, тоесть удержанием дистанции, допустим бьет моба , тот полюбому идет на меня , надо отбежать на 8 клеток, но при этом может быть рядом другой моб) реально это? 2й. Один чар атачит, отдаем команду, другой чар делает атаку по таргету первого. P.S. Кто чем может помочь , кинуть ссылку на верный поиск , выложить прииблеженный скрипт , намекнуть

всем буду признателен

можно в личку если иные варианты:)
Re: Убийство мобов | "передача" таргета .
Posted: 2014-12-10 10:31:03
by Mirage
Реально все. Другое дело что иногда затраты времени на скрипт его размеры (и как следствие цена) на столько высоки что проще играть все таки самому а не заставлять скрипт делать все за игрока.
1) Чар будет отбегать - до каких пор? А если на дистанции будет камень или дерево или скала? Куда чару отбегать? Получается должен быть постоянный монитор тайлов вокруг на проходимость не проходимость. У тебя комп сгорит от такого расчета
2) атакуя считываешь ID персонажа кого атакуешь - кадаешь текст в гильдчат/групповой месаг, второй чар считывает текст сверяя либо цвет сообщения либо ID произнёсшего текст с шаблоном (чтобы выловить свой/чужой), текст переводишь в ID и делаешь атаку ID. Сам скрипт не сложный. Нужно всего лишь знать каким образом работает гильдчат/групповой чат на сервере.
Re: Убийство мобов | "передача" таргета .
Posted: 2014-12-10 10:58:34
by psixozz
Так 2й вариант . Суть - есть основной чар управляемый мной, к нему цепляем еще 1 или 2 , догон делаем за основным чаром - можно руками алт клик, дальше всех снабжаем луком , 1 чар атакует кричит команду на таргет - чат простой или через пати в клиенте ( 2.0.3 ) , возможен отход ( если моб будет близко , так как мы с луком ) - можно руками естественно, лут я делаю тоже основным чаром . Так я себе все представляю . Значит мне нужна передача таргета на мультов моих. Может у вас другие варианты?
Re: Убийство мобов | "передача" таргета .
Posted: 2014-12-10 11:01:50
by psixozz
Основной вопрос как и куда писать в отсутствие гильд чата ? Под него есть скрипт, в пати клиентский можно ли или в обычный чат ( над чаром )?
Re: Убийство мобов | "передача" таргета .
Posted: 2014-12-10 18:41:00
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