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

запись непроходимых тайлов в файл. и атозагрузка их

тут можно задать вопрос по скриптингу
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

Привет парни. встала задача. а с текстом и файлами плохо пока понимаю. возникли вопросыю

1. Необходимо чтобы при выводе в систем журнале сообщения о непроходимом тайле инфа писалась в файл (хотя если что сделаю и руками). чтобы можно было в каждом цикле его загружать заново. еще встает вопрос фильтрации повторных клаймов. хотя если что и в ручную можно повторяющиеся строки удалить. работа с текстом пичаль.

2. тут подумал. журнал с строками можно и из журнала стелса взять. вопрос как загружать координаты из файла типа (лишние строки я удалю вручную.)

Code: Select all

[14:23:06:756: ] Движемся в точку №6
[14:23:07:025: ] Движемся в точку №7
[14:23:20:756: ] Лутаем0
[14:23:22:658: ] Лутаем4
[14:23:31:500: ] Лутаем0
[14:23:33:402: ] Лутаем2
[14:23:34:552: ] Движемся в точку №8
[14:23:35:072: ] Движемся в точку №9
[14:23:37:497: ] Движемся в точку №10
[14:23:43:763: ] Point X 5992 Y 340 marked as bad to 15 min
[14:23:43:969: ] Point X 5992 Y 340 marked as bad to 15 min
[14:23:44:278: ] TMover.Resync: called by client
[14:23:46:176: ] Point X 5995 Y 339 marked as bad to 15 min
[14:23:46:390: ] Point X 5995 Y 339 marked as bad to 15 min
[14:23:46:712: ] TMover.Resync: called by client
[14:23:47:664: ] Point X 5995 Y 338 marked as bad to 15 min
[14:23:47:865: ] Point X 5995 Y 338 marked as bad to 15 min
[14:23:48:569: ] Point X 5994 Y 339 marked as bad to 15 min
[14:23:48:773: ] Point X 5994 Y 339 marked as bad to 15 min
[14:23:49:084: ] TMover.Resync: called by client
[14:23:50:013: ] Point X 5995 Y 337 marked as bad to 15 min
[14:23:50:911: ] Point X 5995 Y 336 marked as bad to 15 min
[14:23:51:045: ] Point X 5995 Y 336 marked as bad to 15 min
3. и еще как можно включить чтобы он проходил сквозь игроков


4. проверка дурабилити вещи (чтоб ремонтироваться). функцию такую не нашел в факе


Подскажите код. бот бегает фармит мобов в пещере. там много всякого мусора. и клейма на 15 минут не хватает (там по середине тоннеля идет узкоколейка. и бот не распознает её как непроходимый тайл. и тыкается в неё на протяжении десятков тайлов.). или может есть возможность помечать непроходимые тайлы на пару тройку часов?

если код сложный . и лень писать. подскажите хотя бы код как загружать такие тайлы и какого формата должен быть файл. дальше думаю разберусь сам
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

KOLBASOID wrote:Привет парни. встала задача. а с текстом и файлами плохо пока понимаю. возникли вопросыю

1. Необходимо чтобы при выводе в систем журнале сообщения о непроходимом тайле инфа писалась в файл (хотя если что сделаю и руками). чтобы можно было в каждом цикле его загружать заново. еще встает вопрос фильтрации повторных клаймов. хотя если что и в ручную можно повторяющиеся строки удалить. работа с текстом пичаль.

2. тут подумал. журнал с строками можно и из журнала стелса взять. вопрос как загружать координаты из файла типа (лишние строки я удалю вручную.)

Code: Select all

[14:23:06:756: ] Движемся в точку №6
[14:23:07:025: ] Движемся в точку №7
[14:23:20:756: ] Лутаем0
[14:23:22:658: ] Лутаем4
[14:23:31:500: ] Лутаем0
[14:23:33:402: ] Лутаем2
[14:23:34:552: ] Движемся в точку №8
[14:23:35:072: ] Движемся в точку №9
[14:23:37:497: ] Движемся в точку №10
[14:23:43:763: ] Point X 5992 Y 340 marked as bad to 15 min
[14:23:43:969: ] Point X 5992 Y 340 marked as bad to 15 min
[14:23:44:278: ] TMover.Resync: called by client
[14:23:46:176: ] Point X 5995 Y 339 marked as bad to 15 min
[14:23:46:390: ] Point X 5995 Y 339 marked as bad to 15 min
[14:23:46:712: ] TMover.Resync: called by client
[14:23:47:664: ] Point X 5995 Y 338 marked as bad to 15 min
[14:23:47:865: ] Point X 5995 Y 338 marked as bad to 15 min
[14:23:48:569: ] Point X 5994 Y 339 marked as bad to 15 min
[14:23:48:773: ] Point X 5994 Y 339 marked as bad to 15 min
[14:23:49:084: ] TMover.Resync: called by client
[14:23:50:013: ] Point X 5995 Y 337 marked as bad to 15 min
[14:23:50:911: ] Point X 5995 Y 336 marked as bad to 15 min
[14:23:51:045: ] Point X 5995 Y 336 marked as bad to 15 min
3. и еще как можно включить чтобы он проходил сквозь игроков


4. проверка дурабилити вещи (чтоб ремонтироваться). функцию такую не нашел в факе


Подскажите код. бот бегает фармит мобов в пещере. там много всякого мусора. и клейма на 15 минут не хватает (там по середине тоннеля идет узкоколейка. и бот не распознает её как непроходимый тайл. и тыкается в неё на протяжении десятков тайлов.). или может есть возможность помечать непроходимые тайлы на пару тройку часов?

если код сложный . и лень писать. подскажите хотя бы код как загружать такие тайлы и какого формата должен быть файл. дальше думаю разберусь сам
а зачем тебе их запоминать? Ходилка же практически не тормозит на них...
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

через 15 минут она (ходилка) о них забывает и чар начинает в эту узкоколейку упираться и заново маркать эти точки. а она там длинная на всю территорию подземелья.

фото данжа
Image
а так 1 раз прописал(файл с зонами) и всё он их нормально будет обходить

когда препятствия длинные он на них тормозит. потомучто пытается обойти по 1 тайлу. причем бывает начнет пробовать в одну сторону 5-8 тайлов. потом в другую. в итоге паливо ппц.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

у колейки етот тайл отличается от пола?
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

Да можете увидить на скриншете. это типо рельсы. но при нажатии мышкой не выделяется и называется "rack"
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

,infotile сделай на ети рельсы.
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

на запятую активируется Chat. соответственно если напишу то напишу в чат. 1 раз попробовал. не могу написать это. или делаю чтото не так. сервер офф

разобрался. сменил префикс на . и всё норма сработало


Tile: 4688 X: 5935 Y: 363 Z: 3 целые рельсы
Tile: 4688 X: 5932 Y: 363 Z: 3
Tile: 3120 X: 5948 Y: 364 Z: 0 кучка досок (debris)
Tile: 4688 X: 5949 Y: 363 Z: 3
Tile: 4689 X: 5965 Y: 364 Z: 3 половинчатые рельсы


если както можно маркнуть эти тайлы как непроходимые будет просто замечательно
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

KOLBASOID wrote:на запятую активируется Chat. соответственно если напишу то напишу в чат. 1 раз попробовал. не могу написать это. или делаю чтото не так. сервер офф

разобрался. сменил префикс на . и всё норма сработало


Tile: 4688 X: 5935 Y: 363 Z: 3 целые рельсы
Tile: 4688 X: 5932 Y: 363 Z: 3
Tile: 3120 X: 5948 Y: 364 Z: 0 кучка досок (debris)
Tile: 4688 X: 5949 Y: 363 Z: 3
Tile: 4689 X: 5965 Y: 364 Z: 3 половинчатые рельсы


если както можно маркнуть эти тайлы как непроходимые будет просто замечательно
можно это сделать без проблем.
Область где ты ходишь большая?

Code: Select all

procedure SetBadLocations(Location_Radius : Byte);
var
 x, y, i : Integer;
 TileInfo : TStaticCell;
begin
 for x := (-1 * Location_Radius) to Location_Radius do
  for y := (-1 * Location_Radius) to Location_Radius do
   TileInfo := ReadStaticsXY(GetX(self)+x, GetY(self)+y, WorldNum);
   if TileInfo.StaticCount > 0 then
    for i := Low(TileInfo.Statics) to High(TileInfo.Statics) do
     if (TileInfo.Statics[i].Tile = 4688) or (TileInfo.Statics[i].Tile = 4689) then
	  SetBadLocation(TileInfo.Statics[i].x, TileInfo.Statics[i].y); 	  
end;
вот попробуй, параметр - радиус области.
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

Спасибо попробую. область не большая. квадрат с узкими коридорами

я так понимаю запросить эту процедуру 1 раз в начале всего скрипта? или запрашивать с интервалом?

карта данжа. по всему периметру идут такие рельсы как на картинке вышще
Image
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

запроси 1 раз в начале, посмотрим как оно.
Даешь встроенную ходилку с коллбеком!!! Или евент, типа 'evNextStep'!
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

drabadan wrote:запроси 1 раз в начале, посмотрим как оно.
Даешь встроенную ходилку с коллбеком!!! Или евент, типа 'evNextStep'!
параметром передаю радиус. 300 хватит? потом попробую вычислить центр данжа и от туда сделать радиус


рельсы в другу. сторону имеют другой номер. но это не проблема. изменю ваш скрипт.

по работоспособности скажу позже. по факту появления элементалей за рельсами (обычно они там не респятся. но бывает такие респы.) и тогда то будет видно

про даешь не понял. ты имеешь в виду чтобы я сюда скрипт выложил?. мне не жалко могу кинуть. просто не понял. вообще не понял что ты имел в виду
Last edited by KOLBASOID on 29.06.2014 22:24, edited 1 time in total.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by drabadan »

KOLBASOID wrote:
drabadan wrote:запроси 1 раз в начале, посмотрим как оно.
Даешь встроенную ходилку с коллбеком!!! Или евент, типа 'evNextStep'!
параметром передаю радиус. 300 хватит? потом попробую вычеслить центр данжа и от туда сделать радиус

рельсы в другу. сторону имеют другой номер. но это не проблема. изменю ваш скрипт.

про даешь не понял. ты имеешь в виду чтобы я сюда скрипт выложил?. мне не жалко могу кинуть. просто не понял. вообще не понял что ты имел в виду
можно на ты.

да я не к тебе обращался!
там у меня еще одна мысля получилась, попробуем обдумать!

З.Ы. А чо б и правда в ходилку не добавить - SetBadMoveTile(Tile : Word);
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

Не сработало. вначале запустил 1 раз. потом запускал автоматом у каждого спота. чар подходит к споту. запускает её SetBadLocations(300); и начинает фармить мобов.. а их 12 штук и около них какраз рельсы. всеровно упирается

поидее да либо в ходилку добавить функцию добавления непроходимых тайлов. либо возможность увеличивать время блокировки спота более 15 минут. либо выгрузка/загрузка непроходимых спотов


SetBadLocations(2)
добавил журнал после

Code: Select all

for s := Low(TileInfo.Statics) to High(TileInfo.Statics) do
      begin
        AddToSystemJournal(inttostr(Low(TileInfo.Statics))+'/'+ inttostr(High(TileInfo.Statics)));
        AddToSystemJournal(inttostr(TileInfo.Statics[s].Tile));
        if (TileInfo.Statics[s].Tile = 4688) or (TileInfo.Statics[s].Tile = 4689)or (TileInfo.Statics[s].Tile = 4697) or (TileInfo.Statics[s].Tile = 4696) then
получил

Code: Select all

12:47:28:875 [Warrior]: 0/0
12:47:28:876 [Warrior]: 578
12:47:28:877 [Warrior]: 0/0
12:47:28:879 [Warrior]: 578
12:47:28:880 [Warrior]: 0/0
12:47:28:882 [Warrior]: 578
12:47:28:883 [Warrior]: 0/0
12:47:28:884 [Warrior]: 578
12:47:28:885 [Warrior]: 0/0
12:47:28:886 [Warrior]: 577
12:47:28:887 [Warrior]: 0/0
12:47:28:888 [Warrior]: 577
Картинка
Image
получил набор цифр. тайлов с такими цифрами в радиусе 2 тайлов нет.
поидее должен был получить номер тайла бревна. стоя на соседнем тайле. но его нет
KOLBASOID
Neophyte
Neophyte
Posts: 13
Joined: 23.06.2013 15:03

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by KOLBASOID »

Черт с ними с тайлами.
как проверить дурабилити/прочность вещи? чтоб инициировать починку.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: запись непроходимых тайлов в файл. и атозагрузка их

Post by Vizit0r »

наверное через парсинг результата gettooltip
если б ты еще сказал как эту самую прочность узнавать через клиент - было бы проще, а так в угадайку играем.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply