Diseño web Parte II

Bienvenidos a un nuevo tutorial.
  • Antes de realizar este tutorial debemos tener instalado Flash Decompiler Trillix By Eltima Software Ver Aqui




  • Continuamos con la sección, ¿Cómo modificar los archivos .swf de las WebMU?, ahora le toca el turno a otra web, muy utilizada por ustedes es la Muweb 0.8 HasteNews y como la anterior esta también tiene los créditos muy resaltados, la primera dice "Mu web HasteStyle" y la segunda dice "BY PAPU"
    [Ver la siguiente imagen para saber de lo que estoy hablando]

    Header en flash de la web

    A más de uno les gustaría que la imagen les quede así ¿O no?... Simplemente lo que hice fueron unos retoques con Photosohop para quitar los créditos tan visibles.
    (Cuidado, no se trata de quitarle los créditos a quienes realizan los trabajos, sino que se trata de que no opaquen nuestra presentación.
    Si quitamos los créditos del header, debemos agregarlos en cualquier otra parte del sitio, este puede ser en el footer o pie de la página)

    Header modificada en donde no se visualizan los créditos

    ¿Cómo lograr ese banner sin créditos notables?
    1)Para esto utilizaremos el mismo software que en el otro tutorial pero esta vez utilizando otras funciones del programa.
    Una vez que tenemos la imagen nueva, aclaro que pueden cambiar esa imagen siempre y cuando respeten las mismas dimesiones (1000x315) abrimos nuestro programa vamos a "Manage => Open " y buscamos en la carpeta Webmu el archivo mainmenu.swf
    Una vez cargada nuestra imagen vamos al boton "Edit" y hacemos clic en el que dice Images [Ver imagen]

    Editando imagen en el decompiler

    2)Como verán solo tenemos una imagen y esta será la única que necesitamos modificar para que nuestro banner se vea como deseamos. Para eso hacemos un clic sobre la imagen que se encuentra sobre el panel derecho y nuevamente un clic sobre sobre el icono con forma de "sobre" que se encuentra debajo de la image 1
    [Ver la siguiente imagen]

    Subiendo imagen nueva modificada

    3)Cuando hagamos un clic en el icono que indica la imagen anterior aparecerá una ventana donde nos pedirá que busquemos nuestra nueva imagen a cargar.
    También pueden poner una que ustedes tengan o les guste, pero recuerden que si ponen una imagen con el mismo color que el menú, después este no se va a poder visualizar con claridad, ustedes prueben (Nuevamente les recuerdo las dimensiones que debe tener la imagen que deben agregar, estas son: 1000x315).
    Finalmente selecionamos la opción "Save as", y guardan el nuevo archivo .swf en el mismo lugar en donde estaba el orginal.
    Les dejo la última imagen para que vean como me quedó.

    En este caso utilizé una imagen con un fondo de color azul y un marco igual al de este sitio (Les recomiendo que para realizar este tipo de imágenes utilizen Photoshop), Como verán el menú en Flash se conserva tal cual el original .
    Espero que les sirva y puedan aplicar esta técnica a otros proyectos.

    Visualizando trabajo final

    Cambiar el precio de la Jewell´s

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a cambiar el precio de la Jewell´s de nuestro servidor.
    Este tutorial es válido y aplicable en aquellos servidores en donde no tenemos un archivo .ini con variables externas que nosotros podramos configurar fácilmente.
    Es por eso que para esto, necesitamos editar nuestro GameServer.exe de forma directa, aplicando los valores a las fórmulas de ejecutable.



    Para este tutorial es necesario tener conocimientos en cuanto a la manipulación de un programa hexadecimal, particularmente en este sitio siempre utilizamos el mismo:
    Ultraedit 32 el cual pueden descargar y además conocer sus funciones en el siguiente tutorial Ver Aqui

    1)A continuación dejaré el valor de las cadenas hexadecimales que ustedes deben cambiar para cambiar el precio de las jewell´s
    (Antes de realizar esto hagan una copia de su gameserver.exe)
    Entonces comenzemos:
    A) Abre el GameServer con el editor hexadecimal, luego pulsa "Control+G"
    En nuestro nuevo cuadro debemos buscar la dirección HEX por ejemplo si queremos cambiar el precio de una "BLESS" en una versión 0.97x , escribimos en el cuadro de búsqueda "0x7fd20h" [Sin comillas] entonces modificamos las cadenas de acuerdo a los valores que nosotros querramos:

  • Bless:
  • Versión 097 -> 0x7fd20h
    Versión 0.97d -> 0x80020h
    En la 097d está este precio: A0 86 01 (100 millones)
    En la 097 está este precio: 40 54 89 (9 millones)

  • Soul:
  • Versión 097 -> 0x7fd30h
    Versión 097d -> 0x80030h
    En la 0.97d: 20 A1 07 (60 millones)
    En la 0.97: 80 8D 5B (6 millones)

  • Life:
  • Versión097 -> 0x7fd70h
    Versión097d -> 0x80070h
    en la 097d:40 4B 4C (unos 5 millones, nose)
    en la 097: 40 A5 AE 02 (45 millones)
    2)A continuación dejo la lista de algunos valores hexadecimales más usados (Si quieren utilizar un valor que no se encuntra en la lista, abran la calculadora escriben el valor en DEC [decimal] y luego hacen un click en donde dice HEX [hexadecimal], el número lo deben escribir al reves, de atrás para adelante (Buscar tutoriales sobre este tema en el sitio)
    Sino les aparece, van arriba de la calculadora y donde dice VER tildamos la opción "Científica" )
    1.500.000 Zen = 60 E3 16
    3.000.000 Zen = C0 C6 2D
    6.000.000 Zen = 80 8D 5B
    9.000.000 Zen = 40 54 89
    12.000.000 Zen = 00 1B B7
    45.000.000 Zen = 40 A5 AE 02
    3) Por las duda, veamos un ejemplo rápido, en mi calculadora pondré el valor de 2.000.000 [Dos millones] en decimal

    Calculadora científica de windows

    4)Ahora hacemos un click en donde dice [HEX] y veremos que automáticamente tenemos el valor en el visor

    Convirtiendo número en hexadecimal

    5) Como pueden ver 2.000.000 decimales es igual a 1E8480 hexadecimales. Pero como expliqué anteriomente debes escribir ese número al reves, entonces nos quedaría
    2.000.000 Zen = 80 84 1E

    Restaurar Base de Datos

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a restaurar las bases de datos desde las copias de seguridad que suelen incluirse en los archivos de nuestros Files mu.
    Este paso se hace para crear las tablas/funciones/procedimientos necesarios para hacer funcionar el servidor mu.
    Como siempre vamos a los pasos que nos guiarán y orientarán a lo largo de este tutorial:



    1)Lo primero que debemos hacer, será crear la base de datos para luego restaurarla. Para crear nuestra base de datos es necesario "Abrir Administrador Corporativo" y para esto vamos a:
    Inicio-> Todos los Programas ->Microsoft SQL Server ->Administrador Corporativo
    Luego expanden las entradas hasta llegar a "Base de datos" hacemos un clic derecho y seleccionamos la opción llamada "Nueva base de datos"

    Creando nueva base de datos

    2)En la siguiente pantalla creamos una base de datos llamada "MuOnline" como se muestra en la siguiente imagen y hacemos un clic en aceptar

    Asignando el nombre muonline a la nueva base

    3)Ya tenemos creada nuestra Base de Datos, pero asi como está no nos sirve, lo que demos hacer es resturar esa base de datos a partir de los backups que tenemos en nuestros Files (Generalmente dependiendo el Repack de los files, este o estos archivos los encontramos en una carpeta dentro de los Files llamada "Db Back" o "Backups" o "DB" o "Data Base"
    También puede que tengamos que restaurar 2 bases de datos ó 3 bases de datos ó 4 bases de datos, esto lo sabremos al encontrar la carpeta mencionada anteriormente y ver cuantos archivos tenemos.

    En este tutorial veremos como restaurar 1 base de datos, la llamada MuOnline, ustedes deben repetir estos pasos con cada base de datos que tengamos.
    También aclararé algo, si tiene otra base de datos llamada "Ranking", en el paso número no deben poner como nombre de la base de datos "MuOnline" sino "Ranking" y en los pasos siguiente cuando el tutoral haga referencia a MuOnline, ustedes deben aplicarlo en función de la base de datos "Ranking")
    Para resturar la base de datos MuOnline hacemos un clic derecho sobre "MuOnline" luego seleccionamos "Todas las tareas" y finalmente "Resturar base de datos"

    Restaurando base de datos

    4) En nuestra nueva ventana, tildamos la opción que dice "Desde dispositivos" y luego hacemos un clik en "dispositivos"

    Seleccionando opción dispositivo

    5)En nuestra nueva ventana hacemos un clic en donde dice "Agregar"

    Agregando dispositivo

    6)En nuestra nueva ventana debemos buscar el archivo MuOnline que está alojado en alguna carpeta de nuestros files.
    Las posibles carpetas fueron nombradas anteriormente, en mi caso particular mi archivo esta en la siguiente carpte
    D:\Muserver\DB
    Entonces hacemos un clic en "..."(tres puntitos) y buscamos dentro de esa carpeta el archivo llamado MuOnline.bak
    Lo seleccionamos y aceptamos.

    Seleccionando la base de datos a restaurar

    7)Aceptamos todos los diálogos, hasta llegar al primero "Restaurar base de datos" ahí nos detenemos y vamos a la opción llamada "Opciones"

    Seleccionando la ruta en donde se restaurará la base de datos

    8)En esa ventana lo que debemos hacer es cambiar la ruta donde queremos alojar la restauración, yo personalmente acostumbro hacerlo en la misma carpeta en donde están las base de datos para esto buscamos la linea
    C:\MuOnline\DB\MuOnline_Data.MDF
    y la cambiamos por
    D:\Muserver\DB\MuOnline_Data.MDF
    Una aclaración D:\Muserver\DB es la ruta que yo estoy utilizando, la de Ustedes seguramente será otra.
    Otro detalle importante, eso que hicieron arriba también deberán hacerlo abajo, es decir, tanto en "MuOnline_data" como en "MuOnline_Log" quedando la misma ruta en ambos.

    Atención: no copien ni peguen la ruta de arriba en la de abajo, presten atención que son dos extenciones direfentes la primera tiene extención .MDF y la de abajo tiene extención .LDF
    A demás los archivos se llaman distintos MuOnline_Data y MuOnline_Log por lo tanto presten atención y no se apuren en querer hacerlo rápido.

    Otra detalle más, dependiendo las bases de datos utilizadas pueden que tenga un error, entonces lo que deben hacer es tildar la opción llamada:
    Forzar restauración sobre la base de datos existente
    Luego hacemos un clic en aceptar y nuestra base de datos se restaurará.
    El archivo editado debería quedarles asi:

    Verificando los datos a restaurar

    9)El proceso de restauración puede demorar varios minutos [Depende de nuestro hardware], también hay que destacar que la base de datos MuOnline es la más pesada respecto a las demás (Ya que es la poseedora de todas las tablas funcionales de nuestro servidor MuOnline, y cuando más nueva sea la versión mas cantidad de datos tendrá)

    Acá no puede haber margen de error. En caso que lo haya es porque algo están haciendo mal, revisen las rutas para saber si son las correctas (En caso que no utilizen la ruta que utilizé yo, la que ustedes eligieron debe ser una ruta válida y debe existir. No se puede resturar un base de datos en una ruta imáginaria)
    Cuando termine la restauración verán un cartel similar al siguiente:
    (Digo similar porque algunos utilizan el Sql server 2000 en Ingles)

    Restauración completada

    Lo que deben hacer ahora ustedes es repetir los mismos pasos apartir del 1)
    Ya lo hicimos con la base de datos MuOnline, entonces ustedes deberán repetir los pasos utlizando las restantes bases de datos en caso de tenerlas.
    Entre las más usadas pueden aparecer las llamadas:
    SCFMuTeam, Event y Ranking

    Seguridad parte III

    Bienvenidos a un nuevo tutorial, hoy aprenderemos algo más sobre seguridad. Esta vez estará aplicada a evitar el dupeo en nuestro Servidor MuOnline.
    Lo que vamos a utilizar es un script el cual detectará items dupeados y baneará las cuentas de quien los poseea.
    Este script fue probado en versiones anteriores a las 0.99B, y es importante saber que para que funcione correctamente, nuestro servidor MuOnline debe tener activado el "Lector de serial de los items de nuestro server"

    Seguridad muonline

    1)Para aplicar estas querrys, lo que debemos hacer es ingresar al "Analizador de consultas", logearnos y seleccionar como base de datos la llamada "MuOnline"
    Luego copian lo siguiente:
    use muonline
    if exists(select * from dbo.sysobjects where type='p' and name='WZ_GetItemSerial')
    drop procedure WZ_GetItemSerial
    go
    CREATE procedure WZ_GetItemSerial
    as
    BEGIN
    DECLARE @ItemSerial int
    set nocount on
    begin transaction
    update GameServerInfo set @ItemSerial = ItemCount = (case when ItemCount < 0x7effffff then ItemCount+1
    else 1
    end )
    if(@@error <> 0)
    begin
    rollback transaction
    select-1
    end
    else
    begin
    commit transaction
    select @ItemSerial
    end
    END

    GO
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_CheckSameID]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
    drop trigger [dbo].[trg_CheckSameID]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AllItemsLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[AllItemsLog]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CopyLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[CopyLog]
    GO

    CREATE TABLE [dbo].[AllItemsLog] (
    [items_id] [int] IDENTITY (1, 1) NOT NULL ,
    [items_type] [binary] (1) NOT NULL ,
    [items_serial] [binary] (4) NOT NULL ,
    [items_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[CopyLog] (
    [copy_id] [int] IDENTITY (1, 1) NOT NULL ,
    [copy_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [copy_whdata] [binary] (1200) NOT NULL ,
    [copy_date] [datetime] NOT NULL
    ) ON [PRIMARY]
    GO

    ALTER TABLE [dbo].[AllItemsLog] ADD
    CONSTRAINT [DF_CT_ITEM_item] DEFAULT (0) FOR [items_type],
    CONSTRAINT [DF_CT_ITEM_itemid] DEFAULT (0) FOR [items_serial],
    CONSTRAINT [DF_CT_ITEM_itemrole] DEFAULT ('\') FOR [items_acid]
    GO

    CREATE INDEX [IX_CT_ITEM] ON [dbo].[AllItemsLog]([items_type], [items_serial]) ON [PRIMARY]
    GO

    ALTER TABLE [dbo].[CopyLog] ADD
    CONSTRAINT [DF_CopyLog_copy_date] DEFAULT (getdate()) FOR [copy_date]
    GO


    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    CREATE TRIGGER [dbo].[trg_CheckSameID] ON [dbo].[character]
    FOR UPDATE
    AS
    BEGIN
    IF UPDATE(inventory)
    BEGIN
    SET NOCOUNT ON
    DECLARE
    @wh_acid varchar(10),
    @wh_data binary(1200),
    @wh_type binary(1),
    @wh_serial binary(4),

    @cr_user varchar(10),
    @cr_acid varchar(10),
    @cr_data binary(760),
    @cr_type binary(1),
    @cr_serial binary(4),

    @al_acid varchar(10),
    @j int,
    @k int,
    @find bit

    SELECT @cr_acid=i.accountid,
    @cr_data=i.inventory
    FROM inserted i

    SET @j=0
    SET @find=0

    WHILE @j<76 and="and" br="br" cr_data="cr_data" is="is" not="not" null="null">BEGIN
    SET @cr_type=SUBSTRING(@cr_data,@j*10+1,1)
    SET @cr_serial=SUBSTRING(@cr_data,@j*10+4,4)
    IF @cr_type<>0xFF AND @cr_serial<>0x00000000
    BEGIN
    SELECT @al_acid=items_acid FROM allitemslog WHERE items_type=@cr_type AND items_serial=@cr_serial


    IF @al_acid IS NULL
    INSERT INTO allitemslog (items_type,items_serial,items_acid) VALUES (@cr_type,@cr_serial,@cr_acid)
    ELSE
    BEGIN
    UPDATE allitemslog SET items_acid=@cr_acid WHERE items_type=@cr_type AND items_serial=@cr_serial


    SELECT @wh_data=items FROM warehouse WHERE accountid=@al_acid

    SET @k=0
    WHILE @k<120 and="and" br="br" is="is" not="not" null="null" wh_data="wh_data">BEGIN
    SET @wh_type=SUBSTRING(@wh_data,@k*10+1,1)
    SET @wh_serial=SUBSTRING(@wh_data,@k*10+4,4)
    IF @wh_type=@cr_type AND @wh_serial=@cr_serial
    SET @find=1
    SET @k=@k+1
    END
    END
    END
    SET @j=@j+1
    END
    IF @find=1
    BEGIN
    INSERT INTO copylog (copy_whdata,copy_acid,copy_date) VALUES (@wh_data,@al_acid,getdate())
    -- this is wer u can add more punishment like ban or lock characters
    UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
    END
    SET NOCOUNT OFF
    END
    END
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    DECLARE @al_acid char(50)
    set @al_acid = 'ASUS'
    UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
    go
    select * from AllItemsLog
    select * from CopyLog
    2) El paso siguiente será presionar F5 y luego presionar "Ctrl+n"

    3) Luego de presionar esta combinación de letras, se abrirá otro recuadro y deberán copiar lo siguiente:
    use MuOnline
    select * from AllItemsLog
    select * from CopyLog
    4) El paso siguiente sera presionar F5 y luego presionar "Ctrl+n"

    5) Luego de presionar esta combinación de letras, se abrirá otro recuadro y deberán copiar lo siguiente:
    use MuOnline
    select * from CopyLog
    6)Presionas F5 y listo, luego cierras las ventanas y guardas los cambios en donde tu quieras.
    Con ese script el antidup ya estará funcionando.

    SQL injections en PHP

    Muchos de Ustedes han escuchado hablar del famoso SQL Injections , y más de uno se pregunta ¿Qué quiere decir eso?
    La inyección de sql son códigos, mejor dicho son script que ultilizan los "hackers" para modificar , extraer o manipular datos almacenados.
    ¿Como lo hacen?, muy fácil si ustedes se ponen a pensar cuando creamos una cuenta por la página de nuestro juego, los datos viajan por .php a traves de variables hacía la .DB (Base de Datos) esa es la conexión que tiene la página web a nuestra Base de Datos que por defecto todos llamamos MuOnline.

    Los inyectores se ejecutan de esa manera, en vez de enviar los datos de la cuenta envian otros.
    mssql_connect(..);
    mssql_select_db(..);
    $account = $_POST['acc']; // Usuario
    $password = $_POST['pass']; //Password
    // Otras variables
    $query = mssql_query("select count(*) from [memb_info] where [memb___id]='$account'");
    ?>
    Ese es un ejemplo claro de envio de datos de un sitio a una base de datos
    En la primera linea se conecta a la base de datos y en la segunda linea, luego tenemos las variables $cuenta $ password.
    Las inyecciones pueden ser hechas en un $_POST, $_GET , $_REQUEST, $_COOKIE o a cada valor que el usuario puede tener acceso.

    Una forma  a esto es utilizar "addslashes()" que devuelve una cadena con barras invertidas delante de los carácteres que necesitan escaparse en situaciones como consultas de bases de datos, etc.
    Los carácteres que se escapan son la comilla simple ('), comilla doble ("), barra invertida (\) y NUL (el byte NULL)

    Seguridad parte II

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a configurar nuestro firewall del Sistema Operativo, cerrando asi, puertos editables o propensos a hackeos.
    Para esto, iremos a los pasos que nos guiarán a lo largo de este tutorial.
    1)Ingresamos al Firewall de nuestro sistema operativo
    Por ejemplo, si utilizas Windows xp [Vista por categorías] vamos a
    Inicio=> Panel de Control=> Centro de Seguridad
    Ingresando al firewall de windows

    2)Luego nos desplazamos hacia abajo y hacemos clic en donde dice
    "Firewall de Windows" (Si está desactivado, lo activamos)

    Firewall de windows

    3)Vamos a la solapa del medio "Excepciones" y solamente dejamos tildado al la aplicación "GameServer" (Puede haber más de uno) y ConnectServer (También podemos encontrarla con el nombre de CS o Connect)
    (También dejamos abierto el puerto 80 si es que tiene una WebMU)

    A los demás programas le sacamos el tilde. [Principalmente a los dataserver y al joinServer]

    En el caso que necesiten tener el puerto del SQL (1433) abierto para utilizar el editor o la WebMU remotamente o en un hosting, hacemos clic sobre el nombre que le pusieron a ese puerto luego ponen modificar y finalmente van a la opción "Cambiar ámbito"
    En la nueva ventana seleccionan la opción de "Lista personalizada" y ponen la ip de la red que se está conectado
    Con esta opción nos aseguramos que sólo puedan entrar a ese puerto aquellas ips a los que nosotros le dimos autoridad.

    Recuerden que una vez que ponen el ip deben poner también (En algunos casos) la mascara de subred:
    Por ejemplo 201.220.12.14/255.255.255.0 y si quieren agregar dos deben separarlos por una coma ","

    Seguridad parte I

    Bienvenidos a un nuevo tutorial sobre seguridad, hoy veremos un método totalmente antiguo de evitar hackeos en nuestros server.
    Se trata de cambiar nuestros puertos standars del servidor.
    ¿Para que nos puede servir?
    Existen softwares o programas que están predefinidos, es decir, que traen por defecto un puerto para utilizar. Quien usa estos programas para hackiar un servidor está totalmente limitado, ya que no podrá cambiarle el puerto.
    Lo que podemos hacer nosotros es cambiar el puerto de nuestro server para que ese programa quede inutilizable.
    Veamos rápidamente como hacerlo:

    1)Primero debemos apagar el server, y dependiendo la forma de inicio de tu server (StartUP, Supload, links, etc)
    Mi ejemplo estará basado en el inicio del server de forma tradicional, es decir, mediante links, de todas meneras este tutorial es aplicable a todas las formas de inicio mencionadas anteriormente:
    Originalmente nuestros parámetros de inicio son los siguiente (Solo agregué con los que vamos a trabajar, logicamente son más links pero no tiene importancia):
    1- D:\muserver\DataServer1\Dataserver.exe 55960
    2- D:\muserver\DataServer2\Dataserver.exe 55962
    4- D:\muserver\JoinServer\JoinServer.exe /p55970 /ca127.0.0.1 /cp55557
    8- D:\muserver\GameServer\Gameserver.exe 127.0.0.1 55970 127.0.0.1 55960 55901
    2)El cambio que debemos realizar es el siguiente
    1- D:\muserver\DataServer1\Dataserver.exe 52234
    2- D:\muserver\DataServer2\Dataserver.exe 52236
    4- D:\muserver\JoinServer\JoinServer.exe /p52321 /ca 127.0.0.1/cp55557
    8- D:\muserver\GameServer\Gameserver.exe 127.0.0.1 52321 127.0.0.1 52234 55901
    3)El primer cambio que debemos hacer, esta en la primera dataserver, allí podemos poner cualquier puerto [Debe tener 5 números no superior a 65534] en mi caso puse el "52234"

    4)La segunda dataserver, tiene que ser el puerto que pusimos más 2 (dos), es decir, en mi caso sería asi "52234+2=52236 "

    5)Ponemos un nuevo puerto para nuestro JoinServer (Aunque recuerden que los puertos de las dataservers, como el joinserver deben estar cerrados)

    6)Finalmente completamos los parámetros del GameServer.exe con el que pusimos en nuestros joinserver y con el de nuestra DataServer 1
    También podemos cambiar el puerto 55901 de nuestro GameServer.exe (Recuerden también cambiarlos en los archivos del server [CS])

    Crear skin

    Bienvenidos a un nuevo tutorial, hoy aprenderemos una forma sencilla de crear un skin de nuestros archivos correspondientes al cliente MuOnline.
    Para esto necesitaremos una herramientas llamada MuImggui que nos permitirá convertir formatos OZJ a JPG.
    También necesitaremos un editor gráfico (Puede ser Paint Shop Pro, Adobe Photoshop u otro similar, siempre recomiendo Photoshop)



    1)Descargamos el programa MuImgGui. Lo abrimos. En la parte donde dice Browse tenemos que buscar el disco y la carpeta donde se encuentre nuestro cliente MU.
    Una vez ubicado, entramos en la subcarpeta "data".

    Interfaz del MuimgGui

    2) En esta parte entramos a la subcarpeta de lo que deseas modificar.
    En este caso, modificaremos la apariencia de una armadura. Por lo tanto, entramos en la carpeta "Player"

    Visualizando imagen ozj

    3) Una vez seleccionado lo que vamos a modificar, tendremos que hacer clic en el boton "Convert". Aseguremonos que nos encontramos en el modo 1: MuFile > IMG FILE. Con esto lograremos convertir el archivo .OZJ a JPG. (El programa no emite ningun aviso o mensaje una vez presionado el boton Convert)

    Convirtiendo imagen ozj a jpg

    4) Una vez que hicimos clic en "Convert", tenemos que ir a la carpeta Player (O en la carpeta que este el archivo que hemos convertido a JPG) y abrimos ese archivo con un editor de gráficos, como Paint Shop Pro, Adobe Photoshop u otro similar

    Visualizando imagen convertida a jpg

    5) Podemos modificar el skin haciendo uso de funciones variadas como reemplazar color, degradados, etc.
    Una vez que lo terminemos de modificar, guardamos el archivo y volvemos a abrir el programa MuImgGui. Esta vez, abajo de todo tendremos que seleccionar el modo 2: Img file ->MU File

    Convirtiendo imagen jpg a ozj nuevamente

    Luego en la lista de archivo seleccionamos el .jpg que guardamos y pulsamos en "Convert"
    Con esto ya estará instalado el skin en el juego.
    Ingresamos al server y vemos los cambios los cambios.
    Es recomendable hacer copias de seguridad de todos los archivos que se modifiquen.

    Modificar mensajes en el server

    Bienvenidos a un nuevo tutorial, lo que aprenderemos hoy es a cambiar los mensajes que aparecen en el server, cambiar los comandos admin como por ejemplo: el comando /disconnect y reducirlo a /d simplemente, para todo esto vamos a necesitar un programa llamado Wtf Editor.



    Empezaremos con un poco de información acerca del archivo .wtf
    Dependiendo el protocolo con el cual trabaje nuestro server podemos utilizar alguno de los siguientes:
    message_kor.wtf, message_eng.wtf, message_tai.wtf, message_jap.wtf
    (Para saber cual utiliza nuestros servidor bastará con entrar en la carpeta DATA y buscar el archivo commonserver.cfg y ver el lenguaje con el cual trabaja su server).

    Archivos commonserver

    El archivo message_kor.wtf Ppuede variar el nombre, eso depende del lenguaje de tu server con el cual estes trabajando) es el que maneja los mensajes tales como:
    The Devil square gate opens in 5 minutes
    o
    Disconnecting in 5...4...3...2...1
    Veamos como editar este archivo, sólo voy a explicar como modificar 1 sólo comando ya que el método es para todos igual.
    1) Abrimos el programa Wtf editor y vamos "File(F)=>Open(O)", ahora debemos buscar nuestro archivo wtf, si su server por ejemplo trabaja con el protocolo Koreano debemos abrir el archivo que se llama asi "message_kor.wtf", si tu server utiliza lenguaje en Ingles =>message_eng.wtf, si el lenguaje es Taiwan =>message_tai.wtf, y si es Japones =>message_jap.wtf. etc ...

    Carpeta muserver

    2)Buscamos nuestro archivo .wtf

    Abriendo archivo message wtf

    3)Ahora buscamos la linea la cual tiene el comando /Disconnect
    (Puede ser que en sus files el comando este traducido o reducido)

    Editando comando disconnect

    4)Y abajo donde dice "Msg" ponemos el comando que a nosotros nos resulte más fácil yo por ejemplo puse /d y hacemos un clic en el botón que dice "Mod(M)(Modificar)"

    Modificando el comando

    5)Finalmente para comprobar que nuestro cambio de comando fue efectivo, regresamos y vemos nuestra nueva linea de comando
    (Logicamente que deberán ingresar al server a verificar los cambios)

    Salvando los cambios en el archivo wtf

    De esa manera pueden cambiar los mensajes que aparecen en dorado por la pantalla que hacen referencia a los eventos, pueden cambiar/modificar los comandos y todo lo que puedas encontrar en el archivo .wtf.

    Traducir nuestro cliente

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a traducir el cliente MuOnline.
    Para esto usaremos un programa que se llama BMDEditor.
    ¿Qué podemos hacer con este programa y que diferencia hay con el editor .wtf?



    La respuesta es simple, primero el editor "bmd" es utilizado para editar archivos del cliente y el editor .wtf es para editar archivos del server por ejemplo cuando entran a su server y usan un cliente que no es el suyo tienen el nombre de otro server en diversos mensajes.

    Interfaz de un cliente 097

    O cuando estan dentro del Servidor van a ver el nombre de otro MU

    Sección en donde muestra los stats

    Para poder modificar estos mensajes y otros debemos hacer lo siguiente; después de la descarga del Editor BMD realizaremos los siguiente pasos:

    1)Abrimos el programa y hacemos clic en "File", luego en "Open" (Abrir), y seleccionamos la opción en "Text"

    Abriendo archivo bmd

    2)En nuestra nueva ventana, hacemos clic sobre el icono (Es el segundo botón de la barra de herramientas )

    Seleccionando archivo

    3)Aparecerá un diálogo para abrir un archivo. El archivo que hay que abrir es el archivo text.bmd, que se encuentra en la carpeta Data/Local (Dentro de la carpeta con los archivos de nuestro Cliente MU).

    Abriendo archivo text bmd

    4)Una vez seleccionado el archivo "text.bmd", hacemos clic en abrir.
    El programa tardará unos segundos en cargar el archivo. Cuando termine de cargarse el archivo, veremos todas las cadenas de textos.
    Ahora podemos traducir los textos que más nos interesa.

    Traduciendo archivo bmd

    5) Tengan en cuenta que no deben borrar ciertas variables, como por ejemplo "%d", o "%s" (Representan variables internas del juego que no deben ser borradas)
    Traten, en lo posible, de no borrar nada, sólo traducir lo imprescindible.

    6)Cuando terminemos de traducir los textos, presionamos el botón para guardar nuestros cambios.

    Guardando los cambios

    Para finalizar, podemos distribuir el archivo text.bmd traducido con nuestro cliente.
    Pero tambien pueden incluirlo en un parche.

    En ese caso, díganles que sólo necesitarán hacer una copia de su cliente MuOnline ( Según la versión que ustedes tengan en su servidor) y que descarguen el parche de su servidor para que tengan su cliente traducido.

    Modificar los logos de nuestro cliente

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a modificar los logos de nuestro cliente.
    Para este tutorial utilizaremos el programa MuLogoFácil, que te ayudará a crear tus logos para el cliente MU.
    Una vez descargado lo descomprimimos en una carpeta aparte. Lo primero que tenemos que hacer es abrir el programa MuLogoFácil .



    1)Si queremos crear un "Logo inicial" (Startup Screen) debemos seleccionar "Logo inicial" en el paso 1

    MuLogoFacil

    2)En el paso 2, debemos seleccionar la imagen que contiene nuestro logo. Si no tenemos ninguna imagen creada, podemos usar una imagen cualquiera.
    Pulsamos el botón examinar para buscarla.
    Por lo general, la imagen debe ser de 295x195, pero no nos debemos preocupar por esto porque MuLogoFácil cambiará el tamaño automáticamente en caso que la imagen no respete las dimensiones.

    Seleción de tipo de logo

    Si queremos ver cómo va a quedar la imagen cuando la vayamos a cargar en el cliente MuOnline, podemos hacer clic en el botón "Previsualizar Logo".
    Después que hayamos terminado, el programa guardará la imagen en formato JPG. Asegúrese de guardar el archivo en un lugar que recuerden, yo por ejemplo lo guardaré en mi escritorio porque el siguiente paso será convertir el archivo .jpg en .ozj para pegarlo dentro del cliente y pueda ser leido.

    3) Para convertir el formato .jpg en .ozj, debemos cerrar el programa MuLogoFácil, y abrir el programa "MuIMGGUI"
    Ahora lo que tenemos que hacer es cambiar el modo de conversión, de "Mu File=>Img File" a "Img File->Mu File", esto se hace seleccionando la segunda opción en el combo que aparece debajo de la lista de archivos.

    Convertidor

    4)Y ahora en la parte de arriba seleccionamos donde guardamos nuestra imagen que realizamos con el MuLogoFácil (Debe llamarse asi WebZenLogo.jpg) y finalmente hacemos un clic en "Convert".

    Conversión de jpg a bmd

    6)Finalmente aparecerá en el escritorio junto a la imagen .jpg (En mi caso aparece en el escritorio porque ese fue mi destino) una imagen con el mismo nombre WebZenLogo pero con el formato .OZJ
    Copiamos ese archivo, vamos a nuestro CLIENTE/DATA/LOCAL y lo pegamos ahí reemplazando el existente.
    Entren a su server y veraçán el nuevo logo nuestro.

    7)Para el tema del "Loading screen" (La pantalla que se ve cuando carga el juego) es el mismo procedimiento, sólo que el programa creará 3 imágenes a partir de la que seleccionaremos nosotros.
    Lo que debemos cambiar es al iniciar el "MuLogoFácil" seleccionamos la opción "Logo De Carga Del Juego"

    Logo de carga para el cliente del mu online

    Y los pasos son los mismos que los anteriores, nuevamente recuerden que son 3 imagenes las que deben convertir con el MuimgGui y pegarlas (Una vez convertida de .jpg a .ozj en la carpete del Cliente/data/local).
    Cuando digo "Son 3 imagenes" me refiero a que es una misma imagen, fraccioada en 3 parte, es decir, que si unimos las 3 partes forma la misma imagen.

    A modo de cierre:
    Lo que hacemos es: primero creamos una imagen .jpg para poner dentro del cliente, pero ¿Qué sucede? La imagen que es creada por el MuLogoFácil en un formato .jpg que no nos sirve para poner en el cliente porque no es legible.
    Entonces no se puede ejecutar, para esto usamos el "MuImgGui" quien se encargará de convertir el formato .jpg en .OZJ asi puede ser leido por nuestro cliente.

    Con el MuImgGui también podemos hacer los pasos inversos, es decir, converir un archivo ozj. en .jpg de esa manera podemos modificar los gráficos, crear skins y otras cosas más.

    Instalacion de sentencias SQL Server 2000

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a instalar las sentencias SQL. Comenzaremos con una brebe introducción a las sentencias SQL ¿Qué son y para que sirven?
    Las sentencias son trabajos que se ejecutan dentro de su SQL y de acuerdo a su programación nos permiten automatizar nuestro server.
    Por ejemplo, ustedes tienen un servidor MuOnline, y varios de sus jugadores se pasan del limite de los stats permitidos, su tarea como Admin o GM será reducirles los stats a un numero aceptable.
    Ese trabajo que ustedes realizan lo tienen que hacer manualmente, es por eso que les presento "Las sentencias SQL" una manera de automatizar nuestro servidor.



    La sentencias nos pueden permitir diversas cosas, por ejemplo: bajar los stats de forma automática, implementar un autorecet personalizado, desbugiar el zen a todos aquellos que superan el limite permitido, borrar el pk de forma automática y muchas cosas más )
    [Sentencias SQL Ver aqui ]

    1)Lo que veremos en este tutorial es como implementar una sentencia SQL, solo veremos un ejemplo, de todos modos el método es igual para cualquier sentencia que ustedes quieran implementar, sólo deben cambiar la sentencia por la que necesiten y listo.
    Comenzemos: Primero cerramos nuestro Servidor MuOnline, luego
    vamos a Incio=> Todos los Programas=> Microsoft SQL Server=> Administrador corporativo

    Administrador Corporativo

    2)Luego vamos abriendo todas la entradas como indica la imagen hasta llegar a "Trabajos" (Si tu SQL está en Español) o "Jobs" (Si tu SQL está en Ingles),y hacemos un clic derecho sobre "Trabajos" y nuevamente clic en nuevo.

    Iniciando nuevo trabajo SQL

    3)Una nueva ventana aparecerá, esa ventana tiene 4 solapas una llamada
    "General", otra "Pasos", otra "Programación y finalmente "Notificaciones".

    En general que es la primera ponemos en nombre de nuestro "Trabajo o Job" por ejemplo AUTO DESBUG DE STATS
    (Aclaro el nombre es personal, no hace falta que pongan ese nombre, en algunas guias dicen que pongan un nombre determinado pero no es asi, el nombre ese sirve nada más para luego identificarlo cuando tengan varias sentencias)

    Propiedad de nuevo trabajo

    4)Una vez terminado, hacemos un clic en "Pasos" (En la a solapa de la ventana que se encuentra del lado derecho a la solapa general)
    Y luego hacemos un clic en donde dice "Nuevo" como indica la imagen que se presenta a continuación:

    Nuevo trabajo SQL
    Una nueva ventana aparecerá y la completaremos de la siguiente manera:
  • Nombre del paso : le ponemos Paso1 (O lo que quieran ustedes)

  • Tipo: Secuencia de comandos Transact-SQL (TSQL) [Dejamos la opción que viene por defecto]

  • Base de Datos: Selecionamos MuOnline [Si NO tienen la opción MuOnline es porque no tienen creada la base del juego]

  • Comando: Pegan el código que quieran implementar, en mi caso utilizaré como ejemplo una sentencia de autorecet level 1000

  • La sentencia es la siguiente:
    UPDATE Character
    SET clevel = 1, Experience = 0, LevelUpPoint = LevelUpPoint + (0 * (Resets + 1)), Money = Money - (0 * (Resets + 1)), MapNumber = 0, MapPosX = 130, MapPosY = 130, Resets = Resets + 1
    FROM Character JOIN MEMB_STAT ON Character.AccountID = MEMB_STAT.memb___id
    COLLATE Latin1_general_CI_AI
    WHERE (clevel >= 1000) AND (Money >= (0 * (Resets + 1))) AND (ConnectStat = 0);
    (Nuevamente les dejo el link de la guía en donde encontrarás varias sentencias SQL para implementar segun sus necesidades y las pueden Ver Aqui)

    Comando para trabajo SQL

    5)Ponemos aplicar y nos dirigimos a la solapa "Programación" y hacemos un clic en donde dice "Nueva Programación"

    Nueva programacion

    6)La nueva ventana que aparecerá debemos completarla de la siguiente manera:
  • En nombre le ponemos : Paso2

  • Tipo De Programación: Seleccionamos la opción que dice Periódica
    y hacemos un clic en "Cambiar"

  • Configuracion de programación

    En nuestra nueva ventana cambiamos lo siguiente:
  • Sucede: diariamente, cada un día

  • Sucede cada un minuto y lo demás lo dejamos así

  • Nuestra sentencia se ejecutará todos los días, cada un 1 minuto, iniciandose con una fecha inicial y sin fecha final.
    (Esta programación la pueden adecuar a su programación o necesidad)

    Programación periódica

    7)Ahora ingresamos a nuestro "Administrador de Servicios"

    Administrador de servicios

    8)Y finalmente debemos iniciar el "SQL Server Agent" (Es el encargado de iniciar
    las sentencias en SQL, para no iniciarlo cada vez que reiniciamos la pc, podemos tildar la opción "Iniciar Automáticamente" con el SO [Sistema Operativo] hacemos clik en iniciar y listo, nuestro autoreset y todas las sentencias que tengamos se ejecutarán automáticamente)

    Inicio de SQL Server Agent