"Если вдруг открылся люк, не пугайся, это глюк!" (с) Если что-то работает не так, вы нашли ошибку или опечатку в программе — вам в этот раздел
СергейВБР
Скрипт все проверки проходит и в основном всегда выпоняется без ошибок, но иногда вылазит ошибка: function OnPrivateMessage has invalid list of parameters
и скрипт снимается с выполнения...
Что там не так?
Код: Выделить всё
function OnPrivateMessage(iCID, iUINFrom, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
  sMessage, s, sResultGet: string;
  iBalance, y, x: integer;
  bFlag: boolean;
begin
  // получаем последнее сказанное приватное сообщение
    bFlag := true;
    if iUINTo=0 then begin // если получатель - Elisa (UIN=0)
      // смотрим, сколько в текстовом файле строк
      x := pos('rs', sMsg);
      if (x>0) then begin   
          //Металлургов
          sResultGet := mHTTPSendGetMessage('https://my.rs.net.ua/sms_login.html?rs_login=***&rs_password=***', 'Content-Type:application/x-www-form-urlencoded', 1000);
          x := pos('<span>На вашому', sResultGet);
          y := pos('грн </b></span>', sResultGet);
          //mLogScript(sResultGet, 'sResultGet');
          s := copy(sResultGet, x+6, y-x-3);
          x := pos('<b>', s);
          iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6))); //Баланс в цифре
          //mLogScript(copy(s, x+3, length(s)-x-6), '');
          s := ReplaceString(s, '<b>', '', true, false);
         sMessage := 'Привет! ' + CRLF + 'Радиосистемы на Металлургов: ' + s;
         
         //Ахтырская
         sResultGet := mHTTPSendGetMessage('https://my.rs.net.ua/sms_login.html?rs_login=***&rs_password=****', 'Content-Type:application/x-www-form-urlencoded', 1000);
          x := pos('<span>На вашому', sResultGet);
          y := pos('грн </b></span>', sResultGet);
          s := copy(sResultGet, x+6, y-x-3);
          x := pos('<b>', s);
          iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6))); //Баланс в цифре
          s := ReplaceString(s, '<b>', '', true, false);

         mSendPrivateMessage(iUINTo, iUINFrom, sMessage + CRLF + 'Радиосистемы на Ахтырской: ' + s, 1, false);
 
         bFlag := false;
      end;
    end;
    result := bFlag;
end;

begin

end.


В коде в целях безопасности пароли запикал "***"
Вложения
screenshot 2018-02-19 %c.png
screenshot 2018-02-19 %c.png (13.76 КБ) Просмотров: 648
Аватара пользователя
Алексей Пикуров
Здравствуйте.

С виду всё Ок.

Сравните первую строку в ваших скриптах:

Код: Выделить всё
function OnPrivateMessage(iCID, iUINFrom, iUINTo, iMsgType: integer; sMsg: string): boolean;

Стандартный шаблон события.

Ваш заголовок немного отличается от него.
СергейВБР
Не знаю с чем связано, с обновлением сервера иль с тем что немного скрипт подредактировал
В данно виде скрипт вообще перестал запускаться.
Выдает function OnPrivateMessage has invalid list of parameters
куда копать - не знаю.

Код: Выделить всё
// ---------------------------------------
// Script created by СергейАхт (UIN 1)
// 05.02.2018 23:10:25
// ---------------------------------------

function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
  sMessage, s, sResultGet: string;
  iBalance, y, x: integer;
  bFlag: boolean;
begin
  // получаем последнее сказанное приватное сообщение
    bFlag := true;
    if iUINTo=0 then begin // если получатель - Elisa (UIN=0)
      // смотрим, сколько в текстовом файле строк
      x := pos('rs', sMsg);
      if (x>0) then begin   
          //Металлургов
          sResultGet := mHTTPSendGetMessage('https://my.rs.net.ua/sms_login.html?rs_login=***&rs_password=***', 'Content-Type:application/x-www-form-urlencoded', 1000);
          x := pos('<span>На вашому', sResultGet);
          y := pos('грн </b></span>', sResultGet);
          //mLogScript(sResultGet, 'sResultGet');
          s := copy(sResultGet, x+6, y-x-3);
          x := pos('<b>', s);
          iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6))); //Баланс в цифре
          //mLogScript(copy(s, x+3, length(s)-x-6), '');
          s := ReplaceString(s, '<b>', '', true, false);
          //mLogScript(s, '');
          //mLogScript(inttostr(iBalance), 'iBalance');
          //if (iBalance < 10) then begin
                //mSendConfMessage(1, 0, 'Всем привет! ' + CRLF + 'Стесняюсь Вас побеспокоить, НО ' + CRLF + 'интернет на металлургов не мешало бы пополнить! ' + CRLF + s, 1);
          //end;
         sMessage := 'Привет! ' + CRLF + 'Радиосистемы на Металлургов: ' + s;
         
         //Ахтырская
         sResultGet := mHTTPSendGetMessage('https://my.rs.net.ua/sms_login.html?rs_login=***&rs_password=***', 'Content-Type:application/x-www-form-urlencoded', 1000);
          x := pos('На вашому', sResultGet);
          y := pos('грн </b></span>', sResultGet);
          //mLogScript(sResultGet, 'sResultGet');
          s := copy(sResultGet, x, y-x-9);
          x := pos('<b>', s);
          iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6))); //Баланс в цифре
          //mLogScript(copy(s, x+3, length(s)-x-6), '');
          s := ReplaceString(s, '<b>', '', true, false);
          //mLogScript(s, '');
          //mLogScript(inttostr(iBalance), 'iBalance');
          //if (iBalance < 10) then begin
                //mSendConfMessage(1, 0, 'Всем привет! ' + CRLF + 'Стесняюсь Вас побеспокоить, НО ' + CRLF + 'интернет на металлургов не мешало бы пополнить! ' + CRLF + s, 1);
          //end;
         mSendPrivateMessage(iUINTo, iUIN, sMessage + CRLF + 'Радиосистемы на Ахтырской: ' + s, 1, false);
 
         bFlag := false;
      end;
    end;
    result := bFlag;
end;

begin

end.
Аватара пользователя
Алексей Пикуров
Сергей, я проверил только что на версии 6.7 — всё Oк, ошибок нет.
СергейВБР
У меня таже версия, и я не могу выполнить этот скрипт.
+ в процессе экспериментов - заметил что строка
iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6)));
крашит скрипт без ошибок - в том слочае если результат выполнения copy(s, x+3, length(s)-x-6) - не будет числовым
Код: Выделить всё
// ---------------------------------------
// Script created by СергейАхт (UIN 1)
// 12.02.2018 7:32:20
// ---------------------------------------
var
  sMessage, s, sResultGet, sResultPost, sJSON: string;
  iBalance, y, x: integer;
 
begin
 //Ахтырская
  sResultGet := mHTTPSendGetMessage('http://rs.net.ua/ua/', '', 1000);
  x := pos('<title>', sResultGet);
  y := pos('</title>', sResultGet);
  //mLogScript(sResultGet, 'sResultGet');
  s := copy(sResultGet, x+7, y-x-7);
  x := pos('<b>', s);
  mLogScript(s, '1 сообщение');
  iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6))); //Баланс в цифре
  mLogScript(s, '2 сообщение');
  s := ReplaceString(s, '<b>', '', true, false);
  //mLogScript(s, '');
  //mLogScript(inttostr(iBalance), 'iBalance');
  if (iBalance < 10) then begin
      sMessage := sMessage + 'Пакет на Ахтырской: ' + s;
        //mSendConfMessage(1, 0, 'Всем привет! ' + CRLF + 'Стесняюсь Вас побеспокоить, НО ' + CRLF + 'интернет на металлургов не мешало бы пополнить! ' + CRLF + s, 1);
  end;
 
  if (length(sMessage) > 0) then begin
      //mSendConfMessage(1, 0, 'Всем привет! ' + CRLF + 'Стесняюсь Вас побеспокоить, НО интернет не мешало бы пополнить! ' + CRLF + sMessage, 1);
        mLogScript('Всем привет! ' + CRLF + 'Стесняюсь Вас побеспокоить, НО интернет не мешало бы пополнить! ' + CRLF + sMessage, 'iBalance');
  end;
 
end.
Вложения
Ошибка.png
Ошибка.png (73.29 КБ) Просмотров: 602
Аватара пользователя
Алексей Пикуров
Насчёт "iBalance := trunc(StrToFloat(copy(s, x+3, length(s)-x-6)));" я посмотрю, спасибо за замечание.
У меня таже версия, и я не могу выполнить этот скрипт.

Позвоните мне чатом, покажете удалённо через AnyDesk.
Аватара пользователя
Алексей Пикуров
Исправлено. Спасибо за сотрудничество.
Аватара пользователя
Алексей Пикуров
Сервер перезалит, можно обновить.