<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.herc.ws/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.herc.ws/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dastgirpojee</id>
		<title>Hercules Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.herc.ws/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dastgirpojee"/>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Special:Contributions/Dastgirpojee"/>
		<updated>2026-05-01T09:17:09Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21.11</generator>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-10T18:53:06Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Reverted edits by Gmclerk (talk) to last revision by Dastgirpojee&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:17:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1140 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1139 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd /home/juke/Hercules/sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1138 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd /home/juke/Hercules/sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1137 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd /home/juke/Hercules/sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Reverted edits by Dastgirpojee (talk) to last revision by Gmclerk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd /home/juke/Hercules/sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1137 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:12:53Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1138 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:12:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1139 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2016-06-08T13:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Undo revision 1140 by Gmclerk (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd juke&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE juke_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'juke'@'localhost' IDENTIFIED BY 'Masgercey123';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `juke\_rag`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `juke\_log`.* TO 'juke'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodblog &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)&lt;br /&gt;
#: (pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (common to renewal and pre-renewal)&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercuser_rodb &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data&lt;br /&gt;
#char-server: everything else&lt;br /&gt;
Note that the sql_updates table is needed by all three servers.&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd Hercules&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC</id>
		<title>Building HPM Plugin for MSVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC"/>
				<updated>2015-12-04T09:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Reverted edits by Dastgirpojee (talk) to last revision by Annieruru&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide on how to prepare your MSVC environment for a new [[HPM]] plugin.&lt;br /&gt;
= Guide =&lt;br /&gt;
1. Go to '''src/plugins/''' folder, create a new '''.c''' file, e.g. '''dance.c''' (this name will be used throughout this guide)&lt;br /&gt;
[[File:step1.JPG|center|750px]]&lt;br /&gt;
2. Open dance.c and paste this code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;quot;../common/HPMi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/script.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/pc.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;../common/HPMDataCheck.h&amp;quot;    //Should always be the last include file.&lt;br /&gt;
&lt;br /&gt;
HPExport struct hplugin_info pinfo =&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;@dance&amp;quot;,		// Plugin name&lt;br /&gt;
    SERVER_TYPE_MAP,// Which server types this plugin works with?&lt;br /&gt;
    &amp;quot;0.1a&amp;quot;,			// Plugin version&lt;br /&gt;
    HPM_VERSION,	// HPM Version (don't change, macro is automatically updated)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ACMD(dance)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      if (!message || !*message) {&lt;br /&gt;
		  clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;);&lt;br /&gt;
return -1;&lt;br /&gt;
   }&lt;br /&gt;
   if ( atoi(message) == 1 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 413, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 2 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 414, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 3 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 415, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 4 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 426, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 5 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 458, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 6 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 466, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 7 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 501, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 8 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 540, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 9 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 550, ALL_CLIENT);&lt;br /&gt;
   }&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;); &lt;br /&gt;
	}&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Server Startup */&lt;br /&gt;
HPExport void plugin_init (void)&lt;br /&gt;
{&lt;br /&gt;
    clif = GET_SYMBOL(&amp;quot;clif&amp;quot;);&lt;br /&gt;
    script = GET_SYMBOL(&amp;quot;script&amp;quot;);&lt;br /&gt;
    skill = GET_SYMBOL(&amp;quot;skill&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    addAtcommand(&amp;quot;dance&amp;quot;,dance);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Open your MSVC project (e.g. '''Hercules-10.sln'')&lt;br /&gt;
[[File:step2.JPG|center|750px]]&lt;br /&gt;
4. Go to the '''Solution Explorer'''&lt;br /&gt;
[[File:step3.JPG|center|750px]]&lt;br /&gt;
5. Right click the Hercules project (first item in '''Solution Explorer'''), and click '''Add-&amp;gt;New Project'''&lt;br /&gt;
[[File:step4.JPG|center|750px]]&lt;br /&gt;
6. Select '''General''', and pick '''Empty Project'''.&lt;br /&gt;
[[File:step5.JPG|center|750px]]&lt;br /&gt;
7. Enter the name of your plugin in the '''Name''' field, and click OK.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. In the solution explorer it'll display the new project.&lt;br /&gt;
[[File:step6.JPG|center|750px]]&lt;br /&gt;
9. Right click the new project, and open '''Add-&amp;gt;Existing Item'''&lt;br /&gt;
[[File:step7.JPG|center|750px]]&lt;br /&gt;
10. Browse to '''src/plugins/''' and select the '''dance.c''' file, and hit OK.&lt;br /&gt;
[[File:step8.JPG|center|750px]]&lt;br /&gt;
11. It will place the '''dance.c''' file under the '''Source Files''' folder, drag it to the project you created and drop it (in a manner it be placed out of the source files folder.)&lt;br /&gt;
[[File:step9.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step10.JPG|center|750px]]&lt;br /&gt;
12. With the '''dance.c''' out of the folders, delete the 3 of them (select the 3, hit delete, hit ok)&lt;br /&gt;
[[File:step11.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step12.JPG|center|750px]]&lt;br /&gt;
13. Right click the project you created, open '''Properties'''&lt;br /&gt;
[[File:step13.JPG|center|750px]]&lt;br /&gt;
14. Under '''Configuration Properties''' click '''General''', change '''Output Directory''' to '''..\plugins\''', '''Intermediate Directory''' to '''$(ProjectName)\$(ConfigurationName)\''' and  '''Configuration Type''' to '''Dynamic Library (.dll)'''&lt;br /&gt;
[[File:step14.JPG|center|750px]]&lt;br /&gt;
15. Under '''Configuration Properties''' click '''C/C++''' and open '''General''', change '''Additional Include Directories''' to '''..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)'''&lt;br /&gt;
[[File:step15.JPG|center|750px]]&lt;br /&gt;
16. Under '''Configuration Properties''' click '''Linker''' and open '''General''', change '''Output File''' to '''$(OutDir)\$(ProjectName).dll'''&lt;br /&gt;
[[File:step16.JPG|center|750px]]&lt;br /&gt;
17. Under '''Configuration Properties''' click '''C/C++''' and open '''Preprocessor''', change '''Preprocessor Definitions''' to '''_WINDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)'''&lt;br /&gt;
[[File:step17.jpg|center|750px]]&lt;br /&gt;
18. Add your code to the '''dance.c''' file, and then right-click the project you created, and select '''Build'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
19. Add it to ''' /conf/plugins.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugins_list: [&lt;br /&gt;
	/* Enable HPMHooking when plugins in use rely on Hooking */&lt;br /&gt;
	//&amp;quot;HPMHooking&amp;quot;,&lt;br /&gt;
	//&amp;quot;db2sql&amp;quot;,&lt;br /&gt;
	//&amp;quot;sample&amp;quot;,&lt;br /&gt;
	//&amp;quot;other&amp;quot;,&lt;br /&gt;
	&amp;quot;dance&amp;quot;, // loads dance plugin&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
* This guide is probably the worst I've ever written, if you can do better please hit the 'Edit' button, will be most welcome. - Ind&lt;br /&gt;
* I used MSVC 2008 when testing this guide.&lt;br /&gt;
&lt;br /&gt;
= New Note =&lt;br /&gt;
* Sorry for editing this page, I added step by step images for other people to follow so they can easily follow one of the best feature Hercules have, the HPM. - Thanna&lt;br /&gt;
* The tutorial is tested on MSVC 2010.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC</id>
		<title>Building HPM Plugin for MSVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC"/>
				<updated>2015-12-04T09:49:18Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Reverted edits by Annieruru (talk) to last revision by Jolteo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide on how to prepare your MSVC environment for a new [[HPM]] plugin.&lt;br /&gt;
= Guide =&lt;br /&gt;
1. Go to '''src/plugins/''' folder, create a new '''.c''' file, e.g. '''dance.c''' (this name will be used throughout this guide)&lt;br /&gt;
[[File:step1.JPG|center|750px]]&lt;br /&gt;
2. Open dance.c and paste this code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;quot;../common/HPMi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/script.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/pc.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;../common/HPMDataCheck.h&amp;quot;    //Should always be the last include file.&lt;br /&gt;
&lt;br /&gt;
HPExport struct hplugin_info pinfo =&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;@dance&amp;quot;,		// Plugin name&lt;br /&gt;
    SERVER_TYPE_MAP,// Which server types this plugin works with?&lt;br /&gt;
    &amp;quot;0.1a&amp;quot;,			// Plugin version&lt;br /&gt;
    HPM_VERSION,	// HPM Version (don't change, macro is automatically updated)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ACMD(dance)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      if (!message || !*message) {&lt;br /&gt;
		  clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;);&lt;br /&gt;
return -1;&lt;br /&gt;
   }&lt;br /&gt;
   if ( atoi(message) == 1 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 413, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 2 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 414, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 3 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 415, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 4 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 426, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 5 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 458, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 6 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 466, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 7 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 501, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 8 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 540, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 9 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 550, ALL_CLIENT);&lt;br /&gt;
   }&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;); &lt;br /&gt;
	}&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Server Startup */&lt;br /&gt;
HPExport void plugin_init (void)&lt;br /&gt;
{&lt;br /&gt;
    clif = GET_SYMBOL(&amp;quot;clif&amp;quot;);&lt;br /&gt;
    script = GET_SYMBOL(&amp;quot;script&amp;quot;);&lt;br /&gt;
    skill = GET_SYMBOL(&amp;quot;skill&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    addAtcommand(&amp;quot;dance&amp;quot;,dance);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Open your MSVC project (e.g. '''Hercules-10.sln'')&lt;br /&gt;
[[File:step2.JPG|center|750px]]&lt;br /&gt;
4. Go to the '''Solution Explorer'''&lt;br /&gt;
[[File:step3.JPG|center|750px]]&lt;br /&gt;
5. Right click the Hercules project (first item in '''Solution Explorer'''), and click '''Add-&amp;gt;New Project'''&lt;br /&gt;
[[File:step4.JPG|center|750px]]&lt;br /&gt;
6. Select '''General''', and pick '''Empty Project'''.&lt;br /&gt;
[[File:step5.JPG|center|750px]]&lt;br /&gt;
7. Enter the name of your plugin in the '''Name''' field, and click OK.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. In the solution explorer it'll display the new project.&lt;br /&gt;
[[File:step6.JPG|center|750px]]&lt;br /&gt;
9. Right click the new project, and open '''Add-&amp;gt;Existing Item'''&lt;br /&gt;
[[File:step7.JPG|center|750px]]&lt;br /&gt;
10. Browse to '''src/plugins/''' and select the '''dance.c''' file, and hit OK.&lt;br /&gt;
[[File:step8.JPG|center|750px]]&lt;br /&gt;
11. It will place the '''dance.c''' file under the '''Source Files''' folder, drag it to the project you created and drop it (in a manner it be placed out of the source files folder.)&lt;br /&gt;
[[File:step9.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step10.JPG|center|750px]]&lt;br /&gt;
12. With the '''dance.c''' out of the folders, delete the 3 of them (select the 3, hit delete, hit ok)&lt;br /&gt;
[[File:step11.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step12.JPG|center|750px]]&lt;br /&gt;
13. Right click the project you created, open '''Properties'''&lt;br /&gt;
[[File:step13.JPG|center|750px]]&lt;br /&gt;
14. Under '''Configuration Properties''' click '''General''', change '''Output Directory''' to '''..\plugins\''', '''Intermediate Directory''' to '''$(ProjectName)\$(ConfigurationName)\''' and  '''Configuration Type''' to '''Dynamic Library (.dll)'''&lt;br /&gt;
[[File:step14.JPG|center|750px]]&lt;br /&gt;
15. Under '''Configuration Properties''' click '''C/C++''' and open '''General''', change '''Additional Include Directories''' to '''..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)'''&lt;br /&gt;
[[File:step15.JPG|center|750px]]&lt;br /&gt;
16. Under '''Configuration Properties''' click '''Linker''' and open '''General''', change '''Output File''' to '''$(OutDir)\PluginName.dll''' (TargetName is the name of the project)&lt;br /&gt;
[[File:step16.JPG|center|750px]]&lt;br /&gt;
17. Add your code to the '''dance.c''' file, and then right-click the project you created, and select '''Build'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
18. Add it to ''' /conf/plugins.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugins_list: [&lt;br /&gt;
	/* Enable HPMHooking when plugins in use rely on Hooking */&lt;br /&gt;
	//&amp;quot;HPMHooking&amp;quot;,&lt;br /&gt;
	//&amp;quot;db2sql&amp;quot;,&lt;br /&gt;
	//&amp;quot;sample&amp;quot;,&lt;br /&gt;
	//&amp;quot;other&amp;quot;,&lt;br /&gt;
	&amp;quot;dance&amp;quot;, // loads dance plugin&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
* This guide is probably the worst I've ever written, if you can do better please hit the 'Edit' button, will be most welcome. - Ind&lt;br /&gt;
* I used MSVC 2008 when testing this guide.&lt;br /&gt;
&lt;br /&gt;
= New Note =&lt;br /&gt;
* Sorry for editing this page, I added step by step images for other people to follow so they can easily follow one of the best feature Hercules have, the HPM. - Thanna&lt;br /&gt;
* The tutorial is tested on MSVC 2010.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Custom_Mobs</id>
		<title>Custom Mobs</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Custom_Mobs"/>
				<updated>2015-11-05T14:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Database Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Intro =&lt;br /&gt;
You can have up to 10,000 mob IDs. This guide was written without testing on Git; use at your own discretion.&lt;br /&gt;
Well, its pretty easy if you do it correctly and go step by step without rushing.&lt;br /&gt;
&lt;br /&gt;
= Gettings Started =&lt;br /&gt;
== Database Structure ==&lt;br /&gt;
Let's take a look at the structure of the entries in mob_db.conf:&lt;br /&gt;
&lt;br /&gt;
Note: If you're adding custom mobs, it's better to add them to mob_db2.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	// =================== Mandatory fields ===============================&lt;br /&gt;
	Id: ID                                (int)&lt;br /&gt;
	SpriteName: &amp;quot;SPRITE_NAME&amp;quot;             (string)&lt;br /&gt;
	Name: &amp;quot;Mob name&amp;quot;                      (string)&lt;br /&gt;
	// =================== Optional fields ================================&lt;br /&gt;
	Lv: level                             (int, defaults to 1)&lt;br /&gt;
	Hp: health                            (int, defaults to 1)&lt;br /&gt;
	Sp: mana                              (int, defaults to 0)&lt;br /&gt;
	Exp: basic experience                 (int, defaults to 0)&lt;br /&gt;
	JExp: job experience                  (int, defaults to 0)&lt;br /&gt;
	AttackRange: attack range             (int, defaults to 1)&lt;br /&gt;
	Attack: [attack1, attack2]            (int, defaults to 0)&lt;br /&gt;
	Def: defence                          (int, defaults to 0)&lt;br /&gt;
	Mdef: magic defence                   (int, defaults to 0)&lt;br /&gt;
	Stats: {&lt;br /&gt;
		Str: strength                 (int, defaults to 0)&lt;br /&gt;
		Agi: agility                  (int, defaults to 0)&lt;br /&gt;
		Vit: vitality                 (int, defaults to 0)&lt;br /&gt;
		Int: intelligence             (int, defaults to 0)&lt;br /&gt;
		Dex: dexterity                (int, defaults to 0)&lt;br /&gt;
		Luk: luck                     (int, defaults to 0)&lt;br /&gt;
	}&lt;br /&gt;
	ViewRange: view range                 (int, defaults to 1)&lt;br /&gt;
	ChaseRange: chase range               (int, defaults to 1)&lt;br /&gt;
	Size: size                            (int, defaults to 1)&lt;br /&gt;
	Race: race                            (int, defaults to 0)&lt;br /&gt;
	Element: (type, level)&lt;br /&gt;
	Mode: {&lt;br /&gt;
		CanMove: true/false           (bool)&lt;br /&gt;
		Looter: true/false            (bool)&lt;br /&gt;
		Aggressive: true/false        (bool)&lt;br /&gt;
		Assist: true/false            (bool)&lt;br /&gt;
		CastSensorIdle:true/false     (bool)&lt;br /&gt;
		Boss: true/false              (bool)&lt;br /&gt;
		Plant: true/false             (bool)&lt;br /&gt;
		CanAttack: true/false         (bool)&lt;br /&gt;
		Detector: true/false          (bool)&lt;br /&gt;
		CastSensorChase: true/false   (bool)&lt;br /&gt;
		ChangeChase: true/false       (bool)&lt;br /&gt;
		Angry: true/false             (bool)&lt;br /&gt;
		ChangeTargetMelee: true/false (bool)&lt;br /&gt;
		ChangeTargetChase: true/false (bool)&lt;br /&gt;
		TargetWeak: true/false        (bool)&lt;br /&gt;
	}&lt;br /&gt;
	MoveSpeed: move speed                 (int, defaults to 0)&lt;br /&gt;
	AttackDelay: attack delay             (int, defaults to 4000)&lt;br /&gt;
	AttackMotion: attack motion           (int, defaults to 2000)&lt;br /&gt;
	DamageMotion: damage motion           (int, defaults to 0)&lt;br /&gt;
	MvpExp: mvp experience                (int, defaults to 0)&lt;br /&gt;
	MvpDrops: {&lt;br /&gt;
		AegisName: chance             (string: int)&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
	Drops: {&lt;br /&gt;
		AegisName: chance         (string: int)&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fields !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Id&amp;lt;/u&amp;gt;''' || ID of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;SpriteName&amp;lt;/u&amp;gt;''' || This first name is the DB name. When you use @spawn/@summon and you know the name of the mob, but not the ID, type this name instead. Try making the normal name the same as this so you wont get confused.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Name&amp;lt;/u&amp;gt;''' || This is the name the server shows.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Lv&amp;lt;/u&amp;gt;''' || Level of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Hp&amp;lt;/u&amp;gt;''' || HP of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Sp&amp;lt;/u&amp;gt;''' || SP of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Exp&amp;lt;/u&amp;gt;''' || Exp granted by the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;JExp&amp;lt;/u&amp;gt;''' || Job exp granted by the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;AttackRange&amp;lt;/u&amp;gt;''' || Range of the mob attack. If set to 1 or 2, it will melee. 3 or more than 3 will set it to ranged&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Attack1&amp;lt;/u&amp;gt;''' ||  Affects ATK of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Attack2&amp;lt;/u&amp;gt;''' || Affects MATK of the mob&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Def&amp;lt;/u&amp;gt;''' || Defense of the mob (Tip: 100 def = Invulnerability below 8K attack. Watch out, only melee/ranged attacks, but generally direct hits attacks are drastically reduced. Setting this high enough may make monks pretty cheap to level because of of Psychic Wave/Occult Impact/Investigate.)&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;MDef&amp;lt;/u&amp;gt;''' || Magic Defense of the mob (Hint: 100 mdef = golden thief bug effect below 9K magic attack. It's for all magic-using skills.)&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Stats&amp;lt;/u&amp;gt;''' || All Stats of mobs belongs to this block.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Stats !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Str&amp;lt;/u&amp;gt;''' || Strength of the mob. This also affects its ATK.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Agi&amp;lt;/u&amp;gt;''' || Agility of the mob. This also affects the mob flee rate.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Vit&amp;lt;/u&amp;gt;''' || Vitality of the mob. This affects the duration of stun status.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Int&amp;lt;/u&amp;gt;''' || Intelligence of the mob. This also affects its MATK.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Dex&amp;lt;/u&amp;gt;''' || Dexterity of the mob. This also affects the mob hit rate.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Luk&amp;lt;/u&amp;gt;''' || Luck of the mob. This also defines the mob perfect dodge/lucky flee/perfect flee/lucky dodge rate.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;ViewRange&amp;lt;/u&amp;gt;''' || Maximum Skill Range&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;ChaseRange&amp;lt;/u&amp;gt;''' || Sight limit for mobs. If set to 1000 or beyond, mobs will follow you all over the map.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Size&amp;lt;/u&amp;gt;''' || 0 if its Small, 1 if its Medium, 2 if its Large&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Race&amp;lt;/u&amp;gt;''' || 0=formless, 1=undead, 2=animal, 3=plant, 4=insect, 5=fish, 6=demon, 7=demihuman, 8=angel, 9=dragon.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Element&amp;lt;/u&amp;gt;''' || This is a two-digit number representing the rank (level) and element of the mob.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Element(Type)&amp;lt;/u&amp;gt;''' || Element Type of mob as mentioned below.&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
 |&lt;br /&gt;
 |Neutral&lt;br /&gt;
 |Water&lt;br /&gt;
 |Earth&lt;br /&gt;
 |Fire&lt;br /&gt;
 |Wind&lt;br /&gt;
 |Poison&lt;br /&gt;
 |Holy&lt;br /&gt;
 |Shadow&lt;br /&gt;
 |Ghost&lt;br /&gt;
 |Undead&lt;br /&gt;
 |-&lt;br /&gt;
 | Type&lt;br /&gt;
 |0&lt;br /&gt;
 |1&lt;br /&gt;
 |2&lt;br /&gt;
 |3&lt;br /&gt;
 |4&lt;br /&gt;
 |5&lt;br /&gt;
 |6&lt;br /&gt;
 |7&lt;br /&gt;
 |8&lt;br /&gt;
 |9&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Element(Level)&amp;lt;/u&amp;gt;''' || Element level of mob from (1-4).&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Mode&amp;lt;/u&amp;gt;''' || This defines the mob behaves.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;MoveSpeed&amp;lt;/u&amp;gt;''' || Walking speed of the mob. 1 is the fastest, 1000 is the lowest. 100 is the normal walking speed.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;AttackDelay&amp;lt;/u&amp;gt;''' || ADelay= Attack Delay, also known as ASPD. This one will change the aspd of the mob. The lower the faster, but don't make it too low or it will lag when mobbed by several of these.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;AttackMotion&amp;lt;/u&amp;gt;''' || Attack animation motion. Lower this value and the mob's attack will be displayed in higher fps (making it shorter, too) (Thanks to Wallex for this)&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;DamageMotion&amp;lt;/u&amp;gt;''' || Damage animation motion, same as aMotion but used to display the &amp;quot;I am hit&amp;quot; animation. Coincidentally, this same value is used to determine how long it is before the mob/player can move again. Endure is dMotion = 0, obviously.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;MvpExp&amp;lt;/u&amp;gt;''' || The MVP exp the mob gives when it is defeated (to the player who got the MVP reward) (This exp is a percentage of the exp the monster gives.)&lt;br /&gt;
|-&lt;br /&gt;
The following fields are for drops and drop rates. Remember that these are in percentages; i.e. 100 = 100%&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;MvpDrops&amp;lt;/u&amp;gt;''' || The MvP Drops goes here, format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;AegisName: Chance&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;Poring_Card: 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;u&amp;gt;Drops&amp;lt;/u&amp;gt;''' || The Normal Drops goes here, format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;AegisName: Chance&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;Poring_Card: 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Making it visible ==&lt;br /&gt;
=== Server Side ===&lt;br /&gt;
If you've got a sprite and you're happy with it, then you can skip this part. If you would like to make your mob look like another mob, or even a player, then you need to take a look at {{git|db/mob_avail.txt|full}}&lt;br /&gt;
&lt;br /&gt;
For normal mobs, you can use the data that's already in the file as an example to work on:&lt;br /&gt;
 // mob_id,sprite_id,equip #&lt;br /&gt;
 // iRO Halloween Event 2008&lt;br /&gt;
 //3000,1015,0&lt;br /&gt;
 //3001,1036,0&lt;br /&gt;
 //3002,1298,0&lt;br /&gt;
 &lt;br /&gt;
 // iRO Halloween Event 2009&lt;br /&gt;
 //3014,1179,0&lt;br /&gt;
 //3015,1272,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, if you would like to make your mob look like a character, you need to add more options:&amp;lt;br /&amp;gt;&lt;br /&gt;
// Valaris&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| MobID || SpriteID || Sex || Hair || Hair_Color || Weapon || Shield || Head_Top || Head_Middle || Head_Bottom || Option || Dye_Color&lt;br /&gt;
|-&lt;br /&gt;
| 1900, || 4013, || 1, || 1, || 1, || 1254, || 0, || 67, || 12, || 54, || 16, || 1&lt;br /&gt;
|}&lt;br /&gt;
You will need to use the Item ID for your mob's weapon and shield instead of the View ID of the item. Doing so may have undesirable effects.&lt;br /&gt;
&lt;br /&gt;
A more in-depth look at each value:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;MobID&amp;lt;/u&amp;gt;''': This is your mob ID.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;SpriteID&amp;lt;/u&amp;gt;''': The Job number you want it to look like. They are:&lt;br /&gt;
&amp;lt;pre&amp;gt;Job_Novice 0&lt;br /&gt;
Job_Swordman 1&lt;br /&gt;
Job_Mage 2&lt;br /&gt;
Job_Archer 3&lt;br /&gt;
Job_Acolyte 4&lt;br /&gt;
Job_Merchant 5&lt;br /&gt;
Job_Thief 6&lt;br /&gt;
Job_Knight 7&lt;br /&gt;
Job_Priest 8&lt;br /&gt;
Job_Wizard 9&lt;br /&gt;
Job_Blacksmith 10&lt;br /&gt;
etc&amp;lt;/pre&amp;gt;&lt;br /&gt;
They can also be found on {{git|db/const.txt}} file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Sex&amp;lt;/u&amp;gt;''': 0 for female, 1 for male&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Hair&amp;lt;/u&amp;gt;''': The mob hair style, goes from 1 to 23&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Hair_Color&amp;lt;/u&amp;gt;''': The mob hair color. Goes from 0 to 8 or 10, but it depends on the server's palette files.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Weapon&amp;lt;/u&amp;gt;''':The ID of the Weapon you want. See [[Custom_weapons|Custom Weapons]] for it. Also read at the end of the pre if you cant find the headgear you want. &lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Shield&amp;lt;/u&amp;gt;''': Same as above&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Head_Top&amp;lt;/u&amp;gt;''': Same as above&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Head_Middle&amp;lt;/u&amp;gt;''': Same as above&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Head_Bottom&amp;lt;/u&amp;gt;''': Same as above&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Option&amp;lt;/u&amp;gt;''': this option parameter will make the mob change its status, as well as give them carts, pecopecos, and falcons. In other words, this will change the visual effects of your mobs. The options are these*:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1 Sight             32 Peco Peco riding   2048 Orc Head&lt;br /&gt;
 2 Hide              64 GM Perfect Hide    4096 Wedding Sprites&lt;br /&gt;
 4 Cloak            128 Level 2 Cart       8192 Ruwach&lt;br /&gt;
 8 Level 1 Cart     256 Level 3 Cart&lt;br /&gt;
16 Falcon           512 Level 4 Cart&lt;br /&gt;
                   1024 Level 5 Cart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;Dye_Color&amp;lt;/u&amp;gt;''': Same as hair color. It goes from 0 to 77&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Side ===&lt;br /&gt;
For your mob to exist in the client, you need to add it to a few [[Lua]] files.&lt;br /&gt;
==== datainfo/npcidentity.lua ====&lt;br /&gt;
Example at the end of the file:&amp;lt;br /&amp;gt;&lt;br /&gt;
 	[&amp;quot;JT_4_F_TAEKWON&amp;quot;] = 644,&lt;br /&gt;
 	[&amp;quot;JT_4_F_SWORDMAN&amp;quot;] = 645,&lt;br /&gt;
 	-- Custom Mobs&lt;br /&gt;
 	[&amp;quot;JT_JACOB&amp;quot;] = 2500,&lt;br /&gt;
 	[&amp;quot;JT_AQUARING&amp;quot;] = 2600&lt;br /&gt;
 }&lt;br /&gt;
The number after the = sign denotes the mob's database ID number. Other sprites in this file have their view ID e.g. [[Adding_a_Script#Client_Side|NPC sprite number]].&lt;br /&gt;
&lt;br /&gt;
==== datainfo/jobname.lua ====&lt;br /&gt;
Example at the end of the file:&amp;lt;br /&amp;gt;&lt;br /&gt;
 	[jobtbl.JT_GIBBET] = &amp;quot;GIBBET&amp;quot;,&lt;br /&gt;
 	[jobtbl.JT_DULLAHAN] = &amp;quot;DULLAHAN&amp;quot;,&lt;br /&gt;
 	[jobtbl.JT_LOLI_RURI] = &amp;quot;LOLI_RURI&amp;quot;,&lt;br /&gt;
 	[jobtbl.JT_DISGUISE] = &amp;quot;DISGUISE&amp;quot;,&lt;br /&gt;
 	-- Custom Mobs&lt;br /&gt;
 	[jobtbl.JT_JACOB] = &amp;quot;jacobmob&amp;quot;,&lt;br /&gt;
 	[jobtbl.JT_AQUARING] = &amp;quot;aquaring&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
In this file, the value after the = sign is the name of the actual sprite in your data folder/[[GRF]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Your mob in other files ==&lt;br /&gt;
=== Dead Branch ===&lt;br /&gt;
Adding your mob to {{git|db/pre-re/mob_branch.txt}} or {{git|db/re/mob_branch.txt}} will allow Dead Branches to summon it.&lt;br /&gt;
&lt;br /&gt;
=== Bloody Branch ===&lt;br /&gt;
Adding your mob to {{git|db/pre-re/mob_boss.txt}} or {{git|db/re/mob_boss.txt}} will allow Bloody Branches to summon it.&lt;br /&gt;
&lt;br /&gt;
=== Poring Box ===&lt;br /&gt;
Adding your mob to {{git|db/pre-re/mob_poring.txt}} or {{git|db/re/mob_poring.txt}} will make your mob spawnable via the Poring Box.&lt;br /&gt;
&lt;br /&gt;
=== Monster Racial Groups ===&lt;br /&gt;
Adding your mob to {{git|db/pre-re/mob_race2_db.txt}} or {{git|db/re/mob_race2_db.txt}} will add your mob to a [[Racial_Group|Racial Group]]. Guardians, Goblins and other mobs are members of particular Racial Groups.&lt;br /&gt;
&lt;br /&gt;
=== Red Pouch of Surprise ===&lt;br /&gt;
Adding your mob to {{git|db/mob_pouch.txt}} will make your mob spawnable via the Red Pouch of Surprise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spawn Points ==&lt;br /&gt;
Let's look at the syntax of a mob spawn point:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;map name&amp;gt;,&amp;lt;x1&amp;gt;,&amp;lt;y1&amp;gt;,&amp;lt;x2&amp;gt;,&amp;lt;y2&amp;gt;%TAB%monster%TAB%&amp;lt;monster name&amp;gt;%TAB%&amp;lt;mob id&amp;gt;,&amp;lt;amount&amp;gt;,&amp;lt;delay1&amp;gt;,&amp;lt;delay2&amp;gt;,&amp;lt;event&amp;gt;{,&amp;lt;mob size&amp;gt;,&amp;lt;mob ai&amp;gt;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only the things between &amp;lt;&amp;gt; are changed. Do not remove or change monster after the coordinates, because that's what tells the server that this line is a monster spawn script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;map name&amp;lt;/u&amp;gt;''': Name of the map. Use /where along with the following coordinates&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;x1&amp;lt;/u&amp;gt;''': X axis coordinates. It start from the left side of the map, and the higher it gets, the more it gets closer to the right side of the map.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;y1&amp;lt;/u&amp;gt;''': Y axis coordinates. It start from the bottom, and the higher it gets, the more it gets closer to the top of the map.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;x2&amp;lt;/u&amp;gt;''': X axis coordinates. It start from the left side of the map, and the higher it gets, the more it gets closer to the right side of the map.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;y2&amp;lt;/u&amp;gt;''': Y axis coordinates. It start from the bottom, and the higher it gets, the more it gets closer to the top of the map.&lt;br /&gt;
&amp;lt;br&amp;gt;These 4 coordinates will make a spawn area where the mob will spawn, however it won't limit its movement, so lets say you put 120,150 on the first pair, and 130,160 pair- That's a 10x10 cell area where the mob will spawn randomly.&lt;br /&gt;
&amp;lt;br&amp;gt;If you want the mob to spawn at a random point, use 0 for all the coordinates.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;monster name&amp;lt;/u&amp;gt;''': The name of the mob you want to be shown (using --ja-- in place of a name will display the &amp;quot;Japanese Name&amp;quot; from your database).&lt;br /&gt;
&amp;lt;br&amp;gt;You can specify a custom level to use for the mob different from the one of the database by adjoining the level after the name with a comma. eg: &amp;quot;Poring,50&amp;quot; for a name will spawn a monster with name Poring and level 50.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;mob id&amp;lt;/u&amp;gt;''': The ID of your mob.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;amount&amp;lt;/u&amp;gt;''': How many mobs you want to be spawned.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;delay1&amp;lt;/u&amp;gt;''': Minimum amount of time before a monster respawns.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;delay2&amp;lt;/u&amp;gt;''': Maximum amount of time before a monster respawns.&lt;br /&gt;
&amp;lt;br&amp;gt;delay1 and delay2 are used to define the time it takes for a monster to respawn; in milliseconds. Normal mobs usually have 0 (Instant Respawn), while MVPs have 7200000 (2 hours). If delay2 is greater than delay 1, the mob won't respawn until the map server restarts.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;event&amp;lt;/u&amp;gt;''': Script event to be executed when the mob is killed. The event must be in the form &amp;quot;NPCName::OnEventName&amp;quot; to execute, and the event name label should start with &amp;quot;On&amp;quot;. As with all events, if the NPC is an on-touch NPC, the player who triggers the script must be within 'trigger' range for the event to work.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;size&amp;lt;/u&amp;gt;''': Optional. Size can be 0 (medium), 1 (small), or 2 (big).&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;ai&amp;lt;/u&amp;gt;''': Optional. AI can be 0 (default), 1 (attack/friendly), 2 (sphere), 3 (flora), or 4 (zanzou).&lt;br /&gt;
&lt;br /&gt;
== Adding Skills ==&lt;br /&gt;
&lt;br /&gt;
Lets look at the syntax of a mob skill:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOB_ID, a unused dummy character sequence (for information only), STATE, SKILL_ID, SKILL_LV,&lt;br /&gt;
rate (10000 = 100%), casttime, delay, cancelable, a target, a condition type, a condition value,&lt;br /&gt;
a value 1, a value 2, a value 3, a value 4, a value 5, emotion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''''&lt;br /&gt;
NOTE: I had to cut the mob_avail structure so it could fit.&lt;br /&gt;
It's a whole line, not 3 lines.&lt;br /&gt;
'''''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;MOD_ID&amp;lt;/u&amp;gt;''': your mob ID.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;an unused.. etc etc&amp;lt;/u&amp;gt;''': you can put any text here you want, its just for information and to know what does this do.* tip tip*You will see inside this file things like Poring@TF_POISON. Well, you could use this too. It would tell you: mob_name@DB_Skill_Name. *tip tip*&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;state&amp;lt;/u&amp;gt;''': this is the state that the mob must accomplish before being able to use this skill. The states are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
any, idle (in standby), walk (in movement), attack, dead (on killed), loot, chase (following target),&lt;br /&gt;
counterattack.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;SKILL_ID&amp;lt;/u&amp;gt;''': The ID of the skill goes here. To look for one, go to your db folder and open the skill_db.txt file. You will see a lot of lines like this one:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2,0,0,0,0,0,10,0,no,0,0,0,weapon,0 //SM_SWORD#Œ•C—û#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the syntax is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id,range,hit,inf,pl,nk,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so, the ID of the SM_SWORD, which is the Swordman's Sword Mastery by the way, is 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;'''2''',0,0,0,0,0,10,0,no,0,0,0,weapon,0 //SM_SWORD#Œ•C—û#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;SKILL_LV&amp;lt;/u&amp;gt;''': You can put the skill level as high as you want. Though, 100 is usually as far as most skills go.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;rate&amp;lt;/u&amp;gt;''': How frequent will the mob use the skill.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;casttime&amp;lt;/u&amp;gt;''': Skill's cast time.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;delay&amp;lt;/u&amp;gt;''': How much time must pass before the skill can be used again, in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;cancelable&amp;lt;/u&amp;gt;''': if the skill cast can be interrupted. Set it either '''yes''' or '''no'''.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;a target&amp;lt;/u&amp;gt;''': the target of the skill. It can be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
target (player), self (the mob itself), friend (slaves)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;a condition type&amp;lt;/u&amp;gt;''':a condition that also must be fulfilled before the mob is able to use this skill. There are two kinds of conditions:&lt;br /&gt;
&lt;br /&gt;
1. Mob Condition:&lt;br /&gt;
&amp;lt;pre&amp;gt;//conditions: (condition type) (value which specifies a condition value)&lt;br /&gt;
// always            unconditional&lt;br /&gt;
// myhpltmaxrate     when the mob's hp drops to a certain %&lt;br /&gt;
// mystatuson        If the mob has any abnormalities in status (condition value),&lt;br /&gt;
// mystatusoff       If the mob has ended any abnormalities in status (condition value),&lt;br /&gt;
// friendhpltmaxrate when the mobs' friend's hp drops to a certain %&lt;br /&gt;
// friendstatuson    If the friend has any abnormalities in status (condition value),&lt;br /&gt;
// friendstatusoff   If the friend has ended any abnormalities in status (condition value),&lt;br /&gt;
// attackpcgt        Attack PC becomes more than the  number of specification&lt;br /&gt;
// attackpcge        Attack PC becomes equal or more than the number of specification.&lt;br /&gt;
// slavelt           when the number of slaves is lower than the original number of specification.&lt;br /&gt;
// slavele           when the number of slaves is lower or equal than the original number of specification.&lt;br /&gt;
// closedattacked    when melee attacked (close range attack)&lt;br /&gt;
// longrangeattacked when long ranged attacked (like bows and far range weapons)&lt;br /&gt;
// skillused         when a skill is used on the mob&lt;br /&gt;
// casttargeted      when a target is in cast range.&lt;br /&gt;
// rudeattacked      when a target is rude attacked&lt;br /&gt;
// hiding            when a target is hidden *not implemented yet*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Target Conditions&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// The character's state which can be specified to be a condition value&lt;br /&gt;
// by the statuson/statusoff system&lt;br /&gt;
//&lt;br /&gt;
// anybad      any type of state change&lt;br /&gt;
// stone       condition of being in stone state&lt;br /&gt;
// freeze      condition of being in frozen state&lt;br /&gt;
// stan        condition of being in stunned state&lt;br /&gt;
// sleep       condition of being in sleep state&lt;br /&gt;
// poison      condition of being in poisoned state&lt;br /&gt;
// curse       condition of being in cursed state&lt;br /&gt;
// silence     condition of being in silenced state&lt;br /&gt;
// confusion   condition of being in confusion state&lt;br /&gt;
// blind       condition of being in blind state&lt;br /&gt;
// hiding      condition of being in hidden state&lt;br /&gt;
// sight       condition of being in unhidden state&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use only ONE of these conditions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;value1,value2,value3,value4,value5&amp;lt;/u&amp;gt;''': Basically they're only the same but, when you want your mob using the same condition to trigger the skill, but in different times, in case of the myhpltmaxrate when the hp is being decreased, you can set them in a decreasing order, like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;80,60,40,20,10&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;emotion&amp;lt;/u&amp;gt;''': Lets your mob use an emotion, at random times. The emotion IDs are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e_gasp 0&lt;br /&gt;
e_what 1&lt;br /&gt;
e_ho 2&lt;br /&gt;
e_lv 3&lt;br /&gt;
e_swt 4&lt;br /&gt;
e_ic 5&lt;br /&gt;
etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more info, go to your {{git|db/const.txt}} file.&lt;br /&gt;
&lt;br /&gt;
== Making it talk! ==&lt;br /&gt;
Another add, suggested by chronocrosser_x and Fenrir Soarblade:&lt;br /&gt;
&lt;br /&gt;
Well, I believe you have seen some mobs on your server talking when certain things happens. I never saw them again talking, dont know why but they used to talk. I believe they still do it.&lt;br /&gt;
&lt;br /&gt;
Ok, go to your Data folder. If you look in the files, you should find a file called monstertalktable. If there isnt, we will create one with Wordpad =3!. If there is, open it with Wordpad, not Notepad.&lt;br /&gt;
&lt;br /&gt;
Once there, we will copy and paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;euc-kr&amp;quot; ?&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;enemy_monster_talk_table&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;mob_db_name_here&amp;gt; &lt;br /&gt;
  &amp;lt;discovery&amp;gt;&amp;lt;/discovery&amp;gt;&lt;br /&gt;
  &amp;lt;attack&amp;gt;&amp;lt;/attack&amp;gt;&lt;br /&gt;
  &amp;lt;hp50&amp;gt;&amp;lt;/hp50&amp;gt;&lt;br /&gt;
  &amp;lt;hp25&amp;gt;&amp;lt;/hp25&amp;gt;&lt;br /&gt;
  &amp;lt;kill&amp;gt;&amp;lt;/kill&amp;gt;&lt;br /&gt;
  &amp;lt;dead&amp;gt;&amp;lt;/dead&amp;gt;&lt;br /&gt;
&amp;lt;/mob_db_name_here&amp;gt; &lt;br /&gt;
&amp;lt;/enemy_monster_talk_table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Well, lets see step by step =3!:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;enemy_monster_talk_table&amp;gt;&amp;lt;/u&amp;gt;''': This is the start of the monster talk table. Leave it as it is =3!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;mob_db_name_here&amp;gt;&amp;lt;/u&amp;gt;''': The mob_db.txt first name you see, after the ID, goes here =3! Its used to identify the mob&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;discovery&amp;gt;%TAB%Text Here%TAB%&amp;lt;/discovery&amp;gt;&amp;lt;/u&amp;gt;''': This is an event, same as the one below. When a monster see you, this one will be displayed =3!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;attack&amp;gt;%TAB%Text Here%TAB%&amp;lt;/attack&amp;gt;&amp;lt;/u&amp;gt;''': When a monster attacks you, this one will be displayed O_O!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;hp50&amp;gt;%TAB%Text Here%TAB%&amp;lt;/hp50&amp;gt;&amp;lt;/u&amp;gt;''': When a monster's hp is at 50%, this one will be displayed o..o!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;hp25&amp;gt;%TAB%Text Here%TAB%&amp;lt;/hp25&amp;gt;&amp;lt;/u&amp;gt;''': When a monster's hp is at 25%, this one will be displayed x,x&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;kill&amp;gt;%TAB%Text Here%TAB%&amp;lt;/kill&amp;gt;&amp;lt;/u&amp;gt;''': When a monster kills a character/player, this one will be displayed T~T!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;dead&amp;gt;%TAB%Text Here%TAB%&amp;lt;/dead&amp;gt;&amp;lt;/u&amp;gt;''': When a monster dies by player hand, this one will be displayed ^__^!&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;/mob_db_name_here&amp;gt;&amp;lt;/u&amp;gt;''': The same name of the mob_db.txt, the one after the ID.&lt;br /&gt;
&amp;lt;br&amp;gt;'''&amp;lt;u&amp;gt;&amp;lt;/enemy_monster_talk_table&amp;gt;&amp;lt;/u&amp;gt;''': Keep it like this.&lt;br /&gt;
&lt;br /&gt;
I never messed with this, but i think its ok =3! Also for those spaces other than the messages spaces, use TAB, not the Space Bar for it ._.!&lt;br /&gt;
&lt;br /&gt;
[[Category:Database]]&lt;br /&gt;
[[Category:Data]]&lt;br /&gt;
[[Category:Customization]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC</id>
		<title>Building HPM Plugin for MSVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC"/>
				<updated>2015-10-02T08:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide on how to prepare your MSVC environment for a new [[HPM]] plugin.&lt;br /&gt;
= Guide =&lt;br /&gt;
1. Go to '''src/plugins/''' folder, create a new '''.c''' file, e.g. '''dance.c''' (this name will be used throughout this guide)&lt;br /&gt;
[[File:step1.JPG|center|750px]]&lt;br /&gt;
2. Open dance.c and paste this code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;quot;../common/HPMi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/script.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/pc.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;../common/HPMDataCheck.h&amp;quot;    //Should always be the last include file.&lt;br /&gt;
&lt;br /&gt;
HPExport struct hplugin_info pinfo =&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;@dance&amp;quot;,		// Plugin name&lt;br /&gt;
    SERVER_TYPE_MAP,// Which server types this plugin works with?&lt;br /&gt;
    &amp;quot;0.1a&amp;quot;,			// Plugin version&lt;br /&gt;
    HPM_VERSION,	// HPM Version (don't change, macro is automatically updated)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ACMD(dance)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      if (!message || !*message) {&lt;br /&gt;
		  clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;);&lt;br /&gt;
return -1;&lt;br /&gt;
   }&lt;br /&gt;
   if ( atoi(message) == 1 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 413, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 2 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 414, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 3 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 415, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 4 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 426, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 5 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 458, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 6 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 466, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 7 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 501, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 8 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 540, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 9 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 550, ALL_CLIENT);&lt;br /&gt;
   }&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;); &lt;br /&gt;
	}&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Server Startup */&lt;br /&gt;
HPExport void plugin_init (void)&lt;br /&gt;
{&lt;br /&gt;
    clif = GET_SYMBOL(&amp;quot;clif&amp;quot;);&lt;br /&gt;
    script = GET_SYMBOL(&amp;quot;script&amp;quot;);&lt;br /&gt;
    skill = GET_SYMBOL(&amp;quot;skill&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    addAtcommand(&amp;quot;dance&amp;quot;,dance);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Open your MSVC project (e.g. '''Hercules-10.sln'')&lt;br /&gt;
[[File:step2.JPG|center|750px]]&lt;br /&gt;
4. Go to the '''Solution Explorer'''&lt;br /&gt;
[[File:step3.JPG|center|750px]]&lt;br /&gt;
5. Right click the Hercules project (first item in '''Solution Explorer'''), and click '''Add-&amp;gt;New Project'''&lt;br /&gt;
[[File:step4.JPG|center|750px]]&lt;br /&gt;
6. Select '''General''', and pick '''Empty Project'''.&lt;br /&gt;
[[File:step5.JPG|center|750px]]&lt;br /&gt;
7. Enter the name of your plugin in the '''Name''' field, and click OK.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. In the solution explorer it'll display the new project.&lt;br /&gt;
[[File:step6.JPG|center|750px]]&lt;br /&gt;
9. Right click the new project, and open '''Add-&amp;gt;Existing Item'''&lt;br /&gt;
[[File:step7.JPG|center|750px]]&lt;br /&gt;
10. Browse to '''src/plugins/''' and select the '''dance.c''' file, and hit OK.&lt;br /&gt;
[[File:step8.JPG|center|750px]]&lt;br /&gt;
11. It will place the '''dance.c''' file under the '''Source Files''' folder, drag it to the project you created and drop it (in a manner it be placed out of the source files folder.)&lt;br /&gt;
[[File:step9.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step10.JPG|center|750px]]&lt;br /&gt;
12. With the '''dance.c''' out of the folders, delete the 3 of them (select the 3, hit delete, hit ok)&lt;br /&gt;
[[File:step11.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step12.JPG|center|750px]]&lt;br /&gt;
13. Right click the project you created, open '''Properties'''&lt;br /&gt;
[[File:step13.JPG|center|750px]]&lt;br /&gt;
14. Under '''Configuration Properties''' click '''General''', change '''Output Directory''' to '''..\plugins\''', '''Intermediate Directory''' to '''$(ProjectName)\$(ConfigurationName)\''' and  '''Configuration Type''' to '''Dynamic Library (.dll)'''&lt;br /&gt;
[[File:step14.JPG|center|750px]]&lt;br /&gt;
15. Under '''Configuration Properties''' click '''C/C++''' and open '''General''', change '''Additional Include Directories''' to '''..\src;..\3rdparty;..\3rdparty\msinttypes\include'''&lt;br /&gt;
[[File:step15.JPG|center|750px]]&lt;br /&gt;
16. Under '''Configuration Properties''' click '''Linker''' and open '''General''', change '''Output File''' to '''$(OutDir)\PluginName.dll''' (TargetName is the name of the project)&lt;br /&gt;
[[File:step16.JPG|center|750px]]&lt;br /&gt;
17. Add your code to the '''dance.c''' file, and then right-click the project you created, and select '''Build'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
18. Add it to ''' /conf/plugins.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugins_list: [&lt;br /&gt;
	/* Enable HPMHooking when plugins in use rely on Hooking */&lt;br /&gt;
	//&amp;quot;HPMHooking&amp;quot;,&lt;br /&gt;
	//&amp;quot;db2sql&amp;quot;,&lt;br /&gt;
	//&amp;quot;sample&amp;quot;,&lt;br /&gt;
	//&amp;quot;other&amp;quot;,&lt;br /&gt;
	&amp;quot;dance&amp;quot;, // loads dance plugin&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
* This guide is probably the worst I've ever written, if you can do better please hit the 'Edit' button, will be most welcome. - Ind&lt;br /&gt;
* I used MSVC 2008 when testing this guide.&lt;br /&gt;
&lt;br /&gt;
= New Note =&lt;br /&gt;
* Sorry for editing this page, I added step by step images for other people to follow so they can easily follow one of the best feature Hercules have, the HPM. - Thanna&lt;br /&gt;
* The tutorial is tested on MSVC 2010.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Hercules_Hierarchy</id>
		<title>Hercules Hierarchy</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Hercules_Hierarchy"/>
				<updated>2014-12-10T16:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* High Council */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Staff Titles =&lt;br /&gt;
Ordered alphabetically.&amp;lt;br/&amp;gt;All staff titles, regardless of their description, possesses full moderation powers.&lt;br /&gt;
&lt;br /&gt;
== Administrators ==&lt;br /&gt;
They administrate.&lt;br /&gt;
* [http://hercules.ws/board/user/307-haru/ Haru] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/1-ind/ Ind] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/43-mysterious/ Mysterious] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Community Administrator])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Core Developers ==&lt;br /&gt;
The kings of the code hill.&lt;br /&gt;
* [http://hercules.ws/board/user/20-malufett/ malufett]&lt;br /&gt;
* [http://hercules.ws/board/user/49-mkbu95/ mkbu95]&lt;br /&gt;
* [http://hercules.ws/board/user/4055-pan/ Pan]&lt;br /&gt;
* [http://hercules.ws/board/user/50-michieru/ Michieru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script Developers ==&lt;br /&gt;
Usually the members with the fastest key/second typing ratio.&lt;br /&gt;
* [http://hercules.ws/board/user/48-dastgir/ Dastgir]&lt;br /&gt;
* [http://hercules.ws/board/user/1664-kisuka/ Kisuka]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&lt;br /&gt;
&lt;br /&gt;
== Scripting Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/4102-annieruru/ AnnieRuru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Moderators ==&lt;br /&gt;
Global Moderators are individuals who moderate all of the forums excluding International Communities, however, may still moderate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderator ensure that all of the forums are cleaned by removing duplicate topics, ensuring posts/topics don't have spam, moving topics where need be, and locking topics.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderators also provide support to support topics, however, not to an extent as Support Leaders. This is not a position one can apply to, but be promoted to from other moderation position thanks to one's efforts and commitment to moderation.&lt;br /&gt;
* [http://hercules.ws/board/user/387-jabote/ jaBote]&lt;br /&gt;
* [http://hercules.ws/board/user/83-mumbles/ Mumbles]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Support Leaders ==&lt;br /&gt;
In charge of all the main supporting areas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graphics Moderators ==&lt;br /&gt;
In charge of all the main graphics areas.&lt;br /&gt;
* [http://hercules.ws/board/user/1460-uzieal/ Uzieal]&lt;br /&gt;
* [http://hercules.ws/board/user/11-olrox/ Orlox]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Int'l Moderators ==&lt;br /&gt;
International Moderators are individuals who moderate their respective International Community.&amp;lt;br/&amp;gt;&lt;br /&gt;
They are solely responsible in making sure their respective community is cleaned by moving, locking, removing, and cleaning topics of spams.&amp;lt;br/&amp;gt;&lt;br /&gt;
International Moderators don't have sole responsibility of other forums outside their community and they must provide support to individuals in their community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Filipino====&lt;br /&gt;
* [http://hercules.ws/board/user/1582-mhalicot/ Mhalicot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Portuguese====&lt;br /&gt;
* [http://hercules.ws/board/user/63-juliocf/ JulioCF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Spanish====&lt;br /&gt;
* [http://hercules.ws/board/user/125-m45t3r/ M45T3R]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== High Council ==&lt;br /&gt;
They're an upgrade from the [[#Community_Contributor | Community Contributor]] title.&lt;br /&gt;
* [http://hercules.ws/board/user/59-beret/ Beret]&lt;br /&gt;
* [http://hercules.ws/board/user/6674-csnv/ csnv]&lt;br /&gt;
* [http://hercules.ws/board/user/6-eiphes/ Eiphes]&lt;br /&gt;
* [http://hercules.ws/board/user/8-eurydice/ Eurydice]&lt;br /&gt;
* [http://hercules.ws/board/user/1160-gepard/ Gepard]&lt;br /&gt;
* [http://hercules.ws/board/user/88-kyeme/ kyeme]&lt;br /&gt;
* [http://hercules.ws/board/user/99-muad_dib/ Muad_Dib]&lt;br /&gt;
* [http://hercules.ws/board/user/456-rytech/ Rytech]&lt;br /&gt;
* [http://hercules.ws/board/user/409-yommy/ Yommy]&lt;br /&gt;
* [http://hercules.ws/board/user/67-xgear/ Xgear]&lt;br /&gt;
&lt;br /&gt;
= Former Staff Members =&lt;br /&gt;
Former staff members who've contributed throughout Hercules.&lt;br /&gt;
&lt;br /&gt;
== Former Administrators ==&lt;br /&gt;
* [http://hercules.ws/board/user/2-jman/ Jman]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Core Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/28-greenbox/ GreenBox] &lt;br /&gt;
* [http://hercules.ws/board/user/725-susu/ Susu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Script Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/756-joseph/ Joseph]&lt;br /&gt;
* [http://hercules.ws/board/user/5-kenpachi/ Kenpachi]&lt;br /&gt;
* [http://hercules.ws/board/user/23-martin/ Martin]&lt;br /&gt;
* [http://hercules.ws/board/user/757-masao/ Masao]&lt;br /&gt;
* [http://hercules.ws/board/user/7-nameless2you/ Nameless2you]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Scripting Moderators ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Global Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/10-judas/ Judas]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Support Leaders ==&lt;br /&gt;
* [http://hercules.ws/board/user/4-emistry/ Emistry]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Graphic Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/129-adel/ Adel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former International Moderators ==&lt;br /&gt;
==== Filipino ====&lt;br /&gt;
* [http://hercules.ws/board/user/25-jaypee/ JayPee]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Community Contributors =&lt;br /&gt;
This title is awarded to community members for their outstanding support of Hercules. For more information, [http://hercules.ws/board/topic/376-hercules-cc-program/ read the thread about it on the forum.]&lt;br /&gt;
* [http://hercules.ws/board/user/137-bgamez23/ bgamez23]&lt;br /&gt;
* [http://hercules.ws/board/user/1352-evilpuncker/ evilpuncker]&lt;br /&gt;
* [http://hercules.ws/board/user/5970-gmocean/ GmOcean]&lt;br /&gt;
* [http://hercules.ws/board/user/118-mleo1/ mleo1]&lt;br /&gt;
* [http://hercules.ws/board/user/315-neo/ Neo]&lt;br /&gt;
* [http://hercules.ws/board/user/87-ossi0110/ ossi0110]&lt;br /&gt;
* [http://hercules.ws/board/user/449-patskie/ Patskie]&lt;br /&gt;
* [http://hercules.ws/board/user/303-ryuuzaki/ Ryuuzaki]&lt;br /&gt;
* [http://hercules.ws/board/user/297-shakto/ Shakto]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hercules]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Hercules_Hierarchy</id>
		<title>Hercules Hierarchy</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Hercules_Hierarchy"/>
				<updated>2014-12-09T05:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Script Developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Staff Titles =&lt;br /&gt;
Ordered alphabetically.&amp;lt;br/&amp;gt;All staff titles, regardless of their description, possesses full moderation powers.&lt;br /&gt;
&lt;br /&gt;
== Administrators ==&lt;br /&gt;
They administrate.&lt;br /&gt;
* [http://hercules.ws/board/user/307-haru/ Haru] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/1-ind/ Ind] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/43-mysterious/ Mysterious] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Community Administrator])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Core Developers ==&lt;br /&gt;
The kings of the code hill.&lt;br /&gt;
* [http://hercules.ws/board/user/20-malufett/ malufett]&lt;br /&gt;
* [http://hercules.ws/board/user/49-mkbu95/ mkbu95]&lt;br /&gt;
* [http://hercules.ws/board/user/4055-pan/ Pan]&lt;br /&gt;
* [http://hercules.ws/board/user/50-michieru/ Michieru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script Developers ==&lt;br /&gt;
Usually the members with the fastest key/second typing ratio.&lt;br /&gt;
* [http://hercules.ws/board/user/48-dastgir/ Dastgir]&lt;br /&gt;
* [http://hercules.ws/board/user/1664-kisuka/ Kisuka]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&lt;br /&gt;
&lt;br /&gt;
== Scripting Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/4102-annieruru/ AnnieRuru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Moderators ==&lt;br /&gt;
Global Moderators are individuals who moderate all of the forums excluding International Communities, however, may still moderate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderator ensure that all of the forums are cleaned by removing duplicate topics, ensuring posts/topics don't have spam, moving topics where need be, and locking topics.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderators also provide support to support topics, however, not to an extent as Support Leaders. This is not a position one can apply to, but be promoted to from other moderation position thanks to one's efforts and commitment to moderation.&lt;br /&gt;
* [http://hercules.ws/board/user/387-jabote/ jaBote]&lt;br /&gt;
* [http://hercules.ws/board/user/83-mumbles/ Mumbles]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Support Leaders ==&lt;br /&gt;
In charge of all the main supporting areas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graphics Moderators ==&lt;br /&gt;
In charge of all the main graphics areas.&lt;br /&gt;
* [http://hercules.ws/board/user/1460-uzieal/ Uzieal]&lt;br /&gt;
* [http://hercules.ws/board/user/11-olrox/ Orlox]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Int'l Moderators ==&lt;br /&gt;
International Moderators are individuals who moderate their respective International Community.&amp;lt;br/&amp;gt;&lt;br /&gt;
They are solely responsible in making sure their respective community is cleaned by moving, locking, removing, and cleaning topics of spams.&amp;lt;br/&amp;gt;&lt;br /&gt;
International Moderators don't have sole responsibility of other forums outside their community and they must provide support to individuals in their community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Filipino====&lt;br /&gt;
* [http://hercules.ws/board/user/1582-mhalicot/ Mhalicot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Portuguese====&lt;br /&gt;
* [http://hercules.ws/board/user/63-juliocf/ JulioCF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Spanish====&lt;br /&gt;
* [http://hercules.ws/board/user/125-m45t3r/ M45T3R]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== High Council ==&lt;br /&gt;
They're an upgrade from the [[#Community_Contributor | Community Contributor]] title.&lt;br /&gt;
* [http://hercules.ws/board/user/59-beret/ Beret]&lt;br /&gt;
* [http://hercules.ws/board/user/6-eiphes/ Eiphes]&lt;br /&gt;
* [http://hercules.ws/board/user/8-eurydice/ Eurydice]&lt;br /&gt;
* [http://hercules.ws/board/user/1160-gepard/ Gepard]&lt;br /&gt;
* [http://hercules.ws/board/user/88-kyeme/ kyeme]&lt;br /&gt;
* [http://hercules.ws/board/user/99-muad_dib/ Muad_Dib]&lt;br /&gt;
* [http://hercules.ws/board/user/456-rytech/ Rytech]&lt;br /&gt;
* [http://hercules.ws/board/user/409-yommy/ Yommy]&lt;br /&gt;
* [http://hercules.ws/board/user/67-xgear/ Xgear]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Former Staff Members =&lt;br /&gt;
Former staff members who've contributed throughout Hercules.&lt;br /&gt;
&lt;br /&gt;
== Former Administrators ==&lt;br /&gt;
* [http://hercules.ws/board/user/2-jman/ Jman]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Core Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/28-greenbox/ GreenBox] &lt;br /&gt;
* [http://hercules.ws/board/user/725-susu/ Susu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Script Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/756-joseph/ Joseph]&lt;br /&gt;
* [http://hercules.ws/board/user/5-kenpachi/ Kenpachi]&lt;br /&gt;
* [http://hercules.ws/board/user/23-martin/ Martin]&lt;br /&gt;
* [http://hercules.ws/board/user/757-masao/ Masao]&lt;br /&gt;
* [http://hercules.ws/board/user/7-nameless2you/ Nameless2you]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Scripting Moderators ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Global Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/10-judas/ Judas]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Support Leaders ==&lt;br /&gt;
* [http://hercules.ws/board/user/4-emistry/ Emistry]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Graphic Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/129-adel/ Adel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former International Moderators ==&lt;br /&gt;
==== Filipino ====&lt;br /&gt;
* [http://hercules.ws/board/user/25-jaypee/ JayPee]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Community Contributors =&lt;br /&gt;
This title is awarded to community members for their outstanding support of Hercules. For more information, [http://hercules.ws/board/topic/376-hercules-cc-program/ read the thread about it on the forum.]&lt;br /&gt;
* [http://hercules.ws/board/user/137-bgamez23/ bgamez23]&lt;br /&gt;
* [http://hercules.ws/board/user/1352-evilpuncker/ evilpuncker]&lt;br /&gt;
* [http://hercules.ws/board/user/5970-gmocean/ GmOcean]&lt;br /&gt;
* [http://hercules.ws/board/user/118-mleo1/ mleo1]&lt;br /&gt;
* [http://hercules.ws/board/user/315-neo/ Neo]&lt;br /&gt;
* [http://hercules.ws/board/user/87-ossi0110/ ossi0110]&lt;br /&gt;
* [http://hercules.ws/board/user/449-patskie/ Patskie]&lt;br /&gt;
* [http://hercules.ws/board/user/303-ryuuzaki/ Ryuuzaki]&lt;br /&gt;
* [http://hercules.ws/board/user/297-shakto/ Shakto]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hercules]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Installation_(CentOS)</id>
		<title>Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Installation_(CentOS)"/>
				<updated>2014-11-07T05:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Hercules as root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: Firest Start MySQL:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: Then configure MySQL by:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234 Linux user.&lt;br /&gt;
&lt;br /&gt;
=== SVN Checkout ===&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you are using Renewal you also have to import the following&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db2_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_reg_value, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: mapreg, item_db, item_db2, mob_db, mob_db2,mob_skill_db&lt;br /&gt;
#char-server: everything else + global_reg_value once again&lt;br /&gt;
Note that global_reg_value tables are needed by both login-server and char-server (though it may be different tables)&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
*If you're using CentOS 32-bit please use:&lt;br /&gt;
 ./configure --disable-64bit&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your Hercules Server ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Git_Clone</id>
		<title>Git Clone</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Git_Clone"/>
				<updated>2014-11-07T05:16:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To download Hercules, you need to perform a '''clone''' from [[wikipedia:Git|Git]] (Git) repository. Checking out from a repository creates a working copy of it on your local machine.&lt;br /&gt;
&lt;br /&gt;
A Git is required to perform a clone. Recommended applications are:&lt;br /&gt;
* [http://git-scm.com/ git] for Unix systems&lt;br /&gt;
* [http://code.google.com/p/msysgit/downloads/list?can=2 MSysGit] And [http://code.google.com/p/tortoisegit/wiki/Download?tm=2 TortoiseGit] for Windows systems (Both Required&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;''For detailed instructions on how to install subversion, please refer to OS specific [[:Category:Installation Guides|installation guides]].''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{:Git Clone/Unix}}&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
Check [http://hercules.ws/board/topic/152-obtaining-hercules/?p=845#entry845 Obtaining Hercules] for info on how to clone in windows&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Git_Clone/Unix</id>
		<title>Git Clone/Unix</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Git_Clone/Unix"/>
				<updated>2014-11-07T05:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;Type the following to create a Hercules working copy in your home (~) directory    git clone https://github.com/HerculesWS/Hercules.git ~/Hercules Category:Installation&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Type the following to create a Hercules working copy in your home (~) directory&lt;br /&gt;
   git clone https://github.com/HerculesWS/Hercules.git ~/Hercules&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Git_Clone</id>
		<title>Git Clone</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Git_Clone"/>
				<updated>2014-11-07T05:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;To download Hercules, you need to perform a '''clone''' from Git (Git) repository. Checking out from a repository creates a working copy of it on your local ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To download Hercules, you need to perform a '''clone''' from [[wikipedia:Git|Git]] (Git) repository. Checking out from a repository creates a working copy of it on your local machine.&lt;br /&gt;
&lt;br /&gt;
A Git is required to perform a clone. Recommended applications are:&lt;br /&gt;
* [http://git-scm.com/ git] for Unix systems&lt;br /&gt;
* [http://code.google.com/p/msysgit/downloads/list?can=2 MSysGit] And [http://code.google.com/p/tortoisegit/wiki/Download?tm=2 TortoiseGit] for Windows systems (Both Required&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;''For detailed instructions on how to install subversion, please refer to OS specific [[:Category:Installation Guides|installation guides]].''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Type the following to create a Hercules working copy in your home (~) directory&lt;br /&gt;
   git clone https://github.com/HerculesWS/Hercules.git ~/Hercules&lt;br /&gt;
== Windows ==&lt;br /&gt;
Check [http://hercules.ws/board/topic/152-obtaining-hercules/?p=845#entry845 Obtaining Hercules] for info on how to clone in windows&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getequipname</id>
		<title>Getequipname</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getequipname"/>
				<updated>2014-04-18T12:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;==Syntax== *'''getequipname'''(&amp;lt;equipment slot&amp;gt;);  ==Description== Returns the jname of the item equipped in the specified equipment slot on the invoking character, or an empt...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''getequipname'''(&amp;lt;equipment slot&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Returns the jname of the item equipped in the specified equipment slot on the invoking character, or an empty string (&amp;quot;&amp;quot;) if nothing is equipped in that position.&lt;br /&gt;
&lt;br /&gt;
Does the same thing as [[getitemname]](getequipid(&amp;lt;slot&amp;gt;)). Useful for an NPC to state what your are wearing, or maybe saving as a string variable.&lt;br /&gt;
&lt;br /&gt;
See '[[getequipid]]' for a full list of valid equipment slots.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
 [[if]] (getequipname(EQI_HAND_L)==&amp;quot;&amp;quot;){&lt;br /&gt;
    [[mes]] &amp;quot;You are wearing nothing on Left Hand&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
    mes &amp;quot;You are wearing &amp;quot;+getequipname(EQI_HAND_L)+&amp;quot; on Left Hand&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[getequipid]]&lt;br /&gt;
* [[getitemname]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getequipid</id>
		<title>Getequipid</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getequipid"/>
				<updated>2014-04-18T12:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;==Syntax== *'''getequipid'''(&amp;lt;equipment slot&amp;gt;);  ==Description== This function returns the item ID of the item equipped in the equipment slot specified on the invoking charact...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''getequipid'''(&amp;lt;equipment slot&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function returns the item ID of the item equipped in the equipment slot specified on the invoking character. If nothing is equipped on the specified slot, command returns -1.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Equipment Slots:&lt;br /&gt;
|-&lt;br /&gt;
|EQI_HEAD_TOP (1)&lt;br /&gt;
|Upper head gear&lt;br /&gt;
|-&lt;br /&gt;
|EQI_ARMOR (2)&lt;br /&gt;
|Armor (Where you keep your Jackets and Robes)&lt;br /&gt;
|-&lt;br /&gt;
|EQI_HAND_L (3)&lt;br /&gt;
|What is in your Left hand.&lt;br /&gt;
|-&lt;br /&gt;
|EQI_HAND_R (4)&lt;br /&gt;
|What is in your Right hand.&lt;br /&gt;
|-&lt;br /&gt;
|EQI_GARMENT (5)&lt;br /&gt;
|The garment slot (Mufflers, Hoods, Manteaus)&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHOES (6)&lt;br /&gt;
|What foot gear the player has on.&lt;br /&gt;
|-&lt;br /&gt;
|EQI_ACC_L (7)&lt;br /&gt;
|Accessory 1.&lt;br /&gt;
|-&lt;br /&gt;
|EQI_ACC_R (8)&lt;br /&gt;
|Accessory 2.&lt;br /&gt;
|-&lt;br /&gt;
|EQI_HEAD_MID (9)&lt;br /&gt;
|Middle Headgear (masks and glasses)&lt;br /&gt;
|-&lt;br /&gt;
|EQI_HEAD_LOW (10)&lt;br /&gt;
|Lower Headgear (beards, some masks)&lt;br /&gt;
|-&lt;br /&gt;
|EQI_COSTUME_HEAD_LOW (11)&lt;br /&gt;
|Lower Costume Headgear&lt;br /&gt;
|-&lt;br /&gt;
|EQI_COSTUME_HEAD_MID (12)&lt;br /&gt;
|Middle Costume Headgear&lt;br /&gt;
|-&lt;br /&gt;
|EQI_COSTUME_HEAD_TOP (13)&lt;br /&gt;
|Upper Costume Headgear&lt;br /&gt;
|-&lt;br /&gt;
|EQI_COSTUME_GARMENT (14)&lt;br /&gt;
|Costume Garment&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_ARMOR (15)&lt;br /&gt;
|Shadow Armor&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_WEAPON (16)&lt;br /&gt;
|Shadow Weapon&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_SHIELD (17)&lt;br /&gt;
|Shadow Shield&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_SHOES (18)&lt;br /&gt;
|Shadow Shoes&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_ACC_R (19)&lt;br /&gt;
|Shadow Accessory 2&lt;br /&gt;
|-&lt;br /&gt;
|EQI_SHADOW_ACC_L (20)&lt;br /&gt;
|Shadow Accessory 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
 [[mes ]] &amp;quot;You should wear a cotton shirt to continue the quest&amp;quot;;&lt;br /&gt;
 [[if]] (getequipid(EQI_ARMOR)==Cotton_Shirt) goto L_WearingShirt;&lt;br /&gt;
 mes &amp;quot;Come Back when you have Cotton Shirt Equipped.&amp;quot;;&lt;br /&gt;
 [[close]];&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[getequipname]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Hercules_Hierarchy</id>
		<title>Hercules Hierarchy</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Hercules_Hierarchy"/>
				<updated>2014-03-25T10:57:29Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Staff Titles =&lt;br /&gt;
Ordered alphabetically.&amp;lt;br/&amp;gt;All staff titles, regardless of their description, possesses full moderation powers.&lt;br /&gt;
&lt;br /&gt;
== Administrators ==&lt;br /&gt;
They administrate.&lt;br /&gt;
* [http://hercules.ws/board/user/307-haru/ Haru] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/1-ind/ Ind] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Development Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/43-mysterious/ Mysterious] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Community Administrator])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Core Developers ==&lt;br /&gt;
The kings of the code hill.&lt;br /&gt;
* [http://hercules.ws/board/user/20-malufett/ malufett]&lt;br /&gt;
* [http://hercules.ws/board/user/49-mkbu95/ mkbu95]&lt;br /&gt;
* [http://hercules.ws/board/user/4055-pan/ Pan]&lt;br /&gt;
* [http://hercules.ws/board/user/50-michieru/ Michieru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script Developers ==&lt;br /&gt;
Usually the members with the fastest key/second typing ratio.&lt;br /&gt;
* [http://hercules.ws/board/user/1664-kisuka/ Kisuka]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripting Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/4102-annieruru/ AnnieRuru]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Moderators ==&lt;br /&gt;
Global Moderators are individuals who moderate all of the forums excluding International Communities, however, may still moderate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderator ensure that all of the forums are cleaned by removing duplicate topics, ensuring posts/topics don't have spam, moving topics where need be, and locking topics.&amp;lt;br/&amp;gt;&lt;br /&gt;
Global Moderators also provide support to support topics, however, not to an extent as Support Leaders. This is not a position one can apply to, but be promoted to from other moderation position thanks to one's efforts and commitment to moderation.&lt;br /&gt;
* [http://hercules.ws/board/user/387-jabote/ jaBote]&lt;br /&gt;
* [http://hercules.ws/board/user/83-mumbles/ Mumbles]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Support Leaders ==&lt;br /&gt;
In charge of all the main supporting areas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graphics Moderators ==&lt;br /&gt;
In charge of all the main graphics areas.&lt;br /&gt;
* [http://hercules.ws/board/user/1460-uzieal/ Uzieal]&lt;br /&gt;
* [http://hercules.ws/board/user/11-olrox/ Orlox]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Int'l Moderators ==&lt;br /&gt;
International Moderators are individuals who moderate their respective International Community.&amp;lt;br/&amp;gt;&lt;br /&gt;
They are solely responsible in making sure their respective community is cleaned by moving, locking, removing, and cleaning topics of spams.&amp;lt;br/&amp;gt;&lt;br /&gt;
International Moderators don't have sole responsibility of other forums outside their community and they must provide support to individuals in their community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Filipino====&lt;br /&gt;
* [http://hercules.ws/board/user/1582-mhalicot/ Mhalicot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Portuguese====&lt;br /&gt;
* [http://hercules.ws/board/user/63-juliocf/ JulioCF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Spanish====&lt;br /&gt;
* [http://hercules.ws/board/user/125-m45t3r/ M45T3R]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== High Council ==&lt;br /&gt;
They're an upgrade from the [[#Community_Contributor | Community Contributor]] title.&lt;br /&gt;
* [http://hercules.ws/board/user/59-beret/ Beret]&lt;br /&gt;
* [http://hercules.ws/board/user/6-eiphes/ Eiphes]&lt;br /&gt;
* [http://hercules.ws/board/user/8-eurydice/ Eurydice]&lt;br /&gt;
* [http://hercules.ws/board/user/1160-gepard/ Gepard]&lt;br /&gt;
* [http://hercules.ws/board/user/88-kyeme/ kyeme]&lt;br /&gt;
* [http://hercules.ws/board/user/99-muad_dib/ Muad_Dib]&lt;br /&gt;
* [http://hercules.ws/board/user/456-rytech/ Rytech]&lt;br /&gt;
* [http://hercules.ws/board/user/409-yommy/ Yommy]&lt;br /&gt;
* [http://hercules.ws/board/user/67-xgear/ Xgear]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Former Staff Members =&lt;br /&gt;
Former staff members who've contributed throughout Hercules.&lt;br /&gt;
&lt;br /&gt;
== Former Administrators ==&lt;br /&gt;
* [http://hercules.ws/board/user/2-jman/ Jman]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Core Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/28-greenbox/ GreenBox] &lt;br /&gt;
* [http://hercules.ws/board/user/725-susu/ Susu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Script Developers ==&lt;br /&gt;
* [http://hercules.ws/board/user/756-joseph/ Joseph]&lt;br /&gt;
* [http://hercules.ws/board/user/5-kenpachi/ Kenpachi]&lt;br /&gt;
* [http://hercules.ws/board/user/23-martin/ Martin]&lt;br /&gt;
* [http://hercules.ws/board/user/757-masao/ Masao]&lt;br /&gt;
* [http://hercules.ws/board/user/7-nameless2you/ Nameless2you]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Scripting Moderators ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Global Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/10-judas/ Judas]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Support Leaders ==&lt;br /&gt;
* [http://hercules.ws/board/user/4-emistry/ Emistry]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former Graphic Moderators ==&lt;br /&gt;
* [http://hercules.ws/board/user/129-adel/ Adel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Former International Moderators ==&lt;br /&gt;
==== Filipino ====&lt;br /&gt;
* [http://hercules.ws/board/user/25-jaypee/ JayPee]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Community Contributors =&lt;br /&gt;
This title is awarded to community members for their outstanding support of Hercules. For more information, [http://hercules.ws/board/topic/376-hercules-cc-program/ read the thread about it on the forum.]&lt;br /&gt;
* [http://hercules.ws/board/user/137-bgamez23/ bgamez23]&lt;br /&gt;
* [http://hercules.ws/board/user/48-dastgir-pojee/ Dastgir Pojee]&lt;br /&gt;
* [http://hercules.ws/board/user/1352-evilpuncker/ evilpuncker]&lt;br /&gt;
* [http://hercules.ws/board/user/118-mleo1/ mleo1]&lt;br /&gt;
* [http://hercules.ws/board/user/315-neo/ Neo]&lt;br /&gt;
* [http://hercules.ws/board/user/87-ossi0110/ ossi0110]&lt;br /&gt;
* [http://hercules.ws/board/user/449-patskie/ Patskie]&lt;br /&gt;
* [http://hercules.ws/board/user/303-ryuuzaki/ Ryuuzaki]&lt;br /&gt;
* [http://hercules.ws/board/user/297-shakto/ Shakto]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hercules]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Category:Tools</id>
		<title>Category:Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Category:Tools"/>
				<updated>2014-03-03T02:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;Tools to help Editing/Managing Hercules Server.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tools to help Editing/Managing Hercules Server.&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Category:Queue</id>
		<title>Category:Queue</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Category:Queue"/>
				<updated>2014-03-03T02:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;New Queue System is a improved command for battleground, replacing waitingroom&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New Queue System is a improved command for battleground, replacing waitingroom&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Developers"/>
				<updated>2014-03-03T02:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Redirected page to Hercules Hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hercules_Hierarchy]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Github</id>
		<title>Github</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Github"/>
				<updated>2014-03-03T02:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Redirected page to Git&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Git]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Scripting</id>
		<title>Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Scripting"/>
				<updated>2014-02-18T04:31:21Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding:0.3em; clear:right; margin-left:15px; border:1px solid #A3B1BF; background:#f7f8ff; text-align:left; font-size:95%; line-height:1.5em;&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
| style=&amp;quot;background: #ACD; text-align: center; border: 1px solid #7BC;&amp;quot; | '''Scripting Overview'''&lt;br /&gt;
|-&lt;br /&gt;
|'''General'''&lt;br /&gt;
* [[Adding a Script]]&lt;br /&gt;
* [[Basic Scripting]]&lt;br /&gt;
* [[:Category:Script_Command|Script Commands]]&lt;br /&gt;
* [[Overview of Errors]]&lt;br /&gt;
* [[Tips_and_Tricks_(Scripting)|Tips and Tricks]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Map Flags'''&lt;br /&gt;
* [[Mapflag|Map Flags]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Monster Spawns'''&lt;br /&gt;
* [[Permanent Monster Spawn]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Non Playable Characters'''&lt;br /&gt;
* [[Loops]]&lt;br /&gt;
* [[Timers (Scripting)|Timers]]&lt;br /&gt;
* [[Variables]]&lt;br /&gt;
* [[Menus]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Warp Points'''&lt;br /&gt;
* [[Defining Warp Points]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Shops'''&lt;br /&gt;
|-&lt;br /&gt;
|'''Functions'''&lt;br /&gt;
* [[Functions]]&lt;br /&gt;
* [[WoE]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All pages that specifically related to the '''Scripting''' goes in this Category Page. &lt;br /&gt;
&lt;br /&gt;
Articles will cover the following topics Map Flags, Permanent Monster Spawns, Non Playable Characters, Warp Points, Shops, and Functions.&lt;br /&gt;
&lt;br /&gt;
All articles related to scripting can be found alphabetically [[:Category:Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
Articles in this category are mainly written to create or improve your foundations on Scripting.&lt;br /&gt;
&lt;br /&gt;
More Information:&lt;br /&gt;
* [[Adding_a_Script|[Tutorial] Add a Script]]&lt;br /&gt;
* [[Basic_Scripting|[Tutorial] NPC Scripting (Basics)]]&lt;br /&gt;
* [[Overview_of_Errors|NPC Errors]]&lt;br /&gt;
* [[Tips_and_Tricks_(Scripting)|Tips and Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Map Flags ==&lt;br /&gt;
A Map Flag describes restriction, property, and behavior of a certain map. The map flags alter the behavior of the map regarding teleporting, storing location when disconnected, dead branch usage, penalties upon death, PVP behavior, WoE behavior, ability to use skills or open up trade deals ,current weather effects, and whether day/night will be in effect on this map. Articles about Map Flags are placed under this category...&lt;br /&gt;
&lt;br /&gt;
Read more at [[Mapflag|Map Flags]]&lt;br /&gt;
&lt;br /&gt;
== Monster Spawns ==&lt;br /&gt;
In Depth articles that are related to Monster Spawns can be found under this category.&lt;br /&gt;
&lt;br /&gt;
* [[Permanent_Monster_Spawn|Permanent Monster Spawns]]&lt;br /&gt;
&lt;br /&gt;
== Non Playable Character ==&lt;br /&gt;
In Depth articles that are related to NPC Scripting can all be found under this category.&lt;br /&gt;
&lt;br /&gt;
More Information&lt;br /&gt;
* [[Loops|NPC Loops]]&lt;br /&gt;
* [[Timers|NPC Timers]]&lt;br /&gt;
* [[Variables|NPC Variables]]&lt;br /&gt;
* [[Menus|NPC Menus]]&lt;br /&gt;
&lt;br /&gt;
== Warp Points ==&lt;br /&gt;
In Depth articles related to Warp Points are listed in this category&lt;br /&gt;
* [[Defining_Warp_Points|Defining a warp point]]&lt;br /&gt;
&lt;br /&gt;
== Shops ==&lt;br /&gt;
Articles about Shops and Cash Shops are placed under this category.&lt;br /&gt;
* [[General Shop creation]]&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
In Depth articles that are related to Functions can all be found under this category.&lt;br /&gt;
* [[Functions|How functions work]]&lt;br /&gt;
* [[WoE|Functions used in WoE]]&lt;br /&gt;
&lt;br /&gt;
== Help Expand This Section ==&lt;br /&gt;
Help minimize the broadness of Scripting by helping create or expand the following pages&lt;br /&gt;
&lt;br /&gt;
* [[Basic Scripting]]&lt;br /&gt;
* [[Binaries|Binary Variable System]]&lt;br /&gt;
&lt;br /&gt;
Tag your articles with this&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[Category:Scripting]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Mmo.h</id>
		<title>Mmo.h</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Mmo.h"/>
				<updated>2014-02-18T04:30:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
{{git|src/common/mmo.h}} This source file holds global declarations and hard-coded settings, that are used by the login, char and map server. If you modify anything, you have to recompile all three servers, otherwise you may run into errors.&lt;br /&gt;
&lt;br /&gt;
=== PACKETVER ===&lt;br /&gt;
Specifies the packet version to use for server-client communication. It must be set to date, your client has been released at, e. g. 20090922 for 2009-09-22aRagexeRE. Note: If you have a client, that is newer, than the latest packet version in the comment, some things might not work properly, if the client packets have changed since then.&lt;br /&gt;
&lt;br /&gt;
=== ENABLE_SC_SAVING ===&lt;br /&gt;
If you disable this define, all status changes get discarded upon logout.&lt;br /&gt;
&lt;br /&gt;
=== HOTKEY_SAVING ===&lt;br /&gt;
When enabled, the server stores client hotkeys. While older clients save them locally in the registry, newer clients require this define to be enabled.&lt;br /&gt;
&lt;br /&gt;
=== MAX_MAP_PER_SERVER ===&lt;br /&gt;
Sets how many maps a single map server may manage. This also includes instanced maps.&lt;br /&gt;
&lt;br /&gt;
=== MAX_INVENTORY ===&lt;br /&gt;
Sets maximum amount of item slots in the character item inventory. If you set this above 127, some scripts, that enumerate characters' inventory will break.&lt;br /&gt;
&lt;br /&gt;
=== MAX_CHARS ===&lt;br /&gt;
Max number of characters per account. Note, that changing this setting alone is not enough if the client is not hexed to support more characters as well.&lt;br /&gt;
&lt;br /&gt;
=== GLOBAL_REG_NUM ===&lt;br /&gt;
Max number of permanent [[Variables#Player_Variables|char variables]].&lt;br /&gt;
&lt;br /&gt;
=== ACCOUNT_REG_NUM ===&lt;br /&gt;
Max number of permanent [[Variables#Account_Variables|account variables]].&lt;br /&gt;
&lt;br /&gt;
=== ACCOUNT_REG_NUM2 ===&lt;br /&gt;
Max number of permanent [[Variables#Global_Account_Variables|global account variables]].&lt;br /&gt;
&lt;br /&gt;
=== MAX_QUEST_DB ===&lt;br /&gt;
Maximum number of Quest database to be loaded. File is located in db/questdb.txt&lt;br /&gt;
note: if you have too many quests, your map server will show errors that there's too many quest db. remember to recompile your server if you do! &lt;br /&gt;
[[Category:Configuration]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Mapflags</id>
		<title>Mapflags</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Mapflags"/>
				<updated>2014-02-18T04:28:47Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Redirected page to Mapflag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Mapflag]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Lub</id>
		<title>Lub</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Lub"/>
				<updated>2014-02-18T04:28:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Lub files are the compiled version of [[Lua]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Lub</id>
		<title>Lub</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Lub"/>
				<updated>2014-02-18T04:27:38Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: Created page with &amp;quot;== Lub ==  Lub files are the compiled version of Lua&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lub ==&lt;br /&gt;
&lt;br /&gt;
Lub files are the compiled version of [[Lua]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Kafra</id>
		<title>Kafra</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Kafra"/>
				<updated>2014-02-18T04:23:24Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
[[Image:Kafra2.gif|thumb|Kafra Staff Tayelin]]'''Kafra Corporation''' is a group of Ragnarok Online [[NPC|NPCs]], which is generally responsible for setting save points, giving access to player's item storage, providing teleport services and renting merchant class carts. Later episodes introduced two further groups for the same services; namely Cool Event Corporation (western continent) and Cat Hand Services (new world).&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Texture</id>
		<title>Texture</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Texture"/>
				<updated>2014-02-18T04:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
== Texture Editing ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of Texture editing. The first is editing the ground textures of maps the second is the textures of objects or models used in maps.&lt;br /&gt;
&lt;br /&gt;
== Map Texture Editing ==&lt;br /&gt;
&lt;br /&gt;
Map textures are easy to make, load Photoshop, paint .net or even just paint and create a square image (Normal map images are either 256x256 or 512x512 pixels) then draw your image and save it as a 256 color bmp (You can make them higher but 256 color images take less space, have less issues and you don't need all the extra colors) to what ever locaion you desire in your client's data folder (You can make your own folder when it's your textures for your maps).&lt;br /&gt;
&lt;br /&gt;
== Adding A Texture To A Map ==&lt;br /&gt;
&lt;br /&gt;
If you are using Browedit you'll need to edit the texture text file within Browedit's data folder (It can be handy to make your own but if you do you will have to add it to the config file your using). The texture files are structured in a simple way, which is, menu location and display name followed by directory location then file name (Eg. sets/prontera/forest/grass_path-curve1|ÇÊµå¹Ù´Ú\pron-dun-03.bmp). You can even set out how you want the menu listing for added sections by simply having just the menu location listed without any display names or file or folder listings (Eg. floor/carpet/|). This way you can structure your texture file at the beginning and list the textures afterwords.&lt;br /&gt;
If you have successfully added your next map texture or textures to one of Browedit's texture files you'll be then able to find your texture in the texture window under what you put it under. If you are having trouble with the texture file just follow how one of the files is listed in there already.&lt;br /&gt;
&lt;br /&gt;
== Model Texture Editing ==&lt;br /&gt;
&lt;br /&gt;
If you are like some and wish to edit the textures of an object (aka model) and may or may not wish to replace the existing model then read on. Also like map textures, model textures are simple bmp files which any image editor should be able to open and edit. But while this is so, transparency on models seems to be lost when replaced by another (Borf may fix this in Browedit).&lt;br /&gt;
*Remember to make sure your textures are 256 color bmp files when you save them or they may not work.&lt;br /&gt;
&lt;br /&gt;
== Replacing a Model's Texture ==&lt;br /&gt;
&lt;br /&gt;
With Browedit replacing a model's texture is as easy as pie. Load browedit and under 'Windows &amp;gt; RSM Editor' open the model you wish to edit then click the texture you wish to replace and in the texture window (Just like map textures you will have to have added your model texture or textures if you wish to replace any textures) and once you have clicked on the new texture the old will be replace by the new and you can save your creation. It's that simple.&lt;br /&gt;
&lt;br /&gt;
*Note. If you do not want to replace a model's texture but instead make a copy and replace it then just remember to click 'save as' (as save will replace the opened model) and rename the model file and then just like the map textures add it to the model list file in Browedit's data folder&lt;br /&gt;
&lt;br /&gt;
[[Category:Mapping]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Racial_Group</id>
		<title>Racial Group</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Racial_Group"/>
				<updated>2014-02-18T04:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
This page will try to explain the file {{git|db/pre-re/mob_race2_db.txt}}&lt;br /&gt;
&lt;br /&gt;
== What is it for? ==&lt;br /&gt;
The mob_race2_db.txt file is used to define groups of monsters &amp;quot;racially&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage and Syntax ==&lt;br /&gt;
The values in this file don't seem to be referenced in {{git|doc/script_commands.txt}}, nor in {{git|db/const.txt}} {{why}}&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Item_script</id>
		<title>Item script</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Item_script"/>
				<updated>2014-02-18T04:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Item scripts are scripts, that are attached to specific items and ran upon usage (usable items), or when putting on and off equipment (equip-able items). Certain script commands can be used only within item scripts, because they refer to the item ''currently in-use''.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]][[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Talk:Installation_(CentOS)</id>
		<title>Talk:Installation (CentOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Talk:Installation_(CentOS)"/>
				<updated>2014-02-18T04:18:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Git Clone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]].&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[wikipedia:CentOS|CentOS]] or an [[wikipedia:List_of_Linux_distributions#RPM-based|RPM-based Linux]] that has the '''[[wikipedia:Yellowdog_Updater,_Modified|yum]]''' command&lt;br /&gt;
* root access or access to an account that has [[wikipedia:Sudo|sudo privileges]]&lt;br /&gt;
* an Internet connection to download install packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
All of these commands will be typed at the [[wikipedia:Command-line_interface|command-line interface]].&lt;br /&gt;
=== Install Prerequisites ===&lt;br /&gt;
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window.&lt;br /&gt;
# Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Subversion, and Zlib header files) &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (Optional) type the following command to install some additional packages: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;yum -y install dos2unix gdb nano screen unzip wget zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a non-root Linux user ===&lt;br /&gt;
By the [[wikipedia:Principle_of_least_privilege|principle of least privilege]], it is recommended you do '''NOT''' run Herculesas root. &lt;br /&gt;
# Type the following command to create a non-root Linux account:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;useradd --create-home --shell /bin/bash hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;--create-home&amp;lt;/code&amp;gt; = create the user's home directory&lt;br /&gt;
#: &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt; = sets their login shell to [[wikipedia:Bash_(Unix_shell)|Bash]]&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt;''' = the login name of the new Linux account&lt;br /&gt;
#: ''&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;'' = pick your own random numbers to make the username more unique&lt;br /&gt;
# Set a password for the new user (run this command and follow the prompts):&lt;br /&gt;
#: &amp;lt;pre&amp;gt;passwd hercules1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
==== Set a root password ====&lt;br /&gt;
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. &lt;br /&gt;
# Run this command and follow the prompts: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Login to your MySQL Server as root: &lt;br /&gt;
#: ''When prompted, enter your root MySQL password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql --user=root -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now your prompt should look like this (the MySQL command prompt): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
#: ''In case your mysql server isn't started, you may have to start it with:''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;/etc/init.d/mysqld start &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create SQL database for Hercules====&lt;br /&gt;
# At the MySQL prompt, type this to [http://dev.mysql.com/doc/refman/5.5/en/create-database.html create a database] (replace &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; with the Linux username you created earlier): &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_rag;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Create a separate database for logs: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE DATABASE hercules1234_log;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup a MySQL user for Hercules ====&lt;br /&gt;
# At the MySQL prompt, type something like this to create a new MySQL user: &lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;hercules1234&amp;lt;/code&amp;gt; = the name of the MySQL user (we named it the same as the Linux user to make it easier to identify)&lt;br /&gt;
#: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; = the hostname or IP it will connect from&lt;br /&gt;
#: '''&amp;lt;code&amp;gt;secretpassword&amp;lt;/code&amp;gt;''' = the password for this MySQL user&lt;br /&gt;
# [http://dev.mysql.com/doc/refman/5.5/en/grant.html Grant privileges] to the 'Hercules' MySQL user:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql&amp;gt; GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';&amp;lt;/pre&amp;gt; (note the [http://dev.mysql.com/doc/refman/5.5/en/string-literals.html#character-escape-sequences escaped underscore])&lt;br /&gt;
&lt;br /&gt;
== Install [[Hercules]] ==&lt;br /&gt;
&lt;br /&gt;
=== Login as your non-root Linux user ===&lt;br /&gt;
The rest of the setup is done as hercules1234(the Linux user you created in step 2.2)&lt;br /&gt;
# Logout from root SSH (or minimize the window).&lt;br /&gt;
# Login to your server via SSH as the hercules1234Linux user.&lt;br /&gt;
&lt;br /&gt;
=== Git Clone ===&lt;br /&gt;
Execute the following command, and it will download Hercules Repository into hercules folder&lt;br /&gt;
 git clone git://github.com/HerculesWS/Hercules.git hercules&lt;br /&gt;
&lt;br /&gt;
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables ===&lt;br /&gt;
# Change directory to the '''sql-files''' folder.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;cd trunk/sql-files/&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Execute these commands: &lt;br /&gt;
#: ''When prompted, enter your MySQL root password.''&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; main.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; item_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_skill_db.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_rag &amp;lt; mob_skill_db2.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; logs.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you are using Renewal you also have to import the following&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; item_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; item_db2_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; mob_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;mysql -u root -prootpassword hercules1234_log &amp;lt; mob_skill_db_re.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:&lt;br /&gt;
#login-server: global_reg_value, ipbanlist, login, loginlog&lt;br /&gt;
#map-server: mapreg, item_db, item_db2, mob_db, mob_db2&lt;br /&gt;
#char-server: everything else + global_reg_value once again&lt;br /&gt;
Note that global_reg_value tables are needed by both login-server and char-server (though it may be different tables)&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Configuration|Configure Hercules]]===&lt;br /&gt;
&lt;br /&gt;
=== Compile Source Code ===&lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
*If you're using CentOS 32-bit please use:&lt;br /&gt;
 ./configure --disable-64bit&lt;br /&gt;
&lt;br /&gt;
===== How to Recompile =====&lt;br /&gt;
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: &lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
 '''make clean'''&lt;br /&gt;
 make sql&lt;br /&gt;
&lt;br /&gt;
== Start your HerculesServer ==&lt;br /&gt;
 //change access mode of athena-start file so that you can execute it.&lt;br /&gt;
 //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors &lt;br /&gt;
 chmod a+x athena-start&lt;br /&gt;
&lt;br /&gt;
 //To Start&lt;br /&gt;
 ./athena-start start&lt;br /&gt;
 //To Stop&lt;br /&gt;
 ./athena-start stop&lt;br /&gt;
 //To Restart&lt;br /&gt;
 ./athena-start restart&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation Guides|CentOS]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC</id>
		<title>Building HPM Plugin for MSVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC"/>
				<updated>2014-02-09T05:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide on how to prepare your MSVC environment for a new [[HPM]] plugin.&lt;br /&gt;
= Guide =&lt;br /&gt;
1. Go to '''src/plugins/''' folder, create a new '''.c''' file, e.g. '''dance.c''' (this name will be used throughout this guide)&lt;br /&gt;
[[File:step1.JPG|center|750px]]&lt;br /&gt;
2. Open dance.c and paste this code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;quot;../common/HPMi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/script.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/pc.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;../common/HPMDataCheck.h&amp;quot;    //Should always be the last include file.&lt;br /&gt;
&lt;br /&gt;
HPExport struct hplugin_info pinfo =&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;@dance&amp;quot;,		// Plugin name&lt;br /&gt;
    SERVER_TYPE_MAP,// Which server types this plugin works with?&lt;br /&gt;
    &amp;quot;0.1a&amp;quot;,			// Plugin version&lt;br /&gt;
    HPM_VERSION,	// HPM Version (don't change, macro is automatically updated)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ACMD(dance)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      if (!message || !*message) {&lt;br /&gt;
		  clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;);&lt;br /&gt;
return -1;&lt;br /&gt;
   }&lt;br /&gt;
   if ( atoi(message) == 1 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 413, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 2 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 414, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 3 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 415, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 4 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 426, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 5 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 458, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 6 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 466, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 7 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 501, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 8 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 540, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 9 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 550, ALL_CLIENT);&lt;br /&gt;
   }&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;); &lt;br /&gt;
	}&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Server Startup */&lt;br /&gt;
HPExport void plugin_init (void)&lt;br /&gt;
{&lt;br /&gt;
    clif = GET_SYMBOL(&amp;quot;clif&amp;quot;);&lt;br /&gt;
    script = GET_SYMBOL(&amp;quot;script&amp;quot;);&lt;br /&gt;
    skill = GET_SYMBOL(&amp;quot;skill&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    addAtcommand(&amp;quot;dance&amp;quot;,dance);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Open your MSVC project (e.g. '''Hercules-10.sln'')&lt;br /&gt;
[[File:step2.JPG|center|750px]]&lt;br /&gt;
4. Go to the '''Solution Explorer'''&lt;br /&gt;
[[File:step3.JPG|center|750px]]&lt;br /&gt;
5. Right click the Hercules project (first item in '''Solution Explorer'''), and click '''Add-&amp;gt;New Project'''&lt;br /&gt;
[[File:step4.JPG|center|750px]]&lt;br /&gt;
6. Select '''General''', and pick '''Empty Project'''.&lt;br /&gt;
[[File:step5.JPG|center|750px]]&lt;br /&gt;
7. Enter the name of your plugin in the '''Name''' field, and click OK.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. In the solution explorer it'll display the new project.&lt;br /&gt;
[[File:step6.JPG|center|750px]]&lt;br /&gt;
9. Right click the new project, and open '''Add-&amp;gt;Existing Item'''&lt;br /&gt;
[[File:step7.JPG|center|750px]]&lt;br /&gt;
10. Browse to '''src/plugins/''' and select the '''dance.c''' file, and hit OK.&lt;br /&gt;
[[File:step8.JPG|center|750px]]&lt;br /&gt;
11. It will place the '''dance.c''' file under the '''Source Files''' folder, drag it to the project you created and drop it (in a manner it be placed out of the source files folder.)&lt;br /&gt;
[[File:step9.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step10.JPG|center|750px]]&lt;br /&gt;
12. With the '''dance.c''' out of the folders, delete the 3 of them (select the 3, hit delete, hit ok)&lt;br /&gt;
[[File:step11.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step12.JPG|center|750px]]&lt;br /&gt;
13. Right click the project you created, open '''Properties'''&lt;br /&gt;
[[File:step13.JPG|center|750px]]&lt;br /&gt;
14. Under '''Configuration Properties''' click '''General''', change '''Output Directory''' to '''..\plugins\''', '''Intermediate Directory''' to '''$(ProjectName)\$(ConfigurationName)\''' and  '''Configuration Type''' to '''Dynamic Library (.dll)'''&lt;br /&gt;
[[File:step14.JPG|center|750px]]&lt;br /&gt;
15. Under '''Configuration Properties''' click '''C/C++''' and open '''General''', change '''Additional Include Directories''' to '''..\src\common;..\3rdparty\msinttypes\include'''&lt;br /&gt;
[[File:step15.JPG|center|750px]]&lt;br /&gt;
16. Under '''Configuration Properties''' click '''Linker''' and open '''General''', change '''Output File''' to '''$(OutDir)$(TargetName).dll''' (TargetName is the name of the project)&lt;br /&gt;
[[File:step16.JPG|center|750px]]&lt;br /&gt;
17. Add your code to the '''dance.c''' file, and then right-click the project you created, and select '''Build'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
18. Add it to ''' /conf/plugins.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugins_list: [&lt;br /&gt;
	/* Enable HPMHooking when plugins in use rely on Hooking */&lt;br /&gt;
	//&amp;quot;HPMHooking&amp;quot;,&lt;br /&gt;
	//&amp;quot;db2sql&amp;quot;,&lt;br /&gt;
	//&amp;quot;sample&amp;quot;,&lt;br /&gt;
	//&amp;quot;other&amp;quot;,&lt;br /&gt;
	&amp;quot;dance&amp;quot;, // loads dance plugin&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
* This guide is probably the worst I've ever written, if you can do better please hit the 'Edit' button, will be most welcome. - Ind&lt;br /&gt;
* I used MSVC 2008 when testing this guide.&lt;br /&gt;
&lt;br /&gt;
= New Note =&lt;br /&gt;
* Sorry for editing this page, I added step by step images for other people to follow so they can easily follow one of the best feature Hercules have, the HPM. - Thanna&lt;br /&gt;
* The tutorial is tested on MSVC 2010.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC</id>
		<title>Building HPM Plugin for MSVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Building_HPM_Plugin_for_MSVC"/>
				<updated>2014-02-02T05:01:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide on how to prepare your MSVC environment for a new [[HPM]] plugin.&lt;br /&gt;
= Guide =&lt;br /&gt;
1. Go to '''src/plugins/''' folder, create a new '''.c''' file, e.g. '''dance.c''' (this name will be used throughout this guide)&lt;br /&gt;
[[File:step1.JPG|center|750px]]&lt;br /&gt;
2. Open dance.c and paste this code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;quot;../common/HPMi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/script.h&amp;quot;&lt;br /&gt;
#include &amp;quot;../map/pc.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HPExport struct hplugin_info pinfo =&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;@dance&amp;quot;,		// Plugin name&lt;br /&gt;
    SERVER_TYPE_MAP,// Which server types this plugin works with?&lt;br /&gt;
    &amp;quot;0.1a&amp;quot;,			// Plugin version&lt;br /&gt;
    HPM_VERSION,	// HPM Version (don't change, macro is automatically updated)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ACMD(dance)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      if (!message || !*message) {&lt;br /&gt;
		  clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;);&lt;br /&gt;
return -1;&lt;br /&gt;
   }&lt;br /&gt;
   if ( atoi(message) == 1 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 413, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 2 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 414, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 3 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 415, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 4 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 426, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 5 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 458, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 6 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 466, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 7 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 501, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 8 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 540, ALL_CLIENT);&lt;br /&gt;
   } else if ( atoi(message) == 9 ) {&lt;br /&gt;
clif-&amp;gt;specialeffect(&amp;amp;sd-&amp;gt;bl, 550, ALL_CLIENT);&lt;br /&gt;
   }&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	clif-&amp;gt;message(fd, &amp;quot;usage: @dance 1-9&amp;quot;); &lt;br /&gt;
	}&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Server Startup */&lt;br /&gt;
HPExport void plugin_init (void)&lt;br /&gt;
{&lt;br /&gt;
    clif = GET_SYMBOL(&amp;quot;clif&amp;quot;);&lt;br /&gt;
    script = GET_SYMBOL(&amp;quot;script&amp;quot;);&lt;br /&gt;
    skill = GET_SYMBOL(&amp;quot;skill&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    addAtcommand(&amp;quot;dance&amp;quot;,dance);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Open your MSVC project (e.g. '''Hercules-10.sln'')&lt;br /&gt;
[[File:step2.JPG|center|750px]]&lt;br /&gt;
4. Go to the '''Solution Explorer'''&lt;br /&gt;
[[File:step3.JPG|center|750px]]&lt;br /&gt;
5. Right click the Hercules project (first item in '''Solution Explorer'''), and click '''Add-&amp;gt;New Project'''&lt;br /&gt;
[[File:step4.JPG|center|750px]]&lt;br /&gt;
6. Select '''General''', and pick '''Empty Project'''.&lt;br /&gt;
[[File:step5.JPG|center|750px]]&lt;br /&gt;
7. Enter the name of your plugin in the '''Name''' field, and click OK.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. In the solution explorer it'll display the new project.&lt;br /&gt;
[[File:step6.JPG|center|750px]]&lt;br /&gt;
9. Right click the new project, and open '''Add-&amp;gt;Existing Item'''&lt;br /&gt;
[[File:step7.JPG|center|750px]]&lt;br /&gt;
10. Browse to '''src/plugins/''' and select the '''dance.c''' file, and hit OK.&lt;br /&gt;
[[File:step8.JPG|center|750px]]&lt;br /&gt;
11. It will place the '''dance.c''' file under the '''Source Files''' folder, drag it to the project you created and drop it (in a manner it be placed out of the source files folder.)&lt;br /&gt;
[[File:step9.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step10.JPG|center|750px]]&lt;br /&gt;
12. With the '''dance.c''' out of the folders, delete the 3 of them (select the 3, hit delete, hit ok)&lt;br /&gt;
[[File:step11.JPG|center|750px]]&lt;br /&gt;
(It should look like the image below)&lt;br /&gt;
[[File:step12.JPG|center|750px]]&lt;br /&gt;
13. Right click the project you created, open '''Properties'''&lt;br /&gt;
[[File:step13.JPG|center|750px]]&lt;br /&gt;
14. Under '''Configuration Properties''' click '''General''', change '''Output Directory''' to '''..\plugins\''', '''Intermediate Directory''' to '''$(ProjectName)\$(ConfigurationName)\''' and  '''Configuration Type''' to '''Dynamic Library (.dll)'''&lt;br /&gt;
[[File:step14.JPG|center|750px]]&lt;br /&gt;
15. Under '''Configuration Properties''' click '''C/C++''' and open '''General''', change '''Additional Include Directories''' to '''..\src\common;..\3rdparty\msinttypes\include'''&lt;br /&gt;
[[File:step15.JPG|center|750px]]&lt;br /&gt;
16. Under '''Configuration Properties''' click '''Linker''' and open '''General''', change '''Output File''' to '''$(OutDir)$(TargetName).dll''' (TargetName is the name of the project)&lt;br /&gt;
[[File:step16.JPG|center|750px]]&lt;br /&gt;
17. Add your code to the '''dance.c''' file, and then right-click the project you created, and select '''Build'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
18. Add it to ''' /conf/plugins.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugins_list: [&lt;br /&gt;
	/* Enable HPMHooking when plugins in use rely on Hooking */&lt;br /&gt;
	//&amp;quot;HPMHooking&amp;quot;,&lt;br /&gt;
	//&amp;quot;db2sql&amp;quot;,&lt;br /&gt;
	//&amp;quot;sample&amp;quot;,&lt;br /&gt;
	//&amp;quot;other&amp;quot;,&lt;br /&gt;
	&amp;quot;dance&amp;quot;, // dance.c&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
* This guide is probably the worst I've ever written, if you can do better please hit the 'Edit' button, will be most welcome. - Ind&lt;br /&gt;
* I used MSVC 2008 when testing this guide.&lt;br /&gt;
&lt;br /&gt;
= New Note =&lt;br /&gt;
* Sorry for editing this page, I added step by step images for other people to follow so they can easily follow one of the best feature Hercules have, the HPM. - Thanna&lt;br /&gt;
* The tutorial is tested on MSVC 2010.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Thor_Patcher</id>
		<title>Thor Patcher</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Thor_Patcher"/>
				<updated>2014-01-23T04:45:37Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{infobox/software&lt;br /&gt;
|heading=[[Image:thor-oobe.jpg|250px]]&amp;lt;br&amp;gt;Thor Patcher out of the box with default skin and settings.&lt;br /&gt;
|developer=Aeomin&lt;br /&gt;
|version=2.5.4.18 / September 18, 2009&amp;lt;br&amp;gt;2.6.2.66 / August 1, 2011&lt;br /&gt;
|os=Windows 2000/XP/Vista/7&lt;br /&gt;
|lang=Multiple (6)&lt;br /&gt;
|type=Patch Client&lt;br /&gt;
|license=unknown (closed source)&lt;br /&gt;
|web=http://thor.aeomin.net/}}&lt;br /&gt;
[[Thor Patcher]] is designed with the client-side config file embed ''inside'' the patcher itself. Since it uses no extra DLLs, you may distribute 1 file to your players. This guide will not discuss how to setup a [[wikipedia:Web_Server|Web Server]].&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Pack into single/multi grf file [0x200]&lt;br /&gt;
* Automatically generate GRF if not exists&lt;br /&gt;
* RGZ support&lt;br /&gt;
* Customizable skin&lt;br /&gt;
* Multilingual base on user's OS region setting&lt;br /&gt;
* Background music&lt;br /&gt;
* No extra dll, not even config file is needed when distribute [No conflict with other server]&lt;br /&gt;
* Embed config file and resource data (images for background/buttons)&lt;br /&gt;
* Custom Buttons [Hard limit &amp;gt;2 billion, soft limit non-existence as in 2.6.2.68]&lt;br /&gt;
* Remote config file&lt;br /&gt;
* Self update and client update [Supports multi client exe update(Up to 255)]&lt;br /&gt;
&lt;br /&gt;
=Files=&lt;br /&gt;
#Patcher folder contents:&lt;br /&gt;
#* '''Thor.exe''' (''Patcher's executable file'')&lt;br /&gt;
#Tools folder contents:&lt;br /&gt;
#* '''ConfigEmbeder.exe''' (''used to add your config to the patcher exe'')&lt;br /&gt;
#* '''CheckSum.exe''' (''used to generate a CRC32 sum of the patcher and client exe'')&lt;br /&gt;
#* '''ThorGenerator.exe''' (''used to make patches'')&lt;br /&gt;
#* Sample skin files&lt;br /&gt;
#* sample '''config.ini'''&lt;br /&gt;
#* sample '''language.ini'''&lt;br /&gt;
#Web folder contents:&lt;br /&gt;
#* a sample '''notice.html'''&lt;br /&gt;
#* a sample '''main.ini'''&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
To set up your thor patcher, you need to go through the following steps:&lt;br /&gt;
* make a skin&lt;br /&gt;
* write a config.ini&lt;br /&gt;
* write a language.ini (optional)&lt;br /&gt;
* pack the config &amp;amp; skin into the patcher exe&lt;br /&gt;
* write a main.ini&lt;br /&gt;
* write a notice webpage&lt;br /&gt;
* upload the main.ini &amp;amp; the notice to your webserver&lt;br /&gt;
&lt;br /&gt;
==Making a Skin==&lt;br /&gt;
A Thor Patcher skin is divided into following parts:&lt;br /&gt;
# '''Background''' (''This is the main part of a skin'')&lt;br /&gt;
#* supported formats&lt;br /&gt;
#** jpg (no transparency)&lt;br /&gt;
#** bmp (the very top-left pixel is used for transparency)&lt;br /&gt;
#** partial transparency (.png) is not supported yet&lt;br /&gt;
# '''Buttons'''&lt;br /&gt;
#* System Buttons:&lt;br /&gt;
#** The typical buttons you see on every patcher:&lt;br /&gt;
#** Start  : starts the main client&lt;br /&gt;
#** Cancel : cancels the update process&lt;br /&gt;
#** Close  : closes thor patcher&lt;br /&gt;
#* Custom Buttons:&lt;br /&gt;
#: see [[#Custom Buttons|guide]]&lt;br /&gt;
# '''Custom Notice Box''':&lt;br /&gt;
#: see [[#Custom Notice Box|guide]]&lt;br /&gt;
# '''Progressbar''' (''Shows the patching progress'')&lt;br /&gt;
#* Supported formats when use image based progress bar&lt;br /&gt;
#** bmp&lt;br /&gt;
#** jpg (crashes on 2.6.1.66)&lt;br /&gt;
#** png (crashes on 2.6.1.66)&lt;br /&gt;
# '''Status message''' (''Displays the patcher status'')&lt;br /&gt;
::You can change the size and the position of every element of the patcher, so there are almost no limits to what you can do - be creative. The easiest way to make a skin is to make a single photoshop file with layers for each part of the skin.&lt;br /&gt;
&lt;br /&gt;
=Writing the Config=&lt;br /&gt;
Config.ini contains the following lines:&lt;br /&gt;
&lt;br /&gt;
==[Config:Main]==&lt;br /&gt;
*RootURL='&amp;lt;nowiki&amp;gt;http://domain.com/patch/&amp;lt;/nowiki&amp;gt;'&lt;br /&gt;
**The URL where you plan to store all data related to thor patcher.&lt;br /&gt;
*RemoteConfigFile='main.ini'&lt;br /&gt;
**The name of the 2nd part of the config (NOT the full path).&lt;br /&gt;
*TimeOut=0&lt;br /&gt;
**This option enables you to control how long the patcher will try to connect to your webhost before giving up.&lt;br /&gt;
**Format: time in seconds.&lt;br /&gt;
**0 = Default value.&lt;br /&gt;
**'''Don't''' change this unless you know what you are doing! Might lead to patcher not patching.&lt;br /&gt;
*StatusFile='server.dat'&lt;br /&gt;
** File that stores patch ID and possibly miscellaneous data in the future. Change it to fit your server.&lt;br /&gt;
*DefaultGRF='YourRO.grf'&lt;br /&gt;
**The main GRF that your server uses. This GRF will will be patched if you left target GRF field blank during making .thor file or patch from GRF/GPF.&lt;br /&gt;
*ClientEXE='Your RO.exe'&lt;br /&gt;
**The name of the executable that the patcher will launch after patching.&lt;br /&gt;
*ClientParameter='-1sak1'&lt;br /&gt;
**The parameter thor uses when calling your client exe. Useful when you want your players to be fully patched. leave blank when not using.&lt;br /&gt;
**'''Advice''': Change the parameter in your exe to something unique by hexing it, makes harder to bypass patching. Don't forget to change it in your config too.&lt;br /&gt;
*FinishOnConnectionFailure=false&lt;br /&gt;
**The user can only exit if the patch fails and the setting is set to false. If set to true, the user can continue to launch the game if the patcher is unable to connect to your webserver. Setting to true may lead to gravity errors and crashes.&lt;br /&gt;
&lt;br /&gt;
==[Config:Window]==&lt;br /&gt;
*AutoResize=true&lt;br /&gt;
**The size of the patcher changes depending on the size of the background image. True or false.&lt;br /&gt;
*Style='none'&lt;br /&gt;
**Choose the style your window should have&lt;br /&gt;
**none     : No border, window not resizable.&lt;br /&gt;
**single   : Normal border, window not resizeable.&lt;br /&gt;
**sizeable : Normal border, window resizeable (would not work if windows_autosize = true).&lt;br /&gt;
*Width=1&lt;br /&gt;
**Width of your patcher (in pixels). Would not work if ''Autosize'' = true&lt;br /&gt;
**Possible values:&lt;br /&gt;
***1 to 10000&lt;br /&gt;
*Height=531&lt;br /&gt;
**Height of your patcher (in pixels). Would not work if ''Autosize'' = true&lt;br /&gt;
**Possible values:&lt;br /&gt;
***1 to 10000&lt;br /&gt;
*DragHandling=true&lt;br /&gt;
**Should the user be able to move the patcher window by dragging on background? Note that when setting this to false, users would have to move window like every other GUI application, but they will unable to move when ''Style'' is set to ''none''. True or false.&lt;br /&gt;
*Background='images/bg.bmp'&lt;br /&gt;
**Your background image path.&lt;br /&gt;
**Relative to location of your config.ini&lt;br /&gt;
***Example: c:\config.ini *&amp;gt; c:\images\bg.jpg&lt;br /&gt;
**Supported formats:&lt;br /&gt;
***JPG (no transparency)&lt;br /&gt;
***BMP (very first pixel at top left is choosed as transparent color)&lt;br /&gt;
***Partial Transparency (.png) is not supported at this moment&lt;br /&gt;
**Will be packed into the patcher.exe&lt;br /&gt;
*FadeOnDrag=true&lt;br /&gt;
**Whether or not the window will create a fade effect when clicked and dragged (similar to window in RO). True or false.&lt;br /&gt;
&lt;br /&gt;
==[Config:BGM]==&lt;br /&gt;
*File=&lt;br /&gt;
**File name.&lt;br /&gt;
*Loop=True&lt;br /&gt;
**Do you want the song to play over and over (AKA Loop)? True or false.&lt;br /&gt;
*Volume=20&lt;br /&gt;
**How loud the song is. 1-100 in volume.&lt;br /&gt;
*Directory=&lt;br /&gt;
**Where the song is located. When this field is set, patcher will randomly choose a music file in the specified directory. Note that ''File'' will be ignored in this case.&lt;br /&gt;
&lt;br /&gt;
==[Config:Misc]==&lt;br /&gt;
*Title='Your RO Patcher'&lt;br /&gt;
**Text displayed on the window title (if ''Style'' is not set to 'none'') and in taskbar.&lt;br /&gt;
*HideProgressBarWhenFinish=false&lt;br /&gt;
**Should the progress bar vanish when the patching is done? True or false.&lt;br /&gt;
&lt;br /&gt;
==[ProgressBar:bar1]==&lt;br /&gt;
*Width=1&lt;br /&gt;
**Width of the progress bar.&lt;br /&gt;
*Height=1&lt;br /&gt;
**Height of the progress bar.&lt;br /&gt;
*Left=1&lt;br /&gt;
**Number of pixels to the left.&lt;br /&gt;
*Top=1&lt;br /&gt;
**Number of pixels away from the top.&lt;br /&gt;
*BackColorStart=$009DEEEF&lt;br /&gt;
**The background color of the progress bar when it is patching.&lt;br /&gt;
*BackColorEnd=$00C2F1F1&lt;br /&gt;
**The background color of the progress bar when it has finished patching.&lt;br /&gt;
*FrontColorStart=$006ED5B0&lt;br /&gt;
**Foreground color of the progress bar when patching.&lt;br /&gt;
*FrontColorEnd=$0080DDCA&lt;br /&gt;
**Foreground color when it is done.&lt;br /&gt;
*FrontImage=&lt;br /&gt;
**Foreground image name. (NOTE: Image must be placed in Tools\Images folder.)&lt;br /&gt;
*BackImage=&lt;br /&gt;
**Background image name. (NOTE: Image must be placed in Tools\Images folder.)&lt;br /&gt;
*Hook='ProgressChange'&lt;br /&gt;
**Most likely something to do with programming and shouldn't be messed with.&lt;br /&gt;
&lt;br /&gt;
==[Label:Status]==&lt;br /&gt;
*AutoResize = false&lt;br /&gt;
**When set to true, this label will change its width depend on text size. True or false.&lt;br /&gt;
*Width=369&lt;br /&gt;
**How wide the text area is in pixels. Ignored when ''AutoResize'' is true.&lt;br /&gt;
*Height=&lt;br /&gt;
**How tall the text area is in pixels. Ignored when ''AutoResize'' is true.&lt;br /&gt;
*Left=15&lt;br /&gt;
**How far from the right the text area is in pixels.&lt;br /&gt;
*Top=498&lt;br /&gt;
**How far from the top the text area is in pixels.&lt;br /&gt;
*Alignment='center'&lt;br /&gt;
**Text alignment. Can be center, left, or right.&lt;br /&gt;
*FontColor=$000000&lt;br /&gt;
**Color of the text.&lt;br /&gt;
*FontName = ''&lt;br /&gt;
**If you desire a different font to be displayed, you put the name here. Users must have the font installed in order to see the font, so downloaded fonts most likely won't be seen.&lt;br /&gt;
*FontSize =&lt;br /&gt;
**Text size.&lt;br /&gt;
*Text=''&lt;br /&gt;
**Text to be displayed at the bottom of the progress bar.&lt;br /&gt;
*Hook='StatusChange'&lt;br /&gt;
**Programming related.&lt;br /&gt;
&lt;br /&gt;
==[NoticeBox:Box0]==&lt;br /&gt;
*Width=347&lt;br /&gt;
**Width of notice box.&lt;br /&gt;
*Height=250&lt;br /&gt;
**Height of notice box.&lt;br /&gt;
*Left=21&lt;br /&gt;
**How far from the left.&lt;br /&gt;
*Top=217&lt;br /&gt;
**How far from the top.&lt;br /&gt;
*URL='&amp;lt;nowiki&amp;gt;http://domain.com/patch/notice.html&amp;lt;/nowiki&amp;gt;'&lt;br /&gt;
**URL to notice HTML file that will be displayed on startup, as long as the player is connected to the internet.&lt;br /&gt;
&lt;br /&gt;
==[Button:Start]==&lt;br /&gt;
* Default='images/start.png'&lt;br /&gt;
** Image of the button in normal state.&lt;br /&gt;
* OnHover='images/start2.png'&lt;br /&gt;
** Image of the button when the user places the mouse cursor over it.&lt;br /&gt;
* OnDown='images/start3.png'&lt;br /&gt;
** Image of the button when the user presses the button.&lt;br /&gt;
* Left=1&lt;br /&gt;
** X coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the left of the background image.&lt;br /&gt;
* Top=1&lt;br /&gt;
** Y coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the top of the background image.&lt;br /&gt;
&lt;br /&gt;
==[Button:Exit]==&lt;br /&gt;
* Default='images/exit.png'&lt;br /&gt;
** Image of the button in normal state.&lt;br /&gt;
* OnHover='images/exit2.png'&lt;br /&gt;
** Image of the button when the user places the mouse cursor over it.&lt;br /&gt;
* OnDown='images/exit3.png'&lt;br /&gt;
** Image of the button when the user presses the button.&lt;br /&gt;
* Left=1&lt;br /&gt;
** X coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the left of the background image.&lt;br /&gt;
* Top=1&lt;br /&gt;
** Y coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the top of the background image.&lt;br /&gt;
&lt;br /&gt;
==[Button:Cancel]==&lt;br /&gt;
* Default='images/exit.png'&lt;br /&gt;
** Image of the button in normal state. &lt;br /&gt;
* OnHover='images/exit2.png'&lt;br /&gt;
** Image of the button when the user places the mouse cursor over it.&lt;br /&gt;
* OnDown='images/exit3.png'&lt;br /&gt;
** Image of the button when the user presses the button.&lt;br /&gt;
* Left=1&lt;br /&gt;
** X coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the left of the background image.&lt;br /&gt;
* Top=1&lt;br /&gt;
** Y coordinates of the button (in pixels).&lt;br /&gt;
** Counted from the top of the background image.&lt;br /&gt;
&lt;br /&gt;
==Custom Buttons==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
[Button:Name]&lt;br /&gt;
Default='images/button1.png'&lt;br /&gt;
OnHover='images/button2.png'&lt;br /&gt;
OnDown='images/button3.png'&lt;br /&gt;
&lt;br /&gt;
Left=80&lt;br /&gt;
Top=406&lt;br /&gt;
Mode=1&lt;br /&gt;
Action='http://example.com'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Declares a new button&lt;br /&gt;
*[Button:Name]&lt;br /&gt;
** Name or ID, must be unique for each and every button&lt;br /&gt;
*Default='images/button1.png'&lt;br /&gt;
** image of the button on normal state&lt;br /&gt;
*OnHover='images/button2.png'&lt;br /&gt;
** image of the button when mouse hovers it&lt;br /&gt;
*OnDown='images/button3.png'&lt;br /&gt;
** image of the button when the user click on it&lt;br /&gt;
*Left=80&lt;br /&gt;
** X coordinate of the button (in pixels)&lt;br /&gt;
** Counted from the left of the background image.&lt;br /&gt;
*Top=406&lt;br /&gt;
** Y coordinate of the button (in pixels)&lt;br /&gt;
** Counted from the left of the background image.&lt;br /&gt;
*Mode=1&lt;br /&gt;
** Functions of the button&lt;br /&gt;
*** Possible Mode values:&lt;br /&gt;
**** 1 : Open URL&lt;br /&gt;
**** 2 : Open File/Program&lt;br /&gt;
**** 3 : Displays a Message Box&lt;br /&gt;
**** 4 : Minimize window&lt;br /&gt;
**** 5 : Close Patcher&lt;br /&gt;
**** 6 : Makes this button as clone start button behavior&lt;br /&gt;
*Action='&amp;lt;nowiki&amp;gt;http://example.com&amp;lt;/nowiki&amp;gt;'&lt;br /&gt;
** Applies on modes 1-3&lt;br /&gt;
&lt;br /&gt;
==Custom Notice Box==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[NoticeBox:Name]&lt;br /&gt;
Width=347&lt;br /&gt;
Height=250&lt;br /&gt;
Left=21&lt;br /&gt;
Top=217&lt;br /&gt;
URL='http://domain.com/patch/notice.html'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Declares the notice box&lt;br /&gt;
*[NoticeBox:Name]&lt;br /&gt;
** Name or ID, must be unique for each and every notice boxes&lt;br /&gt;
*Width=347&lt;br /&gt;
** Width of notice box.&lt;br /&gt;
*Height=250&lt;br /&gt;
** Height of notice box.&lt;br /&gt;
*Left=21&lt;br /&gt;
** How far from the left.&lt;br /&gt;
*Top=217&lt;br /&gt;
** How far from the top.&lt;br /&gt;
*URL='&amp;lt;nowiki&amp;gt;http://domain.com/patch/notice.html&amp;lt;/nowiki&amp;gt;'&lt;br /&gt;
** URL to notice HTML file that will be displayed on startup, as long as the player is connected to the internet.&lt;br /&gt;
&lt;br /&gt;
=Writing a language.ini=&lt;br /&gt;
The langauge.ini is a fast way to switch your patcher's langauge without having to change the config file.&lt;br /&gt;
It contains the same configuration lines as the language part of the config.ini&lt;br /&gt;
&lt;br /&gt;
* getting_info=Getting Information...&lt;br /&gt;
** is displayed when the patcher connects to the webhost&lt;br /&gt;
* update_patcher=Updating Patcher...&lt;br /&gt;
** is displayed when the patcher updates itself&lt;br /&gt;
* update_client=Updating Client...&lt;br /&gt;
** is displayed when the patcher upates the client&lt;br /&gt;
* repacking=Repacking resource files...&lt;br /&gt;
** is displayed while the patcher repacks the grf&lt;br /&gt;
* saving_res=Saving Resource...&lt;br /&gt;
** is displayed when the patcher generating table&lt;br /&gt;
* getting_file=Getting file %s.&lt;br /&gt;
** is displayed when the patcher is downloading a file.&lt;br /&gt;
** &amp;quot;%s&amp;quot; will be replaced with the filename of the file&lt;br /&gt;
** if you want to use the &amp;quot;%&amp;quot; symbol in this message, write it as &amp;quot;%%&amp;quot;!&lt;br /&gt;
* need_defrag=Data fragment reached %u%%, would you like to defrag now?&lt;br /&gt;
** is displayed when the grf fragmentation reaches a certain level (configured in the main.ini)&lt;br /&gt;
** &amp;quot;%u&amp;quot; will be replaced with a numeric value&lt;br /&gt;
** if you want to use the &amp;quot;%&amp;quot; symbol in this message, write it as &amp;quot;%%&amp;quot;!&lt;br /&gt;
* defraging=Defragment in process...&lt;br /&gt;
** is displayed while the patcher defragments the grf&lt;br /&gt;
* confirmation=Waiting Confirmation...&lt;br /&gt;
** is displayed while waiting for a reply from the user&lt;br /&gt;
* client_locked=Client Application is locked&lt;br /&gt;
** is displayed when trying to patch a running client&lt;br /&gt;
* failed_to_communicate=Failed to communicate with server&lt;br /&gt;
** is displayed when the patcher can't connect to the webhost&lt;br /&gt;
* failed_to_get=Failed to get %s&lt;br /&gt;
** is displayed when the patcher cannot find a file on the webhost&lt;br /&gt;
** &amp;quot;%s&amp;quot; will be replaced by the filename of the file&lt;br /&gt;
** if you want to use the &amp;quot;%&amp;quot; symbol in this message, write it as &amp;quot;%%&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
=Packing the Config Into the Patcher=&lt;br /&gt;
&lt;br /&gt;
Make sure the following files are in the same folder before proceeding:&lt;br /&gt;
* config.ini&lt;br /&gt;
* language.ini (optional)&lt;br /&gt;
* Skin Files&lt;br /&gt;
* ConfigPacker.exe&lt;br /&gt;
&lt;br /&gt;
Now, we are going to pack the config into the patcher.&lt;br /&gt;
* Start ConfigPacker&lt;br /&gt;
* Select your copy of Thor.exe by clicking &amp;quot;browse&amp;quot;&lt;br /&gt;
* Press &amp;quot;Combine&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Writing the main.ini=&lt;br /&gt;
==[Main]==&lt;br /&gt;
*allow=true&lt;br /&gt;
** Allow patching or not.&lt;br /&gt;
*Force_Start=false&lt;br /&gt;
*policy_msg=&lt;br /&gt;
&lt;br /&gt;
* file_url=&amp;lt;nowiki&amp;gt;http://domain.com/patch/data/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** the URL where you plan to save your patches in&lt;br /&gt;
*** supports both HTTP and FTP&lt;br /&gt;
**** HTTP: use the following format:&lt;br /&gt;
***** &amp;lt;nowiki&amp;gt;http://domain.com/dir/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**** FTP : &lt;br /&gt;
***** connecting as anonymous:&lt;br /&gt;
****** &amp;lt;nowiki&amp;gt;ftp://domain.com/dir/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
***** connecting with user &amp;amp; pass:&lt;br /&gt;
****** &amp;lt;nowiki&amp;gt;ftp://username:password@domain.com:port/dir/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
****** username is required if you want to use a password&lt;br /&gt;
****** if you don't specify the port, the default one will be used&lt;br /&gt;
&lt;br /&gt;
==[Patch]==&lt;br /&gt;
*ClientSum=&lt;br /&gt;
*PatcherSum=&lt;br /&gt;
** Can be obtained from CheckSum tool.&lt;br /&gt;
&lt;br /&gt;
*ClientPath=&lt;br /&gt;
*PatcherPath=&lt;br /&gt;
** Filename of patch file when update patcher/client. These files should store in the place with other patch files.&lt;br /&gt;
&lt;br /&gt;
*PatchList=plist.txt&lt;br /&gt;
** Patch list file.&lt;br /&gt;
&lt;br /&gt;
=Writing the Notice Page=&lt;br /&gt;
The archive includes a sample notice.html, but you can use other formats like .php, .asp etc. By doing so, you also need change notice_file in '''config.ini'''.&lt;br /&gt;
&lt;br /&gt;
If for example, you would like a feed exported from your &amp;quot;News and Announcements&amp;quot; sub-forum (or variations thereof), you could easily include a small snippet of php on the page to echo out a few of your latest topics. For example, the following code would be sufficient to output the latest 5 topics in your notice.php:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 $content = file_get_contents('http://mywebsite.com/forums/index.php?/rss/forums/1-announcements/');&lt;br /&gt;
 if($content) {&lt;br /&gt;
 	$i = 0;&lt;br /&gt;
 	$xml = new SimpleXmlElement($content);&lt;br /&gt;
 	$newsAmount = (int)5;&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?php if(isset($xml) &amp;amp;&amp;amp; isset($xml-&amp;gt;channel)): ?&amp;gt;&lt;br /&gt;
 	&amp;lt;?php foreach($xml-&amp;gt;channel-&amp;gt;item as $rssItem): ?&amp;gt;&lt;br /&gt;
 		&amp;lt;?php $i++; if($i &amp;lt;= $newsAmount): ?&amp;gt;&lt;br /&gt;
 		&amp;lt;nowiki&amp;gt;&amp;lt;div style=&amp;quot;padding-left: 20px;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 			&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;?php echo $rssItem-&amp;gt;link ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $rssItem-&amp;gt;title ?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 			&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 				&amp;lt;?php echo $rssItem-&amp;gt;description ?&amp;gt;&lt;br /&gt;
 				&amp;lt;?php echo date('M j, Y', strtotime($rssItem-&amp;gt;pubDate)) ?&amp;gt;&lt;br /&gt;
 			&amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 			&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		&amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		&amp;lt;?php endif ?&amp;gt;&lt;br /&gt;
 	&amp;lt;?php endforeach ?&amp;gt;&lt;br /&gt;
 &amp;lt;?php endif ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to ensure that the forum topics you are exporting have an RSS feed being output. If not (in the case of IPB especially) you will need to login to the admin panel and create the export feed manually.&lt;br /&gt;
&lt;br /&gt;
=Patch List=&lt;br /&gt;
By default, the file containing a list of your uploaded patches is called plist.txt, and is defined in the main.ini file situated on your web host. Patches should be defined in sequential number like so:&lt;br /&gt;
 ...&lt;br /&gt;
 15 20131106_newclient.thor&lt;br /&gt;
 16 20131106_GM_Fix.thor&lt;br /&gt;
 17 20131106_Wings.thor&lt;br /&gt;
 ... etc&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[GRF]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://thor.aeomin.net/ Official Thor Patcher Homepage]&lt;br /&gt;
* [http://www.eathena.ws/board/index.php?showtopic=171632 Official Thor Patcher Thread]&lt;br /&gt;
&lt;br /&gt;
[[Category:Patchers]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Sakray</id>
		<title>Sakray</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Sakray"/>
				<updated>2014-01-23T04:43:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Sakray''' is what official [[Ragnarok Online]] test servers are usually referred to. They are used to test new content and features, before they get installed on the normal servers. When the name &amp;quot;Sakray&amp;quot; is used alone, it typically refers to the kRO Sakray server. Sakray servers are always accessible via a separate client, which is available through a separate download.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
===Renewal===&lt;br /&gt;
Gravity discontinued the original Sakray development after June 17, 2009, where the last Sakray client was released, and replaced it with Sakray Renewal, which is mostly referred to as &amp;quot;Renewal&amp;quot; or &amp;quot;RE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On kRO, on July 28th Gravity set up a new test server for their Ragnarok Renewal Project. The Renewal is a full scale re-balancing of Ragnarok. The plan is to make RO more accessible to users, and more in line with modern day MMORPG's. In addition, the new mechanics are intended so that they can easily add and improve on current game content (such as 3rd jobs) without destroying game balance.&lt;br /&gt;
&lt;br /&gt;
The intention for renewing Ragnarok Online, was partially the decreasing interest in the game, due to it's age and lack of features present in latest MMORPG, such as tabbed chat or safe skill point distribution, which were part of the first round of renewal, the interface renewal. Further changes include an overhaul in the stat, damage and experience calculation.&lt;br /&gt;
&lt;br /&gt;
Schedule for tests of Renewal Server:&lt;br /&gt;
* Closed Beta Test&lt;br /&gt;
  Start Date: 2008/07/30&lt;br /&gt;
  Server Name: Sakray Renewal Test Server&lt;br /&gt;
  Participation: Accepted testers&lt;br /&gt;
  Test Period: 2008/07/30 ~ 2008/08/27 (4 weeks)&lt;br /&gt;
* Open Beta Test&lt;br /&gt;
  Start Date: 2008/08/27&lt;br /&gt;
  Server Name: Sakray Renewal Test Server&lt;br /&gt;
  Participation: Anyone&lt;br /&gt;
  Test Period: 2008/08/27 ~ 2008/09/24 (4 weeks)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
[[Hexing|Hexed]] kRO Sakray clients are the most used clients with [[Hercules]], although a few people prefer using kRO (live server) clients or clients from different service providers. &lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/AID</id>
		<title>AID</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/AID"/>
				<updated>2014-01-23T04:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
An '''account id''' uniquely identifies a player (gender Female(F) or Male (M)) or server account (gender S) not only inside the database, but also in inter-server communication and in associations of data with an account, such as [[Variables|account variables]]. Account ID is also used to save the character data, and is uniqu. In-game it is mostly used as a [[GID|game id]]. It should not be confused with [[CID|character id]] which identifies a character.&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Adding_a_Script</id>
		<title>Adding a Script</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Adding_a_Script"/>
				<updated>2014-01-04T16:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Tips &amp;amp; Hints */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding and Activating Scripts ==&lt;br /&gt;
Scripts are usually kept in the ''npc'' folder for the sake of organization even though scripts can contain more than a mere NPC.  All files are saved as text files.  Scripts cannot be loaded on to the server unless their text file is activated in a *.conf file.&lt;br /&gt;
&lt;br /&gt;
=== A New Script ===&lt;br /&gt;
New scripts must be saved as a text file first.  The file may be located anywhere in the Hercules directory, but is in the ''npc'' folder by default.&lt;br /&gt;
&lt;br /&gt;
=== Configuration Files ===&lt;br /&gt;
Any text editor may be used to edit *.conf files.  The ''npc/*.conf'' files are used to determine which script text files should be loaded.  There are about a dozen *.conf that handle different groups of scripts for the purpose of organization.  It does not matter which *.conf holds your custom scripts as long as the path is correct.&lt;br /&gt;
&lt;br /&gt;
Typical *.conf entry layout:&lt;br /&gt;
 npc: npc/path/to/yourscript1.txt&lt;br /&gt;
 // npc: npc/path/to/yourscript2.txt&lt;br /&gt;
Note how the second line is preceded with a double slash.  Content on the same line after double slashes will not be parsed.  In other words, ''script2.txt'' will not be loaded.  The slashes can be used to write comments.&lt;br /&gt;
&lt;br /&gt;
{{git|npc/scripts_main.conf}} determines which of the *.conf will be read by the server.&lt;br /&gt;
 import: npc/path/to/configuration.conf&lt;br /&gt;
&lt;br /&gt;
=== The NPC in Game ===&lt;br /&gt;
After adding the script, it must be loaded before the script contents take effect in game.  There are a few ways to do this.&lt;br /&gt;
* The map server can be rebooted.  This is generally the safest route though not the most convenient for active servers.&lt;br /&gt;
* The GM command '''@reloadscript''' maybe used in game, though this may cause monster spawn bugs.&lt;br /&gt;
* If a script needs to be reloaded because it has been edited, the GM commands '''@loadnpc''' and '''@unloadnpc''' may be used.  This method is not convenient for script texts that contain multiple NPCs.&lt;br /&gt;
&lt;br /&gt;
== Client Side ==&lt;br /&gt;
The NPC name used in examples is &amp;quot;Teddy&amp;quot;.&lt;br /&gt;
===Lua===&lt;br /&gt;
The two files you will need to open and edit are &amp;quot;jobname.lua&amp;quot; and &amp;quot;npcidentity.lua&amp;quot;. Jobname.lua will look like:&lt;br /&gt;
&lt;br /&gt;
 	[jobtbl.NPCNAME] = &amp;quot;NPCNAME&amp;quot;,&lt;br /&gt;
Example:&lt;br /&gt;
 	[jobtbl.TEDDY] = &amp;quot;TEDDY&amp;quot;,&lt;br /&gt;
npcidentity.lua will look like:&lt;br /&gt;
 	[&amp;quot;NPCNAME&amp;quot;] = NPCID,&lt;br /&gt;
Example:&lt;br /&gt;
 	[&amp;quot;TEDDY&amp;quot;] = 587,&lt;br /&gt;
If your NPC has spaces in its name, its best to either remove them or replace them with underscores. So if the NPC's name was Brown Teddy the sprite's name would be Brown_Teddy.spr or BrownTeddy.spr and the lua files would be BROWN_TEDDY or BROWNTEDDY. Whatever ID you choose for your sprite, either NPC Sprite name(Case-Sensitive, In Capital Letters) or ID will be use in the script. The beginning of my script will look like:&lt;br /&gt;
&lt;br /&gt;
 	xmas_in,111,107,3	script	Teddy	587,{&lt;br /&gt;
 	xmas_in,111,107,3	script	Teddy	TEDDY,{&lt;br /&gt;
&lt;br /&gt;
===Sprite===&lt;br /&gt;
The sprite part is straightforward, just Teddy.spr is fine, you don't need Teddy_m.spr or anything like that, but if you want to add m for male to the name you can do that, but it won't effect its functionality in-game. NPC sprites are located in data/sprite/npc.&lt;br /&gt;
&lt;br /&gt;
== Tips &amp;amp; Hints ==&lt;br /&gt;
* If you are copy/pasting a script from a forum, be sure to check that the tabs are still intact.&lt;br /&gt;
* Remember that paths and file names are case sensitive.&lt;br /&gt;
* Remember to save after editing.&lt;br /&gt;
* Create your own NPC folder and *.conf file.  This will make it much easier to keep track of your own scripts and can reduce the hassle when merging new revisions of Hercules.  Follow the basic layout of the other *.conf files and remember to import the *.conf in {{git|npc/scripts_main.conf}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Modeling</id>
		<title>Modeling</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Modeling"/>
				<updated>2013-12-29T13:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:incomplete]]&lt;br /&gt;
&lt;br /&gt;
== Modeling ==&lt;br /&gt;
&lt;br /&gt;
While there is Borf's '3ds to RSM' converter tool, Borf has it added to Borf edit so use the one there as it is likely to be updated. Making a model that can be converted to RSM format is another issue. Someone who has done this can fill us in.&lt;br /&gt;
&lt;br /&gt;
== What You Will Need ==&lt;br /&gt;
&lt;br /&gt;
*Browedit&lt;br /&gt;
*3d Studio Max (Or something that can save to 3ds files)&lt;br /&gt;
&lt;br /&gt;
== 3ds to RSM ==&lt;br /&gt;
&lt;br /&gt;
Now the 3ds to RSM is a bit limited due to the fact the object must be fully textured and the textures be with the file (If your missing any it will make the tool list them as .bmp) and once converted to rsm the images have to be flipped upside down on the vertical axis and saved as bmp files... Ask Borf about that if you want more info.&lt;br /&gt;
While with these limitation the tool is easy to use, simply open Browedit, load a map (It won't do anything until you do), and under 'Tools &amp;gt; Convert 3ds to RSM' select your 3d Studio Max file and click 'open'. The plug-in will then create a .rsm file which you can then add to Browedit (add it to the model text file or your own model text file) and then to your maps.&lt;br /&gt;
&lt;br /&gt;
== RSM to 3ds ==&lt;br /&gt;
&lt;br /&gt;
To date there is nothing to convert RSM files to 3ds files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mapping]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Git</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Git"/>
				<updated>2013-12-29T13:20:40Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:incomplete]]&lt;br /&gt;
==Preface==&lt;br /&gt;
This article will cover the '''Git''' details related to Hercules. '''Git''' is a version control system that allows multiple users to contribute to the development of Hercules, if permitted. It is also the most efficient method to downloading the source code of Hercules.&lt;br /&gt;
&lt;br /&gt;
==About Git==&lt;br /&gt;
As mentioned above '''Subversion''' is a version control system that allows users to download the latest source code. It uses the structure of trunk and branch to declare the development code and the stable code. A '''trunk''' is referred to as the development code that needs to be tested and validated for bugs. A '''branch''' is typically used for developing larger features or as alternative development path, without breaking current trunk code. Exception to this is '''stable''', which is considered stable subset of trunk.&lt;br /&gt;
&lt;br /&gt;
===Checkout===&lt;br /&gt;
When you '''checkout''' a piece of code, it is downloaded, along with all history, properties and files, onto your machine so you can make local changes or use it in a production environment. &lt;br /&gt;
&lt;br /&gt;
===Commit===&lt;br /&gt;
When you '''commit''' a piece of code, you are uploading your changes back to the server and increasing the revision number of the SVN by 1. The increase in revision number by 1 is done no matter how many changes are made per commit. Each commit includes the author's name, what they changed and when they changed it, which can be viewed and referenced later. &lt;br /&gt;
&lt;br /&gt;
Only members of the [[Staff|Hercules development team]] can commit code straight to the Hercules Git.&lt;br /&gt;
&lt;br /&gt;
===Update===&lt;br /&gt;
When you '''update''' your SVN, you are taking your local copy of the SVN that was previously '''checked out''' and applying the latest updates from the server to it. In this operation, many files are changed, but some are added, deleted or moved. When you update your copy of the SVN, a lot of conflicts can happen, so keep an eye out of those.&lt;br /&gt;
&lt;br /&gt;
===Making changes===&lt;br /&gt;
When you make a change to your copy of the Git on Windows, a number of different icons will appear in the directory of the SVN. Below is a brief explanation of what each of these icons mean:&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:SVN_red.jpg|Modified SVN tag]]&lt;br /&gt;
|Changes have been made from the original downloaded script this indicates what scripts you have modified.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:SVN_yellow.jpg|Conflict SVN tag]]&lt;br /&gt;
|Conflicts with original script you need to search for the &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;mine&amp;gt; and &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;lt;mine&amp;gt; to see what parts are conflicting and change accordingly.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:SVN_green.jpg|Unmodified SVN tag]]&lt;br /&gt;
|No changes with original script have been made.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;white-space:nowrap;&amp;quot;|[[Image:SVN_-.jpg|Generated SVN tag]] or [[Image:SVN_q.jpg|New SVN tag]]&lt;br /&gt;
|Files you added yourself that weren't in the original repository.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Obtain/Install Subversion===&lt;br /&gt;
Please see the [[:Category:Installation]] appropriate category for installation of Subversion on your operating system of choice and how to utilize it.&lt;br /&gt;
&lt;br /&gt;
==Hercules Git Details==&lt;br /&gt;
You can find the root or index of the Hercules source code at the following link: &amp;lt;code&amp;gt;{{git||full}}&amp;lt;/code&amp;gt;. This link can be used if you need to view a single file and don't want to dig up your &amp;quot;copy&amp;quot; of the source code.&lt;br /&gt;
&lt;br /&gt;
===Hercules Trunk===&lt;br /&gt;
'''Hercules Trunk''' is used as the ''testing'' or otherwise development code. It has all of the latest features, but is not guaranteed to be bug or problem free.&lt;br /&gt;
&lt;br /&gt;
You can checkout the trunk branch from the following link:&lt;br /&gt;
&amp;lt;code&amp;gt;{{git|trunk/}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hercules Developer Branches===&lt;br /&gt;
Each developer that contributes to the Hercules Project is welcome to their own folder on the SVN, where they may make their own branch. A lot of times, this separate branch is a testing bed for a new feature. You should never assume that any branch that is not trunk or not stable is usable. Often times, it is not.&lt;br /&gt;
&lt;br /&gt;
==Using .diff/.patch files==&lt;br /&gt;
{{EntirePage|Diff}}&lt;br /&gt;
Often times, developers and contributors will release their work with a .diff or .patch file. these files are designed specifically to be applied to an SVN revision and 'patched' in. &lt;br /&gt;
&lt;br /&gt;
In Windows, you can apply a diff or patch file by placing the diff file into the SVN directory, right clicking the diff or patch file, navigating to the Subversion menu and clicking 'Apply Patch'.&lt;br /&gt;
&lt;br /&gt;
If the revision numbers are different, or the code is different in anyway, the patch will likely fail with the error message that the revision numbers do not match. The diff file will include some important symbols and numbers to help you apply them manually.&lt;br /&gt;
 /path/to/file [Revision 233]&lt;br /&gt;
 @@ +241,4 -241,4 @@&lt;br /&gt;
 + This line will be added at the line number or position indicated above.&lt;br /&gt;
 - This line will be removed at the line number or position indicated above.&lt;br /&gt;
So in the file, we're to remove line 241 and replace it with the line that has the '+' next to it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Mob</id>
		<title>Mob</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Mob"/>
				<updated>2013-12-29T13:19:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:incomplete]]&lt;br /&gt;
A [[Mob]] is basically a monster. Mobs range from Poring to Baphomet. Most commonly, the word 'mob' is used to refer to monster.&lt;br /&gt;
&lt;br /&gt;
This page will contain all functions on mob.c and mob.h&lt;br /&gt;
&lt;br /&gt;
[[Mob Once Spawn]]&lt;br /&gt;
&lt;br /&gt;
[[Mob Get Random Id]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source_Functions]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Mapflag</id>
		<title>Mapflag</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Mapflag"/>
				<updated>2013-12-29T13:18:08Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:incomplete]]&lt;br /&gt;
== Map Flags are used to set serval permissions on maps. ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Battleground&lt;br /&gt;
# GvG&lt;br /&gt;
# Nightenabled&lt;br /&gt;
# Nightmare&lt;br /&gt;
# Nobranch&lt;br /&gt;
# Noexp&lt;br /&gt;
# Noicewall&lt;br /&gt;
# Noloot&lt;br /&gt;
# Nomemo&lt;br /&gt;
# Nopenalty&lt;br /&gt;
# Nopvp&lt;br /&gt;
# Noreturn&lt;br /&gt;
# Nosave&lt;br /&gt;
# Noskill&lt;br /&gt;
# Noteleport&lt;br /&gt;
# Novending&lt;br /&gt;
# Nowarp&lt;br /&gt;
# Nowarpto&lt;br /&gt;
# Partylock&lt;br /&gt;
# Pvp&lt;br /&gt;
# Pvpnoguild&lt;br /&gt;
# Pvpnoparty&lt;br /&gt;
# Reset&lt;br /&gt;
# Skillduration&lt;br /&gt;
# Skillmodifier&lt;br /&gt;
# Town&lt;br /&gt;
# Zone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Battleground&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Defines the Map as Battleground.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/battleground.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' 2 ( Activate Scoreboard )&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag battleground &amp;lt;parameter(Optional)&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Gvg &amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Defines the Map as Guild Vs. Guild Map, so Guilds can Fight each other.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/gvg.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag gvg&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Nightenabled &amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Nightmode Effects on defined Maps.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/night.txt &amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nightenabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nightmare &amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Drops Player Items or Equipments on player death.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nightmare.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''ID:''' ItemID,random&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Type:''' inventory, equip, all&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Percent:''' Droprate&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag pvpnightmaredrop &amp;lt;id&amp;gt;,&amp;lt;type&amp;gt;,&amp;lt;percent&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Nobranch&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disables Dead Branch / Bloody Brunch / Red Brunch and Porinx Box.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nobranch.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nobranch&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noexp&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Exp gain for Players.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:'''npc/mapflag/noexp.php&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noexp&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noicewall&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Icewall on a Map.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/noicewall.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noicewall&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Noloot&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable loot on a Map.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/noloot.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;map&amp;gt; mapflag noloot&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noloot&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nomemo&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable /memo on a Map&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nomemo.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nomemo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Nopenalty&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable death penalty.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nopenalty.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nopenalty&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nopvp&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable PvP (Player vs. Player) on a Map&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nopvp.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' off&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag pvp &amp;lt;parameter&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Noreturn&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disables the Return Warp.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/noreturn.php&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noreturn&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nosave&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disables Autosave on a Map, if the Parameter isnt defined, Warp to the last field.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nosave.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' SavePoint&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nosave &amp;lt;parameter(Optional)&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Noskill&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Skills&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/noskill.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noskill&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noteleport&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable all kinds of Teleport.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/noteleport.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag noteleport&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Novending&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Vending&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/novending.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag novending&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nowarp&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable @GO&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nowarp.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nowarp&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nowarpto&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Warp to&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/nowarpto.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag nowarpto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Partylock&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disables Party modifications&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/partylock.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag partylock&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pvp&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Defines the Map as Player vs Player Map&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/pvp.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag pvp&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pvpnoguild&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Ignore Aliances on Guild vs Guild Maps&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/pvpnoguild.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag pvpnoguild &amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pvpnoparty&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Ignore Party on Player vs Player Maps&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/pvpnoparty.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag pvpnoparty&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reset&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Disable Neuralizer Item(12213) usage&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/reset.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag reset&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skillduration&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Set Duration for a Skill on a Map&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/skillduration.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' 0-...(?) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag skillduration &amp;lt;parameter&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skillmodifier&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Set the Damage for a Skill on a Map&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/skillmodifier.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:'''0-...(?)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag skillmodifier &amp;lt;parameter&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Town&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Defines a Map as a Town.&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/town.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' &amp;lt;none&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: &amp;lt;map&amp;gt; mapflag town&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zone&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Description:''' Flags maps as part of zones&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''File:''' npc/mapflag/zone.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''Parameter:''' see mapzonedb.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; usage: (?)	mapflag	zone	Aldebaran Turbo Track (?)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/CID</id>
		<title>CID</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/CID"/>
				<updated>2013-12-29T13:17:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:incomplete]]&lt;br /&gt;
A '''character ID''' uniquely identifies a character, not only inside the database, but also in inter-server communication and association of data with a character, such as [[Variables|character variables]] or [[Status_List|status ailments]]. The character ID fulfills the same role as a combination of [[AID|account ID]] and character's slot ID, which means, if two character ids match their account IDs are automatically the same as well.&lt;br /&gt;
&lt;br /&gt;
The Character ID typically increments starting from 150000 and going up.&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Spriting</id>
		<title>Spriting</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Spriting"/>
				<updated>2013-12-29T13:15:40Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:incomplete]]&lt;br /&gt;
&lt;br /&gt;
== Creating Your Own Frames ==&lt;br /&gt;
&lt;br /&gt;
You will need&lt;br /&gt;
&lt;br /&gt;
* Image Editing Software (e.g. [[wikipedia:Adobe_Photoshop|Photoshop]])&lt;br /&gt;
* Concept&lt;br /&gt;
* Skill&lt;br /&gt;
&lt;br /&gt;
When creating a new image, it is recommended that you use the bitmap format. The size itself depends on what it is you are planing to make. It does not need to be a particular size (only the inventory item sprite and .bmp image must have a size of 24x24 px, it is recommended that the drop sprite be this size too), but remember the bigger it is the more likely it is to look odd inside the game (and if your frames are too big, there is a big chance of getting an error ingame). The background needs to 'Magenta'. The hexadecimal format of this color is #FF00FF. The RGB for this color is R 255, G 0, B 255. &lt;br /&gt;
&lt;br /&gt;
Now that you have the size and everything figured out, its time to change it from .bmp to indexed color. Download this file: [[RO Pixeling Colors|RO common colors]], then navigate to Image &amp;gt; Mode &amp;gt; Indexed Color... In the window that pops up, the palette can be anything you want, but if forced you select Custom... Then select load and change file type from .act to .pal, then find the .pal file then select and open it, it will be wherever you saved the file to. Once it has loaded, make sure the colors are 256, then select OK, then you will now have an image compatible with ragnarok, and you can now draw out your image. After this you can save your image as .bmp (bitmap).&lt;br /&gt;
&lt;br /&gt;
You must get familiarized with this color table (you can access to your color table in Photoshop through Image &amp;gt; Mode &amp;gt; Color Table). First color in the color table is the transparency color. This means that ingame, this color won't appear. This color must be #FF00FF for inventory items (you can change the colors of the color table by clicking on them. You can also make color gradients by selecting a group of colors if you are working with Photoshop). It can be any other color for Mobs, Jobs, Headgears, etc. However, It is recommended to use this color as background transparency color. Make sure background color is the first color in the color table. It is common that color #FF00FF (magenta) appears as the third color in the color table, and not first. If you are working with inventory items images, you must change this color to any other color and make first color #FF00FF. Then, you must change the background color to #FF00FF manually (replacing the background color for #FF00FF). We do this because you may have two magenta's in your color table (one in the first cell and another one in the third). If this happens and you make your background color #FF00FF you may be using the third color, and not first. What will happen then? It will make a part of your inventory skin background disappear. So background color must be always the first color in the color table, and when we are working with inventory items, it also must be color #FF00FF.&lt;br /&gt;
&lt;br /&gt;
Some spriters usually use some neon colors as references, to make the edges of their sprite before coloring it. It is recommended you start making only the edges, so you can concentrate only in the perspective and size of your sprite without caring about shading. Neon colors are pretty visible, so if you happen to need them, add some neon colors to your color table and then use them in your frame.&lt;br /&gt;
&lt;br /&gt;
Finally, when you finished making your base image for pixeling, you can put an image of the color table and pick colors with the eyedropper. If you are working with paint, in example, you can cut and paste an image with all the RO common colors. There is a small [http://www.divinero.net/devilevil/PixelingColorsTable.bmp table of RO colors] that you can use for this.&lt;br /&gt;
&lt;br /&gt;
== Making A Sprite ==&lt;br /&gt;
&lt;br /&gt;
As soon as you have one frame (8bits/256 colors bmp image), you will be able to create your sprite. For this, you will need a SPR maker. You can use [http://www.divinero.net/devilevil/archivos/tools/SPRConviewer.rar SPR Conviewer] (made by bakausagi) to make your sprite. Once you opened SPR conview, you will have to go to &amp;quot;Convert &amp;gt; Bmp to SPR&amp;quot; (only works with 8 bits bmp images). Click on &amp;quot;Add&amp;quot; and select all your frames. Try to name them like &amp;quot;Frame1&amp;quot;, &amp;quot;Frame2&amp;quot;, etc. and then select them all at the same time. If not, the order of frames in the sprite may not be correct. Avoid using control + click to add more frames. Select them all and if you selected something you don't want, just use control + click to deselect it. But don't use it to select frames because it may mess the frames up. Then, browse the directory where you want to save the sprite. When you finished with that, disable &amp;quot;encode&amp;quot; (because the frames may appear messed up and cut). Click convert and then open the sprite in conview to make sure it looks right.&lt;br /&gt;
&lt;br /&gt;
There are other sprites that don't use 8 bits bmp images, but 32 bits TGA images. Those can only be made with [http://ratemyserver.net/index.php?page=download_tool Actor] (either 1 or 2). You must add image per image and then save it as a sprite. You can't open these sprites with SPR Conview. The making of this sprite is different and more advanced, but you will be able to use four channels (RGB and Alpha).&lt;br /&gt;
&lt;br /&gt;
== Editing a Sprite ==&lt;br /&gt;
&lt;br /&gt;
Remember that if this is a custom sprite that someone else made, to first ask permission before editing the sprite. Use a tool like SPR Conview to first convert the sprite from .spr (sprite) format to .bmp (bitmap) format. To be safe your sprite should have the same frame's as the one you are editing (if you plan to make a whole new sprite based off the original), but it is not required. If you are to share your sprite with the community, please include the words &amp;quot;Originally made by: (Username here)&amp;quot;, as the original owner may get angry.&lt;br /&gt;
&lt;br /&gt;
== Simple Way To Prevent Theft ==&lt;br /&gt;
&lt;br /&gt;
'''Note: This doesn't guarantee that your sprite is safe. But if this frame is included you have definitive proof that the sprite is yours.'''&lt;br /&gt;
&lt;br /&gt;
Simply include a frame with the sprite that has your username or name on it, it may show up in game depending on what kind of sprite it is. Just make sure you have all the frames required filled, then include one extra frame with your credits. For example the drop sprite for an item only needs one frame, so you can include a second with your credits. The maximum size the credit frame can be is 179x33.&lt;br /&gt;
&lt;br /&gt;
If you had different versions of the sprite you can also include one frame or a screen shot of the frames as evidence.&lt;br /&gt;
&lt;br /&gt;
You can also put your username on the collection image. This can be easily removed from the folder, but most servers do not remove the collection image.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[:Category:Data|Data]]&lt;br /&gt;
* [[:Category:Database|Database]]&lt;br /&gt;
* [[Palettes]]&lt;br /&gt;
* [[Sprite Recolors]]&lt;br /&gt;
* [[Pixeling]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Spriting]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Palettes</id>
		<title>Palettes</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Palettes"/>
				<updated>2013-12-29T13:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{merge&lt;br /&gt;
|target=[[Alternate Palette Guide]]&lt;br /&gt;
|talk=Talk:Alternate Palette Guide&lt;br /&gt;
|date=July 2010&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What you need ==&lt;br /&gt;
&lt;br /&gt;
*SPR Conview&lt;br /&gt;
*Photoshop or something else that can make .pal palette files&lt;br /&gt;
&lt;br /&gt;
== Editing Pallets With Photoshop ==&lt;br /&gt;
&lt;br /&gt;
Editing pallets with Photoshop is a simple task. Simply load a sprite with a sprite viewer such as SPR Conview or SprTool+4-6 and export a single frame of the sprite as an image and load it with Photoshop. If your doing job sprites use a image from the job class you wish to make your pallet for and the same goes for hairs, head gear and monsters. As each sprite can have it's own pallet.&lt;br /&gt;
&lt;br /&gt;
[[Image:SPR Conview.jpg]]&lt;br /&gt;
[[Image:sprite.jpg]]&lt;br /&gt;
&lt;br /&gt;
Once loaded into Photoshop load the color table via the 'Image &amp;gt; Mode &amp;gt; Color Table' like so:&lt;br /&gt;
&lt;br /&gt;
[[Image:load color table.jpg]]&lt;br /&gt;
&lt;br /&gt;
If the color table is grayed out then the image isn't 256 colors and you won't be able to proceed. Once the color table window is up you'll see the range of colors available and used in the original sprite. Edit them is simple, either click a single color box or select a group (Selecting a group allows you to easily create a gradient range of colors by picking a light color and then picking a darker color, remember to click the 'ok' button.) then pick the new color or enter in the color values into any of the color boxes.&lt;br /&gt;
&lt;br /&gt;
[[Image:edit color table.jpg]]&lt;br /&gt;
&lt;br /&gt;
Once your new pallet is created simple click the save button in the color table window and save your pallet to a .pal file.&lt;br /&gt;
&lt;br /&gt;
== Editing The .Pal File For Use in Ragnarok With Notepad ==&lt;br /&gt;
&lt;br /&gt;
Ragnarok Online Pallet files are simply normal pallet files (.pal) with the header removed. Simply open the file like so&lt;br /&gt;
&lt;br /&gt;
[[Image:notepad1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Then selecting whats highlighted in the image and delete it and save. It's that simple.&lt;br /&gt;
&lt;br /&gt;
== Editing The .Pal File For Use in Ragnarok Without Notepad ==&lt;br /&gt;
&lt;br /&gt;
If you have a tool or something please fill in this area.&lt;br /&gt;
&lt;br /&gt;
== Replacing A Sprite's Pallet ==&lt;br /&gt;
&lt;br /&gt;
Replacing a sprite's pallet in order to recolor it there are a few options, the most simple and probably the easiest way is to load the sprite into SPR Conview and under 'Pallet &amp;gt; Open Pallet' select the pallet you made before (normal non RO pallet) and then save the sprite. It's that easy.&lt;br /&gt;
&lt;br /&gt;
== Client naming scheme for palettes ==&lt;br /&gt;
&lt;br /&gt;
Cloth palettes go to '''data\palette\¸ö\''' (data\palette\몸\), each file name follows the pattern '''&amp;lt;jobname&amp;gt;_&amp;lt;gender&amp;gt;_&amp;lt;palette id&amp;gt;.pal''', ex. ¸¶¹ý»ç_¿©_4.pal (마법사_여_4.pal) for a female wizard palette).&lt;br /&gt;
&lt;br /&gt;
The hair palettes go to '''data\palette\¸Ó¸®\''' (data\palette\머리\) and follow the pattern '''¸Ó¸®&amp;lt;head sprite id&amp;gt;_&amp;lt;gender&amp;gt;_&amp;lt;palette id&amp;gt;.pal''', ex. ¸Ó¸®8_¿©_2.pal (머리8_여_2.pal) for a female head sprite 8.&lt;br /&gt;
&lt;br /&gt;
== Technical Support, or FAQs ==&lt;br /&gt;
*Q: My palettes won't show up in game, it says invalid number, I cannot access my palettes in the dye changer. How do I fix this?&lt;br /&gt;
*A: Athena servers must have the conf settings changed to support new palettes for dyes before commands and npcs can use them. Once the conf is edited the dye npc your using must also have it's max dyes increased in number or players will not be able to select any new dyes. Also not all jobs have their own pallet files. Most jobs will use the pallets of the first jobs that come before them instead of using their own, this was done in order to save space in the grf file and thou save on download bandwidth, also time and effort in making them.&lt;br /&gt;
*Q: My palette shows up as black with a bunch of neon lines and crap. Why?&lt;br /&gt;
*A: This could be a variety of things. The main reason is usually because they are not places in the right spot, and your client just doesn't error for palettes. This is due to the client not finding any pallet files because their either in the wrong place or incorrectly named. Job pallets and hair pallets have their own folders along with a folder for each sex and then the file name is made up of the job name (or hair) sex and then the number pallet. Another reason could be that you didn't convert it to RO format by removing the things pictured above. Make sure you do that.&lt;br /&gt;
&lt;br /&gt;
[[Category:Spriting]]&lt;br /&gt;
&lt;br /&gt;
[[Category:incomplete]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/GDB</id>
		<title>GDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/GDB"/>
				<updated>2013-12-06T10:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dastgirpojee: /* Using gdb with Hercules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GDB stands for GNU Debugger. It is a program for *nix related systems that allows you to view stacktrace and coredumps of your servers if it crashes.&lt;br /&gt;
&lt;br /&gt;
= Getting GDB =&lt;br /&gt;
Typically GDB comes installed on most *nix distro's. It comes installed on FreeBSD 7.1-RELEASE or newer if the ports collection is installed. Typically, it will be located in /usr/bin/gdb, but if it is not, you can either compile it from source or install it using your package manager for your distribution.&lt;br /&gt;
&lt;br /&gt;
== Debian Based (apt-get, aptitude or synaptic) ==&lt;br /&gt;
On Debian based systems, you can use apt-get or aptitude, or the synaptic package manager to install gdb. If you prefer the terminal, you can issue ONE of the following to install gdb:&lt;br /&gt;
&lt;br /&gt;
 [sudo] aptitude install gdb&lt;br /&gt;
 [sudo] apt-get install gdb&lt;br /&gt;
&lt;br /&gt;
If you have access to gdm and the synaptic package manager, you can simply search for 'gdb' and mark for complete installation.&lt;br /&gt;
&lt;br /&gt;
== YUM based (Redhat/CentOS) ==&lt;br /&gt;
On YUM based systems, you can simply issue the following to install gdb via RPM packages:&lt;br /&gt;
&lt;br /&gt;
 yum install gdb&lt;br /&gt;
&lt;br /&gt;
== *BSD based ==&lt;br /&gt;
Typically GDM will come with an install of FreeBSD, but if it's not, it is best to make it from source, skip ahead.&lt;br /&gt;
&lt;br /&gt;
== Compiling from source ==&lt;br /&gt;
Use your favourite download manager (wget, etc) to get the .tar.gz of the latest stable version of gdb from gdb's website. (http://www.gnu.org/software/gdb/)&lt;br /&gt;
&lt;br /&gt;
Extract the .tar.gz using the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -zxf gdb-x.xx.tar.gz&lt;br /&gt;
&lt;br /&gt;
You need a GCC compatible compiler, so if you don't have one, get one now. there is a 99% chance that your distribution comes with a gcc compiler.&lt;br /&gt;
&lt;br /&gt;
 ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Should install it for use. If you're on a *BSD based system, you may have to issue the following command to be able to use it.&lt;br /&gt;
&lt;br /&gt;
 % rehash&lt;br /&gt;
&lt;br /&gt;
= Using gdb with Hercules =&lt;br /&gt;
&lt;br /&gt;
Go to Your Hercules Folder and type the following command&lt;br /&gt;
&lt;br /&gt;
 ulimit -u unlimited&lt;br /&gt;
&lt;br /&gt;
Restart the server then,&lt;br /&gt;
Find out which program(map/char/login server) crashed and it's core file (should be named the same as the server file with an additional &amp;quot;.core&amp;quot; extension).. then on the console, type:&lt;br /&gt;
&lt;br /&gt;
 gdb xxx-server xxx-server.core&lt;br /&gt;
&lt;br /&gt;
'''[xxx = map/char/login (The one which is crashing)]'''&lt;br /&gt;
&lt;br /&gt;
You should get some limited output of the problem, or if the servers do not have a trace, you will get the following error:&lt;br /&gt;
&lt;br /&gt;
 No stack.&lt;br /&gt;
&lt;br /&gt;
If it says Dump file was not found, then type the following command(The file is saved with other name)&lt;br /&gt;
&lt;br /&gt;
 gdb xxx-server core&lt;br /&gt;
&lt;br /&gt;
'''[xxx = map/char/login (The one which is crashing)]'''&lt;br /&gt;
&lt;br /&gt;
If a valid dump was found, you should get a prompt &lt;br /&gt;
&lt;br /&gt;
 gdb&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At that prompt, type:&lt;br /&gt;
&lt;br /&gt;
 gdb&amp;gt; bt full&lt;br /&gt;
&lt;br /&gt;
And that will give you a full output of the problem area and a line number in which you should look for the crash. This just told you where the crash is located and what line you should look at to fix it. If you feel that is an Hercules development problem, feel free to submit a bug with that full report and one of the core developers can look into it.&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [http://www.gnu.org/software/gdb/download/ Download page for GDB]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Dastgirpojee</name></author>	</entry>

	</feed>