MANGODZILLA
Utente Silver
Ultima modifica:
Buonasera!
Come consuetudine prima di porre questa domanda alla comunità è stata mia premura sfondare il famigerato tasto cerca e rotolare sofferente fino alla terza pagina della ricerca di Google; se mi trovo costretto a scrivere queste parole è perchè quella mia ricerca non è stata in grado di produrre risultati all'altezza della mia situazione (ha prodotto solo qualche risata nel leggere perle come: "elimina la cartella maps e sostituiscila con un altra vedi se ti cambia qualcosa").
Veniamo al dunque:
Lo scenario è costituito da una macchina virtuale dedicata sulla quale girano FreeBSD 12.1 x32 e MySQL 5.6; su questa macchina è stata compilata da codice sorgente (e correttamente integrata), la revisione 41023 dei file di gioco e ne è stato generato il database correlato.
Il tutto è arrivato a funzionare senza alcun intoppo, a testimonianza di ciò i file di log errore sono sempre restati vuoti anche dopo alcuni riavvii del servizio.
Ho creato manualmente attraverso Navicat la mia utenza all'applicativo, limitandomi alla creazione dell'account, senza personaggi giocanti.
Era arrivato per me il momento di spostarmi in client-side: insieme ai files mi è stato fornito un client compatibile (a me congeniale poichè vergine), così dopo averlo configurato per l'accesso lo ho eseguito e sono riuscito ad effettuare con successo il login, trovandomi alla schermata di creazione del personaggio.
Ho inserito il nickname del personaggio che è stato generato con successo, ho proceduto quindi a stappare lo spumante ed ad avviare il gioco mentre soddisfatto lo sorseggiavo.
Il risultato è stato imbarazzante: una volta selezionato il giocatore infatti, dopo l'animazione, sono stato rimandato alla schermata di login.
Ho rimesso lo spumante in frigorifero ed ho cominciato a scavare nei file di log, che allego:
Ho quindi intuito si trattasse di un qualche problema relativo al caricamento della mappa e della conseguente posizione di spawn evidentemente non valida, "mapindex = 0" mi è subito puzzato molto; ho pertanto scelto di provare ad impostare la posizione del giocatore attraverso la modifica manuale del database in una posizione assimilabile a: "qualche parte nella piazza del villaggio di Shinsoo":
A questo punto ho provato a riavviare il tutto ed ho ritentato fiducioso il mio login: il risultato è stato il medesimo logout che ha prodotto i seguenti log:
Il successivo tentativo che ho fatto è stato la creazione di un altro account, con un altro giocatore, in un regno diverso da Shinsoo; ma il risultato è stato il medesimo logout dopo la selezione ed i log con mapindex invalidi.
Le svariate ore successive le ho impiegate per ricercare nei meandri dei vari forum qualche concetto chiave che potesse farmi capire con che cosa avevo a che fare, ma alla fine mi trovo qui ad impaginare questa discussione.
Ho notato appunto che la variabile "mapindex" continuava a puzzare: essendo nuovamente uguale a zero, nonostante io la avessi manualmente settata a tre; in virtù di ciò posso immaginare che vi sia una qualche incoerenza nella gestione delle mappe.
Aggiungo il file CONFIG del core1 nel ch1:
Altresì il file "index" nella cartella "map" del locale, che ovviamente non riporta nessun valore "0".
Un log relativo ad un accesso ed ad un tentato ingresso nella mappa:
#AGGIORNAMENTO#
Effettuando il login dalla rete locale in cui gira il server, il login procede senza intoppi ed il personaggio viene correttamente caricato all'interno della mappa.
Questo dovrebbe spostare la ricerca della soluzione in tutta un'altra direzione.
Ho effettuato un'ulteriore prova, aprendo tutte le porte in entrata ed in uscita verso il server sia sul router che sul firewall, provado ad effettuare il login da rete esterna il risultato è stato sempre negativo.
Mi rendo conto di trovarmi nel dominio di competenza del gioco stesso, la mia competenza qui è pari solo a ciò che riesco ad intuire come programmatore, quindi prima di cominciare a muovermi spaccando tutto penso sia doveroso appellarmi a chi ha più esperienza di me e probabilmente sa indirizzarmi verso ciò che devo allineare per risolvere questo inconveniente tecnico e poter finalmente sorseggiare il mio fottuto spumante davanti al villaggio di Shinsoo.
Come sempre vi ringrazio anticipatamente e vi ricordo di lavarvi le mani spesso.
Con amore
- MANGODZILLA
Come consuetudine prima di porre questa domanda alla comunità è stata mia premura sfondare il famigerato tasto cerca e rotolare sofferente fino alla terza pagina della ricerca di Google; se mi trovo costretto a scrivere queste parole è perchè quella mia ricerca non è stata in grado di produrre risultati all'altezza della mia situazione (ha prodotto solo qualche risata nel leggere perle come: "elimina la cartella maps e sostituiscila con un altra vedi se ti cambia qualcosa").
Veniamo al dunque:
Lo scenario è costituito da una macchina virtuale dedicata sulla quale girano FreeBSD 12.1 x32 e MySQL 5.6; su questa macchina è stata compilata da codice sorgente (e correttamente integrata), la revisione 41023 dei file di gioco e ne è stato generato il database correlato.
Il tutto è arrivato a funzionare senza alcun intoppo, a testimonianza di ciò i file di log errore sono sempre restati vuoti anche dopo alcuni riavvii del servizio.
Ho creato manualmente attraverso Navicat la mia utenza all'applicativo, limitandomi alla creazione dell'account, senza personaggi giocanti.
Era arrivato per me il momento di spostarmi in client-side: insieme ai files mi è stato fornito un client compatibile (a me congeniale poichè vergine), così dopo averlo configurato per l'accesso lo ho eseguito e sono riuscito ad effettuare con successo il login, trovandomi alla schermata di creazione del personaggio.
Ho inserito il nickname del personaggio che è stato generato con successo, ho proceduto quindi a stappare lo spumante ed ad avviare il gioco mentre soddisfatto lo sorseggiavo.
Il risultato è stato imbarazzante: una volta selezionato il giocatore infatti, dopo l'animazione, sono stato rimandato alla schermata di login.
Ho rimesso lo spumante in frigorifero ed ho cominciato a scavare nei file di log, che allego:
Codice:
SYSERR: Apr 25 13:19:28 :: PlayerCreateSuccess: InputDB::PlayerCreateSuccess: cannot find server for mapindex 0 51830 x 166571 (name NOME)
Ho quindi intuito si trattasse di un qualche problema relativo al caricamento della mappa e della conseguente posizione di spawn evidentemente non valida, "mapindex = 0" mi è subito puzzato molto; ho pertanto scelto di provare ad impostare la posizione del giocatore attraverso la modifica manuale del database in una posizione assimilabile a: "qualche parte nella piazza del villaggio di Shinsoo":
A questo punto ho provato a riavviare il tutto ed ho ritentato fiducioso il mio login: il risultato è stato il medesimo logout che ha prodotto i seguenti log:
Codice:
SYSERR: Apr 25 14:01:37 :: GetServerLocation: location error name NOME mapindex 0 640 x 540 empire 1
SYSERR: Apr 25 14:01:37 :: GetServerLocation: cannot find server for mapindex 0 469300 x 964200 (name NOME)
Le svariate ore successive le ho impiegate per ricercare nei meandri dei vari forum qualche concetto chiave che potesse farmi capire con che cosa avevo a che fare, ma alla fine mi trovo qui ad impaginare questa discussione.
Ho notato appunto che la variabile "mapindex" continuava a puzzare: essendo nuovamente uguale a zero, nonostante io la avessi manualmente settata a tre; in virtù di ciò posso immaginare che vi sia una qualche incoerenza nella gestione delle mappe.
Aggiungo il file CONFIG del core1 nel ch1:
Codice:
VIEW_RANGE: 10000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
DB_ADDR: 127.0.0.1
COMMON_SQL: 127.0.0.1 utente password common 3306
LOG_SQL: 127.0.0.1 utente password log 3306
ADMINPAGE_IP1: 192.168.1.10x
ADMINPAGE_PASSWORD: 58948HG83H4G8H84x
MAX_LEVEL: 120
CHANGE_ATTR_TIME_LIMIT: 0
EMOTION_MASK_REQUIRE: 0
PRISM_ITEM_REQUIRE: 0
SHOP_PRICE_3X_TAX: 0
GLOBAL_SHOUT: 1
ITEM_COUNT_LIMIT: 250
STATUS_POINT_GET_LEVEL_LIMIT: 120
STATUS_POINT_SET_MAX_VALUE: 90
SHOUT_LIMIT_LEVEL: 15
DB_LOG_LEVEL: 1
EMPIRE_LANGUAGE_CHECK: 0
PLAYER_SQL: 127.0.0.1 utente password player 3306
HOSTNAME: srv1-ch1-core1
CHANNEL: 1
MAP_ALLOW: 1 21 41 3 23 43 4 24 44 5 25 45 108 109 112
PORT: 30003
P2P_PORT: 30004
DB_PORT: 30000
Altresì il file "index" nella cartella "map" del locale, che ovviamente non riporta nessun valore "0".
1 metin2_map_a1
3 metin2_map_a3
4 metin2_map_guild_01
5 metin2_map_monkey_dungeon_11
6 metin2_guild_village_01
21 metin2_map_b1
23 metin2_map_b3
24 metin2_map_guild_02
25 metin2_map_monkey_dungeon_12
26 metin2_guild_village_02
41 metin2_map_c1
43 metin2_map_c3
44 metin2_map_guild_03
45 metin2_map_monkey_dungeon_13
46 metin2_guild_village_03
61 map_n_snowm_01
62 metin2_map_n_flame_01
63 metin2_map_n_desert_01
64 map_n_threeway
65 metin2_map_milgyo
66 metin2_map_deviltower1
67 metin2_map_trent
68 metin2_map_trent02
69 metin2_map_WL_01
70 metin2_map_nusluck01
71 metin2_map_spiderdungeon_02
72 metin2_map_skipia_dungeon_01
73 metin2_map_skipia_dungeon_02
81 metin2_map_wedding_01
100 metin2_map_fielddungeon
101 metin2_map_resources_zon
103 metin2_map_t1
104 metin2_map_spiderdungeon
105 metin2_map_t2
107 metin2_map_monkey_dungeon
108 metin2_map_monkey_dungeon2
109 metin2_map_monkey_dungeon3
110 metin2_map_t3
111 metin2_map_t4
112 metin2_map_duel
113 metin2_map_oxevent
114 metin2_map_sungzi
118 metin2_map_sungzi_flame_hill_01
119 metin2_map_sungzi_flame_hill_02
120 metin2_map_sungzi_flame_hill_03
121 metin2_map_sungzi_snow
122 metin2_map_sungzi_snow_pass01
123 metin2_map_sungzi_snow_pass02
124 metin2_map_sungzi_snow_pass03
125 metin2_map_sungzi_desert_01
126 metin2_map_sungzi_desert_hill_01
127 metin2_map_sungzi_desert_hill_02
128 metin2_map_sungzi_desert_hill_03
181 metin2_map_empirewar01
182 metin2_map_empirewar02
183 metin2_map_empirewar03
200 gm_guild_build
208 metin2_map_skipia_dungeon_boss
216 metin2_map_devilcatacomb
217 metin2_map_spiderdungeon_03
301 Metin2_map_CapeDragonHead
302 metin2_map_dawnmistwood
303 metin2_map_BayBlackSand
304 metin2_map_Mt_Thunder
351 metin2_map_n_flame_dungeon_01
130 natural_map
131 deep_underwater_cave
132 plechito_owl_map
3 metin2_map_a3
4 metin2_map_guild_01
5 metin2_map_monkey_dungeon_11
6 metin2_guild_village_01
21 metin2_map_b1
23 metin2_map_b3
24 metin2_map_guild_02
25 metin2_map_monkey_dungeon_12
26 metin2_guild_village_02
41 metin2_map_c1
43 metin2_map_c3
44 metin2_map_guild_03
45 metin2_map_monkey_dungeon_13
46 metin2_guild_village_03
61 map_n_snowm_01
62 metin2_map_n_flame_01
63 metin2_map_n_desert_01
64 map_n_threeway
65 metin2_map_milgyo
66 metin2_map_deviltower1
67 metin2_map_trent
68 metin2_map_trent02
69 metin2_map_WL_01
70 metin2_map_nusluck01
71 metin2_map_spiderdungeon_02
72 metin2_map_skipia_dungeon_01
73 metin2_map_skipia_dungeon_02
81 metin2_map_wedding_01
100 metin2_map_fielddungeon
101 metin2_map_resources_zon
103 metin2_map_t1
104 metin2_map_spiderdungeon
105 metin2_map_t2
107 metin2_map_monkey_dungeon
108 metin2_map_monkey_dungeon2
109 metin2_map_monkey_dungeon3
110 metin2_map_t3
111 metin2_map_t4
112 metin2_map_duel
113 metin2_map_oxevent
114 metin2_map_sungzi
118 metin2_map_sungzi_flame_hill_01
119 metin2_map_sungzi_flame_hill_02
120 metin2_map_sungzi_flame_hill_03
121 metin2_map_sungzi_snow
122 metin2_map_sungzi_snow_pass01
123 metin2_map_sungzi_snow_pass02
124 metin2_map_sungzi_snow_pass03
125 metin2_map_sungzi_desert_01
126 metin2_map_sungzi_desert_hill_01
127 metin2_map_sungzi_desert_hill_02
128 metin2_map_sungzi_desert_hill_03
181 metin2_map_empirewar01
182 metin2_map_empirewar02
183 metin2_map_empirewar03
200 gm_guild_build
208 metin2_map_skipia_dungeon_boss
216 metin2_map_devilcatacomb
217 metin2_map_spiderdungeon_03
301 Metin2_map_CapeDragonHead
302 metin2_map_dawnmistwood
303 metin2_map_BayBlackSand
304 metin2_map_Mt_Thunder
351 metin2_map_n_flame_dungeon_01
130 natural_map
131 deep_underwater_cave
132 plechito_owl_map
Un log relativo ad un accesso ed ad un tentato ingresso nella mappa:
Codice:
Apr 25 22:54:10 :: LOGIN_BY_KEY: account key 92261280x
Apr 25 22:54:10 :: LoginSuccess
Apr 25 22:54:10 :: player(NOME).job(7)
Apr 25 22:54:10 :: player().job(0)
Apr 25 22:54:10 :: player().job(0)
Apr 25 22:54:10 :: player().job(0)
Apr 25 22:54:10 :: player().job(0)
Apr 25 22:54:10 :: SECTREE_MANAGER::GetMapIndex(640, 540)
Apr 25 22:54:10 :: CMapLocation::Get - Error MapIndex[0]
SYSERR: Apr 25 22:54:10 :: GetServerLocation: location error name NOME mapindex 0 640 x 540 empire 1
Apr 25 22:54:10 :: SECTREE_MANAGER::GetMapIndex(469300, 964200)
Apr 25 22:54:10 :: CMapLocation::Get - Error MapIndex[0]
SYSERR: Apr 25 22:54:10 :: GetServerLocation: cannot find server for mapindex 0 469300 x 964200 (nameNOME)
Apr 25 22:54:10 :: InputDB::login_success: account
Apr 25 22:54:13 :: SYSTEM: new connection from [88.88.88.88] fd: 20 handshake 204253021 output input_len 0, ptr 0x29da1100
Apr 25 22:54:13 :: MARK_SERVER: Login
Apr 25 22:54:14 :: MARK_SERVER: GuildMarkIDXList 7 bytes sent.
Apr 25 22:54:14 :: SYSTEM: closing socket. DESC #20
Apr 25 22:54:14 :: SYSTEM: closing socket. DESC #19
#AGGIORNAMENTO#
Effettuando il login dalla rete locale in cui gira il server, il login procede senza intoppi ed il personaggio viene correttamente caricato all'interno della mappa.
Questo dovrebbe spostare la ricerca della soluzione in tutta un'altra direzione.
Ho effettuato un'ulteriore prova, aprendo tutte le porte in entrata ed in uscita verso il server sia sul router che sul firewall, provado ad effettuare il login da rete esterna il risultato è stato sempre negativo.
Mi rendo conto di trovarmi nel dominio di competenza del gioco stesso, la mia competenza qui è pari solo a ciò che riesco ad intuire come programmatore, quindi prima di cominciare a muovermi spaccando tutto penso sia doveroso appellarmi a chi ha più esperienza di me e probabilmente sa indirizzarmi verso ciò che devo allineare per risolvere questo inconveniente tecnico e poter finalmente sorseggiare il mio fottuto spumante davanti al villaggio di Shinsoo.
Come sempre vi ringrazio anticipatamente e vi ricordo di lavarvi le mani spesso.
Con amore
- MANGODZILLA