function GetExtraSpellForSkill($skill, $cur, $char_guid, $connection) { switch ($skill) { case 393: // Skinning switch (_CheckSkillLevel($cur)) { case 75: return 53125; case 150: return 53662; case 225: return 53663; case 300: return 53664; case 375: return 53665; case 450: return 53666; default: return -1; } case 182: // Herbalism LearnSeparateSpell(2383, $char_guid, $connection); switch (_CheckSkillLevel($cur)) { case 75: return 55428; case 150: return 55480; case 225: return 55500; case 300: return 55501; case 375: return 55502; case 450: return 55503; default: return -1; } case 186: // Mining LearnSeparateSpell(2656, $char_guid, $connection); LearnSeparateSpell(2580, $char_guid, $connection); switch (_CheckSkillLevel($cur)) { case 75: return 53120; case 150: return 53121; case 225: return 53122; case 300: return 53123; case 375: return 53124; case 450: return 53040; default: return -1; } case 185: // Cooking return 818; case 333: // Enchanting return 13262; case 755: // Jewelcrafting return 31252; case 773: // Inscription return 51005; } }
$QUERYFOREXECUTE = $QUERYFOREXECUTE . "\n INSERT IGNORE /* REPUTATION */ INTO `character_reputation` VALUES (" . $GUID . ", " . $faction . ", " . (int) $reputation . "," . (int) $flag . ");"; } foreach ($json['skills'] as $key => $value) { $SkillName = mb_strtoupper($value['N'], 'UTF-8'); if (_CheckRiding($SkillName, $value['C'], $connection, $GUID, $CharLevel)) { continue; } $SkillID = GetSkillID($SkillName, $locale); if ($SkillID < 1) { continue; } $max = _MaxValue(RemoveRaceBonus($RaceID, $SkillID, $value['M']), 450); $cur = _MaxValue(RemoveRaceBonus($RaceID, $SkillID, $value['C']), 450); $SpellID = GetSpellIDForSkill($SkillID, $max); if (CheckExtraSpell($SkillID)) { LearnSeparateSpell(GetExtraSpellForSkill($SkillID, $cur, $GUID, $connection), $GUID, $connection); } $QUERYFOREXECUTE = $QUERYFOREXECUTE . "\n INSERT IGNORE /* SKILL */ INTO `character_skills` VALUES (" . $GUID . ", " . (int) $SkillID . "," . (int) $cur . "," . (int) $max . ");"; if ($SpellID < 3) { continue; } $QUERYFOREXECUTE = $QUERYFOREXECUTE . "\n INSERT IGNORE /* SPELL FOR SKILL */ INTO `character_spell` VALUES (" . $GUID . ", " . (int) $SpellID . ", 1, 0);"; } foreach ($json['spells'] as $SpellID => $value) { if (_isSpellValid($SpellID, $ClassID)) { $QUERYFOREXECUTE = $QUERYFOREXECUTE . "\n INSERT IGNORE /* NOT MOUNT OR CRITTER */ INTO `character_spell` VALUES (" . $GUID . ", " . (int) $SpellID . ", 1, 0);"; } } foreach ($json['creature'] as $key => $SpellID) { $QUERYFOREXECUTE = $QUERYFOREXECUTE . "\n INSERT IGNORE /* MOUNT OR CRITTER */ INTO `character_spell` VALUES (" . $GUID . ", " . (int) $SpellID . ", 1, 0);"; }
function _CheckRiding($SKILL, $CUR, $connection, $GUID, $LEVEL) { $SpellID = -1; switch ($SKILL) { case "RIDING": // enGB // enGB case "MONTE": // frFR // frFR case "REITEN": // deDE // deDE case "EQUITACIÓN": // esES // esES case "ВЕРХОВАЯ ЕЗДА": // ruRU switch ($CUR) { case 75: $SpellID = 33388; break; case 150: $SpellID = 33391; break; case 225: $SpellID = 34090; break; case 300: $SpellID = 34091; if ($LEVEL == 80) { LearnSeparateSpell(54197, $GUID, $connection); } break; default: return false; } LearnSeparateSpell($SpellID, $GUID, $connection); return true; default: return false; } }