* @author Slawkens * @copyright 2017 MyAAC * @version 0.4.1 * @link http://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); $title = "Creatures"; $rarity = array( 'Not Rare' => 7, 'Semi Rare' => 2, 'Rare' => 0.5, 'Very Rare' => 0 ); function addLoot($loot, $level=1) { foreach($loot as $test) { $chance = $test['chance']; if(!$chance) $chance = $test['chance1']; printLoot($level, $test['id'], $test['countmax'], $chance); foreach($test as $k => $v) addLoot($v->item, $level + 1); } } $i = 0; function printLoot($level, $itemid, $count, $chance) { global $itemList, $rarity, $i; $chance /= 1000; if(isset($_GET['lootrate'])) { global $lootRate; $chance *= $lootRate; } foreach($rarity as $lootRarity => $percent){ if($chance >= $percent) { //echo str_repeat("... ", $level) . '' . ($count ? $count : 1) . ' ' . $itemList[(int)$itemid] . ' ' . $itemid . ' ' . $lootRarity . ' (' . $chance . '%)
'; if($i % 6 == 0) { if($i != 0) echo ''; echo ''; } echo getItemImage($itemid); $i++; break; } } } $canEdit = hasFlag(FLAG_CONTENT_MONSTERS) || admin(); if(isset($_POST['reload_monsters']) && $canEdit) { try { $db->query("DELETE FROM myaac_monsters WHERE 1 = 1"); } catch(PDOException $error) {} echo '

Reload monsters.

'; echo '

All records deleted from table \'myaac_monsters\' in database.

'; $allmonsters = new OTS_MonstersList($config['data_path'].'monster/'); //$names_added must be an array $names_added[] = ''; //add monsters foreach($allmonsters as $lol) { $monster = $allmonsters->current(); if(!$monster->loaded()) { warning('Error while adding monster: ' . $allmonsters->currentFile()); continue; } //load monster mana needed to summon/convince $mana = $monster->getManaCost(); //load monster experience $exp = $monster->getExperience(); //load monster name $name = $monster->getName(); //load monster health $health = $monster->getHealth(); //load monster speed and calculate "speed level" $speed_ini = $monster->getSpeed(); if($speed_ini <= 220) { $speed_lvl = 1; } else { $speed_lvl = ($speed_ini - 220) / 2; } //check "is monster use haste spell" $defenses = $monster->getDefenses(); $use_haste = 0; foreach($defenses as $defense) { if($defense == 'speed') { $use_haste = 1; } } //load monster flags $flags = $monster->getFlags(); //create string with immunities $immunities = $monster->getImmunities(); $imu_nr = 0; $imu_count = count($immunities); $immunities_string = ''; foreach($immunities as $immunitie) { $immunities_string .= $immunitie; $imu_nr++; if($imu_count != $imu_nr) { $immunities_string .= ", "; } } //create string with voices $voices = $monster->getVoices(); $voice_nr = 0; $voice_count = count($voices); $voices_string = ''; foreach($voices as $voice) { $voices_string .= '"'.$voice.'"'; $voice_nr++; if($voice_count != $voice_nr) { $voices_string .= ", "; } } //load race $race = $monster->getRace(); //create monster gfx name //$gfx_name = str_replace(" ", "", trim(mb_strtolower($name))).".gif"; $gfx_name = trim(mb_strtolower($name)).".gif"; //don't add 2 monsters with same name, like Butterfly if(!isset($flags['summonable'])) $flags['summonable'] = '0'; if(!isset($flags['convinceable'])) $flags['convinceable'] = '0'; if(!in_array($name, $names_added)) { try { $db->query("INSERT INTO `myaac_monsters` (`hide_creature`, `name`, `mana`, `exp`, `health`, `speed_lvl`, `use_haste`, `voices`, `immunities`, `summonable`, `convinceable`, `race`, `gfx_name`, `file_path`) VALUES (0, " . $db->quote($name) . ", " . $db->quote(empty($mana) ? 0 : $mana) . ", " . $db->quote($exp) . ", " . $db->quote($health) . ", " . $db->quote($speed_lvl) . ", " . $db->quote($use_haste) . ", " . $db->quote($voices_string) . ", " . $db->quote($immunities_string) . ", " . $db->quote($flags['summonable'] > 0 ? 1 : 0) . ", " . $db->quote($flags['convinceable'] > 0 ? 1 : 0) . ", ".$db->quote($race).", ".$db->quote($gfx_name).", " . $db->quote($allmonsters->currentFile()) . ")"); success("Added: ".$name."
"); } catch(PDOException $error) { warning('Error while adding monster (' . $name . '): ' . $error->getMessage()); } $names_added[] = $name; } } } if($canEdit) { ?>
query('SELECT * FROM '.$db->tableName(TABLE_PREFIX . 'monsters').' WHERE hide_creature != 1'.$whereandorder); echo ''; if($order == 'name' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } if($order == 'health' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } if($order == 'exp' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } if($order == 'summonable' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } if($order == 'convinceable' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } if($order == 'race' && !isset($_REQUEST['desc'])) { echo ''; } else { echo ''; } $number_of_rows = 0; foreach($monsters as $monster) { echo ''; if($monster['summonable']) { echo ''; } else { echo ''; } if($monster['convinceable']) { echo ''; } else { echo ''; } echo ''; } echo '
Name DESCNameHealth
DESC
HealthExperience
DESC
ExperienceSummonable
Mana DESC
Summonable
Mana
Convinceable
Mana DESC
Convinceable
Mana
Race
DESC
Race
'.$monster['name'].''.$monster['health'].''.$monster['exp'].''.$monster['mana'].'---'.$monster['mana'].'---'.ucwords($monster['race']).'
'; return; } $monster_name = stripslashes(trim(ucwords($_REQUEST['creature']))); $monster = $db->query('SELECT * FROM '.$db->tableName(TABLE_PREFIX . 'monsters').' WHERE '.$db->fieldName('hide_creature').' != 1 AND '.$db->fieldName('name').' = '.$db->quote($monster_name).';')->fetch(); if(isset($monster['name'])) { $title = $monster['name'] . " - Creatures"; echo '

'.$monster['name'].'

'; echo ''; echo '
'; $number_of_rows = 0; echo ''; $number_of_rows++; echo ''; $number_of_rows++; echo ''; $number_of_rows++; if($monster['summonable'] == 1) echo ''; else { echo ''; } $number_of_rows++; if($monster['convinceable'] == 1) echo ''; else echo ''; echo '
Health: '.$monster['health'].'
Experience: '.$monster['exp'].'
Speed like: '.$monster['speed_lvl'].' level'; $number_of_rows++; if($monster['use_haste']) echo ' (Can use haste)'; echo '
Summon: '.$monster['mana'].' mana
Summon: Impossible
Convince: '.$monster['mana'].' mana
Convince: Impossible
'; if(!file_exists('images/monsters/'.$monster['gfx_name'])) { $gfx_name = str_replace(" ", "", $monster['gfx_name']); if(file_exists('images/monsters/' . $gfx_name)) echo ''; else echo ''; } else echo ''; echo '
'; if(!empty($monster['immunities'])) { $number_of_rows++; echo ''; } if(!empty($monster['voices'])) { $number_of_rows++; echo ''; } echo '
Immunities: '.$monster['immunities'].'
Voices: '.$monster['voices'].'
'; $loot = simplexml_load_file($config['data_path'] . 'monster/' . $monster['file_path']); if($loot) { if($item = $loot->loot->item) addLoot($item); } echo '
'; echo ''; } else { echo 'Monster with name '.$monster_name.' doesn\'t exist.'; } //back button echo '

'; ?>