Название: Геодата, что это и зачем. [Версия для печати] Автор: 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 Kamael2 l- n0 s; ~7 b& a6 A Сборка L2 Java 2 b: J8 C! y) Z/ ^- R% r6 n9 ~4 v, N* j4 P0 ?. g& W1 z9 }: D
, }7 o$ [# Y8 W5 kДоброго времени суток. 2 P' H- S* k7 \ ! p0 [; E: j! a, l% T+ j I" F# t, Z) V* E
Часто появляются вопросы на "стёртую до бороды" тему геодаты, зачем она нужна, какая есть и куда пихать. Пример будет на хрониках Interlude:' }0 \7 X9 A1 d+ `# N
Возьмём две основные *_conv.dat и *.l2j, первую отбросим так как этот формат для ОФФ-серверов,хотя есть реализации в яве и этого формата. : _5 S. @$ F6 v' q/ c' Q6 M0 i; ]Для чего она? Для мобов не существует стен как в принципе и для чаров, упёршись в стену и буксуя на месте вы всё таки меняете свои координаты, мобы проскакивают их шустрее. . c% Y {- a, n2 h1 qПо скольку для мобов мир - ровное плато, агрессивные вас заметят и атакуют если окажетесь в их радиусе даже если находитесь за стеной и не видите их. Геодата поможет вам от этого избавиться, если сказать короче геодата - информация о всех препятствиях имеющихся в клиенте игры. Поэтому геодата существует для разных хроник, геодата интерлюда будет считаться не полной для грации к примеру.6 E) e1 y% U* u# L# }2 p4 ~8 E
_1 n- O- d& m( [4 M# e* e& l
Вся карта мира разделена на квадраты,они пронумерованы,благодаря этому вы сможете определить какой квадрат отвечает за конкретную область: 2 t9 b6 e" u9 J# Z R3 \/ d[attach]495[/attach]+ D5 W% C4 {; Q
: N! Y- k; V- I- r- g
На картинке отмечена только поверхность,подземелья не отмечены как и материк Хеллбонда, но это не значит что квадраты пустые.В клиенте квадраты находятся в папке MAPS и пустые весят от остальных одинаково. 1 B I- W4 @ g! qГеодаты в шаре полно и она разного качества, подбирайте ту которая будет корректно работать на вашей сборке. Если в квадрате есть косяки, к примеру невидимые преграды,или не можете пройти в открытые двери или ворота,то это не причина менять его на другой,существует софт для редактирования гео и невидимую перегородку можно убрать, но это отдельная тема...+ l4 l# k6 l! Z$ B3 P
Работа геодаты зависит еще и от гео-движка сборки - неотъемлемой составной части ядра этой сборки,так что не путайтесь с определениями что бы других не путать,геодата и геодвиг разные вещи. ; U, Y. ^' Y( B8 d- G; BУ разных команд делающие эмуляторы разного качества гео-движки поэтому не всякая гео подойдёт к сборкам каких либо команд на 100%, чей геодвиг качественней решайте сами,тестируйте, темы "что лучше" для флуда. 6 J* r! F: f3 L5 d/ M 7 W; E' F& d6 U! y+ M- b1 `: p" P! y9 c8 O1 _
Что такое pathnode? Отличная штука, благодаря этой приблуде мобы у вас при агре не будут ломиться сквозь стены, они их будут оббегать как и сам персонаж, создаётся пачнод определённым софтом с квадрата геодаты и его качество зависит от этого квадрата.Расширение пачнода - *.pn. r' R1 @& @) J% Z
Количество файлов пачнода должно быть равно количеству файлов геодаты. 7 V1 R# E) U& Z, DЕсть сборки на основе команды Rebellion (а точнее Fortress), такие как L2Dream, L2f ССР, Phoenix, L2Royal извиняюсь если кого забыл, у таких сборок есть возможность поставить геодвижёк на отдельную машину что бы разгрузить основной игровой сервер,но использовать не советую поскольку не доделаны, хотя возможно в платных геосервер уже реализован на 100%.* S. G# G( R; W5 Z5 f: t
Таким сборкам пачнод не требуется, их геодвиг генерирует его в процессе работы,сомневаюсь что это хорошее решение,но и не плохо с другой стороны, кому как,по мне так геодвиг sf в полне нормальный. 9 U! ] h, P0 t' s ]Сборки sf,это L2jServer - первые кто написал ява эмулятор,также L2jFree, L2Emu, L2Ambrella и др. на их основе, так же можно причислить Balancer (Fortress с которого основался Rebellion),но ему пачнод уже не требовался. Был отрезок времени когда эти команды использовали внешний геосервер (кроме L2jServer), но позже от него похоже отказались. 7 B" N- `) [& G" [% V" HТаким сборкам неоходима геодата + пачнод,для комфортной игры вашим клиентам. : \( e! D! q5 E* nУстановка геодаты на сборки без пачнода (Rebelion): % C7 t/ M( G4 _0 W* j# ^% j4 N% R PПокажу на примере L2Dream. : b9 }1 K# u/ X# }# k8 [) UПуть куда закинуть гео,сами файлы ( пути и папки могут отличаться, в зависимости от сборок) *.l2j: / g1 Z+ M2 r0 j5 C8 F8 d0 R7 p1 Z+ ?0 f) H
) C( n! T6 z4 F3 k# S- \) @& c9 k; k4 g
C:\L2Dream\game\data\geodata , n1 x3 T# \* G4 W" t7 I% [3 n+ i, I1 r& A5 r4 q9 s4 U% [' s! {
/ o2 u$ s* B, l* e& Y2 Z6 R
* n; }# P0 I* ]. e, I
) b2 ]1 o" ?1 G2 {& f, v4 _7 X$ \3 x
Не в "C:\L2Dream\geo\data\geodata"(это и есть внешний геосервер),а именно по тому пути что указал. " q i9 j; z( z% K7 U, WНастройка. ; Y7 |+ L: q6 TИдем по пути "C:\L2Dream\game\config",нам нужен geodata.ini или geodata.properties: ; V, w. P5 \ f5 X; I# J#================================================= ================================================== ====; F1 }8 `9 O$ v0 f: K- |4 o; ?* l N2 ^
# Даный файл является конфигуратором геодаты.7 G0 q v6 s+ F' g7 Q
# 4 d" J" E. M0 w, p6 i# Геодату можно отключить, запустить в классическом режиме на гейм сервере, а также запустить как выделеный сервер геодаты. 1 R8 y: ]5 N, U" f6 S. z# $ s# a" R; C8 K( |) D' r# На даный момент на сервере геодаты отсутсвует какая-либо авторизация(за ненадобностью).: f+ A, N3 R4 W+ ?2 T
# Если у вас мания взлома, то закрывайтесь на уровне операционной системы. ' `& U" j/ T' q/ c* q3 d# Ну или просите прикрутить SSL.5 q3 ~1 n" V N+ {; S. R
#================================================= ================================================== ==== 1 O, y: y {" l" n, e/ V, W 5 O8 x$ B* H9 W# K: W9 I- h5 n9 m$ A, O
# Включает/отключает геодату и поиск пути.5 O% g, y/ p0 p \, }3 }' E% G1 g
# Рекомендуется включить. Требует наличия файлов геодаты в data/geodata.! { `9 h5 r: n( \
# 0 = Геодата отключена. ! h/ i8 S* r6 m6 M3 v3 T. U# 1 = Геодата будет загружена в геймсервер.& l; K8 t. S: e1 y: K
# 2 = Гейм сервер перейдет в режим клиента, и будет пытатся подключится на указаный адрес, в то время как$ p+ [, M- w" o
# сервер геодаты сядет на указаный адрес. Для работы на выделеной машине с несколькими серверами1 G& D4 c4 n* y' i8 T" F$ G$ \: z
# рекомендуется гигабитный (и выше) лан. Среднее потребление траффика на осаде Адена = 400 Кbps на одного игрока,/ M! u5 C& g* i. N: |7 }
# с учетом активированных им гвардов. При обчной игре среднее потребеление до 200 Kbps на 1 игрока. / |) G1 K, c4 ?8 Y+ d x2 jGeoData = 0! I) ~ z: k# V5 b. t. G) {& \
! @- I) w+ L+ ?9 ^9 A3 F
$ q* l: a* g" f
# Хост для сервера геодаты.; h5 J$ s5 n) Q% I' `: l3 N
# * Забиндит все интефейсы.! i# o; m6 {/ r# P1 j& Y
# Игнорируется при GeoData = 0 или GeoData = 1- Y; Q. r+ k) f$ N. ~
GeoServerHost = 127.0.0.16 z x( i8 Q% g5 T6 ] |
d, K5 B3 U1 V, [; X1 k1 v
* c7 \6 d% T3 m% s; v& e# Куда будет пытатся коннектится клиент." r0 v( U# ~4 l
# Игнорируется при GeoData = 0 или GeoData = 13 x2 \3 {1 i0 V% T
GeoClientTargetHost = 127.0.0.1 : L' m$ z2 b- I- Q3 U( g- n3 @2 c4 X
2 a+ V2 J, N. C$ n/ b# Порт для геодаты.- z9 l: G9 A) W9 F7 V; k) m/ u
# Сервер откроет на нем сокет. + K+ i3 c( `' G; A' |) f# Клиент будет пытатся подключится к нему.# G- B7 N/ m6 Y; b
# Игнорируется при GeoData = 0 или GeoData = 1+ g# L, ] {5 m, d" x! V; h
GeoPort = 90504 U0 T- Y" G. i* t; K2 Y; U6 X: X
4 V# ?/ ]- P5 K
( h8 ?- O! d- R: j7 n- F9 f0 t# Сглаживает путь.2 F% P, ~* _6 {6 B+ j
# Стоит отключать только для дебага.. H5 o6 ?+ h# g+ X% ]
PathClean = True5 {' P0 ^" x* P! S. b% l
+ Q9 k/ V; n4 u+ y, \
' u0 q" M5 Q+ O' l# Обрабатывать ли двери в геодате ) e* t% a, N( U& o1 T+ q- Y# Настройка влияет на ГеймСервер) M6 H: y/ h* V6 r7 U& F
AllowDoors = False. w( D7 l+ B8 v1 D# F v7 K9 {
/ @, `5 i) T* P1 [* @1 R2 m: M 8 _4 W1 `! O! W# m% ^ 1 O$ b" f R/ |. i- i( J, u; S* g1 w# Q, ^# x3 U1 c
# Включает/отключает геодату и поиск пути. 9 A& P* h) G; x V% A# Рекомендуется включить. Требует наличия файлов геодаты в data/geodata.0 E* a; n! c. M2 ?0 O, }$ g
# 0 = Геодата отключена.4 p6 A4 ?+ h" C- |
# 1 = Геодата будет загружена в геймсервер.; M4 F C& b" G/ u8 y5 x
# 2 = Гейм сервер перейдет в режим клиента, и будет пытатся подключится на указаный адрес, в то время как8 b- S0 Y( T1 p/ A
# сервер геодаты сядет на указаный адрес. Для работы на выделеной машине с несколькими серверами, C( B! s1 U7 K ], t3 @1 D3 t8 V
# рекомендуется гигабитный (и выше) лан. Среднее потребление траффика на осаде Адена = 400 Кbps на одного игрока, 1 T0 E0 D0 Q1 D* C6 f: K# с учетом активированных им гвардов. При обчной игре среднее потребеление до 200 Kbps на 1 игрока. / t# g, W B0 P6 j9 [+ nGeoData = 0 w+ M- F9 u. Y
* \1 K9 W- y' F. f ' @9 S- ~/ `$ o2 U- P* n+ v ! k5 X" E, d" D* Y9 O& a- v% _+ ^& U+ u6 w1 e6 W: r
В этом параметре меняем 0 на 1. % } J8 L3 \" v) O2 ставим в том случае если всё таки решили поставить геосервер,его настройки: . p4 k( ]4 N& V) p5 L# Хост для сервера геодаты.& L8 J, o' n% b/ L3 |
# * Забиндит все интефейсы., {! O5 Y5 w5 i! z
# Игнорируется при GeoData = 0 или GeoData = 1 ( F9 G2 w: t$ o2 w4 f Y2 V# NGeoServerHost = 127.0.0.1( q+ b3 s2 |( [
( t/ M8 W* ]2 c5 p9 i7 P7 K
: J9 f- Q- f& U( D
# Куда будет пытатся коннектится клиент. 3 n8 M- ^" N# {, ^/ A# Игнорируется при GeoData = 0 или GeoData = 1 ) X5 f3 R+ T* a1 d; i3 w5 s$ J& g! O K+ PGeoClientTargetHost = 127.0.0.1 ' O6 v, [3 {8 Z& z% x. }+ J7 |2 G0 J
- x# l9 d% M7 S! ~# L# Порт для геодаты. ) G7 t' U, L/ G9 u- r2 n- O# Сервер откроет на нем сокет. - L: B+ w% ~* F' t2 t- A) m' j# Клиент будет пытатся подключится к нему.0 n5 w) x: m# l" c
# Игнорируется при GeoData = 0 или GeoData = 1% a$ B6 |' H9 l& _5 \( m
GeoPort = 9050& c6 _7 S8 `+ f0 j! V
Здесь всё ясно,можете зайти в "C:\L2Dream\geo" и увеличить выделяемой оперативки на геосервер изменением значений,StartGeoServer.bat: ( W( {: d7 B: D8 `7 j; m 0 i o9 h! V7 M* _4 n0 ~0 H& W) C- j' v) B7 Q( Z8 h% y3 U8 H
7 {- s5 K' q! _9 Q8 qДвери,можете включить если уверены что они у вас работают,так как их "непробиваемость" не во всех геодвижках реализовано: 8 n! K$ ]" K5 F: ^ : d6 c( E, B7 U% V0 v4 A) o* K: J4 m9 T7 J
: i. x, S3 T0 l' S5 R3 I! Z/ U# b7 L, S
# Обрабатывать ли двери в геодате9 G& E8 F8 O3 @& B8 L8 N/ q
# Настройка влияет на ГеймСервер4 T, i( b2 R* i; V0 f; H0 r
AllowDoors = True 6 Y, l2 V# b+ L. JТеперь sf,возьму как основу L2jServer,за всё время он не сильно изменился и не использовал геосервер.0 M$ ?+ Z9 q3 O4 R C
Пути размещения файлов геодаты:6 S0 J Y, H( @( a$ e& Z9 Z7 A" {" K# b
1 F4 y8 ]# h4 J K5 P7 J V1 I. E" d $ E" f, s8 c, }C:\L2jServer\gameserver\data\geodata% L* V8 v8 D1 z1 j; F( b- S
3 g* x5 p W% W8 t6 U; a9 x4 |
+ w" A* n! k( B" T2 m, t
t( m+ O/ z- G& \9 ]' k' hВ папке в месте с геодатой необходим файл geo_index.txt, в папке с пачнодом pn_index.txt,их содержимое должно быть абсолютно идентичным: % ^; |4 b5 P$ H2 r" E0 j+ l+ e' w" o/ S1 A G* Y# Z
) w1 x7 q9 F7 h( B$ d+ S
2 B/ d, ], [1 B) Q5 l! s1 M( h, p! ]* T( }- \! Q+ [
В этих файлах прописаны загружаемые геосервером квадраты геодаты,если содержание geo_index.txt и pn_index.txt не совпадает то при загрузке геодаты может вылезти ошибка,просмотрев лог ошибки увидите какого файла геодаты или пачнода не хватает.. C( d! q' \/ _4 t
Настройка,находим по пути "C:\L2jServer\gameserver\config" General.properties,нам нужен следующий раздел: 2 M2 \. I+ |# c) ]( t( f9 d#------------------------------------------------------------- -------------- $ r# t. d6 B' _. h# Geodata # \6 y- A8 p3 G# C# ----------------------------------------------------------------------- ---- 4 v8 Y/ `; a. j: W# GeoData options:5 P$ _! W/ e1 P4 g6 \; G6 ]
# 0 = GeoData and PathFinding OFF (default) l) H5 _5 P) Z& p, W# r# 1 = GeoData is used to check Line Of Sight (LOS) targeting and r6 E" y& z% f! a6 q. {2 `# L2Playable movement. You need to download files for data/geodata folder.' s6 ^4 t) Q' A8 a' S/ p
# Monsters can pass walls but not aggro (no line of sight) through them.' W# N; c7 ]2 i5 v ^/ ^' R
# 2 = Full GeoData enabled. Includes PathFinding (requires also /data/pathnode ! @+ C' b# R/ Q' o- t. T# files if CellPathFinding not enabled) and all character moves go through 0 i+ ]+ p$ ^ l1 `3 Y6 A6 E* t# geodata checks (if a mob passes a wall, pathfinding didn't find a route/ X5 J+ `" T! t! E2 s$ s, C$ o0 x7 A
# but we allow attack and returning home).& a# g# s* k' W) {
# Recommended server memory minimum 2 GB, rather 3 GB. . }% x4 ~- G) v) B# Default: 0, h, t4 v% h% @- |# k
GeoData = 0 7 q( z' \9 [8 F) r- @+ A& p! D) R5 |
" {3 P. g7 H) Z6 i5 b- Q: H# Cell-level pathfinding, produces more accurate routes but is (maybe 10x) heavier to calculate. Recommended for small servers at least. @! r3 ?" M' M! H, `! N) S" P# 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.; ^* ]3 m" ^. g
# Default: False 9 t8 @2 w) J; I% p. I0 @CellPathFinding = False( ]8 y, n/ L4 E3 f6 y& p
" [5 _8 O& j! K+ U X
/ Y3 M8 H8 A, s; ^5 R# True = Loads GeoData buffer's content into physical memory.1 Y4 r H# m' h
# False = Does not necessarily imply that the GeoData buffer's content is not resident in physical memory.' z4 e& G4 d2 J6 P8 M
# Default: True; i. R6 e2 C# T5 i$ K2 {
ForceGeodata = True% D. ]8 c2 X: v l+ ?. m$ v7 F
0 m* C4 X {, E! t. _4 t
! F. ]/ g$ K, V% h" E: ~( v" P& r1 ^# This setting controls Client <--> Server Player coordinates synchronization:" k" N" l/ R& F; T' X& g
# -1 - Will synchronize only Z from Client --> Server. Default when no geodata.2 l' `' I3 i m, d$ N7 {; _9 d
# 1 - Synchronization Client --> Server only. Using this option (without geodata) makes it more difficult for players to bypass obstacles. : B+ h4 [: S+ ~ R& @% s# 2 - Intended for geodata (at least with cell-level pathfinding, otherwise can you try -1).$ d/ L2 r. U3 Z+ C* T
# Server sends validation packet if client goes too far from server calculated coordinates. 9 Y7 ~" @% u7 b' M0 }# Default: -1 , W. m1 j5 r6 e, H) kCoordSynchronize = -1 ) c3 k6 V- F9 A- C4 A& ~; K l9 M1 V0 I; m
% X' ^' I9 l' B9 h( ]1 w
, \$ m9 ]9 G6 e4 d/ h & l& ?; A4 m# ]4 _! \% iGeoData = 0* Y' z8 c4 `! H
# g' ^3 j4 ^% L$ f1 r3 P
c4 _4 p8 ~ w v0 V7 G' X! f5 n
; x! E6 L, O. [& x
* l. s% }' ?5 FСтавим 1 если нас только геодата,пачнод отсутствует.В этом случае мы получаем только то что агрессивные мобы не будут на нас кидаться,персы утыкаясь в стену не будут буксовать,а просто остановятся,но мобы если вы завернули за угол будут вас всё равно "видеть" и ломиться к вам через стену.( r3 j/ ~+ B) Q
Ставим 2 если пачнод присутствует, так же включаем эту настройку:3 l8 z* V. r" W2 c i
; C2 U9 ~# V, Z7 T
# ]: }1 Y# a& o7 H5 ]8 f y4 `* K& y' E% V0 j
' q; } u0 D) c w6 ]4 w* {+ s# Cell-level pathfinding, produces more accurate routes but is (maybe 10x) heavier to calculate. Recommended for small servers at least.: @' \; I# w2 M$ H, [' V, k
# 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. 3 T2 i0 ]! g1 Y8 @/ h# Default: False2 |7 K4 s8 ]2 Z: _ e, v1 ]
CellPathFinding = False ) S: k1 I4 ^& S) O! L p1 i- d+ R+ J0 E. [- ~0 T! T) b0 z& A g
M7 B/ r8 o0 E3 L T; \2 x 6 y" @' t% i1 F# H9 }4 T8 y& W ' f! F6 O: E, [' f8 T! x e' KСтавим True если хотим более сглаженную работу пачнода,но нагрузка на сервер немного возрастёт,если нет то ничего не меняем. ~ b3 C" e w$ ^$ ?; p
Пожалуй всё подробно написал, спецы дополняем если что то не учел.+ F1 ~; [; _" r. u2 C5 p- z/ @
& B M% U/ @0 ]5 A1 E, e8 ~3 H. c0 k9 P
Не забывайте что если вы изменили конфиги при запущенном сервере,то они вступят в силу только после перезапуска сборки.- p/ I6 y5 [1 B" }/ W+ A
0 d. L2 }* I2 _И строки начинающиеся с "#" никакого значения не имеют, это просто комментарий или один из неактивных вариантов конфигурации. " v- }9 ^3 E5 \, p7 R' B) p2 u5 M% O( \. j9 j1 A1 F
Добро пожаловать artace.ru - творческий сектор (https://www.artace.ru/)