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
Сейчас затэстим,если заработает я тебя поцелую

Re: Анти ПК
Posted: 18.04.2012 17:50
by nepopus
Opossym wrote:Сейчас затэстим,если заработает я тебя поцелую

pkType - массив типов.
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 строку смотрел?
2 раза of
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
лучше сделать так
Короче, и не надо следить чтоб длинна массива и количество элементов совпадали.
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
Надеюсь ты не знаешь где я живу
Лишний вар потер все равно не спасает
Re: Анти ПК
Posted: 19.04.2012 14:26
by nepopus
Opossym wrote:Надеюсь ты не знаешь где я живу
Лишний вар потер все равно не спасает
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
Спасибо скомпилировалось теперь буду тестировать.
Долго мучился пока не обратил внимание на строку
Я же шпиеню призраками

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