Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
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;
Аватара пользователя
Алексей Пикуров
Что-то вы накрутили :)

Код: Выделить всё
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.
Аватара пользователя
Алексей Пикуров
Отделил ваше сообщение в отдельную тему.
Аватара пользователя
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
Аватара пользователя
Алексей Пикуров
Нет, у вас просто ошибки в скрипте из-за невнимательности и функции mGetLastPrivateMessage больше не существует.
Duplicate identifier

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

Что конкретно вы хотите сделать?
Аватара пользователя
Beskid
я взял с форума Ваш скрипт. мне нужно, чтобы два пользователя взаимно обменивались всеми приватными входящими сообщениями
iUIN1 = 84;
iUIN2 = 93;
Аватара пользователя
Алексей Пикуров
обменивались всеми приватными входящими сообщениями

Как это?

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

Код: Выделить всё
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.


Все сообщения-дубликаты будут приходить от имени встроенного робота.
Аватара пользователя
Beskid
Спасибо, от имени робота наверное даже лучше, чем в оригинале - там от имени исходного отправителя было...

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

С Уважением,

Юрий Цветков