Guida [FAQ] Leggi questo prima di iniziare con Metin2

Arves100

Utente Emerald
15 Febbraio 2011
515
46
378
418
Ultima modifica:
La guida ha lo scopo di fornire una piccola e non dettagliata FAQ sullo sviluppo di un server Metin2, pensata principalmente a chi vuole iniziare a divertirsi con Metin2 o a coloro che ritornano nella scena. Aprire un server in produzione è un'altra storia e servono vere competenze di reti, programmazione, ecc. a seconda del proprio ruolo oltre che esperienza nella gestione o modifica di Metin2. Alcune spiegazioni potranno risultare semplificate o grossolane, in quanto queste FAQ devono essere il più chiare possibile anche a chi non ha mai scaricato dei sorgenti. Consiglio caldamente di documentarsi a parte se si è interessati ad un particolare argomento.

Molti di voi ricorderanno la macchina virtuale con FreeBSD 7 e i file server 2011 (o 2007 per i più anziani). Molti dei concetti o guide utilizzate all'epoca sono applicabili ancora oggi, e grazie al rilascio dei source abbiamo la possibile di capire nel profondo come funzionassero quei file.

Sommario:


Cosa sono i source?

In modo breve, si tratta di file di testo comprensibili a noi umani che definiscono tutte le azioni di un programma (nel caso del server può essere il calcolo del danno) attraverso un linguaggio di programmazione, diciamo una sorta di comandi che verranno tradotti in comandi reggibili dal nostro computer. Il processo di traduzione avviene in due fasi, la compilazione e il collegamento. Se siete interessati all'argomento visitate queste pagine Wikipedia a riguardo https://it.wikipedia.org/wiki/Compilatore, https://it.wikipedia.org/wiki/Linking

Abbiamo a disposizione i sorgenti di tutto il sistema di sviluppo di Metin2, nonché: il client, il server, i vari strumenti come il World Editor, un packer degli EterPack e anche il quest compiler (qc) è presente.

Cosa sono i file server?

I file server non sono altro che i file di configurazione del server. Essi contengono le informazioni sulle porte da utilizzare, dei mob da spawnare in una mappa o le quest. Senza di essi sarebbe impossibile utilizzare il server, e sarà proprio in questa cartella che avvieremo il nostro server compilato dai source.

File game, file db?

I più anziani sicuramente ricordano questi nomi, essi non sono altro che i due programmi che consentono al server di funzionare. Su FreeBSD generalmente non hanno estensione, su Windows sono tranquillamente dei .exe.

Distinguiamo rispettivamente il file game, che contiene nel lato pratico il server, e il file db (ufficialmente chiamato DBCache) che agisce come un veloce contenitore per diverse informazioni che verranno condivise tra uno o più file game (un esempio che mi viene in mente è i dati del giocatore), da non confondere con il database (MySQL o MariaDB) che contiene tutte le informazioni relative agli account, personaggi e così via.

E le diff? Vorrei cambiare il max status

Ogni programma compilato (e collegato) non può tornare al suo stato originale di codice sorgente, dunque era necessario un processo di reverse engineering per capire il funzionamento del server. Eventuali modifiche applicabili grazie all'analisi del programma venivano salvate nei file diff. Quei file contenevano delle informazioni su come modificare il server senza l'utilizzo dei sorgenti. Questi, file che si potevano applicare anche con un banalissimo Hex Editor. Oggi, avendo a disposizione i sorgenti, questa tecnica di modificare il server è inutile. I sorgenti offrono più libertà con meno sforzo.

2k, 34k, 40k, cosa rappresentano questi numeri?

Questi numeri rappresentano il numero di revisioni apportate ai file, ipoteticamente dalla prima revisione creata al server di Metin2, che potrebbe essere benissimo il primo server utilizzato nella beta del 2003 o il primo server copiato dai sorgenti di Metin1. I sorgenti sono una versione più aggiornata dei vecchi file 40k precedentemente utilizzati nei server privati. Con tutte le possibili modifiche che è possibile apportare al Server e al Client, il termine perde completamente di significato.

Core? Cosa sono questi core?

Su Metin2, un core è un a cartella di configurazione del server o di un piccolo pezzo del server (come una mappa). Prendiamo in esempio i file server 2007: le cartelle come game1_1, game1_2, game1_3, game2 e così via rappresentava un core, in quanto possedevano un link al file game ed un file di configurazione (CONFIG). Ogni core viene avviato come programma indipendente nonostante utilizzassero tutti lo stesso file game, ciò che varia è la configurazione; game1_1, game1_2 e game1_3 rappresentavano i villi 1 dei tre regni, la RunUp aveva diviso le mappe con più affluenza in processi separati per evitare rallentamenti o saturazione di memoria.

Si può riconoscere un core facilmente dalla presenza di un file game (generalmente con il nome d core) e dalla presenza del file CONFIG. Tenete conto che anche il server di autenticazione (Auth) è un core, mentre il file db (generalmente situato nella cartella db) NON È da considerarsi un core (codice diverso e funzionalità diversa).

Perché dovrei aggiornare ai sorgenti? Non vanno bene i file 2011?

Nella teoria si, i file 2011 continueranno a funzionare, ma è quasi obbligatorio il passaggio ai sorgenti. I sorgenti presentano i seguenti vantaggi:
  1. Possibilità di personalizzazione senza limiti. Si può aggiungere tranquillamente stole, offline shop, o addirittura delle armi da fuoco su Metin2, con i sorgenti si può modificare TUTTO.
  2. Possibilità di risoluzione di ogni possibile bug o exploit. Chiaramente il gioco potrà generare nuovi bug in futuro, ma hai la possibilità di diagnosticare bug e risolverli, sia quelli vecchi che nuovi, lo stesso discorso è applicabile per gli exploit.
  3. Più funzionalità: i sorgenti sono più aggiornati dei classici 40k o qualsiasi revisione in giro, implementazioni come costume system, energy e dragon soul sono già integrate, e si possono facilmente disabilitare (e quasi senza sforzo aggiungerei) in caso di necessità.
  4. Più sicurezza (e performance in caso).
Oltre ad esser più aggiornati, i sorgenti ci danno la possibilità di migrare il server alle ultime tecnologie senza metodi di compatibilità (come un FreeBSD 12 o un MySQL 8), e questo ci dà la possibilità di sfruttare tutti gli aggiornamenti del sistema operativo o del database.

Si parla spesso di basi o revisioni personalizzate, cosa significa?

Ognuno con i sorgenti è libero di creare la propria versione, sia programmando che copiando. Per revisioni personalizzate si intende sorgenti modificati da terzi (non dagli autori ufficiali). Il termine base è un sinonimo del termine precedente (il termine deriva dal fatto che tu utilizzi dei file base per costruire il tuo server che sarà una modifica di quella base).

Quali linguaggi di programmazione e cosa dovrei imparare per aprire un server?

Metin2 è scritto principalmente in C++ (alcune porzioni scritte in C). I sorgenti client definiscono una specie di motore di gioco di Metin2, ma non è in grado di esistere senza la parte Python. La parte Python definisce interfacce ed azioni che esse eseguono, oltre a dare per configurare la parte C++ in maniera dinamica (esempio gli effetti). Le quest invece sono scritte in Lua, e possono definire le azioni di NPC o di un oggetto utilizzabile con il click destro.

Metin2 non utilizza il C++ moderno, è fermo a C++99. La parte Python è compatibile con moduli e sintassi di Python 2.7 (2.7.3 nell'ufficiale), mentre la versione di Lua è 5.0.

Uno sviluppatore può specializzarsi in diversi ambiti, esempio Quest, e dovrà imparare quella determinata zona. Un sistemista, ad esempio, dovrà essere pronto per configurare al meglio FreeBSD e così via. Raccomando per tutti i ruoli almeno una conoscenza del Client e Server di metin di base (esempio aggiungere un item, una mappa e così via) e i comandi di base per compilare e avviare (inclusa shell di base UNIX).

Devo imparare tutto questo?

Se sei un finanziatore ti consiglio almeno di dare un occhiata a ciò per renderti conto del prodotto che andrai a spendere soldi, ma non è richiesta competenza alcuna se hai membri dello
staff già preparati.

Se il tuo obbiettivo è essere uno sviluppatore questo non sarà che l'inizio di esplorare Metin2, un sistemista deve conoscere l'applicazione che dovrà configurare e proteggere (quindi si potrebbe escludere i sorgenti), un grafico potrebbe compilare ed avviare per provare le sue ultime armi, per questo raccomando a tutti di conoscere un minimo l'ambiente.

Devo comprare una base?

Il mio consiglio è di comprare una base solo quando si valuta di iniziare un server vero, generalmente, le basi vendute da gente seria ed affidabile contengono moltissime fix per semplificare il lavoro e migliorare la stabilità del server. Sbuggare i file originali è un lavorone che raccomando solo a chi ha competenze per farlo, mentre i file su internet sono ottimi per iniziare a fare i primi esperimenti, anche implementare system da internet (generalmente buggati) fa esperienza.

Hai detto che in molti casi le vecchie guide sono usabili, come mai?

Metin2 è retrocompatibile con le quest sviluppate per file 2007, salvo eccezione di questlib strani. Stesso discorso applicabile alla parte in Python. Le cartelle locale sono generalmente compatibili da file 2010 o superiori, in quanto apportano molte modifiche ai txt della locale. La cartella data è completamente retrocompatibile. I file del client, escludendo root locale ed uiscript, sono al 100% retrocompatibili con qualunque Client di Metin2 (incluso il file Index). Le cartelle e i file CONFIG sono compatibili con ogni server di metin2 (io stesso startai su Windows usando le cartelle dei file 2007 cambiando la locale).

Mi conviene scaricare VDI pronte per compilare o startare / Va bene FreeBSD 9?

La versione del server dove si avviano i file server e quella della macchina di compilazione è consigliabile mantenerla a pari passo. Utilizzare l'ultima versione di FreeBSD, permette di avere compilatori migliori, un esempio importante è C++11. Sconsiglio di utilizzare una macchina virtuale già pronta a meno che non si è disposti ad aggiornarla ad una versione supportata di FreeBSD.

Va bene Visual Studio 2013 / Va bene FreeBSD 9 / È vero che metin non supporta l'ultima versione di FreeBSD o Visual Studio?

No, è raro che aggiornare la propria versione di Visual Studio/FreeBSD/compilatore porti a problematiche, è necessario ricostruire la Extern per farlo (processo raccomandato in ogni caso). Consiglio sempre di rimanere ed utilizzare almeno le versioni supportate dei prodotti come MySQL e FreeBSD. Confermo che è possibile compilare e startare su FreeBSD 12.1 64bit con MariaDB 10.1 e collegarsi al server con un Client compilato con Visual Studio 2019 e utilizzando Python 2.7.15.

File per hamachi, per dedicati, cambia qualcosa?


No, ai tempi dei file 2009 o 2011 si parlava di launcher per hamachi e dedicati (Se non erro il launcher cinese iniettava una libreria dinamica che aveva il compito di semplificare o disabilitare dei controlli nella funzione di invio dei dati di Metin2).
Con l'avvento dei sorgenti tutto questo non è più necessario, non solo perchè eventuali controlli possono essere disabilitati (nei Link utili trovate una guida che tratta di startare su No-Ip ad esempio), ma le pratiche di difesa che utilizzava la Ymir nei suoi file (ad esempio la verifica della licenza o il time bomb) non sono più in uso da tempo. (Almeno nei file pubblici)
Ad oggi non c'è più differenza tra startare con uno Hamachi o un dedicato, classica apertura delle porte come si faceva tempo fa ed un piccolo launcher modificato, nulla che non si possa mettere apposto con un minimo di competenza e sforzo.



Concludo questo wall of text con delle guide per iniziare con Metin2:

 
Ultima modifica da un moderatore:
La guida ha lo scopo di fornire una piccola e non dettagliata FAQ sullo sviluppo di un server Metin2, pensata principalmente a chi vuole iniziare a divertirsi con Metin2 o a coloro che ritornano nella scena. Aprire un server in produzione è un'altra storia e servono vere competenze di reti, programmazione, ecc. a seconda del proprio ruolo oltre che esperienza nella gestione o modifica di Metin2. Alcune spiegazioni potranno risultare semplificate o grossolane, in quanto queste FAQ devono essere il più chiare possibile anche a chi non ha mai scaricato dei sorgenti. Consiglio caldamente di documentarsi a parte se si è interessati ad un particolare argomento.

Molti di voi ricorderanno la macchina virtuale con FreeBSD 7 e i file server 2011 (o 2007 per i più anziani). Molti dei concetti o guide utilizzate all'epoca sono applicabili ancora oggi, e grazie al rilascio dei source abbiamo la possibile di capire nel profondo come funzionassero quei file.

Sommario:


Cosa sono i source?

In modo breve, si tratta di file di testo comprensibili a noi umani che definiscono tutte le azioni di un programma (nel caso del server può essere il calcolo del danno) attraverso un linguaggio di programmazione, diciamo una sorta di comandi che verranno tradotti in comandi reggibili dal nostro computer. Il processo di traduzione avviene in due fasi, la compilazione e il collegamento. Se siete interessati all'argomento visitate queste pagine Wikipedia a riguardo https://it.wikipedia.org/wiki/Compilatore, https://it.wikipedia.org/wiki/Linking

Abbiamo a disposizione i sorgenti di tutto il sistema di sviluppo di Metin2, nonché: il client, il server, i vari strumenti come il World Editor, un packer degli EterPack e anche il quest compiler (qc) è presente.

Cosa sono i file server?

I file server non sono altro che i file di configurazione del server. Essi contengono le informazioni sulle porte da utilizzare, dei mob da spawnare in una mappa o le quest. Senza di essi sarebbe impossibile utilizzare il server, e sarà proprio in questa cartella che avvieremo il nostro server compilato dai source.

File game, file db?

I più anziani sicuramente ricordano questi nomi, essi non sono altro che i due programmi che consentono al server di funzionare. Su FreeBSD generalmente non hanno estensione, su Windows sono tranquillamente dei .exe.

Distinguiamo rispettivamente il file game, che contiene nel lato pratico il server, e il file db (ufficialmente chiamato DBCache) che agisce come un veloce contenitore per diverse informazioni che verranno condivise tra uno o più file game (un esempio che mi viene in mente è i dati del giocatore), da non confondere con il database (MySQL o MariaDB) che contiene tutte le informazioni relative agli account, personaggi e così via.

E le diff? Vorrei cambiare il max status

Ogni programma compilato (e collegato) non può tornare al suo stato originale di codice sorgente, dunque era necessario un processo di reverse engineering per capire il funzionamento del server. Eventuali modifiche applicabili grazie all'analisi del programma venivano salvate nei file diff. Quei file contenevano delle informazioni su come modificare il server senza l'utilizzo dei sorgenti. Questi, file che si potevano applicare anche con un banalissimo Hex Editor. Oggi, avendo a disposizione i sorgenti, questa tecnica di modificare il server è inutile. I sorgenti offrono più libertà con meno sforzo.

2k, 34k, 40k, cosa rappresentano questi numeri?

Questi numeri rappresentano il numero di revisioni apportate ai file, ipoteticamente dalla prima revisione creata al server di Metin2, che potrebbe essere benissimo il primo server utilizzato nella beta del 2003 o il primo server copiato dai sorgenti di Metin1. I sorgenti sono una versione più aggiornata dei vecchi file 40k precedentemente utilizzati nei server privati. Con tutte le possibili modifiche che è possibile apportare al Server e al Client, il termine perde completamente di significato.

Core? Cosa sono questi core?

Su Metin2, un core è un a cartella di configurazione del server o di un piccolo pezzo del server (come una mappa). Prendiamo in esempio i file server 2007: le cartelle come game1_1, game1_2, game1_3, game2 e così via rappresentava un core, in quanto possedevano un link al file game ed un file di configurazione (CONFIG). Ogni core viene avviato come programma indipendente nonostante utilizzassero tutti lo stesso file game, ciò che varia è la configurazione; game1_1, game1_2 e game1_3 rappresentavano i villi 1 dei tre regni, la RunUp aveva diviso le mappe con più affluenza in processi separati per evitare rallentamenti o saturazione di memoria.

Si può riconoscere un core facilmente dalla presenza di un file game (generalmente con il nome d core) e dalla presenza del file CONFIG. Tenete conto che anche il server di autenticazione (Auth) è un core, mentre il file db (generalmente situato nella cartella db) NON È da considerarsi un core (codice diverso e funzionalità diversa).

Perché dovrei aggiornare ai sorgenti? Non vanno bene i file 2011?

Nella teoria si, i file 2011 continueranno a funzionare, ma è quasi obbligatorio il passaggio ai sorgenti. I sorgenti presentano i seguenti vantaggi:
  1. Possibilità di personalizzazione senza limiti. Si può aggiungere tranquillamente stole, offline shop, o addirittura delle armi da fuoco su Metin2, con i sorgenti si può modificare TUTTO.
  2. Possibilità di risoluzione di ogni possibile bug o exploit. Chiaramente il gioco potrà generare nuovi bug in futuro, ma hai la possibilità di diagnosticare bug e risolverli, sia quelli vecchi che nuovi, lo stesso discorso è applicabile per gli exploit.
  3. Più funzionalità: i sorgenti sono più aggiornati dei classici 40k o qualsiasi revisione in giro, implementazioni come costume system, energy e dragon soul sono già integrate, e si possono facilmente disabilitare (e quasi senza sforzo aggiungerei) in caso di necessità.
  4. Più sicurezza (e performance in caso).
Oltre ad esser più aggiornati, i sorgenti ci danno la possibilità di migrare il server alle ultime tecnologie senza metodi di compatibilità (come un FreeBSD 12 o un MySQL 8), e questo ci dà la possibilità di sfruttare tutti gli aggiornamenti del sistema operativo o del database.

Si parla spesso di basi o revisioni personalizzate, cosa significa?

Ognuno con i sorgenti è libero di creare la propria versione, sia programmando che copiando. Per revisioni personalizzate si intende sorgenti modificati da terzi (non dagli autori ufficiali). Il termine base è un sinonimo del termine precedente (il termine deriva dal fatto che tu utilizzi dei file base per costruire il tuo server che sarà una modifica di quella base).

Quali linguaggi di programmazione e cosa dovrei imparare per aprire un server?

Metin2 è scritto principalmente in C++ (alcune porzioni scritte in C). I sorgenti client definiscono una specie di motore di gioco di Metin2, ma non è in grado di esistere senza la parte Python. La parte Python definisce interfacce ed azioni che esse eseguono, oltre a dare per configurare la parte C++ in maniera dinamica (esempio gli effetti). Le quest invece sono scritte in Lua, e possono definire le azioni di NPC o di un oggetto utilizzabile con il click destro.

Metin2 non utilizza il C++ moderno, è fermo a C++99. La parte Python è compatibile con moduli e sintassi di Python 2.7 (2.7.3 nell'ufficiale), mentre la versione di Lua è 5.0.

Uno sviluppatore può specializzarsi in diversi ambiti, esempio Quest, e dovrà imparare quella determinata zona. Un sistemista, ad esempio, dovrà essere pronto per configurare al meglio FreeBSD e così via. Raccomando per tutti i ruoli almeno una conoscenza del Client e Server di metin di base (esempio aggiungere un item, una mappa e così via) e i comandi di base per compilare e avviare (inclusa shell di base UNIX).

Devo imparare tutto questo?

Se sei un finanziatore ti consiglio almeno di dare un occhiata a ciò per renderti conto del prodotto che andrai a spendere soldi, ma non è richiesta competenza alcuna se hai membri dello
staff già preparati.

Se il tuo obbiettivo è essere uno sviluppatore questo non sarà che l'inizio di esplorare Metin2, un sistemista deve conoscere l'applicazione che dovrà configurare e proteggere (quindi si potrebbe escludere i sorgenti), un grafico potrebbe compilare ed avviare per provare le sue ultime armi, per questo raccomando a tutti di conoscere un minimo l'ambiente.

Devo comprare una base?

Il mio consiglio è di comprare una base solo quando si valuta di iniziare un server vero, generalmente, le basi vendute da gente seria ed affidabile contengono moltissime fix per semplificare il lavoro e migliorare la stabilità del server. Sbuggare i file originali è un lavorone che raccomando solo a chi ha competenze per farlo, mentre i file su internet sono ottimi per iniziare a fare i primi esperimenti, anche implementare system da internet (generalmente buggati) fa esperienza.

Hai detto che in molti casi le vecchie guide sono usabili, come mai?

Metin2 è retrocompatibile con le quest sviluppate per file 2007, salvo eccezione di questlib strani. Stesso discorso applicabile alla parte in Python. Le cartelle locale sono generalmente compatibili da file 2010 o superiori, in quanto apportano molte modifiche ai txt della locale. La cartella data è completamente retrocompatibile. I file del client, escludendo root locale ed uiscript, sono al 100% retrocompatibili con qualunque Client di Metin2 (incluso il file Index). Le cartelle e i file CONFIG sono compatibili con ogni server di metin2 (io stesso startai su Windows usando le cartelle dei file 2007 cambiando la locale).

Mi conviene scaricare VDI pronte per compilare o startare / Va bene FreeBSD 9?

La versione del server dove si avviano i file server e quella della macchina di compilazione è consigliabile mantenerla a pari passo. Utilizzare l'ultima versione di FreeBSD, permette di avere compilatori migliori, un esempio importante è C++11. Sconsiglio di utilizzare una macchina virtuale già pronta a meno che non si è disposti ad aggiornarla ad una versione supportata di FREEBSD.

Va bene Visual Studio 2013 / Va bene FreeBSD 9 / È vero che metin non supporta l'ultima versione di FreeBSD o Visual Studio?

No, è raro che aggiornare la propria versione di Visual Studio/FreeBSD/compilatore porti a problematiche, è necessario ricostruire la Extern per farlo (processo raccomandato in ogni caso). Consiglio sempre di rimanere ed utilizzare almeno le versioni supportate dei prodotti come MySQL e FreeBSD. Confermo che è possibile compilare e startare su FreeBSD 12.1 64bit con MariaDB 10.1 e collegarsi al server con un Client compilato con Visual Studio 2019 e utilizzando Python 2.7.15.



Concludo questo wall of text con delle guide per iniziare con Metin2:


Ciao @Arves100, anche io avevo intenzione di creare una guida più o meno simile a questa già qualche settimana fa dopo aver letto questo topic, penso che l'idea di entrambi sia partita proprio da questa discussione.

Purtroppo per una questione di tempo non ne ho avuto le possibilità, in particolare avevo intenzione di spiegare le differenze tra le varie revisioni, un pò come hai fatto tu, ma soprattutto per dire che sopra la 40k o comunque con la presenza dei sorgenti, non si parla più di numeri.
Qualsiasi developer che vende e modifica sorgenti, è libero di inserire il proprio nome alla propria revisione.

Cito lo stesso commento che avevo scritto nell'altro topic, magari a qualcuno tornerà utile per iniziare nel settore metin2.


Ciao, penso che in questo caso, la cosa più semplice da fare sia rimandarti qui per comprendere i concetti base per sviluppare un progetto di metin2.
E' sicuramente la risposta più adatta che troverai, ti lascio anche questo secondo link in cui troverai diverse risposte alle tue domande.

Si tratta di una guida abbastanza completa, che non risponde nel dettaglio alla tua domanda, ma ti permette di comprendere come funziona un progetto di metin2 e sicuramente i primi passi per avviarlo
Personalmente non mi sento di rispondere alla tua domanda qua, perchè si tratta di una risposta troppo lunga e che in qualsiasi caso risulterebbe parziale, ti posso però dire che oggi parlare di files 2004 è inutile, siamo nel 2020, è meglio parlare degli ultimi aggiornamenti e delle ultime revisioni.

Preciso solamente che oggi, è sbagliato dare un numero alla propria revisione, dalla pubblicazione dei sorgenti ogni venditore è libero di adottare le proprie modifiche e di darne il nome che meglio preferisce, non si parla più quindi di revisione 40k (spesso si sente dire: ma sono revisione 40k? ) ma si parla di una revisione personale a seconda delle modifiche apportate.
Quando si sente dire, quei files sono 80k, 60k, non significa nulla, ogni venditore infatti dovrebbe avere una propria documentazione dei propri serverfiles, in modo tale che il cliente abbia la possibilità di conoscerne tutte le sfumature, nonostante questo comunque pur avere una documentazione nella maggior parte dei casi non è sufficiente in quanto il cliente non ha le competenze per capire tutto ciò che viene scritto e quindi capire le differenze tra un venditore e l'altro.

Non ti chiedere molto, come si lavorava a metin 10 anni fa se il tuo scopo è aprire un progetto di metin2.
Chiediti piuttosto, come lavoro in un progetto di metin2 oggi?

Ottima discussione ;)
 
C'è poco da dire, un ottimo lavoro.
Diciamo che è utile per iniziare a comprendere l'enorme lavoro che c'è dietro ad un progetto (serio), sempre che non sia un copia incolla di qualcosa o un pacchetto preconfezionato... va beh starti e scappi coi soldi e ciao ciao.
 
Grande Arves. Guida molto utile veramente. Spero che molti prenderanno il tuo esempio e inizieranno a sviluppare la community.
 
scusate, ultimamente sto creando un server di metin 2 e ho scaricato come client il sandoz 94 il ritorno, qualcuno può dirmi perchè dopo il log nell'account crasha e da dei punti interrogativi, e magari aiutarmi a risolvere il problema grazie