Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Анти ПК

тут можно задать вопрос по скриптингу
Post Reply
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Анти ПК

Post 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
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post 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;
<( o_O<) <( O_O )> (>O_o )>
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post by Opossym »

Сейчас затэстим,если заработает я тебя поцелую :mrgreen:
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post 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.
<( o_O<) <( O_O )> (>O_o )>
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post 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. 
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Анти ПК

Post by Vizit0r »

а ты 8 строку смотрел?

Code: Select all

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

Code: Select all

  pkType:array [0..2]Of Word;
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post 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.
<( o_O<) <( O_O )> (>O_o )>
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post 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. 
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Анти ПК

Post by CFA »

лучше сделать так

Code: Select all

pkType := [$0190, $0191, $0009];
Короче, и не надо следить чтоб длинна массива и количество элементов совпадали.
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post 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 строку.
Я где то не закрыл скобку?
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post by nepopus »

работа с переменными ведется в теле скрипта.
почему у тебя 2 var

П.С. умоляю. ты видел как я форматировал строки? Было удобно? Ничего сложного в этом нет : )
<( o_O<) <( O_O )> (>O_o )>
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post by Opossym »

Надеюсь ты не знаешь где я живу :D
Лишний вар потер все равно не спасает
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post 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.
<( o_O<) <( O_O )> (>O_o )>
Opossym
Neophyte
Neophyte
Posts: 10
Joined: 18.04.2012 12:56

Re: Анти ПК

Post by Opossym »

Спасибо скомпилировалось теперь буду тестировать.

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

Code: Select all

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

Если проживаешь в Киеве могу поставить пиво.
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Анти ПК

Post by nepopus »

Надеюсь ты не знаешь где я живу :D
Если проживаешь в Киеве могу поставить пиво.
Ты живешь... в Киеве!
К сожалению я не пью пиво и живу в Москве : )
<( o_O<) <( O_O )> (>O_o )>
Post Reply