¡Vota por nosotros!

Vota diariamente por XatiyaRO para mejorar nuestra reputación y ayudarnos a crecer.

RagnaTOP - Top Ragnarok Online en Español Ragnarok private server
private server TOP RO Hispano

Autor Tema: [Aporte] Hércules Servidor Ragnarök  (Leído 13900 veces)

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

Desconectado Eren

  • Novice
  • *
  • Mensajes: 25
[Aporte] Hércules Servidor Ragnarök
« en: 04 de Noviembre de 2014, 02:25:21 am »
Hércules Servidor


Citar
Hércules es un proyecto de código abierto para la emulación de un servidor Ragnarok Online. El proyecto está gestionado conjuntamente por un grupo de voluntarios ubicados en todo el mundo, así como una enorme comunidad de proporcionar control de calidad y el apoyo. Hércules es una continuación del proyecto original Athena.
Hércules es una versión que sigue el proyecto Athena mucho más ligera de los emuladores conocidos rathena,eathena; es una versión que ocupa menos RAM que las ya mencionadas.


Requerimientos:
Emulador Hércules
Xampp Installer
Microsoft Visual Studio
Administrador de Base de Datos
   ○ HeidiSQL
   ○ PHPmyAdmin(Ésta parte de Xampp y Apache)



Instalación: En éste caso se usará la descarga desde medio web, conforme vaya realizando los demás procedimientos empezaré a agregar cada uno de ellos.


Hércules WS
• Una vez descargado Hércules WS descomprimiremos los archivos ya que posteriormente lo usaremos para configurar nuestro servidor.
Spoiler for Hidden:



Xampp Control Panel
• Instalaremos Xampp en nuesto ordenador, para ello ejecutaremos el .exe y seguiremos con el proceso de la instalación.
Spoiler for Hidden:




• Ahora configuraremos nuestro Xampp, para ello ejecutaremos el control panel e iniciaremos el proceso mySQL y Apache.
Spoiler for Hidden:



Microsoft Visual Studio
Spoiler for Hidden:








Administrador de Base de Datos
   ○ HeidiSQL
   
Spoiler for Hidden:
   
   
   
   
   
   
   
   ○ PHPmyAdmin
      ○ Una vez iniciado nuestro servicio de mysql y apache en el Xampp ingresaremos la dirección http://localhost/phpmyadmin/ se visualizará algo similar a esto:
      
Spoiler for Hidden:
      
      
      ○ Ahora ingresaremos la dirección http://localhost/xampp/ para configurar nuesto acceso:
      
Spoiler for Hidden:
      
      
      ○ Seleccionaremos la opción de 'Seguridad' para ingresar nuestra contraseña para usuario root.
      
Spoiler for Hidden:
      
      
      
      ○ Reiniciamos el servicio apache y mysql y con ello ingresaremos a la dirección previamente mostrada y nos pedirá autentificar con un usuario y contraseña.
      
Spoiler for Hidden:
      
      
      




Configuración:


Creación de las Base de Datos
Usando HeidiSQL
   ○ Crearemos nuestro usuario para identificar nuestras base de datos, en éste caso crearemos una llamada Hércules y la cual pondremos nuestro usuario 'root' y la password que ya configuramos previamente para sql.
   
Spoiler for Hidden:

   
   ○ Ejecutaremos el HeidiSQL y procederemos a crear una base de datos para el servidor.
   
Spoiler for Hidden:

   
   ○ Daremos clic secundario sobre nuestro nombre de usuario y crearemos una base de datos.
   
Spoiler for Hidden:
   ○ En esta guía crearemos dos bases de datos distintas, una para los registros normales y otra para logs (hercules_db y hercules_log)
   
Spoiler for Hidden:

   
   ○ Una vez creadas ambas bases de datos tendremos que agregar los archivos SQL de nuestros archivos Hércules Emulador, para ello buscaremos la ubicación 'sql-files' para hercules_db usaremos los archivos 'main' para hercules_log usaremos 'log'   
   
Spoiler for Hidden:

   
   
   ○ Una vez agregados los archivos y en caso de no visualizar las tablas en sus respectivas bases de datos usemos la tecla F5 o bien refresh.
   
Spoiler for Hidden:

   
Usando PHPmyAdmin
   ○ Ingresando a phpmyadmin desde la dirección http://localhost/phpmyadmin/ crearemos nuestra base de datos las cuales llamaremos igual hercules_db y hercules_log.
   
Spoiler for Hidden:
   ○ Una vez creadas ambas bases de datos procederemos a cargar los archivos para su lectura (en este caso sólo será el ejemplo de hercules_db) seleccionamos la base de datos e importaremos los archivos sql del emulador.
   
Spoiler for Hidden:
   ○ Se repite el proceso para hercules_log (es similar a la guía de HeidiSQL). Así tendremos nuestras bases de datos.

Configuración del Emulador
Configuración de las direcciones IP
   ○ Modificaremos una serie de archivos desde la carpeta Hercules/conf/
      char-server
Spoiler for Hidden:
Código: [Seleccionar]
// Character Server configuration file.

// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.

// Server Communication username and password.
userid: s1
passwd: p1

// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces or any of these characters which are not allowed in
//       Windows filenames \/:*?"<>|
//       ... or else guild emblems won't work client-side!
server_name: Hercules

// Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
wisp_server_name: Server

// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: 127.0.0.1

// The character server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1

// Login Server Port
login_port: 6900

// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: 127.0.0.1

// Character Server Port
char_port: 6121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
//timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server output more silent by ommitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

// Type of server.
// No functional side effects at the moment.
// Displayed next to the server name in the client.
// 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P
char_server_type: 0

// Minimum Group ID to join char server when it is on char_server_type 1 (maintenance)
char_maintenance_min_group_id: 99

// Enable or disable creation of new characters.
// Now it is actually supported [Kevin]
char_new: 1

// Display (New) in the server list.
char_new_display: 0

// Maximum users able to connect to the server.
// Set to 0 to disable users to log-in. (-1 means unlimited)
max_connect_user: -1

// Group ID that is allowed to bypass the server limit of users.
// Default: -1 = nobody (there are no groups with ID < 0)
// See: conf/groups.conf
gm_allow_group: -1

// How often should the server save all files? (In seconds)
// Note: Applies to all data files on TXT servers.
// On SQL servers, it applies to guilds (character save interval is defined on the map config)
autosave_time: 60

// Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
save_log: yes

// Start point, Map name followed by coordinates (x,y)
start_point: new_1-1,53,111

// Starting items for new characters
// Format is: id1,quantity1,stackable1,idN,quantityN,stackableN
// stackable:
// 0 - Not stackable (weapon, armor, egg, pet armor)
// 1 - Stackable
start_items: 1201,1,0,2301,1,0

// Starting zeny for new characters
start_zeny: 0

// Size for the fame-lists
fame_list_alchemist: 10
fame_list_blacksmith: 10
fame_list_taekwon: 10

// Guild earned exp modifier.
// Adjusts taxed exp before adding it to the guild's exp. For example, if set
// to 200, the guild receives double the player's taxed exp.
guild_exp_rate: 100

// Name used for unknown characters
unknown_char_name: Unknown

// To log the character server?
log_char: 1

// Allow or not identical name for characters but with a different case (upper/lower):
// example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
name_ignoring_case: no

// Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
// NOTE: Applies to character, party and guild names.
// 0: no restriction (default)
// 1: only letters/symbols in 'char_name_letters' option.
// 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
char_name_option: 1

// Set the letters/symbols that you want use with the 'char_name_option' option.
// Note: Don't add spaces unless you mean to add 'space' to the list.
char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890

// Restrict character deletion by BaseLevel
// 0: no restriction (players can delete characters of any level)
// -X: you can't delete chars with BaseLevel <= X
// Y: you can't delete chars with BaseLevel >= Y
// e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
char_del_level: 0

// Amount of time in seconds by which the character deletion is delayed.
// Default: 86400 (24 hours)
// NOTE: Requires client 2010-08-03aragexeRE or newer.
char_del_delay: 86400

// Block deletion if character is inside a guild or a party? (BOOL)
// default: 0 official: 1
// !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!!
char_aegis_delete: 0

// What folder the DB files are in (item_db.conf, etc.)
db_path: db

//==================================================================
// Pincode system
//==================================================================

// A window is opened before you can select your character and you will have to enter a pincode by using only your mouse
// NOTE: Requires client 2011-03-09aragexeRE or newer.
// 0: disabled
// 1: enabled
pincode_enabled: 0

// Request Pincode only on login or on everytime char select is accessed?
// 0: only on login (default)
// 1: everytime the char select window is accessed
pincode_charselect: 0

// How often does a user have to change his pincode?
// Default: 0
// 0: never
// X: every X minutes
pincode_changetime: 0

// How often can a user enter the wrong password?
// Default: 3
// NOTE: The maximum on clientside is 3
pincode_maxtry: 3

import: conf/import/char_conf.txt
      map-server
Spoiler for Hidden:
Código: [Seleccionar]
//--------------------------------------------------------------
// Hercules Map-Server Configuration File
//--------------------------------------------------------------

// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.

//--------------------------------------------------------------
//                     Configuration Info
//--------------------------------------------------------------
// Interserver communication passwords, set in account.txt (or equiv.)
userid: s1
passwd: p1

// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: 127.0.0.1

// The map server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1

// Character Server Port
char_port: 6121

// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: 127.0.0.1

// Map Server Port
map_port: 5121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
//timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server log selected message types to a file in the /log/ folder
//1: Log Warning Messages
//2: Log Error and SQL Error messages.
//4: Log Debug Messages
//Example: "console_msg_log: 7" logs all 3 kinds
//Messages logged by this overrides console_silent setting
console_msg_log: 0

//Makes server output more silent by omitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

//Where should all database data be read from?
db_path: db

// Enable the @guildspy and @partyspy at commands?
// Note that enabling them decreases packet sending performance.
enable_spy: no

// Read map data from GATs and RSWs in GRF files or a data directory
// as referenced by grf-files.txt rather than from the mapcache?
use_grf: no

// Database autosave time
// All characters are saved on this time in seconds (example:
// autosave of 60 secs with 60 characters online -> one char is saved every
// second)
autosave_time: 300

// Min database save intervals (in ms)
// Prevent saving characters faster than at this rate (prevents char-server
// save-load getting too high as character-count increases)
minsave_time: 100

// Apart from the autosave_time, players will also get saved when involved
// in the following (add as needed):
// 1: After every successful trade
// 2: After every vending transaction
// 4: After closing storage/guild storage.
// 8: After hatching/returning to egg a pet.
// 16: After successfully sending a mail with attachment
// 32: After successfully submitting an item for auction
// 64: After successfully get/delete/complete a quest
// 128: After every buying store transaction
// 256: After every bank transaction (deposit/withdraw)
// NOTE: These settings decrease the chance of dupes/lost items when there's a
// server crash at the expense of increasing the map/char server lag. If your
// server rarely crashes, but experiences interserver lag, you may want to set
// these off.
save_settings: 511

// When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
help_txt: conf/help.txt
help2_txt: conf/help2.txt
charhelp_txt: conf/charhelp.txt

// Maps:
import: conf/maps.conf

import: conf/import/map_conf.txt
Configuración de SQL
   ○ Modificaremos el archivos 'inter-server' desde la carpeta Hercules/conf/
   Buscaremos las siguientes líneas y colocaremos lo que corresponde.
   
Spoiler for Hidden:
Spoiler original:
Código: [Seleccionar]
sql.db_hostname: 127.0.0.1
sql.db_port: 3306
sql.db_username: ragnarok
sql.db_password: ragnarok
sql.db_database: ragnarok
sql.codepage:
Código: [Seleccionar]
// MySQL Character SQL server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: ragnarok
char_server_pw: ragnarok
char_server_db: ragnarok
Código: [Seleccionar]
// MySQL Map SQL Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: ragnarok
map_server_pw: ragnarok
map_server_db: ragnarok
Código: [Seleccionar]
// MySQL Log SQL Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: ragnarok
log_db_pw: ragnarok
log_db_db: ragnarok
log_codepage:
log_login_db: loginlog
Spoiler configurado:
Código: [Seleccionar]
sql.db_hostname: 127.0.0.1
sql.db_port: 3306
sql.db_username: root
sql.db_password: password
sql.db_database: hercules_db
sql.codepage:
Código: [Seleccionar]
// MySQL Character SQL server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: root
char_server_pw: password
char_server_db: hercules_db
Código: [Seleccionar]
// MySQL Map SQL Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: root
map_server_pw: password
map_server_db: hercules_db
Código: [Seleccionar]
// MySQL Log SQL Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: root
log_db_pw: password
log_db_db: hercules_log
log_codepage:
log_login_db: loginlog
NOTA:   
            Por password colocamos la contraseña previamente configurada.
            Por Usuario o ID root
            Todas las DB son colocadas tal y como llamamos a las nuestras (hercules_db) menos la de logs.(hercules_log)

Configuración con Visual Studio
• Nos dirigiremos a nuestro emulador Hércules y seleccionaremos el archivo'Hercules-10' nos solicitará sobre la conversión del proyecto y aceptaremos.
Spoiler for Hidden:



• Ahora cambiaremos la configuración a 'release'
Spoiler for Hidden:


• Posterior a ello seleccionaremos Solución 'Hercules-10'(8 Proyectos) haciendo clic secundario sobre él y limpiar solución.
Spoiler for Hidden:



•Una vez cargado el procedimiento realizaremos lo mismo, pero ahora seleccionaremos 'Generar Solución' o podemos hacer uso de F7
Spoiler for Hidden:



• Cuando finalize el procedimiento ahora buscaremos un archivo llamado 'run-server' si todo a quedado configurado correctamente se visualizará algo similar a esto.
Spoiler for Hidden:



• Con ello tendremos nuestro emulador Hércules ya creado.