From e996716ad4b66b4d40e44123711a738789b9a2b8 Mon Sep 17 00:00:00 2001 From: "Julio A. Leyva Osorio" Date: Mon, 5 Jul 2021 05:02:07 -0400 Subject: Chore: Updates and creation of wiki files in Spanish (#572) * Spanish Update account.md * Creation of the home.md document in spanish * Creation of the arch-linux.md document in spanish * Creation of the aws-tutorial.md document in spanish * Creation of the bash_system.md document in spanish * Creation of the best-practices.md document in spanish * Creation of the file-headers.md document in spanish * Creation of the core-installation.md document in spanish * Creation of the bountysource.md document in spanish * Creation of the contribute.md document in spanish * Creation of the bit-and-bytes-tutorial.md document in spanish * Creation of the faq.md document in spanish * Creation of the how-to-debug.md document in spanish * Creation of the upgrade-from-pre-2.0.0-to-latest-master.md document in spanish * Creation of the upgrade-from-pre-3.0.0-to-latest-master.md document in spanish * Creation of the trinitycore-to-azerothcore-characters-migration.md document in spanish * Creation of the keeping-the-server-up-to-date.md document in spanish * Creation of the wiki-standards.md document in spanish * Creation of the importing-spell-dbc.md document in spanish --- docs/es/account.md | 63 ++--- docs/es/arch-linux.md | 27 ++ docs/es/aws-tutorial.md | 284 ++++++++++++++++++++ docs/es/bash_system.md | 43 ++++ docs/es/best-practices.md | 35 +++ docs/es/bit-and-bytes-tutorial.md | 286 +++++++++++++++++++++ docs/es/bountysource.md | 48 ++++ docs/es/contribute.md | 62 +++++ docs/es/core-installation.md | 32 +++ docs/es/faq.md | 126 +++++++++ docs/es/file-headers.md | 23 ++ docs/es/home.md | 44 ++++ docs/es/how-to-debug.md | 1 + docs/es/importing-spell-dbc.md | 19 ++ docs/es/keeping-the-server-up-to-date.md | 35 +++ ...nitycore-to-azerothcore-characters-migration.md | 40 +++ docs/es/upgrade-from-pre-2.0.0-to-latest-master.md | 27 ++ docs/es/upgrade-from-pre-3.0.0-to-latest-master.md | 29 +++ docs/es/wiki-standards.md | 33 +++ 19 files changed, 1226 insertions(+), 31 deletions(-) create mode 100644 docs/es/arch-linux.md create mode 100644 docs/es/aws-tutorial.md create mode 100644 docs/es/bash_system.md create mode 100644 docs/es/best-practices.md create mode 100644 docs/es/bit-and-bytes-tutorial.md create mode 100644 docs/es/bountysource.md create mode 100644 docs/es/contribute.md create mode 100644 docs/es/core-installation.md create mode 100644 docs/es/faq.md create mode 100644 docs/es/file-headers.md create mode 100644 docs/es/home.md create mode 100644 docs/es/how-to-debug.md create mode 100644 docs/es/importing-spell-dbc.md create mode 100644 docs/es/keeping-the-server-up-to-date.md create mode 100644 docs/es/trinitycore-to-azerothcore-characters-migration.md create mode 100644 docs/es/upgrade-from-pre-2.0.0-to-latest-master.md create mode 100644 docs/es/upgrade-from-pre-3.0.0-to-latest-master.md create mode 100644 docs/es/wiki-standards.md (limited to 'docs') diff --git a/docs/es/account.md b/docs/es/account.md index 453142f..064a829 100644 --- a/docs/es/account.md +++ b/docs/es/account.md @@ -6,39 +6,40 @@ **Estructura** -| Field | Type | Attributes | Key | Null | Default | Extra | Comment | -| --------------------- | ------------ | ---------- | --- | ---- | ----------------- | -------------- | ---------- | -| [id][1] | INT | UNSIGNED | PRI | NO | | AUTO_INCREMENT | Identifier | -| [username][2] | VARCHAR(32) | | UNI | NO | | | | -| [salt][3] | BINARY(32) | | | NO | | | | -| [verifier][4] | BINARY(32) | | | NO | | | | -| [session_key][5] | BINARY(40) | | | YES | | | | -| [token_key][6] | VARCHAR(100) | | | NO | | | | -| [email][7] | VARCHAR(255) | | | NO | | | | -| [reg_mail][8] | VARCHAR(255) | | | NO | | | | -| [joindate][9] | TIMESTAMP | | | NO | CURRENT_TIMESTAMP | | | -| [last_ip][10] | VARCHAR(15) | | | NO | 127.0.0.1 | | | -| [last_attempt_ip][11] | VARCHAR(15) | | | NO | 127.0.0.1 | | | -| [failed_logins][12] | INT | UNSIGNED | | NO | 0 | | | -| [locked][13] | TINYINT | UNSIGNED | | NO | 0 | | | -| [lock_country][14] | VARCHAR(2) | | | NO | 0 | | | -| [last_login][15] | TIMESTAMP | | | YES | NULL | | | -| [online][16] | INT | UNSIGNED | | NO | 0 | | | -| [expansion][17] | TINYINT | UNSIGNED | | NO | 2 | | | -| [mutetime][18] | BIGINT | SIGNED | | NO | 0 | | | -| [mutereason][19] | VARCHAR(255) | | | NO | | | | -| [muteby][20] | VARCHAR(50) | | | NO | | | | -| [locale][21] | TINYINT | UNSIGNED | | NO | 0 | | | -| [os][22] | VARCHAR(3) | | | NO | | | | -| [recruiter][23] | INT | UNSIGNED | | NO | 0 | | | -| [totaltime][24] | INT | UNSIGNED | | NO | 0 | | | +| Field | Type | Attributes | Key | Null | Default | Extra | Comment | +| --------------------- | ------------- | ---------- | --- | ---- | ----------------- | -------------- | ---------- | +| [id][1] | INT | UNSIGNED | PRI | NO | | AUTO_INCREMENT | Identifier | +| [username][2] | VARCHAR(32) | SIGNED | UNI | NO | '' | | | +| [salt][3] | BINARY(32) | SIGNED | | NO | | | | +| [verifier][4] | BINARY(32) | SIGNED | | NO | | | | +| [session_key][5] | BINARY(40) | SIGNED | | YES | | | | +| [totp_secret][6] | VARBINARY(100)| SIGNED | | YES | | | | +| [email][7] | VARCHAR(255) | SIGNED | | NO | '' | | | +| [reg_mail][8] | VARCHAR(255) | SIGNED | | NO | '' | | | +| [joindate][9] | TIMESTAMP | SIGNED | | NO | CURRENT_TIMESTAMP | | | +| [last_ip][10] | VARCHAR(15) | SIGNED | | NO | 127.0.0.1 | | | +| [last_attempt_ip][11] | VARCHAR(15) | SIGNED | | NO | 127.0.0.1 | | | +| [failed_logins][12] | INT | UNSIGNED | | NO | 0 | | | +| [locked][13] | TINYINT | UNSIGNED | | NO | 0 | | | +| [lock_country][14] | VARCHAR(2) | SIGNED | | NO | 00 | | | +| [last_login][15] | TIMESTAMP | SIGNED | | YES | | | | +| [online][16] | INT | UNSIGNED | | NO | 0 | | | +| [expansion][17] | TINYINT | UNSIGNED | | NO | 2 | | | +| [mutetime][18] | BIGINT | SIGNED | | NO | 0 | | | +| [mutereason][19] | VARCHAR(255) | SIGNED | | NO | '' | | | +| [muteby][20] | VARCHAR(50) | SIGNED | | NO | '' | | | +| [locale][21] | TINYINT | UNSIGNED | | NO | 0 | | | +| [os][22] | VARCHAR(3) | SIGNED | | NO | '' | | | +| [recruiter][23] | INT | UNSIGNED | | NO | 0 | | | +| [totaltime][24] | INT | UNSIGNED | | NO | 0 | | | + [1]: #id [2]: #username [3]: #salt [4]: #verifier [5]: #session_key -[6]: #token_key +[6]: #totp_secret [7]: #email [8]: #reg_mail [9]: #joindate @@ -80,15 +81,15 @@ El verificador se deriva de salt, así como el nombre de usuario (todo en mayús Para obtener el verificador hay que calcular: -1. Calcule `h1 = SHA1("USUARIO:CONTRASEÑA")`, sustituyendo el nombre de usuario y la contraseña convertidos en mayúsculas. +1. Calcular `h1 = SHA1("USUARIO:CONTRASEÑA")`, sustituyendo el nombre de usuario y la contraseña convertidos en mayúsculas. -2. Calcule `h2 = SHA1(salt || h1)`, dónde || es la concatenación (el operador . en PHP). +2. Calcular `h2 = SHA1(salt || h1)`, dónde || es la concatenación (el operador . en PHP). **NOTA:** ¡Tanto `salt` como `h1` son cadenas binarias, no hexadecimales! 3. Tratar `h2` como un entero en orden little-endian (el primer byte es el menos significativo). -4. Calcule `(g ^ h2) % N`. +4. Calcular `(g ^ h2) % N`. **NOTA:** `g` y `N` son parámetros, que están fijados en la implementación de WoW. @@ -112,7 +113,7 @@ Para obtener el verificador hay que calcular: `campo-sin-descripción|5` -### token_key +### totp_secret La clave del autentificador. diff --git a/docs/es/arch-linux.md b/docs/es/arch-linux.md new file mode 100644 index 0000000..c239658 --- /dev/null +++ b/docs/es/arch-linux.md @@ -0,0 +1,27 @@ +# Instalación de Arch Linux +Si es un usuario de Arch Linux, puede instalarlo desde AUR ([Arch User Repository](https://wiki.archlinux.org/index.php/Arch_User_Repository)) + +## Instalar dependencias + +### Instalar *base-devel* +Todo lo que necesita para instalar los paquetes AUR es [*base-devel*](https://www.archlinux.org/groups/x86_64/base-devel/) and [*git*](https://www.archlinux.org/packages/?name=git), puede instalarlos con *pacman*: +``` +$ sudo pacman -S base-devel git +``` + +### Instalar *ACE* +Debe instalar el paquete [*ACE*](https://aur.archlinux.org/packages/ace/) de AUR: +``` +git clone https://aur.archlinux.org/ace.git +cd ace +makepkg -si +``` +## Instalar *AzerothCore* +Después de eso, puedes instalar el paquete [azerothcore](https://aur.archlinux.org/packages/azerothcore/) : + +``` +git clone https://aur.archlinux.org/azerothcore.git +cd azerothcore +makepkg -si +``` +Además, si lo desea, puede usar [*yay*](https://github.com/Jguer/yay) como administrador de paquetes AUR para instalar paquetes AUR. diff --git a/docs/es/aws-tutorial.md b/docs/es/aws-tutorial.md new file mode 100644 index 0000000..0d88b72 --- /dev/null +++ b/docs/es/aws-tutorial.md @@ -0,0 +1,284 @@ +# Hospedaje de AzerothCore a través de Amazon AWS + +Prefacio: El objetivo de esta guía es que se realice principalmente a través de una línea de comandos. También existe la [Consola de AWS] (https://aws.amazon.com/console/) que algunos encontrarán más intuitiva, sin embargo, para la longevidad de la guía (ya que la interfaz de usuario de la Consola de AWS puede cambiar), la herramienta aws-cli será recomendado. También se incluirán comandos grep para recibir solo la salida requerida. Si desea obtener la salida completa, simplemente elimine el `| grep` y todo lo que le sigue. + +------ + +[TOC] + +------ + +## Requisitos previos + +Estas herramientas son necesarias ya que el resto del tutorial se realizará a través de una línea de comando habilitada para bash: + +- [Cuenta de Amazon AWS](https://portal.aws.amazon.com/billing/signup#/start) +- [Git](https://git-scm.com/downloads) +- [Python](https://www.python.org/downloads/) - asegúrese de verificar que esto se agregue a PATH si usa Windows + +------ + +## AWS-CLI + +### Instalación de AWS-CLI + +En primer lugar, verifique que Python y su herramienta pip incluida estén configurados correctamente: + +```bash +python --version && pip --version +``` + +Esto debería devolver tanto la versión de python como la de pip. Si no es así, instale Python correctamente y vincúlelo a la RUTA. Ahora que Python está instalado, instale aws-cli a través de: + +```bash +pip install awscli --upgrade +``` + +Verifique que awscli se haya instalado correctamente ingresando `aws --version`. Si no se instaló correctamente, consulte [esto] (https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html#install-post) para solucionar el problema según el funcionamiento del sistema operativo de su computadora. + +### Configuración de AWS-CLI + +Se requerirá una clave de acceso y una identificación. Esto se puede encontrar en [Credenciales de seguridad de AWS] (https://console.aws.amazon.com/iam/home#/security_credentials) y seleccionando el botón Claves de acceso> Crear nueva clave de acceso. ** Mantenga esta clave segura, ya que puede usarse para realizar cualquier acción en una cuenta de AWS **. Se considera una buena práctica permitir el acceso a través de un [Usuario de IAM] (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html), especialmente si los privilegios de AWS se compartirán con otra persona. Una vez que se haya obtenido la clave, úsela para otorgar credenciales a aws-cli usando el comando: + +```bash +aws configure +``` + +Inserte el ID y la clave en sus campos correspondientes. Para el nombre de región predeterminado, inserte `us-east-1` y para el formato de salida predeterminado inserte` table`. Ahora se puede encontrar otro servidor con el comando: + +```bash +aws ec2 describe-regions --output table +``` + +Utilice el comando `ping` más los distintos puntos finales para probar la latencia en las regiones. Después de encontrar un servidor apropiado, ejecute `aws configure` nuevamente e ingrese a la nueva región. + +### Creación de un par de claves + +Antes de que se creen instancias de servidor, se requerirá un [par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). Este par de claves se utilizará para validar el acceso a las instancias EC2 a las que está adherido. Cree un nuevo par de claves a través de: + +```bash +aws ec2 create-key-pair --key-name AzCore-KP --query 'KeyMaterial' --output text > ~/AzCore-KP.pem +``` + +El par de claves se guardará en el directorio $HOME. Asegúrese de mantener seguro este archivo `AzCore-KP.pem` recién creado, ya que ** este archivo no se puede rehacer ** después de su creación. Si el par de claves se pierde después de vincularlo a cualquier instancia EC2, será necesario rehacerlo con un nuevo par de claves. El par de claves se utiliza para SSH en la instancia y no hay forma de eliminar el acceso del par de claves sin eliminar finalmente la instancia EC2. Antes de que se pueda utilizar el par de claves, los permisos deben establecerse con: + +```bash +chmod 400 ~/AzCore-KP.pem +``` + +### Creación de una VPC + +*Nota: Aunque AWS proporciona una VPC predeterminada que funcionará bien. La información necesaria para crear una VPC completamente nueva para esta guía se proporcionará en caso de que la VPC predeterminada para cualquier caso no esté disponible o no funcione. Al mismo tiempo, actúa como una exploración más profunda de AWS y sus funciones de red.* + +Creando una VPC para la región usando: + +```bash +aws ec2 create-vpc --cidr-block 172.32.0.0/16 | grep -Po "(vpc)-[a-zA-Z0-9]*\s" +``` + +Esto debería generar el vpc-id. Guárdelo ya que será necesario más adelante. + +También se necesita el comando: + +```bash +aws ec2 modify-vpc-attribute --enable-dns-hostnames --vpc-id $VPC_ID +``` + +### Creación de una subred + +Es necesario vincular una subred con la VPC mediante: + +```bash +aws ec2 create-subnet --cidr-block 172.32.0.0/20 --vpc-id $VPC_ID | grep -Po "(?. Ejecute `sudo apt-get update && sudo apt-get upgrade` antes de instalar las dependencias y actualizar los parches de seguridad. + +### Subiendo archivo de datos al servidor + +Descargue [newest_data.zip](https://mega.nz/#F!Am4DBKCR!o9Qj_xFLfsg4sczqg0xq2A) y descomprímalo y sus subcarpetas. Luego `cd` en la carpeta donde se encuentra y ejecute el comando: + +```bash +tar zcfv ~/data.tar.gz newest_data/ +``` + +Esto comprimirá el archivo en un archivo tar.gz. Ahora para subirlo al servidor usando + +```bash +scp -i "~/AzCore-KP.pem" ~/data.tar.gz ubuntu@$PublicDnsName:$CMAKE_INSTALL_PREFIX/data +``` + +Esto puede llevar un tiempo dependiendo de la velocidad de carga. $CMAKE_INSTALL_PREFIX será la ruta hacia donde está instalado el servidor, no el repositorio git clonado que es `~/azeroth-server/` por defecto. + +Ahora descomprímelo con: + +```bas +tar xfv $CMAKE_INSTALL_PREFIX/data.tar.gz --strip-components=2 +``` + +Ahora debería descomprimirse en `$CMAKE_INSTALL_PREFIX/data/` + +Alternativamente, tomado de [stackoverflow](https://stackoverflow.com/a/49444877) y con un rendimiento de descarga mucho mejor: + +```bash +#!/bin/bash +fileid="12XIh3rqm3ukpSKQtMop44U4XCYb6kdda" +filename="data.tar.gz" +curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null +curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename} +``` + +Ejecute `nano $CMAKEINSTALL_PREFIX/data/` y guarde este script como un archivo .`sh` en el directorio de datos y ejecute `chmod -x $filename.sh` para hacerlo ejecutable. El script descargará un [newest_data](https://mega.nz/#F!Am4DBKCR!o9Qj_xFLfsg4sczqg0xq2A) desde Google Drive [upload](https://drive.google.com/open?id=12XIh3rqm3ukpSKQtMop44U4XCYb6kdda). *nota: recomiendo verificar que los valores de la suma de comprobación SHA256 coincidan entre la carga mega y la carga de la unidad de Google. De lo contrario, los archivos no se manipulan ni se modifican.* + + +### Configuración de la base de datos + +Ingrese a MySQL usando `sudo mysql`. Se necesitará un nombre de usuario y contraseña para acceder a la base de datos. + +```sql +GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'; +``` + +Los archivos .conf deberán editarse con el nombre de usuario y la contraseña recién elegidos que se describen [aquí](http://www.azerothcore.org/wiki/Installation#4-setting-the-configuration-files). + +### Problema de Kswapd + +*Nota: si se ejecuta en una instancia más potente, este paso probablemente sea irrelevante. Para la instancia t2.micro con 1 GB de RAM, se requiere este paso.* + +Como ejercicio de aprendizaje después de la compilación, ejecute un `top -oh% MEM` e intente iniciar el servidor mundial. Eventualmente, se cortará y el servidor dejará de responder. Observe que el proceso que ocupa la mayor parte de la memoria es `kswapd`. El proceso `kswapd` se usa siempre que el uso de la memoria del sistema alcanza un umbral y luego descarga la memoria en un almacenamiento. Sin embargo, la imagen de intercambio predeterminada no asigna suficientes recursos para ejecutar el servidor mundial, por lo que se necesita uno nuevo. [Aquí se pueden encontrar varias soluciones a este problema.] (Https://askubuntu.com/questions/178712/how-to-increase-swap-space) La guía utilizará el [método] `dd` (https: //askubuntu.com/a/178726): + +```Bash +#Crea una imagen de intercambio de 3GB y configura un área de intercambio +sudo dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=3M +sudo mkswap /media/fasthdd/swapfile.img + +#Abre el editor con permisos sudo en /etc/fstab +sudo nano /etc/fstab + +# Agregue esta línea a /etc/fstab +/media/fasthdd/swapfile.img swap swap sw 0 0 + +#Activar la imagen de intercambio +swapon /media/fasthdd/swapfile.img +``` + +### Conectando al servidor + +Busque las instancias Dirección IP pública que se puede encontrar con `aws ec2 describe-instances`. Ingrese el `PublicIpAddress` en su tabla de realmlist` acore_auth`. Puede encontrar más información de conexión [aquí] (http://www.azerothcore.org/wiki/Installation#8-connecting-to-the-server). + +------ + +## Descargo de responsabilidad + +​ Muchas de las mejores prácticas no se han seguido en lugar de la brevedad de la guía y la ignorancia general sobre la seguridad de Internet. Algunas cosas que se deben saber y que deben hacerse si planea permitir que cualquier persona acceda a su servidor incluyen: + +- [Agregar un usuario de IAM para cualquier persona que necesite acceso a AWS.] (Https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) *No permita que alguien ejecute 100 instancias para extraer bitcoins ... tenga en cuenta que la información de pago se almacena para crear una cuenta y que AWS cobra por hora de servidor utilizada.* **Sea seguro.** +- La capa gratuita de AWS permite ** 750 ** horas de instancia, lo que significa 750/24 = 31,25 días. *Solo se puede ejecutar una instancia ininterrumpida durante un mes sin pagar y el nivel gratuito solo dura 12 meses después de la creación de la cuenta. No reciba cargos no intencionales. ¡Has sido advertido!* +- Por lo general, no permita SSH o privilegios de administrador a otro usuario hasta que haya investigado un poco sobre cómo proteger Linux y no permita a nadie privilegios de root. Solo permita a los usuarios los privilegios mínimos requeridos. Tu seguridad está en tus manos, ¡buena suerte! diff --git a/docs/es/bash_system.md b/docs/es/bash_system.md new file mode 100644 index 0000000..6bb1974 --- /dev/null +++ b/docs/es/bash_system.md @@ -0,0 +1,43 @@ +# Sistema BASH + +AzerothCore utiliza un sistema bash avanzado que nos permite automatizar procesos como la **compilación de fuentes, la instalación de módulos, la configuración de la base de datos, etc.** + +Por ahora, estamos usando bash en lugar de Python para reducir las dependencias externas, ya que BASH es un lenguaje de scripting multiplataforma que ya está incluido. +con ** OSX, Linux y Windows ** (a través de GIT BASH que le pedimos que instale en nuestros requisitos). + +Puede leer la documentación oficial de bash aquí: https://tldp.org/LDP/abs/html/index.html + +## Panel ACORE + +Nuestros scripts de bash relacionados con azerothcore se pueden encontrar dentro de la carpeta /app, pero también creamos un script llamado **acore.sh** dentro de la carpeta raíz. +Este script ejecuta un panel que contiene los comandos para ejecutar todos los scripts relacionados con la carpeta /app. + +run `./acore.sh --help` para ver la lista completa de los comandos disponibles. + +### Configuración + +La carpeta /conf disponible en el directorio raíz de nuestro proyecto se utiliza para darle la posibilidad de cambiar las configuraciones de todos nuestros scripts bash. + +### Modo interactivo + +ejecute `./acore.sh` y puede usar el panel en modo interactivo: puede navegar dentro del menú y submenú del panel y ejecutar el comando que necesita + +### Argumentos de comando + +Puede utilizar los comandos del panel como argumentos del script ./acore.sh. Por ejemplo: + +`./acore.sh compiler configure` ejecutará el proceso de configuración de nuestro compilador c++ + +Todos los comandos vienen con un alias más corto. Por ejemplo, `./acore.sh c configure` ejecutará la configuración del compilador, pero también `./acore.sh 5 3` lo hará. + +## Dependencias + +Nuestro sistema bash utiliza bibliotecas bash externas que son genéricas y no están relacionadas con el propio azerothcore, esas bibliotecas han sido creadas por nosotros y se han colocado en la carpeta / deps + +## GANCHOS: + +Interno [Sistema de gancho para bash](hooks-bash.md) + +## Otros recursos + +- Comando bash único para instalar azerothcore: [Video + secuencia de comandos en la descripción](https://www.youtube.com/watch?v=j1HI6pLZZvM) diff --git a/docs/es/best-practices.md b/docs/es/best-practices.md new file mode 100644 index 0000000..508553f --- /dev/null +++ b/docs/es/best-practices.md @@ -0,0 +1,35 @@ +# Mejores prácticas + +Una colección de las mejores prácticas para usar AzerothCore. + + +## Cambios personalizados + +- **NUNCA** agregue cambios personalizados a las fuentes de AzerothCore. [Crear módulos](http://www.azerothcore.org/wiki/Create-a-Module) en su lugar. + +Si necesita nuevos enlaces para implementar sus cambios personalizados en los módulos, no dude en enviar un PR que los implemente. + +Razones: + +1. Mantener limpio el código fuente base le facilitará la actualización. +2. Mantener sus personalizaciones en módulos le permitirá habilitarlas o deshabilitarlas fácilmente para solucionar cualquier problema potencial. +3. El software modularizado es mucho más fácil de mantener. + + +## Solicitudes de extracción (PR) + +- [Sincroniza tu fork](http://www.azerothcore.org/wiki/Syncing-your-fork) antes de abrir un PR. + +Razones: + +1. Ayuda a prevenir conflictos de fusión +2. Implementará (y probará) los cambios tal como se aplicaron a la última versión maestra. + +- **NUNCA** empuje los cambios a la rama `master`. Siempre tu rama "master" limpia. + +Cuando creas un nuevo PR, haz `git checkout master` y crea una nueva rama usando` git checkout -b new-branch`. + +Razones: + +1. Esto le permitirá crear múltiples RP que sean independientes entre sí. +2. Esto le permitirá actualizar fácilmente sus branches con el último master sincronizando primero su fork y luego fusionando `master` en branches. \ No newline at end of file diff --git a/docs/es/bit-and-bytes-tutorial.md b/docs/es/bit-and-bytes-tutorial.md new file mode 100644 index 0000000..2a6bef7 --- /dev/null +++ b/docs/es/bit-and-bytes-tutorial.md @@ -0,0 +1,286 @@ +--- +redirect_from: "/Bit-and_bytes-tutorial" +--- + +# Tutorial de Bits y Bytes + +## Introducción + +En informática, los números se representan internamente en binario. Esto significa que, cuando usa un tipo entero para una variable, esto se representará internamente como una suma o concatenación de ceros y unos. + +![Byte](http://schoolcoders.com/w/images/0/07/Byte.png) + +También puede verlo así: + +![Hobbyte](https://ih0.redbubble.net/image.474456834.0620/ap,550x550,12x12,1,transparent,t.u1.png) + +¡Esto también es cierto para los booleanos! Si tuviera un bit que fuera igual a 1 o un booleano que fuera igual a verdadero, no habría diferencia en el valor de ambas variables. + +Si bien esto es cierto para la salida del valor, un booleano ocupa un byte completo. +Eso es porque no puede simplemente pedir prestado solo 1 bit, por lo que para definir un bool, necesita 1 byte u 8 bits. + +Como sabrá, un solo bit representa un 0 o un 1. Una concatenación de ocho de esos bits representa un Byte. El valor máximo de un byte es 255, que es la suma de todos los bits. Cada bit tiene un "valor" y la suma de todos los bits es lo que llamamos máscara. Por ejemplo, el valor del primer bit es 1, el valor del segundo bit es 2 * el valor del bit a su derecha. + + + + +``` c++ +// Esto es lo mismo que decir que 2^N=x, por ejemplo +2^0=1 +2^1=2 +2^2=4 +2^3=8 +2^4=16 +2^5=32 +2^6=64 +2^7=128 + +/* + * Puede representar un byte como una secuencia de ceros y unos en consecuencia. + * Leyendo así, se lee el orden de los bits + * de derecha a izquierda + * <----- +*/ +1 = 0 0 0 0 0 0 0 1 +2 = 0 0 0 0 0 0 1 0 +4 = 0 0 0 0 0 1 0 0 +8 = 0 0 0 0 1 0 0 0 +16 = 0 0 0 1 0 0 0 0 +32 = 0 0 1 0 0 0 0 0 +64 = 0 1 0 0 0 0 0 0 +128 = 1 0 0 0 0 0 0 0 +``` + +Cuando un número tiene 4 bytes de longitud, esto significa que su número realmente usa 32 bits del almacenamiento interno: + +00000000 00000000 00000000 00000000 + +El tipo de datos entero de 32 bits puede contener valores enteros en el rango de −2,147,483,648 a 2,147,483,647. También puede referirse a este tipo de datos como firmado int o unsigned. Unsigned int significa que el tipo de datos de 32 bits unsigned int puede contener valores enteros en el rango de 0 a 4.294.967.295. +La razón por la que el int sin signo siempre almacenará más valores positivos que uno con signo es porque usamos los valores negativos del int con signo como positivos y esto duplica la cantidad de valores positivos que puede almacenar en una variable. + + +## ¿Para qué sirve? + +Ahora imagina que quieres crear un programa que contenga un estado, que se basa en varios valores: + +``` c++ +// Almacena el estado actual de este programa +bool firstValue = true; +bool secondValue = false; + +``` + +O en su lugar, use una única variable entera y use cada bit de sus 8 bits internos para representar los diferentes verdaderos y falsos. + +``` c++ +// 00000101 +int maskValue = 5; +``` + +Arriba, el primer bit es verdadero, que representa la primera variable. La segunda es falsa, que representa la segunda variable. La tercera verdad. Y así... + +Esta es una forma muy compacta de almacenar datos y tiene muchos usos. + +Aquí es donde entra en juego el enmascaramiento de bits. Suena complejo, pero en realidad es muy simple. + +El enmascaramiento de bits permite al usuario: +1. Editar bits particulares en un byte(s) +2. Verificar si hay valores de bit particulares presentes o no. +3. Aplicar una máscara a un valor, donde en nuestro caso el valor es nuestro estado 00000101 y la máscara es nuevamente un número binario, que indica los bits de interés. En este caso nuestra máscara es la número 5. + +## Operaciones binarias + +### Bitwise AND "&" +Operar con bits es bastante similar a configurar condiciones entre dos variables. Digamos que tenemos, por ejemplo: + +``` C++ +if (1 && !0) + printf('Esta condición es verdadera'); +``` + +Cualquier valor que no sea 0 siempre será el mismo que verdadero. Esto significa que: + +- 1 es cierto +- !0 es lo mismo que decir no falso, lo que significa que !0 es verdadero +- verdadero y verdadero confirma la condición + +De esta manera podemos comparar los valores de 2 bits y si ambos son verdaderos, podemos mantener el valor del bit y obtener un resultado final de la misma manera: + +``` C++ +255 &= 1 + +// Esto dará como resultado que 255 se convierta en 1 debido a +// F - Falso y T - Verdadero para comparar los bits de 255 y 1 +(255) -> 1 1 1 1 1 1 1 1 +(1) -> 0 0 0 0 0 0 0 1 +(1) -> F F F F F F F T + 0 0 0 0 0 0 0 1 + +// Otro ejemplo: +Valor: 00000101 +Máscara: 00000100 +---- Y --------- +Resultado: 00000100 + +// En este caso tenemos el valor 5 +int MyState = 5; + +// Y queremos eliminar 1 estado de ese valor +MyState &= 4; + +/* Esto convertirá nuestro 00000101 (5) + * en un 00000100 (4) + */ +``` + +Los ejemplos anteriores son de hecho malos ejemplos de cómo usar cálculos de bits y pueden haberlo dejado con la duda. ¿Por qué no restar simplemente los valores de los números? + +5-1 = 4 + +es más fácil de entender que comparar bytes o bits y es más natural para el lenguaje humano. + +El punto en el uso de & en operaciones de bits suele ir acompañado de otro carácter de operación de bits que es el '~'. + +Lo que ~ te permite hacer es invertir la máscara de bits, por ejemplo: + +``` C++ +255 &= ~1; // Esto hará que 255 se convierta en 254 porque: +(255) -> 1 1 1 1 1 1 1 1 +(1) -> 0 0 0 0 0 0 0 1 // El primer bit es verdadero +(~1) -> 1 1 1 1 1 1 1 0 // invierte los bits en 1 -> 254 +(254) -> 1 1 1 1 1 1 1 0 +``` + +imagina una máscara de bits como esta: +1 0 0 0 0 0 0 0 (128) + +si se trataba de una operación entera, entonces 128 - 64 = 64 + +Sin embargo, si intentó eliminar 64 de 128: + +``` +1 0 0 0 0 0 0 0 &= ~64 + +(128) 1 0 0 0 0 0 0 0 +(64) 0 1 0 0 0 0 0 0 +(~64) 1 0 1 1 1 1 1 1 +--------------------- +(128) 1 0 0 0 0 0 0 0 +``` + +Entonces 128 no cambiaría porque 64 ya está apagado. + +Esta es la razón por la que a menudo en los archivos verá variables que agregan nuevos indicadores y eliminan otros. + +--- + +### Bitwise OR "|" + +Agregar una nueva bandera a una máscara de bits es más fácil que eliminarlos. + +Este concepto se aplica como el OR en una condición: + +``` C++ + +if (true || false) + printf("Esta condición es verdadera"); +else if (true || true) + printf("Esta condición es verdadera"); +else if (false || true) + printf("Esta condición es verdadera"); +else if (false || false) + printf("Esta condición es falsa"); +``` + +Al igual que con dos condiciones, puede comparar 2 bits y obtener una nueva máscara de bits porque, si uno de los bits es verdadero, este valor de bit se convertirá en verdadero. En otras palabras, si tiene 1 o 0, el nuevo valor de la máscara de bits será 1, por ejemplo: + +``` C++ +// Aquí inicializamos MyState con 5 también conocido como 00000101 si hablamos en lenguaje de bits +int MyState = 5; + +// Luego podemos agregarle una máscara con la siguiente sintaxis +MyState |= 128; + +// Nuestro resultado final convertirá 5 en 133 debido a esta lógica: +5 - 0 0 0 0 0 1 0 1 +128 - 1 0 0 0 0 0 0 0 +------- Result -------- +133 - 1 0 0 0 0 1 0 1 +``` + +### Bitwise XOR "^" + +Este carácter de operador de bits funciona de una manera diferente a la esperada y puede ser difícil encontrar una forma de usarlo. + +Imagina tener las siguientes máscaras de bits: + +| Máscara de bits | Values | +| --- | --- | +| ```0 1 0 0 1 1 1 0``` | 78 +| ```0 0 1 1 0 1 0 0``` | 52 +| ```F T T T T F T F``` | XOR Results | +| ```0 1 1 1 1 0 1 0``` | 122 + +Podría confundirse con lo que acaba de suceder. + +Bueno, solo comparamos el bit de la primera máscara y el bit de la segunda máscara y los comparamos. Si son diferentes, el valor final es verdadero. Así es como se vería programáticamente: + +``` C++ +// Compara los valores de la máscara 1 y 2 +// Si son diferentes, la condición XOR es verdadera +for (int i = 0; i < 8; ++i) +{ + if (bitmask_1[i] != bitmask_2[i]) + printf("Esta condición es verdadera") +} +``` + +### Bitwise left shit "<<" + +Esta operación de bit cambiará todos los valores binarios N veces como se especifica. Veamos más profundo: + +Si tenemos el siguiente valor en binario X: + +```0 0 0 0 0 0 0 1``` (que es 1) + +y hacemos x << 1, entonces x se convertirá en + +```0 0 0 0 0 0 1 0``` + +Entonces, según esta regla, mueve todos los bits a la izquierda en uno y agrega un 0 a la derecha +x << 2 movería todos los bits en 2, por lo que x se convertiría en + +```0 0 0 0 0 1 0 0``` + +``` C++ +// Desplaza el valor "1", "8-1" veces hacia la izquierda +1<<(8-1) + +// (8-1) es lo mismo que 7 +1<<(7) + +// Lo que mueve 000000001 el 1 en ese valor 7 lugares a la izquierda. +// entonces el resultado es 128 o +10000000 +``` +--- +## Conclusión + +[Hoja de trucos tomada de este enlace](https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp/) + +Carácter | Operación | Descripción +-- | -- | -- +& | AND | Toma dos números como operandos y hace AND en cada bit de dos números. El resultado de AND es 1 solo si ambos bits son +\| | OR | Toma dos números como operandos y hace OR en cada bit de dos números. El resultado de OR es 1 cualquiera de los dos bits es +^ | XOR | Toma dos números como operandos y hace XOR en cada bit de dos números. El resultado de XOR es 1 si los dos bits son diferentes. +\<\< | desplazamiento a la izquierda | Toma dos números, desplaza a la izquierda los bits del primer operando, el segundo operando decide el número de lugares a desplazar. +\>\> | desplazamiento a la derecha | Toma dos números, desplaza a la derecha los bits del primer operando, el segundo operando decide el número de lugares a desplazar. +~ | NOT | Toma un número e invierte todos los bits + +# Créditos + +Documentación construida con estos artículos en consideración: + +https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp/ + +https://stackoverflow.com/questions/31575691/what-is-a-bitmask-and-a-mask diff --git a/docs/es/bountysource.md b/docs/es/bountysource.md new file mode 100644 index 0000000..161ff5e --- /dev/null +++ b/docs/es/bountysource.md @@ -0,0 +1,48 @@ +--- +redirect_from: "/Bountysource" +--- + +# Bountysource + +## ¿Qué es Bountysource? + +Bountysource es una plataforma de financiación colectiva que permite a las personas patrocinar proyectos de código abierto colocando "recompensas" (recompensas en dinero) para la resolución de problemas informados en GitHub. Quien solucione ese problema, obtendrá el dinero de la recompensa. + +Por lo tanto, si desea respaldar la resolución de un problema específico, puede otorgar recompensas a nuestros [problemas abiertos](https://github.com/azerothcore/azerothcore-wotlk/issues). + +Los problemas pueden ser solo errores o incluso solicitudes de funciones principales. Si desea patrocinar un problema que no existe, siéntase libre de crearlo primero y luego aplicar la recompensa por él. + +[https://www.bountysource.com/teams/azerothcore/bounties](https://www.bountysource.com/teams/azerothcore/bounties) + +También puede simplemente hacer una donación a nuestra [Organización AzerothCore Bountysource](https://salt.bountysource.com/checkout/amount?team=azerothcore) y dejarnos decidir en qué problemas o funciones asignar el dinero. + +I want to underline that solving the issue and claiming the bounty **is NOT restricted to AC staff only, everyone can do it! :)** + +Así es como funciona Bountysource: + +1) Los usuarios financian recompensas por problemas abiertos o solicitudes de funciones que desean que se aborden. + +2) Los desarrolladores crean soluciones que resuelven los problemas y reclaman las recompensas correspondientes en Bountysource. + +3) Los patrocinadores pueden aceptar o rechazar las reclamaciones. + +4) Si se acepta, Bountysource paga las recompensas al desarrollador. + +**Muchas gracias a nuestros [Patrocinadores Principales](https://www.bountysource.com/teams/azerothcore/backers) of Bountysource.** + +### ¿Qué pasa si no quieres reclamar la recompensa? + +¿Qué sucede si ha trabajado en un problema que tiene una recompensa, pero no quiere reclamarlo para usted mismo? + +Puede devolver ese dinero a la organización AzerothCore Bountysource, para que podamos reasignarlo a algún otro problema. + +El dinero que decida devolver a la organización de AC **se mostrará como su propio recuento de donaciones**, por lo que estará en la lista de [Patrocinadores](https://www.bountysource.com/teams/azerothcore/backers) también. + +Esto es lo que suelen hacer los administradores de AC. + +![image](https://user-images.githubusercontent.com/75517/117544116-1c968280-b020-11eb-80f6-5c7d3b725219.png) + + +## Otros recursos + +- [Preguntas frecuentes oficiales de Bountysource](https://github.com/bountysource/core/wiki/Frequently-Asked-Questions) diff --git a/docs/es/contribute.md b/docs/es/contribute.md new file mode 100644 index 0000000..60bf6fc --- /dev/null +++ b/docs/es/contribute.md @@ -0,0 +1,62 @@ +--- +redirect_from: "/Contribute" +--- + +# Contribuir + +Puedes contribuir de varias formas a AzerothCore: + +- [comentando un problema abierto](Contribute#how-to-comment-an-issue) + +- [abriendo un problema](Contribute#how-to-open-an-issue) + +- [prueba de una solicitud de extracción](How-to-test-a-PR) + +- [prueba de cambios solo de base de datos](How-to-test-DB-only-changes) + +- [creando una solicitud de extracción](Contribute#how-to-create-a-pull-request) + +- [mejorando nuestra wiki](Contribute#improve-the-wiki) +## Información general + +Para contribuir, obviamente necesitas una cuenta de github. + +## Cómo comentar un problema + +Puede ayudar mucho revisando los [problemas](https://github.com/azerothcore/azerothcore-wotlk/issues) y uniéndose a sus discusiones. + +Una cosa que puede hacer es actualizar su núcleo y verificar si el problema sigue siendo válido en su revisión, luego puede escribir un comentario **que incluya el hash de confirmación**. + +## Cómo abrir un problema + +osas importantes que hacer antes de informar un error: + +**1) Actualice su núcleo a la última revisión de AzerothCore y compruebe si el error sigue ahí.** + +**2) Busque entre los [problemas](https://github.com/azerothcore/azerothcore-wotlk/issues) para verificar si alguien ya informó el error, en ese caso solo tiene que comentar el problema para confirmar el error (incluida su revisión principal)** + +Si **(y solo si)** el error aún no se ha informado, puede [abrir un problema](https://github.com/azerothcore/azerothcore-wotlk/issues/new) e incluir: + +- La **descripción del error**, incluidos los **enlaces** útiles y **ID/GUID/nombres** de cualquier entidad relacionada (NPC, hechizos, objetos de juego, etc.) +- La **revisión del núcleo (hash de confirmación)** del AzerothCore en el que está ejecutando, **no escriba solo la "última versión"** incluso si acaba de actualizar su núcleo. +- Si se trata de un problema de compilación, sería útil conocer también su **sistema operativo** y **versión del compilador**. + +## Cómo probar una solicitud de extracción + +- Lea [Cómo probar un PR](How-to-test-a-PR). + +## Cómo crear una solicitud de extracción + +- Lea [Cómo crear un PR](How-to-create-a-PR). + +### Dando crédito al autor del código + +Si desea enviar un código escrito por otra persona, puede otorgarle créditos al autor cuando se comente: + +`git commit --author="AuthorName " -am "Confirma el mensaje aquí"` + +Actualización: desafortunadamente, al fusionar un PR aplastando el comentario, GitHub establece automáticamente al autor del compromiso resultante como la persona que abrió el PR. Por esta razón, mencione al autor original (y comprometa, si corresponde) en la descripción del PR. + +## Mejora la Wiki + +¿Quieres mejorar o agregar una página a nuestro wiki? ¡Bien! Discutámoslo usando [nuestro chat](https://discord.gg/PaqQRkd). diff --git a/docs/es/core-installation.md b/docs/es/core-installation.md new file mode 100644 index 0000000..a2db74b --- /dev/null +++ b/docs/es/core-installation.md @@ -0,0 +1,32 @@ +# Instalación Principal + +| Guía de Instalación | | +| :- | :- | +| Este artículo es parte de la Guía de instalación. Puede leerlo solo o hacer clic en el enlace anterior para moverse fácilmente entre los pasos. | +| [<< Paso 1: Requisitos](requirements.md) | [Paso 3: Configuración del servidor >>](server-setup.md) | + +[Instalación del núcleo de Linux](linux-core-installation.md) + +[Instalación principal de macOS](macos-core-installation.md) + +[Instalación de Windows Core](windows-core-installation.md) + +
+ +## Ayuda + +Si aún tiene problemas, verifique: + +* [Preguntas Frecuentes](faq.md) + +* [Errores Comunes](common-errors.md) + +* [Cómo pedir ayuda](how-to-ask-for-help.md) + +* [Únase a nuestro servidor de Discord](https://discord.gg/gkt4y2x), pero no es un canal de soporte 24/7. Un miembro del personal le responderá siempre que tenga tiempo. + +| Guía de Instalación | | +| :- | :- | +| Este artículo es parte de la Guía de instalación. Puede leerlo solo o hacer clic en el enlace anterior para moverse fácilmente entre los pasos. | +| [<< Paso 1: Requisitos](requirements.md) | [Paso 3: Configuración del servidor >>](server-setup.md) | + diff --git a/docs/es/faq.md b/docs/es/faq.md new file mode 100644 index 0000000..233fabb --- /dev/null +++ b/docs/es/faq.md @@ -0,0 +1,126 @@ +--- +redirect_from: "/FAQ" +--- + +# Preguntas frecuentes + +Si tiene problemas para instalar o compilar AzerothCore, lea [Errores comunes](common-errors.md). + +| ¿Estas preguntas frecuentes no respondieron a sus preguntas? Lea [Cómo pedir ayuda](how-to-ask-for-help.md) sobre cómo proceder con su pregunta de la mejor manera. | +| --- | + +## Preguntas frecuentes generales + +- ¿Qué sistemas operativos o plataformas son compatibles? + - Actualmente, se admiten Windows, macOS, Linux y Docker. + +- ¿Cuándo debo actualizar mi fuente? + - Recomendamos actualizar su núcleo con frecuencia, al menos una vez a la semana, para beneficiarse de las últimas correcciones de núcleo y parches de seguridad. + +- ¿Cuánta RAM necesito para AzerothCore? + - Puede encontrar toda la información de RAM [aquí](memory-usage). + +- ¿Qué es "Blizzlike"? + - AzerothCore está intentando replicar el estado de Blizzard para World of Warcraft. El término "Blizzlike" significa que está lo suficientemente cerca de ser una réplica de lo que había en los servidores de Blizzard. + +- ¿Por qué AzerothCore no imita errores o exploits parecidos a una "Blizzlike"? + - Aunque nos esforzamos por ofrecer contenido similar a una Blizzlike, también valoramos la experiencia del usuario. Esto significa que a veces corregimos errores o vulnerabilidades que existían durante la venta minorista en ese momento para brindar una mejor experiencia general a los jugadores. + +- ¿Cómo puedo contribuir? + - Puede ayudar a solucionar problemas enviando solicitudes de extracción, lea más [aquí](contribute.md). + - Puede ayudarnos probando nuestras [Solicitudes de extracción](contribute#how-to-test-a-pull-request) y participando en las [discusiones sobre problemas de github](https://github.com/azerothcore/azerothcore-wotlk/issues). + - Puede poner recompensas (dinero) en problemas o sugerencias que desee solucionar utilizando bountysource. Obtenga más información aquí: [Bountysource](bountysource.md) + - Puede ayudar a mejorar la wiki enviando una [Solicitud de extracción](https://github.com/azerothcore/wiki). + +- ¿Por qué no fusionas mi solución? + - Todas las correcciones deben ser revisadas por un desarrollador. Todos los desarrolladores no lo saben todo, por lo que debe esperar hasta que alguien lo revise. + - Algunas correcciones requieren pruebas y no todos los desarrolladores pueden probarlas, por lo que debe esperar a que alguien más las pruebe. + - Se fusionan eventualmente después de obtener la etiqueta To Be Merged. + - Quizás no esté siguiendo los [estándares SQL/C++](https://www.azerothcore.org/wiki/standard-operating-procedure). + - Leer más en [Merge Process](merge-process.md). + +- ¿Cómo informo de un accidente? + - Pegando su registro de fallos en un PasteBin o Gist. + - El registro de fallos **debe provenir de una compilación RelWithDebInfo o Debug**. Si es de Release, es inútil. + - [Cómo reiniciar y depurar](how-to-restart-and-debug.md). + +- ¿Soportan Repacks basados ​​en AzerothCore? + - No. NO se admiten reempaquetamientos y recomendamos encarecidamente no utilizarlos por [varias razones](https://www.mangosrumors.org/why-you-should-not-use-repacks-to-run-your-wow-server/). Puede consultar [este tutorial](https://www.chromiecraft.com/how-to-install-a-wow-server-on-your-own-computer/) para obtener una forma sencilla de instalar AC sin necesidad de volver a empaquetar. + + +## Preguntas frecuentes relacionadas con la base de datos + +- ¿Con qué frecuencia actualiza la base de datos? + - La base de datos se actualiza casi todos los días. + +- ¿Cómo actualizo la base de datos? + - Puede encontrar todo lo que necesita para mantener la base de datos actualizada en esta guía sobre [Base de datos que mantiene el servidor actualizado](database-keeping-the-server-up-to-date.md). + +## Preguntas frecuentes relacionadas con el núcleo + +- ¿Cuándo se estabilizará la fuente? + - Pronto...â„¢ + - Hacemos nuestro mejor esfuerzo para mantener la rama maestra estable y jugable. Nunca enviamos el código directamente a la rama maestra, sino que primero requerimos que todos (incluidos los administradores de CA y el personal) primero abran un PR para que todos puedan verificarlos antes de que se fusionen con el maestro. + - Por favor ayúdenos [probando PRs](how-to-test-a-pr) e informando cualquier error que pueda encontrar. + +- ¿No puedo ejecutar los extractores en plataformas Windows, simplemente desaparece cuando hago clic en él? + - Comprenda que es una herramienta de **línea de comandos**, no una herramienta GUI. Esto significa que debe utilizar la línea de comandos en Windows (por ejemplo, "Símbolo del sistema") en lugar de hacer doble clic en ella. + + +- ¿Por qué no puedo ejecutar mis extractores MAP / DBC más antiguos? + - Se actualizan por una razón y le darán errores cuando inicie Worldserver si no extrae con la última versión. + - Siempre obtendrá la última versión si compila con "TOOLS" + +- ¿Qué son Maps, VMaps, MMaps y DBCs? + - Tenga en cuenta que AzerothCore no admite ni aprueba ninguna forma de modificación en los archivos del cliente o en los servidores públicos o privados. AzerothCore en sí mismo está diseñado para la elaboración de teorías y el aprendizaje.** + - Además del núcleo como binarios que dan una interpretación fundamental e individual al cliente, funciones, definiciones y comandos, el núcleo se puede describir como 'un cuerpo' con los siguientes datos que forman su 'anatomía': + - **Maps**: Los Maps son **necesarios para ejecutar AzerothCore**. Los mapas proporcionan los valores físicos y los datos para que el núcleo los interprete. En base a estos, el núcleo tiene un diseño que se puede comparar con cada cliente. Esto incluye definiciones de área. + - **VMaps**: Los VMaps son **opcionales, pero muy recomendables**. VMaps ("Mapas virtuales") calcula la posibilidad de línea de visión, como ejemplo. Según su contenido, el servidor puede (por ejemplo) calcular si es posible lanzar hechizos (por ejemplo, si hay una pared entre el objetivo y el lanzador o no). + - **MMaps**: Los MMaps son ** opcionales, pero muy recomendables **. Para ampliar los límites físicos, los MMaps ("Mapas de movimiento") imponen límites físicos a los personajes que no son jugadores, p. Ej. NPC, ya que su colisión no es manejada por el cliente. También mejoran la generación de rutas. + - **DBC**: Los DBC son **necesarios para ejecutar AzerothCore**. Los DBC ("Data Base Client [Archivos]") dan valores esenciales que interpreta el cliente de World of Warcraft. Definen razas, texturas, modelos locales y más. AzerothCore los interpreta y los carga. + - Compilar AzerothCore con "TOOLS" siempre creará las herramientas necesarias para extraer y crear estos archivos. + +- Tengo problemas para extraer mapas, VMaps, MMaps, DBC (y he intentado usar versiones anteriores de los extractores). ¿Qué ocurre? + - Las herramientas más antiguas están obsoletas y no funcionarán. + - Debe utilizar una línea de comandos para poder ejecutar las herramientas. + +- ¿Me faltan las bibliotecas para MySQL y parece que no puedo encontrarlas en el repositorio? + - La biblioteca se llama "mysql.lib" y no la proporciona AzerothCore. + - Asegúrese de haber instalado su MySQL-Server con DEVELOPMENT HEADERS. + - Puede seguir la guía [Instalación básica](core-installation) para encontrar las bibliotecas. + +- ¿Me faltan las bibliotecas para OpenSSL y parece que no puedo encontrarlas en el repositorio? + - Para las versiones de OpenSSL anteriores a 1.1.0, se denominarán "libeay32.dll" y "ssleay32.dll". + - Para las versiones 1.1.0 y más recientes de OpenSSL se denominan: + - Para instalaciones de 32 bits: "libssl-1_1.dll" y "libcrypto-1_1.dll". + - Para instalaciones de 64 bits: "libssl-1_1-x64.dll" y "libcrypto-1_1-x64.dll". + - Puede seguir la guía [Instalación básica](core-installation) para encontrar las bibliotecas. + +## Preguntas frecuentes relacionadas con la depuración + +- ¿Cómo puedo obtener un buen registro de fallos en Windows? + - Compile su núcleo en RelWithDebInfo o Debug. Un registro de fallos de Release será inútil. + - Puede depurarlo usted mismo si [Ejecuta worldserver y autherserver en Visual Studio](run-worldserver-and-authserver-in-visual-studio.md). + +## Preguntas frecuentes relacionadas con el módulo + +- Necesito un nuevo hook para mi módulo personalizado, ¿qué puedo hacer? + - Puede agregar el gancho a su propia fork (cf: [crear un nuevo hook](hooks-script)) y crear una nueva solicitud de extracción al repositorio oficial para que podamos validarlo y fusionarlo. + +- ¿Es posible convertir un parche central en un módulo? + - Sí. [¿Es posible convertir un parche básico en un módulo para AzerothCore? - StackOverflow](https://stackoverflow.com/questions/66340549/is-it-possible-to-turn-a-core-patch-into-a-module-for-azerothcore/66340683#66340683). + +## Preguntas frecuentes relacionadas con funciones + +- ¿Qué instancias/arenas/campos de batalla están funcionando? + - La mayoría de ellos funcionan perfectamente, algunos funcionan peor. + - Siempre se trabaja en el Núcleo, los datos más precisos provendrán de que los pruebe usted mismo. + +- ¿Funciona Warden? + - Sí, pero no con una tasa de éxito del 100%. Warden no detecta todos los hacks, ni siquiera en Retail. + +- ¿Cómo cierro una instancia o campo de batalla? ¿Cómo puedo desactivar un hechizo? + - Todas las inhabilitaciones se manejan en la [tabla de inhabilitaciones](https://www.azerothcore.org/wiki/disables). + +| ¿Estas preguntas frecuentes no respondieron a sus preguntas? Lea [Cómo pedir ayuda](how-to-ask-for-help.md) sobre cómo proceder con su pregunta de la mejor manera. | +| --- | diff --git a/docs/es/file-headers.md b/docs/es/file-headers.md new file mode 100644 index 0000000..bfcb575 --- /dev/null +++ b/docs/es/file-headers.md @@ -0,0 +1,23 @@ +# Encabezados de archivo + +Para limpiar los archivos, usamos un formato estándar para los nuevos encabezados de archivos. + +XXXX = año de inicio +YYYY = año activo + +**Código independiente de AzerothCore (sin código anterior de nadie):** + +```cpp +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license, you may redistribute it and/or modify it under version 3 of the License, or (at your option), any later version. + */ +``` + +**Con código anterior de fuentes externas o desarrolladores:** + +```cpp +/* + * Copyright (C) 2016+ AzerothCore , released under GNU GPL v3 license, you may redistribute it and/or modify it under version 3 of the License, or (at your option), any later version. + * Copyright (C) XXXX-YYYY external-teamname + */ +``` diff --git a/docs/es/home.md b/docs/es/home.md new file mode 100644 index 0000000..ef4b34b --- /dev/null +++ b/docs/es/home.md @@ -0,0 +1,44 @@ +--- +redirect_from: "/es" +--- + +Bienvenido a la wiki del proyecto [AzerothCore](http://www.azerothcore.org/) con tecnología de [Drassil/Git-Wiki](https://github.com/Drassil/git-wiki) + +## Empezando + +- [Guía de instalación](es/installation.md) + +## Documentación + +- [Índice de documentación](es/documentation_index.md) + +## Descripción General + +AzerothCore es una solución completa de código abierto para MMO + +### Base Sólida + +AzerothCore tiene una base fuerte y sólida, fruto de años de desarrollo: se basa en MaNGOS, TrinityCore y SunwellCore. +Estamos mejorando esta confiabilidad ofreciendo un proyecto que sigue reglas específicas de control de versiones, lo que le permite desarrollarse de la manera correcta. + +### Reproducible + +Nuestro principal objetivo es proporcionar una aplicación de servidor completamente funcional y reproducible. Centraremos nuestras revisiones estables en las experiencias del usuario final, en lugar de seguir patrones de desarrollo estrictos como nuestros predecesores. +Por supuesto trabajaremos para mejorar el código en cada nueva versión que se encuentre en etapa de desarrollo. + +### Código Libre + +Los módulos de AzerothCore se publican bajo GNU AGPL 3.0 y GNU GPL 2.0, ambos licencias son totalmente gratuitos y de código abierto. Creemos en el software libre, amamos la cooperación. + +### Probado, Confiable, Actualizado + +SunwellCore, el padre de AzerothCore, había estado trabajando con miles de jugadores durante años. El objetivo de AzerothCore es mantener actualizada esta aplicación de juego, continuando su desarrollo. + +### Impulsado por la Comunidad + +La principal fortaleza de AzerothCore es su comunidad. Los usuarios pueden ayudarnos mejorando nuestra base de código o simplemente enviando cualquier informe de error. Si quieres contribuir, ¡nos encantaría! + +### Modular + +Intentamos que nuestro software sea lo más modular posible, porque el software modular es mucho más fácil de ampliar. + diff --git a/docs/es/how-to-debug.md b/docs/es/how-to-debug.md new file mode 100644 index 0000000..7dcdaed --- /dev/null +++ b/docs/es/how-to-debug.md @@ -0,0 +1 @@ +## Trabajo en progreso diff --git a/docs/es/importing-spell-dbc.md b/docs/es/importing-spell-dbc.md new file mode 100644 index 0000000..18b852a --- /dev/null +++ b/docs/es/importing-spell-dbc.md @@ -0,0 +1,19 @@ +# Importando datos a la tabla spell_dbc + +## Introducción + +El [spell_dbc](spell_dbc.md) contiene datos sobre los hechizos del lado del servidor que no se encuentran en los archivos DBC del cliente, así como ** anulaciones ** del DBC que están destinadas a mejorar o corregir cualquier hechizo. + +Para agregar anulaciones para un hechizo en la tabla `spell_dbc`, primero necesita importar los datos base sobre ese hechizo desde los archivos DBC del Cliente (a menos que ese hechizo ya haya sido importado). + +Hay alrededor de 50k hechizos en los archivos DBC del cliente, puede importar un hechizo o el conjunto completo a la tabla `spell_dbc` de su base de datos AC local para poder trabajar en ellos y agregar sus anulaciones. + +Cuando importe el hechizo del DBC, obtendrá una consulta `INSERT IGNORE` con todos los valores predeterminados. Guarde esta consulta en algún lugar, la necesitará para enviar su corrección de PR. +Después de haber importado los hechizos, puede usar herramientas como [Keira3](https://www.azerothcore.org/Keira3/) para obtener fácilmente la consulta `UPDATE` que contiene sus anulaciones. + +Cuando envías un PR con una corrección de `spell_dbc` para un hechizo determinado, si ese hechizo no estaba presente en la tabla` spell_dbc` antes, debes incluir tanto la consulta `INSERT IGNORE` como la consulta` UPDATE` en tu PR. + +## Cómo importar hechizos de los archivos DBC a la tabla spell_dbc + +Para importar datos de Spell.dbc a nuestra tabla spell_dbc, puede consultar la guía general sobre [cómo importar datos de archivos DBC](how-to-import-dbc-data-in-db.md). +Solo necesita usar las mismas pautas con el uso del archivo Spell.dbc en su lugar. diff --git a/docs/es/keeping-the-server-up-to-date.md b/docs/es/keeping-the-server-up-to-date.md new file mode 100644 index 0000000..60b238a --- /dev/null +++ b/docs/es/keeping-the-server-up-to-date.md @@ -0,0 +1,35 @@ +# Mantener el servidor actualizado + +| Guía de instalación | | +| :- | :- | +| Este artículo es parte de la Guía de instalación. Puede leerlo solo o hacer clic en el enlace anterior para moverse fácilmente entre los pasos. | +| [<< Paso 6: Pasos finales del servidor](final-server-steps.md) | [Paso 8: Configuración del cliente >>](client-setup.md) | + +Los desarrollador