Crear una cuenta por SQL-Query

Bienvenidos a un nuevo tutorial, hoy aprenderemos a crear una cuenta mediante una query o consulta SQL, algo que nos puede ayudar en varias ocasiones. 
 
Actualmente para crear una cuenta podemos hacerlo por página web (la cual debe estar vinculada a la base de datos), por editor o por algun software específico creado para dicho propósito. Pero tambien podemos crear una cuenta mediate una query o consulta SQL.
 
¿Podemos usar una misma query para crear una cuenta en cualquier tipo de files y versión? La respuesta es no, de echo , dependiendo los files y versión las tablas y columnas no son exactamente las mismas.


1) Comenzemos con la query para versiones antiguas, la que además de la tabla MEMB_INFO requiere cargar los datos en la tabla VI_CURR_INFO.
Para eso debemos copiar el siguiente código y pegarlo en el campo en el Analizador de Consultas (Lo haremos bajo SQL Server 2000)
Use MuOnline

INSERT INTO MEMB_INFO
(memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code)
VALUES
('admin','password','MuTutorial',123456789,123456789,null,null,null,'admin@localhost.com',null,null,null,1,10/11/2020,10/11/2020,10/11/2020,10/11/2020,1,0,1)

INSERT INTO VI_CURR_INFO
(ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days )  
VALUES 
('2005','1',1234,'admin','MuTutorial',1,7,6,3,6,6,'10/11/2020 10:36:00',0)
 
Visualizando el analizador de consultas del sql 2000
 
2) El siguiente paso será modificar los datos resaltados en color.
a) admin= ID de la cuenta que deseamos crear, recuerda respetar el máximo de caracteres.
b) password= La clave o password que deseamos que tenga nuestra cuenta.
c) admin= Debemos repetir el mismo ID que colocamos en el punto a)

Una vez que modificamos los datos, apretamos el boton F5 o hacemos un clic en el boton "Ejecutar Consulta"

Visualizando la query ejecutada
 
3)Y con eso, cargaremos los datos a la base de datos.
Ahora, si nuestro servidor es S4/S6/S8 MuEMU, debemos usar la siguiente query (Lo haremos bajo SQL Server 2008):
Use MuOnline

INSERT INTO MEMB_INFO
(memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code)
VALUES
('admin','password','MuTutorial',123456789,123456789,null,null,null,'admin@localhost.com',null,null,null,1,10/11/2020,10/11/2020,10/11/2020,10/11/2020,1,0,1)
Nuevamente, debemos modificar los datos de admin y password por los deseados, luego apretamos F5 o hacemos un clic en el boton "Execute"/"Ejecutar"
 

Visualizando la query en SQL Server 2008

 
Recuerden: Si la versión es vieja eso no significa que tengamos que usar la primera query, lo que condiciona el uso de una o de la otra, es si nuestro servidor trabaja con la tabla VI_CURR_INFO, y eso lo podemos verificar revisando nuestra DB en busca de su presencia.

Coordenadas en MuEMU

Bienvenidos a un nuevo tutorial, hoy veremos un tema que hemos dejado pendiente: las coordenadas a la hora de crear un spot, agregar un monster en un evento, etc. Antes de continuar, debemos entender que rango y coordenadas, son variables totalmente diferentes. 
La primera indica el radio de movimiento y la segunda indica posicionamiento inicia-final de un objeto.
 


Comenzemos primero a entender que es una coordenada. Para explicarlo de una forma fácil, una coordenada es un punto en un plano dado en este caso por dos valores: X-Y
 
Ahora, pasemos esto al juego, el plano seria el mapa en donde está posicionado nuestro personaje, y los X-Y son los valores que recibe al movernos horizontal, vertical y diagonalmente dentro del juego. Veámoslo dentro del juego:
 
Visualizando la posicion de coordeandas x y
 
1) Cuando creamos un spot, debemos definir cuatro valores para cuatro variables y estan son:
BeginPosX, BeginPosY, EndPosX, EndPosY
¿Pero qué es y cómo funciona esto?
BeginPosX y BeginPosY, = Son las coordeandas de posicionamiento inicial
EndPosX y EndPosY = Son las coordenadas de posicionamiento final
Supongamos que tenemos estos valores: BeginPosX=130 BeginPosY=95
                                                                  EndPosX= 150 EndPosY=95
 
¿Qué creen que suceda? ¿Como creen que saldrá el spot? Veámoslo:
 
Visualizando la posicion de monsters
 
2) Lo que hemos echo anteriormente es crear un spot en línea recta, y la explicación es muy sencilla, si observan tanto el BeginPosY como el EndPosY tiene el mismo valor , eso indica que solo movemos BeginPosX y EndPosX de 150 a 130 , lo que daría una linea recta de 20 secuencias.
Para que se entienda mejor , observen la siguiente imagen:
 

Visualizando la posicion de coordeandas x y 

3) Ahora supongamos que deseamos que un monster de determinado evento aparezca en una parte especifica del mapa, pero atentos, cuando decimos específica , no queremos que el monster salga siempre en el mismo lugar, pero si queremos que aparezca en un rango de coordenadas específicas. 
¿A qué nos referimos con ese rango de coordenadas? Para explicarlo mejor, observen la siguiente imagen:
 
Visualizando el rango de coordeandas

4) Lo importante de crear un rango de coordenadas es para evitar que el monster o los monsters puedan aparecer en una alguna parte del mapa que no es accesible por los jugadores.
Para eso , debemos obtener cuatro coordenadas completas dentro del juego, de esa forma creamos un rectángulo, cuadrado, paralelogramo, etc imaginario, es decir, obtendremos un perímetro (que funcionará como limitador) y a partir de ese périmetro obtenemos el areá (superficie total) en donde podrá aparecer el monster.

Para obtener los cuatros puntos, debemos posicionar el personaje en el punto inicial deseado, por ejemplo , usaré el mapa noria, y mi coordenada inicial será: (125,45), luego caminaré en línea recta para obtener mi segundo punto de coordenadas, esta será (128,34), ahora comenzaré a cerrar mi rectángulo caminando en sentido opuesto a la última coordenada (136,34) y finalmente para cerrar la figura geométrica ire en línea recta paralela en sentido al punto inicial (133,47) 
 
 Visualizando el rango de coordeandas
 
 5) Si ordemos las cuatro coordeandas, obtenemos:
1º coordenada = (125,45) 
2º coordenada = (128,34)
3º coordenada = (136,34)
4º coordenada = (133,47) 
¿Pero ahora cómo cargamos 8 coordenadas si el archivo sólo admite 4? Para eso debemos extraer de cada coordenada un valor y posicionarlo dentro del archivo de la siguiente manera:
En BeginPosX retiraremos de la 1º coordenada el primer valor, es decir, el 125
En BeginPosY retiraremos de la 2º coordenada el segundo valor, es decir, el 34
En EndPosX retiraremos de la 3º coordenada el primer valor, es decir, el 136
En EndPosY retiraremos de la 4º coordenada el segundo valor, es decir, el 47
 
El archivo editado nos quedará asi:
 
Visualizando el archivo editado
 
6) Si colocamos un monster para hacer el test, lo que debería suceder es que cada vez que lo matemos , este se regenerá dentro del perímetro que le hemos dado, y de eso se trata justamente. De echo, ¿Qué sucede si colocamos la misma cantidad de monsters que el total de la superficie? 
La respuesta la podrán ver en la siguiente imagen:
 
Visualizando spot
 
Lo que sucedio, es que como la cantidad de monsters superá/iguala la cantidad de espacio de la superficie total, logramos cubrir el área completa con los monsters asignados. 

Atención: Todos los mapas no son iguales, es decir, que no podemos repetir coordenadas sin antes verificarlas, ya que como hemos explicado anteriormente, la idea de este tutorial es evitar posicionar un monster en un espacio que no existe o que no sea accesible.

Con este tutorial, tambien podremos crear secciones delimitando coordenadas como lo hicimos anteriormente, luego podemos usar los posicionamiento para evalular sentencias. En fin, el uso como siempre es amplio, si conocemos las bases los limites los ponen ustedes.

Invasion Manager en MuEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a configurar e interpretar el archivo responsable por las invasiones en nuestro servidor MuEMU



El archivo encargado de esto lo encontramos en la siguiente ruta: 
Muserver/data/Event/InvasionManager.dat
1) Este archivo contiene 4 secciones, la 0-1-2-3 y analizaremos en detalles cada una de ellas.
Para este tutorial, utilizare un archivo vacio, de esa forma podremos visualizarlo de forma limpia y podremos configurarlo con nuestros parámetros.
La primera sección es la 0, en esta sección se define lo siguiente:
 
 Visualizando la interfaz de archivo invasion manager  

Index = Corresponde al ID de la invansión que deseamos configurar.(0=Skeleton King, 1=Red Dragon, 2=Dorados, 3=White Wizard, 4=Año Nuevo, 5=Conejos,6=Verano, 7=Navidad, 8=Medusa) 
Year = Corresponde al año en que ejecutará la invasión 
Month = Corresponde al mes en que ejecutará la invasión (Del 1 al 12) 
Day = Corresponde al día del mes en que ejecutará la invasión (Del 1 al 31) 
DoW= Son las siglas de Day Of Week, día de la semana en que se ejecutará el evento. (1=Domingo, 2=Lunes, 3=Martes, 4=Miercoles, 5=Jueves, 6=Viernes, 7=Sábado) 
Hour = Corresponde a la hora en que ejecutará la invasión (Formato 24 HS)
Minute = Corresponde a los minutos en que ejecutará la invasión (De 0 a 60)
Second = Corresponde a los segundos en que ejecutará la invasión (De 0 a 60)
Atención: el valor * significa "todos". 
Ejemplo: si en tenemos el campo Month=* , eso significa que el evento transcurrirá todos los meses, el * se usa caso no desees especificar algun valor. 
A modo de ejemplo, configure para que el evento White Wizard, transcurra todos los años, todos los dias, todos los meses, todos los dias de la semana, a las 16 hs , 15 minutos, todos los segundos.
El archivo configurado nos quedará asi: 
 
Visualizando la seccion 0 del invasion
  manager 
 
2) Ahora pasaremos a configurar la sección 1, en este apartado debemos configurar:
Index =  Corresponde al ID de la invasión.
RespawnMessage =  Nº de mensaje que saldrá cuando la invasión comienze. (Este número lo encontramos en el archivo Muserver/data/message.txt, generalmente ya viene definido para todas las invasiones originales de la versión, pero caso deseen, pueden crear un nº de mensaje personalizado)
DespawnMessage = Nº de mensaje que saldrá cuando la invasión termine. (Este número no viene definido en el message.txt ya que no es necesario anunciarlo, por eso basta con dejar un *)
BossIndex = Nº del Boss o monster que aparecerá en la invasión. Es valor lo pueden extraer del archivo Muserver/data/Monster/Monster.txt (Caso su invasión no tenga un boss o monster , dejamos un *, tambien pueden obtener el nº del monster haciendo un Clic Aqui)
BossMessage = Nº de mensaje que saldrá al matar el monster. (Este número lo encontramos en el archivo Muserver/data/message.txt, generalmente ya viene definido para todas las invasiones originales de la versión, pero caso deseen, pueden crear un nº de mensaje personalizado, y si la invasión no tiene ningun boss , dejamos un *)
InvasionTime = Duración de la invasión en segundos
Continuando con la ejemplificación, configuraré esta sección de la siguiente forma:
El index continuará siendo 3, el mensaje de aparición será el 195 (Recuerden, este mensaje lo encontrarán en el archivo message.txt), el mensaje de finalización será *
El BossIndex será el 135, es decir, el número que corresponde al boss White wizard. (Podrán encontrar el listado completo en el archivo Monster.txt). 
El mensaje que aparecerá al matar el Boss será el Nº 205 (Ya definido en el archivo message.txt) y finalmente, la duración del evento será de 600 segundos (10 minutos)
El archivo configurado nos quedará asi:
 
 Visualizando la seccion 1 del invasion
  manager 
 
3) La siguiente sección es la 2, en esta sección debemos configurar:
Index = Corresponde al ID de la invasión.
Group = Se utiliza en el caso de invasiones multiples, como por ejemplo en el caso de la invasión de los dorados, en donde varios monsters , invaden diferentes mapas de forma simultánea. (El valor va de 0 a X). 
Map =  Nº de mapa en donde se desarrollará la invasión. Si no recuerdas el número de cada mapa, puedes consultar haciendo un Clic Aqui
Value = Permite la creación de invasiones en donde los monster aparecen de forma randon en el mapa.
Continuando con la ejemplificación, configuraré esta sección de la siguiente forma:
El index continua siendo 3 . El grupo será 0 ya que no se trata de invasión de dorados. El mapa será lorencia y noria y el value será 0

Visualizando la interfaz de archivo invasion manager seccion 2 
 
*Atención: Como la invasión será en donde mapas, debemos agregar dos lineas, es decir, si deseamos que una misma invasión transcurra en diferentes mapas, debemos agregar tantas lineas como mapas deseamos.
 
4) Y finalmente llegamos a la última sección, la 3.
En este apartado debemos configurar:
Index=  Corresponde al ID de la invasión.
Group=  Caso tengas definidos grupos en la sección 2, deberás agregarlos en este apartado seguiendo la misma secuencia.
MonsterClass = Nº de monster que aparecerá en la invasión. Sino recuerdas los números de los monsters, puedes consultar haciendo un Clic Aqui. Tambien es importante saber que podemos tener varios monsters en un a misma invasión (Por ejemplo: boss+tropas) agregando más de una línea con el mismo index
RegenType = Aqui definimos el tipo de regeneración, si colocamos 0, al matar el boss o el monster , la invansión finaliza, pero si en cambio colocamos un 1, el boss/monster se regenera nuevamente y continurá regenerandose por un tiempo que nosotros podremos definir a continuación.  
RegenTime = Aqui podremos definir el tiempo de regeneración, este valor se calcula en segundos.
Y para completar nuestra ejemplificación, completaremos el archivo de la siguiente forma:
El index continua siendo 3, el group será 0, en MonsterClass agregaremos al Boss nº 135 (White Wizard) en una primera linea, y dos lineas más para los monsters ID 136 (Destructive ogre soldier) y 137 (Destructive ogre archer)
En RegenType colocaré 0 (Es decir, no se regenerará al matarlo) y en RegenTime, tambien colocaré 0 (Ya que el RegenType fue definido en 0, no hay necesidad de definir el tiempo)
 
Visualizando la interfaz de archivo invasion manager seccion 3

5) Para finalizar de configurar la invasión, debemos agregar los monsters al archivo 
Muserver/data/Monster/MonsterSetBase.txt

Lo que debemos hacer en ese archivo es crear una nueva sección con ID 3 (Recuerden que el ID 3 es para eventos) y agregamos los monsters de la siguiente manera:  

Monster= Debemos agregar el número de cada monsters que participara en la invasión,
MapNumber =  Aqui debemos agregar el número de mapa en donde se origina la invansión
Range =  Rango máximo de movimiento del monster
BeginPosX = Posición incial X en donde podrá aparecer el monster    
BeginPosY= Posición incial Y en donde podrá aparecer el monster         
EndPosX =  Posición final X en donde podrá aparecer el monster       
EndPosY =   Posición final Y en donde podrá aparecer el monster   
Direction =  Dirección de movimiento. (-1 para ir a en cualquier dirección)      
Quantity =  Cantidad de monsters que saldrán de forma simultánea. 
Value =  0
Comment = De forma opcional podremos comentar el nombre del monsters para ubicarlos facilmente dentro del archivo para futuras modificaciones. Para eso , agregamos dos // luego de la último valor y seguido el nombre de referencia.
Finalizando con nuestra ejemplificacion, nos quedaría asi:
En la columna Monster como serán 3 monsters los que participan en la invasión debemos crear 3 lineas, en cada línea agregaremos el id de cada monster de la siguiente forma: ID:135 (White Wizard), ID 136 (Destructive ogre soldier) e ID 137(Destructive ogre archer)
  
Range: En este caso le daremos un rango máximo de 30
 
En la columna MapNumber, debemos agregar los mapas en donde deseamos que se origine la invasión, ¿Pero podemos agregar cualquier mapa?, la respuesta es no, debemos mantener la coherencia con la que tenemos configurado en nuestra invasión. Si recuerdan en la sección 2, hemos definido los mapas y en mi caso era lorencia (0) y el mapa noria (3). Como no podemos agregar mas de un mapa en una misma linea, debemos agregar dos lineas una por cada mapa. (Y no olvidemos que por cada mapa, debemos agregar las 3 lineas por cada monster)
 
BeginPosX, BeginPosY, EndPosX y EndPosY: son las coordenadas de aparición. Estas coordenadas deben existir en el mapa y ser accesibles por los jugadores. 
Para calcular estas coordenadas debemos ingresar al juego para verificar su existencia. (En un próximo tutorial veremos este tema con mayor profundidad.)
Nuestros valores seran: 148-047-164-065 para el mapa lorencia.
                                        194-070-204-086 para el mapa noria.
Colocamos las mismas coordenada tanto para el boss como para sus tropas, de esa forma apareceran juntos.

Direction: en este caso colocaremos -1 para que el monster se mueva en todas las direcciones.
 
Quantity: En el caso del Boss, colocare 1 y en el caso de las tropas colocaré 10.
 
Value= Será 0 
 
Comment = Colocaremos el nombre de cada monster.(Esto es opcional)
El archivo editado nos quedará asi:  

Visualizando el monstersetbase  
 
6) Y finalmente realizamos el test en nuestro servidor.
 
Visualizando la invasion
 
Como podemos ver, encontramos al boss y sus tropas en el rango de coordenadas configurado.
En esta ejemplificaciones se utilizo una invasión ya existente, la idea es conocer el uso de las funciones de cada sección para poder realizar nuestras propias invasiones personalizadas o modificar las ya existentes.

Editar el CashShop en MuEMU [PARTE I]

 

Bienvenidos a un nuevo tutorial, hoy aprenderemos a editar la tienda CashShop en los files MuEMU. Como este es un tema sumamente amplio, lo haremos por partes, en esta primera parte, aprenderemos a editar nuestra tienda CashShop de forma básica, es decir, a conocer la interfaz, a agregar algunos items, etc.

Para los que no conocen, la tienda/mercado Cashshop , es aquel mercado que, cuando ingresamos al juego y estando en una zona segura aparece al apretar la tecla X.



Este tipo de mercado, tiene la particularidad de que trabaja con los siguientes tipos de monedas:
a)WcoinC
b)WcoinP 
c)GoblinPoint
Si no sabes como editar este tipo de monedas a una cuenta, revisa el siguiente tutorial haciendo Clic Aqui 
Para los que aun no saben a cúal mercado estamos haciendo referencia, observen la siguiente imagen:
 
Visualizando la interfaz del cashshop 7 
 
1) Lo primero que debemos saber, es que, este tipo de shops requiere ediciones server/cliente. 
Pero ¿Qué significa una edición server/cliente? Cuando decimos que una edición es server/cliente, es porque, por cada modificación que realizemos del lado del servidor, debemos hacerlo del lado del juego, es decir, del lado del cliente. Si efectuamos una modificación de forma unilateral (O del lado server o del lado cliente) ocasionaremos un error, que; traerá como consecuencia que el CashShop deje de funcionar en su totalidad. 
 
2) Para comenzar, debemos descargar el archivo llamado Editor CashShop MuEMU.rar el cual podran encontrar en nuestra página de Facebook. Una vez descargado, descomprimimos la carpeta en nuestro escritorio y ejecutamos el archivo Editor CashShop MuEMU.exe 
 
 Abiendo el ejecutable
 
3) Una vez ejecutado el programa, veremos la interfaz inicial, la cual contiene varias secciones , la primera sección es la llamada: "Item Table", en esta primera parte lo que debemos hacer es seleccionar el item que deseamos poner a la venta, en mi caso será una Sword Flameberge
 
 
4) Nuestro siguiente paso, sera configurar la sección "Main Info", aqui le podremos dar un nombre al item diferente al original y una descripción, en mi caso dejare el nombre real y en descripción colocaré "CashShop MuOnline Tutoriales" 
En la misma sección, tenemos cuatro variables a definir, a las cuales debemos prestar atención para evitar errores. 
A) PackType: Define el tipo de pack que usaremos, tenemos variantes, como Normal (Cantidad), Expire (El item desaparece vencido el tiempo dado) y Rate (%) 
Como este es el primer tutorial, trabajemos los aspectos básicos, entonces seleccionaremos la opción Normal(Qty)
B) En Currency debemos seleccionar el tipo de coin por la cual se venderá nuestro item, en mi caso seleccionaré WcoinC
C) Y finalmente en Count , definimos la cantidad de items que estamos ofreciendo a venta, en mi caso será 1 (unidad) (Atención: este valor es la cantidad de item que ofertamos en el CashShop, es decir, si en lugar de 1 ponemos por ejemplo 5, se venderan 5 Swords Flameberge juntas. Este valor no es el precio por el cual queremos vender el item, eso lo veremos a continuación)
Nuestra sección Main Info editada nos quedará asi:
 
Visualizando la main info cashshop
 
5) Y finalmente pasemos a la última sección, la llamada "Products", aca podremos definir si se trata de un Package (Varios items a elección) o Bundle (Varios items juntos). Como dijimos anteriormente, en este primer tutorial, veremos lo básico, entonces dejaremos la opción Package, MultiPackage y Bundle para un próximo tutorial.
En cuanto a las demas opciones, completaremos el cuadro de la siguiente manera:
A)En el campo donde va el nombre, podremos modificarlo si desean, en mi caso dejaré el original, y como era una sola unidad la que venderé, dejaré (1 UN)
B)El campo de abajo, el que dice "1" , es el mismo campo de unidad que modificamos arriba, eso indica que si lo modificamos abajo, automáticamente se modificara arriba (En el campo nombre). (Recuerden, este valor hace referencia a cantidad de un mismo items que pondremos a venta)
C)En el campo "Price", debemos colocar el costo en la coin seleccionada anteriormente, en mi caso serán WcoinC. Colocaré un valor simbólico de 100 WcoinC
D) Y finalmente los demás campos hacen referencia a las características de ese item como nivel, duración, sockets, opc. exc, etc. esto lo configuran a gusto de acuerdo al item seleccionado.
Una vez terminado de configurar el item, hacemos un clic en boton  >Add
 ( Los nombres de las columnas horizontales [W coin (C), W coin (P) y Goblin Point] y verticales [Special, Accessory, Buff, Pet, Ticket], se pueden editar, mover, agregar nuevas, etc. Para eso, basta con hacer un clic derecho sobre el campo y seleccionar la opción deseada. 
Nuevamente, como se trata de un primer ejemplo en mi caso conservaré la originalidad de la interfaz.)
 
Visualizando la interfaz de la opcion products
 
6)Y listo, con eso ya tenemos editado nuestro primer item en nuestra CashShop. Pero claro, sino exportamos los cambios al server/cliente, nada de esto se reflejará al ingresar al juego, por eso debemos prestar atención a esta parte ya que muestro se confunden y esta es una de las razones por las cuales nos escriben a diario.
El programa nos permite salvar el proyecto, de esta forma podremos continuarlo, modificarlo, quitar o agregar item en modificaciones futuras. Para salvar el proyecto hacemos un clic en File => Save As y seleccionamos la ruta en donde se guardará nuestro archivo CashShopData.dat (En los próximos tutoriales veremos como retomar un proyecto guardado)
 
Visualizando save as
 
7) Y si deseamos aplicar los cambios a nuestro servidor/cliente, debemos exportar el proyecto, para eso hacemos un clic en File => Export
 
Exportar proyecto cashshop
 
8) Luego nos aparecerá el siguiente mensaje: 
 
Mensaje de exito
 
9) Ese mensaje nos indica que los archivos del server/cliente fueron exportados a la carpeta Output , la cual se abrirá al aceptar el mensaje anterior. Caso no se abra automáticamente o la cierren, la podrán encontrar en la ruta original en donde hemos descargado los archivos de editor (Escritorio > Editor CashShop MuEMU > Output ).
 
Visualizando la carpeta output
 
10) Dentro de la carpeta OutPut, encontraremos dos carpetas, una llamada Server y la otra llamada Client
El contenido de la carpeta Client contiene 3 archivos: IBScategory, IBSPackage, IBSProduct, los copiamos y los pegamos en la siguiente ruta de su cliente:
MiClienteMuOnline/Data/InGameShopScript/512.2011.006
(Caso tu cliente tenga la carpeta 512.2011.047 tambien hacemos el mismo procedimiento), entonces pegamos los archivos y reemplazamos.

Copiando los archivos del cashshop al cliente
 
11) Por otra parte, el contenido de la carpeta Server contiene 4 archivos, pero atención, de esos 4 archivos sólo usaremos dos y debemos renombrarlos antes de pegarlos en el servidor. 
Esos dos archivos que debemos copiar y pegarlos en el escritorio para renombrarlos son: CashShopPackageMuEmu y CashShopProductMuEmu y los renombraremos de la siguiente forma:
CashShopPackageMuEmu => CashShopPackage
CashShopProductMuEmu => CashShopProduct
Es decir, le quitamos el MuEmu al nombre

Visualizando los archivos del servidor del cashshop
 
12) Ahora copiamos los archivos ya renombrados y los pegamos en la siguiente ruta: 
MuServer/Data/CashShop 
y reemplazamos.

Visualizando la interfaz del firewall en Windows 7
 
13) Ahora reiniciamos el servidor y verificamos los cambios en el juego.

Visualizando la sword en el cashshop
 
Como podemos observar, aparece correctamente el item en nuestro cashshop, junto a su valor en coins y la descripción dada.
Tengan en cuenta que el test real no es ver el item publicado en el cashshop, sino que el test real es cuando podemos efectuar la compra del mismo, entonces siempre que editen el cashshop o lo modifiquen, hagan el test completo e intentanlo comprar para ver si aparece en el inventario.

Observaciones: 
- Este tutorial solo funciona en files base MuEMU, si utilizas otro tipo de archivos no te funcionará.
- Toda la intefaz del cashshop es modificable, desde los nombres, columnas, hasta el skin o diseño.
- En próximos tutoriales, veremos todos los temas pendientes que fuimos comentando.