Страница 1 из 1

Скрипт для дублирования сообщений не компилируется, подскажите, где ошибка

СообщениеДобавлено: Ср июн 19, 2019 3:19 pm
Beskid
добрый день
подскажите, что не так в скрипте?
на const спотыкается
спасибо!

Код: Выделить всё
function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
begin
  const
  iUIN1 = 84;
  iUIN2 = 93;
var
  iUINFrom, iUINTo: integer;
  sMsg: string;
begin
  sMsg := mGetLastPrivateMessage(iUINFrom, iUINTo);
 
    if iUINTo = iUIN1 then mSendPrivateMessage(iUINFrom, iUIN2, sMsg)
      else if iUINTo = iUIN2 then mSendPrivateMessage(iUINFrom, iUIN1, sMsg);
end.

  result := true;
end;

Re: Дублирование сообщений на разные устройства

СообщениеДобавлено: Ср июн 19, 2019 3:45 pm
Алексей Пикуров
Что-то вы накрутили :)

Код: Выделить всё
const
  iUIN1 = 84;
  iUIN2 = 93;

function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
  iUINFrom, iUINTo: integer;
  sMsg: string;
begin
  sMsg := mGetLastPrivateMessage(iUINFrom, iUINTo);
 
    if iUINTo = iUIN1 then mSendPrivateMessage(iUINFrom, iUIN2, sMsg)
      else if iUINTo = iUIN2 then mSendPrivateMessage(iUINFrom, iUIN1, sMsg);

  result := true;
end;

begin

end.

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Ср июн 19, 2019 3:50 pm
Алексей Пикуров
Отделил ваше сообщение в отдельную тему.

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 11:45 am
Beskid
Спасибо за помощь. Не компилируется -
[11:40:49] (Error "copy"): [Error] (13:13): Duplicate identifier 'iUINTo'
[11:43:27] (Error "copy"): [Error] (14:3): Duplicate identifier 'sMsg'
[11:43:47] (Error "copy"): [Error] (16:11): Unknown identifier 'mGetLastPrivateMessage'

может быть версия сервера у меня не та? 7.3.0

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 11:47 am
Алексей Пикуров
Нет, у вас просто ошибки в скрипте из-за невнимательности и функции mGetLastPrivateMessage больше не существует.
Duplicate identifier

Два раза описана переменная с одинаковым названием.

Что конкретно вы хотите сделать?

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 12:02 pm
Beskid
я взял с форума Ваш скрипт. мне нужно, чтобы два пользователя взаимно обменивались всеми приватными входящими сообщениями
iUIN1 = 84;
iUIN2 = 93;

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 12:06 pm
Алексей Пикуров
обменивались всеми приватными входящими сообщениями

Как это?

Допустим, для UIN 84 приходит сообщение от Elisa (UIN 0). Он должен дубликат отправить для UIN 93 от своего имени?

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 1:09 pm
Алексей Пикуров
Держите, как вариант:

Код: Выделить всё
const
  iUIN1 = 84;
  iUIN2 = 93;
 
function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
  sNickFrom, sNickTo: string;
  iUINCopy: integer;
begin
  if (iUINTo = iUIN1) and (iUIN <> iUIN2) then iUINCopy := iUIN2 else
  if (iUINTo = iUIN2) and (iUIN <> iUIN1) then iUINCopy := iUIN1 else iUINCopy := -1;
 
  if iUINCopy <> -1 then begin
    sNickFrom := mGetUserAttribute(iUIN, 'DisplayName');
    sNickTo := mGetUserAttribute(iUINTo, 'DisplayName');
   
    mSendPrivateMessage(0, iUINCopy, 'Message from ' + sNickFrom + ' —> ' + sNickTo, 1, true);
    mSendPrivateMessage(0, iUINCopy, sMsg, iMsgType, true);
  end; 

  result := true;
end;

begin

end.


Все сообщения-дубликаты будут приходить от имени встроенного робота.

Re: Скрипт не компилируется, подскажите, где ошибка

СообщениеДобавлено: Чт июн 20, 2019 1:23 pm
Beskid
Спасибо, от имени робота наверное даже лучше, чем в оригинале - там от имени исходного отправителя было...

Хорошего дня!

С Уважением,

Юрий Цветков