function DoChangeClass(&$db, &$acc, $post) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/Main.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/SQL.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/UserTools.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/VIP_.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/TopLevel.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Language/{$MainLanguage}/UserTools.php"; require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Language/{$MainLanguage}/CreditShop.php"; if (!isset($UserToolsChangeClass) || !$UserToolsChangeClass) { return; } $ConnectStatus = $acc->CheckConnectStatus($acc->memb___id, $db); if ($ConnectStatus == 1) { return $UserToolsMsg51; } if ($acc->{$SQLVIPColumn} < $UserToolsChangeClassMinAL) { return $UserToolsMsg52; } if (!isset($post['char']) || empty($post['char']) || !isset($post['classe'])) { return $UserToolsMsg53 . " #1"; } if ($acc->GetAccountFromCharacter($post['char'], $db) != $acc->memb___id) { return $UserToolsMsg53 . " #2"; } if ($UserToolsChangeClassCurrency > -1) { if (${"UserToolsChangeClassAmountAL" . $acc->{$SQLVIPColumn}} > 0) { $userCredits = $acc->GetCreditAmount($acc->memb___id, $UserToolsChangeClassCurrency, $db); if ($userCredits < ${"UserToolsChangeClassAmountAL" . $acc->{$SQLVIPColumn}}) { $db->Query("SELECT name FROM Z_Currencies WHERE idx = '{$UserToolsResetTransferCurrency}'"); $currency = $db->GetRow(); $currency = $currency[0]; return $UserToolsMsg35 . ${"UserToolsChangeClassAmountAL" . $acc->{$SQLVIPColumn}} . " " . $currency; } } } $db->Query("SELECT Class FROM Character WHERE Name = '" . $post['char'] . "'"); $data = $db->GetRow(); if ($data[0] == $post['classe'] || $data[0] == $post['classe'] + 1 || $data[0] == $post['classe'] + 2) { return $UserToolsMsg54; } $class = $data[0]; if ($UserToolsChangeClassCheckGuild) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "System/Guild.class.php"; $guild = new Guild(); if ($guild->GetCharacterGuild($db, $post['char'])) { return $UserToolsMsg55; } } if ($UserToolsChangeClassCheckItems) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "System/Character.class.php"; $character = new Character(); if (!$character->CheckEmptyInventory($post['char'], $db)) { return $UserToolsMsg56; } } $return = ""; $OriginalClass = $class; $UpClass = 0; while ($OriginalClass % 16 != 0) { $OriginalClass--; $UpClass++; } if ($post['classe'] == 48 || $post['classe'] == 64 || $post['classe'] == 96) { if ($UpClass > 2) { $UpClass = 2; } } $NewClass = $post['classe'] + $UpClass; //Check for wrong class numbers if ($NewClass == 49 || $NewClass == 51 || $NewClass == 65 || $NewClass == 67 || $NewClass == 97 || $NewClass == 99) { $NewClass--; } //Check for new classe values if (isset($UserToolsChangeClassMode) && $UserToolsChangeClassMode == true) { if ($NewClass == 2 || $NewClass == 18 || $NewClass == 34 || $NewClass == 82) { $NewClass++; } } /////////**************************************************** if ($SQLLevelMasterTable != "Character") { $db->Query("DELETE FROM {$SQLLevelMasterTable} WHERE {$SQLNameMasterColumn} = '" . $post['char'] . "'"); } else { $db->Query("UPDATE Character SET {$SQLLevelMasterColumn} = 0 WHERE Name = '" . $post['char'] . "'"); } /*$db->Query("SELECT * FROM DefaultClassType WHERE Class = '$OriginalClass'"); $defaultData = $db->GetRow();*/ /*$db->Query("SELECT COLUMNPROPERTY( OBJECT_ID('dbo.DefaultClassType'),'MagicList','PRECISION'),COLUMNPROPERTY( OBJECT_ID('dbo.DefaultClassType'),'Quest','PRECISION')"); $data = $db->GetRow(); $MagicListSize = $data[0]; if(strlen($defaultData['MagicList']) == $MagicListSize) $NewMagicList = bin2hex($defaultData['MagicList']); else $NewMagicList = $defaultData['MagicList']; $QuestSize = $data[1]; if(strlen($defaultData['Quest']) == $QuestSize) $NewQuest = bin2hex($defaultData['Quest']); else $NewQuest = $defaultData['Quest'];*/ $db->Query("UPDATE Character SET MagicList = (SELECT MagicList FROM DefaultClassType WHERE Class = '{$OriginalClass}'), Class = '{$NewClass}', Quest = (SELECT Quest FROM DefaultClassType WHERE Class = '{$OriginalClass}') WHERE Name = '" . $post['char'] . "'"); $acc->ReduceCredits($acc->memb___id, $UserToolsChangeClassCurrency, ${"UserToolsChangeClassAmountAL" . $acc->{$SQLVIPColumn}}, $db); $db->Query("INSERT INTO Z_ChangeClassLog ([memb___id],[char],[fromClass],[toClass]) VALUES ('{$acc->memb___id}','" . $post['char'] . "','{$class}','{$NewClass}')"); $return = $UserToolsMsg57; return $return; }