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

Нужна помощь.

тут можно задать вопрос по скриптингу
Vop
Posts: 3
Joined: 20.12.2006 18:29
Contact:

Нужна помощь.

Post by Vop »

1: Проблема в том, что чар не видит итемов вокруг себя, например, прям перед чаром стоит 2 сундука, пытаюсь открывать:

UseObject(Container1);
addtosystemjournal('Открыли 1й сундук.');
wait(1000)
UseObject(Container2);
addtosystemjournal('Открыли 2й сундук.');
wait(1000)
UseObject(backpack);
addtosystemjournal('Открыли backpack.');
wait(1000)

19:03:51 [AoP]: Compiled succesfully
19:03:56 [AoP]: UseObject error: Object not finded.
19:03:56 [AoP]: Открыли 1й сундук.
19:03:58 [AoP]: UseObject error: Object not finded.
19:03:58 [AoP]: Открыли 2й сундук.
19:03:59 [AoP]: Открыли backpack.
19:04:00 [AoP]: Succesfully executed
19:04:00 [AoP]: Script program PotionsCraft.txt stoped successfuly

ID - сундуков правильные 100%, на закладке ворлд их тоже нет.

2: Вопрос по - uosay('ххх');
Как произнести например такую фразу как 'resend -> uosay(''resend') -> не катит.

Ответ на №2: uosay(chr(39)+'resend'); chr(39) = " ' ".
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

1. Кусок скрипта с открытием сундуков. С сериалами. Телепаты в отпуске.

2. На фига тебе говорить resend - это же команда инжекта, в стелсе ее просто не существует.
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

У меня тоже вопрос по поводу useobject...

Я столкнулся с ситуацией, что через какое то время работы скрипта, он перестает брать предметы в руки (конкретнее щит и меч), это было и при использовании команды equip.

Сомневаюсь что дело в скрипте...

Code: Select all

     
      if (objatlayer(LhandLayer) <> info[current].shield) then begin
        useobject(info[current].shield);
        check_lag(250);
      end;
      if (objatlayer(RhandLayer) <> info[current].weapon) then begin
        useobject(info[current].weapon);
        check_lag(250);
      end;
и тоже в журнале выводит ошибку

Code: Select all

UseObject error: Object not finded. 
тогда как щит и меч в это время лежат в паке...

а вообще список объектов в стелсе имеет какой то лимит?
может переоткрывать бэкпак перед этим? или по типу искать?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Если через некоторое время - это нормально. В данной версии Стелса, естественно. Миралекс уже поправил там, но релиза пока следующей версии нет. Просто ставь в цикл, или используй процедуру дисконнекта/реконнекта, еще одна альтернатива - сдвинуть чара на шаг и обратно. Если предмет в паке - может помочь переоткрытие пака.

Я постоянно все крафты прописываю на это, иначе периодически не хочет брать ресурс или не находит его в паке. Вся эта катавасия происходит от того, что чар долго стоит на одном месте. :lol:
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

Edred wrote:Просто ставь в цикл
не понял, useobject зацикливать?
он у меня и так зициклен :) пока монстр рядом, если в руках не оружие, то он пытается его надеть... а начиная с 5-го монстра где то в журнале появляется много строчок с object not found :)
ладно, не важно... я переоткрытие бэкпака уже поставил, посмотрим что получится...
просто фишинг, это первый скрипт где я на это наткнулся... хотя он и первый скрипт, где чар вообще не ходит :)
PS еще вопрос по поводу дисконект/реконекта... иногда после реконнекта некоторые скрипты переставали работать...
ну то есть к примеру из всех запущенных стелсов (штук 4-6) после реконнекта бывало что 1 или 2 переставали выполнять скрипт.
так вот вопрос, это косяки моих скриптов или глюки стелса? :)
в принципе во всех скриптах идет бесконечное зацикливание,
а какие уже внутри циклы то везде выход по таймауту есть...
я просто не представляю где стелс может зависать...
ничего конкретного не выкладывал, потому что это наблюдалось с некоторыми скриптами, которые потом раз 10 переписывались...
ничего больше конкретного сказать не могу, потому что об этом узнавал
только на след. день сравнивая результаты нескольких чаров...
ладно, седня еще попробую либо паузу автореконнекта больше сделать, либо вручную его сделать с записью всех действий...
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

PS еще вопрос по поводу дисконект/реконекта... иногда после реконнекта некоторые скрипты переставали работать...
ну то есть к примеру из всех запущенных стелсов (штук 4-6) после реконнекта бывало что 1 или 2 переставали выполнять скрипт.
так вот вопрос, это косяки моих скриптов или глюки стелса?
Думаю что это косяки скриптов, у меня тоже некоторые (одни и те же) после дисконекта не хотят работать дальше.
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

.My.Xa.Xa. wrote:PS еще вопрос по поводу дисконект/реконекта... иногда после реконнекта некоторые скрипты переставали работать...
Это бывает. И именно из-за скриптов. Проверь внимательно скрипт, если у тебя где-то скрипт что-то делает в мире без проверки на коннект перед этим - это наиболее вероятное место сбоя. Особенно если потом проверка идет на сообщение или появление чего-то без лимита по времени.

Всегда во все циклы ожидания сообщения или крафта чего-то, или ожидания чего-то ставь счетчик ограничения по времени. Всегда перед useobject или аналогичных команд ставь waitconnection. Всегда все использования предметов ставь в цикл с проверкой результата по возвращаемой величине. В большинстве случаев рекомендую заменять useobject на usetype (если это удобно) с проверкой величины, возвращаемой usetype, так как usetype - команда, гарантирующая какой-то результат. Далее аналогично.
ну то есть к примеру из всех запущенных стелсов (штук 4-6)
А почему ты одним стелсом не обходишься? На фига 4-6 запускать? :shock:
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

А почему ты одним стелсом не обходишься? На фига 4-6 запускать? :shock:
только не говори что у тебя на форест варс минере не копают на стелсе :)

один основной, один крафтер и два минера в ньюби шахте роются :) вот и 4 стелса получается...
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

.My.Xa.Xa. wrote:
А почему ты одним стелсом не обходишься? На фига 4-6 запускать? :shock:
только не говори что у тебя на форест варс минере не копают на стелсе :)

один основной, один крафтер и два минера в ньюби шахте роются :) вот и 4 стелса получается...
Имеется в виду 4 чара запущены на 1 стелсе или 4 стелса с 1 чаром на каждом, если последнее, то зачем?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

У меня 10 чаров на стелсе: 3 минера, 3 ламбера, 1 фишинг, 1 автокрафтер (по запросу), 3 чара по классам - воин, арчер, маг (на прокачке скиллов). Но они все живут в одном стелсе. Зачем запускать 10 стелсов???
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Edred wrote: Зачем запускать 10 стелсов???
А чтобы больше значков было возле часиков. Нам не понять, но так модно. :wink:
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

ууу... вы будете смеяться но я не догадался на одном стелсе запустить несколько чаров :?
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

попробывал запустить всех на одном стелсе :) мне это неудобно, папка активная для всех чаров одна, а скрипты и файлы с результатами по разным папкам раскинуты чтобы не создавать кучу, и все по очереди из за ненайденного файла вырубаются :)
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

.My.Xa.Xa. wrote:попробывал запустить всех на одном стелсе :) мне это неудобно, папка активная для всех чаров одна, а скрипты и файлы с результатами по разным папкам раскинуты чтобы не создавать кучу, и все по очереди из за ненайденного файла вырубаются :)
Смотри:

1. Пример настройки скрипта под конкретного чара:

Code: Select all

if GetName(self) = 'Serf' then
begin
	MyMaxWeight := 320;
	StartMinPoint[1] := 1215;
	StartMinPoint[2] := 3111;
	StartMinPoint[3] := 1217;
	StartMinPoint[4] := 3109;
	StartMinPoint[5] := 1219;
	StartMinPoint[6] := 3107;
	CaveLimit := 1205;		
	exit;
end;
if GetName(self) = 'BOCTOK' then
	begin
	MyMaxWeight := 320;
	StartMinPoint[1] := 1221;
	StartMinPoint[2] := 3105;
	StartMinPoint[3] := 1223;
	StartMinPoint[4] := 3103;
	StartMinPoint[5] := 1225;
	StartMinPoint[6] := 3101;
	CaveLimit := 1205;
	exit;
end;
2. Пример вывода статистики в файл с именем по имени чара:

Code: Select all

procedure PrintStatistic;
// выводит в файл с именем charname.log суммарную статистику с запуска скрипта
begin
	with TStringList.Create do
		try
		Add('Скрипт начал работу: ' + DateTimeToStr(ScriptStartTime));
		Add('             Сейчас: ' + DateTimeToStr(Now));
		Add(' ');
		Add('Количество разгрузок: ' + inttostr(HowManyDischarge));
		Add(' ');
		Add('Добыто:');
		Add('   Iron ' + inttostr(IronCnt));
		Add('   Dark Iron ' + inttostr(DarkIronCnt));
		Add('   Gold ' + inttostr(GoldCnt));
		Add('   Silver ' + inttostr(SilverCnt));
		Add('   Verite ' + inttostr(VeriteCnt));
		Add('   Valorite ' + inttostr(ValoriteCnt));
		Add('   Shadow ' + inttostr(ShadowCnt));
		Add('   Agapite ' + inttostr(AgapiteCnt));
		Add('   Blood Rock ' + inttostr(BloodRockCnt));
		Add('   Mytheril ' + inttostr(MytherilCnt));
		Add('   Diamond ' + inttostr(DiamondCnt));
		Add('   Black Rock ' + inttostr(BlackrockCnt));
		Add('   Bluerite ' + inttostr(BlueriteCnt));
		Add(' ');
		Add('Количество ресов чара: ' + inttostr(ResCnt));
		SaveToFile('__' + GetName(self) + '.log');
		finally
		free;
	end;
end;
3. Пример загрузки маршрута ламбера из файла с именем по имени чара:

Code: Select all

CharRail := 'D:\Games\Railes\' + GetName(self) + '.txt';
ResRail := 'D:\Games\Railes\res.txt';
GetRail(CharRail,true);
AddToSystemJournal('Маршрут ' + CharRail + ' загружен');
GetRail(ResRail,false);
AddToSystemJournal('Маршрут ' + ResRail + ' загружен');
Так что нет необходимости плодить отдельные скрипты для разных чаров. Прекрасно можно обходиться одним на всех.
.My.Xa.Xa.
Neophyte
Neophyte
Posts: 14
Joined: 13.11.2006 23:46
Contact:

Post by .My.Xa.Xa. »

у меня почти также...

Code: Select all

{const info begin}
  info[1].uid := $0007e983; // HacTeHa
  info[1].bank := $4007e981;
  info[1].r_start := $40026b04;
  info[1].r_smelt := $40026b03;
  info[1].r_bank := $40026af8;
  info[1].weapon := $4001de56;
  info[1].data := 'r_mmd_1.txt';
  info[1].file := 'r_mmr_1.txt';

  info[2].uid := $0007ce86; // KoCToJIoM
  info[2].bank := $4007ce84;
  info[2].r_start := $4008f269;
  info[2].r_smelt := $4008f265;
  info[2].r_bank := $4008f264;
  info[2].weapon := $40090458;
  info[2].data := 'r_mmd_2.txt';
  info[2].file := 'r_mmr_2.txt';

  current := 0;
  if (self = info[1].uid) then current := 1;
  if (self = info[2].uid) then current := 2;
  if (current = 0) then begin
    sysj('smth wrong with initial info');
    exit;
  end;
  sysj('my number is ' + inttostr(current));
{end}
результат немного в другом формате, у меня каждый раз в файл добавляется что случилось... просто все равно получается для каждого чара свой файл с маршрутом и свой файл статистики... а если прикинуть

мининг в большом мире - один файл скрипта, 2 файла с маршрутом, 2 файла с результатом

мининг в ньюби шахте - один файл скрипта, 4 файла с маршрутом и 4 файла с результатом

лумбер - один файл скрипта, 2 файла с маршрутом и 2 файла с результатом

фишинг на корабле, фишинг в гз еще 5 файлов будет, потом всякие магия бс тинкер лоры и тд тп...

у меня раньше было все по папкам разложено, в каждой папке по одному скрипту добывающему или просто похожие...

кароч оч много файлов :) а перемещать каждый раз те скрипты, которыми пользуешься в одно "активное место" мне лень :) когда в папке 40-50 файлов скриптов для меня напряг, из них кстати 24 файлов добывающих скриптов :)

P.S. и не смотри на название файлов в примере :) просто вчера все скинул быстренько в одну папку чтобы на одном стелсе всех запустить... до этого кстати название файлов с данным и результатом для всех скриптов одинаковое было :) ладно, пох, придумаю че нибудь для упрощения :)
Post Reply