Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Stealth PVP

тут можно задать вопрос по скриптингу
Post Reply
afibur
Neophyte
Neophyte
Posts: 16
Joined: 17.02.2014 17:29

Stealth PVP

Post 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.
В полевых условиях, хоткеи с этими длл будут "зажиматься".
На практике они будут накладываться один на другой, и сбивать друг друга.
Кто знает, как это возможно исправить?
Может быть есть наработки для пвп?
Спасибо!
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

Re: Stealth PVP

Post by Az_Rieil »

По журналу. Когда запускаешь скрипт, пиши в чат .XXX . Именно с точкой чтобы воспринимало как команду и не выводило в чат. Все тело программы возьми в

Code: Select all

if inJournal('.XXX') <> -1 then
begin
blablabla
end;
В конце скрипта поставь clearJournal.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth PVP

Post 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.
Примитивно и действенно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

Re: Stealth PVP

Post by Az_Rieil »

Каким образом это на практике? Переменная создается локально для одного скрипта, бинд вызывает за каждое нажатие отдельный скрипт.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth PVP

Post by Vizit0r »

Az_Rieil wrote:бинд вызывает за каждое нажатие отдельный скрипт.
да ну? :)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
afibur
Neophyte
Neophyte
Posts: 16
Joined: 17.02.2014 17:29

Re: Stealth PVP

Post 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.
Как то так работает :)
afibur
Neophyte
Neophyte
Posts: 16
Joined: 17.02.2014 17:29

Re: Stealth PVP

Post by afibur »

Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.

Есть ли вариант более "надежный"?
Спасибо!
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Stealth PVP

Post by drabadan »

afibur wrote:Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.

Есть ли вариант более "надежный"?
Спасибо!
согильдийцы тоже используют стелс?
afibur
Neophyte
Neophyte
Posts: 16
Joined: 17.02.2014 17:29

Re: Stealth PVP

Post by afibur »

Конечно :)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth PVP

Post by Vizit0r »

afibur wrote:Вопрос №2
суть: для эффективного пвп, необходимо всем бить одного.
задача: передать айдишник пати/гильде.
мой вариант решения: передавать через чат ID жертвы, остальные согильдейцы вылавливают это сообщение и ID в нем.

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