Название: Геодата, что это и зачем. [Версия для печати] Автор: admin Время: 2024-9-17 19:42 Название: Геодата, что это и зачем. Хроники PreludeHarbingers of WarAge of SplendorRise of DarknessScions of DestinyOath of BloodInterludeThe 1st Throne: The KamaelThe 1st Throne: HellboundThe 2nd Throne: GraciaThe 2nd Throne: FreyaChaotic Throne: High FiveGoddess of Destruction AwakeningGoddess of Destruction HarmonyGoddess of Destruction TautiGoddess of Destruction Glory DaysGoddess of Destruction LindviorValliance / Epeisodion / RaidersErtheia / Dimensional StrangersInfinite OdysseyHeliosGrand CursadeSalvationFafurionShadow of the Kamael ~6 o8 U# G% `Сборка L2 Java 2 [/ p6 A/ B2 b* O9 k, t5 x0 ]2 v y6 s- v$ ?' i
' Z5 X! I' u" r; _# n4 j5 O$ e1 d9 ]
Доброго времени суток. 5 w& k' o1 O6 O. d0 t, [! E/ {# x# X % c& z: n9 p9 e) Q0 |9 w4 ` ~6 ?7 m, e7 G
Часто появляются вопросы на "стёртую до бороды" тему геодаты, зачем она нужна, какая есть и куда пихать. Пример будет на хрониках Interlude:! \* f- L% m/ j+ C; f$ P
Возьмём две основные *_conv.dat и *.l2j, первую отбросим так как этот формат для ОФФ-серверов,хотя есть реализации в яве и этого формата.& g# }9 L1 L8 v8 @+ C6 O
Для чего она? Для мобов не существует стен как в принципе и для чаров, упёршись в стену и буксуя на месте вы всё таки меняете свои координаты, мобы проскакивают их шустрее.1 I# [& K4 I7 @. z
По скольку для мобов мир - ровное плато, агрессивные вас заметят и атакуют если окажетесь в их радиусе даже если находитесь за стеной и не видите их. Геодата поможет вам от этого избавиться, если сказать короче геодата - информация о всех препятствиях имеющихся в клиенте игры. Поэтому геодата существует для разных хроник, геодата интерлюда будет считаться не полной для грации к примеру.% Z/ q" D/ |: P# m
+ S# k" E6 ]* N( w3 y
Вся карта мира разделена на квадраты,они пронумерованы,благодаря этому вы сможете определить какой квадрат отвечает за конкретную область: + R4 Z$ Z1 d. `[attach]495[/attach] # w F. V' t k4 Z+ }* G- s0 n" n" Y8 o' k' ~# S$ h
На картинке отмечена только поверхность,подземелья не отмечены как и материк Хеллбонда, но это не значит что квадраты пустые.В клиенте квадраты находятся в папке MAPS и пустые весят от остальных одинаково. ! h7 X5 z4 @0 g7 D" lГеодаты в шаре полно и она разного качества, подбирайте ту которая будет корректно работать на вашей сборке. Если в квадрате есть косяки, к примеру невидимые преграды,или не можете пройти в открытые двери или ворота,то это не причина менять его на другой,существует софт для редактирования гео и невидимую перегородку можно убрать, но это отдельная тема...! u" c$ {) W4 h$ B9 n
Работа геодаты зависит еще и от гео-движка сборки - неотъемлемой составной части ядра этой сборки,так что не путайтесь с определениями что бы других не путать,геодата и геодвиг разные вещи." t& R4 U4 w1 N7 L* ]5 G# t
У разных команд делающие эмуляторы разного качества гео-движки поэтому не всякая гео подойдёт к сборкам каких либо команд на 100%, чей геодвиг качественней решайте сами,тестируйте, темы "что лучше" для флуда. 1 {" a; s; i0 s6 z* D+ p 8 a2 a' O; k$ A+ n( X: z % d6 h; @# x- z9 h# EЧто такое pathnode? Отличная штука, благодаря этой приблуде мобы у вас при агре не будут ломиться сквозь стены, они их будут оббегать как и сам персонаж, создаётся пачнод определённым софтом с квадрата геодаты и его качество зависит от этого квадрата.Расширение пачнода - *.pn.7 K. H- c% m, r5 ^7 n
Количество файлов пачнода должно быть равно количеству файлов геодаты.+ I& C! C U) H2 ~' R) e5 N
Есть сборки на основе команды Rebellion (а точнее Fortress), такие как L2Dream, L2f ССР, Phoenix, L2Royal извиняюсь если кого забыл, у таких сборок есть возможность поставить геодвижёк на отдельную машину что бы разгрузить основной игровой сервер,но использовать не советую поскольку не доделаны, хотя возможно в платных геосервер уже реализован на 100%. 9 Q$ w9 Y6 Q7 P9 N% z' hТаким сборкам пачнод не требуется, их геодвиг генерирует его в процессе работы,сомневаюсь что это хорошее решение,но и не плохо с другой стороны, кому как,по мне так геодвиг sf в полне нормальный., P. B$ q! r2 j! n6 Z% A
Сборки sf,это L2jServer - первые кто написал ява эмулятор,также L2jFree, L2Emu, L2Ambrella и др. на их основе, так же можно причислить Balancer (Fortress с которого основался Rebellion),но ему пачнод уже не требовался. Был отрезок времени когда эти команды использовали внешний геосервер (кроме L2jServer), но позже от него похоже отказались. ; k# H' V, L& Q0 f0 {Таким сборкам неоходима геодата + пачнод,для комфортной игры вашим клиентам., c k- A/ h n y; J. l
Установка геодаты на сборки без пачнода (Rebelion):0 ~. ?; k7 l; F2 S
Покажу на примере L2Dream.' H ~# k1 _: X5 W
Путь куда закинуть гео,сами файлы ( пути и папки могут отличаться, в зависимости от сборок) *.l2j: & V: }0 `7 }& t9 ]; H& k. s/ u0 h+ B/ G- L
7 w4 i# r; u# uC:\L2Dream\game\data\geodata 8 N% d, e4 N. a4 D1 c: x" j1 e8 ?' |: W7 A1 E' s- W' z4 u
/ C: a5 X' ?% S1 n1 f* ]& Y, ]3 a& X, D9 F
0 H/ L5 Y3 X- B0 I" b7 XНе в "C:\L2Dream\geo\data\geodata"(это и есть внешний геосервер),а именно по тому пути что указал. ! R- y3 p' m+ xНастройка. : P7 I ]* c: E! P0 X3 p: v! I% kИдем по пути "C:\L2Dream\game\config",нам нужен geodata.ini или geodata.properties: . s& w& S$ T( i# d#================================================= ================================================== ==== 1 n; R) O+ t& w3 _4 X/ f i' t# Даный файл является конфигуратором геодаты. " _$ A b+ h2 c3 M5 g# ; c" e( L# a0 \# Геодату можно отключить, запустить в классическом режиме на гейм сервере, а также запустить как выделеный сервер геодаты. 8 k% H% `6 B) ^. y% y#8 m" K ^% c! ?1 _
# На даный момент на сервере геодаты отсутсвует какая-либо авторизация(за ненадобностью). 2 t" x/ ]3 X/ \. q' @, A& e/ B# Если у вас мания взлома, то закрывайтесь на уровне операционной системы. % q* z2 _0 @9 {# Ну или просите прикрутить SSL.0 n' L" V2 p) ?3 }" a
#================================================= ================================================== ====+ Q- X2 G3 \3 a' r4 A& w( Y
! p8 j7 _5 m( V8 S8 p6 p; k& t7 H1 Y3 N7 W
8 b" l3 E0 Z& ]5 `# [4 _! D6 P# Включает/отключает геодату и поиск пути. ' c3 ?3 q! U+ j; q3 t+ k0 W- _- L# Рекомендуется включить. Требует наличия файлов геодаты в data/geodata.8 d7 `/ F5 O m3 d% P
# 0 = Геодата отключена. + S! U' Z# P: m' s* W: \4 H6 `# 1 = Геодата будет загружена в геймсервер. ( ?! M3 A4 Z( V N+ a# 2 = Гейм сервер перейдет в режим клиента, и будет пытатся подключится на указаный адрес, в то время как& Z# Y4 ~# i& j6 s3 \2 V
# сервер геодаты сядет на указаный адрес. Для работы на выделеной машине с несколькими серверами5 f' ~7 D' ^# O, r7 B
# рекомендуется гигабитный (и выше) лан. Среднее потребление траффика на осаде Адена = 400 Кbps на одного игрока, . k& i" S- r. \/ a3 k7 D/ m% N# с учетом активированных им гвардов. При обчной игре среднее потребеление до 200 Kbps на 1 игрока. 3 o! _; T- \" s( PGeoData = 0! |' ?6 ?, t8 n8 S+ {" X
# B$ A' W) v' A" ?) w ^( I6 Z6 z! z+ Q; k, t% {) w. F
# Хост для сервера геодаты.& \0 |/ \) j4 N. v+ ]- I
# * Забиндит все интефейсы. ( M3 d5 N* Z, _& M" a# Игнорируется при GeoData = 0 или GeoData = 1 , j: K+ j w& B; V( FGeoServerHost = 127.0.0.1 0 Y' o* }* _# p# _. K9 i# L2 n0 q; q" a# S) E' _6 w* x
- [9 V# z! m: ^1 U, T+ x# Куда будет пытатся коннектится клиент.0 f) I; y& v* B5 u( j. {5 H
# Игнорируется при GeoData = 0 или GeoData = 1& M6 [' c! E& D, l) ]9 M
GeoClientTargetHost = 127.0.0.12 B) e, _' e7 q5 P/ S* o
* v8 o8 v0 a i. e( H4 M F
: |5 y/ j3 ^9 ~9 A( b
# Порт для геодаты./ B6 q& J# V/ \% V
# Сервер откроет на нем сокет. 0 m1 ]# {1 r9 a* P# Клиент будет пытатся подключится к нему.. i; B4 [7 d2 l* `! q. ?7 @0 ~7 K
# Игнорируется при GeoData = 0 или GeoData = 13 @. E! ^; f' ?! H9 X
GeoPort = 90502 O F; L$ ^9 J& Z; v
5 X( `' T$ Y" x0 }! |9 _2 w. X; k: o) ]
# Сглаживает путь.) |7 U* b2 h/ [% P
# Стоит отключать только для дебага. + |$ Z& ?* J3 K# GPathClean = True & [2 i- o" a7 |9 L. F. D9 g6 B2 @) @3 f/ i% w% C/ Z
- u8 E( ?; ~5 G8 M" W. A& @1 K( B- g7 r- z, z7 N& v
# Включает/отключает геодату и поиск пути. & H% V& v! w6 d _# Рекомендуется включить. Требует наличия файлов геодаты в data/geodata.6 X1 x4 l5 F$ l& f+ H! ?9 d
# 0 = Геодата отключена. 2 H( M5 h& \3 k! L4 c, w! I# 1 = Геодата будет загружена в геймсервер. ; c5 \. L3 _8 S' Q( `6 V# 2 = Гейм сервер перейдет в режим клиента, и будет пытатся подключится на указаный адрес, в то время как 0 I6 @. r8 X# A0 g7 l# сервер геодаты сядет на указаный адрес. Для работы на выделеной машине с несколькими серверами, q, s3 p' b& |2 N; B6 M' Y; }+ d
# рекомендуется гигабитный (и выше) лан. Среднее потребление траффика на осаде Адена = 400 Кbps на одного игрока, & `# \7 @% r4 e( R# с учетом активированных им гвардов. При обчной игре среднее потребеление до 200 Kbps на 1 игрока. . s" K! X7 L2 H! MGeoData = 0 2 {6 M+ P1 M: b# v0 p, Y6 V' G! m: g5 W& v1 ]
9 t g+ Y L$ l- v! m% J% p$ d2 ~ F* p: ^$ ~1 h) S2 @) m
( R/ ?- k& @- x3 g7 m b
В этом параметре меняем 0 на 1.' G# ^; t- I8 `7 {
2 ставим в том случае если всё таки решили поставить геосервер,его настройки: . X! h; c4 d% W x- s# Хост для сервера геодаты. 6 C. X7 h. x4 o4 V( I4 W# * Забиндит все интефейсы. % w3 r/ j' f& j2 h; A' e# l. w# Игнорируется при GeoData = 0 или GeoData = 1 & _ M+ ^5 i1 n7 o' \" F1 A7 qGeoServerHost = 127.0.0.1. n* g) l) j; N% X& c
( l5 u' {$ b( ^
( s% `( n3 N4 \7 C
# Куда будет пытатся коннектится клиент. 1 v/ l' i1 u( Z( Y( X4 u6 f) i$ o# Игнорируется при GeoData = 0 или GeoData = 1 7 u/ h: z, g" q* yGeoClientTargetHost = 127.0.0.1 . G# R/ k i3 i% Q! T9 j , l5 _. F7 G) K) m, F. }3 f( G: N
# Порт для геодаты.3 c$ ]/ N, n* y5 H X
# Сервер откроет на нем сокет.1 J \+ P0 a8 o; L5 I
# Клиент будет пытатся подключится к нему.4 o( ?; H7 W! e' A
# Игнорируется при GeoData = 0 или GeoData = 1+ T: O2 i5 M4 ]8 z @4 m) P
GeoPort = 9050) i* W3 Q, w7 V( l8 ]" Q! X
Здесь всё ясно,можете зайти в "C:\L2Dream\geo" и увеличить выделяемой оперативки на геосервер изменением значений,StartGeoServer.bat: 9 ^- v' Z5 A. R7 w s) m + V. m) `1 h: w6 c: x& M0 p 4 A! R# Y" Q. ]' U! v# Z3 c4 x; ~ q8 D5 W+ l& t3 \) i
% W( K; S: s. A. M2 ]
java -Xms512m -Xmx768m -cp l2dserver.jar l2d.game.geodata.network.geoserver.GeoServer * l0 h& n7 l" f9 H% B* x) U/ X9 B0 E# B5 h2 }- ^' c
& y4 E( r' C" d4 L P1 i 1 b, R1 o# M1 t# E5 w5 { + B- p5 \; N/ F# p- a* R- p8 ?Двери,можете включить если уверены что они у вас работают,так как их "непробиваемость" не во всех геодвижках реализовано:3 _% w8 f8 l4 A9 U$ b" _
0 M6 T$ h2 S3 L3 o/ F
: B& B9 Z) t9 b \ " G% m4 b' M+ B- c/ `, E+ j7 D3 X( S' Y) y9 Z$ H; H! Z
# Обрабатывать ли двери в геодате " U, ~$ G4 E$ B6 f# Настройка влияет на ГеймСервер8 U' u- \4 w3 `9 x9 f n, C
AllowDoors = True * G. Z- V; p% r, SТеперь sf,возьму как основу L2jServer,за всё время он не сильно изменился и не использовал геосервер.: |" R8 \# u3 l M. _
Пути размещения файлов геодаты: Y3 p/ q6 h8 |( X+ \& o! G7 K
: H) D6 E4 _' Z9 i! W* C" v; D- e
C:\L2jServer\gameserver\data\geodata + ^& B) X0 C5 `8 c: b7 u, | " ~5 ?5 N5 G- H* s' U ?6 g, Q6 U% |
+ w$ O" d7 O. h0 S+ L1 Z: H t! T4 x4 ?8 s3 I
В этих файлах прописаны загружаемые геосервером квадраты геодаты,если содержание geo_index.txt и pn_index.txt не совпадает то при загрузке геодаты может вылезти ошибка,просмотрев лог ошибки увидите какого файла геодаты или пачнода не хватает. " h! P6 \' x- t( o8 C2 I& PНастройка,находим по пути "C:\L2jServer\gameserver\config" General.properties,нам нужен следующий раздел:8 t1 S/ p/ {/ \1 L$ {. g/ Q% @. S* E
#------------------------------------------------------------- --------------5 N i$ w" \7 r7 V ~1 Y
# Geodata G. m3 j; c" I, c# ----------------------------------------------------------------------- ----1 @: F1 l! O% K u& O; s
# GeoData options: $ R$ \. _5 B: o2 l( T7 g' I4 S# 0 = GeoData and PathFinding OFF (default) 3 h( K, M6 |% W1 Y# 1 = GeoData is used to check Line Of Sight (LOS) targeting and, R R" X+ ^! m \ \# t
# L2Playable movement. You need to download files for data/geodata folder. b3 }9 I0 y9 k+ J* x, M# Monsters can pass walls but not aggro (no line of sight) through them. " f1 S6 ~8 N, t/ L& r8 C; o# 2 = Full GeoData enabled. Includes PathFinding (requires also /data/pathnode 0 b$ B" s- `: u, S) w* |# files if CellPathFinding not enabled) and all character moves go through% `& o' k9 y8 v4 V0 E E4 m& o
# geodata checks (if a mob passes a wall, pathfinding didn't find a route+ E, B( i$ A! Q5 Q: `) I- T2 W
# but we allow attack and returning home). 5 D' |+ Z# x1 R9 ]' a# Recommended server memory minimum 2 GB, rather 3 GB.) t( p# M% U7 v" Z$ G
# Default: 0 / x( q9 [7 a% g6 @$ lGeoData = 0 % {* J3 T4 F3 k" Z0 b/ m) S& `. Q& {) C) U9 H+ T
+ f* a) }8 @2 L& H. H
# Cell-level pathfinding, produces more accurate routes but is (maybe 10x) heavier to calculate. Recommended for small servers at least.# c7 ]6 ]7 H. ~
# If False, pathnode files are used. Uses a max number of nodes in calculation which can be adjusted in the algorithm if it needs to be faster. 5 e3 o/ q& ^. M3 n" b7 f# Default: False ) X1 I: n$ N/ U0 OCellPathFinding = False- n4 u. l/ c% o
6 m* v) }! [2 B& j" t# ]$ M7 `8 y
8 H4 c. w$ @+ d. v# True = Loads GeoData buffer's content into physical memory. " h0 o5 Q6 M( B$ i) z- {# False = Does not necessarily imply that the GeoData buffer's content is not resident in physical memory.- d8 |9 Y1 T2 P, ^7 a
# Default: True. c% b8 I/ i t; ^
ForceGeodata = True& G6 c1 T2 {- \$ }" ]
5 F& Z/ W9 d0 U8 D; ^ 8 h( K& m' B3 M/ A5 n# This setting controls Client <--> Server Player coordinates synchronization:8 N8 Z; J; G2 V% ?) [) e; }
# -1 - Will synchronize only Z from Client --> Server. Default when no geodata.3 b' h+ J( }( X- U3 p. P
# 1 - Synchronization Client --> Server only. Using this option (without geodata) makes it more difficult for players to bypass obstacles. N- d9 Z$ M v; L; e# 2 - Intended for geodata (at least with cell-level pathfinding, otherwise can you try -1)." O) q- @7 L" R- ^4 k
# Server sends validation packet if client goes too far from server calculated coordinates. 4 E2 T/ x2 {& t4 c# Default: -1 / {: t H+ N9 k; G3 J6 u: NCoordSynchronize = -10 G% ?+ A E4 I
5 D) N" C8 J! n. B+ M9 l " U- |7 f) M5 ?2 B6 W' |. c& U6 C; F3 I# v
& u F+ C0 Z h* E+ m$ q R ( ~; }: R+ v) z+ I9 m$ K $ y/ g) k3 }& A0 Q2 h) O" ]# J2 g Z0 w8 a. u
Ставим 1 если нас только геодата,пачнод отсутствует.В этом случае мы получаем только то что агрессивные мобы не будут на нас кидаться,персы утыкаясь в стену не будут буксовать,а просто остановятся,но мобы если вы завернули за угол будут вас всё равно "видеть" и ломиться к вам через стену.; F5 W+ Q5 a. a( X$ ^
Ставим 2 если пачнод присутствует, так же включаем эту настройку: 6 _# O+ L0 E0 w* l1 l. K3 {: ` w7 c1 b' k' a. s7 c9 z
. S$ ^6 Z5 D* C1 K# h+ H f: _2 T& C+ b. S- Y) u$ w0 X7 D. y$ }& O4 j" f
# Cell-level pathfinding, produces more accurate routes but is (maybe 10x) heavier to calculate. Recommended for small servers at least.. v% X: ^/ e3 f$ A
# If False, pathnode files are used. Uses a max number of nodes in calculation which can be adjusted in the algorithm if it needs to be faster.! O6 X" ^5 \* l" {
# Default: False 0 k1 V# r9 P4 E6 I! @% M% R( m& MCellPathFinding = False# o( B6 @. X; r, ~% A9 _4 p$ Z* H
Y1 q" }& H* v) | 6 r; M( @1 _* A% x% n! R6 E- G2 k o6 p. a3 `) z: B0 F8 t; s
* v- P* r5 v% X+ iСтавим True если хотим более сглаженную работу пачнода,но нагрузка на сервер немного возрастёт,если нет то ничего не меняем. : L- l! c. b) V, N! U2 aПожалуй всё подробно написал, спецы дополняем если что то не учел. 4 D; k: W+ @, L. R" e( e8 E , m0 {, D9 D) x v; z4 Q4 | $ \+ W. \! X9 S1 ]8 R2 wНе забывайте что если вы изменили конфиги при запущенном сервере,то они вступят в силу только после перезапуска сборки. ) n7 v! y/ e1 t+ {; ^3 T8 n/ I6 Q6 S7 }
И строки начинающиеся с "#" никакого значения не имеют, это просто комментарий или один из неактивных вариантов конфигурации. ( b+ {; Z6 U9 P4 e) H2 C& ]4 \" |
Добро пожаловать artace.ru - творческий сектор (https://www.artace.ru/)