101Level - Foro

[Guía] Uso de UltraEdit para modificación de archivos db y tiendas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Leeg

  • *
  • *
  • 3.302
  • 57
  • Actividad:
    10%
  • Sexo: Masculino
[Guía] Uso de UltraEdit para modificación de archivos tipo DB y tiendas.
Realizada por: Leeg


UltraEdit es un editor de textos bastante útil si se sabe manejar bien. Con este editor se puede trabajar muy comodamente con archivos .txt sin importar el lenguaje en el que estén programados. Y además cuenta con una serie de herramientas únicas que lo convierten en uno de los editores de texto más potentes en el mercado actual.

La versión de UltraEdit utilizada en el tutorial es 17.00.0.1041.

En este tutorial voy a explicar varias herramientas y características de UltraEdit que os pueden ahorrar horas y horas de trabajo manual a la hora de lidiar con archivos de eAthena del tipo base de datos o tiendas.

Si alguna vez habéis tenido que editar alguno de estos archivos (tanto en cliente como en servidor), os habréis dado cuenta de que están organizados en listas de números separados por comas o puntos en el caso de las tiendas, y por comas en el caso de las bases de datos (como por ejemplo itemdb.txt). Dicho esto, seguramente alguna vez habéis tenido que realizar la ardua tarea  de copiar y pegar cientos de veces elementos de un archivo de base de datos a una tienda, cosa que si se hace manual consume una cantidad de tiempo enorme. Pero claro, no hay otra opción ¿no? Además las ID de los objetos en las bases de datos están "contaminados" por nombres y otros datos que no me sirven...  Pues sí, sí que hay otra opción. Con UltraEdit podemos copiar, pegar y dar formato a ciertos elementos de una manera que nunca habriais imaginado. A continuación explico un ejemplo práctico.


::EJEMPLO PRÁCTICO::
(Nota: El ejemplo es para que veáis como funciona, lo que se va a hacer no se trata de algo útil en sí, pero si será útil el "cómo se hace", vosotros decidís como emplear esta técnica).

Imaginad que tenemos esta tienda:

Código: [Seleccionar]
alb2trea,87,65,5 shop Tool Dealer#alb 83,1750:1,1751:5,1752:3,501:50,502:200,503:550,504:1200,506:40,645:800,656:1500
Se trata del NPC "Tool Dealer" de Alberta. Este es su contenido.

Código: [Seleccionar]
Arrow  1z 
 Silver Arrow  3z
 Fire Arrow 5z
 Red Potion  50z
 Orange Potion  200z
 Yellow Potion  550z
 White Potion  1,200z
 Green Potion  40z
 Concentration Potion  800z
 Awakening Potion  1,500z
 


Bueno pues, digamos que queremos cambiar los objetos a vender por otros que tengo en la base de datos item.db, vamos a conservar los precios y el orden de los mismos, pero las ID de los objetos las vamos a cambiar por objetos del tipo pociones. Normales y condensadas.

Ahora empieza lo entretenido.

1.- Realizar búsquedas y convertirlas en listados.

i) Abrimos en UltraEdit el documento itemdb.txt.

ii) Presionamos Control+F (Buscar)

iii) Configuramos la ventana de búsqueda de la siguiente manera:




iv) Escribimos "_potion" en la ventana de búsqueda (Find What:). Y presionamos Siguiente (Next).

v) Si la búsqueda ha tenido éxito aparecerá una ventana así:




vi) Hacemos clic en "ClipBoard" para copiar el resultado de la búsqueda al portapapeles de Windows.

vii) Creamos un "Nuevo documento" (Ctrl+N) y hacemos clic derecho sobre el mismo, y seleccionamos Pegar. Ahora tendremos el listado que hemos encontrado antes en un nuevo documento, aislado del resto de elementos que no nos hacían falta del archivo. Pero de todas formas, sigue sin estar limpio del todo, sólo nos hacen falta las IDs.


2.- "Limpiar" listados.

A continuación vamos a borrar de una manera sencilla y semi-automática aquellos elementos que no nos interesan del archivo nuevo que hemos creado.

Al necesitar la ID unicamente, y al ser este un elemento que se encuentra al principio de cada línea, hay una manera muy fácil de hacerlo. Consiste en utilizar la opción "Modo Columna" (Column Mode)

2.1.- Utilizando modo columna.

i) Hacemos clic en el icono de "Modo Columna".




ii) Seleccionamos en el archivo como si estuvieramos editando una imagen, solo nos interesan las ID.




iii) Copiamos y pegamos esto a un nuevo documento. Ya tenemos las ID aisladas.



Nos puede ocurrir, que este modo no nos sirva puesto que la columna no se ajusta a la cantidad de elementos que necesitamos, por ejemplo, si tuvieramos IDs de más de 4 cifras, ya no nos sería útil del todo este modo, hay que encontrar otro método para aislar esos elementos que nos interesan.


2.2.- Utilizando modo búsqueda y reemplazar

i) Abrimos la ventana de "Buscar y Reemplazar (Ctrl+R)".




ii) Marcamos la opción "Search in Column". Y escribimos From: 0 To: 6.

iii) En el cuadro de Buscar (Search) escribimos una coma ",", y en el cuadro de reemplazar escribimos "^p".
Esto lo que hará es buscar todas las comas en las columnas 0 a 6 y reemplazarlas por un salto de línea.

iv) Hacemos clic en "Reemplazar todo" (Replace All). Esto nos dejará todas las IDs en una línea separadas del resto de contenido.

v) Abrimos la ventana de "Buscar" (Ctrl+F) y escribimos en el cuadro de búsqueda "%[0-9]". Esto nos buscará líneas que empiecen por un número. Marcamos la opción "List lines containing script" y le damos a "Buscar". Nos abrirá una ventana nueva con un listado con las IDs que necesitamos, hacemos clic en "Clipboard" y las pegamos en nuevo documento. Ya tenemos las ID separadas del resto del archivo.




3.- Reemplazar las antiguas ID por las nuevas.

Para realizar este proceso debemos reestructurar el formato de la tienda, introducir nuestras IDs, y volverle a dar formato.

i) Abrimos el archivo que contiene la tienda, y copiamos a un nuevo documento desde la primera ID hasta la última (con los precios de por medio)

ii) En este nuevo documento que solo contiene IDs y precios abrimos la ventana de "Reemplazar". En ella escribimos en "Find What:"  "," y en "Replace with:"  "^p".




iii) Esto nos dejará la tienda en modo columna. A continuación abrimos de nuevo la ventana de "Reemplazar"(Ctrl+R). Desactivamos la opción "List lines containing script" y activamos "Search in column", From: 0, To: 5. En la ventana de "Find What:" escribimos  "[0-9]******:" y en la opción "Replace With:" escribimos ":", así buscará todos los números seguidos de ":" de la columna 0 a la 5 y los borrará.




iv) El resultado será el que se ve en la imagen. Así pues, solo nos queda añadir nuestras ID y volver a darle el formato de tienda, esto es muy sencillo, primero ve al documento donde guardamos las ID y en modo columna copia todos las ID, después, en el documento con los precios, en modo columna también selecciona todo el espacio vertical de arriba abajo antes de los ":" y pégalas ahí.




v) Una vez tengamos esto, ya solo nos queda volverlo a dejar como estaba. Para ello abre la ventana de "Reemplazar" (Ctrl+R). Desactivamos "Search in column". En la ventana de "Find What:" escribimos "^p", y en la opción "Replace With" ponemos ",". Esto buscará todos los saltos de línea (^p) y los reemplazará por comas (,).




vi) Así pues, ya tenemos de nuevo todo en formato tienda listo para reemplazar por la antigua. La práctica se ha realizado con una tienda pequeña, y puede parecer una tontería, pero es de agradecer conocer estos métodos a la hora de modificar elementos más grandes.


::INFORMACIÓN ADICIONAL::

Hay más Expresiones Regulares en UltraEdit que te pueden servir para gestionar documentos en eAthena. Aquí os dejo una versión en inglés de la página oficial con todas las opciones disponibles y qué función hacen.

Expresiones regulares en UltraEdit (Inglés)
« última modificación: 04 de Noviembre de 2011, 19:59 por Kimimaro~ »
~Persona3~


 

[Guía] Guía para crear paletas a partir de gradientes ya hechos

Iniciado por Daegaladh

Respuestas: 0
Vistas: 4200
Último mensaje 14 de Junio de 2010, 03:09
por Daegaladh
[Guía] Creación de imágenes item para sprites

Iniciado por DevilEvil

Respuestas: 0
Vistas: 3972
Último mensaje 06 de Febrero de 2010, 01:05
por DevilEvil
[Guía] Crear un cliente y Grf profesional para tu servidor.

Iniciado por Zealotus

Respuestas: 0
Vistas: 27135
Último mensaje 15 de Agosto de 2008, 21:16
por Zealotus