Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Да вроде стоит) Есть файл geodata.json, но точно не уверен) Подскажите как правильно проверить) Если что то не до понимаю, поправьте, я новичок в этом деле)гео стоит?)
{
# Размерность карты
"GeoFirstX" : "11",
"GeoFirstY" : "10",
"GeoLastX" : "26",
"GeoLastY" : "26",
# Обрабатывать ли геодату
"AllowGeodata" : "false",
# Разрешать игроку падать с горизонтальной стены если он кликает по самой стене
"AllowFallFromWalls" : "false",
# Прибавка к Z для пакетов
"ClientZShift" : "16",
# Оптимизация размещение геодаты в памяти, экономит около 150Мб памяти
# для оптимизации нужно сначала нужно сгенерировать карты совпадений
"CompactGeoData" : "false",
# Минимальная разница между слоями
"MinLayerHeight" : "64",
# Максимальная высота ступеньки для геодаты
"MaxZDiff" : "64",
# Максимальная высота ступеньки для геодаты на стыке гео-регионов
"RegionEdgeMaxZDiff" : "128",
# Диагональный поиск
# Стоит отключать только для отладки
"PathFindDiagonal" : "true",
# Сглаживает путь
# Стоит отключать только для отладки
"PathClean" : "true",
# Сильно ускоряет поиск, как влияет на качество неизвестно
# 0 - отключить, 1 - только начало пути, 2 - начало и конец пути
"PathFindBoost" : "1",
# Максимальная высота ступеньки для поиска пути
"PathFindMaxZDiff" : "32",
# Множитель для площади поиска пути
"PathFindMapMul" : "2",
# Максимальное время, которое разрешено затратить на поиск пути (в наносекундах)
"PathFindMaxTime" : "100000000",
# Настройка буфферов для поиска пути, количество x размер карты (в клетках геодаты)
# Минимальный размер 96, максимальный - 512
"PathFindBuffers" : "8x96;8x128;8x160;8x192;8x256;4x288;4x320;2x384;1x512",
# Максимальная разница рассинхронизации серверных и клиентских координат, после превышения которой произойдет корректировка позиции (откидывние/перемещение на серверную позицию в клиенте)
"maxAsyncCoordDiff" : "500",
# Максимальная разница рассинхронизации серверных и клиентских координат перед атакой
"maxAsyncCoordDiffBeforeAttack" : "80",
# Метод коррекции координат
# 0 - коррекция пакетом полета (например блинк сб)
# 1 - коррекция специальным пакетом валлидации
# 2 - коррекция пакетом перемещения
"correctType" : "1"
}
В папку geodata запихиваешь геодату, она формата *.l2j, там много файликов, называются 11_21.L2J и так далее.Да вроде стоит) Есть файл geodata.json, но точно не уверен) Подскажите как правильно проверить) Если что то не до понимаю, поправьте, я новичок в этом деле)
Код:{ # Размерность карты "GeoFirstX" : "11", "GeoFirstY" : "10", "GeoLastX" : "26", "GeoLastY" : "26", # Обрабатывать ли геодату "AllowGeodata" : "false", # Разрешать игроку падать с горизонтальной стены если он кликает по самой стене "AllowFallFromWalls" : "false", # Прибавка к Z для пакетов "ClientZShift" : "16", # Оптимизация размещение геодаты в памяти, экономит около 150Мб памяти # для оптимизации нужно сначала нужно сгенерировать карты совпадений "CompactGeoData" : "false", # Минимальная разница между слоями "MinLayerHeight" : "64", # Максимальная высота ступеньки для геодаты "MaxZDiff" : "64", # Максимальная высота ступеньки для геодаты на стыке гео-регионов "RegionEdgeMaxZDiff" : "128", # Диагональный поиск # Стоит отключать только для отладки "PathFindDiagonal" : "true", # Сглаживает путь # Стоит отключать только для отладки "PathClean" : "true", # Сильно ускоряет поиск, как влияет на качество неизвестно # 0 - отключить, 1 - только начало пути, 2 - начало и конец пути "PathFindBoost" : "1", # Максимальная высота ступеньки для поиска пути "PathFindMaxZDiff" : "32", # Множитель для площади поиска пути "PathFindMapMul" : "2", # Максимальное время, которое разрешено затратить на поиск пути (в наносекундах) "PathFindMaxTime" : "100000000", # Настройка буфферов для поиска пути, количество x размер карты (в клетках геодаты) # Минимальный размер 96, максимальный - 512 "PathFindBuffers" : "8x96;8x128;8x160;8x192;8x256;4x288;4x320;2x384;1x512", # Максимальная разница рассинхронизации серверных и клиентских координат, после превышения которой произойдет корректировка позиции (откидывние/перемещение на серверную позицию в клиенте) "maxAsyncCoordDiff" : "500", # Максимальная разница рассинхронизации серверных и клиентских координат перед атакой "maxAsyncCoordDiffBeforeAttack" : "80", # Метод коррекции координат # 0 - коррекция пакетом полета (например блинк сб) # 1 - коррекция специальным пакетом валлидации # 2 - коррекция пакетом перемещения "correctType" : "1" }
В папку geodata запихиваешь геодату, она формата *.l2j, там много файликов, называются 11_21.L2J и так далее.
# Обрабатывать ли геодату
"AllowGeodata" : "True", - включаешь геодату
и радуешься.
геодату можно найти в шаре, по запросу high five geodata.
В папку geodata запихиваешь геодату, она формата *.l2j, там много файликов, называются 11_21.L2J и так далее.
# Обрабатывать ли геодату
"AllowGeodata" : "True", - включаешь геодату
и радуешься.
геодату можно найти в шаре, по запросу high five geodata.
2018-10-08 13:15:33,230 INFO o.m.g.g.GeoEngine [main] - GeoEngine: Loading Geodata...
2018-10-08 13:15:33,231 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 11_23.l2j
2018-10-08 13:15:33,246 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 11_24.l2j
2018-10-08 13:15:33,249 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 11_25.l2j
2018-10-08 13:15:33,251 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 11_26.l2j
2018-10-08 13:15:33,254 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 12_23.l2j
2018-10-08 13:15:33,256 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 12_24.l2j
2018-10-08 13:15:33,288 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 12_25.l2j
2018-10-08 13:15:33,295 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 12_26.l2j
2018-10-08 13:15:33,297 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_21.l2j
2018-10-08 13:15:33,299 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_22.l2j
2018-10-08 13:15:33,301 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_23.l2j
2018-10-08 13:15:33,307 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_24.l2j
2018-10-08 13:15:33,335 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_25.l2j
2018-10-08 13:15:33,361 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 13_26.l2j
2018-10-08 13:15:33,363 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_21.l2j
2018-10-08 13:15:33,364 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_22.l2j
2018-10-08 13:15:33,373 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_23.l2j
2018-10-08 13:15:33,397 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_24.l2j
2018-10-08 13:15:33,421 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_25.l2j
2018-10-08 13:15:33,443 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 14_26.l2j
2018-10-08 13:15:33,444 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_10.l2j
2018-10-08 13:15:33,446 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_11.l2j
2018-10-08 13:15:33,448 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_12.l2j
2018-10-08 13:15:33,450 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_18.l2j
2018-10-08 13:15:33,451 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_19.l2j
2018-10-08 13:15:33,452 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_20.l2j
2018-10-08 13:15:33,453 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_21.l2j
2018-10-08 13:15:33,454 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_22.l2j
2018-10-08 13:15:33,455 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_23.l2j
2018-10-08 13:15:33,456 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_24.l2j
2018-10-08 13:15:33,457 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_25.l2j
2018-10-08 13:15:33,458 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 15_26.l2j
2018-10-08 13:15:33,459 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_10.l2j
2018-10-08 13:15:33,460 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_11.l2j
2018-10-08 13:15:33,462 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_12.l2j
2018-10-08 13:15:33,464 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_13.l2j
2018-10-08 13:15:33,466 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_14.l2j
2018-10-08 13:15:33,467 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_15.l2j
2018-10-08 13:15:33,468 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_16.l2j
2018-10-08 13:15:33,469 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_17.l2j
2018-10-08 13:15:33,470 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_18.l2j
2018-10-08 13:15:33,471 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_19.l2j
2018-10-08 13:15:33,475 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_20.l2j
2018-10-08 13:15:33,480 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_21.l2j
2018-10-08 13:15:33,481 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_22.l2j
2018-10-08 13:15:33,482 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_23.l2j
2018-10-08 13:15:33,483 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_24.l2j
2018-10-08 13:15:33,485 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_25.l2j
2018-10-08 13:15:33,487 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 16_26.l2j
2018-10-08 13:15:33,488 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_10.l2j
2018-10-08 13:15:33,489 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_11.l2j
2018-10-08 13:15:33,491 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_12.l2j
2018-10-08 13:15:33,492 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_13.l2j
2018-10-08 13:15:33,494 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_14.l2j
2018-10-08 13:15:33,495 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_15.l2j
2018-10-08 13:15:33,497 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_16.l2j
2018-10-08 13:15:33,505 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_17.l2j
2018-10-08 13:15:33,507 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_18.l2j
2018-10-08 13:15:33,508 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_19.l2j
2018-10-08 13:15:33,512 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_20.l2j
2018-10-08 13:15:33,514 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_21.l2j
2018-10-08 13:15:33,519 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_22.l2j
2018-10-08 13:15:33,523 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_23.l2j
2018-10-08 13:15:33,525 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_24.l2j
2018-10-08 13:15:33,528 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_25.l2j
2018-10-08 13:15:33,531 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 17_26.l2j
2018-10-08 13:15:33,532 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_10.l2j
2018-10-08 13:15:33,535 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_11.l2j
2018-10-08 13:15:33,537 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_12.l2j
2018-10-08 13:15:33,539 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_13.l2j
2018-10-08 13:15:33,540 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_14.l2j
2018-10-08 13:15:33,543 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_15.l2j
2018-10-08 13:15:33,545 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_16.l2j
2018-10-08 13:15:33,548 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_17.l2j
2018-10-08 13:15:33,549 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_18.l2j
2018-10-08 13:15:33,550 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_19.l2j
2018-10-08 13:15:33,553 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_20.l2j
2018-10-08 13:15:33,557 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_21.l2j
2018-10-08 13:15:33,561 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_22.l2j
2018-10-08 13:15:33,565 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_23.l2j
2018-10-08 13:15:33,569 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_24.l2j
2018-10-08 13:15:33,573 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_25.l2j
2018-10-08 13:15:33,575 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 18_26.l2j
2018-10-08 13:15:33,576 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_10.l2j
2018-10-08 13:15:33,578 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_11.l2j
2018-10-08 13:15:33,579 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_12.l2j
2018-10-08 13:15:33,581 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_13.l2j
2018-10-08 13:15:33,583 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_14.l2j
2018-10-08 13:15:33,586 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_15.l2j
2018-10-08 13:15:33,589 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_16.l2j
2018-10-08 13:15:33,594 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_17.l2j
2018-10-08 13:15:33,595 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_18.l2j
2018-10-08 13:15:34,621 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_19.l2j
2018-10-08 13:15:34,624 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_20.l2j
2018-10-08 13:15:34,629 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_21.l2j
2018-10-08 13:15:34,633 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_22.l2j
2018-10-08 13:15:34,639 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_23.l2j
2018-10-08 13:15:34,646 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_24.l2j
2018-10-08 13:15:34,648 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_25.l2j
2018-10-08 13:15:34,652 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 19_26.l2j
2018-10-08 13:15:34,655 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_10.l2j
2018-10-08 13:15:34,656 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_11.l2j
2018-10-08 13:15:34,658 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_12.l2j
2018-10-08 13:15:34,659 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_13.l2j
2018-10-08 13:15:34,662 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_14.l2j
2018-10-08 13:15:34,666 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_15.l2j
2018-10-08 13:15:34,668 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_16.l2j
2018-10-08 13:15:34,671 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_17.l2j
2018-10-08 13:15:34,675 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_18.l2j
2018-10-08 13:15:34,678 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_19.l2j
2018-10-08 13:15:34,681 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_20.l2j
2018-10-08 13:15:34,686 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_21.l2j
2018-10-08 13:15:34,695 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_22.l2j
2018-10-08 13:15:34,699 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_23.l2j
2018-10-08 13:15:34,702 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_24.l2j
2018-10-08 13:15:34,704 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_25.l2j
2018-10-08 13:15:34,708 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 20_26.l2j
2018-10-08 13:15:34,711 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_10.l2j
2018-10-08 13:15:34,712 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_11.l2j
2018-10-08 13:15:34,713 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_12.l2j
2018-10-08 13:15:34,714 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_13.l2j
2018-10-08 13:15:34,715 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_14.l2j
2018-10-08 13:15:34,719 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_15.l2j
2018-10-08 13:15:34,723 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_16.l2j
2018-10-08 13:15:34,728 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_17.l2j
2018-10-08 13:15:34,730 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_18.l2j
2018-10-08 13:15:34,735 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_19.l2j
2018-10-08 13:15:34,738 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_20.l2j
2018-10-08 13:15:34,741 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_21.l2j
2018-10-08 13:15:34,746 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_22.l2j
2018-10-08 13:15:34,751 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_23.l2j
2018-10-08 13:15:34,755 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_24.l2j
2018-10-08 13:15:34,761 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 21_25.l2j
2018-10-08 13:15:34,763 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_10.l2j
2018-10-08 13:15:34,764 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_11.l2j
2018-10-08 13:15:34,770 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_12.l2j
2018-10-08 13:15:34,771 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_13.l2j
2018-10-08 13:15:34,775 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_14.l2j
2018-10-08 13:15:34,780 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_15.l2j
2018-10-08 13:15:34,786 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_16.l2j
2018-10-08 13:15:34,792 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_17.l2j
2018-10-08 13:15:34,794 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_18.l2j
2018-10-08 13:15:34,797 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_19.l2j
2018-10-08 13:15:34,800 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_20.l2j
2018-10-08 13:15:34,804 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_21.l2j
2018-10-08 13:15:34,809 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_22.l2j
2018-10-08 13:15:34,812 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_23.l2j
2018-10-08 13:15:34,830 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_24.l2j
2018-10-08 13:15:34,834 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_25.l2j
2018-10-08 13:15:34,839 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 22_26.l2j
2018-10-08 13:15:34,840 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_10.l2j
2018-10-08 13:15:34,841 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_11.l2j
2018-10-08 13:15:34,843 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_12.l2j
2018-10-08 13:15:34,847 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_13.l2j
2018-10-08 13:15:34,851 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_14.l2j
2018-10-08 13:15:34,861 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_15.l2j
2018-10-08 13:15:34,869 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_16.l2j
2018-10-08 13:15:34,873 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_17.l2j
2018-10-08 13:15:34,877 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_18.l2j
2018-10-08 13:15:34,883 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_19.l2j
2018-10-08 13:15:34,888 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_20.l2j
2018-10-08 13:15:34,892 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_21.l2j
2018-10-08 13:15:34,898 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_22.l2j
2018-10-08 13:15:34,902 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_23.l2j
2018-10-08 13:15:34,905 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_24.l2j
2018-10-08 13:15:34,909 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_25.l2j
2018-10-08 13:15:34,911 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 23_26.l2j
2018-10-08 13:15:34,912 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_10.l2j
2018-10-08 13:15:34,913 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_11.l2j
2018-10-08 13:15:34,915 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_12.l2j
2018-10-08 13:15:34,921 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_13.l2j
2018-10-08 13:15:34,923 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_14.l2j
2018-10-08 13:15:34,927 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_15.l2j
2018-10-08 13:15:34,931 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_16.l2j
2018-10-08 13:15:34,935 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_17.l2j
2018-10-08 13:15:34,939 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_18.l2j
2018-10-08 13:15:34,942 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_19.l2j
2018-10-08 13:15:34,945 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_20.l2j
2018-10-08 13:15:34,953 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_21.l2j
2018-10-08 13:15:34,957 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_22.l2j
2018-10-08 13:15:34,967 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_23.l2j
2018-10-08 13:15:34,970 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_24.l2j
2018-10-08 13:15:34,971 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_25.l2j
2018-10-08 13:15:34,972 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 24_26.l2j
2018-10-08 13:15:34,973 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_10.l2j
2018-10-08 13:15:34,974 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_11.l2j
2018-10-08 13:15:34,977 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_12.l2j
2018-10-08 13:15:34,986 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_14.l2j
2018-10-08 13:15:34,998 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_15.l2j
2018-10-08 13:15:35,008 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_16.l2j
2018-10-08 13:15:35,012 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_17.l2j
2018-10-08 13:15:35,017 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_18.l2j
2018-10-08 13:15:35,020 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_19.l2j
2018-10-08 13:15:35,028 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_20.l2j
2018-10-08 13:15:35,030 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_21.l2j
2018-10-08 13:15:35,033 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_22.l2j
2018-10-08 13:15:35,033 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_23.l2j
2018-10-08 13:15:35,034 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 25_24.l2j
2018-10-08 13:15:35,035 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 26_11.l2j
2018-10-08 13:15:35,037 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 26_12.l2j
2018-10-08 13:15:35,038 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 26_14.l2j
2018-10-08 13:15:35,040 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 26_15.l2j
2018-10-08 13:15:35,041 DEBUG o.m.g.g.GeoEngine [main] - GeoEngine: Loading: 26_16.l2j
2018-10-08 13:15:35,042 INFO o.m.g.g.GeoEngine [main] - GeoEngine: Loaded 203 map(s), max layers: 21
Значит все нормально получается, необходимое загрузилось по геодате? В конце видно что якобы загрузилось 203 карты.нет, это он показывает что загрузилось, а что нет.
да.Значит все нормально получается, необходимое загрузилось по геодате? В конце видно что якобы загрузилось 203 карты.
Кстати если включен рейт на квесты, то он может не сдатьсяНарод, у кого нибудь были проблемы с квестами на первую профессию?
Квест PathOfTheRogue начала у Капитан Безик.
Ситуация такая, когда проходишь данный квест, Безик отправляет к Нети, а Нети отправляет бить мобов Скелетов в Руинс Агойн, при помощи квест итемов. Получить необходимо 10 квест итемов, даются нормально, все набили. И тут самое веселое, Нети должна датьВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или РегистрацияВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация(Подкова Света), но это не происходит. Отправляет снова бить этих же мобов.
Тоже самое и с квестом PathOfTheHumanWizard.
А в коде как это написано?
package org.mmocore.gameserver.scripts.quests;
import org.mmocore.commons.utils.Rnd;
import org.mmocore.gameserver.data.scripts.Functions;
import org.mmocore.gameserver.model.base.ClassId;
import org.mmocore.gameserver.model.instances.NpcInstance;
import org.mmocore.gameserver.model.quest.Quest;
import org.mmocore.gameserver.model.quest.QuestState;
import org.mmocore.gameserver.network.lineage.components.NpcString;
import org.mmocore.gameserver.network.lineage.serverpackets.SocialAction;
import org.mmocore.gameserver.object.Inventory;
import org.mmocore.gameserver.object.Player;
import org.mmocore.gameserver.object.components.variables.PlayerVariables;
import org.mmocore.gameserver.utils.version.Chronicle;
import org.mmocore.gameserver.utils.version.ChronicleCheck;
/**
* Based on official Freya
*
* @author Magister
* @version 1.3
* @date 04/10/2015
* @tested OK
*/
@ChronicleCheck(Chronicle.HIGH_FIVE)
public class _403_PathOfTheRogue extends Quest {
// npc
private final static int captain_bezique = 30379;
private final static int neti = 30425;
// mobs
private final static int tracker_skeleton = 20035;
private final static int tracker_skeleton_leader = 20042;
private final static int scout_skeleton = 20045;
private final static int sniper_skeleton = 20051;
private final static int ruin_spartoi = 20054;
private final static int raging_spartoi = 20060;
private final static int catseye_bandit = 27038;
// questitem
private final static int beziques_letter = 1180;
private final static int spatois_bones = 1183;
private final static int horseshoe_of_light = 1184;
private final static int wanted_bill = 1185;
private final static int stolen_jewelry = 1186;
private final static int stolen_tomes = 1187;
private final static int stolen_ring = 1188;
private final static int stolen_necklace = 1189;
private final static int beziques_recommendation = 1190;
// items
private final static int netis_bow = 1181;
private final static int netis_dagger = 1182;
public _403_PathOfTheRogue() {
super(false);
addStartNpc(captain_bezique);
addTalkId(neti);
addKillId(catseye_bandit, tracker_skeleton, tracker_skeleton_leader, scout_skeleton, sniper_skeleton, ruin_spartoi, raging_spartoi);
addAttackId(catseye_bandit, tracker_skeleton, tracker_skeleton_leader, scout_skeleton, sniper_skeleton, ruin_spartoi, raging_spartoi);
addQuestItem(beziques_letter, spatois_bones, horseshoe_of_light, wanted_bill, stolen_jewelry, stolen_tomes, stolen_ring, stolen_necklace, beziques_recommendation, netis_bow, netis_dagger);
addLevelCheck(18);
addClassIdCheck(ClassId.fighter);
}
@Override
public String onEvent(String event, QuestState st, NpcInstance npc) {
String htmltext = event;
int npcId = npc.getNpcId();
int talker_occupation = st.getPlayer().getPlayerClassComponent().getClassId().getId();
int fighter = 0x00;
int rogue = 0x07;
if (npcId == captain_bezique) {
if (event.equalsIgnoreCase("quest_accept")) {
st.setCond(1);
st.setState(STARTED);
st.soundEffect(SOUND_ACCEPT);
st.giveItems(beziques_letter, 1);
htmltext = "captain_bezique_q0403_06.htm";
} else if (event.equalsIgnoreCase("403_reply_2")) {
switch (isAvailableFor(st.getPlayer())) {
case LEVEL:
htmltext = "captain_bezique_q0403_03.htm";
st.exitQuest(true);
break;
case CLASS_ID:
if (talker_occupation != fighter) {
if (talker_occupation == rogue) {
htmltext = "captain_bezique_q0403_02a.htm";
st.exitQuest(true);
} else {
htmltext = "captain_bezique_q0403_02.htm";
st.exitQuest(true);
}
}
break;
default:
if (st.ownItemCount(beziques_recommendation) > 0)
htmltext = "captain_bezique_q0403_04.htm";
else
htmltext = "captain_bezique_q0403_05.htm";
break;
}
}
} else if (npcId == neti) {
if (event.equalsIgnoreCase("403_reply_1")) {
if (st.ownItemCount(beziques_letter) > 0) {
st.takeItems(beziques_letter, 1);
if (st.ownItemCount(netis_bow) == 0)
st.giveItems(netis_bow, 1);
if (st.ownItemCount(netis_dagger) == 0)
st.giveItems(netis_dagger, 1);
st.setCond(2);
htmltext = "neti_q0403_05.htm";
st.soundEffect(SOUND_MIDDLE);
}
}
}
return htmltext;
}
@Override
public String onTalk(NpcInstance npc, QuestState st) {
String htmltext = NO_QUEST_DIALOG;
Player player = st.getPlayer();
int npcId = npc.getNpcId();
int id = st.getState();
int talker_level = st.getPlayer().getLevel();
int GetOneTimeQuestFlag = st.getPlayer().getPlayerVariables().getInt(PlayerVariables.profession_145);
switch (id) {
case CREATED:
if (npcId == captain_bezique)
htmltext = "captain_bezique_q0403_01.htm";
break;
case STARTED:
if (npcId == captain_bezique) {
if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(stolen_jewelry) > 0 && st.ownItemCount(stolen_tomes) > 0 && st.ownItemCount(stolen_ring) > 0 && st.ownItemCount(stolen_necklace) > 0) {
st.takeItems(netis_bow, -1);
st.takeItems(netis_dagger, -1);
st.takeItems(stolen_jewelry, 1);
st.takeItems(stolen_tomes, 1);
st.takeItems(stolen_ring, 1);
st.takeItems(stolen_necklace, 1);
st.takeItems(wanted_bill, -1);
st.giveItems(beziques_recommendation, 1);
if (GetOneTimeQuestFlag == 0) {
st.getPlayer().getPlayerVariables().set(PlayerVariables.profession_145, String.valueOf(1), -1);
if (talker_level >= 20)
st.addExpAndSp(320534, 20232);
else if (talker_level == 19)
st.addExpAndSp(456128, 26930);
else
st.addExpAndSp(591724, 33628);
st.giveItems(ADENA_ID, 163800);
}
htmltext = "captain_bezique_q0403_09.htm";
player.sendPacket(new SocialAction(st.getPlayer().getObjectId(), 3));
st.soundEffect(SOUND_FINISH);
st.exitQuest(false);
} else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) > 0)
htmltext = "captain_bezique_q0403_07.htm";
else if (st.ownItemCount(horseshoe_of_light) > 0) {
htmltext = "captain_bezique_q0403_08.htm";
st.takeItems(horseshoe_of_light, 1);
st.giveItems(wanted_bill, 1);
st.setCond(5);
} else if (st.ownItemCount(netis_bow) > 0 && st.ownItemCount(netis_dagger) > 0 && st.ownItemCount(wanted_bill) == 0)
htmltext = "captain_bezique_q0403_10.htm";
else if (st.ownItemCount(wanted_bill) > 0)
htmltext = "captain_bezique_q0403_11.htm";
} else if (npcId == neti) {
if (st.ownItemCount(beziques_letter) > 0)
htmltext = "neti_q0403_01.htm";
else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) {
if (st.ownItemCount(wanted_bill) > 0)
htmltext = "neti_q0403_08.htm";
else if (st.ownItemCount(spatois_bones) < 10)
htmltext = "neti_q0403_06.htm";
else if (st.ownItemCount(spatois_bones) >= 10) {
st.setCond(4);
st.takeItems(spatois_bones, -1);
st.giveItems(horseshoe_of_light, 1);
htmltext = "neti_q0403_07.htm";
st.soundEffect(SOUND_MIDDLE);
}
} else if (st.ownItemCount(horseshoe_of_light) > 0)
htmltext = "neti_q0403_08.htm";
}
break;
}
return htmltext;
}
@Override
public String onKill(NpcInstance npc, QuestState st) {
int npcId = npc.getNpcId();
int GetMemoState = st.getInt("myself_i_quest2_cookie");
if (npcId == catseye_bandit) {
Functions.npcSay(npc, NpcString.I_MUST_DO_SOMETHING_ABOUT_THIS_SHAMEFUL_INCIDENT);
if (st.ownItemCount(wanted_bill) > 0 && GetMemoState == 1) {
switch (Rnd.get(4)) {
case 0: {
if (st.ownItemCount(stolen_jewelry) == 0) {
st.giveItems(stolen_jewelry, 1);
if (st.ownItemCount(stolen_jewelry) + st.ownItemCount(stolen_tomes) + st.ownItemCount(stolen_ring) + st.ownItemCount(stolen_necklace) >= 4) {
st.setCond(6);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
break;
}
case 1: {
if (st.ownItemCount(stolen_tomes) == 0) {
st.giveItems(stolen_tomes, 1);
if (st.ownItemCount(stolen_jewelry) + st.ownItemCount(stolen_tomes) + st.ownItemCount(stolen_ring) + st.ownItemCount(stolen_necklace) >= 4) {
st.setCond(6);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
break;
}
case 2: {
if (st.ownItemCount(stolen_ring) == 0) {
st.giveItems(stolen_ring, 1);
if (st.ownItemCount(stolen_jewelry) + st.ownItemCount(stolen_tomes) + st.ownItemCount(stolen_ring) + st.ownItemCount(stolen_necklace) >= 4) {
st.setCond(6);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
break;
}
case 3: {
if (st.ownItemCount(stolen_necklace) == 0) {
st.giveItems(stolen_necklace, 1);
if (st.ownItemCount(stolen_jewelry) + st.ownItemCount(stolen_tomes) + st.ownItemCount(stolen_ring) + st.ownItemCount(stolen_necklace) >= 4) {
st.setCond(6);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
break;
}
}
}
} else if (npcId == tracker_skeleton && npcId == scout_skeleton && npcId == sniper_skeleton) {
if (st.ownItemCount(spatois_bones) < 10 && GetMemoState == 1 && Rnd.get(10) < 2) {
st.giveItems(spatois_bones, 1);
if (st.ownItemCount(spatois_bones) >= 10) {
st.setCond(3);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
} else if (npcId == tracker_skeleton_leader) {
if (st.ownItemCount(spatois_bones) < 10 && GetMemoState == 1 && Rnd.get(10) < 3) {
st.giveItems(spatois_bones, 1);
if (st.ownItemCount(spatois_bones) >= 10) {
st.setCond(3);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
} else if (npcId == ruin_spartoi && npcId == raging_spartoi) {
if (st.ownItemCount(spatois_bones) < 10 && GetMemoState == 1 && Rnd.get(10) < 8) {
st.giveItems(spatois_bones, 1);
if (st.ownItemCount(spatois_bones) >= 10) {
st.setCond(3);
st.soundEffect(SOUND_MIDDLE);
} else
st.soundEffect(SOUND_ITEMGET);
}
}
return null;
}
@Override
public String onAttack(NpcInstance npc, QuestState st) {
int GetMemoState = st.getInt("myself_i_quest2_cookie");
if (st.getItemEquipped(Inventory.PAPERDOLL_RHAND) != netis_bow && st.getItemEquipped(Inventory.PAPERDOLL_RHAND) != netis_dagger) {
st.setMemoState("myself_i_quest2_cookie", "0");
} else if (GetMemoState == 0) {
st.setMemoState("myself_i_quest2_cookie", "1");
Functions.npcSay(npc, NpcString.YOU_CHILDISH_FOOL_DO_YOU_THINK_YOU_CAN_CATCH_ME);
}
return null;
}
}
Может у тебя при сдаче квеста каким-то образом остается bezique письмо? Может ты его вручную давно создал и забыл про него?
Вообще оно создается 1 раз при взятии квеста, и удаляется когда взамен получаешь дагер и лук. А вот при наличии такового, как раз нети будет отправлять бить дальше скелетов, вместо выдачи подковы.
} else if (npcId == neti) {
if (st.ownItemCount(beziques_letter) > 0)
htmltext = "neti_q0403_01.htm";
else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) {
if (st.ownItemCount(wanted_bill) > 0)
htmltext = "neti_q0403_08.htm";
else if (st.ownItemCount(spatois_bones) < 10)
htmltext = "neti_q0403_06.htm";
else if (st.ownItemCount(spatois_bones) >= 10) {
st.setCond(4);
st.takeItems(spatois_bones, -1);
st.giveItems(horseshoe_of_light, 1);
htmltext = "neti_q0403_07.htm";
st.soundEffect(SOUND_MIDDLE);
}
} else if (st.ownItemCount(horseshoe_of_light) > 0)
htmltext = "neti_q0403_08.htm";
}
Кстати если включен рейт на квесты, то он может не сдаться
# Рейт награды за квесты
"RateQuestsReward" : "0.",
# Рейты на дроп квестовых вещей
"RateQuestsDrop" : "0.",
Проблема не в том, сколько создается квестом, а то, что у тебя в инвентаре - ведь все проверки основаны на предметах, а не состоянии квеста.А что здесь не так, что то понять не могу Создается то он всего то один раз, как надо, вот потом Нети мучает)
else if (npcId == neti) {
if (st.ownItemCount(beziques_letter) > 0) //Если есть изначальное письмо, показываем хтмлку, что нужно идти бить мобов
htmltext = "neti_q0403_01.htm";
else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) { //Если есть подкова, отправляем лесом
if (st.ownItemCount(wanted_bill) > 0) //Если есть список на убийство 4х мобов, показываем хтмлку, что нужно идти бить тех мобов
htmltext = "neti_q0403_08.htm";
else if (st.ownItemCount(spatois_bones) < 10) //Если меньше 10 костей, показываем хтмлку, что нужно идти бить мобов
htmltext = "neti_q0403_06.htm";
else if (st.ownItemCount(spatois_bones) >= 10) { //Если все предыдущее не про нас, выдаем подкову
st.setCond(4);
st.takeItems(spatois_bones, -1);
st.giveItems(horseshoe_of_light, 1);
htmltext = "neti_q0403_07.htm";
st.soundEffect(SOUND_MIDDLE);
}
} else if (st.ownItemCount(horseshoe_of_light) > 0)
htmltext = "neti_q0403_08.htm";
}
Код получается корректный? Просто со многими квестами на первую профу есть проблемы. Возможно и с остальными. Пока еще не проверял.Проблема не в том, сколько создается квестом, а то, что у тебя в инвентаре - ведь все проверки основаны на предметах, а не состоянии квеста.
Добавил комментарии:
Код:else if (npcId == neti) { if (st.ownItemCount(beziques_letter) > 0) //Если есть изначальное письмо, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_01.htm"; else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) { //Если есть подкова, отправляем лесом if (st.ownItemCount(wanted_bill) > 0) //Если есть список на убийство 4х мобов, показываем хтмлку, что нужно идти бить тех мобов htmltext = "neti_q0403_08.htm"; else if (st.ownItemCount(spatois_bones) < 10) //Если меньше 10 костей, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_06.htm"; else if (st.ownItemCount(spatois_bones) >= 10) { //Если все предыдущее не про нас, выдаем подкову st.setCond(4); st.takeItems(spatois_bones, -1); st.giveItems(horseshoe_of_light, 1); htmltext = "neti_q0403_07.htm"; st.soundEffect(SOUND_MIDDLE); } } else if (st.ownItemCount(horseshoe_of_light) > 0) htmltext = "neti_q0403_08.htm"; }
Код корректный всегда, но только до момента, когда нашли баг. Ты посмотри, что у тебя в инвентаре когда ты подходишь к нети сдавать кости и сравни с тем, что описано в комментариях к коду. Если что-то лишнее есть, то откуда оно взялось. А если ничего лишнего нет, значит где-то в коде правда косяк(может итем ид кости, может еще что)Код получается корректный? Просто со многими квестами на первую профу есть проблемы. Возможно и с остальными. Пока еще не проверял.
забыл ещё сказать о рандомах в квестах указатьПроблема не в том, сколько создается квестом, а то, что у тебя в инвентаре - ведь все проверки основаны на предметах, а не состоянии квеста.
Добавил комментарии:
Код:else if (npcId == neti) { if (st.ownItemCount(beziques_letter) > 0) //Если есть изначальное письмо, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_01.htm"; else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) { //Если есть подкова, отправляем лесом if (st.ownItemCount(wanted_bill) > 0) //Если есть список на убийство 4х мобов, показываем хтмлку, что нужно идти бить тех мобов htmltext = "neti_q0403_08.htm"; else if (st.ownItemCount(spatois_bones) < 10) //Если меньше 10 костей, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_06.htm"; else if (st.ownItemCount(spatois_bones) >= 10) { //Если все предыдущее не про нас, выдаем подкову st.setCond(4); st.takeItems(spatois_bones, -1); st.giveItems(horseshoe_of_light, 1); htmltext = "neti_q0403_07.htm"; st.soundEffect(SOUND_MIDDLE); } } else if (st.ownItemCount(horseshoe_of_light) > 0) htmltext = "neti_q0403_08.htm"; }
if (Rnd.get(100) < 100)
забыл ещё сказать о рандомах в квестах указать
Код:if (Rnd.get(100) < 100)
Тут все логично, что если больше 10 итемов или равно 10, она должна выдать эту подкову. Правила вроде как соблюдены, в инвентаре в квестах лежат 10 итемов. Но почему то она все равно отправляет бить мобов, якобы у меня менее 10 штук итемов.Проблема не в том, сколько создается квестом, а то, что у тебя в инвентаре - ведь все проверки основаны на предметах, а не состоянии квеста.
Добавил комментарии:
Код:else if (npcId == neti) { if (st.ownItemCount(beziques_letter) > 0) //Если есть изначальное письмо, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_01.htm"; else if (st.ownItemCount(horseshoe_of_light) == 0 && st.ownItemCount(beziques_letter) == 0) { //Если есть подкова, отправляем лесом if (st.ownItemCount(wanted_bill) > 0) //Если есть список на убийство 4х мобов, показываем хтмлку, что нужно идти бить тех мобов htmltext = "neti_q0403_08.htm"; else if (st.ownItemCount(spatois_bones) < 10) //Если меньше 10 костей, показываем хтмлку, что нужно идти бить мобов htmltext = "neti_q0403_06.htm"; else if (st.ownItemCount(spatois_bones) >= 10) { //Если все предыдущее не про нас, выдаем подкову st.setCond(4); st.takeItems(spatois_bones, -1); st.giveItems(horseshoe_of_light, 1); htmltext = "neti_q0403_07.htm"; st.soundEffect(SOUND_MIDDLE); } } else if (st.ownItemCount(horseshoe_of_light) > 0) htmltext = "neti_q0403_08.htm"; }
Код корректный всегда, но только до момента, когда нашли баг. Ты посмотри, что у тебя в инвентаре когда ты подходишь к нети сдавать кости и сравни с тем, что описано в комментариях к коду. Если что-то лишнее есть, то откуда оно взялось. А если ничего лишнего нет, значит где-то в коде правда косяк(может итем ид кости, может еще что)