Привет всем кто ещё здесь появляется
Есть вопрос - как внедрить карты подземелий, т.е. как понять когда нужно подсунуть нужную карту? Есть какой-то пакет с кодом локации?
Да, но речь идёт не только о катах, а например о ТоИ или круме. Волкер и L2Net как-то могут показывать карты этажей и не понятно как огранчить радиус действия карты по X Y.
Вот ещё есть системное сообщение о Проклятом Оружии. В нём даются координаты, надо как-то перевести их в локацию
Код:
LA2: "SystemMessage" size: 35 prot: 268 $10C
Addr: Size: Type: Description: Value:
0000 2 word psz 35 | $0023
0002 1 byte ID 98 | $62 'b'
0003 4 integer MsgID $s2 was dropped in the $s1 region. ($00000717)
0007 4 integer typesCount 2 | $00000002
000B 4 integer type 7 | $00000007
000F 0 vardat caseTypeZone
000F 4 integer x 7218 | $00001C32
0013 4 integer y -17066 | $FFFFBD56
0017 4 integer z -3632 | $FFFFF1D0
001B 4 integer type 3 | $00000003
001F 0 vardat caseTypeItem
001F 4 integer ItemID Demonic Sword Zariche ($00001FFE)
эм... как бы я сделал: взял скриншот карты ладвы. и побежал бы в один из краев. куда можно добежать. кароче нашел бы самые большие значения Х и У, так-же самые малые. что-то типа креста на карте получилось бы. вот от них уже потом и строй примерное местоположение меча.
эм... как бы я сделал: взял скриншот карты ладвы. и побежал бы в один из краев. куда можно добежать. кароче нашел бы самые большие значения Х и У, так-же самые малые. что-то типа креста на карте получилось бы. вот от них уже потом и строй примерное местоположение меча.
Цитата:
Сообщение от Smwr
про многоэтажные локации: пробежаться по ним, глянуть высоту на каждом этаже и выдавать карту в зависимости от высоты.
Впринципе карты катакомб я так и делал, только не бегал по углам а кликал по карте и переводил координаты, но думал можно как-то ещё.
Цитата:
Сообщение от SeregaZ
твой бот l2ultra случаем шифрацию не обходит? ))
Шифрация это не про меня
покопался немного в L2Net - там используется файл такого формата: 19_18.jpg|19|18|-4599|32767, т.е. по всей видимости карты действительно подсовываются по высоте.
С сообщением о проклятом оружие пока не понятно
Последний раз редактировалось cvillian, 09.09.2017 в 13:18.
public static int WORLD_X_MIN = 15;
public static int WORLD_X_MAX = 26;
private static short getRegionOffset(int x, int y)
{
int rx = x >> 11; // =/(256 * 8)
int ry = y >> 11;
return (short) (((rx + Config.WORLD_X_MIN) << 5) + (ry + Config.WORLD_Y_MIN));
подсмотреть значения x/y min можно в исходниках явы своих хроник (код выше из lucera interlude). вообще, мне кто то говорил, что они везде одинаковы, однако значения с интерлюда не подошли к хф (хотя вероятно я где то накосячил), но т.к. я у себя карты не использую забил на это дело.
про многоэтажные локации: пробежаться по ним, глянуть высоту на каждом этаже и выдавать карту в зависимости от высоты.
Я отдал это на откуп пользователю, если в текущем регионе несколько слоев карт, то пользователю показывается ComboBox с выбором слоя, не думаю что ты сможешь это грамотно разрулить в автоматическом режиме.
Игровые координаты в координаты игровой зоны переводятся очень просто:
BlockX = (X div 32767) + OffsetX
кстати! а можно ли как-то узнать коим образом файлы клиента запакованы? user.ini хочу с валхаком - так как не тормозит, когда там все полосами вместо текстур. прям кайф играть и на замесах, ну и на последнем месте конечно видно за стеной всех врагов. этой цели даж и не было... но файлик чем-то сверху накрыт и file edit'ы - ни один из всей кучи не читает. там даж хедера нет. обычно там пишет линейдж 413 скажем. а тут-же нет такого. вот хотелось бы расковырять, подставить эти вх параметры и запаковать. попытался взять незапакованный user.ini с вх и вписал туда айпи сервера и подсунул. логин прошел, а вот дальше пишет что user.ini изменен, дескать пройдитесь обновлятором клиента для восстановления. хотя раз логин прошел, значит клиент может понимать и стандартную запаковку... просто где-то стоит проверка на размер или хэш файла - как узнать где и как исправить?