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

Слоёв нет, статики нет, MapCell 0

тут можно задать вопрос по скриптингу
Post Reply
Spinorog
Posts: 9
Joined: 25.07.2014 15:00

Слоёв нет, статики нет, MapCell 0

Post by Spinorog »

Пытаюсь настроить ламбер. Не ищет деревья ни в какую.

Пробовал статику смотреть и mapcell по выложенному на форуме скрипту:

Code: Select all

Program Statistics;
var
    X0,Y0,Z0,Tile: Word;
    TileStatics: TStaticCell;
    C, W0: Byte;
begin

      // X0:=GetX(Self)+2;
      // Y0:=GetY(Self);
      // Z0:=GetZ(Self);
      W0:=WorldNum;

     ClientPrintEx(0, 70, 0, 'Кликни на тайл');

      ClientRequestObjectTarget;
      repeat
        if ClientTargetResponsePresent then begin
          X0:=ClientTargetResponse.X;
          Y0:=ClientTargetResponse.Y;
          Z0:=ClientTargetResponse.Z;
        end;
        wait(500);
      until X0 > 0;

      TileStatics:=ReadStaticsXY(X0,Y0,W0);     
      C:=GetLayerCount(X0,Y0,W0);
      Addtosystemjournal('------------------------------------------------');
      Addtosystemjournal('GetLayerCount = '+IntToStr(c)+' | X = ' +IntToStr(X0)+' | Y = ' +IntToStr(Y0)+' | Z = '+IntToStr(Z0)+' | World = ' +IntToStr(W0));
      If C > 0 then begin
      Addtosystemjournal('Layers = '+IntToStr(TileStatics.StaticCount)+' | Tile = ' +IntToStr(TileStatics.Statics[0].Tile)+' | X = ' +IntToStr(TileStatics.Statics[0].X)+' | Y = ' +IntToStr(TileStatics.Statics[0].Y)+' | Z = ' +IntToStr(TileStatics.Statics[0].Z)+' | Color = ' +IntToStr(TileStatics.Statics[0].Color));
      end else begin
      Addtosystemjournal('Тайл не имеет слоёв (как чёрные тайлы в пещере для мининга), поэтому массив Statics[0] пуст.');
      Addtosystemjournal('и данных "TileStatics.StaticCount", "TileStatics.Statics[0].Tile", "TileStatics.Statics[0].X", "TileStatics.Statics[0].Y)", "TileStatics.Statics[0].Z", "TileStatics.Statics[0].Color" - не существует.');
      end;
      Addtosystemjournal('Tile = ' +IntToStr(GetMapCell(X0,Y0,W0).Tile)+' | Z = ' +IntToStr(GetMapCell(X0,Y0,W0).Z));
      Tile:= (GetMapCell(X0,Y0,W0).Tile);
      Addtosystemjournal('GetTileFlags: ' + IntToStr(GetTileFlags(8,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));

end. 
Вывод:

Code: Select all

13:39:58:171 [kraft2020]: GetLayerCount = 0 | X = 5613 | Y = 1253 | Z = 10 | World = 0
13:39:58:171 [kraft2020]: Тайл не имеет слоёв (как чёрные тайлы в пещере для мининга), поэтому массив Statics[0] пуст.
13:39:58:171 [kraft2020]: и данных "TileStatics.StaticCount", "TileStatics.Statics[0].Tile", "TileStatics.Statics[0].X", "TileStatics.Statics[0].Y)", "TileStatics.Statics[0].Z", "TileStatics.Statics[0].Color" - не существует.
13:39:58:211 [kraft2020]: Tile = 0 | Z = 0
13:39:58:221 [kraft2020]: GetTileFlags: 0
13:39:58:261 [kraft2020]: Flags = 00000000 | TextureID = 0
13:39:58:311 [kraft2020]: Flags = 00000000 | Weight = 0 | Height = 0
Из клиента по команде ,infotile выдаёт тайлы нормально.

Что я делаю не так?

Благодарен заранее.
Spinorog
Posts: 9
Joined: 25.07.2014 15:00

Re: Слоёв нет, статики нет, MapCell 0

Post by Spinorog »

Был невнимателен, каюсь. В выложенном скрипте таргет запрашивается на объект, а не тайл, странно было бы ожидать другой реакции. Заменил на ClientRequestTileTarget и в ответе нормально всё стало, совпадает с ,infotile.

Заработало. Проблема похоже была в :shock: Винде. Или леший его знает в чём, была win7 без sp1 даже, решил обновить для поддержки питона, после этого всё заработало как надо :mrgreen: .
Post Reply