Page 1 of 1
Stealth PVP
Posted: 21.05.2014 15:40
by afibur
Добрый день!
Есть следующие процедурки для вызова из DLL:
Code: Select all
program support;
procedure miniheal;
begin
if IsPoisoned (self) then
begin
cast ('Cure');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
end;
end
else
begin
cast ('Heal');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
end;
end;
end;
begin
end.
В полевых условиях, хоткеи с этими длл будут "зажиматься".
На практике они будут накладываться один на другой, и сбивать друг друга.
Кто знает, как это возможно исправить?
Может быть есть наработки для пвп?
Спасибо!
Re: Stealth PVP
Posted: 21.05.2014 18:03
by Az_Rieil
По журналу. Когда запускаешь скрипт, пиши в чат .XXX . Именно с точкой чтобы воспринимало как команду и не выводило в чат. Все тело программы возьми в
Code: Select all
if inJournal('.XXX') <> -1 then
begin
blablabla
end;
В конце скрипта поставь clearJournal.
Re: Stealth PVP
Posted: 21.05.2014 19:16
by Vizit0r
afibur wrote:Добрый день!
Есть следующие процедурки для вызова из DLL:
Code: Select all
program support;
procedure miniheal;
begin
if IsPoisoned (self) then
begin
cast ('Cure');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
end;
end
else
begin
cast ('Heal');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
end;
end;
end;
begin
end.
В полевых условиях, хоткеи с этими длл будут "зажиматься".
На практике они будут накладываться один на другой, и сбивать друг друга.
Кто знает, как это возможно исправить?
Может быть есть наработки для пвп?
Спасибо!
используй примитивный семафор - переменную.
Зашел в процедуру, если она False - то ставишь в True и выполняешь до конца, в конце обратно в False
При этом повторный заход будет крутиться в цикле пока семафор не станет False.
Примитивно и действенно.
Re: Stealth PVP
Posted: 21.05.2014 19:20
by Az_Rieil
Каким образом это на практике? Переменная создается локально для одного скрипта, бинд вызывает за каждое нажатие отдельный скрипт.
Re: Stealth PVP
Posted: 21.05.2014 20:06
by Vizit0r
Az_Rieil wrote:бинд вызывает за каждое нажатие отдельный скрипт.
да ну?

Re: Stealth PVP
Posted: 23.05.2014 10:49
by afibur
Code: Select all
Program CharMacro;
procedure miniheal;
var IsCasting:Boolean;
begin
if not IsCasting then begin
IsCasting:=True;
if IsPoisoned (self) then
begin
cast ('Cure');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
IsCasting:=False;
end;
end
else
begin
cast ('Heal');
WaitForTarget(500);
if targetpresent then
begin
TargetToObject(self);
IsCasting:=False;
end;
end;
end;
end;
begin
end.
Как то так работает

Re: Stealth PVP
Posted: 23.05.2014 10:56
by afibur
Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.
Есть ли вариант более "надежный"?
Спасибо!
Re: Stealth PVP
Posted: 23.05.2014 23:52
by drabadan
afibur wrote:Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.
Есть ли вариант более "надежный"?
Спасибо!
согильдийцы тоже используют стелс?
Re: Stealth PVP
Posted: 24.05.2014 2:16
by afibur
Конечно

Re: Stealth PVP
Posted: 24.05.2014 4:12
by Vizit0r
afibur wrote:Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.
Есть ли вариант более "надежный"?
Спасибо!
ну, если у вас на шарде нет каких-то особенных систем связи - то ничего нового придумать не выйдет.