Page 1 of 2
Хэлп... (Дисконект чаров)
Posted: 14.12.2006 16:00
by DesperadoS
Вообщем проблема такая... играю я на шарде "Age of Power"
Задача: порезать бинты, даблклик на ножницы-(выберите цель)- таргет на пачку тряпок бах и 1 бинтик(You make a bandage) :
Запускаю в програмке Стелс (последняя версия) вот такой вот скрипт
Code: Select all
:Program Bintorez;
BEGIN
while true do begin
useobject(FindType($0F9E,backpack));
wait(200);
TargetToObject(FindType($1766,backpack));
wait(3000);
end;
END.
По началу режет, потом просто перестает... последняя фраза в журнале "Выберите цель"
И при этом постоянно в периоде 5-и минут конлостит чаров...
зы. Запустил одновременно 5 чаров.
Проблема в моем шарде? или в скрипте? кто подскажет? поможет?
Вот еще что разузнал: Когда перестает резать, в Системном журнале пишет вот такую байдень
Code: Select all
16:07:10 [Bint]: UseObject error: Object not finded.
Posted: 15.12.2006 12:38
by DesperadoS
Я так понял, сколько чаров бы не запускал, стабильно режет только один, остальных то дисконектит , то пишет "Обжект нот файнд" ... незнаю чего это?
зы. Чары стоят в одном доме, рядом... в этом доме стоят еще макросники...
Posted: 15.12.2006 14:57
by Miralex
Видимо или Стелс не находит общий язык с твоим шардом или еще что-то. Для начала попробуй изолировать этого "волшебного" в другое место и посмотри что будет. Может удастся определить причину коннлостов.
Если все безуспешно будет - стучи в аську и будем смотреть логи ...
Posted: 15.12.2006 15:05
by DerMeister
У тебя скрипт не учитывает такой момент: таргет появился позже, чем через 200мс, а прицел появляется позже. Тоесть ты получешь "неиспользованный" прицел. После чего делаешь useobject, что, возможно, является непредусмотренной операцией (и вправду, ты же не можешь юзать объект даблкликом, когда у тебя прицел висит) и данная ситуация вызывает ошибку.
Вобщем предположу, что у тебя сервер считает такие ошибки, причём не на чара, а на твой IP адрес. И при превышении некоторого кол-ва ошибок дисконнектит тебя от сервера (чтобы не грузить ядро ошибками).
Posted: 15.12.2006 18:28
by DesperadoS
DerMeister wrote:У тебя скрипт не учитывает такой момент: таргет появился позже, чем через 200мс, а прицел появляется позже. Тоесть ты получешь "неиспользованный" прицел. После чего делаешь useobject, что, возможно, является непредусмотренной операцией (и вправду, ты же не можешь юзать объект даблкликом, когда у тебя прицел висит) и данная ситуация вызывает ошибку.
Вобщем предположу, что у тебя сервер считает такие ошибки, причём не на чара, а на твой IP адрес. И при превышении некоторого кол-ва ошибок дисконнектит тебя от сервера (чтобы не грузить ядро ошибками).
Как это исправить?
Posted: 15.12.2006 18:30
by DesperadoS
Miralex wrote:Видимо или Стелс не находит общий язык с твоим шардом или еще что-то. Для начала попробуй изолировать этого "волшебного" в другое место и посмотри что будет. Может удастся определить причину коннлостов.
Если все безуспешно будет - стучи в аську и будем смотреть логи ...
В аську уже стучал, дисконектит время от времени всех чаров... выполнят функцию нормально только один... один в смысле, может порезать бинтов один чар, эго дисконектит, начинает резать другой... чтото в этом роде
Posted: 15.12.2006 18:42
by Edred
Попробуй так. Писал прямо на форуме, так что могут быть ошибки.
Code: Select all
Program Bintorez;
BEGIN
while true do
begin
if targetpresent then canceltarget;
if not usetype($0F9E,$FFFF) then exit;
waitfortarget(2000);
if findtype($1766,backpack) = 0 then exit;
if targetpresent then TargetToObject(Finditem);
wait(3000);
end;
END.
Последнюю паузу тоже неплохо бы заменить на динамическую, то есть ожидание сообщения. Кроме того надо вводить реконнект и проверку на сейв.
В общем, пробуй.
Posted: 15.12.2006 19:27
by DesperadoS
Edred wrote:Попробуй так. Писал прямо на форуме, так что могут быть ошибки.
Code: Select all
:Program Bintorez;
BEGIN
while true do
begin
if targetpresent then canceltarget;
if not usetype($0F9E,$FFFF) then exit;
waitfortarget(2000);
if findtype($1766,backpack) = 0 then exit;
if targetpresent then TargetToObject(Finditem);
wait(3000);
end;
END.
Последнюю паузу тоже неплохо бы заменить на динамическую, то есть ожидание сообщения. Кроме того надо вводить реконнект и проверку на сейв.
В общем, пробуй.
Code: Select all
19:28:15 [Bint3]: Compiling
19:28:15 [Bint3]: Compiler: [Error] (Bintorez Edred.sc at 1:1): 'BEGIN' expected
19:28:15 [Bint3]: Compiling failed
19:28:15 [Bint3]: Script Bintorez Edred.sc stoped successfuly
Posted: 15.12.2006 20:52
by CFA
: перед program убери

Posted: 15.12.2006 21:44
by Edred
Исправил. Но вообще думалку периодически включать стоит. Тебе же четко говорят номер строки и номер позиции в строке с ошибкой.
Posted: 15.12.2006 21:56
by DesperadoS
Edred wrote:Исправил. Но вообще думалку периодически включать стоит. Тебе же четко говорят номер строки и номер позиции в строке с ошибкой.
Извени, но у меня с этим туго... очень... спасибо огромное за помощь.
Posted: 15.12.2006 21:59
by DesperadoS
Теперь пишет вот такое:
Code: Select all
22:00:22 [Bint3]: Compiling
22:00:22 [Bint3]: Compiler: [Error] (Bintorez Edred.sc at 7:32): Type mismatch
22:00:22 [Bint3]: Compiling failed
22:00:22 [Bint3]: Script Bintorez Edred.sc stoped successfuly
Posted: 15.12.2006 23:32
by CFA
DesperadoS wrote:Теперь пишет вот такое:
Code: Select all
22:00:22 [Bint3]: Compiling
22:00:22 [Bint3]: Compiler: [Error] (Bintorez Edred.sc at 7:32): Type mismatch
22:00:22 [Bint3]: Compiling failed
22:00:22 [Bint3]: Script Bintorez Edred.sc stoped successfuly
Code: Select all
Program Bintorez;
BEGIN
while true do
begin
if targetpresent then canceltarget;
if usetype($0F9E,$FFFF) = 0 then exit;
waitfortarget(2000);
if findtype($1766,backpack) = 0 then exit;
if targetpresent then TargetToObject(Finditem);
wait(3000);
end;
END.
Posted: 16.12.2006 9:46
by DesperadoS
CFA wrote:DesperadoS wrote:Теперь пишет вот такое:
Code: Select all
22:00:22 [Bint3]: Compiling
22:00:22 [Bint3]: Compiler: [Error] (Bintorez Edred.sc at 7:32): Type mismatch
22:00:22 [Bint3]: Compiling failed
22:00:22 [Bint3]: Script Bintorez Edred.sc stoped successfuly
Code: Select all
Program Bintorez;
BEGIN
while true do
begin
if targetpresent then canceltarget;
if usetype($0F9E,$FFFF) = 0 then exit;
waitfortarget(2000);
if findtype($1766,backpack) = 0 then exit;
if targetpresent then TargetToObject(Finditem);
wait(3000);
end;
END.
Этот скрипт работает... но этот скрипт отключаться если чара дисконектит... и снова о том же, в первой же минуте роботы с каким либо скриптом чаров по очереди начинает дисконектить... как я выше уже писал, я не программист и не скриптер там какойто, я обычный геймер который по этим делам вооообще ничего не понимает... если не трудно... помогите разобраться... скрипт на по резку бинтов именно для программки Стелс был бы ооочень полезный для нашего шарда...
Posted: 16.12.2006 11:08
by Edred
Я так и не могу понять твоих проблем. Не мог бы ты выражаться более внятно? Подробно опиши проблему, опиши симптомы как это происходит, точные сообщения которые при этом появляются в системном журнале, сколько чаров, сколько и какие скрипты запущены на этих чарах. Пойми - телепаты в отпуске.
ЗЫ: Если проблема в том, что этот скрипт при дисконнекте отваливается, то:
Code: Select all
Program Bintorez;
{$Include 'all.inc'}
BEGIN
while true do
begin
waitconnection(3000)
if targetpresent then canceltarget;
if usetype($0F9E,$FFFF) = 0 then exit;
waitfortarget(2000);
if findtype($1766,backpack) = 0 then exit;
if targetpresent then TargetToObject(Finditem);
wait(3000);
end;
END.