<?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=Via</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=Via"/>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Special:Contributions/Via"/>
		<updated>2026-05-05T04:39:12Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21.11</generator>

	<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-02-01T22:18:46Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Some housekeeping.&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;
&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/50-michieru/ Michieru]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&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;
&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 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/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>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/User:Via</id>
		<title>User:Via</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/User:Via"/>
				<updated>2014-01-29T11:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Introduction===&lt;br /&gt;
Welcome to my user page. I joined here in January 2013, to learn and to share my knowledge.&lt;br /&gt;
&lt;br /&gt;
==Personal==&lt;br /&gt;
* Alias: Mumbles (formerly Via)&lt;br /&gt;
* Hometown: San Francisco, California, USA&lt;br /&gt;
* Occupation: Student&lt;br /&gt;
* School: City College of San Francisco&lt;br /&gt;
* Homepage: http://facebook.com/datmumbles&lt;br /&gt;
&lt;br /&gt;
==Hercules==&lt;br /&gt;
* [[Special:Contributions/Via|My Contributions]]&lt;br /&gt;
* [[Special:WantedPages|Wanted Pages]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Basic_Scripting</id>
		<title>Basic Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Basic_Scripting"/>
				<updated>2014-01-28T20:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* NPC */ Formatting. o-o&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The Basics==&lt;br /&gt;
&lt;br /&gt;
Scripts control all NPCs, warps, mob spawns, shops, and quests you will find in the game--and nearly everything else!  Clearly they play a large part in customizing a server, but learning isn't very hard.&lt;br /&gt;
&lt;br /&gt;
Scripts are built up of predefined script commands, all of which can be found in {{git|doc/script_commands.txt}} (for explanations, see [[:Category:Script_Command|Script Commands]]).  Every line should begin with a command and the argument it takes, and must end in a semicolon (or you'll get mapserver errors!).  Arguments are usually separated by commas, and are sometimes contained in parentheses () or curly brackets {}.  Tabs and proper indentation are standard scripting measures.&lt;br /&gt;
&lt;br /&gt;
Scripts are saved as text (*.txt) files, so all code can be written in Notepad.  There are also a lot of scripting programs to use: the most recent and comprehensive one is [http://rathena.org/board/topic/56484-enpc-script-editor/ Vince's eNPC]. All defined functions are highlighted, with an autocomplete feature included, and pressing &amp;quot;F1&amp;quot; will display the corresponding explanation for any command.&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
&lt;br /&gt;
===NPC===&lt;br /&gt;
A '''Script NPC''' will look something like the following:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
&lt;br /&gt;
The first section is the map location of the NPC, followed by its coordinates in x,y and the direction the NPC will face.  Direction numbers are counted counterclockwise in 45º increments, with 0 being the center: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1][0][7] &amp;lt;br&amp;gt;&lt;br /&gt;
[2][&amp;amp;nbsp;&amp;amp;nbsp;][6] &amp;lt;br&amp;gt;&lt;br /&gt;
[3][4][5] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the first tab, the type of script is defined.  For our purposes, it'll stay &amp;quot;script&amp;quot; for now, but can also be function, shop, or cashshop, for starters. &amp;lt;br&amp;gt;&lt;br /&gt;
The name of the NPC is next.  You can use up to 24 characters, so make it unique!  Any duplicates will cause warnings or errors, and the NPC will just be automatically renamed anyway. &amp;lt;br&amp;gt;&lt;br /&gt;
The last number is for the sprite (Ai4rei's sprite list can be found [http://nn.nachtwolke.com/dev/npclist/ here]).  It's followed by a comma and open curly bracket, marking the beginning of the script contents.  Of course, the script must also end in a curly bracket.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Function===&lt;br /&gt;
A '''Function script''' will look almost identical to:&lt;br /&gt;
 function &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Function Name &amp;lt;tab&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
The words &amp;quot;function&amp;quot; and &amp;quot;script&amp;quot; won't change; the name must also be unique.  All functions can be called using the &amp;quot;callfunc&amp;quot; command. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shop===&lt;br /&gt;
A '''Shop''' starts like a normal script:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; shop &amp;lt;tab&amp;gt; Fruit Store &amp;lt;tab&amp;gt; 58,512:-1,513:1000&lt;br /&gt;
&lt;br /&gt;
The first section defines the map, coordinates, and direction.  The word &amp;quot;shop&amp;quot; replaces &amp;quot;script&amp;quot; (alternately, &amp;quot;cashshop&amp;quot; will use Cashpoints instead of Zeny).  The name and sprite ID follow, then a comma. &amp;lt;br&amp;gt;&lt;br /&gt;
Items in the shop are defined in an ID:Price format.  A price of -1 uses the default price in item_db.txt.  Be sure the price is not too low, or a you will open a Zeny exploit in your server! &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fundamentals==&lt;br /&gt;
&lt;br /&gt;
You can always look up commands that you need--even the best scripters don't have everything memorized.  There are a few fundamentals that you should know by heart, though, since they are so commonly used.&lt;br /&gt;
&lt;br /&gt;
===Message===&lt;br /&gt;
&lt;br /&gt;
 *mes &amp;quot;&amp;lt;string&amp;gt;&amp;quot;;&lt;br /&gt;
This is the most basic command.  Start the line with the word mes, then enter the message in quotes (don't forget the semicolon at the end!). &amp;lt;br&amp;gt;&lt;br /&gt;
To add color, simply add ^ and the hex code anywhere in the message.  A list can be found [http://www.immigration-usa.com/html_colors.html here]. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''As an example:''&lt;br /&gt;
 mes &amp;quot;[^FF0000Test NPC^000000]&amp;quot;;&lt;br /&gt;
 mes &amp;quot;Hello!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
''Will display:''&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;Test NPC&amp;lt;/span&amp;gt;]&lt;br /&gt;
 Hello!&lt;br /&gt;
&lt;br /&gt;
===Labels, Goto, and End===&lt;br /&gt;
&lt;br /&gt;
To create a label, type a label name and a colon at the start of a line.  If the label does not end with an &amp;quot;end;&amp;quot; command, everything following the label will be read, so don't forget it between labels! &amp;lt;br&amp;gt;&lt;br /&gt;
To go to a label, use the simple &amp;quot;goto&amp;quot; command:&lt;br /&gt;
 *goto &amp;lt;label&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
''Note that there are &amp;quot;special&amp;quot; labels that trigger whenever a specific event occurs.  The name usually makes it obvious, but you can find explanations in script_commands.txt.  Here is a brief sampling:''&lt;br /&gt;
 OnClock&amp;lt;hour&amp;gt;&amp;lt;minute&amp;gt;:&lt;br /&gt;
 OnInit:&lt;br /&gt;
 OnAgitStart:&lt;br /&gt;
 OnAgitEnd:&lt;br /&gt;
 OnTouch:&lt;br /&gt;
 OnPCLoginEvent:&lt;br /&gt;
 OnPCLogoutEvent:&lt;br /&gt;
 OnPCBaseLvUpEvent:&lt;br /&gt;
 OnPCJobLvUpEvent:&lt;br /&gt;
 OnPCDieEvent:&lt;br /&gt;
 OnPCKillEvent:&lt;br /&gt;
 OnNPCKillEvent:&lt;br /&gt;
 OnPCLoadMapEvent:&lt;br /&gt;
&lt;br /&gt;
===Menus, Close, and Next===&lt;br /&gt;
{{EntirePage|Menus}}&lt;br /&gt;
&lt;br /&gt;
 *menu &amp;quot;&amp;lt;option_text&amp;gt;&amp;quot;,&amp;lt;target_label&amp;gt;{,&amp;quot;&amp;lt;option_text&amp;gt;&amp;quot;,&amp;lt;target_label&amp;gt;,...};&lt;br /&gt;
 *close;&lt;br /&gt;
 *next;&lt;br /&gt;
Menus create a set of options, which trigger labels when selected.  The text in quotes is what will be displayed, followed by its respective label.  Enter as many choices as you want, and end the last one with a semicolon instead of a comma. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Close&amp;quot; will close any message window that is open (from &amp;quot;mes&amp;quot; commands). &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Next&amp;quot; will clear the message window, bringing up a fresh screen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''For example:''&lt;br /&gt;
 mes &amp;quot;[Test NPC]&amp;quot;;&lt;br /&gt;
 mes &amp;quot;How are you doing today?&amp;quot;;&lt;br /&gt;
 menu &amp;quot;I am doing okay!&amp;quot;,doingokay,&amp;quot;Not doing too well&amp;quot;,bad;&lt;br /&gt;
 &lt;br /&gt;
 doingokay:&lt;br /&gt;
 mes &amp;quot;Glad to hear it!&amp;quot;;&lt;br /&gt;
 close;&lt;br /&gt;
 end;&lt;br /&gt;
 &lt;br /&gt;
 bad:&lt;br /&gt;
 mes &amp;quot;Aww, I'm sorry about that.&amp;quot;;&lt;br /&gt;
 close;&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
===Conditions, Variables, and Set===&lt;br /&gt;
{{EntirePage|Variables}}&lt;br /&gt;
&lt;br /&gt;
 *if(condition) {&amp;lt;script&amp;gt;;}&lt;br /&gt;
 *else {&amp;lt;script&amp;gt;;}&lt;br /&gt;
Conditional statements &amp;quot;if&amp;quot; and &amp;quot;else&amp;quot; are the same as anywhere else.  Multiple conditions can be specified:  || means ''or'', while &amp;amp;&amp;amp; means ''and''.  == is ''equal'', != is ''not equal''.  Inequalities can be used as well (&amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=).&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;else&amp;quot; can be omitted, and the brackets aren't necessary unless multiple commands follow a conditional statement. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The type of variable used is defined in the name.  There are permanent and temporary variables, as well as scope (temporary NPC), character, global, and global account.  The default type is an integer, and adding $ as a suffix creates a string.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some example types, taken from script_commands.txt:&lt;br /&gt;
 name  - permanent character integer variable&lt;br /&gt;
 name$ - permanent character string variable&lt;br /&gt;
 @name  - temporary character integer variable&lt;br /&gt;
 @name$ - temporary character string variable&lt;br /&gt;
 $name  - permanent global integer variable&lt;br /&gt;
 $name$ - permanent global string variable&lt;br /&gt;
 $@name  - temporary global integer variable&lt;br /&gt;
 $@name$ - temporary global string variable&lt;br /&gt;
 .name  - NPC integer variable&lt;br /&gt;
 .name$ - NPC string variable&lt;br /&gt;
 .@name  - scope integer variable&lt;br /&gt;
 .@name$ - scope string variable&lt;br /&gt;
 #name  - permanent local account integer variable&lt;br /&gt;
 #name$ - permanent local account string variable&lt;br /&gt;
 ##name  - permanent global account integer variable&lt;br /&gt;
 ##name$ - permanent global account string variable&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;set&amp;quot; command is used to give a value (or string) to a variable:&lt;br /&gt;
 *set &amp;lt;variable&amp;gt;,&amp;lt;expression&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
''The following script will pick a random number, store it as the temporary scope variable .@random, and display two different messages depending on the result:''&lt;br /&gt;
 set .@random, rand(1,2);&lt;br /&gt;
 if (.@random == 1) { mes &amp;quot;I like you! :D&amp;quot;; }&lt;br /&gt;
 else { mes &amp;quot;I don't like you.  Get out of here!&amp;quot;; }&lt;br /&gt;
 close;&lt;br /&gt;
&lt;br /&gt;
===Duplicating===&lt;br /&gt;
&lt;br /&gt;
It would be a huge waste of time and space to code the same NPC over and over again.  By duplication, an NPC can be created in multiple locations. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Take a look at our old Test NPC:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
To be able to duplicate this, we will change the heading to this:&lt;br /&gt;
 - &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC#01::testnpc &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
The location doesn't need to be defined in the NPC, since it will be in the duplicates. &amp;lt;br&amp;gt;&lt;br /&gt;
The displayed name remains &amp;quot;Test NPC&amp;quot;.  But since NPC names must be unique, adding #01 separates this one from the rest, which will be #02, #03, etc.  Lastly, ::testnpc is the reference name used for duplicating NPCs; this part is not displayed on the screen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating the base NPC, duplicates can be added anywhere to any file, so long as you use the same NPC name:&lt;br /&gt;
 spl_fild03,150,150,7 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
 niflheim,50,50,2 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
 tha_scene01,140,190,4 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
The first part is ''map,x,y,direction'', as you're probably used to by now. &amp;lt;br&amp;gt;&lt;br /&gt;
To define a duplicate, the word &amp;quot;duplicate&amp;quot; followed by the NPC, in parentheses, is needed.  The last two parameters are the display name and sprite ID (yes, you can change these, too!).&lt;br /&gt;
&lt;br /&gt;
==Finished Product==&lt;br /&gt;
&lt;br /&gt;
Here is an example using the features explained above:&lt;br /&gt;
&lt;br /&gt;
 prontera,156,145,4	script	Test NPC::test	589,{&lt;br /&gt;
     mes &amp;quot;Hello, how are you?&amp;quot;;&lt;br /&gt;
     mes &amp;quot;I am fine, how are you?&amp;quot;;&lt;br /&gt;
     menu &amp;quot;I am doing okay!&amp;quot;,-,&amp;quot;Not doing too good&amp;quot;,bad;&lt;br /&gt;
     mes &amp;quot;That's good, I'm glad to hear that&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 bad:&lt;br /&gt;
     mes &amp;quot;Awww, that makes me a bit ^FF0000sad^000000. Sorry to hear that.&amp;quot;;&lt;br /&gt;
     next;&lt;br /&gt;
     mes &amp;quot;Would you like some zeny to help yourself feel better?&amp;quot;;&lt;br /&gt;
     next;&lt;br /&gt;
     menu &amp;quot;Sure, give it to me!&amp;quot;,L_zeny,&amp;quot;Naw, No zeny for me&amp;quot;,-;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 L_Zeny:&lt;br /&gt;
     mes &amp;quot;I can only give you zeny if you have 10,000 or less.&amp;quot;;&lt;br /&gt;
     if (Zeny &amp;gt; 10000) goto toomuch;&lt;br /&gt;
     mes &amp;quot;You have 10,000 zeny or less, I see.&amp;quot;;&lt;br /&gt;
     set Zeny,Zeny+10000;&lt;br /&gt;
     next;&lt;br /&gt;
     mes &amp;quot;Hope you feel better!&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 toomuch:&lt;br /&gt;
     mes &amp;quot;You have over 10,000 zeny, you must feel really good about yourself!&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 lhz_dun01,157,285,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 hu_fild05,186,210,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 yuno_fild07,221,179,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 tha_scene01,139,194,1	duplicate(test)	Test NPC	859&lt;br /&gt;
&lt;br /&gt;
==Adding Scripts==&lt;br /&gt;
{{EntirePage|Adding a Script}}&lt;br /&gt;
For an NPC to be loaded, it needs to be added to a .conf file.  This is typically ''npc/scripts_custom.conf''.&amp;lt;br&amp;gt;&lt;br /&gt;
Add a line, and enter your NPC file in the following format:&lt;br /&gt;
 npc: npc/path/to/script.txt&lt;br /&gt;
That's it!  You're finished!&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
'''Reference Manuals for scriping commands'''&lt;br /&gt;
* {{git|/doc/script_commands.txt}} Original documentation&lt;br /&gt;
&lt;br /&gt;
'''Sprite lists'''&lt;br /&gt;
* http://nn.nachtwolke.com/dev/npclist/&lt;br /&gt;
&lt;br /&gt;
'''Color Charts'''&lt;br /&gt;
* http://www.immigration-usa.com/html_colors.html&lt;br /&gt;
* http://www.december.com/html/spec/colorcodes.html&lt;br /&gt;
* [[wikipedia:Hex_triplet|Hex triplet]]&lt;br /&gt;
* http://www.colorschemer.com/online.html&lt;br /&gt;
&lt;br /&gt;
'''Support, Request and Release'''&lt;br /&gt;
* [http://hercules.ws/board/forum/22-script-support/ Scripting support on Hercules Boards]&lt;br /&gt;
* #Hercules on irc.rizon.net : Main Hercules channel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Basic_Scripting</id>
		<title>Basic Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Basic_Scripting"/>
				<updated>2014-01-28T20:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* NPC */ Misinformation. :&amp;lt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The Basics==&lt;br /&gt;
&lt;br /&gt;
Scripts control all NPCs, warps, mob spawns, shops, and quests you will find in the game--and nearly everything else!  Clearly they play a large part in customizing a server, but learning isn't very hard.&lt;br /&gt;
&lt;br /&gt;
Scripts are built up of predefined script commands, all of which can be found in {{git|doc/script_commands.txt}} (for explanations, see [[:Category:Script_Command|Script Commands]]).  Every line should begin with a command and the argument it takes, and must end in a semicolon (or you'll get mapserver errors!).  Arguments are usually separated by commas, and are sometimes contained in parentheses () or curly brackets {}.  Tabs and proper indentation are standard scripting measures.&lt;br /&gt;
&lt;br /&gt;
Scripts are saved as text (*.txt) files, so all code can be written in Notepad.  There are also a lot of scripting programs to use: the most recent and comprehensive one is [http://rathena.org/board/topic/56484-enpc-script-editor/ Vince's eNPC]. All defined functions are highlighted, with an autocomplete feature included, and pressing &amp;quot;F1&amp;quot; will display the corresponding explanation for any command.&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
&lt;br /&gt;
===NPC===&lt;br /&gt;
A '''Script NPC''' will look something like the following:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
&lt;br /&gt;
The first section is the map location of the NPC, followed by its coordinates in x,y and the direction the NPC will face.  Direction numbers are counted counterclockwise in 45º increments, with 0 being the center: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1][0][7] &amp;lt;br&amp;gt;&lt;br /&gt;
[2]   [6] &amp;lt;br&amp;gt;&lt;br /&gt;
[3][4][5] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the first tab, the type of script is defined.  For our purposes, it'll stay &amp;quot;script&amp;quot; for now, but can also be function, shop, or cashshop, for starters. &amp;lt;br&amp;gt;&lt;br /&gt;
The name of the NPC is next.  You can use up to 24 characters, so make it unique!  Any duplicates will cause warnings or errors, and the NPC will just be automatically renamed anyway. &amp;lt;br&amp;gt;&lt;br /&gt;
The last number is for the sprite (Ai4rei's sprite list can be found [http://nn.nachtwolke.com/dev/npclist/ here]).  It's followed by a comma and open curly bracket, marking the beginning of the script contents.  Of course, the script must also end in a curly bracket.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Function===&lt;br /&gt;
A '''Function script''' will look almost identical to:&lt;br /&gt;
 function &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Function Name &amp;lt;tab&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
The words &amp;quot;function&amp;quot; and &amp;quot;script&amp;quot; won't change; the name must also be unique.  All functions can be called using the &amp;quot;callfunc&amp;quot; command. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shop===&lt;br /&gt;
A '''Shop''' starts like a normal script:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; shop &amp;lt;tab&amp;gt; Fruit Store &amp;lt;tab&amp;gt; 58,512:-1,513:1000&lt;br /&gt;
&lt;br /&gt;
The first section defines the map, coordinates, and direction.  The word &amp;quot;shop&amp;quot; replaces &amp;quot;script&amp;quot; (alternately, &amp;quot;cashshop&amp;quot; will use Cashpoints instead of Zeny).  The name and sprite ID follow, then a comma. &amp;lt;br&amp;gt;&lt;br /&gt;
Items in the shop are defined in an ID:Price format.  A price of -1 uses the default price in item_db.txt.  Be sure the price is not too low, or a you will open a Zeny exploit in your server! &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fundamentals==&lt;br /&gt;
&lt;br /&gt;
You can always look up commands that you need--even the best scripters don't have everything memorized.  There are a few fundamentals that you should know by heart, though, since they are so commonly used.&lt;br /&gt;
&lt;br /&gt;
===Message===&lt;br /&gt;
&lt;br /&gt;
 *mes &amp;quot;&amp;lt;string&amp;gt;&amp;quot;;&lt;br /&gt;
This is the most basic command.  Start the line with the word mes, then enter the message in quotes (don't forget the semicolon at the end!). &amp;lt;br&amp;gt;&lt;br /&gt;
To add color, simply add ^ and the hex code anywhere in the message.  A list can be found [http://www.immigration-usa.com/html_colors.html here]. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''As an example:''&lt;br /&gt;
 mes &amp;quot;[^FF0000Test NPC^000000]&amp;quot;;&lt;br /&gt;
 mes &amp;quot;Hello!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
''Will display:''&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;Test NPC&amp;lt;/span&amp;gt;]&lt;br /&gt;
 Hello!&lt;br /&gt;
&lt;br /&gt;
===Labels, Goto, and End===&lt;br /&gt;
&lt;br /&gt;
To create a label, type a label name and a colon at the start of a line.  If the label does not end with an &amp;quot;end;&amp;quot; command, everything following the label will be read, so don't forget it between labels! &amp;lt;br&amp;gt;&lt;br /&gt;
To go to a label, use the simple &amp;quot;goto&amp;quot; command:&lt;br /&gt;
 *goto &amp;lt;label&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
''Note that there are &amp;quot;special&amp;quot; labels that trigger whenever a specific event occurs.  The name usually makes it obvious, but you can find explanations in script_commands.txt.  Here is a brief sampling:''&lt;br /&gt;
 OnClock&amp;lt;hour&amp;gt;&amp;lt;minute&amp;gt;:&lt;br /&gt;
 OnInit:&lt;br /&gt;
 OnAgitStart:&lt;br /&gt;
 OnAgitEnd:&lt;br /&gt;
 OnTouch:&lt;br /&gt;
 OnPCLoginEvent:&lt;br /&gt;
 OnPCLogoutEvent:&lt;br /&gt;
 OnPCBaseLvUpEvent:&lt;br /&gt;
 OnPCJobLvUpEvent:&lt;br /&gt;
 OnPCDieEvent:&lt;br /&gt;
 OnPCKillEvent:&lt;br /&gt;
 OnNPCKillEvent:&lt;br /&gt;
 OnPCLoadMapEvent:&lt;br /&gt;
&lt;br /&gt;
===Menus, Close, and Next===&lt;br /&gt;
{{EntirePage|Menus}}&lt;br /&gt;
&lt;br /&gt;
 *menu &amp;quot;&amp;lt;option_text&amp;gt;&amp;quot;,&amp;lt;target_label&amp;gt;{,&amp;quot;&amp;lt;option_text&amp;gt;&amp;quot;,&amp;lt;target_label&amp;gt;,...};&lt;br /&gt;
 *close;&lt;br /&gt;
 *next;&lt;br /&gt;
Menus create a set of options, which trigger labels when selected.  The text in quotes is what will be displayed, followed by its respective label.  Enter as many choices as you want, and end the last one with a semicolon instead of a comma. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Close&amp;quot; will close any message window that is open (from &amp;quot;mes&amp;quot; commands). &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Next&amp;quot; will clear the message window, bringing up a fresh screen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''For example:''&lt;br /&gt;
 mes &amp;quot;[Test NPC]&amp;quot;;&lt;br /&gt;
 mes &amp;quot;How are you doing today?&amp;quot;;&lt;br /&gt;
 menu &amp;quot;I am doing okay!&amp;quot;,doingokay,&amp;quot;Not doing too well&amp;quot;,bad;&lt;br /&gt;
 &lt;br /&gt;
 doingokay:&lt;br /&gt;
 mes &amp;quot;Glad to hear it!&amp;quot;;&lt;br /&gt;
 close;&lt;br /&gt;
 end;&lt;br /&gt;
 &lt;br /&gt;
 bad:&lt;br /&gt;
 mes &amp;quot;Aww, I'm sorry about that.&amp;quot;;&lt;br /&gt;
 close;&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
===Conditions, Variables, and Set===&lt;br /&gt;
{{EntirePage|Variables}}&lt;br /&gt;
&lt;br /&gt;
 *if(condition) {&amp;lt;script&amp;gt;;}&lt;br /&gt;
 *else {&amp;lt;script&amp;gt;;}&lt;br /&gt;
Conditional statements &amp;quot;if&amp;quot; and &amp;quot;else&amp;quot; are the same as anywhere else.  Multiple conditions can be specified:  || means ''or'', while &amp;amp;&amp;amp; means ''and''.  == is ''equal'', != is ''not equal''.  Inequalities can be used as well (&amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=).&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;else&amp;quot; can be omitted, and the brackets aren't necessary unless multiple commands follow a conditional statement. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The type of variable used is defined in the name.  There are permanent and temporary variables, as well as scope (temporary NPC), character, global, and global account.  The default type is an integer, and adding $ as a suffix creates a string.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some example types, taken from script_commands.txt:&lt;br /&gt;
 name  - permanent character integer variable&lt;br /&gt;
 name$ - permanent character string variable&lt;br /&gt;
 @name  - temporary character integer variable&lt;br /&gt;
 @name$ - temporary character string variable&lt;br /&gt;
 $name  - permanent global integer variable&lt;br /&gt;
 $name$ - permanent global string variable&lt;br /&gt;
 $@name  - temporary global integer variable&lt;br /&gt;
 $@name$ - temporary global string variable&lt;br /&gt;
 .name  - NPC integer variable&lt;br /&gt;
 .name$ - NPC string variable&lt;br /&gt;
 .@name  - scope integer variable&lt;br /&gt;
 .@name$ - scope string variable&lt;br /&gt;
 #name  - permanent local account integer variable&lt;br /&gt;
 #name$ - permanent local account string variable&lt;br /&gt;
 ##name  - permanent global account integer variable&lt;br /&gt;
 ##name$ - permanent global account string variable&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;set&amp;quot; command is used to give a value (or string) to a variable:&lt;br /&gt;
 *set &amp;lt;variable&amp;gt;,&amp;lt;expression&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
''The following script will pick a random number, store it as the temporary scope variable .@random, and display two different messages depending on the result:''&lt;br /&gt;
 set .@random, rand(1,2);&lt;br /&gt;
 if (.@random == 1) { mes &amp;quot;I like you! :D&amp;quot;; }&lt;br /&gt;
 else { mes &amp;quot;I don't like you.  Get out of here!&amp;quot;; }&lt;br /&gt;
 close;&lt;br /&gt;
&lt;br /&gt;
===Duplicating===&lt;br /&gt;
&lt;br /&gt;
It would be a huge waste of time and space to code the same NPC over and over again.  By duplication, an NPC can be created in multiple locations. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Take a look at our old Test NPC:&lt;br /&gt;
 prontera,156,145,4 &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
To be able to duplicate this, we will change the heading to this:&lt;br /&gt;
 - &amp;lt;tab&amp;gt; script &amp;lt;tab&amp;gt; Test NPC#01::testnpc &amp;lt;tab&amp;gt; 58,{&lt;br /&gt;
The location doesn't need to be defined in the NPC, since it will be in the duplicates. &amp;lt;br&amp;gt;&lt;br /&gt;
The displayed name remains &amp;quot;Test NPC&amp;quot;.  But since NPC names must be unique, adding #01 separates this one from the rest, which will be #02, #03, etc.  Lastly, ::testnpc is the reference name used for duplicating NPCs; this part is not displayed on the screen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating the base NPC, duplicates can be added anywhere to any file, so long as you use the same NPC name:&lt;br /&gt;
 spl_fild03,150,150,7 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
 niflheim,50,50,2 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
 tha_scene01,140,190,4 &amp;lt;tab&amp;gt; duplicate(testnpc) &amp;lt;tab&amp;gt; Test NPC &amp;lt;tab&amp;gt; 58&lt;br /&gt;
The first part is ''map,x,y,direction'', as you're probably used to by now. &amp;lt;br&amp;gt;&lt;br /&gt;
To define a duplicate, the word &amp;quot;duplicate&amp;quot; followed by the NPC, in parentheses, is needed.  The last two parameters are the display name and sprite ID (yes, you can change these, too!).&lt;br /&gt;
&lt;br /&gt;
==Finished Product==&lt;br /&gt;
&lt;br /&gt;
Here is an example using the features explained above:&lt;br /&gt;
&lt;br /&gt;
 prontera,156,145,4	script	Test NPC::test	589,{&lt;br /&gt;
     mes &amp;quot;Hello, how are you?&amp;quot;;&lt;br /&gt;
     mes &amp;quot;I am fine, how are you?&amp;quot;;&lt;br /&gt;
     menu &amp;quot;I am doing okay!&amp;quot;,-,&amp;quot;Not doing too good&amp;quot;,bad;&lt;br /&gt;
     mes &amp;quot;That's good, I'm glad to hear that&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 bad:&lt;br /&gt;
     mes &amp;quot;Awww, that makes me a bit ^FF0000sad^000000. Sorry to hear that.&amp;quot;;&lt;br /&gt;
     next;&lt;br /&gt;
     mes &amp;quot;Would you like some zeny to help yourself feel better?&amp;quot;;&lt;br /&gt;
     next;&lt;br /&gt;
     menu &amp;quot;Sure, give it to me!&amp;quot;,L_zeny,&amp;quot;Naw, No zeny for me&amp;quot;,-;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 L_Zeny:&lt;br /&gt;
     mes &amp;quot;I can only give you zeny if you have 10,000 or less.&amp;quot;;&lt;br /&gt;
     if (Zeny &amp;gt; 10000) goto toomuch;&lt;br /&gt;
     mes &amp;quot;You have 10,000 zeny or less, I see.&amp;quot;;&lt;br /&gt;
     set Zeny,Zeny+10000;&lt;br /&gt;
     next;&lt;br /&gt;
     mes &amp;quot;Hope you feel better!&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 &lt;br /&gt;
 toomuch:&lt;br /&gt;
     mes &amp;quot;You have over 10,000 zeny, you must feel really good about yourself!&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 lhz_dun01,157,285,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 hu_fild05,186,210,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 yuno_fild07,221,179,4	duplicate(test)	Test NPC	859&lt;br /&gt;
 tha_scene01,139,194,1	duplicate(test)	Test NPC	859&lt;br /&gt;
&lt;br /&gt;
==Adding Scripts==&lt;br /&gt;
{{EntirePage|Adding a Script}}&lt;br /&gt;
For an NPC to be loaded, it needs to be added to a .conf file.  This is typically ''npc/scripts_custom.conf''.&amp;lt;br&amp;gt;&lt;br /&gt;
Add a line, and enter your NPC file in the following format:&lt;br /&gt;
 npc: npc/path/to/script.txt&lt;br /&gt;
That's it!  You're finished!&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
'''Reference Manuals for scriping commands'''&lt;br /&gt;
* {{git|/doc/script_commands.txt}} Original documentation&lt;br /&gt;
&lt;br /&gt;
'''Sprite lists'''&lt;br /&gt;
* http://nn.nachtwolke.com/dev/npclist/&lt;br /&gt;
&lt;br /&gt;
'''Color Charts'''&lt;br /&gt;
* http://www.immigration-usa.com/html_colors.html&lt;br /&gt;
* http://www.december.com/html/spec/colorcodes.html&lt;br /&gt;
* [[wikipedia:Hex_triplet|Hex triplet]]&lt;br /&gt;
* http://www.colorschemer.com/online.html&lt;br /&gt;
&lt;br /&gt;
'''Support, Request and Release'''&lt;br /&gt;
* [http://hercules.ws/board/forum/22-script-support/ Scripting support on Hercules Boards]&lt;br /&gt;
* #Hercules on irc.rizon.net : Main Hercules channel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getmapguildusers</id>
		<title>Getmapguildusers</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getmapguildusers"/>
				<updated>2014-01-20T23:31:55Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Oops, wrong syntax.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Syntax=&lt;br /&gt;
[[getmapguildusers]]  (&amp;quot;&amp;lt;map name&amp;gt;&amp;quot;)&lt;br /&gt;
=Description=&lt;br /&gt;
Returns the amount of persons from the given guild that are on the given map.&lt;br /&gt;
=Example=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Will set the @persons variable to the amount of persons from the guild&lt;br /&gt;
//which ID's = 10 and are at prontera.&lt;br /&gt;
  set @persons, getmapguildusers(&amp;quot;prontera&amp;quot;, 10);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getmapguildusers</id>
		<title>Getmapguildusers</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getmapguildusers"/>
				<updated>2014-01-20T23:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;=Syntax= getmapusers  (&amp;quot;&amp;lt;map name&amp;gt;&amp;quot;) =Description= Returns the amount of persons from the given guild that are on the given map. =Example= &amp;lt;pre&amp;gt; //Will set the @persons va...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Syntax=&lt;br /&gt;
[[getmapusers]]  (&amp;quot;&amp;lt;map name&amp;gt;&amp;quot;)&lt;br /&gt;
=Description=&lt;br /&gt;
Returns the amount of persons from the given guild that are on the given map.&lt;br /&gt;
=Example=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Will set the @persons variable to the amount of persons from the guild&lt;br /&gt;
//which ID's = 10 and are at prontera.&lt;br /&gt;
  set @persons, getmapguildusers(&amp;quot;prontera&amp;quot;, 10);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getmapusers</id>
		<title>Getmapusers</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getmapusers"/>
				<updated>2014-01-20T23:29:38Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
* '''getmapusers'''(&amp;quot;Map_Name&amp;quot;);&lt;br /&gt;
==Description==&lt;br /&gt;
This function will return the number of users currently located on the specified &lt;br /&gt;
map.&lt;br /&gt;
&lt;br /&gt;
It is often used in the PVP scripts to check if a PVP room is full of not, &lt;br /&gt;
if the number returned it equal to the maximum allowed it will not let you &lt;br /&gt;
enter.&lt;br /&gt;
&lt;br /&gt;
==Example 1==&lt;br /&gt;
&lt;br /&gt;
 //This will ask the player what map they want to check that has players and return the value&lt;br /&gt;
 //of the players on the map&lt;br /&gt;
 [[input]] @map$;&lt;br /&gt;
 [[mes]] '''getmapusers'''(@map$);&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getmapusers;</id>
		<title>Getmapusers;</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getmapusers;"/>
				<updated>2014-01-20T23:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Redirected page to Getmapusers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[getmapusers]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/GetGuildName</id>
		<title>GetGuildName</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/GetGuildName"/>
				<updated>2014-01-20T23:27:29Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Moved to getguildname&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[getguildname]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/GetCastleData</id>
		<title>GetCastleData</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/GetCastleData"/>
				<updated>2014-01-20T23:25:53Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Added redirect to proper casing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[getcastledata]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/GetCastleData</id>
		<title>GetCastleData</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/GetCastleData"/>
				<updated>2014-01-20T23:24:59Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Removing parallel page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Main_Page"/>
				<updated>2013-12-13T08:11:29Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Reverted edits by Poetwatches (talk) to last revision by Via&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 100%;&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #FCFCFC; border: 1px solid #AAA; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;About Hercules&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
[[Hercules]] is an [[wikipedia:Open_source|open-source]] project, revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package, emulating a [[wikipedia:Ragnarok_Online|Ragnarok Online]] [[wikipedia:Server|Server]]. Written in [[wikipedia:C_(programming_language)|C]] the program is very versatile and provides NPCs, warps and modifications. and is currently version controlled via [[wikipedia:Git_(software)|Git]]. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. Hercules is a continuation of the original Athena project.&lt;br /&gt;
&lt;br /&gt;
Hercules currently runs on most common [[wikipedia:Operating_system|Operating Systems]] currently available today. For a full list, please see the [[System Requirements]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;Editing the Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
All users must login to the wiki using their forum account. Any member can edit the wiki, but please keep in mind that the Hercules wiki is released under the [[wikipedia:GNU_Free_Documentation_License|GNU Free Documentation License]] Version 1.2. This means that the wiki and any works put on it can be edited at will. They may also be distributed, provided all history and copylefts remain intact. Please see [[Editing the wiki]] for more information.&lt;br /&gt;
&lt;br /&gt;
Don't know where to start? Check the [[Special:WantedPages]] page and create a page that is listed there!&lt;br /&gt;
&lt;br /&gt;
Please do not create pages for custom content, such as custom projects not relating to Hercules in any way. A full list of content that should not be on the wiki is listed at [[Editing the wiki]].&lt;br /&gt;
&lt;br /&gt;
Please see [[:Category:Wiki_Projects|Wiki Projects]] for any ongoing projects that you might be able to help with!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;Quick Tips&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
*Spell check your work and make sure the grammar is correct.&lt;br /&gt;
*Use English.&lt;br /&gt;
*Do not vandalize the wiki. Vandalization will come with harsh punishment.&lt;br /&gt;
*Please see [[mw:Help:Formatting|Formatting a wiki]] for tips on wiki formats and syntaxes.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: #FCFCFC; border: 1px solid #AAA; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 260px; background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;float: right; padding: 0 20px;&amp;quot;&amp;gt;[[Image:poring1.gif]]&amp;lt;/div&amp;gt;Installation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
; [[Getting Started]]&lt;br /&gt;
: [[System Requirements]]&lt;br /&gt;
; [[:Category:Installation|Installation]]&lt;br /&gt;
: [[Installation_(CentOS)|CentOS]]&lt;br /&gt;
; [[Compiling]]&lt;br /&gt;
; [[Connecting|Connecting and Starting]]&lt;br /&gt;
; [[:Category:Configuration|Configuration]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[Image:develing1.gif]]&amp;lt;/div&amp;gt;Server Side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
; [[Scripting]]&lt;br /&gt;
: [[Basic Scripting]]&lt;br /&gt;
: [[:Category:Script_Command|Script Commands]]&lt;br /&gt;
: [[Permanent Monster Spawn]]&lt;br /&gt;
: [[Instancing]]&lt;br /&gt;
:&lt;br /&gt;
; [[Server Modification]]&lt;br /&gt;
: [[:Category:Source_Functions|Source Functions]]&lt;br /&gt;
: [[:Category:Source Snippets|Source Snippets]]&lt;br /&gt;
: [[Hercules Plugin Manager]]&lt;br /&gt;
: [[Packets]]&lt;br /&gt;
:&lt;br /&gt;
; [[:Category:Database|Database]]&lt;br /&gt;
: [[Custom Items]]&lt;br /&gt;
: [[Custom Mobs]]&lt;br /&gt;
: [[Custom weapons]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #ACD; border: 1px solid #7BC; padding: 5px; margin: 3px; font-weight: bold; text-align: center; font-size: 120%;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[Image:angeling1.gif]]&amp;lt;/div&amp;gt;Client Side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
; [[:Category:Data|Data]]&lt;br /&gt;
; [[Spriting]]&lt;br /&gt;
: [[Palettes]]&lt;br /&gt;
: [[Acts]]&lt;br /&gt;
:&lt;br /&gt;
; [[:Category:Mapping|Mapping]]&lt;br /&gt;
: [[Modeling]]&lt;br /&gt;
: [[Texture]]&lt;br /&gt;
:&lt;br /&gt;
; [[:Category:Client_Configuration|Client Stuff]]&lt;br /&gt;
;&lt;br /&gt;
; [[:Category:Patchers|Patchers]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Via</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>2013-12-02T19:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &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;
&lt;br /&gt;
== Administrators ==&lt;br /&gt;
They administrate.&lt;br /&gt;
* [http://hercules.ws/board/user/1-ind/ Ind] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/2-jman/ Jman] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=4 Administrator])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Community Administrators ==&lt;br /&gt;
They oversee everything community wise and forum-related&lt;br /&gt;
* [http://hercules.ws/board/user/10-judas/ Judas] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=17 Community Administrator])&lt;br /&gt;
* [http://hercules.ws/board/user/43-mysterious/ Mysterious] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=17 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/28-greenbox/ GreenBox]&lt;br /&gt;
* [http://hercules.ws/board/user/307-haru/ Haru]&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/725-susu/ Susu]&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.&lt;br /&gt;
Global Moderator 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;
== Graphics Moderators ==&lt;br /&gt;
In charge of all the main graphics areas.&lt;br /&gt;
* [http://hercules.ws/board/user/129-adel/ Adel]&lt;br /&gt;
* [http://hercules.ws/board/user/1460-uzieal/ Uzieal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== High Council ==&lt;br /&gt;
They're an sort of upgrade from the [[#Community_Contributor | Community Contributor]] title.&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/6-jtynne/ jTynne]&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;
== 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/25-jaypee/ JayPee]&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;
====German====&lt;br /&gt;
* [http://hercules.ws/board/user/1071-shikazu/ Shikazu]&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/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/50-michieru/ Michieru]&lt;br /&gt;
* [http://hercules.ws/board/user/7-nameless2you/ Nameless2you]&lt;br /&gt;
* [http://hercules.ws/board/user/756-joseph/ Joseph]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&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;
* [http://hercules.ws/board/user/4-emistry/ Emistry]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Other Titles =&lt;br /&gt;
Non-staff Titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Community Contributor ==&lt;br /&gt;
This title is awarded to community members for their outstanding support of Hercules, for [http://hercules.ws/board/topic/376-hercules-cc-program/ more information check this thread]&lt;br /&gt;
* [http://hercules.ws/board/user/59-beret/ Beret]&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/1582-sevenzz23/ sevenzz23]&lt;br /&gt;
* [http://hercules.ws/board/user/297-shakto/ Shakto]&lt;br /&gt;
[[Category:Hercules]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Db2sql</id>
		<title>Db2sql</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Db2sql"/>
				<updated>2013-12-02T13:52:22Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Files Converted == * {{git|db/pre-re/item_db.conf}} * {{git|db/re/item_db.conf}} * {{git|db/item_db2.conf}}   == Description == This plugin converts the item database confi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Files Converted ==&lt;br /&gt;
* {{git|db/pre-re/item_db.conf}}&lt;br /&gt;
* {{git|db/re/item_db.conf}}&lt;br /&gt;
* {{git|db/item_db2.conf}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This plugin converts the item database configuration files for use with SQL servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
The plugin needs to be compiled. If you've already compiled your server and/or other plugins, input these commands:&lt;br /&gt;
 ./configure&lt;br /&gt;
 make plugin.db2sql&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Windows, compile the '''db2sql''' plugin in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling db2sql ==&lt;br /&gt;
Next, the plugin needs to be enabled in {{git|conf/plugins.conf}}:&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;
 ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To use the converter, update your changes in the desired item database (using {{git|db/item_db2.conf}} for customisations is recommended); then, run this command:&lt;br /&gt;
 ./map-server --db2sql&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Windows, run {{git|db2sql.bat}} in the root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
The resulting files will be output in the {{git|sql-files}} folder as {{git|sql-files/item_db.sql}}, {{git|sql-files/item_db_re.sql}}, and {{git|sql-files/item_db2.sql}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Configure</id>
		<title>Configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Configure"/>
				<updated>2013-11-14T01:24:32Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* 64-bit operating systems */ --outdated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Using '''configure''' script is a method to generate makefiles before compilation in Unix systems.&lt;br /&gt;
&lt;br /&gt;
When installing Hercules, configure script should be run after [[SVN Checkout]],/[[Git Clone]] and before compiling.&lt;br /&gt;
&lt;br /&gt;
== Basic usage ==&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;blockquote&amp;gt;''Main article: [[Configure]].''&amp;lt;/blockquote&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
To avoid errors in server-client communication, &amp;lt;code&amp;gt;[[PACKETVER]]&amp;lt;/code&amp;gt; must be set to date the client you're going to use has been released at (in YYYYMMDD format), eg &amp;lt;code&amp;gt;20100730&amp;lt;/code&amp;gt; for 2010-07-30aRagexeRE. Instead of editing [[mmo.h]] directly, &amp;lt;code&amp;gt;PACKETVER&amp;lt;/code&amp;gt; can be set to desired date with configure switch &amp;lt;code&amp;gt;--enable-packetver=YYYYMMDD&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Run following command, replacing ''YYYYMMDD'' with your client release date, eg ''20100730''.&lt;br /&gt;
  ./configure --enable-packetver=YYYYMMDD&lt;br /&gt;
Configure script will perform necessary tests and generate makefiles.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
=== Sample output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;checking whether make sets $(MAKE)... yes&lt;br /&gt;
checking for gcc... gcc&lt;br /&gt;
checking for C compiler default output file name... a.out&lt;br /&gt;
checking whether the C compiler works... yes&lt;br /&gt;
checking whether we are cross compiling... no&lt;br /&gt;
checking for suffix of executables...&lt;br /&gt;
checking for suffix of object files... o&lt;br /&gt;
checking whether we are using the GNU C compiler... yes&lt;br /&gt;
checking whether gcc accepts -g... yes&lt;br /&gt;
checking for gcc option to accept ANSI C... none needed&lt;br /&gt;
checking how to run the C preprocessor... gcc -E&lt;br /&gt;
checking whether byte ordering is bigendian... no&lt;br /&gt;
checking whether pointers can be stored in ints (old code)... yes&lt;br /&gt;
checking whether gcc supports -Wno-unused-parameter... yes&lt;br /&gt;
checking whether gcc supports -Wno-pointer-sign... yes&lt;br /&gt;
checking whether gcc can actually use -Wno-pointer-sign... yes&lt;br /&gt;
checking whether gcc supports -Wno-switch... yes&lt;br /&gt;
checking whether gcc supports -fPIC... yes&lt;br /&gt;
checking whether gcc needs -fPIC for shared objects... no&lt;br /&gt;
checking whether gcc supports -fno-strict-aliasing... yes&lt;br /&gt;
checking whether gcc is able to typecast to union... yes&lt;br /&gt;
checking for setrlimit... yes&lt;br /&gt;
checking for strnlen... yes&lt;br /&gt;
checking for inflateEnd in -lz... yes&lt;br /&gt;
checking zlib.h usability... yes&lt;br /&gt;
checking zlib.h presence... yes&lt;br /&gt;
checking for zlib.h... yes&lt;br /&gt;
checking for library containing sqrt... -lm&lt;br /&gt;
checking for library containing clock_gettime... -lrt&lt;br /&gt;
checking whether CLOCK_MONOTONIC is supported and works... yes&lt;br /&gt;
checking for mysql_config... /usr/bin/mysql_config&lt;br /&gt;
checking for mysql_init in -lmysqlclient... yes&lt;br /&gt;
checking mysql.h usability... yes&lt;br /&gt;
checking mysql.h presence... yes&lt;br /&gt;
checking for mysql.h... yes&lt;br /&gt;
checking MySQL library (optional)... yes (5.0.51a)&lt;br /&gt;
checking for pcre_study in -lpcre... yes&lt;br /&gt;
checking PCRE library (optional)... yes&lt;br /&gt;
checking host OS... Linux&lt;br /&gt;
checking for MinGW... no&lt;br /&gt;
configure: creating ./config.status&lt;br /&gt;
config.status: creating Makefile&lt;br /&gt;
config.status: creating src/common/Makefile&lt;br /&gt;
config.status: creating 3rdparty/mt19937ar/Makefile&lt;br /&gt;
config.status: creating src/char/Makefile&lt;br /&gt;
config.status: creating src/login/Makefile&lt;br /&gt;
config.status: creating src/char_sql/Makefile&lt;br /&gt;
config.status: creating src/txt-converter/Makefile&lt;br /&gt;
config.status: creating src/map/Makefile&lt;br /&gt;
config.status: creating src/plugins/Makefile&lt;br /&gt;
config.status: creating src/tool/Makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setting executable bit ===&lt;br /&gt;
In order to run configure script it must be executable, ie have the ''execute'' permission set. When checking out a working copy from SVN repository, executable bit should be set automatically thanks to &amp;lt;code&amp;gt;svn:executable&amp;lt;/code&amp;gt; property. However, if it fails for some reason, running &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; will bring the following message (or similar):&lt;br /&gt;
  bash: ./configure: Permission denied&lt;br /&gt;
To fix this, set executable permission with:&lt;br /&gt;
  chmod +x ./configure&lt;br /&gt;
&lt;br /&gt;
== Additional switches ==&lt;br /&gt;
To display all available switches use:&lt;br /&gt;
  ./configure --help&lt;br /&gt;
&lt;br /&gt;
=== Debug mode ===&lt;br /&gt;
It is possible to compile Hercules in debug mode with &amp;lt;code&amp;gt;--enable-debug&amp;lt;/code&amp;gt; switch.&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Delwall</id>
		<title>Delwall</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Delwall"/>
				<updated>2013-11-06T06:30:54Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''delwall''' &amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;; *'''setwall''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;size&amp;gt;,&amp;lt;dir&amp;gt;,&amp;lt;shootable&amp;gt;,&amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;  ==Description== Deletes an invisible wall previously create...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''delwall''' &amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;&lt;br /&gt;
*'''setwall''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;size&amp;gt;,&amp;lt;dir&amp;gt;,&amp;lt;shootable&amp;gt;,&amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Deletes an invisible wall previously created by Setwall; identified by the wall's name.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Setwall]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Setwall</id>
		<title>Setwall</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Setwall"/>
				<updated>2013-11-06T06:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''setwall''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;size&amp;gt;,&amp;lt;dir&amp;gt;,&amp;lt;shootable&amp;gt;,&amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;; *'''delwall''' &amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;  ==Description== Creates an invisible wall, an array of &amp;quot;set...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''setwall''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;lt;size&amp;gt;,&amp;lt;dir&amp;gt;,&amp;lt;shootable&amp;gt;,&amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;&lt;br /&gt;
*'''delwall''' &amp;quot;&amp;lt;wallname&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Creates an invisible wall, an array of &amp;quot;setcell&amp;quot; starting from x,y and doing a&lt;br /&gt;
line of the given size in the given direction. The difference with setcell is&lt;br /&gt;
this one updates the client part too, to avoid the glitch problem. Directions are the &lt;br /&gt;
same as NPC sprite facing directions: 0=north, 1=northwest, 2=west, etc.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 -	script	setwall	-1,{&lt;br /&gt;
 	[[end]];&lt;br /&gt;
 [[OnInit]]:&lt;br /&gt;
 	setwall &amp;quot;prontera&amp;quot;,64,102,4,2,0,&amp;quot;PrtWall&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Delwall]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</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>2013-11-02T15:23:48Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Moved kyeme to HC, added ossi0110 and sevenzz23 to list of CCs, updated Via to Mumbles (changed alias) and did some alphabetical housekeeping. Sorry if I missed anyone!&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;
&lt;br /&gt;
== Administrators ==&lt;br /&gt;
They administrate.&lt;br /&gt;
* [http://hercules.ws/board/user/1-ind/ Ind] (Community Administrator)	&lt;br /&gt;
* [http://hercules.ws/board/user/2-jman/ Jman] (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/28-greenbox/ GreenBox]&lt;br /&gt;
* [http://hercules.ws/board/user/307-haru/ Haru]&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/725-susu/ Susu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forum Managers ==&lt;br /&gt;
They oversee everything forum-related&lt;br /&gt;
* [http://hercules.ws/board/user/10-judas/ Judas] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=17 Forum Manager])&lt;br /&gt;
* [http://hercules.ws/board/user/43-mysterious/ Mysterious] ([http://hercules.ws/board/index.php?app=members&amp;amp;filter=17 Forum Manager])&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.&lt;br /&gt;
Global Moderator 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;
&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/129-adel/ Adel]&lt;br /&gt;
* [http://hercules.ws/board/user/1460-uzieal/ Uzieal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== High Council ==&lt;br /&gt;
They're an sort of upgrade from the [[#Community_Contributor | Community Contributor]] title.&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/6-jtynne/ jTynne]&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;
== 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/25-jaypee/ JayPee]&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;
====German====&lt;br /&gt;
* [http://hercules.ws/board/user/1071-shikazu/ Shikazu]&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/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/50-michieru/ Michieru]&lt;br /&gt;
* [http://hercules.ws/board/user/7-nameless2you/ Nameless2you]&lt;br /&gt;
* [http://hercules.ws/board/user/756-joseph/ Joseph]&lt;br /&gt;
* [http://hercules.ws/board/user/192-wolf/ Wolf]&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;
* [http://hercules.ws/board/user/4-emistry/ Emistry]&lt;br /&gt;
* [http://hercules.ws/board/user/83-mumbles/ Mumbles]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Other Titles =&lt;br /&gt;
Non-staff Titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Community Contributor ==&lt;br /&gt;
This title is awarded to community members for their outstanding support of Hercules, for [http://hercules.ws/board/topic/376-hercules-cc-program/ more information check this thread]&lt;br /&gt;
* [http://hercules.ws/board/user/59-beret/ Beret]&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/303-ryuuzaki/ Ryuuzaki]&lt;br /&gt;
* [http://hercules.ws/board/user/1582-sevenzz23/ sevenzz23]&lt;br /&gt;
* [http://hercules.ws/board/user/297-shakto/ Shakto]&lt;br /&gt;
[[Category:Hercules]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/User:Via</id>
		<title>User:Via</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/User:Via"/>
				<updated>2013-11-02T14:43:56Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* Personal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Introduction===&lt;br /&gt;
Welcome to my user page. I joined here in January 2013, to learn and to share my knowledge.&lt;br /&gt;
&lt;br /&gt;
==Personal==&lt;br /&gt;
* Alias: Mumbles (formerly Via)&lt;br /&gt;
* Hometown: San Francisco, California, USA&lt;br /&gt;
* Occupation: Developer&lt;br /&gt;
* School: City College of San Francisco&lt;br /&gt;
* Homepage: http://dev.are-o.net&lt;br /&gt;
&lt;br /&gt;
==Hercules==&lt;br /&gt;
* [[Special:Contributions/Via|My Contributions]]&lt;br /&gt;
* [[Special:WantedPages|Wanted Pages]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Editing_the_wiki</id>
		<title>Editing the wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Editing_the_wiki"/>
				<updated>2013-10-31T09:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Reverted edits by ErevyLiex (talk) to last revision by Dastgirpojee&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the Hercules wiki!==&lt;br /&gt;
The Hercules wiki could always use some help. It is an ever changing repository of information related to Hercules, such as installation, configuration, scripting and even some client support. The wiki thanks you for stopping by and showing some interest in helping get the wiki full of the most useful information for Hercules.&lt;br /&gt;
&lt;br /&gt;
===Where to Begin?===&lt;br /&gt;
All users must login to the wiki using their forum account. Any member with more than 1 post on the forums can edit the wiki, but please keep in mind that the Hercules wiki is released under the [[wikipedia:GNU_Free_Documentation_License|GNU Free Documentation License]] Version 1.2. This means that the wiki and any works put on it can be edited at will. They may also be distributed, provided all history and copylefts remain intact. Please see read this page for more information.&lt;br /&gt;
&lt;br /&gt;
Don't know where to start? Check the [[Special:WantedPages]] page and create a page that is listed there!&lt;br /&gt;
&lt;br /&gt;
Please do not create pages for custom content, such as custom projects not relating to Hercules in any way. A full list of content that should not be on the wiki is listed at [[Editing the wiki]].&lt;br /&gt;
&lt;br /&gt;
Please see [[:Category:Wiki_Projects|Wiki Projects]] for any ongoing projects that you might be able to help with!&lt;br /&gt;
&lt;br /&gt;
===License Requirements===&lt;br /&gt;
The Hercules wiki is to be released under the [[wikipedia:GNU_Free_Documentation_License|GNU Free Documentation License]]. For those that do not know, this license allows anyone to edit your work on the wiki at will, provided that all pertinent history is remained intact and all copylefts are abided by. This work can also be redistributed, again, provided that all copylefts remain intact.&lt;br /&gt;
&lt;br /&gt;
===Editing Requirements===&lt;br /&gt;
You might be eager to start editing. The first question is....how do I start?&lt;br /&gt;
&lt;br /&gt;
With the Hercules wiki, you can use IPB BBCodes to format your work, but there is a helpful toolbar at the top of the edit box to help you as well.&lt;br /&gt;
&lt;br /&gt;
You can create a new page, but make sure that the page you are creating [[Special:AllPages|doesn't exist yet]] and preferably is already [[Special:WantedPages|being linked to]]. If it already exists, maybe you can head over and help edit in something that might be missing that someone forgot.&lt;br /&gt;
&lt;br /&gt;
===General Rules for the Hercules wiki===&lt;br /&gt;
{{outdated|type=section}}&lt;br /&gt;
These guidelines/rules should be followed on the Hercules wiki. If not followed, your account is at risk for being banned from the wiki '''as well as''' from the forums. You have been warned.&lt;br /&gt;
* Deleting a page must come from a Community Administrator or a Documentation Manager. If you have a page that you request for deletion, please add the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{deletion suggested}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; template. See [[Template:Delete]] for details.&lt;br /&gt;
* Editing wars are not to be tolerated. It creates unwanted and unneeded long history.&lt;br /&gt;
* Pornography is a not to appear on the Hercules wiki.&lt;br /&gt;
* Text must be appropriate in nature and not contain foul language.&lt;br /&gt;
&lt;br /&gt;
===General tips for editing a wiki===&lt;br /&gt;
These tips should be referenced when you need to edit/write an article.&lt;br /&gt;
* As mentioned before, make sure that if a new page is being created, it [[Special:AllPages|doesn't exist yet]].&lt;br /&gt;
* Use proper English with proper spelling and grammar. The Hercules wiki is in English and English only at this point.&lt;br /&gt;
* Links should not appear in topic titles, such as the title of a section.&lt;br /&gt;
* There should be no reason to link to a page more than once if it appears in the article multiple times. The first mention of a topic that has a page should be linked to.&lt;br /&gt;
* Name your page appropriately and avoid special symbols. Don't make your page too long, but think of a name that will relate to the article (i.e: Don't name your article related to XRay 'client').&lt;br /&gt;
* Use images when Windows is involved. It is too hard and sometimes troublesome to read an article with the text: Go here, click OK, go here, hover your mouse here, click here, type this, click here, drag it to here, etc.&lt;br /&gt;
* Any section or article that relates to changing code should be in DIFF or PATCH format. This includes all of the proper syntax. If you do not know what a diff or patch file is, please refer to it's Wikipedia article [[wikipedia:Diff#Unified_format|here]]. 'find and replace' text is not acceptable.&lt;br /&gt;
* Make use of Wikipedia's help articles, if you are unsure about [[wikipedia:Wikipedia:How_to_edit_a_page|editing articles]] or [[wikipedia:Help:Wiki_markup|the use of some wiki-code]]. Note, that most of the templates used on Wikipedia cannot be applied to the Hercules wiki, except [[:Category:Templates|few ones]].&lt;br /&gt;
* Use the ''Show preview'' button before saving the page, especially when you are unsure, how your edit turns out. This helps avoiding follow-up &amp;quot;ooops&amp;quot;-edits.&lt;br /&gt;
* Before you save an article, add reason for your edit or summary of your edit in the ''Summary'' line. You help others to recognize, what was changed and why in the [[Special:RecentChanges|list of recent changes]] and it distinguishes you from spam-bots, which do not add a reason. You do not need to add a summary for your user-page or on article's talk pages. If you cannot remember what you changed, use the ''Show changes'' button to review all changes done to the page as a diff.&lt;br /&gt;
* Avoid excessive amount of formatting. Use either '''bold''' or ''italics'' but not '''''both'''''. Refrain from using &amp;lt;u&amp;gt;underlining&amp;lt;/u&amp;gt; as this usually gives the impression of a link. &amp;lt;s&amp;gt;Strike-through&amp;lt;/s&amp;gt; should be used on talk pages only, if there is something in an article to invalidate, simply delete it.&lt;br /&gt;
&lt;br /&gt;
===Script Command Pages===&lt;br /&gt;
As a general rule of thumb, the following format should be used in order to keep the articles in a uniform fashion.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;==Syntax==&lt;br /&gt;
*'''scriptcommand'''(&amp;lt;argument1&amp;gt;, &amp;lt;&amp;quot;argument2&amp;quot;&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command does this and that, and arguments mean that and this.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 [[mes]] &amp;quot;...&amp;quot;;&lt;br /&gt;
 [[if]](scriptcommand(1, &amp;quot;abc&amp;quot;))&lt;br /&gt;
 {&lt;br /&gt;
     mes &amp;quot;...&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 [[close]];&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[related script command 1]]&lt;br /&gt;
* [[related script command 2]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Monster</id>
		<title>Monster</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Monster"/>
				<updated>2013-08-16T11:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;{{OtherUse|the script command|the game object|Mob}} ==Syntax== *'''monster''' &amp;lt;&amp;quot;map name&amp;quot;&amp;gt;, &amp;lt;x&amp;gt;, &amp;lt;y&amp;gt;, &amp;lt;&amp;quot;display name&amp;quot;&amp;gt;, &amp;lt;mob id&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;];  ==Description==...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OtherUse|the script command|the game object|Mob}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
*'''monster''' &amp;lt;&amp;quot;map name&amp;quot;&amp;gt;, &amp;lt;x&amp;gt;, &amp;lt;y&amp;gt;, &amp;lt;&amp;quot;display name&amp;quot;&amp;gt;, &amp;lt;mob id&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command spawns a monster at given map and coordinates, using given class and amount. Monsters spawned with this command will not re-spawn after being killed.&lt;br /&gt;
&lt;br /&gt;
To address the map, on which the running [[NPC]] resides, ''map name'' can be set to &amp;quot;this&amp;quot;. Spawning the monster on random coordinates is accomplished by setting parameters ''x'' and ''y'' to 0. The parameter ''display name'' specifies the in-game name of the monster, which is not necessary required to be the actual name, such as &amp;quot;Prontera minion&amp;quot;. The ''display name'' accepts also two magic names, &amp;quot;--ja--&amp;quot; and &amp;quot;--en--&amp;quot;, which are replaced by the server with the value of the kROName and iROName mob db columns of the given ''mob id'', respectively. Setting the ''mob id'' to -1, -2 or -3 will spawn a random monster from the dead branch, poring box or bloody branch list respectively.&lt;br /&gt;
&lt;br /&gt;
Optionally an ''event label'' can be specified, which has the form &amp;quot;NpcName::OnLabel&amp;quot; and is run upon the monster's death. If the killer was a player, [[RID#Usage|it will be attached]] to the invoked script.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
     [[mes]] &amp;quot;I will spawn 5 Porings for you!&amp;quot;;&lt;br /&gt;
     [[close2]];&lt;br /&gt;
     monster &amp;quot;this&amp;quot;,0,0,&amp;quot;Poring 1&amp;quot;,1002,1,[[strnpcinfo]](0)+&amp;quot;::OnPoring1Dead&amp;quot;;&lt;br /&gt;
     monster &amp;quot;this&amp;quot;,0,0,&amp;quot;Poring 2&amp;quot;,1002,1,strnpcinfo(0)+&amp;quot;::OnPoring2Dead&amp;quot;;&lt;br /&gt;
     monster &amp;quot;this&amp;quot;,0,0,&amp;quot;Poring 3&amp;quot;,1002,1,strnpcinfo(0)+&amp;quot;::OnPoring3Dead&amp;quot;;&lt;br /&gt;
     monster &amp;quot;this&amp;quot;,0,0,&amp;quot;Poring 4&amp;quot;,1002,1,strnpcinfo(0)+&amp;quot;::OnPoring4Dead&amp;quot;;&lt;br /&gt;
     monster &amp;quot;this&amp;quot;,0,0,&amp;quot;Poring 5&amp;quot;,1002,1,strnpcinfo(0)+&amp;quot;::OnPoring5Dead&amp;quot;;&lt;br /&gt;
     [[end]];&lt;br /&gt;
 &lt;br /&gt;
 OnPoring1Dead:&lt;br /&gt;
     mes &amp;quot;You killed Poring 1&amp;quot;;&lt;br /&gt;
     [[close]];&lt;br /&gt;
 OnPoring2Dead:&lt;br /&gt;
     mes &amp;quot;You killed Poring 2&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 OnPoring3Dead:&lt;br /&gt;
     mes &amp;quot;You killed Poring 3&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 OnPoring4Dead:&lt;br /&gt;
     mes &amp;quot;You killed Poring 4&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 OnPoring5Dead:&lt;br /&gt;
     mes &amp;quot;You killed Poring 5&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
This will spawn 5 Porings randomly distributed on the map of the invoking character with the names &amp;quot;Poring 1&amp;quot; to &amp;quot;Poring 5&amp;quot;. Each time the player kills one of them, it triggers the given event label in the NPC, which will say &amp;quot;You killed Poring X&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Clone</id>
		<title>Clone</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Clone"/>
				<updated>2013-08-16T11:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax ==  *'''clone''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;quot;&amp;lt;event&amp;gt;&amp;quot;,&amp;lt;char id&amp;gt;{,&amp;lt;master_id&amp;gt;{,&amp;lt;mode&amp;gt;{,&amp;lt;flag&amp;gt;,&amp;lt;duration&amp;gt;}}}  == Description ==  This command creates a monster which is ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
&lt;br /&gt;
*'''clone''' &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;,&amp;quot;&amp;lt;event&amp;gt;&amp;quot;,&amp;lt;char id&amp;gt;{,&amp;lt;master_id&amp;gt;{,&amp;lt;mode&amp;gt;{,&amp;lt;flag&amp;gt;,&amp;lt;duration&amp;gt;}}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This command creates a [[monster]] which is a copy of another player. The first&lt;br /&gt;
four arguments serve the same purpose as in the monster script command. The&lt;br /&gt;
&amp;lt;char id&amp;gt; is the character ID of the player to clone (player must be online).&lt;br /&gt;
If &amp;lt;master id&amp;gt; is given, the clone will be a 'slave/minion' of it. Master_id&lt;br /&gt;
must be a character ID of another online player.&lt;br /&gt;
&lt;br /&gt;
The mode can be specified to determine the behavior of the clone, it's&lt;br /&gt;
values are the same as the ones used for the mode field in the mob_db. The&lt;br /&gt;
default mode is aggressive, assists, can move, can attack.&lt;br /&gt;
&lt;br /&gt;
Flag can be either zero or one currently. If zero, the clone is a normal&lt;br /&gt;
monster that'll target players, if one, it is considered a summoned monster,&lt;br /&gt;
and as such, it'll target other monsters. Defaults to zero.&lt;br /&gt;
&lt;br /&gt;
The duration specifies how long the clone will live before it is auto-removed.&lt;br /&gt;
Specified in seconds, defaults to no limit (zero).&lt;br /&gt;
&lt;br /&gt;
Returned value is the monster ID of the spawned clone. If command fails,&lt;br /&gt;
returned value is zero.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
 [[set]] .@player,getcharid(0);&lt;br /&gt;
 '''clone''' &amp;quot;prontera&amp;quot;,150,150,&amp;quot;Test::OnEvent&amp;quot;,.@player;&lt;br /&gt;
or&lt;br /&gt;
 '''clone''' &amp;quot;prontera&amp;quot;,150,150,&amp;quot;Test::OnEvent&amp;quot;,getcharid(0);&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Setmapflag</id>
		<title>Setmapflag</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Setmapflag"/>
				<updated>2013-08-11T10:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* Description */ SVN -&amp;gt; Git template conversion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[setmapflag]] &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;flag&amp;gt;{,&amp;lt;zone&amp;gt;};&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This command marks a specified map with a map flag given. Map flags alter the behavior of the map, you can see the list of the available ones in '{{git|db/const.txt}}' under 'mf_'.&lt;br /&gt;
&lt;br /&gt;
The map flags alter the behavior of the map regarding teleporting (mf_nomemo, mf_noteleport, mf_nowarp, mf_nogo), storing location when disconnected (mf_nosave), dead branch usage (mf_nobranch), penalties upon death (mf_nopenalty, mf_nozenypenalty), PVP behavior (mf_pvp, mf_pvp_noparty, mf_pvp_noguild), WoE behavior (mf_gvg,mf_gvg_noparty), ability to use skills or open up trade deals (mf_notrade, mf_novending, mf_noskill, mf_noicewall), current weather effects (mf_snow, mf_fog, mf_sakura, mf_leaves, mf_rain, mf_clouds, mf_fireworks) and whether night will be in effect on this map (mf_nightenabled).&lt;br /&gt;
&lt;br /&gt;
The zone optional parameter is used to set the zone for restricted mapflags.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 // This sets the 'novending' mapflag on Prontera&lt;br /&gt;
 setmapflag &amp;quot;prontera&amp;quot;, mf_novending;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[mapflag]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Setmapflag</id>
		<title>Setmapflag</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Setmapflag"/>
				<updated>2013-08-11T10:24:27Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax == * setmapflag &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;flag&amp;gt;{,&amp;lt;zone&amp;gt;};  == Description == This command marks a specified map with a map flag given. Map flags alter the behavior of the ma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[setmapflag]] &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;flag&amp;gt;{,&amp;lt;zone&amp;gt;};&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This command marks a specified map with a map flag given. Map flags alter the behavior of the map, you can see the list of the available ones in '{{svn|trunk/db/const.txt}}' under 'mf_'.&lt;br /&gt;
&lt;br /&gt;
The map flags alter the behavior of the map regarding teleporting (mf_nomemo, mf_noteleport, mf_nowarp, mf_nogo), storing location when disconnected (mf_nosave), dead branch usage (mf_nobranch), penalties upon death (mf_nopenalty, mf_nozenypenalty), PVP behavior (mf_pvp, mf_pvp_noparty, mf_pvp_noguild), WoE behavior (mf_gvg,mf_gvg_noparty), ability to use skills or open up trade deals (mf_notrade, mf_novending, mf_noskill, mf_noicewall), current weather effects (mf_snow, mf_fog, mf_sakura, mf_leaves, mf_rain, mf_clouds, mf_fireworks) and whether night will be in effect on this map (mf_nightenabled).&lt;br /&gt;
&lt;br /&gt;
The zone optional parameter is used to set the zone for restricted mapflags.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 // This sets the 'novending' mapflag on Prontera&lt;br /&gt;
 setmapflag &amp;quot;prontera&amp;quot;, mf_novending;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[mapflag]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Removemapflag</id>
		<title>Removemapflag</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Removemapflag"/>
				<updated>2013-08-11T10:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== * removemapflag &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;flag&amp;gt;; ==Description== This command removes a mapflag from a specified map. See 'setmapflag'. Category:Script_Command&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
* [[removemapflag]] &amp;quot;&amp;lt;map name&amp;gt;&amp;quot;,&amp;lt;flag&amp;gt;;&lt;br /&gt;
==Description==&lt;br /&gt;
This command removes a mapflag from a specified map. See '[[setmapflag]]'.&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Isnight</id>
		<title>Isnight</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Isnight"/>
				<updated>2013-08-07T02:19:57Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''isday'''(); *'''isnight'''();  ==Description== These functions determine whether server day or night cycle is currently in effect or not. If the server night is...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''isday'''();&lt;br /&gt;
*'''isnight'''();&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
These functions determine whether server day or night cycle is currently in effect or not. If the server night is in effect, isday and isnight will return 0 and 1, otherwise 1 and 0 respectively.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 [[if]](!isday())&lt;br /&gt;
 {&lt;br /&gt;
     [[mes]] &amp;quot;I do not work at night, come again tomorrow.&amp;quot;;&lt;br /&gt;
     [[close]];&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 if(isnight())&lt;br /&gt;
 {&lt;br /&gt;
     mes &amp;quot;I do not work at night, come again tomorrow.&amp;quot;;&lt;br /&gt;
     close;&lt;br /&gt;
 }&lt;br /&gt;
These two script fragments achieve the same effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Player_Parameters_(Scripting)</id>
		<title>Player Parameters (Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Player_Parameters_(Scripting)"/>
				<updated>2013-08-07T02:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Player Parameters''', in [[scripting]], are a set of params that look like [[Variables#Player Variables|character variables]], they exist during runtime only and make certain information regarding the character available to scripts for read (and write depending on the variable), they're the following (most of them are self-explanatory):&lt;br /&gt;
* StatusPoint&lt;br /&gt;
** Number of remaining Status Points the character has&lt;br /&gt;
* BaseLevel&lt;br /&gt;
* SkillPoint&lt;br /&gt;
** Number of remaining Skill Points the character has&lt;br /&gt;
* Class&lt;br /&gt;
* Upper&lt;br /&gt;
** (0) if the character is normal class, (1) if advanced, (2) if baby.&lt;br /&gt;
* Zeny	&lt;br /&gt;
* Sex&lt;br /&gt;
** Whether the character is male (1) or female (0)&lt;br /&gt;
* Weight&lt;br /&gt;
* MaxWeight&lt;br /&gt;
* JobLevel&lt;br /&gt;
* BaseExp&lt;br /&gt;
* JobExp&lt;br /&gt;
* Karma&lt;br /&gt;
** Not officially in use. You can use this param however you want.&lt;br /&gt;
* Manner&lt;br /&gt;
* NextBaseExp&lt;br /&gt;
* NextJobExp&lt;br /&gt;
* Hp&lt;br /&gt;
* MaxHp&lt;br /&gt;
* Sp&lt;br /&gt;
* MaxSp&lt;br /&gt;
* BaseJob&lt;br /&gt;
* BaseClass&lt;br /&gt;
* killerrid&lt;br /&gt;
** The [[RID]] of the game object that last killed the character.&lt;br /&gt;
* killedrid&lt;br /&gt;
** The [[RID]] of the game object that was last killed by the character.&lt;br /&gt;
* SlotChange&lt;br /&gt;
** Stores the number of times this character may use the 'slot change' function in char select&lt;br /&gt;
** Can be modified&lt;br /&gt;
* CharRename&lt;br /&gt;
** Stores the number of times this character may use the 'char name change' function in char select&lt;br /&gt;
** Can be modified&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/OnTouch</id>
		<title>OnTouch</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/OnTouch"/>
				<updated>2013-08-06T13:17:25Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax==  Map,X,Y,facing	script	NPCName	ID,OnTouch_X,OnTouchY,{    OnTouch:  ==Description== OnTouch is rather hard to explain. In the beginning of the script you specify th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
 Map,X,Y,facing	script	NPCName	ID,OnTouch_X,OnTouchY,{&lt;br /&gt;
 &lt;br /&gt;
 OnTouch:&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
OnTouch is rather hard to explain. In the beginning of the script you specify the area that when the player enters that specified area, the following script is executed. You cannot specify a specific area. If you do 3,3 if the player enters any 3 squares around the NPC, the script is executed. &lt;br /&gt;
&lt;br /&gt;
'''Trick''': Using &amp;quot;end;&amp;quot; at the beginning of the script stops players from executing the script by clicking on the NPC, so they can only execute it if they walk into the specified area.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
 prontera,147,153,3	script	Mary	71,3,3,{&lt;br /&gt;
 	end;&lt;br /&gt;
 &lt;br /&gt;
 OnTouch:&lt;br /&gt;
 	mes &amp;quot;[Mary]&amp;quot;;&lt;br /&gt;
 	mes &amp;quot;Have you seen my lamb?&amp;quot;;&lt;br /&gt;
 	close;&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Setnpcdisplay</id>
		<title>Setnpcdisplay</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Setnpcdisplay"/>
				<updated>2013-08-06T08:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax == * setnpcdisplay(&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;display name&amp;gt;&amp;quot;, &amp;lt;class id&amp;gt;, &amp;lt;size&amp;gt;) * setnpcdisplay(&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;display name&amp;gt;&amp;quot;, &amp;lt;class id&amp;gt;) * setnpcdisplay(&amp;quot;&amp;lt;npc ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[setnpcdisplay]](&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;display name&amp;gt;&amp;quot;, &amp;lt;class id&amp;gt;, &amp;lt;size&amp;gt;)&lt;br /&gt;
* [[setnpcdisplay]](&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;display name&amp;gt;&amp;quot;, &amp;lt;class id&amp;gt;)&lt;br /&gt;
* [[setnpcdisplay]](&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;display name&amp;gt;&amp;quot;)&lt;br /&gt;
* [[setnpcdisplay]](&amp;quot;&amp;lt;npc name&amp;gt;&amp;quot;, &amp;lt;class id&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Changes the display name and/or display class of the target NPC.&lt;br /&gt;
&lt;br /&gt;
Returns 0 is successful, 1 if the NPC does not exist.&lt;br /&gt;
&lt;br /&gt;
Size is 0 = normal 1 = small 2 = big.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 setnpcdisplay(&amp;quot;Test&amp;quot;,&amp;quot;Test NPC&amp;quot;,&amp;quot;1002&amp;quot;,&amp;quot;2&amp;quot;); //The NPC 'Test' will receive the name 'Test NPC', the disguise of a Poring, and be large like a Mastering.&lt;br /&gt;
 setnpcdisplay(&amp;quot;Test&amp;quot;,&amp;quot;Test NPC&amp;quot;,&amp;quot;1002&amp;quot;); //The NPC 'Test' will receive the name 'Test NPC' and the disguise of a Poring.&lt;br /&gt;
 setnpcdisplay(&amp;quot;Test&amp;quot;,&amp;quot;Test NPC&amp;quot;); //The NPC 'Test' will receive the name 'Test NPC'.&lt;br /&gt;
 setnpcdisplay(&amp;quot;Test&amp;quot;,1002); //The NPC 'Test' will receive the disguise of a Poring.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Getvariableofnpc</id>
		<title>Getvariableofnpc</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Getvariableofnpc"/>
				<updated>2013-08-06T07:40:28Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''getvariableofnpc'''(&amp;lt;variable&amp;gt;, &amp;lt;&amp;quot;npc name&amp;quot;&amp;gt;);  ==Description== This function retrieves a variable reference to a [[Variables#NPC_Variables|permanent NPC variab...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''getvariableofnpc'''(&amp;lt;variable&amp;gt;, &amp;lt;&amp;quot;npc name&amp;quot;&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function retrieves a variable reference to a [[Variables#NPC_Variables|permanent NPC variable]] in an another NPC script. Note, that the return value behaves like a variable, not like a value, which means, the return value of this function can be used in other script commands, which expect a variable as parameter.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 [[mes]] &amp;quot;The current name of my co-worker is &amp;quot;+getvariableofnpc(.npcname$, &amp;quot;Site Co-Worker&amp;quot;);&lt;br /&gt;
Prints the value of the variable ''.npcname$'' as if it was used inside the NPC &amp;quot;Site Co-Worker&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 mes &amp;quot;Let's give him an another name...&amp;quot;;&lt;br /&gt;
 [[set]] getvariableofnpc(.npcname$, &amp;quot;Site Co-Worker&amp;quot;), &amp;quot;Sleeping Tom&amp;quot;;&lt;br /&gt;
Sets the variable ''.npcname$'' of the NPC &amp;quot;Site Co-Worker&amp;quot; to &amp;quot;Sleeping Tom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 set .mynpcnamecopy$, getvariableofnpc(.npcname$, &amp;quot;Site Co-Worker&amp;quot;);&lt;br /&gt;
 set .mynpcnamecopy$, &amp;quot;Sleeping Tom&amp;quot;;&lt;br /&gt;
Will change the variable ''.mynpcnamecopy$'' to &amp;quot;Sleeping Tom&amp;quot;, but keep the variable ''.npcname$'' of NPC &amp;quot;Site Co-Worker&amp;quot; unaffected, because the first call to set copies the value of ''.npcname$'' to ''.mynpcnamecopy$'', rather than the reference.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Misceffect</id>
		<title>Misceffect</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Misceffect"/>
				<updated>2013-08-05T10:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax == * misceffect &amp;lt;effect number&amp;gt;;  == Description == This command, if run from an NPC object that has a sprite, will call up a specified effect number, centered o...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[misceffect]] &amp;lt;effect number&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This command, if run from an NPC object that has a sprite, will call up a specified effect number, centered on the NPC sprite. If the running code does not have an object ID (a 'floating' NPC) or is not running from an NPC object at &lt;br /&gt;
all (an item script) the effect will be centered on the character who's RID got attached to the script, if any. For usable item scripts, this command will create an effect centered on the player using the item.&lt;br /&gt;
&lt;br /&gt;
A full list of known effects is found in {{git|doc/effect_list.txt}} The list of those that actually work may differ greatly between client versions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Category:Installation</id>
		<title>Category:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Category:Installation"/>
				<updated>2013-06-24T10:07:59Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is used as a place for all pages covering installation of Hercules or its dependancies to be found. If you want to include a page here, and it covers installation of Hercules in any way, shape or form, or one of it's major dependancies, such as SQL or possibly SVN, tag it with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[[Category:Installation]]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please do not create duplicate articles. Thank you.&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Doevent</id>
		<title>Doevent</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Doevent"/>
				<updated>2013-06-23T00:03:00Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''doevent''' &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;;  ==Description== This command invokes a script at given event label in an another NPC. The parameter ''event label'' has the for...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''doevent''' &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command invokes a script at given event label in an another [[NPC]]. The parameter ''event label'' has the form &amp;quot;NpcName::OnLabel&amp;quot; and unlike in [[donpcevent]], it cannot target multiple NPCs by omitting the NPC name. It works much like a [[goto]] command into an another NPC. If there was an [[RID]] attached to the invoking script, it will be attached to the invoked script as well.&lt;br /&gt;
&lt;br /&gt;
This command is not used very much, because it is more limited than donpcevent and passing RID to another script is usually not required.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 prontera,150,150,3	script	NPC1	53,{&lt;br /&gt;
     [[mes]] &amp;quot;Let's see, no one look, so let as deal.&amp;quot;;&lt;br /&gt;
     [[next]];&lt;br /&gt;
     doevent &amp;quot;NPC2::OnTalk&amp;quot;;&lt;br /&gt;
     mes &amp;quot;Damn, we were spotted, so no trade for you.&amp;quot;;&lt;br /&gt;
     [[close]];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 prontera,152,150,5	script	NPC2	53,{&lt;br /&gt;
     // ...&lt;br /&gt;
 OnTalk:&lt;br /&gt;
     [[npctalk]] &amp;quot;Everyone look, &amp;quot;+[[strcharinfo]](0)+&amp;quot; tries to buy forbidden goods!&amp;quot;;&lt;br /&gt;
     [[end]];&lt;br /&gt;
 }&lt;br /&gt;
Every time a player talks to NPC1, NPC2 will scream into it's area, what the player is about to do. Since doevent passes the RID to NPC2, it can use strcharinfo to retrieve the player's name.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Goto</id>
		<title>Goto</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Goto"/>
				<updated>2013-06-23T00:01:42Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax == * goto &amp;lt;label&amp;gt;;  == Description == This command will make the script execution jump to the specified label. It is often used by beginners in conjunction with ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[goto]] &amp;lt;label&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This command will make the script execution jump to the specified label. It is often used by beginners in conjunction with [[if]], before they get accustomed to other conditional statements, such as [[for]] or [[switch]]. While advanced scripters typically discourage using [[goto]], it can come handy when requiring to leave a complex nested loop without having to use flags or even more complicated code.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 [[if]] ([[checkriding]]()) [[goto]] L_riding;&lt;br /&gt;
 	[[mes]] &amp;quot;Yay, you're not riding a Peco.&amp;quot;;&lt;br /&gt;
 	[[close]];&lt;br /&gt;
 &lt;br /&gt;
 L_riding:&lt;br /&gt;
 	[[mes]] &amp;quot;Please dismount your Peco first.&amp;quot;;&lt;br /&gt;
 	[[close]];&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/AEGIS</id>
		<title>AEGIS</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/AEGIS"/>
				<updated>2013-06-23T00:01:27Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==What is it?== AEGIS is Windows Server software used along with Microsoft SQL Server by Gravity Corporation to run the official Ragnarok On...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What is it?==&lt;br /&gt;
AEGIS is Windows Server software used along with [[wikipedia:Microsoft_SQL_Server|Microsoft SQL Server]] by Gravity Corporation to run the official Ragnarok Online game servers.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It was originally developed for exclusive use within Gravity and Gravity subsidiaries, but has been leaked within its lifetime, purportedly by several teams who compromised official computers which contained AEGIS binaries.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AEGIS consists of a number of components:&lt;br /&gt;
*'''Inter Server''' Responsible for Guild Siege, Guild Chat, Private Message and synchronization between servers&lt;br /&gt;
*'''Zone Server''' Responsible for Game Play Dynamics&lt;br /&gt;
*'''Character Server''' Responsible for Character Information&lt;br /&gt;
*'''Account Server''' Responsible for verifying information in the account database, such as if it exists, if it is either paid for or not (active/inactive), etc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Short History==&lt;br /&gt;
AEGIS was originally created by Hakkyu Kim (Neolith) and was his first server project. Despite the fact that Aegis is referred to as production quality (due to the involvement of commercial organizations) leaked versions revealed that the majority of its configuration files were very simple, it used very inefficient means of storing information for reference, and showed very high memory usage when there were no routines running to suggest such usage.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original development team was forced to leave the company after a takeover by [[wikipedia:Samsung_Electronics|Samsung Electronics] and most of the core members are now working on a project known as [[wikipedia:Granado_Espada|Granado Espada].&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [[wikipedia:AEGIS_(Ragnarok_Online)|AEGIS article on Wikipedia]]&lt;br /&gt;
* [http://forum.asb-sakray.net/ Aegis Support Board]&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Donpcevent</id>
		<title>Donpcevent</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Donpcevent"/>
				<updated>2013-06-23T00:00:32Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''donpcevent''' &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;; *'''cmdothernpc''' &amp;lt;&amp;quot;npc name&amp;quot;&amp;gt;, &amp;lt;&amp;quot;command&amp;quot;&amp;gt;;  ==Description== This command invokes the event label code within an another [[NPC]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''donpcevent''' &amp;lt;&amp;quot;event label&amp;quot;&amp;gt;;&lt;br /&gt;
*'''cmdothernpc''' &amp;lt;&amp;quot;npc name&amp;quot;&amp;gt;, &amp;lt;&amp;quot;command&amp;quot;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command invokes the event label code within an another [[NPC]] or NPCs. If ''event label'' has the form &amp;quot;NpcName::OnLabel&amp;quot;, then only given NPC's event label will be invoked (much like [[goto]] into another NPC). If the form is &amp;quot;::OnLabel&amp;quot; (''NpcName'' ommited), the event code of all NPCs with given label will be invoked, one after another. In both cases the invoked script will run without an attached [[RID]], whether or not the invoking script was attached to a player. The event label name is required to start with ''On''.&lt;br /&gt;
&lt;br /&gt;
This command can be used to make other NPCs act, as if they were responding to the invoking NPC's actions, such as using an [[emotion]] or [[npctalk|talking]].&lt;br /&gt;
&lt;br /&gt;
The command '''cmdothernpc''' is equivalent to '''donpcevent''' &amp;quot;&amp;lt;npc name&amp;gt;::OnCommand&amp;lt;command&amp;gt;&amp;quot; and an approximation to the [[AEGIS]] script command with same name.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 prontera,150,150,3	script	NPC	53,{&lt;br /&gt;
     [[mes]] &amp;quot;Hey NPC2 copies what I do.&amp;quot;;&lt;br /&gt;
     [[close2]];&lt;br /&gt;
     [[set]] .@emote, [[rand]](1,30);&lt;br /&gt;
     donpcevent &amp;quot;NPC2::OnEmote&amp;quot;;&lt;br /&gt;
 OnEmote:&lt;br /&gt;
     [[emotion]] .@emote;&lt;br /&gt;
     [[end]];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 prontera,152,150,5	script	NPC2	53,{&lt;br /&gt;
     mes &amp;quot;Hey NPC copies what I do.&amp;quot;;&lt;br /&gt;
     close2;&lt;br /&gt;
     set .@emote, rand(1,30);&lt;br /&gt;
     donpcevent &amp;quot;NPC::OnEmote&amp;quot;;&lt;br /&gt;
 OnEmote:&lt;br /&gt;
     emotion .@emote;&lt;br /&gt;
     end;&lt;br /&gt;
 }&lt;br /&gt;
Whichever of the both NPCs is talked to, both will show a random emotion at the same time.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[doevent]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Disablenpc</id>
		<title>Disablenpc</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Disablenpc"/>
				<updated>2013-06-22T23:54:59Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;Category:Script_Command  ==Syntax== *disablenpc &amp;quot;&amp;lt;NPC object name&amp;gt;&amp;quot;; *'''enablenpc''' &amp;quot;&amp;lt;NPC object name&amp;gt;&amp;quot;;  ==Description==  These two commands will disable and en...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Script_Command]]&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
*[[disablenpc]] &amp;quot;&amp;lt;NPC object name&amp;gt;&amp;quot;;&lt;br /&gt;
*'''[[enablenpc]]''' &amp;quot;&amp;lt;NPC object name&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
These two commands will disable and enable, respectively, an NPC object &lt;br /&gt;
specified by name. The disabled NPC will disappear from sight and will no longer &lt;br /&gt;
be triggerable in the normal way. It is not clear whether it will still be &lt;br /&gt;
accessible through '[[donpcevent]]' and other triggering commands, but it probably &lt;br /&gt;
will be. You can disable even warp NPCs if you know their object names, which is &lt;br /&gt;
an easy way to make a map only accessible through walking half the time. Then &lt;br /&gt;
you '[[enablenpc]]' them back.&lt;br /&gt;
&lt;br /&gt;
You can also use these commands to create the illusion of an NPC switching &lt;br /&gt;
between several locations, which is often better than actually moving the NPC -&lt;br /&gt;
create one NPC object with a visible and a hidden part to their name, make a few &lt;br /&gt;
copies, and then disable all except one.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prontera,100,100,4	script	Tim	81,{&lt;br /&gt;
	disablenpc &amp;quot;timsbrothertom&amp;quot;;&lt;br /&gt;
	mes &amp;quot;Hey you, I disabled my brother Tom by accident :S&amp;quot;;&lt;br /&gt;
	mes &amp;quot;Can you help me to enable him back?&amp;quot;;&lt;br /&gt;
	next;&lt;br /&gt;
	if(select(&amp;quot;Yes, sure!:No!&amp;quot;) == 2) close;&lt;br /&gt;
	enablenpc &amp;quot;timsbrothertom&amp;quot;;&lt;br /&gt;
	mes &amp;quot;Thank you very much! He is back now :)&amp;quot;;&lt;br /&gt;
	close;&lt;br /&gt;
}&lt;br /&gt;
prontera,102,100,4	script	Tom#1::timsbrothertom	81,{&lt;br /&gt;
	mes &amp;quot;Hi, I'm Tims brother!&amp;quot;;&lt;br /&gt;
	close;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Enablenpc</id>
		<title>Enablenpc</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Enablenpc"/>
				<updated>2013-06-22T23:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Redirected page to Disablenpc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[disablenpc]]&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Delitem</id>
		<title>Delitem</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Delitem"/>
				<updated>2013-06-22T12:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''delitem''' &amp;lt;item id&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;account id&amp;gt;]; *'''delitem''' &amp;lt;&amp;quot;item name&amp;quot;&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;account id&amp;gt;];  ==Description== This command will take a specified amou...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''delitem''' &amp;lt;item id&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;account id&amp;gt;];&lt;br /&gt;
*'''delitem''' &amp;lt;&amp;quot;item name&amp;quot;&amp;gt;, &amp;lt;amount&amp;gt;[, &amp;lt;account id&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command will take a specified amount of given item from the [[RID#Usage|invoking]] character. The items are destroyed - there is no way an [[NPC]] can simply own and have an inventory of items, other than by destroying and recreating them when needed.&lt;br /&gt;
&lt;br /&gt;
Before items are deleted, the script should check, if the player has given amount of items. If there are not enough items, they are deleted anyway, but the script is terminated with an error then, to prevent exploits. If the specified item does not exist, nothing will be deleted, but the script is terminated with an error as well.&lt;br /&gt;
&lt;br /&gt;
If ''account id'' is given, the items are deleted from the character, which is currently online on that account instead. If the player is not online, the script terminates.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 delitem 502, 10;  // Orange_Potion&lt;br /&gt;
Removes 10 Orange Poitions from currently attached character.&lt;br /&gt;
 delitem 617, 0, 2000110;  // Old_Violet_Box&lt;br /&gt;
Removes 1 Old Violet Box from an online player on account 2000110.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Itemskill</id>
		<title>Itemskill</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Itemskill"/>
				<updated>2013-06-22T12:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== *'''itemskill''' &amp;lt;skill id&amp;gt;, &amp;lt;skill level&amp;gt;; *'''itemskill''' &amp;lt;&amp;quot;skill name&amp;quot;&amp;gt;, &amp;lt;skill level&amp;gt;;  ==Description== This command meant for item scripts to replicate single...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*'''itemskill''' &amp;lt;skill id&amp;gt;, &amp;lt;skill level&amp;gt;;&lt;br /&gt;
*'''itemskill''' &amp;lt;&amp;quot;skill name&amp;quot;&amp;gt;, &amp;lt;skill level&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This command meant for item scripts to replicate single-use skills in usable items. It will not work properly, if there is a visible dialog window or menu. If the skill is self or auto-targeting, it will be used immediately otherwise a target cursor is shown.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
 605,Anodyne,Anodyne,11,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1; },{}&lt;br /&gt;
When Anodyne is used, it will cast Endure (8), Level 1, as if the actual skill has been used from skill tree.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Skilleffect</id>
		<title>Skilleffect</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Skilleffect"/>
				<updated>2013-06-22T12:48:39Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;== Syntax == * skilleffect &amp;lt;skill id&amp;gt;,&amp;lt;number&amp;gt;; * skilleffect &amp;quot;&amp;lt;skill name&amp;gt;&amp;quot;,&amp;lt;number&amp;gt;;  == Description == This command displays visual and aural effects of given skill...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Syntax ==&lt;br /&gt;
* [[skilleffect]] &amp;lt;skill id&amp;gt;,&amp;lt;number&amp;gt;;&lt;br /&gt;
* [[skilleffect]] &amp;quot;&amp;lt;skill name&amp;gt;&amp;quot;,&amp;lt;number&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This command displays visual and aural effects of given skill on [[RID|currently attached character]]. The number parameter is for skill whose visual effect involves displaying of a number (healing or damaging). Note, that this command will not actually use the skill, it is intended for scripts, which simulate skill usage by the [[NPC]], such as buffs, by setting appropriate status and displaying the skill's effect.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 [[mes]] &amp;quot;Be blessed!&amp;quot;;&lt;br /&gt;
 // Heal of 2000 HP&lt;br /&gt;
 [[heal]] 2000,0;&lt;br /&gt;
 [[skilleffect]] 28,2000;&lt;br /&gt;
 &lt;br /&gt;
 // Blessing Level 10&lt;br /&gt;
 [[sc_start]] 10,240000,10;&lt;br /&gt;
 [[skilleffect]] 34,0;&lt;br /&gt;
 &lt;br /&gt;
 // Increase AGI Level 5&lt;br /&gt;
 [[sc_start]] 12,140000,5;&lt;br /&gt;
 [[skilleffect]] 29,0;&lt;br /&gt;
&lt;br /&gt;
This will heal the character with 2000 HP, buff it with Blessing Lv 10 and Increase AGI Lv 5, and display appropriate effects.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Template:Mergebox/doc</id>
		<title>Template:Mergebox/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Template:Mergebox/doc"/>
				<updated>2013-06-22T12:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;This template aids in creating merge templates. Do not use it for normal articles. If you want to place some merge notice inside an article, create a general template (if it [...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This template aids in creating merge templates. Do not use it for normal articles. If you want to place some merge notice inside an article, create a general template (if it [[:Category:Templates|does not already exist]]) and put the template in the article instead.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{mergebox|content}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{mergebox|Multi-line content 1&lt;br /&gt;
Multi-line content 2&lt;br /&gt;
.&lt;br /&gt;
.}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Template Documentation]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Category:Box Templates]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Talk:Hercules_Interface_System</id>
		<title>Talk:Hercules Interface System</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Talk:Hercules_Interface_System"/>
				<updated>2013-06-11T23:44:09Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* Page Length */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Page Length===&lt;br /&gt;
This article is huge. Wouldn't it be more efficient to create a [[Special: Categories|category]] for the [[Hercules Interface System]], with each large section its own article? Such articles would require the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category: Hercules Interface System]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; added to the footer, but it's simple enough that it can be arranged appropriately. My suggestion is based simply on how cluttered all of this information is on one page. -Via&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Talk:Hercules_Interface_System</id>
		<title>Talk:Hercules Interface System</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Talk:Hercules_Interface_System"/>
				<updated>2013-06-11T23:43:39Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;===Page Length=== This article is huge. Wouldn't it be more efficient to create a category for the Hercules Interface System, with each large secti...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Page Length===&lt;br /&gt;
This article is huge. Wouldn't it be more efficient to create a [[Special: Categories|category]] for the [[Hercules Interface System]], with each large section its own article? Such articles would require the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category: Hercules Interface System]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; added to the footer, but it's simple enough that it can be arranged appropriately. My suggestion is based simply on how cluttered all of this information is on one page.&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/@commands</id>
		<title>@commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/@commands"/>
				<updated>2013-06-10T23:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Redirected page to GM Commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[GM Commands]]&lt;br /&gt;
[[Category: Basics]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/GM_Commands</id>
		<title>GM Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/GM_Commands"/>
				<updated>2013-06-10T23:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;==Syntax== * '''@'''&amp;lt;command&amp;gt;{,&amp;lt;param 1&amp;gt;,&amp;lt;param 2&amp;gt;,...} * '''#'''&amp;lt;command&amp;gt;,&amp;lt;target&amp;gt;{,&amp;lt;param 1&amp;gt;,&amp;lt;param 2&amp;gt;,...} ==Description== GM commands can be used to perform a wide array o...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
* '''@'''&amp;lt;command&amp;gt;{,&amp;lt;param 1&amp;gt;,&amp;lt;param 2&amp;gt;,...}&lt;br /&gt;
* '''#'''&amp;lt;command&amp;gt;,&amp;lt;target&amp;gt;{,&amp;lt;param 1&amp;gt;,&amp;lt;param 2&amp;gt;,...}&lt;br /&gt;
==Description==&lt;br /&gt;
GM commands can be used to perform a wide array of tasks in-game, such as system administration, database queries, player actions, and collecting information regarding a player, party, guild, pet, and/or homunculus. For a full list of atcommands, please see {{git|doc/atcommands.conf}}&lt;br /&gt;
==Examples==&lt;br /&gt;
===atcommands===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@item 909 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Entering this command in-game will give the invoking player a the item 909 (Jellopy) in the amount of 10.&lt;br /&gt;
&lt;br /&gt;
===charcommands===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#item Ind 909 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Entering this command in-game will give the target player, Ind, the item 909 (Jellopy) in the amount of 10.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
While it is common knowledge throughout the [[Ragnarok Online]] community that atcommands use the '''@''' symbol, the symbol used can be changed to any other character by adjusting '''atcommand_symbol''' and '''charcommand_symbol''' in {{git|conf/atcommand.conf}}&lt;br /&gt;
&lt;br /&gt;
===Exceptions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Symbol&lt;br /&gt;
!Reason&lt;br /&gt;
|-&lt;br /&gt;
|(0x00-0x1f)||control-characters &lt;br /&gt;
|-&lt;br /&gt;
|%||party chat symbol&lt;br /&gt;
|-&lt;br /&gt;
|$||guild chat symbol&lt;br /&gt;
|-&lt;br /&gt;
|/||client commands symbol&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Basics]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Atcommand</id>
		<title>Atcommand</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Atcommand"/>
				<updated>2013-06-10T23:17:09Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
* [[atcommand]] &amp;quot;Command Line&amp;quot;;&lt;br /&gt;
==Description==&lt;br /&gt;
This command will run the given command line exactly as if it was typed in from the keyboard by the player connected to the invoking character, and that character belonged to an account which had GM level 99.&lt;br /&gt;
&lt;br /&gt;
This command has a lot of good uses, I am sure you can have some fun with this&lt;br /&gt;
one.&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// This will ask the invoker for a character name and then use the '@nuke'&lt;br /&gt;
// GM command on them, killing them mercilessly.&lt;br /&gt;
input @player$;&lt;br /&gt;
atcommand &amp;quot;@nuke &amp;quot;+@player$;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Hercules_Plugin_Manager</id>
		<title>Hercules Plugin Manager</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Hercules_Plugin_Manager"/>
				<updated>2013-06-10T23:13:31Z</updated>
		
		<summary type="html">&lt;p&gt;Via: /* HPM @commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Often referred to as the [[HPM]], the '''Hercules Plugin Manager''' is yet another [[Hercules Original]]&lt;br /&gt;
= Building a plugin =&lt;br /&gt;
While the [[C]] code for the plugin normally won't have discrepancies, in order to [[compile]] the plugin certain criteria must be met depending on your [[Operating System]], there are 2 guides below, one for windows and other for everything else (which should work on any *nix distro, as well as on OSX).&lt;br /&gt;
;Windows&lt;br /&gt;
: [[Building HPM Plugin for MSVC]]&lt;br /&gt;
;All Others&lt;br /&gt;
: [[Building HPM Plugin for gcc]]&lt;br /&gt;
= Creating a plugin =&lt;br /&gt;
After following the [[#Building_a_plugin|building a plugin]] guide, all thats left is for your plugin's code to be made, the following will guide you through the basics of how a [[HPM]] plugin works.&lt;br /&gt;
== HPM Events ==&lt;br /&gt;
Events are functions in a plugin that are triggered by the '''Hercules Plugin Mananger''' when they meet certain criteria.&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered when the server starts&lt;br /&gt;
* &amp;lt;code&amp;gt;void plugin_final (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered when the server starts to shut itself down&lt;br /&gt;
* &amp;lt;code&amp;gt;void server_ready (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered after the server is done starting, and is online.&lt;br /&gt;
With the [[HPM]] you only need to code the events your plugin will use.&lt;br /&gt;
== HPM Hooks ==&lt;br /&gt;
Support for Hooks will be enabled within the next [[HPM]] release.&lt;br /&gt;
== HPM @commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[@commands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new atcommand exactly as it'd normally be done in {{git|src/map/atcommand.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 ACMD(sample) {//@sample command - 5 params: const int fd, struct map_session_data* sd, const char* command, const char* message, struct AtCommandInfo *info&lt;br /&gt;
 	clif-&amp;gt;message(fd,&amp;quot;You used the @sample command!&amp;quot;);&lt;br /&gt;
 	ShowDebug(&amp;quot;I'm being run! message -&amp;gt; '%s' by '%s'\n&amp;quot;,message,sd-&amp;gt;status.name);&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 HPMi-&amp;gt;addCommand(&amp;quot;sample&amp;quot;,ACMD_A(sample));&lt;br /&gt;
and voila, your plugin now adds the '''@sample''' command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
&lt;br /&gt;
== HPM Script Commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[Category:Script_Command|script commands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new script command exactly as it'd normally be done in {{git|src/map/script.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 BUILDIN(sample) {//script command 'sample(num);' - 1 param: struct script_state* st&lt;br /&gt;
 	int arg = script_getnum(st,2);&lt;br /&gt;
 	ShowInfo(&amp;quot;I'm being run! arg -&amp;gt; '%d'\n&amp;quot;,arg);&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new script command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 HPMi-&amp;gt;addScript(&amp;quot;sample&amp;quot;,&amp;quot;i&amp;quot;,BUILDIN_A(sample)); //note the 2nd param is this commands' arg-types (in this case, a number)&lt;br /&gt;
and voila, your plugin now adds the '''sample''' script command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
== HPM Console Commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[Category:Console_Command|console commands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new console command exactly as it'd normally be done in {{git|src/common/console.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 CPCMD(sample) {//console command 'sample' - 1 param: char *line&lt;br /&gt;
 	ShowInfo(&amp;quot;I'm being run! arg -&amp;gt; '%s'\n&amp;quot;,line?line:&amp;quot;NONE&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new script command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 addCPCommand(&amp;quot;this:is:a:sample&amp;quot;,CPCMD_A(sample)); // note the first param is the path to this command, in this case it translates to 'this is a sample' and everything afterwards is the commands' params&lt;br /&gt;
and voila, your plugin now adds the '''sample''' console command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
== HPM Function Overloading ==&lt;br /&gt;
Thanks to [[Hercules Renewal Phase One]], you're capable of overloading all functions covered by the [[Hercules Renewal Phase One]] interfaces, with your plugin.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 int my_custom_check_target_function( struct block_list *src, struct block_list *target,int flag) {&lt;br /&gt;
 	//&amp;lt;...&amp;gt; code&lt;br /&gt;
 }&lt;br /&gt;
 struct battle_interface *battle;&lt;br /&gt;
 void server_ready(void) {&lt;br /&gt;
 	battle = GET_SYMBOL(&amp;quot;battle&amp;quot;);&lt;br /&gt;
 	battle-&amp;gt;check_target = &amp;amp;my_custom_check_target_function;&lt;br /&gt;
 }&lt;br /&gt;
and voila, your plugin just overloaded the game server's '''battle_check_target''' function with your plugin's own, this is greatly handy to ensure your customs do not create conflicts when updating your [[Hercules|Hercules Repository]]&lt;br /&gt;
= Other Features =&lt;br /&gt;
Is there something you'd like to do with your plugin that requires modifications to [[HPM]]'s core? [http://hercules.ws/board/forum/55-suggestions/ let we know], and we'll do our best to make it happen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://hercules.ws/board/forum/55-suggestions/ Post your suggestions here]&lt;br /&gt;
= Support =&lt;br /&gt;
Need help writing your plugin? [http://hercules.ws/board/forum/26-source-support/ post your question on our support forum]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Atcommand</id>
		<title>Atcommand</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Atcommand"/>
				<updated>2013-06-10T23:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Created page with &amp;quot;Category:Script_Command ==Syntax== * atcommand &amp;quot;Command Line&amp;quot;; ==Description== This command will run the given command line exactly as if it was typed in from the keyb...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Script_Command]]&lt;br /&gt;
==Syntax==&lt;br /&gt;
* [[atcommand]] &amp;quot;Command Line&amp;quot;;&lt;br /&gt;
==Description==&lt;br /&gt;
This command will run the given command line exactly as if it was typed in from the keyboard by the player connected to the invoking character, and that character belonged to an account which had GM level 99.&lt;br /&gt;
&lt;br /&gt;
This command has a lot of good uses, I am sure you can have some fun with this&lt;br /&gt;
one.&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// This will ask the invoker for a character name and then use the '@nuke'&lt;br /&gt;
// GM command on them, killing them mercilessly.&lt;br /&gt;
input @player$;&lt;br /&gt;
atcommand &amp;quot;@nuke &amp;quot;+@player$;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Hercules_Plugin_Manager</id>
		<title>Hercules Plugin Manager</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Hercules_Plugin_Manager"/>
				<updated>2013-06-10T23:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;Via: Updated malformed links and file references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Often referred to as the [[HPM]], the '''Hercules Plugin Manager''' is yet another [[Hercules Original]]&lt;br /&gt;
= Building a plugin =&lt;br /&gt;
While the [[C]] code for the plugin normally won't have discrepancies, in order to [[compile]] the plugin certain criteria must be met depending on your [[Operating System]], there are 2 guides below, one for windows and other for everything else (which should work on any *nix distro, as well as on OSX).&lt;br /&gt;
;Windows&lt;br /&gt;
: [[Building HPM Plugin for MSVC]]&lt;br /&gt;
;All Others&lt;br /&gt;
: [[Building HPM Plugin for gcc]]&lt;br /&gt;
= Creating a plugin =&lt;br /&gt;
After following the [[#Building_a_plugin|building a plugin]] guide, all thats left is for your plugin's code to be made, the following will guide you through the basics of how a [[HPM]] plugin works.&lt;br /&gt;
== HPM Events ==&lt;br /&gt;
Events are functions in a plugin that are triggered by the '''Hercules Plugin Mananger''' when they meet certain criteria.&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered when the server starts&lt;br /&gt;
* &amp;lt;code&amp;gt;void plugin_final (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered when the server starts to shut itself down&lt;br /&gt;
* &amp;lt;code&amp;gt;void server_ready (void)&amp;lt;/code&amp;gt;&lt;br /&gt;
** Triggered after the server is done starting, and is online.&lt;br /&gt;
With the [[HPM]] you only need to code the events your plugin will use.&lt;br /&gt;
== HPM Hooks ==&lt;br /&gt;
Support for Hooks will be enabled within the next [[HPM]] release.&lt;br /&gt;
== HPM @commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[Atcommand|atcommands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new atcommand exactly as it'd normally be done in {{git|src/map/atcommand.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 ACMD(sample) {//@sample command - 5 params: const int fd, struct map_session_data* sd, const char* command, const char* message, struct AtCommandInfo *info&lt;br /&gt;
 	clif-&amp;gt;message(fd,&amp;quot;You used the @sample command!&amp;quot;);&lt;br /&gt;
 	ShowDebug(&amp;quot;I'm being run! message -&amp;gt; '%s' by '%s'\n&amp;quot;,message,sd-&amp;gt;status.name);&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 HPMi-&amp;gt;addCommand(&amp;quot;sample&amp;quot;,ACMD_A(sample));&lt;br /&gt;
and voila, your plugin now adds the '''@sample''' command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
== HPM Script Commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[Category:Script_Command|script commands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new script command exactly as it'd normally be done in {{git|src/map/script.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 BUILDIN(sample) {//script command 'sample(num);' - 1 param: struct script_state* st&lt;br /&gt;
 	int arg = script_getnum(st,2);&lt;br /&gt;
 	ShowInfo(&amp;quot;I'm being run! arg -&amp;gt; '%d'\n&amp;quot;,arg);&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new script command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 HPMi-&amp;gt;addScript(&amp;quot;sample&amp;quot;,&amp;quot;i&amp;quot;,BUILDIN_A(sample)); //note the 2nd param is this commands' arg-types (in this case, a number)&lt;br /&gt;
and voila, your plugin now adds the '''sample''' script command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
== HPM Console Commands ==&lt;br /&gt;
The [[HPM]] makes it very simple to provide [[Category:Console_Command|console commands]] through plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
You define a new console command exactly as it'd normally be done in {{git|src/common/console.c}}&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 CPCMD(sample) {//console command 'sample' - 1 param: char *line&lt;br /&gt;
 	ShowInfo(&amp;quot;I'm being run! arg -&amp;gt; '%s'\n&amp;quot;,line?line:&amp;quot;NONE&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
After that you just have to link your new script command, to do that you use the &amp;lt;code&amp;gt;void plugin_init (void)&amp;lt;/code&amp;gt; event.&lt;br /&gt;
 addCPCommand(&amp;quot;this:is:a:sample&amp;quot;,CPCMD_A(sample)); // note the first param is the path to this command, in this case it translates to 'this is a sample' and everything afterwards is the commands' params&lt;br /&gt;
and voila, your plugin now adds the '''sample''' console command.&lt;br /&gt;
A full usage of this is demonstrated in the [[HPM]]'s sample {{git|src/plugins/sample.c}}&lt;br /&gt;
== HPM Function Overloading ==&lt;br /&gt;
Thanks to [[Hercules Renewal Phase One]], you're capable of overloading all functions covered by the [[Hercules Renewal Phase One]] interfaces, with your plugin.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 int my_custom_check_target_function( struct block_list *src, struct block_list *target,int flag) {&lt;br /&gt;
 	//&amp;lt;...&amp;gt; code&lt;br /&gt;
 }&lt;br /&gt;
 struct battle_interface *battle;&lt;br /&gt;
 void server_ready(void) {&lt;br /&gt;
 	battle = GET_SYMBOL(&amp;quot;battle&amp;quot;);&lt;br /&gt;
 	battle-&amp;gt;check_target = &amp;amp;my_custom_check_target_function;&lt;br /&gt;
 }&lt;br /&gt;
and voila, your plugin just overloaded the game server's '''battle_check_target''' function with your plugin's own, this is greatly handy to ensure your customs do not create conflicts when updating your [[Hercules|Hercules Repository]]&lt;br /&gt;
= Other Features =&lt;br /&gt;
Is there something you'd like to do with your plugin that requires modifications to [[HPM]]'s core? [http://hercules.ws/board/forum/55-suggestions/ let we know], and we'll do our best to make it happen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://hercules.ws/board/forum/55-suggestions/ Post your suggestions here]&lt;br /&gt;
= Support =&lt;br /&gt;
Need help writing your plugin? [http://hercules.ws/board/forum/26-source-support/ post your question on our support forum]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	<entry>
		<id>https://wiki.herc.ws/wiki/Countitem</id>
		<title>Countitem</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/wiki/Countitem"/>
				<updated>2013-06-10T22:53:24Z</updated>
		
		<summary type="html">&lt;p&gt;Via: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Syntax==&lt;br /&gt;
*[[countitem]](&amp;lt;itemid&amp;gt;);&lt;br /&gt;
*[[countitem]](&amp;quot;Itemname&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Countitem will return the number of items of &amp;lt;itemid&amp;gt; the invoking player holds in his inventory.&amp;lt;br&amp;gt;&lt;br /&gt;
Like in [[getitem]], you can also write the name of the item (&amp;quot;Name&amp;quot;-column in ItemDB).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mes &amp;quot;You have &amp;quot;+countitem(501)+&amp;quot;Apples!&amp;quot;;&lt;br /&gt;
close;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Will print out the number of Apples the char holds...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(countitem(&amp;quot;Apple&amp;quot;)&amp;gt;=5){&lt;br /&gt;
 mes &amp;quot;This will only print if you have 5 or more Apples!&amp;quot;;&lt;br /&gt;
 close;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Command]]&lt;/div&gt;</summary>
		<author><name>Via</name></author>	</entry>

	</feed>