Page 1 of 1

Анти ПК

Posted: 18.04.2012 13:09
by Opossym
Здравствуйте.
Если кто сможет помогите.Нужен скрипт для детекта ПК.

В инжекте смог его осилить сам.Но инжект, мерзавец, нагружает мой хиленький комп, а мне нужно много таких детекторов.Помохите мне братья и сестры аминь :)
Вот мое творчество :

Code: Select all

sub main()
on()
filterspeechcler()
UO.DeleteJournal()
While UO.asmGetFlag('twi')=='UNCHECKED'
    UO.asmClickFlag('twi')
  Wend
  uo.resend ()

var  jor, ser, noto
UO.DeleteJournal()
\[b]Собственно конвертируем отсель[/b]
while 1

    for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto<>0 and noto<>1 and noto<>3 OR uo.injournal("Man|Woman")  then
uo.click(ser)
CheckLag()

      if not uo.injournal ("Harpy|Gargoyle|Imp|Fire Efreet|Hellcat|Molech|Stone Gargoyle|Fire Elemental|Elder Gazer|Lava Serpent|Hell Hound") then
uo.msg('\w Derik valim')
\[b]И до сель[/b]
uo.TextOpen()
uo.TextPrint(uo.getname(ser)+' '+(UO.asmGetTime("'Ïðîáåæàë â 'h:n")))
UO.DeleteJournal()
wait(10000)
if uo.waiting() then
uo.canceltarget()
endif
else
UO.DeleteJournal()
wait(1)
 endif
 else
   wait(1)
endif
next
wend
end sub
sub on()
   uo.Set('quiet', 0)
Endsub

sub filterspeechcler()
uo.filterspeech('clear')
endsub


Sub CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
   return
end sub

#####################################################################
Sub DeleteJournal( string1 )
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub

Re: Анти ПК

Posted: 18.04.2012 17:45
by nepopus

Code: Select all

function checkpk: boolean;

  var
    i: integer;
    q: integer;

  begin
    for q := 0 to high(pkType) do
      for i := 3 to 6 do

       if findnotoriety(pkType[q], i) > 0 then begin
         result := true;
         addtosystemjournal('Пришел плохой дядя - ' + getname(finditem));
         exit;
       end;
  end;

Re: Анти ПК

Posted: 18.04.2012 17:47
by Opossym
Сейчас затэстим,если заработает я тебя поцелую :mrgreen:

Re: Анти ПК

Posted: 18.04.2012 17:50
by nepopus
Opossym wrote:Сейчас затэстим,если заработает я тебя поцелую :mrgreen:
pkType - массив типов.

Code: Select all

var
  pkType: array of word;

Code: Select all

  setlength(pkType, 3);
  pkType[0] := $0190; // Мужик.
  pkType[1] := $0191; // Женщина.
  pkType[2] := $0009; // Демон.
не забудь указать finddistance.

Re: Анти ПК

Posted: 19.04.2012 9:44
by Opossym
9:47:29 [Drw]: Compiler: [Error] (pkchek.sc at 8:18): Identifier expected
9:47:29 [Drw]: Compiler: [Error] (pkchek.sc at 8:18): Unknown identifier ''
В чем я ошибаюсь подскажите пожалуйста.

Code: Select all

program AntiPk; 
function checkpk: boolean;

  var
    i: integer;
    q: integer;
    var
  pkType:array of[0..2]Of Word;
        begin
  setlength(pkType, 2);
  pkType[0] := $0190; // Мужик.
  pkType[1] := $0191; // Женщина.
  pkType[2] := $0009; // Демон.
  FindDistance := 6.
      for q := 0 to high(pkType) do
      for i := 3 to 6 do

       if findnotoriety(pkType[q], i) > 0 then begin
         result := true;
         addtosystemjournal('Пришел плохой дядя - ' + getname(finditem));
         exit;
       end;
  end;
  End. 

Re: Анти ПК

Posted: 19.04.2012 10:16
by Vizit0r
а ты 8 строку смотрел?

Code: Select all

  pkType:array of[0..2]Of Word;
2 раза of

Code: Select all

  pkType:array [0..2]Of Word;

Re: Анти ПК

Posted: 19.04.2012 10:23
by nepopus
Поменьше вставляй лишнего.
pkType:array of[0..2]Of Word;
Зачем ставишь размер, если прописываешь setlength?
setlength(pkType, 2);
pkType[0] := $0190; // Мужик.
pkType[1] := $0191; // Женщина.
pkType[2] := $0009; // Демон.
Размерность необходимо указывать на 1 больше. Т.е. в этом случае setlength(pkType, 3);

Попробуй без нововведений : ) Я тебе дал полностью рабочий скрипт с рабочими примерами.

P.S. если хочешь активно реагировать на ПК, то ставь дистанцию ~25.

Re: Анти ПК

Posted: 19.04.2012 11:05
by Opossym
Я пробовал ничего не менять
Тогда эрор в 9 строке
Compiler: [Error] (pkchek.sc at 9:12): colon (':') expected
Заранее извиняюсь за глупые вопросы но я в паскале ноль.

Code: Select all

program AntiPk; 
function checkpk: boolean;

  var
    i: integer;
    q: integer;
    var
  pkType: array of word;
  setlength(pkType, 3);
  pkType[0] := $0190; // Ìóæèê.
  pkType[1] := $0191; // Æåíùèíà.
  pkType[2] := $0009; // Äåìîí.
  FindDistance := 25.
        begin
          for q := 0 to high(pkType) do
      for i := 3 to 6 do

       if findnotoriety(pkType[q], i) > 0 then begin
         result := true;
         addtosystemjournal('Ïðèøåë ïëîõîé äÿäÿ - ' + getname(finditem));
         exit;
       end;
  end;
  End. 

Re: Анти ПК

Posted: 19.04.2012 11:07
by CFA
лучше сделать так

Code: Select all

pkType := [$0190, $0191, $0009];
Короче, и не надо следить чтоб длинна массива и количество элементов совпадали.

Re: Анти ПК

Posted: 19.04.2012 11:14
by Opossym
Сделал так

Code: Select all

Program AntiPk; 
function checkpk: boolean;
    var
    i: integer;
    q: integer;
    var
  pkType: array of word;
  begin
  Finddistance:=25; 
  setlength(pkType, 3);
  pkType[0] := $0190; // Ìóæèê.
  pkType[1] := $0191; // Æåíùèíà.
  pkType[2] := $0009; // Äåìîí.
          for q := 0 to high(pkType) do
      for i := 3 to 6 do
      if findnotoriety(pkType[q], i) > 0 then begin
         result := true;
         addtosystemjournal('Ïðèøåë ïëîõîé äÿäÿ - ' + getname(finditem));
         exit;
       end;
  end;
    END.
ругается на
: Compiler: [Error] (pkchek.sc at 22:5): 'BEGIN' expected
тобишь 22 строку.
Я где то не закрыл скобку?

Re: Анти ПК

Posted: 19.04.2012 11:57
by nepopus
работа с переменными ведется в теле скрипта.
почему у тебя 2 var

П.С. умоляю. ты видел как я форматировал строки? Было удобно? Ничего сложного в этом нет : )

Re: Анти ПК

Posted: 19.04.2012 12:15
by Opossym
Надеюсь ты не знаешь где я живу :D
Лишний вар потер все равно не спасает

Re: Анти ПК

Posted: 19.04.2012 14:26
by nepopus
Opossym wrote:Надеюсь ты не знаешь где я живу :D
Лишний вар потер все равно не спасает

Code: Select all

Program AntiPk;

var
  pkType: array of word;

function checkpk: boolean;

  var
    i: integer;
    q: integer;

  begin
    for q := 0 to high(pkType) do
      for i := 3 to 6 do

       if findnotoriety(pkType[q], i) > 0 then begin
         result := true;
         addtosystemjournal('Пришел плохой дядя - ' + getname(finditem));
         exit;
       end;
  end;

begin
  setlength(pkType, 3);
  pkType[0] := $0190; // Мужик.
  pkType[1] := $0191; // Женщина.
  pkType[2] := $0009; // Демон.

  finddistance := 25;
  while NOT dead do begin
    if checkpk then
      checklag(5000); // Тут действие при нахождении ПК.

    wait(1000);
  end;
end.

Re: Анти ПК

Posted: 19.04.2012 14:58
by Opossym
Спасибо скомпилировалось теперь буду тестировать.

Долго мучился пока не обратил внимание на строку

Code: Select all

while NOT dead do begin 
Я же шпиеню призраками :D Но тут моего могучего интеллекта хватило что бы исправить :mrgreen:

Если проживаешь в Киеве могу поставить пиво.

Re: Анти ПК

Posted: 19.04.2012 15:12
by nepopus
Надеюсь ты не знаешь где я живу :D
Если проживаешь в Киеве могу поставить пиво.
Ты живешь... в Киеве!
К сожалению я не пью пиво и живу в Москве : )