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

Снова тайлы 8(.

тут можно задать вопрос по скриптингу
Post Reply
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Снова тайлы 8(.

Post by Tomers »

Доброго времени суток.
Подскажите пожалуйста. Персонаж стоит в пещере на координатах х=1136 у=1455 z=-95

вот такой код

Code: Select all

Addtosystemjournal('GetLayerCount = '+IntToStr(c)+' | X = ' +IntToStr(X0)+' | Y = ' +IntToStr(Y0)+' | Z = '+IntToStr(Z0)+' | World = ' +IntToStr(W0));
      Addtosystemjournal('Layers = '+IntToStr(Tile0.StaticCount)+' | Tile = ' +IntToStr(Tile0.Statics[0].Tile)+
      ' | X = ' +IntToStr(Tile0.Statics[0].X)+' | Y = ' +IntToStr(Tile0.Statics[0].Y)+' | Z = ' +IntToStr(Tile0.Statics[0].Z)+' | Color = ' +IntToStr(Tile0.Statics[0].Color));
      Addtosystemjournal('Tile = ' +IntToStr(GetMapCell(X0,Y0,WorldNum).Tile)+' | Z = ' +IntToStr(GetMapCell(X0,Y0,WorldNum).Z));
      Tile:= (GetMapCell(X0,Y0,WorldNum).Tile);
      Addtosystemjournal('Flags = '+IntToHex(GetLandTileData(Tile).Flags,8)+' | TextureID = ' +IntToStr(GetLandTileData(Tile).TextureID));
      Addtosystemjournal('Flags = '+IntToHex(GetStaticTileData(Tile).Flags,8)+' | Weight = ' +IntToStr(GetStaticTileData(Tile).Weight)+' | Height = ' +IntToStr(GetStaticTileData(Tile).Height));
дает информацию:

: GetLayerCount = 1 | X = 1136 | Y = 1455 | Z = 65441 | World = 3
: Layers = 1 | Tile = 1343 | X = 1136 | Y = 1455 | Z = -95 | Color = 0
: Tile = 556 | Z = -49
: Flags = 00000040 | TextureID = 556
: Flags = 00002050 | Weight = 255 | Height = 20

интересует вопрос, как тыкнуть киркой себе под ноги(по этим же координатам), если прицел уже есть?

TargetToTile(Tile, X, Y, Z), как я понимаю будет пытаться дотянуться киркой до Tile = 556 | Z = -49 ?

Ни как не могу заставить копать руду в пещерах.
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Re: Снова тайлы 8(.

Post by Tomers »

Что ни у кого нет рабочего скрипта, который роет руду в пещерах с пола?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Снова тайлы 8(.

Post by Vizit0r »

не понимаю проблемы, все что надо уже написано в примере.
TargetToTile(Tile0.Statics[0].Tile, X, Y, Z)
ну понятно, что сверху это обвязать проверками на кол-во слоев, совпадение номера тайла с нужным, и т.д.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Re: Снова тайлы 8(.

Post by Tomers »

в том то и дело, что конструкция:

Code: Select all

TargetToTile(0, X, Y, Z)
не хочет работать.
как обвязать проверками то и какой номер тайла нужный ?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Снова тайлы 8(.

Post by Vizit0r »

Code: Select all

TargetToTile(Tile0.Statics[0].Tile, X, Y, Z)
и

Code: Select all

TargetToTile(0, X, Y, Z)
немного отличаются вроде как.
а я откуда знаю, какие номера тайлов тебе нужны? тебе наверное виднее.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Re: Снова тайлы 8(.

Post by Tomers »

а можна как-то выбрать тайлы, которые на ходятся на уровне getx(self), gety(self), getz(self) без указания их номера? Ну или как-то вычитать этот тайл, чтоб узнать его номер?

Понимаю, что напрягаю. Может для вас это и очень просто, но я с тайлами никак не могу разобраться, облазил и справочник и примеры, но никак не могу вкурить систему. Готов хороший движок на шахтера, но копаю только по WaitTargetXYZ

Если не сложно, можна пример, который:
1. вычитывает по координатам getx(self), gety(self) все тайлы
2. если координата z=getz(self), пишет в журнал его номер.

Заранее спасибо.

Худо-бедно написал сам. Всем спасибо.
Post Reply