Page 1 of 1

Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 11:05
by afk
Собственно

Code: Select all

sub SS()
  var x = -1, y = -1, z = -1, value, msg = 'Сколько будет'
  While true
    If UO.InJournal(msg) then
      Wait(500)
      x = Compare()
      y = Compare()
      z = Compare()
      If x > -1 and y > -1 and z > -1 then
        DelJournal(msg)
        UO.Print(str(x) + ' + ' + str(y) + ' + ' + str(z) +  ' = ' + str(x + y + z))
        UO.Say(str(x + y + z))
       else
        UO.Print('Ошибка')
        UO.Print(str(x) + ' + ' + str(y) + ' + ' + str(z) +  ' = ' + str(x + y + z))
      Endif
     else
      Wait(100)
    Endif
  Wend
Endsub
         
Sub Compare()
  var a
  Dim Num[10]
    Num[0] = 'Нол'
    Num[1] = 'Оди'
    Num[2] = 'Дв'
    Num[3] = 'Тр'
    Num[4] = 'Четы'
    Num[5] = 'Пят'
    Num[6] = 'Шест'
    Num[7] = 'Сем'
    Num[8] = 'Восе'
    Num[9] = 'Девя'
  For a = 0 to 9
    If UO.InJournal(Num[a]) and UO.JournalSerial(UO.InJournal(Num[a]) - 1) == UO.GetSerial('self') then
      UO.SetJournalLine(UO.InJournal(Num[a]) - 1, '')
      Return a
     else
      Wait(10)
    Endif
  Next
  Return -1
Endsub

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 18:34
by nah nah
лол!! это я писал 100 лет назад

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 18:46
by afk
nah nah wrote:лол!! это я писал 100 лет назад
Именно, ZeroDX))

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 20:01
by nah nah
А на каком языке?

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 20:07
by afk
nah nah wrote:А на каком языке?
Не питон))) паскаля хватит за глаза)

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 20:17
by nah nah
afk wrote:
nah nah wrote:А на каком языке?
Не питон))) паскаля хватит за глаза)
попробую, паскаль я не очень

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 23.11.2017 21:21
by nah nah
Вот, что получилось:

Code: Select all

procedure Antimacro(Line : String);
var
    Num : array of String
    i, j, x : Integer;
    SL : TStringList;

begin
    Num := ['Нол', 'Оди', 'Дв', 'Тр', 'Четы',
            'Пят', 'Шест', 'Сем', 'Восе', 'Девя'];
    
    x := 0;
    SL := TStringList.Create;
    StrBreakApart(Line, ' ', SL);
    if SL.Count > 0 then for i := 0 to SL.Count do
        for j := 0 to 9 do
            if BMSearch(0, SL.Strings[i], Num[j]) >= 0 then
                begin
                x := x + j;
                break;
                end;
    SL.Free;
    UOSay(IntToStr(x))
end;
А вот не совсем рабочий пример, как это использовать

Code: Select all

const
    amMsg = 'Сколько будет';

procedure Копалка;
var
    time : TDateTime;
begin
    time := Now;
    Юзание кирки;
    Wait(100);
    if InJournalBetweenTimes(amMsg, time, Now) <> -1 then
        begin
        Antimacro(Journal(InJournal(amMsg))
        Юзание кирки
        end;
end;

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 24.11.2017 5:40
by afk
Благодарю, попробую все таки через эвент запустить.

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 24.11.2017 11:16
by nah nah
afk wrote:Благодарю, попробую все таки через эвент запустить.
Так даже лучше

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 24.11.2017 11:53
by nah nah
Переделал. В первый раз думал, что всё в одной строке журнала приходит. Вот

Code: Select all

const
    amMsg = 'Сколько будет';
    amDelay = 500;  // Время, необходимое для получения всех строк


procedure AntimacroCallback(Text, Name : String; ID : Cardinal);
var
    Num : array of String;
    i, j, x, LineIndex : Integer;
begin
    if BMSearch(0, Text, amMsg) = 0 then
        exit;
    Num := ['Нол', 'Оди', 'Дв', 'Тр', 'Четы',
            'Пят', 'Шест', 'Сем', 'Восе', 'Девя'];
    x := 0;
    Wait(amDelay);
    LineIndex := InJournal(amMsg);
    for i := 0 to 2 do 
        for j := 0 to 9 do
            if BMSearch(0, Journal(LineIndex + i), Num[j]) > 0 then
                begin
                x := x + j;
                break;
                end;
    UOSay(IntToStr(x));
end;

Code: Select all

SetEventProc(evSpeech, 'AntimacroCallback');

Re: Нужна помощь в переделке скрипта инжекта на стелс

Posted: 24.11.2017 16:13
by afk
поменял

Code: Select all

UOSay(IntToStr(x));
на

Code: Select all

ConsoleEntryReply(IntToStr(x)); 
И все заработало. Огромное мерси