Автокик нужна помощь

Ответить
qwerty228
Сообщения: 2
Зарегистрирован: 08 сен 2022, 23:57

Автокик нужна помощь

Сообщение qwerty228 » 09 сен 2022, 00:01

Привет всем , можно сделать как-то что бы кик был не в 0.1????? покажите примеры я просто вроде делаю но не получается

noname123
Сообщения: 115
Зарегистрирован: 19 мар 2020, 09:15

Re: Автокик нужна помощь

Сообщение noname123 » 09 сен 2022, 20:03

Привет

Просто нужно выставить промежуток времени для кика (на скрине от 0 до 0.9 включительно). Это самый простой вариант.
Изображение

В идеале на кик лучше поставить рандомное значение чтобы кикать всегда в разное время и не палиться (рандомное число от 0.2 до 0.9)
Изображение

Вот с канальным заклинанием придётся немного подшаманить. Нам понадобится пользовательский код который заменит определение оставшегося времени каста, на время от начала каста (чтобы не кикать в 0.1).

Код: Выделить всё

function CheckTypeCast(Unit)
local spell, _, _, _, _, _, _, _, interrupt = UnitCastingInfo(Unit)
if spell then
   if interrupt == false then
      return 1
   end
   if interrupt == true then
      return 2
   end
end
local spell, _, _, _, _, _, _, interrupt = UnitChannelInfo(Unit)
if spell then
   if interrupt == false then
      return 1
   end
   if interrupt == true then
      return 2
   end
end
return 0
end


local function CalcChannelingStart(startTime)
    return GetTime()-startTime/1000;
end

function MyCastRemain(unit, CastType, checkspell, Interruptible)
    local spell1, endTime1, notInterruptible1, spell2, startTime2, endTime2, notInterruptible2;

    if version8 then
        spell1, _, _, _, endTime1, _, _, notInterruptible1, _ = UnitCastingInfo(unit)
        spell2, _, _, startTime2, endTime2, _, notInterruptible2, _ = UnitChannelInfo(unit)
    else
        spell1, _, _, _, _, endTime1, _, _, notInterruptible1, _ = UnitCastingInfo(unit)
        spell2, _, _, _, startTime2, endTime2, _, notInterruptible2, _ = UnitChannelInfo(unit)
    end;
    
    if (notInterruptible1 and Interruptible) then return 0; end
    if (notInterruptible2 and Interruptible) then return 0; end

    if spell1 and (CastType == 0 or CastType == 2) and (checkspell == nil or string.upper(checkspell) == string.upper(spell1)) then return CalcCastingFinish(endTime1); end
    if spell2 and (CastType == 1 or CastType == 2) and (checkspell == nil or string.upper(checkspell) == string.upper(spell2)) then return CalcChannelingStart(startTime2); end

    return 0;
end
Вставляешь этот код в поле внизу в проге и можешь делать блок на канальное заклинание по аналогии с обычным.
Кик канального заклинания начиная с промежутка 0.6-0.9 (случайное число) от начала каста.
Изображение

qwerty228
Сообщения: 2
Зарегистрирован: 08 сен 2022, 23:57

Re: Автокик нужна помощь

Сообщение qwerty228 » 09 сен 2022, 23:59

Спасибо получилось )))

5856751
Сообщения: 44
Зарегистрирован: 23 мар 2017, 22:43

Re: Автокик нужна помощь

Сообщение 5856751 » 23 сен 2022, 23:12

noname123 писал(а):
09 сен 2022, 20:03
Привет

Просто нужно выставить промежуток времени для кика (на скрине от 0 до 0.9 включительно). Это самый простой вариант.
Изображение

В идеале на кик лучше поставить рандомное значение чтобы кикать всегда в разное время и не палиться (рандомное число от 0.2 до 0.9)
Изображение

Вот с канальным заклинанием придётся немного подшаманить. Нам понадобится пользовательский код который заменит определение оставшегося времени каста, на время от начала каста (чтобы не кикать в 0.1).

Код: Выделить всё

function CheckTypeCast(Unit)
local spell, _, _, _, _, _, _, _, interrupt = UnitCastingInfo(Unit)
if spell then
   if interrupt == false then
      return 1
   end
   if interrupt == true then
      return 2
   end
end
local spell, _, _, _, _, _, _, interrupt = UnitChannelInfo(Unit)
if spell then
   if interrupt == false then
      return 1
   end
   if interrupt == true then
      return 2
   end
end
return 0
end


local function CalcChannelingStart(startTime)
    return GetTime()-startTime/1000;
end

function MyCastRemain(unit, CastType, checkspell, Interruptible)
    local spell1, endTime1, notInterruptible1, spell2, startTime2, endTime2, notInterruptible2;

    if version8 then
        spell1, _, _, _, endTime1, _, _, notInterruptible1, _ = UnitCastingInfo(unit)
        spell2, _, _, startTime2, endTime2, _, notInterruptible2, _ = UnitChannelInfo(unit)
    else
        spell1, _, _, _, _, endTime1, _, _, notInterruptible1, _ = UnitCastingInfo(unit)
        spell2, _, _, _, startTime2, endTime2, _, notInterruptible2, _ = UnitChannelInfo(unit)
    end;
    
    if (notInterruptible1 and Interruptible) then return 0; end
    if (notInterruptible2 and Interruptible) then return 0; end

    if spell1 and (CastType == 0 or CastType == 2) and (checkspell == nil or string.upper(checkspell) == string.upper(spell1)) then return CalcCastingFinish(endTime1); end
    if spell2 and (CastType == 1 or CastType == 2) and (checkspell == nil or string.upper(checkspell) == string.upper(spell2)) then return CalcChannelingStart(startTime2); end

    return 0;
end
Вставляешь этот код в поле внизу в проге и можешь делать блок на канальное заклинание по аналогии с обычным.
Кик канального заклинания начиная с промежутка 0.6-0.9 (случайное число) от начала каста.
Изображение
А можете поправить для классик версии. Не работает на препатче вотлк классик

Reqqque
Сообщения: 214
Зарегистрирован: 01 дек 2018, 20:28

Re: Автокик нужна помощь

Сообщение Reqqque » 24 сен 2022, 00:51

5856751 писал(а):
23 сен 2022, 23:12
А можете поправить для классик версии. Не работает на препатче вотлк классик
Для потоковых

Код: Выделить всё

function ChannelInfo(unit, checkspell)
	local spell, _, _, startTime = UnitChannelInfo(unit)
	if spell and (checkspell == nil or string.upper(checkspell) == string.upper(spell)) then 
		return GetTime() - startTime/1000
	end
	return 0
end
Пример использования
cc.png
cc.png (4.47 КБ) 10379 просмотров
Для обычных кастов работают дефолтные проверки

5856751
Сообщения: 44
Зарегистрирован: 23 мар 2017, 22:43

Re: Автокик нужна помощь

Сообщение 5856751 » 25 сен 2022, 20:11

Reqqque писал(а):
24 сен 2022, 00:51
5856751 писал(а):
23 сен 2022, 23:12
А можете поправить для классик версии. Не работает на препатче вотлк классик
Для потоковых

Код: Выделить всё

function ChannelInfo(unit, checkspell)
	local spell, _, _, startTime = UnitChannelInfo(unit)
	if spell and (checkspell == nil or string.upper(checkspell) == string.upper(spell)) then 
		return GetTime() - startTime/1000
	end
	return 0
end
Пример использования
cc.png
Для обычных кастов работают дефолтные проверки
спасибо а еще проверку на интеррапт можно накрутить сверху?

Reqqque
Сообщения: 214
Зарегистрирован: 01 дек 2018, 20:28

Re: Автокик нужна помощь

Сообщение Reqqque » 25 сен 2022, 20:32

5856751 писал(а):
25 сен 2022, 20:11
спасибо а еще проверку на интеррапт можно накрутить сверху?

Код: Выделить всё

function ChannelInfo(unit, checkspell, interruptible)
    local spell, _, _, startTime, _, _, notInterruptible = UnitChannelInfo(unit)
    if notInterruptible == interruptible then return 0 end
    if spell and (checkspell == nil or string.upper(checkspell) == string.upper(spell)) then return GetTime() - startTime/1000 end
    return 0
end

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость