Guide last updated: October 7th 2009
-New client version
What you will need:
-WoW client updated to 3.2.2A
-MySQL server (download here)
-SQL client (a good one is SQLyog Community, available here; scroll down a bit on that page)
-GIT client (msysgit available here)
-Microsoft Visual C++ 2008 (Express Edition available here)
Getting the MaNGOS source files
-Install your GIT client if you haven't already
-Once installed, make a folder anywhere and call it whatever you want (this will be your MaNGOS source folder so you might want to call it "MaNGOS" or something)
-Right click your new folder and select "Git GUI Here"
-When the GIT GUI window comes up, click on "Clone Existing Repository"
-Another window should pop up
-In the "Source Location" field, type in:git://github.com/mangos/mangos.git
-In the "Target Directory" field, type in the filepath of your folder (e.g. C:\MaNGOS)
-Click "Clone" and wait for it to finish
-Once it's done, close the GIT GUI
Compiling MaNGOS
-Open Visual C++ and in the menu bar at the top, click "Tools" then Options
-Click the "+" next to Projects and Solutions, then click VC++ Directories
-Make sure the drop down menu days "Executable Files"
-Click the open button near the right of the dialog window, and make sure the path is:C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
-Click the drop down menu and make sure it says "Include Files", then click open and make the path:C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
-Click the drop down menu and make sure it says "Library Files", then click open and make the path:C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib
-Go to your Mangos compile folder, then into the "win" folder
-Open the "VC80.sln" file, or for 2008 users "VC90.sln"
-Click "Build" in the menu and select "Configuration Manager"
-Click "Release" in the drop down box for "Active Solution Configuration"
-The "Active Solution Platform" should be set to "Win32"
-Then, click "Build" in the menu and select "Build Solution"
-If you get any errors, click "Build" in the menu and select "Clean Solution", then restart the compile
-Note: this WILL take a long time - You might get some warning messages...If you do, don't worry about it, it's normal
Installing MaNGOS
-Add all the .exe files, .dll files and .pdb files in the compile folder into your Mangos folder (Ctrl + F to find them)
-Go back into your MaNGOS source folder, then into the "src" folder, then into the "mangosd" folder
-Rename "mangosd.conf.dist" to "mangosd.conf"
-Go back into your MaNGOS source folder, then into the "src" folder, then into the "realmd" folder
-Rename "realmd.conf.dist" to "realmd.conf"
Exracting maps and DBC files
-Go back into your MaNGOS source folder, then into the "contrib" folder, then into the "extractor" folder
-Place the "ad.exe" application in your World of Warcraft folder
-Run it and wait for it to finish (can take a while)
-Make two new folders in your MaNGOS core folder (note: not your source folder, the core folder is where you put all the .dll, .exe (etc.) files), one called "maps" and one called "dbc"
-Copy the extracted dbc files into the dbc folder and the maps into the maps folder
Installing the MySQL server
-Run the setup file
-Choose "Typical" setup when asked
-When the installation is finished, you're going to be asked if you want to configure the server; make sure that's checked off
Configuring the MySQL server
-Choose "Standard Configuration" when asked
-Check off "Install as Windows Service" and "Launch MySQL Server Automatically" when asked (the name of the service should be "MySQL")
-Choose "Modify Security Settings" when asked
-Type in a password, make sure it's one you will remember (Note: Default server password is mangos, use that if you are not putting your server online for other players)
-If you plan on having a registration page on another machine, or plan on being able to access the database from another machine other than the one the databases are hosted on, check off "Enable Root Access from Remote Machines"
Setting up the databases
-Run SQLyog
-Click the "New Connection" button at the top of the connection window somewhere
-Name the connection anything you like
-Fill out the fields as indicated below:
MySQL Host Address: This is "127.0.0.1" or "localhost" for playing singleplayer or LAN; if you want to put your server online, put this as the IP or DNS of the server that MaNGOS is being hosted on.
Username: Type in "root".
Password: This is the password you set up when you installed the MySQL Community Server.
Database(s): Leave this blank for now.
-Click "Connect"
Adding Databases
-In the top left-hand side, right-click "root@(IP here)"
-Click "Create Database"
-For the database name type in "realmd"
-Do the same, except for two more databases named "mangos" and "characters"
Once that's done...
-Click "File" in the menu at the top of SQLyog
-Click "New Connection"
-This time in the databases field, type:realmd;mangos;characters
-When SQLyog asks if you'd like to save the changes, choose yes
-Click "Connect"
-Now, in the left-hand database list, right-click "realmd" and click "Restore from SQL Dump"
-Click "Browse", and select your MaNGOS source folder, then go into the "sql" folder and select realmd.sql
-Click "Execute"
Once that's done...
-Right-click "characters" and select "Restore from SQL Dump"
-Click "Browse", and select the characters.sql in the same sql folder
-Click "Execute"
Once that's done...
-Go here to download the newest UDB database (contains all the world stuff)
-Make sure that your MaNGOS core is up-to-date with the database (check your core's revision number, then the compatible revision number within the file title of the UDB database)
-Download the latest UDB update packs here (if that link doesn't work, go here and find the updates folder in /trunk)
Updating your database with .sql batch files
-Open the .sql file you are going to use to update the database in Notepad
-Open SQLyog and connect to your server
-Select the database that is supposed to be updated
-In the textbox to the right of SQLyog at the top of the application (the query textbox), paste the contents of the .sql file
-Select all the text in the textbox, then press the play button in the toolbar at the top of SQLyog
-Parts of the application will become grayed, wait for the query to finish executing
Configuring MaNGOS
-Go into your Mangos folder
-Open mangosd.conf in Notepad
-Look for the part "DataDir ="
-Make sure it looks like the following:Datadir="."
-Look for the following codes (and change them as necessary):
-Save, exit
WorldDatabaseInfo = "[Server IP];3306;root;[SQL password];mangos"
LoginDatabaseInfo = "[Server IP];3306;root;[SQL password];realmd"
CharacterDatabaseInfo = "[Server IP];3306;root;[SQL password];characters"
-Go back into your Mangos folder
-Open realmd.conf in Notepad
-Look for the following code (and change it as necessary):
-Save, exit
LoginDatabaseInfo = "[Server IP];3306;root;[SQL password];realmd"
Setting up your client for use with your server
-Go into the folder where you installed WoW
-Go into your "data" folder
-Go into your locale folder (it's going to be named something like "enUS", "enGB", "frFR", "deDE", etc.)
-Open realmlist.wtf in Notepad and change the contents to the following:set realmlist [server IP]
Running your server
set patchlist [server IP]
-Go into your MaNGOS core folder
-Run mangosd.exe and realmd.exe
-Everything should work fine unless you did something wrong
Errors
-If you get an error that says something like "sql was probably updated" or "# fields, # missing", then you need to update your database and possibly your entire core
-If you get any map or dbc errors, make sure that the "datadir" field is set to "." and that your dbc and map files are up-to-date with your client in your MaNGOS core folder
Creating Accounts Without a Registration Page
-Once everything in mangosd.exe has loaded, type-in the following (with some cores there is tons of text flooding the command prompt; not to worry, keep typing anyway, it doesn't matter) :
Creating the actual accountaccount create [username] [password]
Enabling expansions for a user
Example: account create Phenomenon 123account set addon [username] [1 for TBC, 2 for TBC and WotLK]
Changing GM levels
Example: account set addon Phenomenon 2
account set gmlevel [username] [anything from 0 to 3, 3 being administrator, 0 being player]
Example: account set gmlevel Phenomenon 3
Read more on this article...
Thursday, October 22, 2009
[Guide] Mangos Windows Setup
Friday, October 2, 2009
Compile MaNGOS On Linux
To begin, You must install the following: (Enables you to compile MaNGOS)
- GCC 4.1.X ( gcc / g++ / cpp / fort77 / g77 / gpp)
- automake
- autoconf
- glibc & glibc-dev(glibc headers) [ libc6 ]
- make
- mysql-server 4.1 ou mysql-server 5.0 && libmysql++-dev
- libtool
- OpenSSL (libssl-dev)
- subversion et patch
- git
- zlibc
apt-get install gcc g++ automake autoconf make libmysql++-dev libtool libssl-dev subversion patch zlibc libc6 git git-core cogito
Ubuntu users also can also use the following:
sudo apt-get install build-essential libmysql++-dev libtool libssl-dev subversion zlibc git-core
To use git and not use gitfm, you must use this:
update-alternatives --config git
You must enter the digit which match with:
/usr/bin/git-scm
You must download the files from the git repository, git will create your mangos sources directory for you:
git clone git://github.com/mangos/mangos.git
Now we change to the MaNGOS directory:
cd mangos
We now download and patch ScriptDev2, so lets make a directory:
mkdir src/bindings/ScriptDev2
And now use their svn to pull the latest ScriptDev2 revision:
svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/src/bindings/ScriptDev2
Now we need to patch SD2 (ScriptDev2) into mangos. (This makes it compile with MaNGOS)
git apply src/bindings/ScriptDev2/patches/MaNGOS-XXXX-ScriptDev2.patch
After the patch has been successful applied to mangos, we compile it, run these in Terminal one after the other:
- autoreconf --install --force
- mkdir objdir
- cd objdir
- ../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
- make
- make install
- make clean
- cd ..
- rm -r objdir
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos With: ../configure --prefix=[working path] --sysconfdir=[working path]/etc --enable-cli --enable-ra --datadir=[working path] with your [working path]
For example:
../configure --prefix=/opt/foo --sysconfdir=/opt/mangos/foo --enable-cli --enable-ra --datadir=/opt/foo
Once you have run make install, the above code will have caused it to be place the binaries in "/opt/foo/" and the server needs to be ran from the bin folder. Read more on this article...
Mangos Gm Commands
LEVELUP 4 COMMANDS ( ADMIN )
.acct
Syntax: Checks Your Account Gm Level.
.commands
Syntax: Shows All The Availble Commands You May Use.
.dismount
Syntax: Dismounts You From Your Mount.
NOTE* Must Be On A Munt To Work.
.gmlist
Syntax: Shows Gm's Online
.help [Command]
Syntax: Shows Help for the selected Command.
.save
Syntax: Saves Character.
.start
Syntax: Teleports To Where Your Hearthstone Is Set.
.announce [message]
Syntax: Broadcast a System Wide Message Viewed By All Players.
.gmoff
Syntax: Turn Gm Visibilty Off. Players And Mobs Can Now Attack You.
.gmon
Syntax: Turn Gm Visibilty On. Players And Mobs Cant Attack You.
You Are Now Visible In .Gmlist
.goname [Char Name]
Syntax: Teleport Staright To The Selected Player.
.namego [Char Name]
Syntax: Teleport The Selected Player To You.
.gps
Syntax: Display the position information for a selected character or creature.
Position information includes X, Y, Z, and orientation, map Id and zone Id
.learnsk [Skill ID]
Syntax: Learns a skill for the selected player ingame.
.lookuptele [Location]
Syntax: Looks up the coordinates for the location selected.
.modify [Hp|Energy|Mana|Rage]
Syntax: Modify the selected players Hp, Energy, Mana, Rage.
.modify [Speed|Swim|Scale|
Syntax: Modify speed and swim rate from scale 0-10.
Modify Scale (Size) For Selected player from scale 0.01-3.
.money [# Amount]
Syntax: Give Money In Copper To Selected Player
.recall
Syntax: Teleport Playername or selected player to the place where he has been before last use of a teleportation command.
If no Playername is entered and no player is selected, it will teleport you.
.saveall
Syntax: Saves All Players In Game
.Visible [0 or 1]
Syntax: Output current visibility state or make GM visible(1) and invisible(0) for other players.
.addmove [#creature_guid] {#waittime}
Syntax: Add your current location as a waypoint for creature with guid #creature_guid. And optional add wait time.
.addspw [Creature I.D]
Syntax: Spawns Creature To The Location You Are Standing.
.changelevel [0-73]
Syntax: Changes level of Selected Mob Or NPC.
.del
Syntax: Delete Selected Creature From World
.delobject
Syntax: Delete gameobject with gameobject guid.
.delticket
Syntax: .delticket [all]
.delticket [#num]
.delticket [character name]
[all] to delete all tickets at server, [character name] to delete ticket of this character, [#num] to delete ticket [#num].
.demorph
Syntax: Demorph Selected Player
.displayid
Syntax: Change the model id of the selected creature to
.gocreature
Syntax: Teleport your character to creature with guid
.kick [Char Name]
Syntax: Kick Char name of the server.
.pinfo [Char Name]
Syntax: Get Info on char's Account
.prog
Syntax: Teleports You To Programmer Island
.spawndist #dist
Syntax: Adjust spawndistance of selected creature to dist.
.targetobject
Syntax: Locate the nearst game object.
.ticket [on|off]
Syntax: [on] Show new tickets, [off] Dont show new tickets.
.addgo [Game Object #I.D]
Syntax. Add a game object from game object templates to the world at your current location using the #I.D.
.additem [Item #I.D] [#amount]
Syntax: Add a item from items template to your bag or selected players bag. Also Add Amount #
.additemset [#itemsetid]
Syntax: Add items from itemset of id #itemsetid to your or selected character inventory.
Will add by one example each item from itemset.
.allowmove
Syntax: Enable or Disable Movement For Each Creature
.bank
Syntax: Show your bank
.banaccount [Account Name]
Syntax: Ban account name (can be viewed by players by using the .pinfo command) and kick affected players currently logged in.
.banip [#ip]
Syntax: Bans logging into the server from computers with the provided IP address, and kicks all affected players.
.createguild [Guild Name] [Guild Leader Char Name]
Syntax: Create a guild named Guild Name with the player Guild Leader Char Name as leader. ~
.cshutdown
Syntax: Cancels Shutdown
.die
Syntax: Does What it Says.
.gameobject [#I.D]
Syntax: Add a game object from game object templates to the world at your current position using the [#I.D]
.go [#position_x #position_y #position_z #mapid]
Syntax: Teleport to the given coordinates on the specified map.
.hover
Syntax: Hover Your Character
.idleshutdown [#delay|cancel]
Syntax: Shut the server down after #delay seconds if no active connections are present (no players) or cancel the shutdown if cancel value is used.
.learn
Syntax: .learn all
.learn all_myclass
.learn all_lang
All learns all spells for gm's, all_myclass learns all spells for your class, all_lang learns all languages.
.levelup [1-69]
Syntax: Level Up Your Char With Selected #. To Down levels: .levelup -#
.lookupcreature [name of creature]
Syntax: Looks up a creature by nameofcreature, and returns all matches with their creature ID's.
.lookupitem [item name]
Syntax: Looks up an item by Item name, and returns all matches with their Item ID's.
.lookupobject [object name]
Syntax: Looks up an gameobject by object name, and returns all matches with their Gameobject ID's.
.lookupskill [name]
Syntax: Looks up a skill by name, and returns all matches with their skill ID's.
.lookupspell name
Syntax: Looks up a spell by name, and returns all matches with their spell ID's.
.maxskill
Syntax: Max's All Skills You Have Learned.
.morph [#display I.D]
Syntax: Change your current model id to #display I.D.
.respawn
Syntax: Respawns All Dead And Alive NPC's, Mobs
.revive
Syntax: Revives Selected Player (Brings Back to Life)
.shutdown #seconds
Syntax: Shutdown server
.Security [Player name] [#level]
Syntax: Set the security level of player Player name to a level of #level.
#level may range from 0 to 4.
.wchange [#weathertype] [#status]
Syntax: Set current weather to #weathertype with an intensity of #status.
#weathertype can be 1 for rain, 2 for snow, and 3 for sand. #status can be 0 for disabled, and 1 for enabled.
.flymode [on|off]
Syntax: Lets You fly In mid air, to enable type on or to disable type off.
Read more on this article...
Wednesday, September 30, 2009
Scriptdev2 Compile for MaNGOS
When you have your compiled MaNGOS you need scripts and this is how we do it
STEP 1
Go to your git downloaded source of MaNGOS(example)C:\sources\src\bindings\ folder and there create folder named Scriptdev2
Checkout the Scriptdev2 trunk from
https://scriptdev2.svn.sourceforge.n...oot/scriptdev2
STEP 2
Now open Scriptdev2 folder and double click(open)ScriptVC90
In your VC++ application window select Build->Configuration Manager from the menu
Select Release in the drop down for Active Solution Configuration Manager
Active Solution Platform should default be Win32 and DO NOT CHANGE THAT
Close the dialog and now select Build->Build Solution from the menu and wait to finish
NOTE-If you had an error or having problems with the build you can select Build->Clean Solution to reset compilation
STEP 3
When finished go to (example)C:\source\bin\release folder and copy MaNGOSScript.dll and paste that file to your compiled MaNGOS SERVER(example)C:\MaNGOS SERVER and overwrite old one
Go to C:\source\src\bindings\Scriptdev2 folder and copy scriptdev2.conf.dist.in also in your MaNGOS SERVER folder and rename that to scriptdev2.conf
Now open scriptdev2.conf and you will see line like this ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;scriptdev2"
Now you need to change that line to ScriptDev2DatabaseInfo = "127.0.0.1;3306;root;mangos;scriptdev2"
You now have compiled scripts for your server
If have some problems with this guide post problem on forums.
Read more on this article...
Thursday, September 17, 2009
How to make a teleporter NPC - Mangos
First what you have to do is go to:
DOWNLOAD*NOW!
And download quice, this is a mangos database editor which is EXTREMELY helpful
__________________________________________________ __________________________
Then Make a custom creature by, well going into the database and creating it. If your not sure how to make a custom creature look up a guide. (Your going to want to set the faction for alliance and horde to 35)
After this go to the quest tab and click search, at the bottom there will be a "New Quest" Button.
From there you will be on "Quest Part 1"
There are the fields you will want to worry about.
Title: (Name of the quest)
Details: (What you want it to show when you are accepting the quest
OfferRewardText: (Here put your same as you put in the details)
Entry: (900000+)
MinLevel: (What level you have to be to take the teleport)
QuestLevel: (If its at 1 and on your server everyone is level 80 then its going to show up as a low level quest, so you want to put it at the max level for your server)
__________________________________________________ ___________________________
Now head to "Quest Part 2"
And there will be only 3 fields for this that you have to fill out:
Method: Change to 0
Complete Script: Something 50000+
SpecialFlags: (Change to 1 if you want it to be repeatable teleport)
Picture:
__________________________________________________ ______________________________
Now head to "Questgivers"
This is simple, click "Add" Then find the creature you want to be the teleporter, do the exact same for the "Quest Taker" tab also
__________________________________________________ ___________________________________
Now head to the tab "Complete Script"
At the bottom those are all the fields you want to fill out
-Before you enter any of this data, you want to go to the spot you want the teleport to go to, and type .gps
This will give you the co-ordinates you have to enter for some of the feilds
ID: The id that you put for complete script in "Quest Part 2"
Delay: 0 (If you want it to be instant teleport)
Command: 6 (This is the teleport command)
Datalong: Map Id (You get this from .gps)
Datalong2: Leave at 0
X: (The X co-ordinate you got from .gps)
Y: (The Y co-ordinate you got from .gps)
Z: (The z co-ordinate you got from .gps)
O: (The Orientation co-ordinate you got from .gps)
Dataint: Leave Blank
Read more on this article...