Dar items al comenzar

Bienvenidos a un nuevo tutorial, hoy aprenderemos a dar items a los personajes que recien comienzan en nuestro servidor.
Existen diversas formas de hacer esto, pero en esta oportunidad lo haremos tomando un molde del personaje editado y lo cargaremos a la base de datos.
Para este tutorial tomaré como base una versión Season 4



1)Lo primero que haremos, será crearnos una cuenta nueva, y en esa misma cuenta creamos un personaje, por ejemplo un [Dark Wizard]

Ingresando al juego mu

2)Ahora lo que haremos será crear el molde; para eso le editamos los items en el inventario/personaje.
Por ejemplo: En esta demostración le editaré un Set Legendary | +13 | Full option | +28 | Con luck
Una vez editado los items (Lógicamente ustedes pueden editar los items que deseen, tengan cuidado, recuerden que al crear un personaje nuevo este no tiene quest, por lo que algunos items al editarlos en el personaje, desaparecen al ingresar.
En ese caso esos items deberán ser editados en el inventario y no sobre el personaje)

Editando items con el mumaker

3)Lo que hacemos ahora, es ingresar al "Analizador de consultas" => MuOnline => User Tables => dbo.Character => Clic derecho y seleccionamos la opción "Open"
Ahora, buscamos nuestra cuenta, nos deslizamos hasta la columna llamada "Inventory" y copiamos su contenido:

Agregando código del items en el analizador de consultas

4)Lo que hemos copiado anteriormente es lo siguiente:
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF036F595E6778007F0070000000000000036F591A6719007F0080000000000000036F59657D67007F0090000000000000036F59BA418E007F00A0000000000000036F59143374007F00B0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14081E000000000000D000000000000014101E000000000000D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Ese código es el inventario con el set Legendary Full editado sobre el personaje.
Lo que haremos ahora, será pegar dicho código en la columna "Inventory" de la tabla dbo.DefaultClassType.
Como el molde corresponde al "Dark Wizard", debemos trabajar sobre el inventario de la columna "Class 0", ya que como hemos visto en antiguos tutoriales, "Class=0" corresponde a la raza o clase "Dark Wizard"

Agregando el código a la base de datos

5)Guardamos los cambios y verificamos en el servidor.
Para verificar que todo este correcto, lo que haremos será crearnos un nuevo "DarkWizard" y ver con que items aparece.

Ingreso al juego para verificar cambios

6)Y efectivamente, el nuevo personaje aparece con el Set Legendary Full.
Como el personaje no tiene los requisitos del sets , estos aparecen en rojo, si el personaje se los quita no podrá ponerselos hasta que alcanze dichos requisitos.
Para que las demás razas, aparezcan con items, deberán repetir el mismo procedimiento es decir:
a)Se crean un personaje con la raza o clase deseada por ejemplo Dark Knigh [Class=16]
b)Le editan los items en el inventario / pesonaje con un editor
c)Copian el molde/código de la columna inventory de la tabla dbo.Character
d)Pegan el molde/código en la columna inventory de la tabla dbo.DefaultClassType en la class correspondiente
Les dejo las class de cada raza:
0=> Dark Wizard
16=> Dark Knigh
32=> Elf
48=> Magic Gladiator
64=> Dark Lord
80=> Summoner
96=> Rage Fighter
Adicional:
*Siempre realizen una copia se seguridad de su base de datos antes de realizar cualquier tipo de modificación en ella.
*Guarden el molde/código del "Inventory" original, ya que si en cualquier momento quieren suspender la entrega de items, necesitarán de los códigos originales.
*Antes de retirar el molde/código, verifiquen dento del juego que los items sean los deseados.

Filtro de palabras [Filter.bmd]

Bienvenidos a un nuevo tutorial, lo que aprenderemos hoy será a modificar el Filter.bmd
¿Qué es el archivo filter.bmd, para qué se utiliza y cómo funciona?
La respuesta es la siguiente: el filter.bmd es un archivo el cual se aloja en nuestro cliente en la ruta:
MiClienteMuOnline/data/local/[Filter.bmd]
y se utiliza para bloquear palabras y de esta forma evitar insultos, agresiones verbales, etc.



Su funcionamiento es bastante sencillo, las palabras ingresadas dentro del juego pasan por un filtro, si la palabra ingresada se encuentra en el listado del filter.bmd nos aparece una leyenda.
Esta leyenda puede variar dependiendo lo que tengamos en nuestro archivo text.bmd de nuestro cliente, por ejemplo en el cliente Season 4, la leyenda que aparecerá se encuentra en la linea 570 del archivo text.bmd
Veamos un ejemplo completo:

1)Ingresamos al Editor Online y abrimos nuestro Filter.bmd de nuestro cliente.
Recuerde que el archivo se aloja en la siguiente ruta:
MiClienteMuOnline/data/local/[Filter.bmd]
Editando archivo filter bmd

2)Ese listado de palabras marcadas con color rojo (son más que las que muestra la imagen, siguen abajo...), serán las que no podremos escribir dentro del juego, ya que si las escribimos nos aparecerá esa leyenda que habíamos comentado anteriormente.
Entonces, ingresaré al juego y escribiré la palabra "fuck"

Verificando en el juego el filtrado de palabras

3)Como podrán observar, cuando intente poner la palabra "fuck" aparecio la leyenda como habíamos dicho anteriormente.
Esa leyenda puede variar, en este ejemplo dicha leyenda la encontramos en la linea [570] del archivo text.bmd

Verificando en el juego

4)Entonces, en el caso de querer desbloquear alguna palabra del filtro, lo que hacemos es ingresar al archivo filter.bmd , borramos la palabra a desbloquear y guardamos los cambios.

Ingresando al juego

En el caso que quieran agregar más palabras para filtrar, lo que debemos hacer es ir al archivo filter.bmd y deslizarnos hasta la última palabra agregada y justo debajo escribimos lo que deseamos bloquear.

Agregar un chat virtual [Interactivo]

Bienvenidos a un nuevo tutorial, hoy veremos como agregar un chat virtual de modo interactivo.
Este tipo de chat permite tener una conexión virtual en tiempo real con el usuario. Generalmente este tipo de App. se aplican a sitios de ventas o empresas que ofrecen algun tipo de producto, es por eso que nosotros podemos hacer uso de esta aplicación en nuestra WebShop, de esta forma podremos conversar con nuestros usuarios sobre cualquier inquietud que tengan en relación a nuestros items/vips/etc.



Este tipo de aplicaciones son comunes en la red y existe una gama amplia a la hora de elegirlas.
En su mayoria comienzan siendo FREE (claro esta, con algunas limitaciones), y luego con el tiempo se convierten en sólo premiun o pagas. Pero hasta ese entonces podemos hacer uso de la aplicación sin problemas.
En esta oportunidad trabajaremos con https://www.zopim.com/

1)Lo primero que haremos será ingresar al sitio y registrarnos.

Ingresando a la interfaz de zopin

2)Completado los datos,nos llegará un mail para confirmar el mismo. Luego de confirmar el registro nos aparecerá una pantalla con un formulario el que debemos completar con nuestros datos de perfil; lo haremos de la siguiente manera:
First Name: Nuestro nombre
Last Name: Nuestro apellido
Display Name: Nombre a mostrar
Luego hacemos un clic en "Next"

Registro en el sitio zopin

3)En este paso nos aparecerá en pantalla un script o código.
Dicho código es el que debemos pegar en nuestro sitio, de preferencia en nuestro index.php.
El script debe estar entre las etiquetas:
<head> </head>
Obtiendo el código del chat

4)Una vez pegado el código, guardamos los cambios y verificamos.
Lo que nos debe aparecer es la ventana para iniciar el chat en la parte inferior derecha de nuestra web.

Visualizando el código del chat

5)Ahora volvemos a la página y hacemos un clic en el boton "Go to Visitor List"
Aqui podremos personalizar la ventana del "Chat", por ejemplo: En la opción "Widget" configuramos la parte estética: Colores, leyendas, etc.
En la opción "Visitor List" o "Lista de visitantes" podemos ver quienes nos visitan, asi como la URL de llegada, el país, etc...
En la opción "Personal", podemos modificar el lenguaje, para quienes no les gusta el Ingles pueden modificarlo a "Español" o al lenguaje que desean. Luego de hacer la modificación deben "Salvar/Guardar los cambios"

Personalizando el chat

6)Finalmente, lo más importante:
Cuando un usuario ingrese a nuestra web y se intente contactar con nosotros nos aparecerá un mensaje en la parte inferior izquierda de la pantalla con la leyenda de "Atender petición de 1"

Personalizando configuraciones

7)Simplemente hacemos un clic sobre dicho boton y nos aparecerá la ventana para poder comenzar el chat.

Atendiendo chat demo

Desde el panel de administración tenemos muchas funciones y configuraciones que podemos aplicar, eso quedará a gusto personal de cada uno de ustedes.

Desconectar usuarios online [Pegados]

Bienvenidos a un nuevo tutorial, hoy aprenderemos algo realmente sencillo pero práctico: "Desconectar usuarios online"
¿Para qué sirve esto y a qué se aplica?
Cuando los usuarios se conectan a nuestro servidor, la tabla "MEMB_STAT" se actualiza, pero no lo hace sola ni mucho menos, quien hace esta actualización es un procedimiento almacenado llamado WZ_CONNECT_MEMB.
Este procedimiento envia un conjunto de variables al SQL como por ejemplo la fecha de conexión, el nombre del servidor, etc y entre esas variable envia a la columna "ConnectStat" el parámetro "1".
Ese parámetro 1 es que la web identifica como "Cuenta Online" (Importante, aca no trabajamos con el personaje sino con la cuenta)



Cuando el usuario decide salir del juego, se ejecuta el procedimiento inverso/contrario/opuesto, el llamado WZ_DISCONNECT_MEMB, que lo que hará entre otras cosas, será ingresar el valor "0" en la tabla "MEMB_STAT" en la columna "ConnectStat"
Entonces, pasando en limpio lo nombrado anteriormente, cuando en la columna "ConnectStat" tenemos un "1", eso nos indica que la cuenta está Online, y cuando el valor es "0" eso nos indica que la cuenta está Offline.
Esa sería la dinámica del servidor, pero sucede que a veces el servidor es cerrado de manera brusca o repentina y el usuario no puede salir por sus propios medios, es por eso que decimos "Se pego la cuenta"
En versiones nuevas esto no trae dificultades mayores, pero si a la hora de ver los usuarios online ya que las estadísticas no serán las correctas.
Es por eso que veremos dos alternativas para solucionar el problema:

a)Si son pocos usuarios podemos hacer lo siguiente:
1)Ingresamos al "Administrador corporativo" => "Base de datos" => "MuOnline" => "Tablas" => "MEMB_STAT" => "Abir tabla" => "Devolver todas las filas"

Ingreso a la tabla del sql server

2)Lo que debemos hacer ahora, es buscar en la columna memb___id el ID o Login de la cuenta en cuestión.
Una vez localizado, en la columna siguiente, es decir, en la llamada "ConnectStat" veremos un 1, ese uno como ya hemos visto nos indica que la cuenta está conectada entonces lo que hacemos cambiamos el 1 que acompaña la cuenta por un 0.

Tabla que marca los conectados

Con eso, la cuenta estará desconectada. Como pudimos observar el procedimiento es totalmente manual, esto significa que con pocas cuentas no nos traíra mayores complicaciones, pero con 100 o 200 cuentas este proceso se puede convertir en una tarea compleja.

b)Por eso, si las cuentas conectadas o pegadas son muchas podemos hacer lo siguiente:
1)Ingresamos al "Analizador de consultas", seleccionamos como base de datos la "MuOnline" y corremos la siguiente consulta:
UPDATE MEMB_STAT
SET ConnectStat=0 where ConnectStat=1
Con esa consulta todas las cuentas serán desconectadas.

Consulta para desconectar las cuentas de la pagina del mu

*Es importante destacar que dicha consulta la debemos ejecutar antes de poner el servidor Online.
*Dependiendo la cantidad de cuentas, este procedimiento puede demorar.
*La condición where se aplica opcionalmente, ya que algun servidor puede usar dicha variable para otro uso.

Verificador de puertos online

Bienvenidos a un nuevo tutorial, aunque en esta oportunidad no se trata de una guia nueva sino vengo a dejarles un verificador de puertos.
¿Qué es y para qué sirve?
En variadas oportunidades recibimos preguntas cómo por ejemplo: "¿Tengo abierto el puerto de GameServer.exe?" "¿Cómo puedo saber si está correctamente abierto el puerto de mi web? "otras similares preguntas ..."
Es por eso que decidimos crear un simple pero práctico verificador de puertos Online, de esta forma no tendrán que instalar nada en su pc y su uso es realmente algo muy sencillo.
Veamos como se usa:

1)El primer paso será ingresar al siguiente enlace: Verificador Online

Interfaz del verificador de puertos

2)La imagen anterior muestra la interfaz del verificador.
Lo que debemos hacer es completar esos dos campos de la siguiente manera:
Ingrese su ip numérica o no-ip: Aqui lo que debemos ingresar es nuestra IP numérica, la misma la podemos observar en la página, ya que el verificador detecta la IP numerica desde donde nos estan visitando (Con esto tenemos que tener cuidado, ya que si ingresan al verificador desde otra PC que no sea la server, les detectará la IP incorrecta)
Tambien en dicho campo podemos agregar nuestra no-ip, por ejemplo asi: byasd.sytes.net
Ingrese el puerto a verificar: Aca lo que debemos hacer es ingresar el puerto que queremos saber si esta abierto o no. Por ejemplo el puerto convencional del ConnectServer.exe es el 44405
Luego hacemos un clic en donde dice "Enviar"

Si todo esta bien, les aparecerá una leyenda informando que el puerto está abierto, caso contrario les aparecerá un mensaje informando que el puerto esta cerrado.
En caso que el puerto este cerrado deberán verificar: Firewall de sistema, Firewall de Router [NAT-DMZ], antivirus instalado, etc ...
Recuerden que algunas empresas de internet bloquean los puertos, para abrirlos deben hablar con su proveedor.