Emulator Server Guides Guides for working with World of Warcraft Emulator servers. Learn how to create a WoW Server here.
[NO QUESTIONS HERE]
Banned
Rep Power: 0
Posts: 1,966
Join Date: Oct 2007
06-27-2008
You put src\MorphNPC\MorphNPC.cpp and thanks!
Donate to remove ads. Knight-Lieutenant
Rep Power: 1
Reputation: 33 Posts: 284
Join Date: Dec 2007
06-27-2008
Thanks need to spread rep O.o
Master Sergeant
Rep Power: 1
Reputation: 38 Posts: 117
Join Date: May 2008
06-27-2008
Very good video I must say. Couldn't do it better myself
Banned
Rep Power: 0
Posts: 1,966
Join Date: Oct 2007
06-27-2008
Hahaha thanks guys
What a Guy
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 2 Posts: 5
Join Date: May 2008
What a Guy -
06-27-2008
Thanks Man, this cleared up a few things for me. My very own warp npc *SIGH*
You DA MAN.
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3 Posts: 17
Join Date: Mar 2008
Location: Delft, Netherlands
06-28-2008
Works fine for me. But it is looking for ascent.exe instead of ascent-world.exe
Whrn I talk to the npc ingame it jsut come up saying. "Hello there, Narrox. How can I help you?"
Banned
Rep Power: 0
Posts: 1,966
Join Date: Oct 2007
06-28-2008
You need to change the NPC's flags in creature_proto to "1"
Contributor
Rep Power: 3
Posts: 677
Join Date: May 2007
Location: Canada
06-28-2008
Can you just use the GossipScripts method instead of making a whole new project? Put your GlobalNPC.cpp file in Gossipscripts folder , then add it to your setup files and compile the scripts?
I've done it with past WarpNPC's , not sure if it would make any difference with this one. But WOW great guide. + rep x 3
EDIT: gotta spread some rep -.- , and yea just did it with the gossip scripts way. It skips the whole process of making a project.
Last edited by mafiaboy; 06-28-2008 at 12:54 PM .
Banned
Rep Power: 0
Posts: 1,966
Join Date: Oct 2007
06-28-2008
Thanks, good to see your back.
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3 Posts: 17
Join Date: Mar 2008
Location: Delft, Netherlands
06-28-2008
But the problem is, if the server needs to be restart it won't restart because it will get stuck at a dialog box (error box) which pops up telling me that it cannot find ascent.exe!
Banned
Rep Power: 0
Posts: 1,966
Join Date: Oct 2007
06-28-2008
Lol, what does that have to do with this guide
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3 Posts: 17
Join Date: Mar 2008
Location: Delft, Netherlands
06-28-2008
Because something here in the code points to ascent.exe on startup. The .dll wants me to be running ascent.exe isntead of ascent-world.exe.
Contributor
Rep Power: 2
Reputation: 186 Posts: 786
Join Date: Nov 2007
Location: Head of Recruitment
06-30-2008
Ugh I need a c++ registration key >,<
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 1 Posts: 29
Join Date: Jan 2008
Location: Pismo
07-01-2008
Contributor
Rep Power: 2
Reputation: 168 Posts: 1,363
Join Date: May 2008
Location: Pyramid of Anubis
07-01-2008
Can acces it without any problem Code:
#include "StdAfx.h" #include "Setup.h" #ifdef WIN32 #pragma warning(disable:4305)// warning C4305: 'argument' : truncation from 'double' to 'float' #endif class SCRIPT_DECL GlobalNPC : public GossipScript { public: void GossipHello(Object * pObject, Player* Plr, bool AutoSend); void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code); void GossipEnd(Object * pObject, Player* Plr); void Destroy() { delete this; } }; void GlobalNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend) { GossipMenu *Menu; objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); if(Plr->IsPvPFlagged() && Plr->getLevel() <= 30) { Menu->AddItem(2, "You are either Flagged for PVP or are not higher than level 30."); }else{ if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5) {Menu->AddItem(0, "Horde Cities", 1);}else{Menu->AddItem(1, "Alliance Cities", 2);} Menu->AddItem(2, "Global Locations", 80); Menu->AddItem(3, "Azeroth Instances", 30); Menu->AddItem(4, "Outland Instances", 50); Menu->AddItem(5, "|cffC11218World Bosses |r", 147); if(Plr->getLevel()>59){Menu->AddItem(2, "|cff681EA2Shattrath|r", 20);} Menu->AddItem(6, "Gurubashi Arena", 21); Menu->AddItem(8, "Buff me up, baby!", 96); Menu->AddItem(9, "Remove Resurrection Sickness", 97); } if(AutoSend) Menu->SendTo(Plr); } void GlobalNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code) { Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL; if(pCreature==NULL) return; GossipMenu * Menu; switch(IntId) { case 0: GossipHello(pObject, Plr, true); break; case 1: // Hord Cities { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Silvermoon", 4); Menu->AddItem(5, "Orgrimmar", 5); Menu->AddItem(5, "Thunder Bluff", 6); Menu->AddItem(5, "Undercity", 7); Menu->SendTo(Plr); } break; case 2: // Alliance Cities { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "The Exodar", 8); Menu->AddItem(5, "Stormwind", 9); Menu->AddItem(5, "Ironforge", 10); Menu->AddItem(5, "Darnassus", 11); Menu->SendTo(Plr); } break; case 3: // Outland Locations { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Hellfire Peninsula", 12); Menu->AddItem(5, "Zangermarsh", 13); Menu->AddItem(5, "Nagrand", 14); Menu->AddItem(5, "Blades Edge Mountains", 15); Menu->AddItem(5, "Netherstorm", 16); Menu->AddItem(5, "Terokkar Forest", 17); Menu->AddItem(5, "Shadowmoon Valley", 18); Menu->SendTo(Plr); } break; case 4://Silvermoon { Plr->EventTeleport(530, 9400.486328, -7278.376953, 14.206780); }break; case 5://Orgrimmar { Plr->EventTeleport(1, 1371.068970, -4370.801758, 26.052483); }break; case 6://ThunderBluff { Plr->EventTeleport(1, -1304.569946, 205.285004, 68.681396); } break; case 7://Undercity { Plr->EventTeleport(0, 2050.203125, 285.650604, 56.994549); } break; case 8: //Exodar { Plr->EventTeleport(530, -4072.202393, -12014.337891, -1.277277); } break; case 9: //Stormwind { Plr->EventTeleport(0, -9100.480469, 406.950745, 92.594185); } break; case 10: //Ironforge { Plr->EventTeleport(0, -5028.265137, -825.976563, 495.301575); } break; case 11: //Darnassus { Plr->EventTeleport(1, 9985.907227, 1971.155640, 1326.815674); } break; case 12: //Hellfire Peninsula { Plr->EventTeleport(530, -248.160004, 922.348999, 84.379799); } break; case 13: //Zangermarsh { Plr->EventTeleport(530, -225.863632, 5405.927246, 22.346397); } break; case 14: //Nagrand { Plr->EventTeleport(530, -468.232330, 8418.666016, 28.031298); } break; case 15: //Blades Edge Mountains { Plr->EventTeleport(530, 1471.672852, 6828.047852, 107.759239); } break; case 16: //Netherstorm { Plr->EventTeleport(530, 3396.123779, 4182.208008, 137.097992); } break; case 17: //Terokkar Forest { Plr->EventTeleport(530, -1202.426636, 5313.692871, 33.774723); } break; case 18: //Shadowmoon Valley { Plr->EventTeleport(530, -2859.522461, 3182.34773, 10.008426); } break; case 20: //Shattrath { Plr->EventTeleport(530, -1887.510010, 5359.379883, -12.427300); } break; case 21: // Gurubsahi Arena { Plr->EventTeleport(0, -13271.959961, 149.105515, 34.464458); } break; case 30: // Azeroth Instances { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Shadowfang Keep", 31); Menu->AddItem(5, "Scarlet Monastery", 32); Menu->AddItem(5, "Zul'Farrak", 33); Menu->AddItem(5, "Stratholme", 41); Menu->AddItem(5, "Scholomance", 40); Menu->AddItem(5, "Blackrock Spire", 42); Menu->AddItem(5, "Onyxia's Lair", 38); Menu->AddItem(5, "Molten Core", 37); Menu->AddItem(5, "Zul'Gurub", 34); Menu->AddItem(5, "Karazhan", 43); Menu->AddItem(5, "Ahn'Qirai 20", 35); Menu->AddItem(5, "Ahn'Qirai 40", 36); Menu->AddItem(5, "Naxxramas", 39); Menu->AddItem(5, "Caverns of Time", 44); Menu->SendTo(Plr); } break; case 31: // Shadowfang Keep { Plr->EventTeleport(0, -234.495087, 1561.946411, 76.892143); } break; case 32: // Scarlet Monastery { Plr->EventTeleport(0, 2870.442627, -819.985229, 160.331085); } break; case 33: // Zul'Farrak { Plr->EventTeleport(1, -6797.278809, -2903.917969, 9.953360); } break; case 34: // Zul'Gurub { Plr->EventTeleport(0, -11919.073242, -1202.459374, 92.298744); } break; case 35: // Ahn'Qirai 20 { Plr->EventTeleport(1, -8394.730469, 1485.658447, 21.038563); } break; case 36: // Ahn'Qirai 40 { Plr->EventTeleport(1, -8247.316406, 1970.156860, 129.071472); } break; case 37: // Molten Core { // Plr->EventTeleport(0, -7515.409668, -1045.369629, 182.301208); Plr->EventTeleport(409, 1089.6, -470.19, -106.41); } break; case 38: // Onyxia { // Plr->EventTeleport(1, -4708.491699, -3727.672363, 54.535076); Plr->EventTeleport(249, 30.0, -64.0, -5.0); } break; case 39: // Naxxramas { // Plr->EventTeleport(0, 3132.915283, -3731.012939, 138.658371); Plr->EventTeleport(533, 3006.06, -3436.72, 293.891); } break; case 40: //Scholomance { Plr->EventTeleport(0, 1267.468628, -2556.651367, 94.127983); } break; case 41: //Stratholme { Plr->EventTeleport(0, 3359.111572, -3380.8444238, 144.781860); }break; case 42: // Black Rock Spire { Plr->EventTeleport(0, -7527.129883, -1224.997437, 285.733002); }break; case 43: // Kharazan { // Plr->EventTeleport(0, -11122.913086, -2014.498779, 47.079350); Plr->EventTeleport(532, -11087.3, -1977.47, 49.6135); }break; case 44: // Caverns of Times { Plr->EventTeleport(1, -8519.718750, -4297.542480, -208.441376); }break; case 50: // Outland Instances { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(0, "Outland Raids", 64); Menu->AddItem(5, "Hellfire Ramparts", 51); Menu->AddItem(5, "The Blood Furnace", 52); Menu->AddItem(5, "The Shattered Halls", 53); Menu->AddItem(5, "The Underbog", 54); Menu->AddItem(5, "The Slave Pens", 55); Menu->AddItem(5, "The Steamvault", 56); Menu->AddItem(5, "Mana-Tombs", 57); Menu->AddItem(5, "Auchenai Crypts", 58); Menu->AddItem(5, "Sethekk Halls", 59); Menu->AddItem(5, "Shadow Labyrinth", 60); Menu->AddItem(5, "The Mechanar", 61); Menu->AddItem(5, "The Botanica", 62); Menu->AddItem(5, "The Arcatraz", 63); Menu->SendTo(Plr); } break; case 51: // Hellfire Ramparts { Plr->EventTeleport(530, -360.670990, 3071.899902, -15.097700); }break; case 52: // The Blood Furnace { Plr->EventTeleport(530, -303.506012, 3164.820068, 31.742500); }break; case 53: // The Shattered Halls { Plr->EventTeleport(530, -311.083527, 3083.291748, -3.745923); }break; case 54: // The Underbog { Plr->EventTeleport(530, 777.088989, 6763.450195, -72.062561); }break; case 55: // The Slave Pens { Plr->EventTeleport(530, 719.507996, 6999.339844, -73.074303); }break; case 56: // The Steamvault { Plr->EventTeleport(530, 816.590027, 6934.669922, -80.544601); }break; case 57: // Mana-Tombs { Plr->EventTeleport(530, -3079.810059, 4943.040039, -101.046997); }break; case 58: // Auchenai Crypts { Plr->EventTeleport(530, -3361.959961, 5225.770020, -101.047997); }break; case 59: // Sethekk Halls { Plr->EventTeleport(530, -3362.219971, 4660.410156, -101.049004 ); }break; case 60: // Shadow Labyrinth { Plr->EventTeleport(530, -3645.060059, 4943.620117, -101.047997); }break; case 61: // The Mechanar { Plr->EventTeleport(530, 2862.409912, 1546.089966, 252.158691); }break; case 62: // The Botanica { Plr->EventTeleport(530, 3413.649902, 1483.319946, 182.837997); }break; case 63: // The Arcatraz { Plr->EventTeleport(530, 3311.598145, 1332.745117, 505.557251); }break; case 64: // Outland Raids { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Magtheridon's Lair", 65); Menu->AddItem(5, "Serpentshrine Cavern", 66); Menu->AddItem(5, "Gruul's Lair", 67); Menu->AddItem(5, "The Eye", 68); Menu->AddItem(5, "Black Temple", 69); Menu->SendTo(Plr); } break; case 65: // Magtheridon's Lair { Plr->EventTeleport(530, -313.678986, 3088.350098, -116.501999); }break; case 66: // Serpentshrine Cavern { Plr->EventTeleport(530, 830.542908, 6865.445801, -63.785503); }break; case 67: // Gruul's Lair { Plr->EventTeleport(530, 3549.424072, 5179.854004, -4.430779); }break; case 68: // The Eye { Plr->EventTeleport(530, 3087.310059, 1373.790039, 184.643005); }break; case 69: // Black Temple { // Plr->EventTeleport(530, -3609.739990, 328.252014, 37.307701 ); Plr->EventTeleport(564, 97.0894, 1001.96, -86.8798 ); }break; case 80: //SUB MENU { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Eastern Kingdoms", 81); Menu->AddItem(5, "Kalimdor", 82); Menu->AddItem(5, "Outland", 3); Menu->SendTo(Plr); } break; case 81: // EASTERN KINGDOM { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Eastern Plaguelands", 70); Menu->AddItem(5, "Western Plaguelands", 71); Menu->AddItem(5, "Tristfal Glades", 72); Menu->AddItem(5, "Alterac Mountains", 73); Menu->AddItem(5, "Silverpine Forest", 74); Menu->AddItem(5, "Hillsbrad Foothills", 75); Menu->AddItem(5, "The Hinterlands", 76); Menu->AddItem(5, "Arathi Highlands", 77); Menu->AddItem(5, "Wetlands", 78); Menu->AddItem(5, "Dun Morogh", 79); Menu->AddItem(5, "Loch Modan", 100); Menu->AddItem(5, "--> Second Page -->", 151); Menu->SendTo(Plr); } break; case 151: { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Badlands", 101); Menu->AddItem(5, "Blackrock Mountain", 102); Menu->AddItem(5, "Redridge Mountain", 103); Menu->AddItem(5, "Elwynn Forest", 104); Menu->AddItem(5, "Duskwood", 105); Menu->AddItem(5, "Westfall", 106); Menu->AddItem(5, "Swamp of Sorrows", 107); Menu->AddItem(5, "The Blasted Lands", 108); Menu->AddItem(5, "Deadwind Pass", 109); Menu->AddItem(5, "Stranglethorn Vale", 110); Menu->SendTo(Plr); } break; case 82: // KALIMDOR { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Moonglade", 111); Menu->AddItem(5, "Winterspring", 112); Menu->AddItem(5, "Felwood", 113); Menu->AddItem(5, "Darkshore", 114); Menu->AddItem(5, "Azshara", 115); Menu->AddItem(5, "Ashenvale", 116); Menu->AddItem(5, "Stonetalon Mountains", 117); Menu->AddItem(5, "The Barrens", 118); Menu->AddItem(5, "Durotar", 119); Menu->AddItem(5, "--> Second Page -->", 152); Menu->SendTo(Plr); } break; case 152: { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "Mulgore", 120); Menu->AddItem(5, "Desolace", 121); Menu->AddItem(5, "Dustwallow Marsh", 122); Menu->AddItem(5, "Feralas", 123); Menu->AddItem(5, "Thousand Needles", 124); Menu->AddItem(5, "Tanaris Desert", 125); Menu->AddItem(5, "Un'Goro Crater", 126); Menu->AddItem(5, "Silithus", 127); Menu->SendTo(Plr); } break; // EASTERN KINGDOMS [case] // case 70: // WesternPlaguelands { Plr->EventTeleport( 0, 1855, -1569, 61); }break; case 71: // EasternPlaguelands { Plr->EventTeleport( 0, 2278, -5311, 89); }break; case 72: // TristfallGlades { Plr->EventTeleport( 0, 2032, -432, 37); }break; case 73: // AlteracMountains { Plr->EventTeleport( 0, 552, -275, 152); }break; case 74: // Silverpine Forest { Plr->EventTeleport( 0, -126, 815, 68); }break; case 75: // Hillsbrad { Plr->EventTeleport( 0, -502, 91, 61); }break; case 76: // TheHinterlands { Plr->EventTeleport( 0, -678, -4018, 240); }break; case 77: // ArathiHighlands { Plr->EventTeleport( 0, -797, -2068, 35); }break; case 78: // Wetlands { Plr->EventTeleport( 0, -3256, -2718, 11); }break; case 79: // Dunmorogh { Plr->EventTeleport( 0, -5826, -1586, 366); }break; case 100: // Lochmodan { Plr->EventTeleport( 0, -4771, -3329, 347); }break; case 101: // Badlands { Plr->EventTeleport( 0, -7027, -3330, 243); }break; case 102: // Blackrockmountain { Plr->EventTeleport( 0, -7317, -1072, 279); }break; case 103: // Redridgemountain { Plr->EventTeleport( 0, -9168, -2726, 92); }break; case 104: // ElwynnForest { Plr->EventTeleport( 0, -9325, -1038, 67); }break; case 105: // Duskwood { Plr->EventTeleport( 0, -10694, -884, 80); }break; case 106: // Westfall { Plr->EventTeleport( 0, -11018, 1513, 45); }break; case 107: // SwampofSorrows { Plr->EventTeleport( 0, -10429, -3828, -29); }break; case 108: // BlastedLands { Plr->EventTeleport( 0, -11853, -3197, -25); }break; case 109: // DeadwindPass { Plr->EventTeleport( 0, -10435, -1809, 101); }break; case 110: // Stranglethornvale { Plr->EventTeleport( 0, -13382, 2, 23); }break; // KALIMDOR [case] // case 111: // Moonglade { Plr->EventTeleport( 1, 7978, -2501, 490); }break; case 112: // winterspring { Plr->EventTeleport( 1, 6721, -4659, 722); }break; case 113: // felwood { Plr->EventTeleport( 1, 4878, -614, 362); }break; case 114: // darkshore { Plr->EventTeleport( 1, 4565, 438, 34); }break; case 115: // azshara { Plr->EventTeleport( 1, 2717, -5968, 108); }break; case 116: // ashenvale { Plr->EventTeleport( 1, 3469, 847, 7); }break; case 117: // Stonetalon { Plr->EventTeleport( 1, 898, 922, 128); }break; case 118: // TheBarrens { Plr->EventTeleport( 1, -1330, -3120, 93); }break; case 119: // Durotar { Plr->EventTeleport( 1, 242, -5151, 3); }break; case 120: // Mulgore { Plr->EventTeleport( 1, -2326, -367, -6); }break; case 121: // Desolace { Plr->EventTeleport( 1, -939, 1091, 95); }break; case 122: // Dustwallow { Plr->EventTeleport( 1, -3719, -2530, 71); }break; case 123: // Feralas { Plr->EventTeleport( 1, -4508, 2041, 53); }break; case 124: // ThousandNeedles { Plr->EventTeleport( 1, -4619, -1850, 88); }break; case 125: // Tanaris { Plr->EventTeleport( 1, -7373, -2950, 12); }break; case 126: // Ungoro { Plr->EventTeleport( 1, -6186, -1106, -215); }break; case 127: // Silithus { Plr->EventTeleport( 1, -6824, 821, 51); }break; case 146: { Plr->EventTeleport(1, 4314, -4069, 937); }break; case 148: { Plr->EventTeleport(1, 6039, -1198, 374); }break; case 147: { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(5, "|cff9024D5Nightshroud Celestial|r", 146); Menu->AddItem(5, "|CFF006600Tork'in Ancient Protector|r", 148); Menu->AddItem(5, "Menu", 99); Menu->SendTo(Plr); } break; case 96: { if(Plr->getLevel() >= 60) { pCreature->CastSpell(Plr, 15366, 0); pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "By all that is wrong in this world, I bless you." ); Plr->Gossip_Complete(); }else{ pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You need to be at least level 60 in order to recieve my buff." ); Plr->Gossip_Complete();} }break; case 97: // REMOVE RESSURECTION SICKNESS { Plr->addSpell(15007); Plr->removeSpell(15007,0,0,0); pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been cured of that dreaded sickness." ); Plr->Gossip_Complete(); }break; } } void GlobalNPC::GossipEnd(Object * pObject, Player* Plr) { GossipScript::GossipEnd(pObject, Plr); } void SetupGlobalNPC(ScriptMgr * mgr) { GossipScript * gs = (GossipScript*) new GlobalNPC(); mgr->register_gossip_script(112230, gs); } Total Paste Views: 144 — [Only registered and activated users can see links. ] (0) — [Only registered and activated users can see links. ] — [Only registered and activated users can see links. ] Thats teh script from the link.
Donate to remove ads.
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by
vBSEO 3.1.0
vBulletin Skin developed by:
vBStyles.com