Jump to content

OMGhixD

Site Director
  • Content Count

    3,376
  • Joined

  • Last visited

  • Days Won

    111

OMGhixD last won the day on October 14

OMGhixD had the most liked content!

About OMGhixD

  • Rank
    Site Director and CEO
  • Birthday 10/27/1996

Profile Information

  • Gender
    Male

Contact Methods

  • Discord
    OMGhixD#4382

Recent Profile Visitors

9,066 profile views
  1. SUPPORT STATUS - PENDING "Ride the wave of creativity" Greetings, your support thread is currently pending and is awaiting response by a member of our staff team. In the mean time we encourage community submissions! Otherwise a team member will connect with you shortly. Copyright © 2018 MMO-Society LLC. .main-body { background-color:#445369; font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif; width: autopx; height:autopx; padding: 25px; color:#a8adb4; } .main-body a:link { color: #01a2ef; text-decoration:none;} .main-body a:visited { color: #01a2ef; text-decoration:none;} .header { background-image:url('https://www.lordcraft.net/uploads/special/header.png'); font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif; font-size:16px; color:#fff; width: autopx; height:66px; padding-left:90px; vertical-align: middle; line-height: 66px; } .footer { background-image:url('https://www.lordcraft.net/uploads/special/footer.png'); font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif; color:#a8adb4; width: autopx; height:22px; color:silver; font-size:9px; text-align:right; padding-top:4px; } .right{ float:right; padding-right:80px; font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif; font-size:12px; color:#a8adb4; font-style: italic; }
  2. Let us know how it goes, if you run into errors it might be worth creating a support thread here https://www.mmo-society.com/forum/9-support/
  3. I honestly have no idea. only tested on windows.
  4. OMGhixD

    Emo Listening Spree

    This really reminds me of Thirty Seconds From Mars! extraordinary voice of the vocalist
  5. The request(s) in this topic have been completed and the owner has been satisfied. Because of this, the topic has been closed and moved. If you have other requests, please open a new topic.
  6. Christmas is around the corner (so i've heard) To early but this song was just to good to not share in an instant!
  7. /* * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <http://www.gnu.org/licenses/>. */ /* ScriptData Name: Arena Spectator %Complete: 100 Comment: Script allow spectate arena games Category: Custom Script EndScriptData */ #include "ScriptPCH.h" #include "Chat.h" #include "ArenaTeamMgr.h" #include "BattlegroundMgr.h" #include "WorldSession.h" #include "Player.h" #include "ArenaTeam.h" #include "Battleground.h" #include "BattlegroundMgr.h" #include "CreatureTextMgr.h" #include "Config.h" #define sArenaTeamMgr ArenaTeamMgr::instance() int8 UsingGossip; class arena_spectator_commands : public CommandScript { public: arena_spectator_commands() : CommandScript("arena_spectator_commands") { } static bool HandleSpectateCommand(ChatHandler* handler, char const* args) { Player* target; ObjectGuid target_guid; std::string target_name; Battleground* bg = sBattlegroundMgr->GetBattlegroundTemplate(BATTLEGROUND_AA); // All Arenas BattlegroundTypeId bgTypeId = bg->GetTypeID(); BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(bgTypeId, bg->GetArenaType()); if (!handler->extractPlayerTarget((char*)args, &target, &target_guid, &target_name)) return false; Player* player = handler->GetSession()->GetPlayer(); if (target == player || target_guid == player->GetGUID()) { handler->PSendSysMessage("Can't teleport self."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } // Dont let players in arena queue to spectate if (player->GetBattlegroundQueueIndex(bgQueueTypeId)) { handler->PSendSysMessage("You need to remove your queue before spectating."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (player->IsInCombat()) { handler->PSendSysMessage("You are in combat."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (!target) { handler->PSendSysMessage("The player doesn't exist or is offline."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (player->GetMap()->IsBattlegroundOrArena() && !player->IsSpectator()) { handler->PSendSysMessage("You are already in a battleground or arena."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } Map* cMap = target->GetMap(); if (!cMap->IsBattleArena()) { handler->PSendSysMessage("The player is not in arena."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (player->GetMap()->IsBattleground()) { handler->PSendSysMessage("Can't do that while in battleground."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } // check for arena preperation // if exists than battle didn`t begin if (target && (target->HasAura(32728) || target->HasAura(32727))) { handler->PSendSysMessage("Cant do that. The arena hasn't started yet."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } // Remove mounts and.. if (player->IsMounted()) { player->Dismount(); player->RemoveAurasByType(SPELL_AURA_MOUNTED); player->CLOSE_GOSSIP_MENU(); } // ..and pets before spectating by Natureknight if (player->GetPet()) { player->RemovePet(NULL, PET_SAVE_NOT_IN_SLOT); player->CLOSE_GOSSIP_MENU(); } // all's well, set bg id // when porting out from the bg, it will be reset to 0 player->SetBattlegroundId(target->GetBattlegroundId(), target->GetBattlegroundTypeId()); // remember current position as entry point for return at bg end teleportation if (!player->GetMap()->IsBattlegroundOrArena()) player->SetBattlegroundEntryPoint(); // stop flight if need if (player->IsInFlight()) { player->GetMotionMaster()->MovementExpired(); player->CleanupAfterTaxiFlight(); } // save only in non-flight case else player->SaveRecallPosition(); // search for two teams Battleground *bGround = target->GetBattleground(); if (bGround->isRated()) { uint32 slot = bGround->GetArenaType() - 2; if (bGround->GetArenaType() > 4) // Just in case of ARENA_TYPE_3v3_SOLO slot = 2; uint32 firstTeamID = target->GetArenaTeamId(slot); uint32 secondTeamID = 0; Player *firstTeamMember = target; Player *secondTeamMember = NULL; for (Battleground::BattlegroundPlayerMap::const_iterator itr = bGround->GetPlayers().begin(); itr != bGround->GetPlayers().end(); ++itr) if (Player* tmpPlayer = ObjectAccessor::FindPlayer(itr->first)) { if (tmpPlayer->IsSpectator()) continue; uint32 tmpID = tmpPlayer->GetArenaTeamId(slot); if (tmpID != firstTeamID && tmpID > 0) { secondTeamID = tmpID; secondTeamMember = tmpPlayer; break; } } if (firstTeamID > 0 && secondTeamID > 0 && secondTeamMember) { ArenaTeam *firstTeam = sArenaTeamMgr->GetArenaTeamById(firstTeamID); ArenaTeam *secondTeam = sArenaTeamMgr->GetArenaTeamById(secondTeamID); if (firstTeam && secondTeam) { handler->PSendSysMessage("You entered a Rated Arena."); handler->PSendSysMessage("Teams:"); handler->PSendSysMessage("|cFFffffff%s|r vs |cFFffffff%s|r", firstTeam->GetName().c_str(), secondTeam->GetName().c_str()); handler->PSendSysMessage("|cFFffffff%u(%u)|r -- |cFFffffff%u(%u)|r", firstTeam->GetRating(), firstTeam->GetAverageMMR(firstTeamMember->GetGroup()), secondTeam->GetRating(), secondTeam->GetAverageMMR(secondTeamMember->GetGroup())); } } } // to point to see at target with same orientation float x, y, z; target->GetContactPoint(player, x, y, z); player->TeleportTo(target->GetMapId(), x, y, z, player->GetAngle(target), TELE_TO_GM_MODE); player->SetPhaseMask(target->GetPhaseMask(), true); player->SetSpectate(true); target->GetBattleground()->AddSpectator(player->GetGUID()); return true; } static bool HandleSpectateCancelCommand(ChatHandler* handler, const char* /*args*/) { Player* player = handler->GetSession()->GetPlayer(); if (!player->IsSpectator()) { handler->PSendSysMessage("You are not a spectator."); handler->SetSentErrorMessage(true); return false; } player->GetBattleground()->RemoveSpectator(player->GetGUID()); player->CancelSpectate(); player->TeleportToBGEntryPoint(); return true; } static bool HandleSpectateFromCommand(ChatHandler* handler, const char *args) { Player* target; ObjectGuid target_guid; std::string target_name; if (!handler->extractPlayerTarget((char*)args, &target, &target_guid, &target_name)) return false; Player* player = handler->GetSession()->GetPlayer(); if (Player* player = handler->GetSession()->GetPlayer()) { if (!player || !target || target->GetTypeId() != TYPEID_PLAYER) { handler->PSendSysMessage("Player not found."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (!player->IsSpectator()) { handler->PSendSysMessage("You are not a spectator, spectate someone first."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (target->IsSpectator()) { handler->PSendSysMessage("Can't do that. Your target is a spectator."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (player->GetMap() != target->GetMap()) { handler->PSendSysMessage("Can't do that. Different arenas?"); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (target->HasAuraType(SPELL_AURA_MOD_STEALTH)) { handler->PSendSysMessage("Remove your Stealth / Invisibility."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } // check for arena preperation // if exists than battle didn`t begin if (target && (target->HasAura(32728) || target->HasAura(32727))) { handler->PSendSysMessage("Cant do that. The arena hasn't started yet."); handler->SetSentErrorMessage(true); player->CLOSE_GOSSIP_MENU(); return false; } if (player->getSpectateFrom() == target) player->SetViewpoint(player->getSpectateFrom(), false); else player->SetViewpoint(target, true); return true; } // Prevent Crash if not Exist Player else return false; } static bool HandleSpectateResetCommand(ChatHandler* handler, const char *args) { Player* player = handler->GetSession()->GetPlayer(); if (!player) { handler->PSendSysMessage("Cant find player."); handler->SetSentErrorMessage(true); return false; } if (!player->IsSpectator()) { handler->PSendSysMessage("You are not a spectator!"); handler->SetSentErrorMessage(true); return false; } Battleground *bGround = player->GetBattleground(); if (!bGround) return false; if (bGround->GetStatus() != STATUS_IN_PROGRESS) return true; for (Battleground::BattlegroundPlayerMap::const_iterator itr = bGround->GetPlayers().begin(); itr != bGround->GetPlayers().end(); ++itr) if (Player* tmpPlayer = ObjectAccessor::FindPlayer(itr->first)) { if (tmpPlayer->IsSpectator()) continue; uint32 tmpID = bGround->GetPlayerTeam(tmpPlayer->GetGUID()); // generate addon massage std::string pName = tmpPlayer->GetName(); std::string tName = ""; if (Player *target = tmpPlayer->GetSelectedPlayer()) tName = target->GetName(); SpectatorAddonMsg msg; // Travis msg.SetPlayer(pName); if (tName != "") msg.SetTarget(tName); msg.SetStatus(tmpPlayer->IsAlive()); msg.SetClass(tmpPlayer->getClass()); msg.SetCurrentHP(tmpPlayer->GetHealth()); msg.SetMaxHP(tmpPlayer->GetMaxHealth()); Powers powerType = tmpPlayer->getPowerType(); msg.SetMaxPower(tmpPlayer->GetMaxPower(powerType)); msg.SetCurrentPower(tmpPlayer->GetPower(powerType)); msg.SetPowerType(powerType); msg.SetTeam(tmpID); msg.SendPacket(player->GetGUID()); } return true; } ChatCommand* GetCommands() const { static ChatCommand spectateCommandTable[] = { { "player", rbac::RBAC_PERM_COMMAND_SPECTATE_PLAYER, true, &HandleSpectateCommand, "", NULL }, { "view", rbac::RBAC_PERM_COMMAND_SPECTATE_VIEW, true, &HandleSpectateFromCommand, "", NULL }, { "reset", rbac::RBAC_PERM_COMMAND_SPECTATE_RESET, true, &HandleSpectateResetCommand, "", NULL }, { "leave", rbac::RBAC_PERM_COMMAND_SPECTATE_LEAVE, true, &HandleSpectateCancelCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { { "spectate", rbac::RBAC_PERM_COMMAND_SPECTATE, false, NULL, "", spectateCommandTable }, { NULL, 0, false, NULL, "", NULL } }; return commandTable; } }; enum NpcSpectatorAtions { // will be used for scrolling NPC_SPECTATOR_2v2_RATED_GAMES = 1000, NPC_SPECTATOR_3v3_RATED_GAMES = 2000, NPC_SPECTATOR_3v3_SOLO_GAMES = 3000, NPC_SPECTATOR_ACTION_SPECIFIC = 4000, //NPC_SPECTATOR_ACTION_SELECTED_PLAYER + player.Guid() NPC_SPECTATOR_ACTION_SELECTED_PLAYER = 5000 }; const uint8 GamesOnPage = 15; class npc_arena_spectator : public CreatureScript { public: npc_arena_spectator() : CreatureScript("npc_arena_spectator") { } bool OnGossipHello(Player* pPlayer, Creature* pCreature) { if (!pPlayer->IsAlive()) return true; std::stringstream games2v2; std::stringstream games3v3; std::stringstream games3v3solo; //Spectate 2vs2 Rated Games above 1000 MMR(Current open Games: 3) games2v2 << "Spectate all 2v2 Rated games (Current open Games: " << CountArenaGames(ARENA_TYPE_2v2) << ")"; games3v3 << "Spectate all 3v3 Rated games (Current open Games: " << CountArenaGames(ARENA_TYPE_3v3) << ")"; games3v3solo << "Spectate all Solo 3v3 Solo games (Current open Games: " << CountArenaGames(ARENA_TYPE_3v3_SOLO) << ")"; pPlayer->ADD_GOSSIP_ITEM(10, games2v2.str().c_str(), GOSSIP_SENDER_MAIN, NPC_SPECTATOR_2v2_RATED_GAMES); pPlayer->ADD_GOSSIP_ITEM(10, games3v3.str().c_str(), GOSSIP_SENDER_MAIN, NPC_SPECTATOR_3v3_RATED_GAMES); pPlayer->ADD_GOSSIP_ITEM(10, games3v3solo.str().c_str(), GOSSIP_SENDER_MAIN, NPC_SPECTATOR_3v3_SOLO_GAMES); pPlayer->ADD_GOSSIP_ITEM_EXTENDED(10, "Spectate game of specific person", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_ACTION_SPECIFIC, "", 0, true); pPlayer->SEND_GOSSIP_MENU(904283, pCreature->GetGUID()); return true; } bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) { player->PlayerTalkClass->ClearMenus(); if (action >= NPC_SPECTATOR_2v2_RATED_GAMES && action < NPC_SPECTATOR_3v3_RATED_GAMES) { ShowPage(player, action - NPC_SPECTATOR_2v2_RATED_GAMES, ARENA_TYPE_2v2); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Refresh", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_2v2_RATED_GAMES); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); } else if (action >= NPC_SPECTATOR_3v3_RATED_GAMES && action < NPC_SPECTATOR_3v3_SOLO_GAMES) { ShowPage(player, action - NPC_SPECTATOR_3v3_RATED_GAMES, ARENA_TYPE_3v3); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Refresh", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_3v3_RATED_GAMES); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); } else if (action >= NPC_SPECTATOR_3v3_SOLO_GAMES && action < NPC_SPECTATOR_ACTION_SPECIFIC) { ShowPage(player, action - NPC_SPECTATOR_3v3_SOLO_GAMES, ARENA_TYPE_3v3_SOLO); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Refresh", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_3v3_SOLO_GAMES); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); } else { ObjectGuid guid = ObjectGuid(HIGHGUID_PLAYER, action - NPC_SPECTATOR_ACTION_SELECTED_PLAYER); if (Player* target = ObjectAccessor::FindPlayer(guid)) { ChatHandler handler(player->GetSession()); arena_spectator_commands::HandleSpectateCommand(&handler, target->GetName().c_str()); } } return true; } std::string GetClassNameById(uint8 id) { std::string sClass = ""; switch (id) { case CLASS_WARRIOR: sClass = "Warrior "; break; case CLASS_PALADIN: sClass = "Paladin "; break; case CLASS_HUNTER: sClass = "Hunter "; break; case CLASS_ROGUE: sClass = "Rogue "; break; case CLASS_PRIEST: sClass = "Priest "; break; case CLASS_DEATH_KNIGHT: sClass = "DKnight "; break; case CLASS_SHAMAN: sClass = "Shaman "; break; case CLASS_MAGE: sClass = "Mage "; break; case CLASS_WARLOCK: sClass = "Warlock "; break; case CLASS_DRUID: sClass = "Druid "; break; } return sClass; } std::string GetGamesStringData(Battleground* arena, uint16 mmr, uint16 mmrTwo) { std::string teamsMember[BG_TEAMS_COUNT]; uint32 firstTeamId = 0; for (Battleground::BattlegroundPlayerMap::const_iterator itr = arena->GetPlayers().begin(); itr != arena->GetPlayers().end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(itr->first)) { if (player->IsSpectator()) continue; uint32 team = itr->second.Team; if (!firstTeamId) firstTeamId = team; teamsMember[firstTeamId == team] += GetClassNameById(player->getClass()); } std::string data = teamsMember[0] + " - "; std::stringstream ss; if (arena->IsChallenge()) ss << "(Challenge)"; else if (!arena->isRated()) ss << "(Skirmish)"; else ss << "(MMR: " << mmr << ")"; data += ss.str().c_str(); data += " - " + teamsMember[1]; return data; } ObjectGuid GetFirstPlayerGuid(Battleground* team) { for (Battleground::BattlegroundPlayerMap::const_iterator itr = team->GetPlayers().begin(); itr != team->GetPlayers().end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(itr->first)) return itr->first; return ObjectGuid::Empty; } uint32 CountArenaGames(uint8 arType) { uint16 CountGames = 0; for (uint8 i = BATTLEGROUND_NA; i <= BATTLEGROUND_RV; ++i) { BattlegroundData* arenas = sBattlegroundMgr->GetAllBattlegroundsWithTypeId(BattlegroundTypeId(i)); // Check if (!arenas || arenas->m_Battlegrounds.empty()) continue; for (BattlegroundContainer::const_iterator itr = arenas->m_Battlegrounds.begin(); itr != arenas->m_Battlegrounds.end(); ++itr) { Battleground* arena = itr->second; if (arena->GetArenaType() == arType/* && arena->isRated()*/) { if (!arena->GetPlayersSize()) continue; ++CountGames; return CountGames; } } } return 0; } void ShowPage(Player *player, uint16 page, uint8 uArenaType) { uint16 countArenaGames = 0; bool haveNextPage = false; for (uint8 i = BATTLEGROUND_NA; i <= BATTLEGROUND_RV; ++i) { if (!sBattlegroundMgr->IsArenaType((BattlegroundTypeId)i)) continue; BattlegroundData* arenas = sBattlegroundMgr->GetAllBattlegroundsWithTypeId(BattlegroundTypeId(i)); // Checks if (!arenas || arenas->m_Battlegrounds.empty()) continue; for (BattlegroundContainer::const_iterator itr = arenas->m_Battlegrounds.begin(); itr != arenas->m_Battlegrounds.end(); ++itr) { Battleground* arena = itr->second; if (!arena->GetPlayersSize()) continue; uint16 mmr = arena->GetArenaMatchmakerRatingByIndex(0) + arena->GetArenaMatchmakerRatingByIndex(1); mmr /= 2; if (arena->GetArenaType() == uArenaType/* && arena->isRated()*/) { countArenaGames++; if (countArenaGames > (page + 1) * GamesOnPage) { haveNextPage = true; break; } if (countArenaGames >= page * GamesOnPage) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, GetGamesStringData(arena, mmr, uArenaType), GOSSIP_SENDER_MAIN, NPC_SPECTATOR_ACTION_SELECTED_PLAYER + GetFirstPlayerGuid(arena)); } if (page > 0) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "<- Prev", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_ACTION_SELECTED_PLAYER + GetFirstPlayerGuid(arena) + page - 1); if (haveNextPage) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Next ->", GOSSIP_SENDER_MAIN, NPC_SPECTATOR_ACTION_SELECTED_PLAYER + GetFirstPlayerGuid(arena) + page + 1); } } } bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, const char* code) { if (!player) return true; player->PlayerTalkClass->ClearMenus(); player->CLOSE_GOSSIP_MENU(); if (sender == GOSSIP_SENDER_MAIN) { switch (action) { case NPC_SPECTATOR_ACTION_SPECIFIC: // choosing a player const char* plrName = code; char playerName[50]; strcpy(playerName, plrName); for (int i = 0; i < 13; i++) { if (playerName[i] == NULL) break; if (i == 0 && playerName[i] > 96) playerName[0] -= 32; else if (playerName[i] < 97) playerName[i] += 32; } if (Player* target = sObjectAccessor->FindPlayerByName(playerName)) { ChatHandler handler(player->GetSession()); char const* pTarget = target->GetName().c_str(); arena_spectator_commands::HandleSpectateCommand(&handler, pTarget); } else ChatHandler(player->GetSession()).PSendSysMessage("Player is not online or does not exist."); return true; } } return false; } }; void AddSC_arena_spectator_script() { new arena_spectator_commands(); new npc_arena_spectator(); } Enjoy this Arena Spectator Script
  8. OMGhixD

    Emo Listening Spree

    On a spree! Cool songs
  9. OMGhixD

    Update 06.10.2018

    the issues that were persisting was of wonder to us as well, Extremely weird what went on. But after some arghly-hours we figured out what was actually wrong and was able to correct this. We've noted it down for future reference if this should happen again hehe on top of that, everything should be very accessible now
  10. Well you need profiles in order to use it, Wether you make them or download them is up to you.

Got a suggestion or Feedback for us?

Let us know! We appreciate all form of suggestions & Feedback!

Quick Links

Navigate through our forums with a single click!

Need to contact the Staff?

We offer a way of contacting the Staff 24 hours a day, 7 days a week, 365 days a year!

×