function load_talents() { global $mysql, $config; $this->talentSpec[0]['name'] = 'untalented'; $this->talentSpec[0]['nr'] = false; $this->talentSpec[1]['name'] = 'untalented'; $this->talentSpec[1]['nr'] = false; $max = array(0, 0); $specs = $mysql->getRows("SELECT id,name FROM `talenttab` WHERE `refmask_chrclasses` = '?1' order by tab_number", pow(2, $this->class - 1), 'armory'); for ($spcN = 0; $spcN < 2; $spcN++) { $talentLink = ''; if ($config['mangos_version'] !== 0) { $spells = $mysql->getRows("SELECT `spell`,`spec` FROM `character_talent` WHERE `guid` = '?1' AND `spec` = ?2", $this->guid, $spcN, 'char'); } else { if ($spcN == 0) { $spells = $mysql->getRows("SELECT `spell`, '0' as `spec` FROM `character_spell` WHERE `guid` = '?1'", $this->guid, 'char'); } } for ($i = 0; $i < 3; $i++) { $c = 0; $spec = $specs[$i]; $talents = $mysql->getRows("SELECT rank1, rank2, rank3, rank4, rank5 FROM `talent` WHERE `ref_tab` = '?1' order by row,col", $spec['id'], 'armory'); foreach ($talents as $key => $value) { $ids .= $value['rank1'] . ','; } if ($spells) { foreach ($spells as $k => $v) { $spell_ids .= $v['spell'] . ','; } } $r = $mysql->getRows("SELECT id,SpellName FROM `spell` WHERE `id` IN (?1-1)", $ids . $spell_ids, 'armory'); foreach ($r as $row) { $SpellNames .= "'" . addslashes($row['SpellName']) . '\','; $NameToId[arrayName($row['SpellName'])] = $row['id']; } $r = $mysql->getRows("SELECT id,SpellName,Rank FROM `spell` WHERE Rank LIKE 'Rank %' and `SpellName` IN (?1)", substr($SpellNames, 0, -1), 'armory'); //die($mysql->Query); if ($r) { foreach ($r as $row) { $Ranks[$NameToId[arrayName($row['SpellName'])]][3] = $row['SpellName']; if ($row['Rank'] == 'Rank 1') { $Ranks[$NameToId[arrayName($row['SpellName'])]][0] = $row['id']; } else { $row['Rank'] = explode(' ', $row['Rank']); $row['Rank'] = $row['Rank'][1]; if ($row['Rank'] > $Ranks[$NameToId[arrayName($row['SpellName'])]][2]) { $Ranks[$NameToId[arrayName($row['SpellName'])]][2] = $row['Rank']; $Ranks[$NameToId[arrayName($row['SpellName'])]][1] = $row['id']; } } } } if ($spells) { foreach ($talents as $key => $value) { $add = '0'; $c = 0; $rank_1 = $Ranks[$value['rank1']][1]; $crr = $value['rank1']; foreach ($spells as $k => $v) { if (in_array($v['spell'], $value)) { switch (array_search($v['spell'], $value)) { case "rank1": $c = 1; $add = '1'; break; case "rank2": $c = 2; $add = '2'; break; case "rank3": $c = 3; $add = '3'; break; case "rank4": $c = 4; $add = '4'; break; case "rank5": $c = 5; $add = '5'; break; } $crr = $value['rank' . $add]; } else { if (in_array($Ranks[$v['spell']][0], $value)) { $c = 1; $add = '1'; $crr = $v['spell']; $rank_1 = $Ranks[$v['spell']][1]; } } } $talentList .= $crr . ','; $baseList[$crr] = array($rank_1, $value['rank1']); // Potrzebujemy tablice ID pierwszych rankow. $talentLink .= $add; $this->talentCount[$spcN][$i] += $c; } } if ($this->talentCount[$spcN][$i] > $max[$spcN]) { $this->talentSpec[$spcN]['name'] = $spec['name']; $this->talentSpec[$spcN]['nr'] = $i + 1; $max[$spcN] = $this->talentCount[$spcN][$i]; } } $this->talentLink[$spcN] = $talentLink; $tb = $this->talentCount[$spcN]; $max = array_keys($tb, max($tb)); $tb[$max[0]] = -1; $secMax = array_keys($tb, max($tb)); if ($this->talentCount[$spcN][$secMax[0]] > 0 && $this->talentCount[$spcN][$max[0]] / $this->talentCount[$spcN][$secMax[0]] < 1.4) { $this->talentSpec[$spcN]['name'] = 'Hybrid'; $this->talentSpec[$spcN]['nr'] = -1; } } //$this->load_talent_info($talentList, $baseList); This info is now generated in class.talent.php }
function load_talents() { global $mysql, $config; $talentLink = ''; $this->talentSpec['name'] = 'untalented'; $this->talentSpec['nr'] = false; $max = 0; $specs = $mysql->getRows("SELECT id,name FROM `talenttab` WHERE `refmask_chrclasses` = '?1' order by tab_number", pow(2, $this->class - 1), 'armory'); $spells = $mysql->getRows("SELECT `spell` FROM `character_spell` WHERE `guid` = '?1' AND `disabled` = '0'", $this->guid, 'char'); for ($i = 0; $i < 3; $i++) { $c = 0; $spec = $specs[$i]; $talents = $mysql->getRows("SELECT rank1, rank2, rank3, rank4, rank5 FROM `talent` WHERE `ref_tab` = '?1' order by row,col", $spec['id'], 'armory'); foreach ($talents as $key => $value) { $ids .= $value['rank1'] . ','; } if ($spells) { foreach ($spells as $k => $v) { $spell_ids .= $v['spell'] . ','; } } $r = $mysql->getRows("SELECT id,SpellName FROM `spell` WHERE `id` IN (?1-1)", $ids . $spell_ids, 'armory'); foreach ($r as $row) { $SpellNames .= "'" . addslashes($row['SpellName']) . '\','; $NameToId[arrayName($row['SpellName'])] = $row['id']; } $r = $mysql->getRows("SELECT id,SpellName,Rank FROM `spell` WHERE Rank LIKE 'Rank %' and `SpellName` IN (?1)", substr($SpellNames, 0, -1), 'armory'); //die($mysql->Query); if ($r) { foreach ($r as $row) { $Ranks[$NameToId[arrayName($row['SpellName'])]][3] = $row['SpellName']; if ($row['Rank'] == 'Rank 1') { $Ranks[$NameToId[arrayName($row['SpellName'])]][0] = $row['id']; } else { $row['Rank'] = explode(' ', $row['Rank']); $row['Rank'] = $row['Rank'][1]; if ($row['Rank'] > $Ranks[$NameToId[arrayName($row['SpellName'])]][2]) { $Ranks[$NameToId[arrayName($row['SpellName'])]][2] = $row['Rank']; $Ranks[$NameToId[arrayName($row['SpellName'])]][1] = $row['id']; } } } } if ($spells) { foreach ($talents as $key => $value) { $add = '0'; $rank_1 = $Ranks[$value['rank1']][1]; $crr = $value['rank1']; foreach ($spells as $k => $v) { if (in_array($v['spell'], $value)) { switch (array_search($v['spell'], $value)) { case "rank1": $c += 1; $add = '1'; break; case "rank2": $c += 2; $add = '2'; break; case "rank3": $c += 3; $add = '3'; break; case "rank4": $c += 4; $add = '4'; break; case "rank5": $c += 5; $add = '5'; break; } $crr = $value['rank' . $add]; } else { if (in_array($Ranks[$v['spell']][0], $value)) { $c += 1; $add = '1'; $crr = $v['spell']; $rank_1 = $Ranks[$v['spell']][1]; } } } $talentList .= $crr . ','; // Najwyzszy rank lub pierwszy jesli nie istnieje. $baseList[$crr] = array($rank_1, $value['rank1']); // Potrzebujemy tablice ID pierwszych rankow. $talentLink .= $add; } } //die($talentList); $this->talentCount[$i] = $c; if ($this->talentCount[$i] > $max) { $this->talentSpec['name'] = $spec['name']; $this->talentSpec['nr'] = $i + 1; $max = $this->talentCount[$i]; } } $this->talentLink = $talentLink; $this->load_talent_info($talentList, $baseList); //die($this->talentLink); }