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 в нем.

Есть ли вариант более "надежный"?
Спасибо!
ну, если у вас на шарде нет каких-то особенных систем связи - то ничего нового придумать не выйдет.