Hércules Servidor
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.
Xampp Control Panel• Instalaremos Xampp en nuesto ordenador, para ello ejecutaremos el .exe y seguiremos con el proceso de la instalación.
• Ahora configuraremos nuestro Xampp, para ello ejecutaremos el control panel e iniciaremos el proceso mySQL y Apache.
Microsoft Visual Studio
Administrador de Base de Datos ○ HeidiSQL
○ 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:
○ Ahora ingresaremos la dirección
http://localhost/xampp/ para configurar nuesto acceso:
○ Seleccionaremos la opción de
'Seguridad' para ingresar nuestra contraseña para usuario root.
○ 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.
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.
○ Ejecutaremos el HeidiSQL y procederemos a crear una base de datos para el servidor.
○ Daremos clic secundario sobre nuestro nombre de usuario y crearemos una base de datos.
○ En esta guía crearemos dos bases de datos distintas, una para los registros normales y otra para logs (hercules_db y hercules_log)
○ 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'
○ 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.
•
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.
○ 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.
○ 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-serverSpoiler for Hidden:
// 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-serverSpoiler for Hidden:
//--------------------------------------------------------------
// 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:
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.
• Ahora cambiaremos la configuración a
'release'• Posterior a ello seleccionaremos
Solución 'Hercules-10'(8 Proyectos) haciendo clic secundario sobre él y limpiar solución.
•Una vez cargado el procedimiento realizaremos lo mismo, pero ahora seleccionaremos '
Generar Solución' o podemos hacer uso de F7
• Cuando finalize el procedimiento ahora buscaremos un archivo llamado '
run-server' si todo a quedado configurado correctamente se visualizará algo similar a esto.
• Con ello tendremos nuestro emulador Hércules ya creado.