<?xml version="1.0"?>
<rss version="2.0"><channel><title>Wiki: Wiki</title><link>https://www.getmangos.eu/wiki/tutorials/?d=4</link><description>Wiki: Wiki</description><language>en</language><item><title>A basic Git Tutorial</title><link>https://www.getmangos.eu/wiki/tutorials/a-basic-git-tutorial-r20017/</link><description><![CDATA[<h3>
	Generic Resources about Git
</h3>

<p>
	<a href="http://git-scm.com/" rel="external nofollow"><u><font color="#0066cc">All about Git - official page</font></u></a>
</p>

<h4>
	Some good video talks about http:
</h4>

<ul><li>
		<a href="http://goo.gl/z72s" rel="external nofollow"><u><font color="#0066cc">Linus Torvalds: History&amp;Concepts</font></u></a>
	</li>
	<li>
		<a href="http://goo.gl/R9H2q" rel="external nofollow"><u><font color="#0066cc">Scott Chacon: Git basics, live examples</font></u></a>
	</li>
	<li>
		<a href="http://vimeo.com/35778382" rel="external nofollow"><u><font color="#0066cc">Randal Schwartz: Git basics, descriptional</font></u></a>
	</li>
	<li>
		<a href="http://vimeo.com/46010208" rel="external nofollow"><u><font color="#0066cc">Jesica Kerr: Git basics, descriptional</font></u></a>
	</li>
</ul><h4>
	A good book of the subject:
</h4>

<ul><li>
		<a href="http://git-scm.com/book" rel="external nofollow"><u><font color="#0066cc">Pro-Git</font></u></a>
	</li>
</ul><h2>
	Install Git
</h2>

<h4>
	On Windows
</h4>

<p>
	Install <a href="http://code.google.com/p/msysgit/downloads/list" rel="external nofollow"><u><font color="#0066cc">MySysGit</font></u></a> (Be sure to check the install with <a href="http://i49.tinypic.com/v45smh.jpg" rel="external nofollow"><u><font color="#0066cc">"Git bash here" support</font></u></a>)
</p>

<h4>
	On Linux
</h4>

<p>
	Use your package manager to install git.
</p>

<h2>
	Basic Functions
</h2>

<h4>
	Cloning a repo to your hard drive
</h4>

<p>
	The most basic form of this command is:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git clone --recursive http://github.com/{username}/{reponame}</span></pre>

<ol><li>
		<p>
			 
		</p>
	</li>
</ol><p>
	A slightly better form is to specify the folder name of the local repo:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git clone --recursive http://github.com/{username}/{reponame} {localreponame}</span></pre>

<p>
	In the case of mangosZero this would be a valid command to clone it correctly to a folder called 0server
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git clone --recursive http://github.com/mangoszero/server serverZero</span></pre>

<p>
	Sometimes you may want to clone a specific branch i.e. develop21
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git clone --recursive http://github.com/{username}/{reponame} -b develop21 {localreponame}</span></pre>

<h3>
	Updating an existing repo with the latest source
</h3>

<p>
	From the folder containing the source, type:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git pull --recurse-submodules</span></pre>

<p>
	This will pull in all updated files, you can then proceed to build using Visual Studio or cmake/make on Linux.
</p>
]]></description><guid isPermaLink="false">20017</guid><pubDate>Mon, 01 Aug 2016 07:44:42 +0000</pubDate></item><item><title>Configuring Git - Best Practices</title><link>https://www.getmangos.eu/wiki/tutorials/configuring-git-best-practices-r20015/</link><description><![CDATA[<p>
	The <abbr title="Massive Network Game Object Server"><abbr title="Massive Network Game Object Server">MaNGOS</abbr></abbr> core is hosted on Git. For those contributors who are just starting out, here’s a quick list of tips we have put together especially for you.
</p>

<p>
	This is no substitute for a proper tutorial, but rather a <abbr title="Massive Network Game Object Server"><abbr title="Massive Network Game Object Server">MaNGOS</abbr></abbr> biased supplement to one.
</p>

<p>
	The first thing you do should be configure a real name and email. By default, Git chooses a default name based on the GECOS data (which is probably right) and a default email based on your login and hostname (which is almost certainly wrong).
</p>

<p>
	Best practices dictate you use your real name and email here, not your login, IRC handle, or any other aliases you may have.
</p>

<p>
	These fields will be immortalized in the repository history so make sure you get them right.
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">
<span class="pln">$ git config --global user.name "Your Name" 
$ git config --global user.email "Your@emailAddress" </span></pre>

<p>
	While you’re configuring, you may want to enable colouring for some commands:
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">
<span class="pln">$ git config --global color.diff auto 
$ git config --global color.status auto 
$ git config --global color.branch auto 
$ git config --global color.interactive auto </span></pre>

<p>
	While Git will accept just about any commit message you feed to it, sticking to best practices makes the log a lot easier to work with.
</p>

<p>
	A model commit message is shown below.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Short (50 chars or less) summary of changes

More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of an email and the rest of the text as the body. The blank
line separating the summary from the body is critical (unless you omit
the body entirely); tools like rebase can get confused if you run the
two together.

Further paragraphs come after blank lines.

 - Bullet points are okay, too
 - Typically a hyphen or asterisk is used for the bullet, preceded by a
 single space, with blank lines in between, but conventions vary here.
 - Use a hanging indent</span></pre>

<p>
	As far as submitting your work to the <abbr title="Massive Network Game Object Server"><abbr title="Massive Network Game Object Server">MaNGOS</abbr></abbr> core, the work flow here is still being fleshed out. For now, either give a public URL and branch where your contribution can be found, or use the following series of commands to get a file that can be easily applied by anyone with the git am command to reconstruct your history locally.<br>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git checkout my_funky_branch 
$ git rebase origin/master 
$ git format-patch --stdout origin/master.. &gt; my_funky_patches </span></pre>

<p>
	Here’s a tip for keeping up to date: In lieu of using git pull to download the latest changes, use:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">$ git pull –rebase --recurse-submodules </span></pre>

<p>
	Instead of cluttering the history with a merge commit, it reapplies your changes to the latest upstream.
</p>

<p>
	The only caveat is that you shouldn’t use this method if you’ve already published the changes to another repository. Doing so would cause problems for anyone who has already downloaded the original commits.
</p>
]]></description><guid isPermaLink="false">20015</guid><pubDate>Mon, 01 Aug 2016 07:29:34 +0000</pubDate></item><item><title>Creating a "Breaking News" Article for your server</title><link>https://www.getmangos.eu/wiki/tutorials/creating-a-breaking-news-article-for-your-server-r20016/</link><description><![CDATA[<h2>
	Introduction
</h2>

<p>
	As you may have noticed, from time to time there is a news article on the left side of the login screen for the WoW Client. Sometimes it can be annoying having a Blizzard notice that the servers are going down, when in reality, your server(s) is not going to be going down for maintenance in the foreseeable future.
</p>

<p>
	Here are instructions on how to alleviate this problem for you and your players, should you have anyone else on your server:
</p>

<h2>
	Disabling Breaking News
</h2>

<p>
	First, we need to go into our “hosts” file, which, depending on your operating system, will be in a different location. For Windows, the hosts file is in C:\Windows\System32\drivers\etc\hosts. In order to edit this file, though, you are going to have to go into your start menu, type notepad, right-click on notepad and run as administrator. Then just hit file, open, and navigate to the hosts file. For *NIX, the location of the “hosts” file is /etc/hosts.
</p>

<p>
	Second, once you are editing the “hosts” file, you will need to go to the end of the file and enter the ip address of your server, in my case it would be 192.168.0.4. Then tab over to the space under “localhost” and enter the actual servername of the warcraft breaking news server, again, in my case it was “launcher.worldofwarcraft.com”. Depending on your region the address will be different. There will be a list of breaking news server later.
</p>

<p>
	Finally, once you are done modifying your “hosts” file, you can restart the client and you will never see Blizzard’s breaking news again.
</p>

<h2>
	“Pushing” Breaking News for your Server
</h2>

<p>
	In order to start “pushing” your own news, follow the instructions from Disabling Breaking News and then, once you have finished modifying your “hosts” file, come back to this section. I’m assuming that you are using the WAMP server which covers both MySQL and Apache and are on Windows. If you are in *NIX, then you should not have to worry about MySQL and Apache as they should both already be installed, normally.
</p>

<p>
	With our server configuration out of the way, we are ready to begin preparing to push our own news to our clients.
</p>

<p>
	In the root web directory for your domain name or ip address, create a file called “Alert”. No quotation marks, no file extension, just Alert. And yes, capitalize the A. Alert is an over-simplified html file. As an example Alert file we have:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">SERVERALERT:</span><span class="tag">&lt;html&gt;&lt;body&gt;&lt;p&gt;</span><span class="pln">Your Message.</span><span class="tag">&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</span></pre>

<p>
	If you feel the need to disable your news system again at a future date, simply rename Alert to something like Alert2. When you want to re-enable your news system for a new tidbit of news, all you have to do is move Alert2 back to Alert and edit it.
</p>

<h2>
	Blizzard’s Breaking News Servers
</h2>

<p>
	<code>US/SEA - <a href="http://launcher.worldofwarcraft.com/alert" rel="external nofollow">http://launcher.worldofwarcraft.com/alert</a></code>
</p>

<p>
	<code>LA - <a href="http://launcher.worldofwarcraft.com/es/alert" rel="external nofollow">http://launcher.worldofwarcraft.com/es/alert</a></code>
</p>

<p>
	<code>EN - <a href="http://status.wow-europe.com/en/alert" rel="external nofollow">http://status.wow-europe.com/en/alert</a></code>
</p>

<p>
	<code>ES - <a href="http://status.wow-europe.com/es/alert" rel="external nofollow">http://status.wow-europe.com/es/alert</a></code>
</p>

<p>
	<code>FR - <a href="http://status.wow-europe.com/fr/alert" rel="external nofollow">http://status.wow-europe.com/fr/alert</a></code>
</p>

<p>
	<code>DE - <a href="http://status.wow-europe.com/de/alert" rel="external nofollow">http://status.wow-europe.com/de/alert</a></code>
</p>

<p>
	<code>RU - <a href="http://status.wow-europe.com/ru/alert" rel="external nofollow">http://status.wow-europe.com/ru/alert</a></code>
</p>

<p>
	<code>KR - ??? <a href="http://launcher.worldofwarcraft.co.kr/alert" rel="external nofollow">http://launcher.worldofwarcraft.co.kr/alert</a></code>
</p>

<p>
	<code>CN - ??? <a href="http://launcher.battlenet.com.cn/alert" rel="external nofollow">http://launcher.battlenet.com.cn/alert</a></code>
</p>

<p>
	<code>TW - ??? <a href="http://launcher.wowtaiwan.com.tw/alert" rel="external nofollow">http://launcher.wowtaiwan.com.tw/alert</a></code>
</p>
]]></description><guid isPermaLink="false">20016</guid><pubDate>Mon, 01 Aug 2016 07:35:35 +0000</pubDate></item><item><title>Setting up User Accounts</title><link>https://www.getmangos.eu/wiki/tutorials/setting-up-user-accounts-r20018/</link><description><![CDATA[<h3>
	From the <abbr title="Massive Network Game Object Server"><abbr title="Massive Network Game Object Server">Mangos</abbr></abbr> command prompt:-
</h3>

<p>
	We need to create an account to use with the server.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">account create testuser mypassword</span></pre>

<p>
	This will set up a user called testuser with a password of mypassword
</p>

<p>
	In order to use the expansions
</p>

<p>
	for Classic -
</p>

<p>
	<strong>No need to do anything</strong>
</p>

<p>
	for TBC -
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">account set addon testuser 1</span></pre>

<p>
	for WotLK -
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">account set addon testuser 2</span></pre>

<p>
	for Cata -
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">account set addon testuser 3</span></pre>

<p>
	for Mop -
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">account set addon testuser 4</span></pre>

<h3>
	Setting up the client to access the server
</h3>

<p>
	1) Navigate to the location of the Warcraft Client installed on your local PC
</p>

<p>
	2) Navigate to the “Data\enGB” folder (or other locale if not uk)<br>
	- On Classic this file is in the root folder, so you don't need to do this.<br>
	- On Mop the realmlist.wtf is merged with config.wtf in the WTF folder.
</p>

<p>
	3) Open the file “realmlist.wtf” with WordPad
</p>

<p>
	It will contain the following lines (actual detail may vary slightly) :-
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">set realmlist eu.logon.worldofwarcraft.com
set patchlist enGB.patch.battle.net:1119/patch </span></pre>

<p>
	Change these values to the IP address of the server.
</p>

<p>
	That’s it. You are ready to roll....
</p>
]]></description><guid isPermaLink="false">20018</guid><pubDate>Mon, 01 Aug 2016 07:52:16 +0000</pubDate></item><item><title>Setup Port Forwarding and Configure Public Server for external connections (Ubuntu 16.04 and Netgear router)</title><link>https://www.getmangos.eu/wiki/tutorials/setup-port-forwarding-and-configure-public-server-for-external-connections-ubuntu-1604-and-netgear-router-r20093/</link><description><![CDATA[<p>
	<span style="color:#c0392b;"><strong>DISCLAIMER: </strong>You are making your server more available to the world by following these steps. Be aware that you might put your server at risk for cyber attack or compromise if you publish details about connecting to your server online.</span>
</p>

<p>
	<span style="color:#c0392b;">Before continuing, please consider taking steps to secure your server such as disabling remote root access to your shell and database, disable remote access for your <abbr title="Massive Network Game Object Server">mangos</abbr> database user, change your router password to something strong, install any firmware updates for your router and any security updates available for your server. Unless you are comfortable with the risk and know how to protect yourself, be careful of who you share your server information with.</span>
</p>

<p>
	 
</p>

<p>
	<img alt="9_9" data-emoticon="" height="20" src="https://www.getmangos.eu/uploads/emoticons/rolleyes.gif" srcset="https://www.getmangos.eu/uploads/emoticons/58bb064436ebe_rolleyes2x.png 2x" title="9_9" width="20"> OK! Now that's out of the way...
</p>

<p>
	These instructions are for setting up a dedicated hardware server on a home network. I didn't find clear concise instructions for setting it up for external connections so I'll share what worked for me.
</p>

<p>
	These instructions assume that your server is up and running with localhost or 127.0.0.1 in the BindIP conf fields and the address column of your server's realmlist entry in your realmd (by default) schema.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><u><strong>Before we start...</strong></u></span>
</p>

<p>
	If your server is running, stop both server and realm executables by whatever your preferred method is.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><u><strong>Server Conf</strong></u></span>
</p>

<p>
	Use the <span style="font-family:'Courier New', Courier, monospace;">ip a</span> command to determine your server's LAN IP address. Probably something like 192.168.1.xxx.
</p>

<p>
	In both your mangosd.conf and realmd.conf change the BindIP value to a string containing your server's LAN IP, like:<br>
	 
</p>

<pre class="ipsCode prettyprint prettyprinted">
<span>BindIP</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"192.168.1.19"</span><span class="pln"> </span><span class="com"># or whatever the IP address might be...</span></pre>

<p>
	Save and close both of those files.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><u><strong>Determine Your Server's Public IP</strong></u></span>
</p>

<p>
	You will need your public IP address which you can find by googling "what is my public ip address". IMPORTANT: Make sure that you do this from the server itself. Jot that down.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><u><strong>DB</strong></u></span>
</p>

<p>
	Now open MySQL Workbench or the MySQL shell or whatever your favorite means of SQL delivery.
</p>

<p>
	In the realmd schema (by default) in the realmlist table find the entry for your server.
</p>

<p>
	Update the address column to be your public IP address that you jotted down before and in the localAddress column, put your LAN IP address, like 192.168.1.xxx.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><u><strong>Port Forwarding</strong></u></span>
</p>

<p>
	If you have a netgear router you will go to routerlogin.net. You need to login with your admin username and password. The username is probably admin unless you changed it. The password is either in your router's documentation (on a card or something), on a sticker on the router or it's something you changed it to. That's on you.
</p>

<p>
	If these next instructions don't work for you, you may need to poke around your router's proprietary UI to find the right options... Good luck!
</p>

<ul><li>
		At the top choose the ADVANCED tab.
	</li>
	<li>
		On the left, choose Advanced Setup
	</li>
	<li>
		On the Advanced Setup submenu, choose  Port Forwarding / Port Triggering
	</li>
	<li>
		You will need to create 3 forwarding rules.
	</li>
	<li>
		For each PortNumber of the ports 3443, 3724 and 8085:
		<ul><li>
				Click the +Add Custom Service button
			</li>
			<li>
				Fill in the service name with something, maybe "mangosX"
			</li>
			<li>
				In the External Starting Port field, put the PortNumber
			</li>
			<li>
				In the External Ending Port field, put the PortNumber
			</li>
			<li>
				In the Internal IP address field, put your server's LAN IP address, 192.168.1... (probably)
			</li>
			<li>
				Click the Apply button to save the rule
			</li>
		</ul></li>
</ul><p>
	Now you can start your server back up by your preferred method.
</p>

<p>
	There's just one more step and that's setting up our client's realmlist.wtf file. This is also the part you'll tell your friends when they want to connect.
</p>

<p>
	Over wherever your actual WoW client lives, find the realmlist.wtf file and change the IP to the external IP address that you just jotted down previously.
</p>

<p>
	In your realmlist.wtf file you should now have:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">set realmlist </span><span class="tag">&lt;whateverYourExternalIPAddressIs&gt;</span><span class="pln">
set patchlist </span><span class="tag">&lt;whateverYourExternalIPAddressIs&gt;</span></pre>

<p>
	You (or your friend) is now ready to start their client with Wow.exe and join your awesome cool publicly available server! Enjoy! 
</p>
]]></description><guid isPermaLink="false">20093</guid><pubDate>Sat, 18 Nov 2017 17:23:18 +0000</pubDate></item></channel></rss>
