Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

АвтоБаф по команде в чат

SARCAZM

Это что за покемон?
Команда форума
Рег
5 Июн 2015
Сообщения
1,446
Реакции
1
Trovo
SARCAZM
uses sysutils,classes;
begin
while Engine.Status = lsOnline do begin
if (ChatMessage.ChatType = ctParty) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty mtAll=белый
begin
if pos('pow',ChatMessage.Text)>0 then
begin
engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "pow"
engine.useskill(1355); // ID скилла
end;
end;
delay(2000);
end;
end.
Автор скрипта: Ivanius
 
Скрипт хороший и работает, но есть вопрос. Адреналин его выполняет 1 раз и завершает. Как сделать так, чтобы он всегда был активен?
 
Так он уже зациклен, за это отвечает

while Engine.Status = lsOnline do begin

,что означает: "Пока персонаж в игре, то проверяем новые сообщения в чате и, если есть новое, проверяем его на слово "pow" - ну и бафаем другого персонажа, если оно встретилось" .
Одно НО - проверяет он каждые 2 секунды, так как установлена задержка

delay(2000);

Все должно работать и не один раз. Никаких ошибок не вылетает? Просто выполнение скрипта останавливается прямо в адреналине?
 
SARCAZM написал(а):
uses sysutils,classes;
begin
while Engine.Status = lsOnline do begin
if (ChatMessage.ChatType = ctParty) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty mtAll=белый
begin
if pos('pow',ChatMessage.Text)>0 then
begin
engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "pow"
engine.useskill(1355); // ID скилла
end;
end;
delay(2000);
end;
end.
помогите новичку,тут показанно как настроить всего один баф,а как сделать чтобы не сколько бафов, например чтобы можно было написать ПП в пм пов она кинула пов, а если елем то кинула рез елемент
 
такой вопрос.Как настроить своё сообщение?Пытался изменить,но скрипт работает только при написании сообщения pow
 
@DKNY,

Сделай каждый баф отдельной процедурой и все

uses sysutils,classes;
procedure pow;
begin
while Engine.Status = lsOnline do begin
if (ChatMessage.ChatType = ctParty) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty mtAll=белый
begin
if pos('pow',ChatMessage.Text)>0 then
begin
engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "pow"
engine.useskill(1355); // ID скилла
end;
end;
delay(2000);
end;
end;

procedure nobl;
begin
while Engine.Status = lsOnline do begin
if (ChatMessage.ChatType = ctParty) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty mtAll=белый
begin
if pos('nobl',ChatMessage.Text)>0 then
begin
engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "nobl"
engine.useskill(1323); // ID скилла
end;
end;
delay(2000);
end;
end;

begin
script.newthread(@pow);
script.newthread(@nobl);
end.

а если поставить 'sum' и запускать на коне с использованием summon friend очень практично))
 
Со всем разобрался.Теперь ещё такой вопрос.Как сделать,чтоб при написании в ПМ,юзался скилл пета?
 
@Plegas, зачем делать 2 потока?)
Код:
uses sysutils,classes;
begin
   while Engine.Status = lsOnline do begin
      if (ChatMessage.ChatType = ctParty) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty  mtAll=белый
      begin

      if pos('pow',ChatMessage.Text)>0 then begin
      engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "pow"
      engine.useskill(12345); // ID скилла
      end;
      
      if pos('nubl',ChatMessage.Text)>0 then begin
      engine.SetTarget(ChatMessage.Sender); // Берет в таргет кто написал "nubl"
      engine.useskill(54321); // ID скилла 
      end;
 
      end;
    delay(2000);
   end;
end.
 
@PandaTrader, если прописать через юз скил ID скила пета? или UseKey на кнопку на которой распложен скил пета
 
@Agonia, В большом теле скрипта вызываю для разных целей и проверок, дернул по примеру, да в этом случае лучше в 1)))
 
@ane13, Скилы пета юзаются через Engine.UseAction(ИД действия у самона);
 
@PandaTrader, Что именно ты хочешь чтобы он делал? (баф кота/коня/пати пурифай?)
Код:
uses sysutils,classes;
begin
   while Engine.Status = lsOnline do begin
      if (ChatMessage.ChatType = mtPrivate) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty  mtAll=белый
      begin
      if (pos('otkat',ChatMessage.Text)>0) or (pos('конь',ChatMessage.Text)>0)  then  //если в пм написали otkat или конь дает баф коня
      begin
      engine.useaction(1011); // ID скилла даем откаты с коня
      end;
      end;
    delay(2000);
   end;
end.
 
@Plegas, ну,айдишники я знаю,но вот не знал как прописать команду для этого.Обычный юз скилл не работал)
 
хочу функцию добавить - если баф кончается - то чар пишет в пм баферу. подскажите как ркализовать? грубоговоря надо чтобы в пм сообщение отправлял в случае отмены бафа, или просто по делею бафа
 
@Johny, Я думаю нужна проверка на наличие этого бафа и если его нет, то отправлять сообщение в чат и баффер по команде бафнет.
 
хочу функцию добавить - если баф кончается - то чар пишет в пм баферу. подскажите как ркализовать? грубоговоря надо чтобы в пм сообщение отправлял в случае отмены бафа, или просто по делею бафа
Тема, делай, будем ждать!)))
 
Назад
Сверху