diff --git a/control/config.txt b/control/config.txt index 04775eaf47..1e8caabbeb 100644 --- a/control/config.txt +++ b/control/config.txt @@ -1051,7 +1051,14 @@ logToFile_Messages logToFile_Warnings history_max 50 -avoidObstacles_enable_move 0 +# Plugins + +eventMacro_orphans terminate +eventMacro_CheckOnAI auto +eventMacro_notWhenInQueue storageAuto, buyAuto, sellAuto +eventMacro_file eventMacros.txt + +avoidObstacles_enable_move 1 avoidObstacles_enable_remove 1 avoidObstacles_enable_avoid_portals 1 avoidObstacles_adjust_route_step 1 @@ -1066,13 +1073,4 @@ avoidObstaclesDefaultPortals { drop_destination_when_near_dist 3 } -avoidObstaclesMonster 1368 { - enabled 1 - penalty_dist 20000, 20000, 20000, 20000, 30, 7 - danger_dist 10, 10, 10, 10, 1 - prohibited_dist -1 - drop_target_when_near_dist 4 - drop_destination_when_near_dist 4 -} - diff --git a/control/priority.txt b/control/priority.txt index c8f0b0043b..f0f7998a3b 100644 --- a/control/priority.txt +++ b/control/priority.txt @@ -6,8 +6,10 @@ # by both Obeaunes and Hydras, you'll attack Hydras first. Obeaunes have # more priority than all monsters not listed in this file, so you'll # attack Obeaunes first if you get mobbed by Obeaunes and something other -# than Hydras. +# than Hydras. all is the default monster not listed on this file. +# Monsters listed bellow all will have less priority than a non-listed mob # # Example (remove the comment character to activate them): #Hydra #Obeaune +#all \ No newline at end of file diff --git a/plugins/avoidAssisters/avoidAssisters.pl b/plugins/avoidAssisters/avoidAssisters.pl index d36800af08..473195ce0f 100644 --- a/plugins/avoidAssisters/avoidAssisters.pl +++ b/plugins/avoidAssisters/avoidAssisters.pl @@ -16,6 +16,9 @@ # How to configure it: # Add blocks in config.txt using one or more # `maxAssistersBellowDistAllowed ` lines. +# When you need multiple entries in the same block and your parser flattens +# duplicate keys, use numbered keys (for example +# `maxAssistersBellowDistAllowed_0` and `maxAssistersBellowDistAllowed_1`). # # Per-target assister check: # avoidAssisters 1096 { @@ -200,7 +203,6 @@ package avoidAssisters; use strict; use Time::HiRes qw(time); use Globals; -use Settings; use Misc; use Plugins; use Utils; @@ -260,74 +262,11 @@ sub reload_config { undef @avoidAssisters_mobs; undef %avoidAssisters_rules_by_target_nameID; undef @avoidGlobalAssisters_mobs; - my $parsed_blocks = read_avoid_assisters_blocks_from_config_file(); - parse_avoidAssisters($parsed_blocks->{avoidAssisters}); - parse_avoidGlobalAssisters($parsed_blocks->{avoidGlobalAssisters}); + parse_avoidAssisters(); + parse_avoidGlobalAssisters(); rebuild_visible_monster_count_cache(); } -## Purpose: Reads avoidAssisters blocks directly from the current config file. -## Args: none. -## Returns: A hashref with `avoidAssisters` and `avoidGlobalAssisters` block arrays. -## Notes: This parser exists so the plugin can support repeated keys inside one -## config block, such as multiple `maxAssistersBellowDistAllowed` entries. -sub read_avoid_assisters_blocks_from_config_file { - my %blocks = ( - avoidAssisters => [], - avoidGlobalAssisters => [], - ); - - my $filename = Settings::getConfigFilename(); - return \%blocks unless defined $filename && $filename ne '' && -f $filename; - - open my $fh, '<:utf8', $filename or do { - warning "[avoidAssisters] Unable to open config file '$filename' for parsing: $!\n"; - return \%blocks; - }; - - my $current_block; - my $block_index = 0; - my $line_number = 0; - while (my $line = <$fh>) { - $line_number++; - chomp $line; - $line =~ s/\r$//; - $line =~ s/\s+#.*$//; - next if $line =~ /^\s*$/; - - if (!$current_block) { - if ($line =~ /^\s*(avoidAssisters|avoidGlobalAssisters)(?:\s+([^\{]+?))?\s*\{\s*$/) { - $current_block = { - type => $1, - identifier_raw => defined $2 ? $2 : '', - attributes => [], - index => $block_index++, - line => $line_number, - }; - } - next; - } - - if ($line =~ /^\s*\}\s*$/) { - push @{ $blocks{$current_block->{type}} }, $current_block; - undef $current_block; - next; - } - - if ($line =~ /^\s*([A-Za-z_]\w*)(?:\s+(.*?))?\s*$/) { - push @{ $current_block->{attributes} }, { - key => $1, - value => defined $2 ? $2 : '', - line => $line_number, - }; - next; - } - } - - close $fh; - return \%blocks; -} - ## Purpose: Normalizes one numeric assister config value. ## Args: `($value, $config_key)` where `$value` is the raw config scalar and ## `$config_key` is the source key name used in warning output. @@ -364,8 +303,8 @@ sub on_packet_mapChange { ## bulk updates to `onpost_bulkConfigModify`. sub onpost_configModify { my (undef, $args) = @_; - return if $args && $args->{bulk}; - return if $args && !is_plugin_config_key($args->{key}); + return unless $args && is_plugin_config_key($args->{key}); + return if $args->{bulk}; reload_config(); } @@ -410,26 +349,23 @@ sub bulk_includes_plugin_config_keys { } -## Purpose: Parses all per-target avoidAssisters rules from config.txt. -## Args: `($blocks)` where `$blocks` is the parsed avoidAssisters block arrayref. +## Purpose: Parses all per-target avoidAssisters rules from `%config`. +## Args: none. ## Returns: nothing. ## Notes: Each block expands into one or more normalized rules and fills both the ## flat rule list and a per-target lookup table so runtime checks can grab ## matching rules in O(1). sub parse_avoidAssisters { - my ($blocks) = @_; - return unless $blocks; - - foreach my $block (@{$blocks}) { - my $target_id = get_assister_block_target_id($block); + foreach my $block_key (@{ get_assister_block_keys_from_config('avoidAssisters') }) { + my $target_id = normalize_assister_numeric_config_value($config{$block_key}, $block_key); next unless defined $target_id; - foreach my $rule_data (@{ expand_assister_block_rules($block) }) { + foreach my $rule_data (@{ collect_assister_rules_from_config_block($block_key) }) { my %mobAvoid = ( id => $target_id, checkRange => $rule_data->{checkRange}, maxMobsInRange => $rule_data->{maxMobsInRange}, - blockKey => get_assister_block_display_key($block), + blockKey => $block_key, blockValue => $target_id, ruleScope => 'avoidAssisters', ruleKey => $rule_data->{ruleKey}, @@ -442,25 +378,22 @@ sub parse_avoidAssisters { } } -## Purpose: Parses all global assister rules from config.txt. -## Args: `($blocks)` where `$blocks` is the parsed avoidGlobalAssisters block arrayref. +## Purpose: Parses all global assister rules from `%config`. +## Args: none. ## Returns: nothing. ## Notes: These rules apply to any target and may expand one config block into ## several normalized assister thresholds. sub parse_avoidGlobalAssisters { - my ($blocks) = @_; - return unless $blocks; - - foreach my $block (@{$blocks}) { - my $assister_id = get_assister_block_target_id($block); + foreach my $block_key (@{ get_assister_block_keys_from_config('avoidGlobalAssisters') }) { + my $assister_id = normalize_assister_numeric_config_value($config{$block_key}, $block_key); next unless defined $assister_id; - foreach my $rule_data (@{ expand_assister_block_rules($block) }) { + foreach my $rule_data (@{ collect_assister_rules_from_config_block($block_key) }) { my %mobAvoid = ( id => $assister_id, checkRange => $rule_data->{checkRange}, maxMobsInRange => $rule_data->{maxMobsInRange}, - blockKey => get_assister_block_display_key($block), + blockKey => $block_key, blockValue => $assister_id, ruleScope => 'avoidGlobalAssisters', ruleKey => $rule_data->{ruleKey}, @@ -472,82 +405,83 @@ sub parse_avoidGlobalAssisters { } } -## Purpose: Builds a readable identifier for one parsed config block. -## Args: `($block)` where `$block` is the parsed block hashref. -## Returns: A readable block identifier string. -## Notes: This keeps dumps and warnings stable even when one block expands into -## multiple normalized rules. -sub get_assister_block_display_key { - my ($block) = @_; - return 'unknownBlock' unless $block; - return sprintf('%s[%d]', $block->{type}, $block->{index}); +## Purpose: Lists configured block keys for one assister block prefix. +## Args: `($prefix)` where `$prefix` is `avoidAssisters` or `avoidGlobalAssisters`. +## Returns: Arrayref of matching `%config` block keys. +## Notes: Parsing from `%config` keeps behavior aligned with OpenKore runtime +## config state and avoids direct file parsing. +sub get_assister_block_keys_from_config { + my ($prefix) = @_; + return [] unless defined $prefix && $prefix ne ''; + + my @block_keys = grep { $_ =~ /^\Q$prefix\E_\d+$/ } sort keys %config; + return \@block_keys; } -## Purpose: Resolves the target or assister mob ID for one config block. -## Args: `($block)` where `$block` is the parsed block hashref. -## Returns: The normalized numeric mob ID, or `undef` when missing. -## Notes: The block header value is preferred, but legacy inner `id` entries are -## still accepted for backward compatibility. -sub get_assister_block_target_id { - my ($block) = @_; - return unless $block; - - my $raw_identifier = $block->{identifier_raw}; - if ((!defined $raw_identifier || $raw_identifier eq '') && $block->{attributes}) { - foreach my $attribute (@{ $block->{attributes} }) { - next unless $attribute->{key} eq 'id'; - $raw_identifier = $attribute->{value}; - last; - } +## Purpose: Lists raw merged-rule config keys for one assister block. +## Args: `($block_key)` where `$block_key` is a flattened `%config` block key. +## Returns: Arrayref of raw rule config keys for that block. +## Notes: Supports both `Bellow` and `Below` spellings and numbered variants such +## as `_0`, `_1` for multiple rules in a single block. +sub get_assister_rule_config_keys_from_block { + my ($block_key) = @_; + return [] unless defined $block_key && $block_key ne ''; + + my @rule_keys; + foreach my $rule_name (qw(maxAssistersBellowDistAllowed maxAssistersBelowDistAllowed)) { + my $base_key = "${block_key}_${rule_name}"; + push @rule_keys, $base_key if exists $config{$base_key}; + + my @indexed_keys = sort { + my ($a_index) = $a =~ /_(\d+)$/; + my ($b_index) = $b =~ /_(\d+)$/; + ($a_index <=> $b_index) || ($a cmp $b); + } grep { $_ =~ /^\Q$base_key\E_\d+$/ } keys %config; + push @rule_keys, @indexed_keys; } - my $config_key = get_assister_block_display_key($block) . '.id'; - return normalize_assister_numeric_config_value($raw_identifier, $config_key); + return \@rule_keys; } -## Purpose: Expands one parsed config block into normalized range/threshold rules. -## Args: `($block)` where `$block` is the parsed block hashref. -## Returns: An arrayref of normalized rule hashes. -## Notes: This supports repeated `maxAssistersBellowDistAllowed ` -## lines and rejects blocks that do not use the merged syntax. -sub expand_assister_block_rules { - my ($block) = @_; - return [] unless $block; +## Purpose: Expands one `%config` assister block into normalized rule hashes. +## Args: `($block_key)` where `$block_key` is the flattened config block name. +## Returns: Arrayref of normalized rule hashes. +## Notes: Blocks without merged-rule entries are ignored with a warning. +sub collect_assister_rules_from_config_block { + my ($block_key) = @_; + return [] unless defined $block_key && $block_key ne ''; my @rules; - my @merged_attrs = grep { - $_->{key} eq 'maxAssistersBellowDistAllowed' || $_->{key} eq 'maxAssistersBelowDistAllowed' - } @{ $block->{attributes} || [] }; - - if (@merged_attrs) { - my $merged_index = 0; - foreach my $attribute (@merged_attrs) { - my ($check_range_raw, $max_allowed_raw) = ($attribute->{value} || '') =~ /^\s*(-?\d+)\s+(-?\d+)\s*$/; - unless (defined $check_range_raw && defined $max_allowed_raw) { - warning "[avoidAssisters] Ignoring invalid $attribute->{key} value '$attribute->{value}' in " . get_assister_block_display_key($block) . ". Expected ' '.\n"; - $merged_index++; - next; - } + foreach my $rule_config_key (@{ get_assister_rule_config_keys_from_block($block_key) }) { + my $raw_value = $config{$rule_config_key}; + next unless defined $raw_value && $raw_value ne ''; - my $rule_config_key_prefix = get_assister_block_display_key($block) . "." . $attribute->{key} . "[$merged_index]"; - my $check_range = normalize_assister_numeric_config_value($check_range_raw, $rule_config_key_prefix . ".checkRange"); - my $max_mobs_in_range = normalize_assister_numeric_config_value($max_allowed_raw, $rule_config_key_prefix . ".maxMobsInRange"); - if (defined $check_range && defined $max_mobs_in_range) { - push @rules, { - checkRange => $check_range, - maxMobsInRange => $max_mobs_in_range, - ruleKey => $attribute->{key} . "[$merged_index]", - ruleValue => $attribute->{value}, - }; - } - $merged_index++; + my ($check_range_raw, $max_allowed_raw) = $raw_value =~ /^\s*(-?\d+)\s+(-?\d+)\s*$/; + unless (defined $check_range_raw && defined $max_allowed_raw) { + warning "[avoidAssisters] Ignoring invalid $rule_config_key value '$raw_value'. Expected ' '.\n"; + next; } - return \@rules; + my $check_range = normalize_assister_numeric_config_value($check_range_raw, "${rule_config_key}.checkRange"); + my $max_mobs_in_range = normalize_assister_numeric_config_value($max_allowed_raw, "${rule_config_key}.maxMobsInRange"); + next unless defined $check_range && defined $max_mobs_in_range; + + my $rule_key = $rule_config_key; + $rule_key =~ s/^\Q${block_key}_\E//; + push @rules, { + checkRange => $check_range, + maxMobsInRange => $max_mobs_in_range, + ruleKey => $rule_key, + ruleValue => $raw_value, + }; + } + + if (!@rules) { + warning "[avoidAssisters] Ignoring $block_key because it has no maxAssistersBellowDistAllowed entries.\n"; + return []; } - warning "[avoidAssisters] Ignoring " . get_assister_block_display_key($block) . " because it has no maxAssistersBellowDistAllowed entries.\n"; - return []; + return \@rules; } ## Purpose: Clears the visible-monster caches for counts and buckets. @@ -940,7 +874,7 @@ sub should_drop_target_from_assisters { clear_engaged_drop_confirmation($target); start_assister_drop_release_cooldown($target) unless $is_dropped; - warning "[avoidAssisters] [$hook] $drop_string target $target (binID: " . format_avoid_assisters_dump_value($target->{binID}) . ", nameID: " . format_avoid_assisters_dump_value($target->{nameID}) . ") " . join(' ALSO ', map { format_assister_drop_reason_message($target, $_) } @drop_infos) . "\n" if !$is_dropped; + debug "[avoidAssisters] [$hook] $drop_string target $target (binID: " . format_avoid_assisters_dump_value($target->{binID}) . ", nameID: " . format_avoid_assisters_dump_value($target->{nameID}) . ") " . join(' ALSO ', map { format_assister_drop_reason_message($target, $_) } @drop_infos) . "\n" if !$is_dropped; $target->{attackFailedAssisters} = 1; return 1; } @@ -950,7 +884,7 @@ sub should_drop_target_from_assisters { if ($is_dropped) { my ($can_release, $monster_dist, $max_dist_to_release, $required_check_range) = can_release_target_from_assisters($target, \@target_positions); if ($can_release) { - warning "[avoidAssisters] [$hook] Releasing nearby ($monster_dist <= $max_dist_to_release) target $target from block, it no longer meets blocking criteria and we are close enough to fully see its assister range ($required_check_range).\n"; + debug "[avoidAssisters] [$hook] Releasing nearby ($monster_dist <= $max_dist_to_release) target $target from block, it no longer meets blocking criteria and we are close enough to fully see its assister range ($required_check_range).\n"; $target->{attackFailedAssisters} = 0; clear_engaged_drop_confirmation($target); clear_assister_drop_release_cooldown($target); diff --git a/plugins/checkAggressive/checkAggressive.pl b/plugins/checkAggressive/checkAggressive.pl index f03c7915d8..3901c76cc1 100644 --- a/plugins/checkAggressive/checkAggressive.pl +++ b/plugins/checkAggressive/checkAggressive.pl @@ -42,6 +42,7 @@ package checkAggressive; use Plugins; use Globals; use Log qw(message error debug warning); +use Utils qw(calcPosition calcPosFromPathfinding blockDistance getVector vectorToDegree); Plugins::register('checkAggressive', 'checkAggressive', \&Unload, \&Unload); @@ -79,29 +80,133 @@ sub is_monster_ai_aggressive { return ($mode_value & 0x4) ? 1 : 0; } +sub is_monster_engaged_with_us { + my ($monster) = @_; + + return ($monster->{sentAttack} || $monster->{engaged}) ? 1 : 0; +} + +sub is_looking_at_actor { + my ($monster, $actor) = @_; + + return unless ($monster && $actor); + return unless defined $monster->{look}{body}; + + my $monster_pos = calcPosFromPathfinding($field, $monster); + my $actor_pos = calcPosFromPathfinding($field, $actor); + return unless ($monster_pos && $actor_pos); + + return 1 if ($monster_pos->{x} == $actor_pos->{x} && $monster_pos->{y} == $actor_pos->{y}); + + my %vec; + getVector(\%vec, $actor_pos, $monster_pos); + my $degree = vectorToDegree(\%vec); + return unless defined $degree; + + my $target_body = int(sprintf("%.0f", (360 - $degree) / 45)) % 8; + return $monster->{look}{body} == $target_body ? 1 : 0; +} + +sub get_attackable_actors { + my @actors; + + push @actors, @{ $playersList ? $playersList->getItems : [] }; + push @actors, @{ $slavesList ? $slavesList->getItems : [] }; + push @actors, @{ $elementalsList ? $elementalsList->getItems : [] }; + + return @actors; +} + +sub get_line_points_between { + my ($from_pos, $to_pos) = @_; + return [] unless ($from_pos && $to_pos); + + my ($x1, $y1) = ($from_pos->{x}, $from_pos->{y}); + my ($x2, $y2) = ($to_pos->{x}, $to_pos->{y}); + + my @points; + my $dx = abs($x2 - $x1); + my $dy = abs($y2 - $y1); + my $sx = $x1 < $x2 ? 1 : -1; + my $sy = $y1 < $y2 ? 1 : -1; + my $err = $dx - $dy; + + while (!($x1 == $x2 && $y1 == $y2)) { + my $e2 = 2 * $err; + if ($e2 > -$dy) { + $err -= $dy; + $x1 += $sx; + } + if ($e2 < $dx) { + $err += $dx; + $y1 += $sy; + } + + last if ($x1 == $x2 && $y1 == $y2); + push @points, {x => $x1, y => $y1}; + } + + return \@points; +} + +sub has_attackable_actor_between { + my ($actor, $monster) = @_; + return unless ($actor && $monster); + + my $actor_pos = calcPosFromPathfinding($field, $actor); + my $monster_pos = calcPosFromPathfinding($field, $monster); + return unless ($actor_pos && $monster_pos); + + my $line_points = get_line_points_between($actor_pos, $monster_pos); + return 0 unless (@{$line_points}); + + my %line_lookup = map { $_->{x} . ',' . $_->{y} => 1 } @{$line_points}; + + foreach my $other_actor (get_attackable_actors()) { + next unless $other_actor; + next if ($actor->{ID} && $other_actor->{ID} && $actor->{ID} eq $other_actor->{ID}); + next if $other_actor->{dead}; + + my $other_pos = calcPosFromPathfinding($field, $other_actor); + next unless $other_pos; + + return 1 if $line_lookup{$other_pos->{x} . ',' . $other_pos->{y}}; + } + + return 0; +} + +sub is_aggressive_towards_actor { + my ($monster, $actor, $is_clean) = @_; + return unless ($monster && $actor); + + return 1 if is_monster_engaged_with_us($monster); + + return unless $is_clean; + return unless exists $monstersTable{$monster->{nameID}}; + return unless is_monster_ai_aggressive($monstersTable{$monster->{nameID}}{Ai}); + + my $monster_pos = calcPosFromPathfinding($field, $monster); + my $actor_pos = calcPosFromPathfinding($field, $actor); + return unless ($monster_pos && $actor_pos); + return unless (blockDistance($actor_pos, $monster_pos) < 10); + return unless (Misc::objectIsMovingTowards($monster, $actor) || is_looking_at_actor($monster, $actor)); + return if has_attackable_actor_between($actor, $monster); + + return 1; +} + sub on_ai_check_Aggressiveness { my ($self, $args) = @_; my $monster = $args->{monster}; my $ID = $monster->{ID}; - - return unless (exists $monstersTable{$monster->{nameID}}); - return unless (is_monster_ai_aggressive($monstersTable{$monster->{nameID}}{Ai})); - - my $found_clean = 0; - my $found_moving = 0; - - $found_clean = 1 if (Misc::checkMonsterCleanness($ID)); - $found_moving = 1 if (Misc::objectIsMovingTowards($monster, $char)); - - foreach my $slave (values %{$char->{slaves}}) { - $found_clean = 1 if (Misc::slave_checkMonsterCleanness($slave, $ID)); - $found_moving = 1 if (Misc::objectIsMovingTowards($monster, $slave)); - } - - return unless ($found_clean && $found_moving); - - debug "[".PLUGIN_NAME."] Monster $monster at ($monster->{pos}{x} $monster->{pos}{y}) | Lvl $monstersTable{$monster->{nameID}}{Level} | is Aggressive, clean, and coming to us\n"; + + return unless is_aggressive_towards_actor($monster, $char, Misc::checkMonsterCleanness($ID)); + + debug "[".PLUGIN_NAME."] Monster $monster at ($monster->{pos}{x} $monster->{pos}{y}) | Lvl " + . ($monstersTable{$monster->{nameID}}{Level} // 'unknown') + . " | matches aggressive plugin rules for the character\n"; $args->{return} = 1; return; @@ -113,15 +218,12 @@ sub on_ai_slave_check_Aggressiveness { my $monster = $args->{monster}; my $ID = $monster->{ID}; my $slave = $args->{slave}; - - return unless (exists $monstersTable{$monster->{nameID}}); - return unless (is_monster_ai_aggressive($monstersTable{$monster->{nameID}}{Ai})); - - return unless (Misc::slave_checkMonsterCleanness($slave, $ID) || Misc::checkMonsterCleanness($ID)); - - return unless (Misc::objectIsMovingTowards($monster, $slave) || Misc::objectIsMovingTowards($monster, $char)); - - debug "[".PLUGIN_NAME."] Monster $monster at ($monster->{pos}{x} $monster->{pos}{y}) | Lvl $monstersTable{$monster->{nameID}}{Level} | is Aggressive towards slave, clean, and coming to him\n"; + + return unless is_aggressive_towards_actor($monster, $slave, Misc::slave_checkMonsterCleanness($slave, $ID)); + + debug "[".PLUGIN_NAME."] Monster $monster at ($monster->{pos}{x} $monster->{pos}{y}) | Lvl " + . ($monstersTable{$monster->{nameID}}{Level} // 'unknown') + . " | matches aggressive plugin rules for the slave\n"; $args->{return} = 1; return; diff --git a/plugins/edenPortalExitSync/edenPortalExitSync.pl b/plugins/edenPortalExitSync/edenPortalExitSync.pl index 81497efbee..910f34a855 100644 --- a/plugins/edenPortalExitSync/edenPortalExitSync.pl +++ b/plugins/edenPortalExitSync/edenPortalExitSync.pl @@ -37,6 +37,8 @@ package edenPortalExitSync; use Log qw(warning); use Translation qw(TF); +use constant EDEN_EXIT_POS_TOLERANCE => 3; + Plugins::register( 'edenPortalExitSync', 'Keeps EdenPortalExit aligned with Eden Group travel', @@ -208,9 +210,11 @@ sub _resolveExitDestinationForPosition { my $destinations = _getEdenExitDestinations(); return $exact if exists $destinations->{$exact}; - my @matches = _getDestinationsForMap($map); + my @matches = grep { + my (undef, $x, $y) = split / /, $_, 3; + defined $x && defined $y && $x =~ /^\d+$/ && $y =~ /^\d+$/ + } _getDestinationsForMap($map); return unless @matches; - return $matches[0] if @matches == 1; @matches = sort { my (undef, $ax, $ay) = split / /, $a, 3; @@ -218,6 +222,10 @@ sub _resolveExitDestinationForPosition { (abs($ax - $pos->{x}) + abs($ay - $pos->{y})) <=> (abs($bx - $pos->{x}) + abs($by - $pos->{y})) } @matches; + my (undef, $bestX, $bestY) = split / /, $matches[0], 3; + my $distance = abs($bestX - $pos->{x}) + abs($bestY - $pos->{y}); + return unless $distance <= EDEN_EXIT_POS_TOLERANCE; + return $matches[0]; } diff --git a/plugins/eventMacro/eventMacro.pl b/plugins/eventMacro/eventMacro.pl index 837972134e..5ffa0fae04 100644 --- a/plugins/eventMacro/eventMacro.pl +++ b/plugins/eventMacro/eventMacro.pl @@ -65,15 +65,17 @@ sub manage_check_triggered_automacros { $args->{return} = 0; return; } - - foreach my $array_member (@{$eventMacro->{triggered_prioritized_automacros_index_list}}) { - my $automacro = $eventMacro->{Automacro_List}->get($array_member->{index}); + foreach my $cycle_stage ($eventMacro->get_cycle_stages) { + foreach my $array_member (@{$eventMacro->{triggered_prioritized_automacros_index_list}{$cycle_stage}}) { - next unless $automacro->is_timed_out; - - $args->{return} = 1; - return; + my $automacro = $eventMacro->{Automacro_List}->get($array_member->{index}); + + next unless $automacro->is_timed_out; + + $args->{return} = 1; + return; + } } $args->{return} = 0; @@ -84,6 +86,7 @@ sub checkConfig { $timeout{eventMacro_delay}{timeout} = 1 unless defined $timeout{eventMacro_delay}; $config{eventMacro_orphans} = 'terminate' unless defined $config{eventMacro_orphans}; $config{eventMacro_CheckOnAI} = 'auto' unless defined $config{eventMacro_CheckOnAI}; + $config{eventMacro_notWhenInQueue} = '' unless defined $config{eventMacro_notWhenInQueue}; $file = (defined $config{eventMacro_file}) ? $config{eventMacro_file} : "eventMacros.txt"; return 1; } @@ -628,6 +631,7 @@ sub commandHandler { ); if ( defined $eventMacro->{Macro_Runner} ) { + $eventMacro->{Macro_Runner_Cycle_Stage} = 'AI_start'; $eventMacro->{AI_start_Macros_Running_Hook_Handle} = Plugins::addHook( 'AI_start', sub { $eventMacro->iterate_macro }, undef ); } else { error "[eventMacro] unable to create macro queue.\n"; @@ -635,4 +639,4 @@ sub commandHandler { } } -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Automacro.pm b/plugins/eventMacro/eventMacro/Automacro.pm index 95b696ea75..2a236cb46b 100644 --- a/plugins/eventMacro/eventMacro/Automacro.pm +++ b/plugins/eventMacro/eventMacro/Automacro.pm @@ -111,12 +111,18 @@ sub set_parameters { if (!defined $self->{parameters}{'CheckOnAI'}) { $self->{parameters}{'CheckOnAI'} = $config{eventMacro_CheckOnAI}; } + if (!defined $self->{parameters}{'CheckOnCycleStage'}) { + $self->{parameters}{'CheckOnCycleStage'} = 'AI_start'; + } if (!defined $self->{parameters}{'disabled'}) { $self->{parameters}{'disabled'} = 0; } if (!defined $self->{parameters}{'overrideAI'}) { $self->{parameters}{'overrideAI'} = 0; } + if (!defined $self->{parameters}{'overrideNotWhenInQueue'}) { + $self->{parameters}{'overrideNotWhenInQueue'} = 0; + } if (!defined $self->{parameters}{'orphan'}) { $self->{parameters}{'orphan'} = $config{eventMacro_orphans}; } @@ -303,4 +309,4 @@ sub get_new_macro_variables { return \%new_variables; } -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Condition/AttackEnd.pm b/plugins/eventMacro/eventMacro/Condition/AttackEnd.pm index 9391a4d862..19dd2349b1 100644 --- a/plugins/eventMacro/eventMacro/Condition/AttackEnd.pm +++ b/plugins/eventMacro/eventMacro/Condition/AttackEnd.pm @@ -2,7 +2,7 @@ package eventMacro::Condition::AttackEnd; use strict; use Globals qw( %monsters_old $field $char ); -use Utils qw( calcPosition distance ); +use Utils qw( calcPosFromPathfinding blockDistance ); use base 'eventMacro::Conditiontypes::ListConditionEvent'; @@ -29,7 +29,7 @@ sub get_new_variable_list { $new_variables->{".".$self->{name}."Last"."Name"} = $actor->{name}; $new_variables->{".".$self->{name}."Last"."Pos"} = sprintf("%d %d %s", $actor->{pos_to}{x}, $actor->{pos_to}{y}, $field->baseName); - $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",distance(calcPosition($actor), calcPosition($char))); + $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",blockDistance(calcPosFromPathfinding($field, $actor), calcPosFromPathfinding($field, $char))); $new_variables->{".".$self->{name}."Last"."ID"} = $actor->{binID}; $new_variables->{".".$self->{name}."Last"."BinID"} = $actor->{binType}; diff --git a/plugins/eventMacro/eventMacro/Condition/AttackStart.pm b/plugins/eventMacro/eventMacro/Condition/AttackStart.pm index b434413819..9c37df1e59 100644 --- a/plugins/eventMacro/eventMacro/Condition/AttackStart.pm +++ b/plugins/eventMacro/eventMacro/Condition/AttackStart.pm @@ -2,7 +2,7 @@ package eventMacro::Condition::AttackStart; use strict; use Globals qw( %monsters $field $char); -use Utils qw( calcPosition distance ); +use Utils qw( calcPosFromPathfinding blockDistance ); use base 'eventMacro::Conditiontypes::ListConditionEvent'; @@ -29,11 +29,11 @@ sub get_new_variable_list { $new_variables->{".".$self->{name}."Last"."Name"} = $actor->{name}; $new_variables->{".".$self->{name}."Last"."Pos"} = sprintf("%d %d %s", $actor->{pos_to}{x}, $actor->{pos_to}{y}, $field->baseName); - $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",distance(calcPosition($actor), calcPosition($char))); + $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",blockDistance(calcPosFromPathfinding($field, $actor), calcPosFromPathfinding($field, $char))); $new_variables->{".".$self->{name}."Last"."ID"} = $actor->{binID}; $new_variables->{".".$self->{name}."Last"."BinID"} = $actor->{binType}; return $new_variables; } -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Condition/AttackStartRegex.pm b/plugins/eventMacro/eventMacro/Condition/AttackStartRegex.pm index 83a100a6a7..cbf48978f6 100644 --- a/plugins/eventMacro/eventMacro/Condition/AttackStartRegex.pm +++ b/plugins/eventMacro/eventMacro/Condition/AttackStartRegex.pm @@ -2,7 +2,7 @@ package eventMacro::Condition::AttackStartRegex; use strict; use Globals qw( %monsters $field $char ); -use Utils qw( calcPosition distance ); +use Utils qw( calcPosFromPathfinding blockDistance ); use eventMacro::Data qw( EVENT_TYPE ); @@ -31,7 +31,7 @@ sub get_new_variable_list { $new_variables->{".".$self->{name}."Last"."Name"} = $actor->{name}; $new_variables->{".".$self->{name}."Last"."Pos"} = sprintf("%d %d %s", $actor->{pos_to}{x}, $actor->{pos_to}{y}, $field->baseName); - $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",distance(calcPosition($actor), calcPosition($char))); + $new_variables->{".".$self->{name}."Last"."Dist"} = sprintf("%.1f",blockDistance(calcPosFromPathfinding($field, $actor), calcPosFromPathfinding($field, $char))); $new_variables->{".".$self->{name}."Last"."ID"} = $actor->{binID}; $new_variables->{".".$self->{name}."Last"."BinID"} = $actor->{binType}; diff --git a/plugins/eventMacro/eventMacro/Condition/Base/Quest.pm b/plugins/eventMacro/eventMacro/Condition/Base/Quest.pm new file mode 100644 index 0000000000..670ff893e3 --- /dev/null +++ b/plugins/eventMacro/eventMacro/Condition/Base/Quest.pm @@ -0,0 +1,106 @@ +package eventMacro::Condition::Base::Quest; + +use strict; +use eventMacro::Utilities qw( find_variable updateQuestConditionStandbyState ); + +use base 'eventMacro::Condition'; + +sub _hooks { + ['in_game','packet_mapChange','quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; +} + +sub _dynamic_hooks { + ['mainLoop_pre']; +} + +sub initialize_quest_condition { + my ($self) = @_; + $self->{is_on_stand_by} = 1; + $self->{quest_standby_dynamic_hooks_enabled} = 0; +} + +sub initialize_simple_quest_id_condition { + my ($self) = @_; + $self->{fulfilled_ID} = undef; + $self->{fulfilled_member_index} = undef; + $self->{var_to_member_index} = {}; + $self->{members_array} = []; + $self->initialize_quest_condition; +} + +sub _parse_syntax { + my ( $self, $condition_code ) = @_; + + $self->initialize_simple_quest_id_condition; + + my $var_exists_hash = {}; + my @members = split(/\s*,\s*/, $condition_code); + foreach my $member_index (0..$#members) { + my $member = $members[$member_index]; + + if (my $var = find_variable($member)) { + if ($var->{display_name} =~ /^\./) { + $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; + return 0; + } else { + push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); + $self->{members_array}->[$member_index] = undef; + push(@{$self->{variables}}, $var) unless exists $var_exists_hash->{$var->{display_name}}; + $var_exists_hash->{$var->{display_name}} = undef; + } + } elsif ($member =~ /^\d+$/) { + $self->{members_array}->[$member_index] = $member; + } else { + $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; + return 0; + } + } + + return 1; +} + +sub update_vars { + my ( $self, $var_name, $var_value ) = @_; + foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { + if ($var_value =~ /^\d+$/) { + $self->{members_array}->[$member_index] = $var_value; + } else { + $self->{members_array}->[$member_index] = undef; + } + } +} + +sub validate_condition { + my ( $self, $callback_type, $callback_name, $args ) = @_; + + if ($callback_type eq 'hook' || $callback_type eq 'recheck') { + updateQuestConditionStandbyState($self, $callback_type, $callback_name); + } elsif ($callback_type eq 'variable') { + $self->update_vars($callback_name, $args); + } + + $self->check_quests; + + if ($self->{is_on_stand_by} == 1) { + return $self->SUPER::validate_condition(0); + } + + return $self->SUPER::validate_condition($self->get_quest_condition_result); +} + +sub get_quest_condition_result { + my ($self) = @_; + return defined $self->{fulfilled_ID} ? 1 : 0; +} + +sub get_new_variable_list { + my ($self) = @_; + my $new_variables = {}; + + $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; + $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; + + return $new_variables; +} + +1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestActive.pm b/plugins/eventMacro/eventMacro/Condition/QuestActive.pm index 5daa232f59..7a152b620d 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestActive.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestActive.pm @@ -2,65 +2,7 @@ package eventMacro::Condition::QuestActive; use strict; use Globals qw( $questList ); -use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -78,36 +20,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestComplete.pm b/plugins/eventMacro/eventMacro/Condition/QuestComplete.pm index 8efac45fa3..e1657ee006 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestComplete.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestComplete.pm @@ -1,65 +1,8 @@ package eventMacro::Condition::QuestComplete; use strict; -use eventMacro::Utilities qw( find_variable getQuestStatus ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use eventMacro::Utilities qw( getQuestStatus ); +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -76,36 +19,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestHuntCompleted.pm b/plugins/eventMacro/eventMacro/Condition/QuestHuntCompleted.pm index ce7bf8a64e..3faba7d822 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestHuntCompleted.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestHuntCompleted.pm @@ -3,12 +3,7 @@ package eventMacro::Condition::QuestHuntCompleted; use strict; use Globals qw( $questList ); use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} +use base 'eventMacro::Condition::Base::Quest'; sub _parse_syntax { my ( $self, $condition_code ) = @_; @@ -22,7 +17,7 @@ sub _parse_syntax { $self->{members_array} = []; - $self->{is_on_stand_by} = 1; + $self->initialize_quest_condition; my $var_exists_hash = {}; @@ -146,26 +141,9 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_quest_id} ? 1 : 0) ); - } +sub get_quest_condition_result { + my ($self) = @_; + return defined $self->{fulfilled_quest_id} ? 1 : 0; } sub get_new_variable_list { diff --git a/plugins/eventMacro/eventMacro/Condition/QuestHuntOngoing.pm b/plugins/eventMacro/eventMacro/Condition/QuestHuntOngoing.pm index 5fda2c5e9c..0bf6b6c406 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestHuntOngoing.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestHuntOngoing.pm @@ -3,12 +3,7 @@ package eventMacro::Condition::QuestHuntOngoing; use strict; use Globals qw( $questList ); use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} +use base 'eventMacro::Condition::Base::Quest'; sub _parse_syntax { my ( $self, $condition_code ) = @_; @@ -22,7 +17,7 @@ sub _parse_syntax { $self->{members_array} = []; - $self->{is_on_stand_by} = 1; + $self->initialize_quest_condition; my $var_exists_hash = {}; @@ -147,26 +142,9 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_quest_id} ? 1 : 0) ); - } +sub get_quest_condition_result { + my ($self) = @_; + return defined $self->{fulfilled_quest_id} ? 1 : 0; } sub get_new_variable_list { diff --git a/plugins/eventMacro/eventMacro/Condition/QuestInactive.pm b/plugins/eventMacro/eventMacro/Condition/QuestInactive.pm index 812ee4d1c5..fbb9a7f22c 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestInactive.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestInactive.pm @@ -2,64 +2,13 @@ package eventMacro::Condition::QuestInactive; use strict; use Globals qw( $questList ); -use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; +use base 'eventMacro::Condition::Base::Quest'; sub _hooks { - ['achievement_list','quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } + my ($self) = @_; + my $hooks = $self->SUPER::_hooks; + push(@{$hooks}, 'achievement_list'); + return $hooks; } sub check_quests { @@ -77,36 +26,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestIncomplete.pm b/plugins/eventMacro/eventMacro/Condition/QuestIncomplete.pm index 1a2ff59f65..8f59488a0f 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestIncomplete.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestIncomplete.pm @@ -1,65 +1,8 @@ package eventMacro::Condition::QuestIncomplete; use strict; -use eventMacro::Utilities qw( find_variable getQuestStatus ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use eventMacro::Utilities qw( getQuestStatus ); +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -76,36 +19,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestNotComplete.pm b/plugins/eventMacro/eventMacro/Condition/QuestNotComplete.pm index 40700d9372..9439236aa1 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestNotComplete.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestNotComplete.pm @@ -1,65 +1,8 @@ package eventMacro::Condition::QuestNotComplete; use strict; -use eventMacro::Utilities qw( find_variable getQuestStatus ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use eventMacro::Utilities qw( getQuestStatus ); +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -76,36 +19,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables = {}; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestNotIncomplete.pm b/plugins/eventMacro/eventMacro/Condition/QuestNotIncomplete.pm index 58a0062298..bf3c56c393 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestNotIncomplete.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestNotIncomplete.pm @@ -1,65 +1,8 @@ package eventMacro::Condition::QuestNotIncomplete; use strict; -use eventMacro::Utilities qw( find_variable getQuestStatus ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use eventMacro::Utilities qw( getQuestStatus ); +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -76,36 +19,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables = {}; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestOnTime.pm b/plugins/eventMacro/eventMacro/Condition/QuestOnTime.pm index 81402fd83d..b58d162a3c 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestOnTime.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestOnTime.pm @@ -2,65 +2,7 @@ package eventMacro::Condition::QuestOnTime; use strict; use Globals qw( $questList ); -use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -82,36 +24,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/QuestTimeOverdue.pm b/plugins/eventMacro/eventMacro/Condition/QuestTimeOverdue.pm index ae1bd31f4f..2c9f39b4e4 100644 --- a/plugins/eventMacro/eventMacro/Condition/QuestTimeOverdue.pm +++ b/plugins/eventMacro/eventMacro/Condition/QuestTimeOverdue.pm @@ -2,65 +2,7 @@ package eventMacro::Condition::QuestTimeOverdue; use strict; use Globals qw( $questList ); -use eventMacro::Utilities qw( find_variable ); - -use base 'eventMacro::Condition'; - -sub _hooks { - ['quest_all_list_end','quest_all_mission_end','quest_added','quest_update_mission_hunt_end','quest_delete','quest_active']; -} - -sub _parse_syntax { - my ( $self, $condition_code ) = @_; - - $self->{fulfilled_ID} = undef; - $self->{fulfilled_member_index} = undef; - - $self->{var_to_member_index} = {}; - $self->{members_array} = []; - - $self->{is_on_stand_by} = 1; - - my $var_exists_hash = {}; - - my @members = split(/\s*,\s*/, $condition_code); - foreach my $member_index (0..$#members) { - my $member = $members[$member_index]; - - if (my $var = find_variable($member)) { - if ($var->{display_name} =~ /^\./) { - $self->{error} = "System variables should not be used in automacros (The ones starting with a dot '.')"; - return 0; - } else { - push ( @{ $self->{var_to_member_index}{$var->{display_name}} }, $member_index ); - $self->{members_array}->[$member_index] = undef; - push(@{$self->{variables}}, $var) unless (exists $var_exists_hash->{$var->{display_name}}); - $var_exists_hash->{$var->{display_name}} = undef; - } - - } elsif ($member =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $member; - - } else { - $self->{error} = "List member '".$member."' must be a quest ID or a variable name"; - return 0; - } - - } - - return 1; -} - -sub update_vars { - my ( $self, $var_name, $var_value ) = @_; - foreach my $member_index ( @{ $self->{var_to_member_index}{$var_name} } ) { - if ($var_value =~ /^\d+$/) { - $self->{members_array}->[$member_index] = $var_value; - } else { - $self->{members_array}->[$member_index] = undef; - } - } -} +use base 'eventMacro::Condition::Base::Quest'; sub check_quests { my ( $self, $list ) = @_; @@ -82,36 +24,4 @@ sub check_quests { } } -sub validate_condition { - my ( $self, $callback_type, $callback_name, $args ) = @_; - - if ($callback_type eq 'hook') { - $self->{is_on_stand_by} = 0; - - } elsif ($callback_type eq 'variable') { - $self->update_vars($callback_name, $args); - - } elsif ($callback_type eq 'recheck') { - $self->{is_on_stand_by} = 0; - } - - $self->check_quests; - - if ($self->{is_on_stand_by} == 1) { - return $self->SUPER::validate_condition(0); - } else { - return $self->SUPER::validate_condition( (defined $self->{fulfilled_ID} ? 1 : 0) ); - } -} - -sub get_new_variable_list { - my ($self) = @_; - my $new_variables; - - $new_variables->{".".$self->{name}."LastID"} = $self->{fulfilled_ID}; - $new_variables->{".".$self->{name}."LastListIndex"} = $self->{fulfilled_member_index}; - - return $new_variables; -} - 1; diff --git a/plugins/eventMacro/eventMacro/Condition/isAlive.pm b/plugins/eventMacro/eventMacro/Condition/isAlive.pm new file mode 100644 index 0000000000..170ae2da1f --- /dev/null +++ b/plugins/eventMacro/eventMacro/Condition/isAlive.pm @@ -0,0 +1,35 @@ +package eventMacro::Condition::isAlive; + +use strict; + +use base 'eventMacro::Condition'; + +use Globals qw( $char ); + +sub _hooks { + ['in_game', 'self_died', 'self_resurrected', 'packet_mapChange']; +} + +sub _parse_syntax { + my ( $self, $condition_code ) = @_; + + $self->{wanted_state} = undef; + + if ($condition_code =~ /^(0|1)$/) { + $self->{wanted_state} = $1; + } else { + $self->{error} = "Value '".$condition_code."' Should be '0' or '1'"; + return 0; + } + + return 1; +} + +sub validate_condition { + my ( $self, $callback_type, $callback_name, $args ) = @_; + + my $is_alive = ($char && !$char->{dead}) ? 1 : 0; + return $self->SUPER::validate_condition( ($is_alive == $self->{wanted_state}) ? 1 : 0 ); +} + +1; diff --git a/plugins/eventMacro/eventMacro/Condition/isCloseToCoordinate.pm b/plugins/eventMacro/eventMacro/Condition/isCloseToCoordinate.pm new file mode 100644 index 0000000000..35d0a591a3 --- /dev/null +++ b/plugins/eventMacro/eventMacro/Condition/isCloseToCoordinate.pm @@ -0,0 +1,55 @@ +package eventMacro::Condition::isCloseToCoordinate; + +use strict; +use Globals qw( $char $field ); +use Utils; + +use base 'eventMacro::Condition'; + +sub _hooks { + ['packet/actor_movement_interrupted','packet/high_jump','packet/character_moves','packet_mapChange','packet/map_property3']; +} + +sub _parse_syntax { + my ( $self, $condition_code ) = @_; + + if ($condition_code =~ /^(\d+)\s+(\d+)\s+(\d+)$/i) { + $self->{coord_x} = $1; + $self->{coord_y} = $2; + $self->{coord_dist} = $3; + } else { + $self->{error} = "Invalid condition sintax"; + return 0; + } + + return 1; +} + +sub validate_condition { + my ( $self, $callback_type, $callback_name, $args ) = @_; + + $self->SUPER::validate_condition( 0 ) unless ( defined $field && defined $char ); + + if ($callback_type eq 'hook' && ($callback_name eq 'packet_mapChange')) { + return $self->SUPER::validate_condition( 0 ); + } + + if ($callback_type eq 'hook' || $callback_type eq 'recheck') { + return $self->SUPER::validate_condition( 0 ) if (blockDistance({x=>$self->{coord_x}, y=>$self->{coord_y}}, $char->{pos_to}) > $self->{coord_dist}); + return $self->SUPER::validate_condition( 1 ); + } +} + +sub get_new_variable_list { + my ($self) = @_; + my $new_variables; + + $new_variables->{".".$self->{name}."Last"."Map"} = $field->baseName; + $new_variables->{".".$self->{name}."Last"."X"} = $self->{coord_x}; + $new_variables->{".".$self->{name}."Last"."Y"} = $self->{coord_y}; + $new_variables->{".".$self->{name}."Last"."Dist"} = $self->{coord_dist}; + + return $new_variables; +} + +1; diff --git a/plugins/eventMacro/eventMacro/Condition/isNotCloseToCoordinate.pm b/plugins/eventMacro/eventMacro/Condition/isNotCloseToCoordinate.pm new file mode 100644 index 0000000000..c2c5a0559c --- /dev/null +++ b/plugins/eventMacro/eventMacro/Condition/isNotCloseToCoordinate.pm @@ -0,0 +1,55 @@ +package eventMacro::Condition::isNotCloseToCoordinate; + +use strict; +use Globals qw( $char $field ); +use Utils; + +use base 'eventMacro::Condition'; + +sub _hooks { + ['packet/actor_movement_interrupted','packet/high_jump','packet/character_moves','packet_mapChange','packet/map_property3']; +} + +sub _parse_syntax { + my ( $self, $condition_code ) = @_; + + if ($condition_code =~ /^(\d+)\s+(\d+)\s+(\d+)$/i) { + $self->{coord_x} = $1; + $self->{coord_y} = $2; + $self->{coord_dist} = $3; + } else { + $self->{error} = "Invalid condition sintax"; + return 0; + } + + return 1; +} + +sub validate_condition { + my ( $self, $callback_type, $callback_name, $args ) = @_; + + $self->SUPER::validate_condition( 0 ) unless ( defined $field && defined $char ); + + if ($callback_type eq 'hook' && ($callback_name eq 'packet_mapChange')) { + return $self->SUPER::validate_condition( 0 ); + } + + if ($callback_type eq 'hook' || $callback_type eq 'recheck') { + return $self->SUPER::validate_condition( 1 ) if (blockDistance({x=>$self->{coord_x}, y=>$self->{coord_y}}, $char->{pos_to}) > $self->{coord_dist}); + return $self->SUPER::validate_condition( 0 ); + } +} + +sub get_new_variable_list { + my ($self) = @_; + my $new_variables; + + $new_variables->{".".$self->{name}."Last"."Map"} = $field->baseName; + $new_variables->{".".$self->{name}."Last"."X"} = $self->{coord_x}; + $new_variables->{".".$self->{name}."Last"."Y"} = $self->{coord_y}; + $new_variables->{".".$self->{name}."Last"."Dist"} = $self->{coord_dist}; + + return $new_variables; +} + +1; diff --git a/plugins/eventMacro/eventMacro/Core.pm b/plugins/eventMacro/eventMacro/Core.pm index 868c7087fd..0e3944ce93 100644 --- a/plugins/eventMacro/eventMacro/Core.pm +++ b/plugins/eventMacro/eventMacro/Core.pm @@ -16,6 +16,15 @@ use eventMacro::Runner; use eventMacro::Condition; use eventMacro::Utilities qw(find_variable get_key_or_index); +sub get_cycle_stages { + return qw(AI_start AI_pre AI_middle AI_post); +} + +sub is_valid_cycle_stage { + my ($self, $cycle_stage) = @_; + return scalar grep { $_ eq $cycle_stage } $self->get_cycle_stages; +} + sub new { my ($class, $file) = @_; my $self = bless {}, $class; @@ -42,9 +51,13 @@ sub new { $self->{Hash_Variable_List_Hash} = {}; #must add a sorting algorithm here later - $self->{triggered_prioritized_automacros_index_list} = []; + $self->{triggered_prioritized_automacros_index_list} = {}; $self->{automacro_index_to_queue_index} = {}; + foreach my $cycle_stage ($self->get_cycle_stages) { + $self->{triggered_prioritized_automacros_index_list}{$cycle_stage} = []; + $self->{automacro_index_to_queue_index}{$cycle_stage} = {}; + } my $parse_result = parseMacroFile($file, 0); if ( !$parse_result ) { @@ -67,7 +80,8 @@ sub new { $self->adapt_to_AI_state(AI::state()); $self->{AI_start_Macros_Running_Hook_Handle} = undef; - $self->{AI_start_Automacros_Check_Hook_Handle} = undef; + $self->{AI_cycle_stage_Automacros_Check_Hook_Handles} = {}; + $self->{Macro_Runner_Cycle_Stage} = undef; $self->set_automacro_checking_status(); $self->create_callbacks(); @@ -138,7 +152,7 @@ sub unload { my ($self) = @_; $self->clear_queue(1); $self->clean_hooks(); - Plugins::delHook($self->{AI_start_Automacros_Check_Hook_Handle}) if ($self->{AI_start_Automacros_Check_Hook_Handle}); + $self->sync_automacro_check_hooks(1); Plugins::delHook($self->{AI_state_change_Hook_Handle}) if ($self->{AI_state_change_Hook_Handle}); } @@ -154,35 +168,41 @@ sub set_automacro_checking_status { if (!defined $self->{Automacros_Checking_Status}) { debug "[eventMacro] Initializing automacro checking by default.\n", "eventMacro", 2; $self->{Automacros_Checking_Status} = CHECKING_AUTOMACROS; - $self->{AI_start_Automacros_Check_Hook_Handle} = Plugins::addHook( 'AI_start', sub { my $state = $_[1]->{state}; $self->AI_start_checker($state); }, undef ); + $self->sync_automacro_check_hooks(); return; } elsif ($self->{Automacros_Checking_Status} == $status) { debug "[eventMacro] automacro checking status is already $status.\n", "eventMacro", 2; } else { debug "[eventMacro] Changing automacro checking status from '".$self->{Automacros_Checking_Status}."' to '".$status."'.\n", "eventMacro", 2; - if ( - ($self->{Automacros_Checking_Status} == CHECKING_AUTOMACROS || $self->{Automacros_Checking_Status} == CHECKING_FORCED_BY_USER) && - ($status == PAUSED_BY_EXCLUSIVE_MACRO || $status == PAUSE_FORCED_BY_USER) - ) { - if (defined $self->{AI_start_Automacros_Check_Hook_Handle}) { - debug "[eventMacro] Deleting AI_start hook.\n", "eventMacro", 2; - Plugins::delHook($self->{AI_start_Automacros_Check_Hook_Handle}); - $self->{AI_start_Automacros_Check_Hook_Handle} = undef; - } else { - error "[eventMacro] Tried to delete AI_start hook and for some reason it is already undefined.\n"; - } - } elsif ( - ($self->{Automacros_Checking_Status} == PAUSED_BY_EXCLUSIVE_MACRO || $self->{Automacros_Checking_Status} == PAUSE_FORCED_BY_USER) && - ($status == CHECKING_AUTOMACROS || $status == CHECKING_FORCED_BY_USER) - ) { - if (defined $self->{AI_start_Automacros_Check_Hook_Handle}) { - error "[eventMacro] Tried to add AI_start hook and for some reason it is already defined.\n"; - } else { - debug "[eventMacro] Adding AI_start hook.\n", "eventMacro", 2; - $self->{AI_start_Automacros_Check_Hook_Handle} = Plugins::addHook( 'AI_start', sub { my $state = $_[1]->{state}; $self->AI_start_checker($state); }, undef ); + $self->{Automacros_Checking_Status} = $status; + $self->sync_automacro_check_hooks(); + } +} + +sub sync_automacro_check_hooks { + my ($self, $force_disable) = @_; + my $should_have_hooks = !$force_disable + && defined $self->{Automacros_Checking_Status} + && ($self->{Automacros_Checking_Status} == CHECKING_AUTOMACROS || $self->{Automacros_Checking_Status} == CHECKING_FORCED_BY_USER); + + foreach my $cycle_stage ($self->get_cycle_stages) { + if ($should_have_hooks) { + if (!defined $self->{AI_cycle_stage_Automacros_Check_Hook_Handles}{$cycle_stage}) { + debug "[eventMacro] Adding $cycle_stage hook for automacro checking.\n", "eventMacro", 2; + $self->{AI_cycle_stage_Automacros_Check_Hook_Handles}{$cycle_stage} = Plugins::addHook( + $cycle_stage, + sub { + my $state = $_[1]->{state}; + $self->AI_cycle_stage_checker($cycle_stage, $state); + }, + undef + ); } + } elsif (defined $self->{AI_cycle_stage_Automacros_Check_Hook_Handles}{$cycle_stage}) { + debug "[eventMacro] Deleting $cycle_stage hook for automacro checking.\n", "eventMacro", 2; + Plugins::delHook($self->{AI_cycle_stage_Automacros_Check_Hook_Handles}{$cycle_stage}); + delete $self->{AI_cycle_stage_Automacros_Check_Hook_Handles}{$cycle_stage}; } - $self->{Automacros_Checking_Status} = $status; } } @@ -287,6 +307,11 @@ sub create_automacro_list { error "[eventMacro] Ignoring automacro '$name' (CheckOnAI parameter should be a list containing only the values 'auto', 'manual' and 'off')\n"; next AUTOMACRO; + ###Parameter: CheckOnCycleStage + } elsif ($parameter->{'key'} eq "CheckOnCycleStage" && $parameter->{'value'} !~ /^(AI_start|AI_pre|AI_middle|AI_post)$/) { + error "[eventMacro] Ignoring automacro '$name' (CheckOnCycleStage parameter should be 'AI_start', 'AI_pre', 'AI_middle' or 'AI_post')\n"; + next AUTOMACRO; + ###Parameter: disabled } elsif ($parameter->{'key'} eq "disabled" && $parameter->{'value'} !~ /^[01]$/) { error "[eventMacro] Ignoring automacro '$name' (disabled parameter should be '0' or '1')\n"; @@ -297,6 +322,11 @@ sub create_automacro_list { error "[eventMacro] Ignoring automacro '$name' (overrideAI parameter should be '0' or '1')\n"; next AUTOMACRO; + ###Parameter: overrideNotWhenInQueue + } elsif ($parameter->{'key'} eq "overrideNotWhenInQueue" && $parameter->{'value'} !~ /^[01]$/) { + error "[eventMacro] Ignoring automacro '$name' (overrideNotWhenInQueue parameter should be '0' or '1')\n"; + next AUTOMACRO; + ###Parameter: exclusive } elsif ($parameter->{'key'} eq "exclusive" && $parameter->{'value'} !~ /^[01]$/) { error "[eventMacro] Ignoring automacro '$name' (exclusive parameter should be '0' or '1')\n"; @@ -871,7 +901,7 @@ sub get_scalar_var { # Character-related variables. elsif ( $variable_name eq '.job' ) { return $char && $jobs_lut{ $char->{jobID} } || ''; } - elsif ( $variable_name eq '.pos' ) { return $char ? sprintf( '%d %d', @{ calcPosition( $char ) }{ 'x', 'y' } ) : ''; } + elsif ( $variable_name eq '.pos' ) { return ($char && $field) ? sprintf( '%d %d', @{ calcPosFromPathfinding( $field, $char ) }{ 'x', 'y' } ) : ''; } elsif ( $variable_name eq '.name' ) { return $char && $char->{name} || 0; } elsif ( $variable_name eq '.hp' ) { return $char && $char->{hp} || 0; } elsif ( $variable_name eq '.sp' ) { return $char && $char->{sp} || 0; } @@ -1279,10 +1309,11 @@ sub add_to_triggered_prioritized_automacros_index_list { my ($self, $automacro) = @_; my $priority = $automacro->get_parameter('priority'); my $index = $automacro->get_index; + my $cycle_stage = $self->get_cycle_stage_for_automacro($automacro); - my $list = $self->{triggered_prioritized_automacros_index_list} ||= []; + my $list = $self->{triggered_prioritized_automacros_index_list}{$cycle_stage} ||= []; - my $index_hash = $self->{automacro_index_to_queue_index}; + my $index_hash = $self->{automacro_index_to_queue_index}{$cycle_stage} ||= {}; # Find where we should insert this item. my $new_index; @@ -1299,7 +1330,7 @@ sub add_to_triggered_prioritized_automacros_index_list { $self->{number_of_triggered_automacros}++; $automacro->running_status(1); - debug "[eventMacro] Automacro '".$automacro->get_name()."' met it's conditions. Adding it to running queue in position '".$new_index."'.\n", "eventMacro"; + debug "[eventMacro] Automacro '".$automacro->get_name()."' met it's conditions. Adding it to running queue in stage '".$cycle_stage."' and position '".$new_index."'.\n", "eventMacro"; # Return the insertion index. return $new_index; @@ -1307,12 +1338,12 @@ sub add_to_triggered_prioritized_automacros_index_list { sub remove_from_triggered_prioritized_automacros_index_list { my ($self, $automacro) = @_; - my $priority = $automacro->get_parameter('priority'); my $index = $automacro->get_index; + my $cycle_stage = $self->get_cycle_stage_for_automacro($automacro); - my $list = $self->{triggered_prioritized_automacros_index_list}; + my $list = $self->{triggered_prioritized_automacros_index_list}{$cycle_stage}; - my $index_hash = $self->{automacro_index_to_queue_index}; + my $index_hash = $self->{automacro_index_to_queue_index}{$cycle_stage}; # Find from where we should delete this item. my $queue_index = delete $index_hash->{$index}; @@ -1328,7 +1359,7 @@ sub remove_from_triggered_prioritized_automacros_index_list { $self->{number_of_triggered_automacros}--; $automacro->running_status(0); - debug "[eventMacro] Automacro '".$automacro->get_name()."' no longer meets it's conditions. Removing it from running queue from position '".$queue_index."'.\n", "eventMacro"; + debug "[eventMacro] Automacro '".$automacro->get_name()."' no longer meets it's conditions. Removing it from running queue at stage '".$cycle_stage."' and position '".$queue_index."'.\n", "eventMacro"; # Return the removal index. return $queue_index; @@ -1416,6 +1447,9 @@ sub manage_event_callbacks { if ($automacro->check_event_type_condition($callback_type, $callback_name, $callback_args)) { debug "[eventMacro] Condition of event type was fulfilled.\n", "eventMacro", 3; + if ($self->should_skip_automacro_for_not_when_in_queue($automacro)) { + next; + } if (!defined $event_type_automacro_call_priority) { debug "[eventMacro] Automacro '".$automacro->get_name."' of priority '".$automacro->get_parameter('priority')."' was added to the top of queue.\n", "eventMacro", 3; @@ -1445,14 +1479,14 @@ sub manage_event_callbacks { } if (defined $event_type_automacro_call_index) { - - my %hookArgs; - Plugins::callHook("eventMacro_before_call_check", \%hookArgs); - return if ($hookArgs{return}); - my $automacro = $self->{Automacro_List}->get($event_type_automacro_call_index); + return if $self->run_before_call_checks($automacro, { + callback_type => $callback_type, + callback_name => $callback_name, + callback_args => $callback_args, + }); - message "[eventMacro] Event of type '".$callback_type."', and of name '".$callback_name."' activated automacro '".$automacro->get_name()."', calling macro '".$automacro->get_parameter('call')."'\n", "eventMacro"; + message "[eventMacro] Event of type '".$callback_type."', and of name '".$callback_name."' activated automacro '".$automacro->get_name()."', calling macro '".$automacro->get_parameter('call')."'\n", "system"; $self->call_macro($automacro); } @@ -1514,10 +1548,66 @@ sub manage_dynamic_hook_add_and_delete { } } -sub AI_start_checker { - my ($self, $state) = @_; +sub get_not_when_in_queue_states { + my ($self) = @_; + + return unless defined $config{eventMacro_notWhenInQueue}; + return if $config{eventMacro_notWhenInQueue} =~ /^\s*$/; + + my @states = grep { $_ ne '' } split(/\s*,\s*/, $config{eventMacro_notWhenInQueue}); + return @states; +} + +sub should_skip_automacro_for_not_when_in_queue { + my ($self, $automacro) = @_; - foreach my $array_member (@{$self->{triggered_prioritized_automacros_index_list}}) { + return 0 unless defined $automacro; + return 0 if $automacro->get_parameter('overrideNotWhenInQueue'); + + my @blocked_states = $self->get_not_when_in_queue_states; + return 0 unless @blocked_states; + + if (AI::inQueue(@blocked_states)) { + debug "[eventMacro] Automacro '".$automacro->get_name()."' will not run because eventMacro_notWhenInQueue matched one of these AI queue states: '".join("', '", @blocked_states)."'.\n", "eventMacro", 2; + return 1; + } + + return 0; +} + +sub get_cycle_stage_for_automacro { + my ($self, $automacro) = @_; + + return 'AI_start' unless defined $automacro; + + my $cycle_stage = $automacro->get_parameter('CheckOnCycleStage'); + return $cycle_stage if defined $cycle_stage && $self->is_valid_cycle_stage($cycle_stage); + + return 'AI_start'; +} + +sub run_before_call_checks { + my ($self, $automacro, $extra_args) = @_; + + return 1 if $self->should_skip_automacro_for_not_when_in_queue($automacro); + + my %hookArgs = ( + automacro => $automacro, + cycle_stage => $self->get_cycle_stage_for_automacro($automacro), + ); + + if (defined $extra_args && ref $extra_args eq 'HASH') { + @hookArgs{keys %{$extra_args}} = values %{$extra_args}; + } + + Plugins::callHook("eventMacro_before_call_check", \%hookArgs); + return $hookArgs{return} ? 1 : 0; +} + +sub AI_cycle_stage_checker { + my ($self, $cycle_stage, $state) = @_; + + foreach my $array_member (@{$self->{triggered_prioritized_automacros_index_list}{$cycle_stage}}) { my $automacro = $self->{Automacro_List}->get($array_member->{index}); @@ -1527,11 +1617,10 @@ sub AI_start_checker { next; } - my %hookArgs; - Plugins::callHook("eventMacro_before_call_check", \%hookArgs); - return if ($hookArgs{return}); + next if $self->should_skip_automacro_for_not_when_in_queue($automacro); + return if $self->run_before_call_checks($automacro); - message "[eventMacro] Conditions met for automacro '".$automacro->get_name()."', calling macro '".$automacro->get_parameter('call')."'\n", "system"; + message "[eventMacro] Conditions met for automacro '".$automacro->get_name()."' during $cycle_stage, calling macro '".$automacro->get_parameter('call')."'\n", "system"; $self->call_macro($automacro); @@ -1540,16 +1629,17 @@ sub AI_start_checker { } sub handoff_to_pending_automacros { - my ($self) = @_; + my ($self, $cycle_stage) = @_; + $cycle_stage = 'AI_start' unless defined $cycle_stage && $self->is_valid_cycle_stage($cycle_stage); return if defined $self->{Macro_Runner}; - return if $self->{number_of_triggered_automacros} == 0; + return if !@{$self->{triggered_prioritized_automacros_index_list}{$cycle_stage}}; my $checking_status = $self->get_automacro_checking_status(); return if $checking_status != CHECKING_AUTOMACROS && $checking_status != CHECKING_FORCED_BY_USER; - debug "[eventMacro] Macro queue cleared. Checking triggered automacros before returning control to core AI.\n", "eventMacro", 2; - $self->AI_start_checker(AI::state()); + debug "[eventMacro] Macro queue cleared. Checking triggered automacros for stage '".$cycle_stage."' before returning control to core AI.\n", "eventMacro", 2; + $self->AI_cycle_stage_checker($cycle_stage, AI::state()); } sub disable_all_automacros { @@ -1627,6 +1717,7 @@ sub call_macro { ); if (defined $self->{Macro_Runner}) { + $self->{Macro_Runner_Cycle_Stage} = $self->get_cycle_stage_for_automacro($automacro); my $iterate_macro_sub = sub { $self->iterate_macro(); }; $self->{AI_start_Macros_Running_Hook_Handle} = Plugins::addHook( 'AI_start', $iterate_macro_sub, undef ); } else { @@ -1767,6 +1858,7 @@ sub processCmd { sub clear_queue { my ($self, $skip_automacro_handoff) = @_; + my $macro_runner_cycle_stage = defined $self->{Macro_Runner_Cycle_Stage} ? $self->{Macro_Runner_Cycle_Stage} : 'AI_start'; if ( defined $self->{Macro_Runner} ) { message "[eventMacro] Macro '".$self->{Macro_Runner}->last_subcall_name."' ended.\n", "system"; } else { @@ -1779,12 +1871,13 @@ sub clear_queue { $self->set_automacro_checking_status(CHECKING_AUTOMACROS); } $self->{Macro_Runner} = undef; + $self->{Macro_Runner_Cycle_Stage} = undef; Plugins::delHook($self->{AI_start_Macros_Running_Hook_Handle}) if (defined $self->{AI_start_Macros_Running_Hook_Handle}); $self->{AI_start_Macros_Running_Hook_Handle} = undef; return if $skip_automacro_handoff; - $self->handoff_to_pending_automacros(); + $self->handoff_to_pending_automacros($macro_runner_cycle_stage); } sub include { diff --git a/plugins/eventMacro/eventMacro/Data.pm b/plugins/eventMacro/eventMacro/Data.pm index 931e437f81..0d7c92d413 100644 --- a/plugins/eventMacro/eventMacro/Data.pm +++ b/plugins/eventMacro/eventMacro/Data.pm @@ -44,6 +44,8 @@ our %parameters = ( 'disabled' => 1, # option: automacro disabled 'call' => 1, # setting: macro to be called 'overrideAI' => 1, # option: override AI + 'overrideNotWhenInQueue' => 1,# option: ignore eventMacro_notWhenInQueue + 'CheckOnCycleStage' => 1, # option: in which AI loop stage the automacro may fire 'orphan' => 1, # option: orphan handling 'macro_delay' => 1, # option: default macro delay 'priority' => 1, # option: automacro priority @@ -80,4 +82,4 @@ our $macroKeywords = join '|', qw( vender venderitem venderprice venderamount ); -1; \ No newline at end of file +1; diff --git a/plugins/eventMacro/eventMacro/Runner.pm b/plugins/eventMacro/eventMacro/Runner.pm index b372190bb9..526c8675d4 100644 --- a/plugins/eventMacro/eventMacro/Runner.pm +++ b/plugins/eventMacro/eventMacro/Runner.pm @@ -1647,7 +1647,7 @@ sub parse_log { return; } } - $self->timeout($self->macro_delay); + $self->timeout(0); $self->next_line; } diff --git a/plugins/eventMacro/eventMacro/Utilities.pm b/plugins/eventMacro/eventMacro/Utilities.pm index 3d06974984..146de62f49 100644 --- a/plugins/eventMacro/eventMacro/Utilities.pm +++ b/plugins/eventMacro/eventMacro/Utilities.pm @@ -10,7 +10,8 @@ our @EXPORT_OK = qw(q4rx q4rx2 between cmpr match getArgs getnpcID getPlayerID getCartAmount getShopAmount getStorageAmount getVendAmount getRandom getRandomRange getConfig getWord call_macro getArgFromList sameParty processCmd find_variable get_key_or_index getInventoryAmountbyID getStorageAmountbyID getCartAmountbyID getQuestStatus get_pattern find_hash_and_get_keys find_hash_and_get_values - getEquipProperty getEquipCards getEquipCardAmount getEquipOptions getEquipOptionsAmount getEquipRefinement); + getEquipProperty getEquipCards getEquipCardAmount getEquipOptions getEquipOptionsAmount getEquipRefinement + updateQuestConditionStandbyState); use Utils; use Globals; @@ -222,6 +223,38 @@ sub getQuestStatus { $result; } +sub updateQuestConditionStandbyState { + my ($self, $callback_type, $callback_name) = @_; + + if ($callback_type eq 'hook') { + if ($callback_name eq 'in_game' || $callback_name eq 'packet_mapChange') { + $self->{is_on_stand_by} = 1; + $self->{quest_ready_after} = time + 3; + } elsif ($callback_name eq 'mainLoop_pre' || $callback_name eq 'AI_pre') { + my $quest_ready_after = $self->{quest_ready_after} // 0; + if (keys %{$questList} || !$quest_ready_after || time >= $quest_ready_after) { + $self->{is_on_stand_by} = 0; + } + } else { + $self->{is_on_stand_by} = 0; + } + } elsif ($callback_type eq 'recheck') { + my $quest_ready_after = $self->{quest_ready_after} // 0; + if (keys %{$questList} || !$quest_ready_after || time >= $quest_ready_after) { + $self->{is_on_stand_by} = 0; + } + } + + my $should_enable_dynamic_hooks = $self->{is_on_stand_by} ? 1 : 0; + my $dynamic_hooks_enabled = $self->{quest_standby_dynamic_hooks_enabled} ? 1 : 0; + if ($should_enable_dynamic_hooks != $dynamic_hooks_enabled) { + $self->add_or_remove_dynamic_hooks($should_enable_dynamic_hooks); + $self->{quest_standby_dynamic_hooks_enabled} = $should_enable_dynamic_hooks; + } + + return $self->{is_on_stand_by}; +} + # get NPC array index sub getnpcID { my $arg = $_[0]; @@ -741,4 +774,4 @@ sub find_hash_and_get_values { return @{$eventMacro->get_hash_values($var->{real_name})}; } -1; \ No newline at end of file +1; diff --git a/plugins/fixKafraPortals/fixKafraPortals.pl b/plugins/fixKafraPortals/fixKafraPortals.pl deleted file mode 100644 index 84aee1023c..0000000000 --- a/plugins/fixKafraPortals/fixKafraPortals.pl +++ /dev/null @@ -1,297 +0,0 @@ -# -# fixKafraPortals -# Author: Henrybk -# -# What this plugin does: -# This plugin listens to Kafra and Zonda teleport destination dialogs and uses -# the shown options to automatically update outdated entries in portals.txt. -# It is useful when a server changes Kafra warp prices, destination names, or -# response steps and you want OpenKore to keep using the correct portal data. -# -# How it works: -# - When you talk to a Kafra or Zonda NPC and the destination list appears, -# the plugin reads the available warp responses. -# - It matches each destination against the current portals database. -# - If the stored portal data has the wrong cost, missing ticket support, or -# outdated dialog step matching, the plugin rewrites that portal entry in -# portals.txt and reloads the portals data. -# -# How to configure it: -# This plugin does not require custom config.txt entries. -# Just place it in the plugins folder, enable it, and talk to Kafra/Zonda warp -# NPCs normally so the plugin can inspect their destination menu. -# -# Requirements and notes: -# - The NPC name must match "Kafra" or "Zonda". -# - Commented lines in portals.txt are ignored and left untouched. -# - The plugin can update existing entries, remove duplicates, add missing -# entries, and delete stale active entries no longer offered by the NPC. -# - It updates portal cost, enables ticket support, and refreshes the expected -# dialog step pattern used for the destination. -# -# Examples: -# 1. A Kafra in Prontera now charges 1200 zeny to warp to Aldebaran instead of -# the old value in portals.txt. Open the warp menu once and the plugin will -# detect the new price and update that line automatically. -# -# 2. A server changes the exact destination text shown in the teleport menu. -# If the destination can still be matched to a known map, the plugin updates -# the stored response step pattern to match the current dialog. -# -# 3. A portal entry was missing ticket support. After reading the NPC responses, -# the plugin rewrites the matching portals.txt entry with allow_ticket = 1. -# -# 4. A Kafra menu no longer offers one of the old destinations in portals.txt. -# The plugin removes that stale active entry for that NPC. -# -# Result: -# After updating the affected entries, the plugin reloads and recompiles portal -# data so route and NPC warp behavior can use the corrected values immediately. -# -package fixKafraPortals; - -use strict; -use File::Spec; -use Data::Dumper; -$Data::Dumper::Sortkeys = 1; - -use Plugins; -use Globals; -use Utils; -use Log qw(message warning error debug); -use Translation; - -use constant { PLUGIN_NAME => 'fixKafraPortals' }; - -Plugins::register( 'fixKafraPortals', 'updates Kafra Portals', \&Unload ); - -my $hooks = Plugins::addHooks( - [ 'npc_talk_responses', \&npc_responses, undef ], -); - -my $mapTable = { - 'Al De Baran' => 'aldebaran', - #'Alberta' => '', - 'Alberta Marina' => 'alberta', - 'Byalan Island' => 'izlu2dun', - #'Comodo' => '', - 'Dead Pit' => 'mjolnir_02', - #'Einbroch' => '', - #'Geffen' => '', - #'Izlude' => '', - 'Izlude Marina' => 'izlude', - 'Juno' => 'yuno', - #'Lighthalzen' => '', - #'Manuk' => '', - 'Midgard Allied Forces Post' => 'mid_camp', - 'Mjolnir\'s Dead Pit' => 'mjolnir_02', - 'Morroc' => 'morocc', - 'Orc Dungeon' => 'gef_fild10', - 'Orc Village' => 'gef_fild10', - #'Payon' => '', - 'Pharos' => 'cmd_fild07', - 'Pharos Lighthouse' => 'cmd_fild07', - #'Prontera' => '', - #'Rachel' => '', - #'Splendide' => '', - 'Sunken Ship' => 'alb2trea', - 'Turtle island' => 'tur_dun01', - #'Umbala' => '', - #'Veins' => '', -}; - -my $debug = 0; - -sub Unload { - Plugins::delHooks( $hooks ); - message sprintf( "[%s] Plugin unloading or reloading.\n", PLUGIN_NAME ), PLUGIN_NAME; -} - -sub getFixedName { - my ( $name ) = @_; - - my $lcName = lc($name); - - if (exists $maps_lut{$lcName.'.rsw'}) { - return $lcName; - - } elsif (exists $mapTable->{$name}) { - return $mapTable->{$name}; - - } else { - return undef; - } -} - -sub build_expected_response { - my ($destination) = @_; - my $destination_pattern = quotemeta($destination); - return "r~/(Warp|Teleport)/i r~/$destination_pattern/i"; -} - -sub parse_active_portal_line { - my ($line) = @_; - return if (!defined $line || $line =~ /^\s*#/); - - my $work = $line; - $work =~ s/\cM|\cJ//g; - $work =~ s/(.*?)(?:[\s\t]+#.*)?$/$1/; - $work =~ s/\s+/ /g; - $work =~ s/^\s+|\s+$//g; - - return if ($work eq ''); - - if ($work =~ /^([\w|@|-]+)\s(\d{1,3})\s(\d{1,3})\s([\w|@|-]+)\s(\d{1,3})\s(\d{1,3})(?:\s+(.*))?$/) { - return { - normalized => $work, - portalID => "$1 $2 $3", - destID => "$4 $5 $6", - destMap => $4, - misc => defined $7 ? $7 : '', - }; - } - - return; -} - -sub find_dest_id_for_map { - my ($portalID, $map) = @_; - - if (exists $portals_lut{$portalID} && exists $portals_lut{$portalID}{dest}) { - my @existing = sort grep { $portals_lut{$portalID}{dest}{$_}{map} eq $map } keys %{$portals_lut{$portalID}{dest}}; - return $existing[0] if (@existing); - } - - my %dest_counts; - foreach my $source_portal (keys %portals_lut) { - next unless (exists $portals_lut{$source_portal}{dest}); - foreach my $destID (keys %{$portals_lut{$source_portal}{dest}}) { - my $dest = $portals_lut{$source_portal}{dest}{$destID}; - next unless ($dest->{map} eq $map); - $dest_counts{$destID}++; - } - } - - if (%dest_counts) { - return (sort { $dest_counts{$b} <=> $dest_counts{$a} || $a cmp $b } keys %dest_counts)[0]; - } - - foreach my $location (sort keys %npcs_lut) { - my ($npc_map, $x, $y, $name) = split /\s+/, $location . ' ' . $npcs_lut{$location}, 4; - next unless (defined $npc_map && $npc_map eq $map); - next unless (defined $name && $name =~ /(Kafra|Zonda)/i); - return "$map $x $y"; - } - - return; -} - -sub npc_responses { - my ( $hook, $args ) = @_; - - my $ID = $args->{'ID'}; - my $npc = $npcsList->getByID($ID); - return unless ($npc); - - my $name = $args->{'name'}; - return unless ($name =~ /(Kafra|Zonda)/i); - - my $pos = $npc->{pos}; - my $x = $pos->{x}; - my $y = $pos->{y}; - - my $map = $field->baseName; - - my $portalID = "$map $x $y"; - - my $responses = $args->{'responses'}; - - return unless (ref($responses) eq 'ARRAY'); - return unless (scalar @{$responses} > 0); - - my @desired_lines; - my %desired_seen; - my $parsed_responses = 0; - - foreach my $resp (@{$responses}) { - if ($resp =~ /^(.+)\s+\S+\s+(\d+)\s*([zZ]|zeny)\.?/i) { - $parsed_responses++; - my $destination = $1; - my $cost = $2; - - my $fixedName = getFixedName($destination); - if (!defined $fixedName) { - warning "[fixKafraPortals] Could not resolve destination '$destination' for NPC '$portalID'.\n"; - next; - } - - my $destID = find_dest_id_for_map($portalID, $fixedName); - if (!defined $destID) { - warning "[fixKafraPortals] Could not find destination coordinates for '$destination' ($fixedName), skipping add/update.\n"; - next; - } - - my $expected_resp = build_expected_response($destination); - my $new_line = "$portalID $destID $cost 1 $expected_resp"; - - next if ($desired_seen{$destID}); - $desired_seen{$destID} = 1; - push @desired_lines, $new_line; - } - } - - return unless ($parsed_responses > 0); - if (!@desired_lines) { - warning "[fixKafraPortals] No valid destination lines were built for '$portalID', skipping file changes.\n"; - return; - } - - my $file = Settings::getTableFilename("portals.txt"); - - open my $fh, "<:encoding(UTF-8)", $file; - my @lines = <$fh>; - close $fh; - chomp @lines; - - my @new_lines; - my @current_active_lines; - my $insert_at; - - foreach my $line (@lines) { - my $parsed = parse_active_portal_line($line); - if ($parsed && $parsed->{portalID} eq $portalID) { - $insert_at = scalar @new_lines if (!defined $insert_at); - push @current_active_lines, $parsed->{normalized}; - next; - } - push @new_lines, $line; - } - - $insert_at = scalar @new_lines if (!defined $insert_at); - - my $current_serialized = join("\n", @current_active_lines); - my $desired_serialized = join("\n", @desired_lines); - return if ($current_serialized eq $desired_serialized); - - warning "[fixKafraPortals] ##################\n"; - warning "[fixKafraPortals] Rebuilding portal list for '$portalID'\n"; - warning "[fixKafraPortals] Active old entries: " . scalar(@current_active_lines) . " | New entries: " . scalar(@desired_lines) . "\n"; - warning "[fixKafraPortals] ##################\n"; - - splice(@new_lines, $insert_at, 0, @desired_lines); - - open my $wh, ">:utf8", $file; - print $wh join("\n", @new_lines) . "\n"; - close $wh; - - warning "[fixKafraPortals] Reloading portals\n"; - Settings::loadByRegexp(qr/portals/); - - warning "[fixKafraPortals] Recompiling portals\n"; - Misc::compilePortals(); - - warning "[fixKafraPortals] Reloading again\n"; - Settings::loadByRegexp(qr/portals/); -} - -1; diff --git a/plugins/fixKafraPosition/fixKafraPosition.pl b/plugins/fixKafraPosition/fixKafraPosition.pl deleted file mode 100644 index e9ddde090b..0000000000 --- a/plugins/fixKafraPosition/fixKafraPosition.pl +++ /dev/null @@ -1,104 +0,0 @@ -package fixKafraPosition; - -use strict; -use Plugins; -use Settings; -use Globals; -use Utils; -use Misc; -use Log qw(message error warning); -use Translation; -use Network; - -######### -# startup -Plugins::register('fixKafraPosition', '', \&Unload, \&Unload); - -my $hooks = Plugins::addHooks( - ['npc_teleport_missing', \&onmissTele, undef], - ['TalkNPC_npc_missing', \&onmissStorage, undef] -); - -# onUnload -sub Unload { - Plugins::delHooks($hooks); -} - -sub onmissStorage { - my ($self, $args) = @_; - - return if ($args->{plugin_retry} > 0); - - return unless (AI::action() eq "NPC" && AI::inQueue("storageAuto") && AI::args()->{'is_storageAuto'} == 1); - - my $closest; - my $closest_x; - my $closest_y; - my $closest_dist; - - foreach my $actor (@{$npcsList->getItems()}) { - my $pos = ($actor->isa('Actor::NPC')) ? $actor->{pos} : $actor->{pos_to}; - next if ($actor->{statuses}->{EFFECTSTATE_BURROW}); - next if ($config{avoidHiddenActors} && ($actor->{type} == 111 || $actor->{type} == 139 || $actor->{type} == 2337)); # HIDDEN_ACTOR TYPES - next unless (defined $actor->{name}); - next unless ($actor->{name} =~ /^Kafra Employee$/); - my $dist = blockDistance($char->{pos_to}, $pos); - next if (defined $closest && $closest_dist < $dist); - $closest = $actor; - $closest_dist = $dist; - $closest_x = $pos->{x}; - $closest_y = $pos->{y}; - } - - if (defined $closest) { - warning TF("[fixKafraPosition] [storage] Guessing our desired kafra to be %s (%s,%s).\n", $closest, $closest_x, $closest_y), "system"; - $args->{x} = $closest_x; - $args->{y} = $closest_y; - $args->{return} = 1; - } - - return; -} - -sub onmissTele { - my ($self, $args) = @_; - - return if ($args->{plugin_retry} > 0); - - my ($from,$to) = split(/=/, $args->{portal}); - - return unless ($portals_lut{$from}{dest}{$to}{allow_ticket}); - - - my $closest_portal_binID; - my $closest_portal_dist; - my $closest; - my $closest_x; - my $closest_y; - - foreach my $actor (@{$npcsList->getItems()}) { - my $pos = ($actor->isa('Actor::NPC')) ? $actor->{pos} : $actor->{pos_to}; - next if ($actor->{statuses}->{EFFECTSTATE_BURROW}); - next if ($config{avoidHiddenActors} && ($actor->{type} == 111 || $actor->{type} == 139 || $actor->{type} == 2337)); # HIDDEN_ACTOR TYPES - next unless (defined $actor->{name}); - next unless ($actor->{name} =~ /^Kafra Employee$/); - my $dist = blockDistance($char->{pos_to}, $pos); - next if (defined $closest_portal_dist && $closest_portal_dist < $dist); - $closest_portal_binID = $actor->{binID}; - $closest_portal_dist = $dist; - $closest = $actor; - $closest_x = $pos->{x}; - $closest_y = $pos->{y}; - } - - if (defined $closest_portal_binID) { - warning TF("[fixKafraPosition] [teleport] Guessing our desired kafra to be %s (%s,%s).\n", $closest, $closest_x, $closest_y), "system"; - $args->{x} = $closest_x; - $args->{y} = $closest_y; - $args->{return} = 1; - } - - return; -} - -return 1; diff --git a/plugins/fixKafraPositionAndPortals/fixKafraPositionAndPortals.pl b/plugins/fixKafraPositionAndPortals/fixKafraPositionAndPortals.pl new file mode 100644 index 0000000000..824b09f83a --- /dev/null +++ b/plugins/fixKafraPositionAndPortals/fixKafraPositionAndPortals.pl @@ -0,0 +1,502 @@ +# fixKafraPositionAndPortals +# Author: Henrybk +# +# Merges fixKafraPosition and fixKafraPortals. +# - Keeps the storage Kafra guessing behavior. +# - Keeps the teleport Kafra guessing behavior. +# - Updates outdated Kafra/Zonda portal entries in portals.txt. +# - When a teleport retry had to guess the real NPC position, it rewrites the +# old stale portal block using the guessed live NPC position. +# - Uses TalkNPC_reset and npc_teleport_error to restart the live route with +# refreshed portal data, and asks MapRoute to recalculate after a wrong NPC +# step instead of retrying the stale live step. +# +package fixKafraPositionAndPortals; + +use strict; +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; + +use AI; +use Plugins; +use Settings; +use Globals; +use Utils; +use Misc; +use Log qw(message warning); +use Translation; + +use constant { + PLUGIN_NAME => 'fixKafraPositionAndPortals', + GUESS_TTL => 180, +}; + +Plugins::register(PLUGIN_NAME, 'fixes Kafra positions and portal data', \&Unload, \&Unload); + +my $hooks = Plugins::addHooks( + ['npc_teleport_missing', \&onmissTele, undef], + ['npc_teleport_error', \&onTeleportError, undef], + ['TalkNPC_npc_missing', \&onmissStorage, undef], + ['npc_talk_responses', \&npc_responses, undef], +); + +my %teleport_guess_by_actual_portal; +my %teleport_refresh_by_portal; + +my $mapTable = { + 'Al De Baran' => 'aldebaran', + #'Alberta' => '', + 'Alberta Marina' => 'alberta', + 'Byalan Island' => 'izlu2dun', + #'Comodo' => '', + 'Dead Pit' => 'mjolnir_02', + #'Einbroch' => '', + #'Geffen' => '', + #'Izlude' => '', + 'Izlude Marina' => 'izlude', + 'Juno' => 'yuno', + #'Lighthalzen' => '', + #'Manuk' => '', + 'Midgard Allied Forces Post' => 'mid_camp', + 'Mjolnir\'s Dead Pit' => 'mjolnir_02', + 'Morroc' => 'morocc', + 'Orc Dungeon' => 'gef_fild10', + 'Orc Village' => 'gef_fild10', + #'Payon' => '', + 'Pharos' => 'cmd_fild07', + 'Pharos Lighthouse' => 'cmd_fild07', + 'Comodo Pharos Beacon' => 'cmd_fild07', + #'Prontera' => '', + #'Rachel' => '', + #'Splendide' => '', + 'Sunken Ship' => 'alb2trea', + 'Turtle island' => 'tur_dun01', + #'Umbala' => '', + #'Veins' => '', +}; + +sub Unload { + Plugins::delHooks($hooks); + %teleport_guess_by_actual_portal = (); + %teleport_refresh_by_portal = (); + message sprintf("[%s] Plugin unloading or reloading.\n", PLUGIN_NAME), PLUGIN_NAME; +} + +sub cleanup_old_state { + my $now = time; + foreach my $portalID (keys %teleport_guess_by_actual_portal) { + delete $teleport_guess_by_actual_portal{$portalID} + if !$teleport_guess_by_actual_portal{$portalID}{time} + || $now - $teleport_guess_by_actual_portal{$portalID}{time} > GUESS_TTL; + } + foreach my $portalID (keys %teleport_refresh_by_portal) { + delete $teleport_refresh_by_portal{$portalID} + if !$teleport_refresh_by_portal{$portalID}{time} + || $now - $teleport_refresh_by_portal{$portalID}{time} > GUESS_TTL; + } +} + +sub find_closest_kafra_employee { + my $closest; + my $closest_dist; + my $closest_x; + my $closest_y; + + foreach my $actor (@{$npcsList->getItems()}) { + my $pos = ($actor->isa('Actor::NPC')) ? $actor->{pos} : $actor->{pos_to}; + next if ($actor->{statuses}->{EFFECTSTATE_BURROW}); + next if ($config{avoidHiddenActors} && ($actor->{type} == 111 || $actor->{type} == 139 || $actor->{type} == 2337)); + next unless defined $actor->{name}; + next unless $actor->{name} =~ /^Kafra Employee$/; + my $dist = blockDistance($char->{pos_to}, $pos); + next if defined $closest && $closest_dist < $dist; + $closest = $actor; + $closest_dist = $dist; + $closest_x = $pos->{x}; + $closest_y = $pos->{y}; + } + + return ($closest, $closest_x, $closest_y); +} + +sub store_teleport_guess { + my ($args, $closest_x, $closest_y) = @_; + + return unless $field; + + my $map = $field->baseName; + my $original_portalID = "$map $args->{x} $args->{y}"; + my $actual_portalID = "$map $closest_x $closest_y"; + + $teleport_guess_by_actual_portal{$actual_portalID} = { + time => time, + portal => $args->{portal}, + replace_portalID => $original_portalID, + actual_portalID => $actual_portalID, + }; +} + +sub onmissStorage { + my ($self, $args) = @_; + + return if ($args->{plugin_retry} > 0); + return unless (AI::action() eq 'NPC' && AI::inQueue('storageAuto') && AI::args()->{'is_storageAuto'} == 1); + + my ($closest, $closest_x, $closest_y) = find_closest_kafra_employee(); + + if (defined $closest) { + warning TF("[%s] [storage] Guessing our desired kafra to be %s (%s,%s).\n", PLUGIN_NAME, $closest, $closest_x, $closest_y), 'system'; + $args->{x} = $closest_x; + $args->{y} = $closest_y; + $args->{return} = 1; + } +} + +sub onmissTele { + my ($self, $args) = @_; + + return if ($args->{plugin_retry} > 0); + + my ($from, $to) = split(/=/, $args->{portal}); + return unless ($portals_lut{$from}{dest}{$to}{allow_ticket}); + + my ($closest, $closest_x, $closest_y) = find_closest_kafra_employee(); + + if (defined $closest) { + store_teleport_guess($args, $closest_x, $closest_y); + warning TF("[%s] [teleport] Guessing our desired kafra to be %s (%s,%s).\n", PLUGIN_NAME, $closest, $closest_x, $closest_y), 'system'; + $args->{x} = $closest_x; + $args->{y} = $closest_y; + $args->{return} = 1; + } +} + +sub normalize_menu_destination_name { + my ($name) = @_; + return '' unless defined $name; + + my $normalized = lc($name); + $normalized =~ s/([a-z0-9])(?:`|'|\x{2019})s\b/$1/g; + $normalized =~ s/[`'".]//g; + $normalized =~ s/[^a-z0-9]+/ /g; + $normalized =~ s/\s+/ /g; + $normalized =~ s/^\s+|\s+$//g; + return $normalized; +} + +sub getFixedName { + my ($name) = @_; + + my $lcName = lc($name); + + if (exists $maps_lut{$lcName . '.rsw'}) { + return $lcName; + } elsif (exists $mapTable->{$name}) { + return $mapTable->{$name}; + } + + my $normalized_name = normalize_menu_destination_name($name); + foreach my $alias (keys %{$mapTable}) { + next unless normalize_menu_destination_name($alias) eq $normalized_name; + return $mapTable->{$alias}; + } + + return undef; +} + +sub build_expected_response { + my ($destination) = @_; + my $destination_pattern = quotemeta($destination); + return "r~/(Warp|Teleport)/i r~/$destination_pattern/i"; +} + +sub parse_active_portal_line { + my ($line) = @_; + return if (!defined $line || $line =~ /^\s*#/); + + my $work = $line; + $work =~ s/\cM|\cJ//g; + $work =~ s/(.*?)(?:[\s\t]+#.*)?$/$1/; + $work =~ s/\s+/ /g; + $work =~ s/^\s+|\s+$//g; + + return if ($work eq ''); + + if ($work =~ /^([\w|@|-]+)\s(\d{1,3})\s(\d{1,3})\s([\w|@|-]+)\s(\d{1,3})\s(\d{1,3})(?:\s+(.*))?$/) { + return { + normalized => $work, + portalID => "$1 $2 $3", + destID => "$4 $5 $6", + destMap => $4, + misc => defined $7 ? $7 : '', + }; + } + + return; +} + +sub find_dest_id_for_map { + my ($portalIDs, $map) = @_; + + my %seen_portal; + my @portalIDs = grep { defined $_ && !$seen_portal{$_}++ } @{ $portalIDs || [] }; + + foreach my $portalID (@portalIDs) { + if (exists $portals_lut{$portalID} && exists $portals_lut{$portalID}{dest}) { + my @existing = sort grep { $portals_lut{$portalID}{dest}{$_}{map} eq $map } keys %{$portals_lut{$portalID}{dest}}; + return $existing[0] if @existing; + } + } + + my %dest_counts; + foreach my $source_portal (keys %portals_lut) { + next unless exists $portals_lut{$source_portal}{dest}; + foreach my $destID (keys %{$portals_lut{$source_portal}{dest}}) { + my $dest = $portals_lut{$source_portal}{dest}{$destID}; + next unless $dest->{map} eq $map; + $dest_counts{$destID}++; + } + } + + if (%dest_counts) { + return (sort { $dest_counts{$b} <=> $dest_counts{$a} || $a cmp $b } keys %dest_counts)[0]; + } + + foreach my $location (sort keys %npcs_lut) { + my ($npc_map, $x, $y, $name) = split /\s+/, $location . ' ' . $npcs_lut{$location}, 4; + next unless defined $npc_map && $npc_map eq $map; + next unless defined $name && $name =~ /(Kafra|Zonda)/i; + return "$map $x $y"; + } + + return; +} + +sub find_portal_dest_id_for_target_map { + my ($portalID, $target_map, $preferred_destID) = @_; + + return unless $portalID; + return unless exists $portals_lut{$portalID}; + return unless exists $portals_lut{$portalID}{dest}; + + if (defined $preferred_destID && exists $portals_lut{$portalID}{dest}{$preferred_destID}) { + return $preferred_destID; + } + + return unless defined $target_map; + + my @matches = sort grep { + $portals_lut{$portalID}{dest}{$_}{map} eq $target_map + } keys %{$portals_lut{$portalID}{dest}}; + + return $matches[0] if @matches; + return; +} + +sub store_portal_refresh { + my ($replace_portalID, $actual_portalID, $old_dest_map_by_id, $desired_dest_by_map) = @_; + + return unless $replace_portalID; + return unless $actual_portalID; + + $teleport_refresh_by_portal{$replace_portalID} = { + time => time, + actual_portalID => $actual_portalID, + old_dest_map_by_id => $old_dest_map_by_id || {}, + desired_dest_by_map => $desired_dest_by_map || {}, + }; +} + +sub onTeleportError { + my ($hook, $args) = @_; + + cleanup_old_state(); + + return unless $args->{portal}; + + my ($replace_portalID, $preferred_destID) = split(/=/, $args->{portal}, 2); + return unless $replace_portalID; + + my $refresh = $teleport_refresh_by_portal{$replace_portalID}; + return unless $refresh; + + my $actual_portalID = $refresh->{actual_portalID}; + return unless $actual_portalID; + + my $target_map = $refresh->{old_dest_map_by_id}{$preferred_destID}; + if (!defined $target_map && defined $preferred_destID && exists $portals_lut{$actual_portalID}{dest}{$preferred_destID}) { + $target_map = $portals_lut{$actual_portalID}{dest}{$preferred_destID}{map}; + } + + my $updated_dest; + if (defined $target_map && exists $portals_lut{$actual_portalID} && exists $portals_lut{$actual_portalID}{dest}) { + $updated_dest = $refresh->{desired_dest_by_map}{$target_map}; + if (!defined $updated_dest) { + my $new_destID = find_portal_dest_id_for_target_map($actual_portalID, $target_map, $preferred_destID); + if (defined $new_destID && exists $portals_lut{$actual_portalID}{dest}{$new_destID}) { + $updated_dest = { + destID => $new_destID, + steps => $portals_lut{$actual_portalID}{dest}{$new_destID}{steps}, + allow_ticket => $portals_lut{$actual_portalID}{dest}{$new_destID}{allow_ticket}, + }; + } + } + } + + $args->{recalculate} = 1; + $args->{return} = 1; + delete $teleport_refresh_by_portal{$replace_portalID}; + + if ($updated_dest) { + my $new_portal = "$actual_portalID=$updated_dest->{destID}"; + warning TF("[%s] Portal data changed from '%s' to '%s'; asking MapRoute to recalculate.\n", PLUGIN_NAME, $replace_portalID, $new_portal); + } else { + warning TF("[%s] Portal data changed for '%s'; refreshed menu may differ from the old target, asking MapRoute to recalculate.\n", PLUGIN_NAME, $replace_portalID); + } +} + +sub npc_responses { + my ($hook, $args) = @_; + + cleanup_old_state(); + + my $ID = $args->{ID}; + my $npc = $npcsList->getByID($ID); + return unless $npc; + + my $name = $args->{name}; + return unless $name =~ /(Kafra|Zonda)/i; + + my $pos = $npc->{pos}; + my $x = $pos->{x}; + my $y = $pos->{y}; + my $map = $field->baseName; + + my $actual_portalID = "$map $x $y"; + my $replace_portalID = $actual_portalID; + my @lookup_portalIDs = ($actual_portalID); + + if (my $guess = $teleport_guess_by_actual_portal{$actual_portalID}) { + $replace_portalID = $guess->{replace_portalID} if $guess->{replace_portalID}; + push @lookup_portalIDs, $guess->{replace_portalID} if $guess->{replace_portalID}; + } + + my $responses = $args->{responses}; + return unless ref($responses) eq 'ARRAY'; + return unless scalar @{$responses} > 0; + + my @desired_lines; + my %desired_seen; + my %desired_dest_by_map; + my $parsed_responses = 0; + + foreach my $resp (@{$responses}) { + if ($resp =~ /^(.+)\s+\S+\s+(\d+)\s*([zZ]|zeny)\.?/i) { + $parsed_responses++; + my $destination = $1; + my $cost = $2; + + my $fixedName = getFixedName($destination); + if (!defined $fixedName) { + warning '[' . PLUGIN_NAME . "] Could not resolve destination '$destination' for NPC '$actual_portalID'.\n"; + next; + } + + my $destID = find_dest_id_for_map(\@lookup_portalIDs, $fixedName); + if (!defined $destID) { + warning '[' . PLUGIN_NAME . "] Could not find destination coordinates for '$destination' ($fixedName), skipping add/update.\n"; + next; + } + + my $expected_resp = build_expected_response($destination); + my $new_line = "$actual_portalID $destID $cost 1 $expected_resp"; + $desired_dest_by_map{$fixedName} = { + destID => $destID, + steps => $expected_resp, + allow_ticket => 1, + }; + + next if $desired_seen{$destID}; + $desired_seen{$destID} = 1; + push @desired_lines, $new_line; + } + } + + return unless $parsed_responses > 0; + delete $teleport_guess_by_actual_portal{$actual_portalID}; + + if (!@desired_lines) { + warning '[' . PLUGIN_NAME . "] No valid destination lines were built for '$actual_portalID', skipping file changes.\n"; + return; + } + + my $file = Settings::getTableFilename('portals.txt'); + + open my $fh, '<:encoding(UTF-8)', $file or do { + warning '[' . PLUGIN_NAME . "] Could not open $file for reading.\n"; + return; + }; + my @lines = <$fh>; + close $fh; + chomp @lines; + + my @new_lines; + my @current_active_lines; + my $insert_at; + my %old_dest_map_by_id; + + foreach my $line (@lines) { + my $parsed = parse_active_portal_line($line); + if ($parsed && ($parsed->{portalID} eq $replace_portalID || $parsed->{portalID} eq $actual_portalID)) { + $insert_at = scalar @new_lines if !defined $insert_at; + push @current_active_lines, $parsed->{normalized}; + $old_dest_map_by_id{$parsed->{destID}} = $parsed->{destMap} if $parsed->{destMap}; + next; + } + push @new_lines, $line; + } + + $insert_at = scalar @new_lines if !defined $insert_at; + + my $current_serialized = join("\n", @current_active_lines); + my $desired_serialized = join("\n", @desired_lines); + return if $current_serialized eq $desired_serialized; + + warning '[' . PLUGIN_NAME . "] ##################\n"; + warning '[' . PLUGIN_NAME . "] Rebuilding portal list for '$replace_portalID' using live NPC '$actual_portalID'\n"; + warning '[' . PLUGIN_NAME . "] Active old entries: " . scalar(@current_active_lines) . ' | New entries: ' . scalar(@desired_lines) . "\n"; + warning '[' . PLUGIN_NAME . "] ##################\n"; + + splice(@new_lines, $insert_at, 0, @desired_lines); + + open my $wh, '>:utf8', $file or do { + warning '[' . PLUGIN_NAME . "] Could not open $file for writing.\n"; + return; + }; + print $wh join("\n", @new_lines) . "\n"; + close $wh; + + warning '[' . PLUGIN_NAME . "] Reloading portals\n"; + Settings::loadByRegexp(qr/portals/); + + warning '[' . PLUGIN_NAME . "] Recompiling portals\n"; + Misc::compilePortals(); + + warning '[' . PLUGIN_NAME . "] Reloading again\n"; + Settings::loadByRegexp(qr/portals/); + + store_portal_refresh($replace_portalID, $actual_portalID, \%old_dest_map_by_id, \%desired_dest_by_map); + + Plugins::callHook('TalkNPC_reset', { + x => $x, + y => $y, + message => TF("[%s] Portal data changed for this Kafra. Resetting conversation to retry with refreshed steps.", PLUGIN_NAME), + }); +} + +1; + + + + + diff --git a/plugins/xConf/xConf.pl b/plugins/xConf/xConf.pl index 25587e35bc..1a20929f4f 100644 --- a/plugins/xConf/xConf.pl +++ b/plugins/xConf/xConf.pl @@ -318,6 +318,9 @@ sub on_bulk_mconf { my ($hook, $args) = @_; _bulk_write_control_entries('mon_control.txt', $args->{changes}, \%mon_control, sub { my ($key) = @_; + if (exists $monstersTable{$key} && exists $monstersTable{$key}{Name}) { + return $monstersTable{$key}{Name}; + } return $monsters_lut{$key} || $key; }); } diff --git a/src/AI/Attack.pm b/src/AI/Attack.pm index 5c92bb8c65..374f3388a1 100644 --- a/src/AI/Attack.pm +++ b/src/AI/Attack.pm @@ -383,14 +383,21 @@ sub find_kite_position { } } -sub main { - my $args = AI::args(); - - Benchmark::begin("ai_attack (part 1)") if DEBUG; - Benchmark::begin("ai_attack (part 1.1)") if DEBUG; - # The attack sequence hasn't timed out and the monster is on screen +sub resolve_movetoattack_pos { + my ($actor) = @_; + return unless (actorFinishedMovement($actor, $field)); + debug TF("[Attack] [%s] Fixing failed to attack target, setting actor position to: %s %s\n", $actor, $char->{movetoattack_pos}{x}, $char->{movetoattack_pos}{y} ), "ai_attack"; + $actor->{pos}{x} = $actor->{movetoattack_pos}{x}; + $actor->{pos}{y} = $actor->{movetoattack_pos}{y}; + $actor->{pos_to}{x} = $actor->{movetoattack_pos}{x}; + $actor->{pos_to}{y} = $actor->{movetoattack_pos}{y}; + $actor->{time_move} = time; + $actor->{time_move_calc} = 0; + $actor->{solution} = []; + delete $actor->{movetoattack_pos}; +} - # Update information about the monster and the current situation +sub main { my $args = AI::args(); my $ID = $args->{ID}; @@ -403,6 +410,10 @@ sub main { Plugins::callHook('undefined_object_id'); } + Benchmark::begin("ai_attack (part 1)") if DEBUG; + Benchmark::begin("ai_attack (part 1.1)") if DEBUG; + # The attack sequence hasn't timed out and the monster is on screen + my $target = Actor::get($ID); if (!exists $args->{temporary_extra_range} || !defined $args->{temporary_extra_range}) { @@ -413,18 +424,7 @@ sub main { if (!exists $char->{movetoattack_targetID} || $char->{movetoattack_targetID} ne $ID || $char->{time_move} > $char->{movetoattack_time}) { delete $char->{movetoattack_pos}; } else { - my $time_since_char_moved = time - $char->{time_move}; - if ($time_since_char_moved > $char->{time_move_calc}) { - debug "[Attack] [Char] Fixing failed to attack target, setting char position to: $char->{movetoattack_pos}{x} $char->{movetoattack_pos}{y}\n", "ai_attack"; - $char->{pos}{x} = $char->{movetoattack_pos}{x}; - $char->{pos}{y} = $char->{movetoattack_pos}{y}; - $char->{pos_to}{x} = $char->{movetoattack_pos}{x}; - $char->{pos_to}{y} = $char->{movetoattack_pos}{y}; - $char->{time_move} = time; - $char->{time_move_calc} = 0; - $char->{solution} = []; - delete $char->{movetoattack_pos}; - } + resolve_movetoattack_pos($char); } } @@ -432,19 +432,7 @@ sub main { if ($target->{time_move} > $target->{movetoattack_time}) { delete $target->{movetoattack_pos}; } else { - my $target_solution = get_solution($field, $target->{pos}, $target->{pos_to}); - my $target_time_to_move = calcTimeFromSolution($target_solution, $target->{walk_speed}); - my $time_since_target_moved = time - $target->{time_move}; - if ($time_since_target_moved > $target_time_to_move) { - debug "[Attack] [Target] Fixing failed to attack target, setting target $target position to: $target->{movetoattack_pos}{x} $target->{movetoattack_pos}{y}\n", "ai_attack"; - $target->{pos}{x} = $target->{movetoattack_pos}{x}; - $target->{pos}{y} = $target->{movetoattack_pos}{y}; - $target->{pos_to}{x} = $target->{movetoattack_pos}{x}; - $target->{pos_to}{y} = $target->{movetoattack_pos}{y}; - $target->{time_move} = time; - $target->{time_move_calc} = 0; - delete $target->{movetoattack_pos}; - } + resolve_movetoattack_pos($target); } } @@ -455,8 +443,8 @@ sub main { my $monsterPos = $target->{pos_to}; my $monsterDist = blockDistance($myPosTo, $monsterPos); - my $realMyPos = calcPosFromPathfinding($field, $char, $extra_time); - my $realMonsterPos = calcPosFromPathfinding($field, $target, $extra_time); + my $realMyPos = calcPosFromPathfinding($field, $char, $extra_time, 1); + my $realMonsterPos = calcPosFromPathfinding($field, $target, $extra_time, 1); my $realMonsterDist = blockDistance($realMyPos, $realMonsterPos); my $clientDist = getClientDist($realMyPos, $realMonsterPos); @@ -738,7 +726,7 @@ sub main { my $futureMonsterPos = calcPosFromPathfinding($field, $target, ($extra_time + $timeout{'ai_attack_allowed_waitForTarget'}{'timeout'})); my $futurecanAttack = canAttack($field, $realMyPos, $futureMonsterPos, $config{attackCanSnipe}, $args->{attackMethod}{maxDistance}, $config{clientSight}); if ($futurecanAttack) { - warning TF("[Attack] You currently cannot attack, but will be able to in up to [%s secs], waiting. %s (%d %d), target %s (%d %d) [(%d %d) -> (%d %d)])\n", + debug TF("[Attack] You currently cannot attack, but will be able to in up to [%s secs], waiting. %s (%d %d), target %s (%d %d) [(%d %d) -> (%d %d)])\n", $timeout{'ai_attack_allowed_waitForTarget'}{'timeout'}, $char, $realMyPos->{x}, $realMyPos->{y}, $target, $realMonsterPos->{x}, $realMonsterPos->{y}, $target->{pos}{x}, $target->{pos}{y}, $target->{pos_to}{x}, $target->{pos_to}{y}), 'ai_attack'; $found_action = 1; } diff --git a/src/AI/CoreLogic.pm b/src/AI/CoreLogic.pm index 2b10432876..72daa10893 100644 --- a/src/AI/CoreLogic.pm +++ b/src/AI/CoreLogic.pm @@ -117,7 +117,7 @@ sub iterate { ##### AUTOMATIC AI STARTS HERE ##### - Plugins::callHook('AI_pre'); + Plugins::callHook('AI_pre', {state => AI::state()}); Benchmark::begin("AI (part 2)") if DEBUG; ChatQueue::processFirst; @@ -153,6 +153,8 @@ sub iterate { Misc::checkValidity("AI (autocart)"); Benchmark::end("AI (part 3.1)") if DEBUG; + Plugins::callHook('AI_middle', {state => AI::state()}); + Benchmark::begin("AI (part 3.2)") if DEBUG; processLockMap(); processRescueSlave(); @@ -217,7 +219,7 @@ sub iterate { } - Plugins::callHook('AI_post'); + Plugins::callHook('AI_post', {state => AI::state()}); } @@ -3081,6 +3083,8 @@ sub processAutoAttack { my $aggressiveType = ($effectiveAttackMode >= 2) ? 2 : 0; @aggressives = ai_getAggressives($aggressiveType, $party) if $effectiveAttackMode >= 0; + my $myPos = calcPosFromPathfinding($field, $char); + # List party monsters foreach (@monstersID) { next if (!$_ || !checkMonsterCleanness($_)); @@ -3162,7 +3166,6 @@ sub processAutoAttack { && !$monster->{dmgFromYou} ); - my $myPos = calcPosition($char); my $target_pos = calcPosition($monster); # TODO: Is there any situation where we should use calcPosFromPathfinding or calcPosFromTime here? next unless ($control->{dist} eq '' || blockDistance($target_pos, $myPos) <= $control->{dist}); @@ -3264,7 +3267,7 @@ sub processItemsAutoGather { my $bestItem; my $smallestDist; - my $myPos = calcPosition($char); + my $myPos = calcPosFromPathfinding($field, $char); my $minPlayerDist = $config{itemsGatherAutoMinPlayerDistance} || 6; my $minPortalDist = $config{itemsGatherAutoMinPortalDistance} || 5; @@ -3419,6 +3422,7 @@ sub processAutoTeleport { ##### TELEPORT MONSTER ##### if ($safe && timeOut($timeout{ai_teleport_away})) { + my $realMyPos = calcPosFromPathfinding($field, $char); foreach (@monstersID) { next unless $_; my $teleAuto = mon_control($monsters{$_}{name},$monsters{$_}{nameID})->{teleport_auto}; @@ -3431,11 +3435,10 @@ sub processAutoTeleport { return; } elsif ($teleAuto < 0 && !$char->{dead}) { # TODO: Is there any situation where we should use calcPosFromPathfinding or calcPosFromTime here? - my $pos = calcPosition($monsters{$_}); - my $myPos = calcPosition($char); - my $dist = blockDistance($pos, $myPos); + my $pos = calcPosFromPathfinding($field, $monsters{$_}); + my $dist = blockDistance($pos, $realMyPos); if ($dist <= abs($teleAuto)) { - if ($field->canMove($myPos, $pos)) { + if ($field->canMove($realMyPos, $pos)) { message TF("Teleporting due to monster being too close %s\n", $monsters{$_}{name}), "teleport"; $ai_v{temp}{clear_aiQueue} = 1; ai_useTeleport(1); diff --git a/src/AI/Slave.pm b/src/AI/Slave.pm index 8f63f19e55..57e14a96cd 100644 --- a/src/AI/Slave.pm +++ b/src/AI/Slave.pm @@ -566,7 +566,7 @@ sub processAutoAttack { my @partyMonsters; my @cleanMonsters; # TODO: Is there any situation where we should use calcPosFromPathfinding or calcPosFromTime here? - my $myPos = calcPosition($slave); + my $myPos = calcPosFromPathfinding($field, $slave); # List aggressive monsters my $party = ($effectiveAttackMode >= 1 && $config{$slave->{configPrefix}.'attackAuto_party'}) ? 1 : 0; diff --git a/src/AI/SlaveAttack.pm b/src/AI/SlaveAttack.pm index 244241ec59..e118b5b239 100644 --- a/src/AI/SlaveAttack.pm +++ b/src/AI/SlaveAttack.pm @@ -361,8 +361,8 @@ sub main { my $extra_time = exists $timeout{'ai_route_position_prediction_delay'}{'timeout'} ? $timeout{'ai_route_position_prediction_delay'}{'timeout'} : 0.1; $extra_time = 0 unless defined $extra_time; - my $realMyPos = calcPosFromPathfinding($field, $slave, $extra_time); - my $realMonsterPos = calcPosFromPathfinding($field, $target, $extra_time); + my $realMyPos = calcPosFromPathfinding($field, $slave, $extra_time, 1); + my $realMonsterPos = calcPosFromPathfinding($field, $target, $extra_time, 1); my $realMonsterDist = blockDistance($realMyPos, $realMonsterPos); my $clientDist = getClientDist($realMyPos, $realMonsterPos); @@ -628,7 +628,7 @@ sub main { my $futureMonsterPos = calcPosFromPathfinding($field, $target, ($extra_time + $timeout{'ai_attack_allowed_waitForTarget'}{'timeout'})); my $futurecanAttack = canAttack($field, $realMyPos, $futureMonsterPos, $config{$slave->{configPrefix}.'attackCanSnipe'}, $args->{attackMethod}{maxDistance}, $config{clientSight}); if ($futurecanAttack) { - warning TF("[SlaveAttack] %s currently cannot attack, but will be able to in up to [%s secs], waiting. %s (%d %d), target %s (%d %d) [(%d %d) -> (%d %d)])\n", + debug TF("[SlaveAttack] %s currently cannot attack, but will be able to in up to [%s secs], waiting. %s (%d %d), target %s (%d %d) [(%d %d) -> (%d %d)])\n", $slave, $timeout{'ai_attack_allowed_waitForTarget'}{'timeout'}, $slave, $realMyPos->{x}, $realMyPos->{y}, $target, $realMonsterPos->{x}, $realMonsterPos->{y}, $target->{pos}{x}, $target->{pos}{y}, $target->{pos_to}{x}, $target->{pos_to}{y}), 'ai_attack'; $found_action = 1; } diff --git a/src/FileParsers.pm b/src/FileParsers.pm index 853e16ec3c..c341c85f61 100644 --- a/src/FileParsers.pm +++ b/src/FileParsers.pm @@ -89,7 +89,7 @@ our @EXPORT = qw( # monsters: Return hash # # Parses a monster DB file in the format: -# ID Level HP AttackRange SkillRange AttackDelay AttackMotion Size Race Element ElementLevel ChaseRange [Ai] +# ID Level HP AttackRange SkillRange AttackDelay AttackMotion Size Race Element ElementLevel ChaseRange [Ai] [Name] sub parseMonstersTableFile { my $file = shift; my $r_hash = shift; @@ -106,28 +106,35 @@ sub parseMonstersTableFile { next if $line =~ /^#/; # Skip optional header line - next if $line =~ /^ID\s+Level\s+HP\s+AttackRange\s+SkillRange\s+AttackDelay\s+AttackMotion\s+Size\s+Race\s+Element\s+ElementLevel\s+ChaseRange(?:\s+Ai)?$/i; - - my @fields = split /\s+/, $line; - next unless @fields >= 12; - - my ( - $id, - $level, - $hp, - $attackRange, - $skillRange, - $attackDelay, - $attackMotion, - $size, - $race, - $element, - $elementLevel, - $chaseRange, - $ai - ) = @fields; + next if $line =~ /^ID\s+Level\s+HP\s+AttackRange\s+SkillRange\s+AttackDelay\s+AttackMotion\s+Size\s+Race\s+Element\s+ElementLevel\s+ChaseRange(?:\s+Ai)?(?:\s+Name)?$/i; + + my ($id, $level, $hp, $attackRange, $skillRange, $attackDelay, $attackMotion, + $size, $race, $element, $elementLevel, $chaseRange, $ai, $name); + + if (index($line, "\t") != -1) { + my @fields = split /\t+/, $line; + next unless @fields >= 12; + + ( + $id, $level, $hp, $attackRange, $skillRange, $attackDelay, + $attackMotion, $size, $race, $element, $elementLevel, $chaseRange + ) = @fields[0 .. 11]; + $ai = (defined $fields[12] && $fields[12] ne '') ? $fields[12] : '06'; + $name = @fields > 13 ? join("\t", @fields[13 .. $#fields]) : undef; + } else { + my @fields = split /\s+/, $line; + next unless @fields >= 12; + + ( + $id, $level, $hp, $attackRange, $skillRange, $attackDelay, + $attackMotion, $size, $race, $element, $elementLevel, $chaseRange, $ai + ) = @fields; + $ai = (defined $ai && $ai ne '') ? $ai : '06'; + $name = @fields > 13 ? join(' ', @fields[13 .. $#fields]) : undef; + } next unless defined $id && $id =~ /^\d+$/; + $name =~ s/^\s+|\s+$//g if defined $name; $r_hash->{$id}->{ID} = $id; $r_hash->{$id}->{Level} = $level; @@ -142,6 +149,7 @@ sub parseMonstersTableFile { $r_hash->{$id}->{ElementLevel} = $elementLevel; $r_hash->{$id}->{ChaseRange} = $chaseRange; $r_hash->{$id}->{Ai} = defined $ai ? $ai : '06'; + $r_hash->{$id}->{Name} = $name if defined $name && $name ne ''; } return 1; diff --git a/src/Misc.pm b/src/Misc.pm index 7b2b689ca0..445dbf0ec4 100644 --- a/src/Misc.pm +++ b/src/Misc.pm @@ -374,6 +374,11 @@ sub applyDynamicPortalStates { next unless exists $portals_lut{$source}{dest}{$destID}; my $enabled = _dynamicPortalSelectionMatches($selection, $destID) ? 1 : 0; $portals_lut{$source}{dest}{$destID}{enabled} = $enabled; + if ($enabled) { + debug "Dynamic portal enabled for group $group->{config_key}: $source -> $destID\n", "route", 1; + } elsif (!$enabled) { + debug "Dynamic portal disabled for group $group->{config_key}: $source -> $destID\n", "route", 2; + } $matched ||= $enabled; } } @@ -546,12 +551,6 @@ sub bulkConfigModify { my %changed_keys; foreach my $key (keys %{$r_hash}) { my $val = $r_hash->{$key}; - Plugins::callHook('configModify', { - key => $key, - val => $val, - silent => $silent, - bulk => 1 - }); my $local_silent = ($silent || $key =~ /password/i) ? 1 : 0; @@ -583,10 +582,19 @@ sub bulkConfigModify { message TF("Config '%s' set to %s (was %s)\n", $key, $val, $config{$key}), "info" unless ($local_silent); } } + + Plugins::callHook('configModify', { + key => $key, + val => $val, + silent => $silent, + bulk => 1 + }); $changed_keys{$key} = 1; $config{$key} = $val; } + + return unless (scalar keys %changed_keys > 0); if (scalar keys %create_keys > 0) { my $f; @@ -900,7 +908,7 @@ sub objectIsMovingTowards { my $obj2 = shift; my $max_variance = (shift || 15); - if (!timeOut($obj->{time_move}, $obj->{time_move_calc})) { + if (!actorFinishedMovement($obj, $field)) { # $obj is still moving my %vec; getVector(\%vec, $obj->{pos_to}, $obj->{pos}); @@ -918,7 +926,7 @@ sub objectIsMovingTowardsPlayer { my $ignore_party_members = shift; $ignore_party_members = 1 if (!defined $ignore_party_members); - if (!timeOut($obj->{time_move}, $obj->{time_move_calc}) && @playersID) { + if (!actorFinishedMovement($obj, $field) && @playersID) { # Monster is still moving, and there are players on screen my %vec; getVector(\%vec, $obj->{pos_to}, $obj->{pos}); @@ -2935,10 +2943,6 @@ sub meetingPosition { $max_leeway_time = 0 if (!defined $max_leeway_time || $max_leeway_time < 0); my $mySpeed = ($actor->{walk_speed} || 0.12); - my $timeSinceActorMoved = time - $actor->{time_move} + $extra_time; - - my $my_solution; - my $timeActorFinishMove; my $attackRouteMaxPathDistance; my $attackCanSnipe; @@ -2975,10 +2979,6 @@ sub meetingPosition { } } - # If the actor is the character then we should have already saved the time calc and solution at Receive.pm::character_moves - $my_solution = $char->{solution}; - $timeActorFinishMove = $char->{time_move_calc}; - # actor is a slave } elsif ($actorType == 2) { $attackRouteMaxPathDistance = $config{$actor->{configPrefix}.'attackRouteMaxPathDistance'} || 20; @@ -2994,12 +2994,9 @@ sub meetingPosition { $attackCanSnipe = $config{$actor->{configPrefix}.'attackCanSnipe'}; $master = $char; $masterPos = 1; - - $my_solution = get_solution($field, $actor->{pos}, $actor->{pos_to}); - $timeActorFinishMove = calcTimeFromSolution($my_solution, $mySpeed); } - my $realMyPos = calcPosFromPathfinding($field, $actor, $extra_time); + my $realMyPos = calcPosFromPathfinding($field, $actor, $extra_time, 1); # Fall back to the server-reported destination if pathfinding could not infer a position. $realMyPos = $actor->{pos_to} if (!$realMyPos && $actor->{pos_to}); @@ -3190,6 +3187,11 @@ sub meetingPosition { next; } + if (exists $prohibitedCells{$targetPosInStep->{x}} && exists $prohibitedCells{$targetPosInStep->{x}}{$targetPosInStep->{y}}) { + $meeting_rejections{prohibited_cell}++; + next; + } + my $leeway = 0; # 6. We must be able to attack the target from this spot if (canAttack($field, $spot, $targetPosInStep, $attackCanSnipe, $attackMaxDistance, $config{clientSight}) != 1) { @@ -3352,6 +3354,27 @@ sub mon_control { return $mon_control{lc($name)} || $mon_control{$nameID} || $mon_control{all} || { attack_auto => 1 }; } +## +# monsterPriority($name, $nameID) +# +# Returns the priority.txt priority for a monster. +# Checks monster ID first, then monster name, then the 'all' fallback. +# If nothing matches, return 0. +sub monsterPriority { + my ($name, $nameID) = @_; + + if (defined $nameID && exists $priority{$nameID}) { + return $priority{$nameID}; + } + + if (defined $name && exists $priority{lc $name}) { + return $priority{lc $name}; + } + + return $priority{all} if exists $priority{all}; + return 0; +} + ## # pickupitems($name, $nameID) # @@ -3610,16 +3633,24 @@ sub setPartySkillTimer { } ## -# boolean isCellOccupied(pos) +# boolean isCellOccupied(pos, ignore_actor) # pos: position hash. +# ignore_actor: actor to ignore (usually self). # # Returns 1 if there is a player, npc or mob in the cell, otherwise return 0. # TODO: Check if a character can move to a cell with a pet, elemental, homunculus or mercenary sub isCellOccupied { - my ($pos) = @_; + my ($pos, $ignore_actor) = @_; + + if ($ignore_actor && $char && $ignore_actor->{ID} ne $char->{ID}) { + return 1 if ($char->{pos_to}{x} == $pos->{x} && $char->{pos_to}{y} == $pos->{y}); + } + foreach my $actor (@$playersList, @$monstersList, @$npcsList, @$petsList, @$slavesList, @$elementalsList) { + next if ($ignore_actor && $ignore_actor->{ID} eq $actor->{ID}); return 1 if ($actor->{pos_to}{x} == $pos->{x} && $actor->{pos_to}{y} == $pos->{y}); } + return 0; } @@ -4229,9 +4260,8 @@ sub getBestTarget { next; } - my $name = lc $monster->{name}; my $dist = adjustedBlockDistance($actorPos, $targetPos); - my $priority = $priority{$name} ? $priority{$name} : 0; + my $priority = monsterPriority($monster->{name}, $monster->{nameID}); if (!defined($bestTarget) || ($priority > $highestPri)) { $highestPri = $priority; @@ -4271,8 +4301,7 @@ sub getBestTarget { my $dist = scalar @{$solution}; - my $name = lc $monster->{name}; - my $priority = $priority{$name} ? $priority{$name} : 0; + my $priority = monsterPriority($monster->{name}, $monster->{nameID}); if (!defined($bestTarget) || ($priority > $highestPri)) { $highestPri = $priority; @@ -6041,7 +6070,6 @@ sub parseReload { } else { Settings::loadByRegexp(qr/$args/, $progressHandler); } - refreshDynamicPortalStates(); Log::initLogFiles(); message T("All files were loaded\n"), "reload"; }; diff --git a/src/Network/DirectConnection.pm b/src/Network/DirectConnection.pm index e298ff4d5d..545dceacda 100644 --- a/src/Network/DirectConnection.pm +++ b/src/Network/DirectConnection.pm @@ -236,7 +236,7 @@ sub serverDisconnect { $messageSender->sendQuit() if ($self->getState() == Network::IN_GAME); - message TF("Disconnecting (%s:%s)...", $self->{remote_socket}->peerhost(), + message TF("Disconnecting (%s:%s)...\n", $self->{remote_socket}->peerhost(), $self->{remote_socket}->peerport()), "connection"; close($self->{remote_socket}); diff --git a/src/Network/Receive.pm b/src/Network/Receive.pm index 8a167cc457..cb45814e49 100644 --- a/src/Network/Receive.pm +++ b/src/Network/Receive.pm @@ -1881,14 +1881,18 @@ sub actor_display { $args->{tick} = $tickArg; # lol tickcount what do we do with that? debug "tick: " . $tickArg/1000/3600/24 . "\n"; } - my (%coordsFrom, %coordsTo); + my (%coordsFrom, %coordsTo, $move_start_sx, $move_start_sy); if (length $args->{coords} == 6) { # Actor Moved - makeCoordsFromTo(\%coordsFrom, \%coordsTo, $args->{coords}); # body dir will be calculated using the vector + makeCoordsFromTo(\%coordsFrom, \%coordsTo, $args->{coords}, \$move_start_sx, \$move_start_sy); # body dir will be calculated using the vector + $move_start_sx = 8 unless defined $move_start_sx; + $move_start_sy = 8 unless defined $move_start_sy; } else { # Actor Spawned/Exists makeCoordsDir(\%coordsTo, $args->{coords}, \$args->{body_dir}); %coordsFrom = %coordsTo; + $move_start_sx = 8; + $move_start_sy = 8; } =pod @@ -2097,9 +2101,12 @@ sub actor_display { $actor->{pos} = {%coordsFrom}; $actor->{pos_to} = {%coordsTo}; + $actor->{move_start_sx} = $move_start_sx; + $actor->{move_start_sy} = $move_start_sy; $actor->{time_move} = time; - $actor->{time_move_calc} = calcTime(\%coordsFrom, \%coordsTo, $actor->{walk_speed}); + $actor->{time_move_calc} = 0; $actor->{solution} = []; + $actor->{solution_calc_time} = 0; if (UNIVERSAL::isa($actor, "Actor::Player")) { @@ -2417,7 +2424,6 @@ sub actor_died_or_disappeared { if ($ID eq $accountID) { message T("You have died\n") if (!$char->{dead}); - Plugins::callHook('self_died'); closeShop() unless !$shopstarted || $config{'dcOnDeath'} == -1 || AI::state() == AI::OFF(); $char->{deathCount}++; $char->{dead} = 1; @@ -2425,6 +2431,7 @@ sub actor_died_or_disappeared { if ($char->{equipment}{arrow} && $char->{equipment}{arrow}{type} == 19) { delete $char->{equipment}{arrow}; } + Plugins::callHook('self_died'); } elsif (defined $monstersList->getByID($ID)) { my $monster = $monstersList->getByID($ID); @@ -5570,13 +5577,11 @@ sub character_moves { my $dist = blockDistance($char->{pos}, $char->{pos_to}); debug "You're moving from ($char->{pos}{x}, $char->{pos}{y}) to ($char->{pos_to}{x}, $char->{pos_to}{y}) - distance $dist\n", "parseMsg_move"; - my $speed = ($char->{walk_speed} || 0.12); - my $my_solution = get_solution($field, $char->{pos}, $char->{pos_to}); - my $time = calcTimeFromSolution($my_solution, $speed); $char->{time_move} = time; + $char->{time_move_calc} = 0; + $char->{solution} = []; + #$char->{time_move_server_tick} = unpack('V', $args->{move_start_time}); - $char->{time_move_calc} = $time; - $char->{solution} = $my_solution; # Correct the direction in which we're looking my (%vec, $degree); @@ -8293,10 +8298,10 @@ sub actor_movement_interrupted { } if ($actor->isa('Actor::You')) { - debug "Movement interrupted, your coordinates: $coords{x}, $coords{y}\n", "parseMsg_move"; + debug "Your movement was interrupted, your coordinates: $coords{x}, $coords{y}\n", "parseMsg_move"; AI::clear("move"); - } elsif (($char->{homunculus} && $char->{homunculus}{ID} eq $actor->{ID}) || ($char->{mercenary} && $char->{mercenary}{ID} eq $actor->{ID})) { + } elsif ($actor) { debug TF("[%s] Movement interrupted, coordinates: %s %s\n", $actor, $coords{x}, $coords{y}), "parseMsg_move"; } } @@ -11507,6 +11512,7 @@ sub resurrection { undef $char->{'dead'}; undef $char->{'dead_time'}; $char->{'resurrected'} = 1; + Plugins::callHook('self_resurrected'); } else { if ($player) { diff --git a/src/Task/CalcMapRoute.pm b/src/Task/CalcMapRoute.pm index d50058e905..4cbccdc1e1 100644 --- a/src/Task/CalcMapRoute.pm +++ b/src/Task/CalcMapRoute.pm @@ -881,7 +881,7 @@ sub getWarpItemCandidates { my $itemLabel = $self->formatWarpItemLabel($candidate); my $remaining = int(($candidate->{remaining} || 0) + 0.5); my $cooldown = sprintf("%s (%s sec)", timeConvert($remaining), $remaining); - warning TF("Teleport item %s: cooldown active, wait %s.\n", $itemLabel, $cooldown), "route"; + debug TF("[CalcMapRoute] Teleport item %s: cooldown active, wait %s.\n", $itemLabel, $cooldown), "route"; $self->{_warp_item_cooldown_warned}{$entry->{itemID}} = 1; last; } diff --git a/src/Task/MapRoute.pm b/src/Task/MapRoute.pm index da013146c2..5e53306959 100644 --- a/src/Task/MapRoute.pm +++ b/src/Task/MapRoute.pm @@ -30,7 +30,7 @@ use Log qw(message debug warning error); use Network; use Plugins; use Misc qw(canUseTeleport portalExists); -use Utils qw(timeOut blockDistance existsInList calcPosFromPathfinding); +use Utils qw(timeOut blockDistance existsInList calcPosFromPathfinding actorFinishedMovement); use Utils::PathFinding; use Utils::Exceptions; use AI qw(ai_useTeleport); @@ -306,7 +306,7 @@ sub iterate { my $max_npc_dist = 10; my $realPos = calcPosFromPathfinding($field, $self->{actor}); my $dist_to_npc = blockDistance($realPos, $self->{mapSolution}[0]{pos}); - return unless (timeOut($self->{actor}{time_move}, ($self->{actor}{time_move_calc} + $timeout{ai_portal_wait}{timeout}))); + return unless actorFinishedMovement($self->{actor}, $field, $timeout{ai_portal_wait}{timeout}, 1); if ( $self->{mapSolution}[0]{steps} && $dist_to_npc > $max_npc_dist) { if (!exists $self->{mapSolution}[0]{retry} || !defined $self->{mapSolution}[0]{retry}) { @@ -375,7 +375,7 @@ sub iterate { if (!exists $self->{mapSolution}[0]{plugin_retry}) { $self->{mapSolution}[0]{plugin_retry} = 0; } - my %plugin_args = ( + my %airship_fail_plugin_args = ( 'x' => $self->{mapSolution}[0]{pos}{x}, 'y' => $self->{mapSolution}[0]{pos}{y}, 'steps' => $self->{mapSolution}[0]{steps}, @@ -384,13 +384,13 @@ sub iterate { 'return' => 0 ); - Plugins::callHook('npc_airship_teleport_missing' => \%plugin_args); + Plugins::callHook('npc_airship_teleport_missing' => \%airship_fail_plugin_args); - if ($plugin_args{return}) { + if ($airship_fail_plugin_args{return}) { $self->{mapSolution}[0]{retry} = 0; $self->{mapSolution}[0]{plugin_retry}++; - $self->{mapSolution}[0]{pos}{x} = $plugin_args{x}; - $self->{mapSolution}[0]{pos}{y} = $plugin_args{y}; + $self->{mapSolution}[0]{pos}{x} = $airship_fail_plugin_args{x}; + $self->{mapSolution}[0]{pos}{y} = $airship_fail_plugin_args{y}; $self->setNpcTalk(); } else { error TF("Failed to teleport using airship NPC at %s (%s,%s) after %s tries, ignoring NPC and recalculating route.\n", $field->baseName, $self->{mapSolution}[0]{pos}{x}, $self->{mapSolution}[0]{pos}{y}, $self->{mapSolution}[0]{retry}), "map_route"; @@ -453,7 +453,7 @@ sub iterate { my $max_npc_dist = 10; my $realPos = calcPosFromPathfinding($field, $self->{actor}); my $dist_to_npc = blockDistance($realPos, $self->{mapSolution}[0]{pos}); - return unless (timeOut($self->{actor}{time_move}, ($self->{actor}{time_move_calc} + $timeout{ai_portal_wait}{timeout}))); + return unless actorFinishedMovement($self->{actor}, $field, $timeout{ai_portal_wait}{timeout}, 1); if (!exists $self->{mapSolution}[0]{retry} || !defined $self->{mapSolution}[0]{retry}) { $self->{mapSolution}[0]{retry} = 0; @@ -470,6 +470,36 @@ sub iterate { warning TF("Failed to teleport using NPC at %s (%s,%s).\n", $field->baseName, $self->{mapSolution}[0]{pos}{x}, $self->{mapSolution}[0]{pos}{y}), "map_route"; warning TF("NPC error: %s.\n", $self->{mapSolution}[0]{error}), "map_route" if (exists $self->{mapSolution}[0]{error}); + my %npc_error_plugin_args = ( + 'x' => $self->{mapSolution}[0]{pos}{x}, + 'y' => $self->{mapSolution}[0]{pos}{y}, + 'steps' => $self->{mapSolution}[0]{steps}, + 'portal' => $self->{mapSolution}[0]{portal}, + 'error' => $self->{mapSolution}[0]{error}, + 'retry' => $self->{mapSolution}[0]{retry}, + 'plugin_retry' => ($self->{mapSolution}[0]{plugin_retry} || 0), + 'recalculate' => 0, + 'return' => 0 + ); + Plugins::callHook('npc_teleport_error' => \%npc_error_plugin_args); + + if ($npc_error_plugin_args{return}) { + $self->{mapSolution}[0]{retry} = 0; + $self->{mapSolution}[0]{plugin_retry}++; + delete $self->{mapSolution}[0]{error}; + + if ($npc_error_plugin_args{recalculate}) { + warning TF("Recalculating NPC teleport route using refreshed portal data after talk sequence reset.\n"), "map_route"; + $self->initMapCalculator(); + return; + } + + warning TF("Resetting NPC teleport route using refreshed portal data at %s (%s,%s).\n", + $self->{mapSolution}[0]{map}, $self->{mapSolution}[0]{pos}{x}, $self->{mapSolution}[0]{pos}{y}), "map_route"; + $self->setNpcTalk(); + return; + } + if ($self->{mapSolution}[0]{retry} < ($config{route_maxNpcTries} || 5)) { $self->{mapSolution}[0]{retry}++; warning "Retrying for the ".$self->{mapSolution}[0]{retry}."th time...\n", "map_route"; @@ -479,7 +509,7 @@ sub iterate { if (!exists $self->{mapSolution}[0]{plugin_retry}) { $self->{mapSolution}[0]{plugin_retry} = 0; } - my %plugin_args = ( + my %teleport_missing_plugin_args = ( 'x' => $self->{mapSolution}[0]{pos}{x}, 'y' => $self->{mapSolution}[0]{pos}{y}, 'steps' => $self->{mapSolution}[0]{steps}, @@ -488,13 +518,13 @@ sub iterate { 'return' => 0 ); - Plugins::callHook('npc_teleport_missing' => \%plugin_args); + Plugins::callHook('npc_teleport_missing' => \%teleport_missing_plugin_args); - if ($plugin_args{return}) { + if ($teleport_missing_plugin_args{return}) { $self->{mapSolution}[0]{retry} = 0; $self->{mapSolution}[0]{plugin_retry}++; - $self->{mapSolution}[0]{pos}{x} = $plugin_args{x}; - $self->{mapSolution}[0]{pos}{y} = $plugin_args{y}; + $self->{mapSolution}[0]{pos}{x} = $teleport_missing_plugin_args{x}; + $self->{mapSolution}[0]{pos}{y} = $teleport_missing_plugin_args{y}; $self->setNpcTalk(); } else { error TF("Failed to teleport using NPC at %s (%s,%s) after %s tries, ignoring NPC and recalculating route.\n", $field->baseName, $self->{mapSolution}[0]{pos}{x}, $self->{mapSolution}[0]{pos}{y}, $self->{mapSolution}[0]{retry}), "map_route"; @@ -665,7 +695,7 @@ sub iterate { $task->{$_} = $self->{$_} for qw(targetNpcPos attackID sendAttackWithMove attackOnRoute noSitAuto LOSSubRoute meetingSubRoute isRandomWalk isFollow isIdleWalk isSlaveRescue isMoveNearSlave isEscape isItemTake isItemGather isDeath isToLockMap runFromTarget); $self->setSubtask($task); - } elsif ( $config{route_removeMissingPortals} && blockDistance($self->{actor}{pos_to}, $self->{mapSolution}[0]{pos}) == 0 && timeOut($self->{actor}{time_move}, ($self->{actor}{time_move_calc} + $timeout{ai_portal_wait}{timeout})) ) { + } elsif ( $config{route_removeMissingPortals} && blockDistance($self->{actor}{pos_to}, $self->{mapSolution}[0]{pos}) == 0 && actorFinishedMovement($self->{actor}, $field, $timeout{ai_portal_wait}{timeout}, 1) ) { if (!exists $timeout{ai_portal_give_up}{time}) { $timeout{ai_portal_give_up}{time} = time; $timeout{ai_portal_give_up}{timeout} = $timeout{ai_portal_give_up}{timeout} || 10; @@ -1005,3 +1035,5 @@ sub localBroadcast { } 1; + + diff --git a/src/Task/Route.pm b/src/Task/Route.pm index 6e3e30a758..9e2c166a02 100644 --- a/src/Task/Route.pm +++ b/src/Task/Route.pm @@ -153,6 +153,8 @@ sub new { $self->{attackOnRoute} = 0; } + $self->{loop} = 0; + $self->{solution} = []; $self->{stage} = NOT_INITIALIZED; @@ -219,6 +221,8 @@ sub iterate { return unless ($self->SUPER::iterate() && $net->getState() == Network::IN_GAME); return unless $field && defined $self->{actor}{pos_to} && defined $self->{actor}{pos_to}{x} && defined $self->{actor}{pos_to}{y}; + $self->{loop}++; + if ( $self->{maxTime} && timeOut($self->{time_start}, $self->{maxTime})) { # We spent too much time debug "Route $self->{actor} - we spent too much time; bailing out.\n", "route"; @@ -420,6 +424,17 @@ sub iterate { $self->setDone(); return; + } elsif ($self->{pyDistFromGoal} || $self->{distFromGoal}) { + if ($self->{distFromGoal} && blockDistance($self->{dest}{pos}, $current_calc_pos) <= $self->{distFromGoal}) { + debug "[Route] [distFromGoal] Target cell is already close enough, ending movement.\n", "route"; + $self->setDone(); + return; + + } elsif ($self->{pyDistFromGoal} && distance($self->{dest}{pos}, $current_calc_pos) <= $self->{pyDistFromGoal}) { + debug "[Route] [pyDistFromGoal] Target cell is already close enough, ending movement.\n", "route"; + $self->setDone(); + return; + } } if (@{$solution}) { @@ -449,10 +464,20 @@ sub iterate { } my $pos_changed = ($self->{last_current_calc_pos}{x} == $current_calc_pos->{x} && $self->{last_current_calc_pos}{y} == $current_calc_pos->{y}) ? 0 : 1; + my $actual_pos_moved = !$self->{start} && ( + $self->{last_pos}{x} != $current_pos->{x} + || $self->{last_pos}{y} != $current_pos->{y} + || $self->{last_pos_to}{x} != $current_pos_to->{x} + || $self->{last_pos_to}{y} != $current_pos_to->{y} + ); + if ($actual_pos_moved && $self->{trimm_dev_block}) { + debug "Route $self->{actor} - clearing trimm_dev_block after actual movement to ($current_calc_pos->{x} $current_calc_pos->{y})\n", "route"; + delete $self->{trimm_dev_block}; + } $self->{lastStep} = 0; - if ($stepsleft == 2 && isCellOccupied($solution->[-1]) && !$self->{meetingSubRoute}) { + if ($stepsleft == 2 && isCellOccupied($solution->[-1], $self->{actor}) && !$self->{meetingSubRoute}) { # 2 more steps to cover (current position and the destination) debug "Stoping 1 cell away from destination because there is an obstacle in it.\n", "route"; if ($self->{notifyUponArrival}) { @@ -463,7 +488,7 @@ sub iterate { Plugins::callHook('route', {status => 'success'}); $self->setDone(); - } elsif ($stepsleft <= 2 && isCellOccupied($solution->[-1]) && $self->{attackID}) { + } elsif ($stepsleft <= 2 && isCellOccupied($solution->[-1], $self->{actor}) && $self->{attackID}) { # If the destination cell is occupied, then we can't walk there but we need to attack # Get the cells around the destination cell @@ -483,15 +508,15 @@ sub iterate { # If the cells around the destination cell are all occupied, then we can't walk there if (!(defined $walk_pos)) { # Log error message - error TF("Destination cell (%d,%d) is occupied and there are no walkable cells around it.\n", - $solution->[-1]{x}, $solution->[-1]{y}), "route"; + error TF("[Route] [%s] Destination cell (%d,%d) is occupied and there are no walkable cells around it.\n", + $self->{actor}, $solution->[-1]{x}, $solution->[-1]{y}), "route"; # Emit error message $self->setError(STUCK, T("Stuck during route.")); Plugins::callHook('route', {status => 'stuck'}); } else { # If we have a walkable cell, then walk there - warning TF("Destination cell (%d,%d) is occupied, replacing it with (%d,%d).\n", - $solution->[-1]{x}, $solution->[-1]{y}, $walk_pos->{x}, $walk_pos->{y}), "route"; + warning TF("[Route] [%s] Destination cell (%d,%d) is occupied, replacing it with (%d,%d).\n", + $self->{actor}, $solution->[-1]{x}, $solution->[-1]{y}, $walk_pos->{x}, $walk_pos->{y}), "route"; # $self->{dest}{pos}{x} = $walk_pos->{x}; $self->{dest}{pos}{y} = $walk_pos->{y}; @@ -560,11 +585,31 @@ sub iterate { # Keep step_index as the persistent safeguard/unstuck step size. # Hook-driven route_step changes should only affect the move we send now. my $move_step_index = $self->{step_index}; + if ($move_step_index >= $stepsleft) { $move_step_index = $stepsleft - 1; $self->{lastStep} = 1; } + if ($self->{anyDistFromGoal}) { + my $step = $solution->[$move_step_index]; + # We are close enough to the destination + if (exists $step->{closeToEnd} && $step->{closeToEnd}) { + my $current_i = $move_step_index; + while (1) { + last if ($current_i == 0); + last if ($solution->[($current_i-1)]{closeToEnd} == 0); + $current_i--; + } + $move_step_index = $current_i; + } + } + + $move_step_index = 0 if $move_step_index < 0; + + debug "[Route] [$self->{loop}] step_index $self->{step_index} | move_step_index $move_step_index | lastStep $self->{lastStep} | self->{start} $self->{start}\n", 'route', 1; + + my $requested_move_step_index = $move_step_index; while ($move_step_index > 0) { @@ -589,7 +634,9 @@ sub iterate { my $max_deviation = _maxPathDeviation($client_solution, \@trusted_slice); #debug "[move_step_index $move_step_index] Route estimated deviation: $max_deviation\n", "route"; - if ($max_deviation > ROUTE_CLIENT_PATH_MAX_DEVIATION) { + if ($self->{trimm_dev_block}) { + debug "Route $self->{actor} - skipping deviation trim check because trimm_dev_block is active.\n", "route", 2; + } elsif ($max_deviation > ROUTE_CLIENT_PATH_MAX_DEVIATION) { return if _trimMoveStepOrReset($self, $requested_move_step_index, \$move_step_index, "because simulated client path would drift too far from trusted route (max deviation $max_deviation)"); next; @@ -620,24 +667,12 @@ sub iterate { } if (defined $routeStepHookArgs{route_step} && $routeStepHookArgs{route_step} != $move_step_index) { - $move_step_index = $routeStepHookArgs{route_step}; - } - - if ($self->{anyDistFromGoal}) { - my $step = $solution->[$move_step_index]; - # We are close enough to the destination - if (exists $step->{closeToEnd} && $step->{closeToEnd}) { - my $current_i = $move_step_index; - while (1) { - last if ($current_i == 0); - last if ($solution->[($current_i-1)]{closeToEnd} == 0); - $current_i--; - } - $move_step_index = $current_i; + debug "[Route] $self->{actor} - routeStepHookArgs changed step index ('$move_step_index' > '$routeStepHookArgs{route_step}') \n", "route", 2; + if ($routeStepHookArgs{route_step} > $move_step_index) { + Log::error "[Route] routeStepHookArgs{route_step} > move_step_index. This should never happen\n"; } + $move_step_index = $routeStepHookArgs{route_step}; } - - $move_step_index = 0 if $move_step_index < 0; if ($move_step_index >= $stepsleft) { $move_step_index = $stepsleft - 1; @@ -652,11 +687,9 @@ sub iterate { # If it is, then we've moved to an unexpected place. This could be caused by auto-attack, for example. my %nextPos = (x => $self->{next_pos}{x}, y => $self->{next_pos}{y}); - if (!$field->canMove(\%nextPos, $current_calc_pos)) { - debug "Route $self->{actor} - movement interrupted: reset route (the distance of the next point is abnormally large ($current_calc_pos->{x} $current_calc_pos->{y} -> $nextPos{x} $nextPos{y}))\n", "route"; - $self->resetRoute(); - $self->iterate(); - return; + if (!$field->canMove($current_calc_pos, \%nextPos)) { + return _resetRouteForMoveSelection($self, + "the distance of the next point is abnormally large ($current_calc_pos->{x} $current_calc_pos->{y} -> $nextPos{x} $nextPos{y})"); } if ($self->{targetNpcPos}) { @@ -672,36 +705,11 @@ sub iterate { } } if ($found) { - debug "[Route] [targetNpcPos] Found target npc.\n", "route"; - if ($self->{pyDistFromGoal} || $self->{distFromGoal}) { - if ($self->{distFromGoal} && blockDistance($self->{dest}{pos}, $current_calc_pos) <= $self->{distFromGoal}) { - debug "[Route] [targetNpcPos] [distFromGoal] Target npc is already close enough, ending movement.\n", "route"; - $self->setDone(); - return; - - } elsif ($self->{pyDistFromGoal} && distance($self->{dest}{pos}, $current_calc_pos) <= $self->{pyDistFromGoal}) { - debug "[Route] [targetNpcPos] [pyDistFromGoal] Target npc is already close enough, ending movement.\n", "route"; - $self->setDone(); - return; - } - } else { - debug "[Route] [targetNpcPos] Target npc is already on screen, ending movement.\n", "route"; - $self->setDone(); - return; - } - } - - } elsif ($self->{pyDistFromGoal} || $self->{distFromGoal}) { - if ($self->{distFromGoal} && blockDistance($self->{dest}{pos}, $current_calc_pos) <= $self->{distFromGoal}) { - debug "[Route] [distFromGoal] Target cell is already close enough, ending movement.\n", "route"; - $self->setDone(); - return; - - } elsif ($self->{pyDistFromGoal} && distance($self->{dest}{pos}, $current_calc_pos) <= $self->{pyDistFromGoal}) { - debug "[Route] [pyDistFromGoal] Target cell is already close enough, ending movement.\n", "route"; + debug "[Route] [targetNpcPos] Target npc is already on screen, ending movement.\n", "route"; $self->setDone(); return; } + } my %hookArgs; @@ -849,6 +857,7 @@ sub _trimMoveStepOrReset { $$move_step_index_ref--; if (($requested_move_step_index - $$move_step_index_ref) >= ROUTE_CLIENT_PATH_RESET_TRIM_STEPS) { + $self->{trimm_dev_block} = 1; return _resetRouteForMoveSelection($self, "had to trim down $requested_move_step_index to $$move_step_index_ref while selecting next move"); } diff --git a/src/Task/TalkNPC.pm b/src/Task/TalkNPC.pm index ebccbacb01..b26423905f 100644 --- a/src/Task/TalkNPC.pm +++ b/src/Task/TalkNPC.pm @@ -105,6 +105,29 @@ sub new { return $self; } +sub TalkNPC_reset { + my ($hook_name, $args, $holder) = @_; + my $self = $holder->[0]; + + return if !defined $self; + return if $self->{stage} != TALKING_TO_NPC; + + if (defined $args->{x} && defined $self->{x} && $args->{x} != $self->{x}) { + return; + } + if (defined $args->{y} && defined $self->{y} && $args->{y} != $self->{y}) { + return; + } + + $self->{error_code} = WRONG_NPC_INSTRUCTIONS; + $self->{error_message} = defined $args->{message} ? $args->{message} : TF("TalkNPC_reset."); + $self->{trying_to_cancel} = 1; + $self->{sent_talk_response_cancel} = 0; + delete $self->{wait_for_answer}; + delete $self->{sent_talk_resp_cancel_time}; + warning TF("[TalkNPC] Resetting conversation with %s due to plugin request.\n", $self->{target} || 'NPC'), "ai_npcTalk"; +} + sub handleNPCTalk { my ($hook_name, $args, $holder) = @_; my $self = $holder->[0]; @@ -203,7 +226,8 @@ sub activate { ['packet/npc_sell_list', \&handleNPCTalk, \@holder], ['packet/cash_dealer', \&handleNPCTalk, \@holder], ['packet/npc_market_info', \&handleNPCTalk, \@holder], - ['packet/npc_market_purchase_result', \&handleNPCTalk, \@holder] + ['packet/npc_market_purchase_result', \&handleNPCTalk, \@holder], + ['TalkNPC_reset', \&TalkNPC_reset, \@holder] ); $self->{mapChangedHook} = Plugins::addHook('Network::Receive::map_changed', \&mapChanged, \@holder); @@ -329,7 +353,7 @@ sub iterate { $self->{time} = time; return; - } elsif (!timeOut($char->{time_move}, $char->{time_move_calc} + 0.2)) { + } elsif (!actorFinishedMovement($char, undef, 0.2, 1)) { # Wait for us to stop moving before talking. return; @@ -975,3 +999,4 @@ sub validateStep { } 1; + diff --git a/src/Utils.pm b/src/Utils.pm index 40c4c716ba..bb7b80cbc3 100644 --- a/src/Utils.pm +++ b/src/Utils.pm @@ -30,7 +30,7 @@ use base qw(Exporter); use Config; use FastUtils; -use Globals qw($masterServer); +use Globals qw($masterServer $field); use Utils::DataStructures (':all', '!/^binFind$/'); @@ -38,7 +38,7 @@ our @EXPORT = ( @{$Utils::DataStructures::EXPORT_TAGS{all}}, # Math - qw(getLimits get_client_solution get_client_easy_solution get_solution calcPosFromPathfinding calcTimeFromPathfinding calcStepsWalkedFromTimeAndSolution calcTimeFromSolution + qw(getLimits get_client_solution get_client_easy_solution get_solution set_actor_solution actorFinishedMovement calcPosFromPathfinding calcTimeFromPathfinding calcStepsWalkedFromTimeAndSolution calcTimeFromSolution calcPosFromTime calcTime calcPosition checkMovementDirection distance blockDistance specifiedBlockDistance adjustedBlockDistance getClientDist canAttack @@ -215,106 +215,275 @@ sub get_solution { } } -# Mirrors rAthena's walking coordinate update logic as closely as OpenKore can with -# the movement data it actually has. -# -# What rAthena really does: -# - `unit_data::update_pos()` keeps the unit on the current cell center only while -# the sub-cell offset is still inside that cell. -# - During an active step it moves the sub-cell from 8,8 to the border and then -# across it. -# - Once the sub-cell crosses the border, rAthena already reports the main x/y as -# the next cell, even though the full cell timer has not finished yet. -# - That is why a redirected move can legitimately start one cell ahead of the -# position that a full-step-only model would still report. -# -# What OpenKore can and cannot reproduce: -# - We do have the path solution, walk speed and local receive time for the move. -# - For our own character, `ZC_NOTIFY_PLAYERMOVE` (`character_moves`) always gives -# start subcoordinates 8,8, so there is no extra hidden offset to decode there. -# - We store the raw rAthena/server `move_start_time` tick for debugging and future -# experiments, but we still anchor elapsed time to the local packet receive time -# because OpenKore has no trustworthy local<->server tick conversion. -# -# What this function changes compared with the previous full-step-only version: -# - For `Actor::You`, it walks the same path solution step by step. -# - But for the in-progress step it applies the same sub-cell math used by -# rAthena/clif packets: `24 + dir * 16 * percent`. -# - Then it converts that sub-cell back into the reported main x/y exactly like -# rAthena: values outside the 16..31 range mean the logical cell already crossed -# into the neighbor. -# - This makes the returned cell change around the half-step border crossing instead -# of only after a whole step duration has elapsed. -# - For every non-player actor, we intentionally keep using the simpler -# full-step path simulation until we have actor-specific benchmarks that show -# the new handoff logic is an improvement there too. -sub calcPosFromPathfinding { - my ($field, $actor, $extra_time) = @_; - $extra_time ||= 0; - return unless $actor; +sub _move_step_time { + my ($from, $to, $speed) = @_; + return $speed * (MOVE_DIAGONAL_COST / MOVE_COST) + if ($from->{x} != $to->{x} && $from->{y} != $to->{y}); + return $speed; +} - # If Pos and PosTo are the same return Pos - if ($actor->{pos}{x} == $actor->{pos_to}{x} && $actor->{pos}{y} == $actor->{pos_to}{y}) { - return $actor->{pos}; - } +sub _subcell_start_progress { + my ($from, $to, $start_sx, $start_sy) = @_; - my $speed = ($actor->{walk_speed} || 0.12); - my $time_elapsed = time - $actor->{time_move} + $extra_time; + my $dx = $to->{x} <=> $from->{x}; + my $dy = $to->{y} <=> $from->{y}; + return 0 if (!$dx && !$dy); - if ($time_elapsed <= 0) { - return $actor->{pos}; - } - - my $solution; - unless (UNIVERSAL::isa($actor, "Actor::You")) { - $solution = get_solution($field, $actor->{pos}, $actor->{pos_to}); - my $steps_walked = calcStepsWalkedFromTimeAndSolution($solution, $speed, $time_elapsed); - my $pos = $solution->[$steps_walked]; - return $pos; - } + my $offset_x = ($start_sx / 16.0) - 0.5; + my $offset_y = ($start_sy / 16.0) - 0.5; + my @progress; - # For the character we should have already saved the time calc and solution at - # Receive.pm::character_moves. - if ($time_elapsed >= $actor->{time_move_calc}) { - return $actor->{pos_to}; - } - $solution = $actor->{solution}; - $solution = get_solution($field, $actor->{pos}, $actor->{pos_to}) unless $solution && @{$solution}; + push @progress, ($offset_x / $dx) if $dx; + push @progress, ($offset_y / $dy) if $dy; - return $actor->{pos_to} unless $solution && @{$solution}; - return $solution->[0] if @{$solution} == 1; + return 0 unless @progress; - my $time_needed_ortogonal = $speed; - my $time_needed_diagonal = $speed * (MOVE_DIAGONAL_COST / MOVE_COST); + my $sum = 0; + $sum += $_ foreach @progress; + my $start_progress = $sum / scalar(@progress); + + # sx/sy are quantized in 1/16 increments; keep a sane bound in case + # packet quantization leaves x/y slightly mismatched. + $start_progress = -0.5 if $start_progress < -0.5; + $start_progress = 0.5 if $start_progress > 0.5; + + return $start_progress; +} + +sub _calcPosFromSolutionWithSubcell { + my ($solution, $speed, $time_elapsed, $start_sx, $start_sy) = @_; + return unless $solution && @{$solution}; + return $solution->[0] if @{$solution} == 1; for (my $i = 1; $i < @{$solution}; $i++) { my $from = $solution->[$i - 1]; my $to = $solution->[$i]; next unless $from && $to; - my $step_dx = $to->{x} <=> $from->{x}; - my $step_dy = $to->{y} <=> $from->{y}; - my $step_type = ($from->{x} != $to->{x}) + ($from->{y} != $to->{y}); - my $time_needed = ($step_type == 2) ? $time_needed_diagonal : $time_needed_ortogonal; + my $time_needed = _move_step_time($from, $to, $speed); + my $start_progress = 0; - if ($time_elapsed >= $time_needed) { - $time_elapsed -= $time_needed; + if ($i == 1) { + $start_progress = _subcell_start_progress($from, $to, $start_sx, $start_sy); + } + + my $segment_time = $time_needed * (1 - $start_progress); + $segment_time = 0 if $segment_time < 0; + + if ($time_elapsed >= $segment_time) { + $time_elapsed -= $segment_time; next; } - my $cell_percent = $time_needed > 0 ? ($time_elapsed / $time_needed) : 0; - my $sx = int(24.0 + $step_dx * 16.0 * $cell_percent); - my $sy = int(24.0 + $step_dy * 16.0 * $cell_percent); - my ($x, $y) = ($from->{x}, $from->{y}); + my $dx = $to->{x} <=> $from->{x}; + my $dy = $to->{y} <=> $from->{y}; + my $t = ($time_needed > 0) ? ($time_elapsed / $time_needed) : 0; + $t += $start_progress if ($i == 1); + + my $world_x = $from->{x} + ($dx * $t); + my $world_y = $from->{y} + ($dy * $t); + + return { + x => int($world_x >= 0 ? $world_x + 0.5 : $world_x - 0.5), + y => int($world_y >= 0 ? $world_y + 0.5 : $world_y - 0.5), + }; + } + + return $solution->[-1]; +} + +## +# calcTimeFromSolutionWithSubcell(solution, speed, [start_sx, start_sy]) +# solution: path solution array reference (same format as get_solution()). +# speed: actor walk speed. +# start_sx/start_sy: optional subcell start values from movement packet. +# +# Returns: the time in seconds to finish this movement, accounting for +# subcell start offsets on the first step. +# +# Notes: +# - If sx/sy are not provided, it assumes center start (8,8). +# - This mirrors the first-step timing shift used by rAthena's subcell logic, +# then falls back to normal per-cell timing for remaining steps. +# - Intended to cache actor movement completion time together with solution. +sub calcTimeFromSolutionWithSubcell { + my ($solution, $speed, $start_sx, $start_sy) = @_; + return 0 unless $solution && @{$solution}; + return 0 if @{$solution} == 1; + + $start_sx = 8 unless defined $start_sx; + $start_sy = 8 unless defined $start_sy; + + my $summed_time = 0; + + for (my $i = 1; $i < @{$solution}; $i++) { + my $from = $solution->[$i - 1]; + my $to = $solution->[$i]; + next unless $from && $to; + + my $time_needed = _move_step_time($from, $to, $speed); + if ($i == 1) { + my $start_progress = _subcell_start_progress($from, $to, $start_sx, $start_sy); + my $segment_time = $time_needed * (1 - $start_progress); + $segment_time = 0 if $segment_time < 0; + $summed_time += $segment_time; + } else { + $summed_time += $time_needed; + } + } + + return $summed_time; +} + +## +# set_actor_solution(actor, [field_override]) +# actor: actor object with pos/pos_to/time_move fields. +# field_override: optional field to use instead of global $field. +# +# Ensures actor movement cache is up to date by setting: +# - $actor->{solution} +# - $actor->{time_move_calc} +# - $actor->{solution_calc_time} +# +# Cache policy: +# - Recalculates only when cache is missing/stale for current time_move. +# - If movement start time is undefined, cache is reset to empty/0. +# +# Path source: +# - Uses pathfinding solution when field is available. +# - Falls back to easy straight-line client solution when field is missing. +# +# Returns: nothing; data is written into actor hash. +sub set_actor_solution { + my ($actor, $field_override) = @_; + return unless $actor && $actor->{pos} && $actor->{pos_to}; + + unless (defined $actor->{time_move}) { + $actor->{solution} = []; + $actor->{time_move_calc} = 0; + $actor->{solution_calc_time} = time; + return; + } + + my $solution_ready = + defined $actor->{solution_calc_time} + && $actor->{solution_calc_time} >= $actor->{time_move} + && $actor->{solution} + && ref($actor->{solution}) eq 'ARRAY' + && @{$actor->{solution}}; + + return if $solution_ready; + + my $speed = ($actor->{walk_speed} || 0.12); + my $sx = defined $actor->{move_start_sx} ? $actor->{move_start_sx} : 8; + my $sy = defined $actor->{move_start_sy} ? $actor->{move_start_sy} : 8; + my $use_field = $field_override || $field; + + my $solution; + if ($actor->{pos}{x} == $actor->{pos_to}{x} && $actor->{pos}{y} == $actor->{pos_to}{y}) { + $solution = [ { x => $actor->{pos}{x}, y => $actor->{pos}{y} } ]; + } elsif ($use_field) { + $solution = get_solution($use_field, $actor->{pos}, $actor->{pos_to}); + } + + $solution ||= get_client_easy_solution($actor->{pos}, $actor->{pos_to}); + $solution ||= []; - $x-- if $sx < 16; - $y-- if $sy < 16; - $x++ if $sx > 31; - $y++ if $sy > 31; + $actor->{solution} = $solution; + $actor->{time_move_calc} = calcTimeFromSolutionWithSubcell($solution, $speed, $sx, $sy); + $actor->{solution_calc_time} = time; +} + +## +# actorFinishedMovement(actor, [field, extra_time, mode]) +# actor: actor object. +# field: optional field override for lazy solution build. +# extra_time: optional time offset in seconds. +# mode: +# 0 = lookahead mode -> "at now + extra_time, is movement finished?" +# 1 = wait mode -> "is movement finished, and has extra_time passed +# since the finish time?" +# undef defaults to 0. +# +# Returns: true/false according to selected mode. +# +# This function is the public movement-finished check and should be used +# instead of directly reading actor->{time_move_calc} outside Utils. +# It lazily prepares movement cache through set_actor_solution(). +sub actorFinishedMovement { + my ($actor, $field_override, $extra_time, $mode) = @_; + $extra_time ||= 0; + $mode = 0 unless defined $mode; + return 1 unless $actor && $actor->{pos} && $actor->{pos_to} && defined $actor->{time_move}; + return 1 if ($actor->{pos}{x} == $actor->{pos_to}{x} && $actor->{pos}{y} == $actor->{pos_to}{y}); + + set_actor_solution($actor, $field_override); + my $elapsed = time - $actor->{time_move}; + my $time_needed = $actor->{time_move_calc} || 0; + if ($mode == 1) { + return ($elapsed >= ($time_needed + $extra_time)); + } + return (($elapsed + $extra_time) >= $time_needed); +} + +## +# calcPosFromPathfinding(field, actor, [extra_time, precise_mode]) +# field: current map field. +# actor: actor to predict. +# extra_time: optional future offset in seconds (default 0). +# precise_mode: +# 1 = precise/subcell-aware interpolation +# 0 = faster full-cell simulation +# undef = auto mode (Actor::You => 1, others => 0) +# +# Returns: predicted actor position hash reference {x, y}. +# +# Overview: +# The server movement packets provide start/end cells and timing context. +# This function predicts the current (or future) cell while actor is walking. +# +# Modes: +# - Precise mode uses subcell-aware interpolation on the current step, matching +# rAthena cell-border handoff behavior more closely. +# - Non-precise mode uses fast step counting along cached solution. +# +# Caching: +# Uses set_actor_solution() to lazily compute and refresh solution/timing cache. +# +# Edge handling: +# - If actor is stationary, returns current position. +# - If elapsed time is <= 0, returns actor->{pos}. +# - If solution cannot be obtained, falls back to actor->{pos_to}. +sub calcPosFromPathfinding { + my ($field, $actor, $extra_time, $precise_mode) = @_; + $extra_time ||= 0; + return unless $actor && $actor->{pos} && $actor->{pos_to}; + $precise_mode = UNIVERSAL::isa($actor, 'Actor::You') ? 1 : 0 unless defined $precise_mode; - return { x => $x, y => $y }; + return $actor->{pos_to} if (!$actor->{pos} && $actor->{pos_to}); + return $actor->{pos} if ($actor->{pos} && !$actor->{pos_to}); + return $actor->{pos} if ($actor->{pos}{x} == $actor->{pos_to}{x} && $actor->{pos}{y} == $actor->{pos_to}{y}); + + my $speed = ($actor->{walk_speed} || 0.12); + my $time_elapsed = time - $actor->{time_move} + $extra_time; + + return $actor->{pos} if ($time_elapsed <= 0); + + set_actor_solution($actor, $field); + my $solution = $actor->{solution}; + return $actor->{pos_to} unless (defined $solution && ref($solution) eq 'ARRAY' && @{$solution}); + + if (!$precise_mode) { + my $steps_walked = calcStepsWalkedFromTimeAndSolution($solution, $speed, $time_elapsed); + return $solution->[$steps_walked] if (defined $solution->[$steps_walked]); + return $solution->[-1]; } + my $start_sx = defined $actor->{move_start_sx} ? $actor->{move_start_sx} : 8; + my $start_sy = defined $actor->{move_start_sy} ? $actor->{move_start_sy} : 8; + + my $pos = _calcPosFromSolutionWithSubcell($solution, $speed, $time_elapsed, $start_sx, $start_sy); + return $pos if $pos; return $solution->[-1]; } @@ -405,6 +574,7 @@ sub blockDistance { # print "You are currently at: $solution->[$steps_walked]{x} $solution->[$steps_walked]{y}\n"; sub calcStepsWalkedFromTimeAndSolution { my ($solution, $speed, $time_elapsed) = @_; + return 0 unless (defined $solution && ref($solution) eq 'ARRAY' && @{$solution}); my $stepType = 0; # 1 - vertical or horizontal; 2 - diagonal my $current_step = 0; # step @@ -459,6 +629,7 @@ sub calcStepsWalkedFromTimeAndSolution { # Returns the amount of seconds to walk the given Solution with the given speed. sub calcTimeFromSolution { my ($solution, $speed) = @_; + return 0 unless (defined $solution && ref($solution) eq 'ARRAY' && @{$solution} > 1); my $stepType = 0; # 1 - vertical or horizontal; 2 - diagonal my $current_step = 0; # step @@ -567,10 +738,13 @@ sub calcTime { # $pos = calcPosition($players{$ID}, 2); sub calcPosition { my ($object, $extra_time, $float) = @_; - my $time_needed = $object->{time_move_calc}; - my $elasped = time - $object->{time_move} + $extra_time; + $extra_time ||= 0; + + my $speed = ($object->{walk_speed} || 0.12); + my $time_needed = calcTime($object->{pos}, $object->{pos_to}, $speed) || 0; + my $elapsed = time - $object->{time_move} + $extra_time; - if ($elasped >= $time_needed || !$time_needed) { + if (!$time_needed || $elapsed > $time_needed) { return $object->{pos_to}; } else { my (%vec, %result, $dist); @@ -578,7 +752,7 @@ sub calcPosition { my $pos_to = $object->{pos_to}; getVector(\%vec, $pos_to, $pos); - $dist = (distance($pos, $pos_to) - 1) * ($elasped / $time_needed); + $dist = (distance($pos, $pos_to) - 1) * ($elapsed / $time_needed); moveAlongVector(\%result, $pos, \%vec, $dist); $result{x} = int sprintf("%.0f", $result{x}) if (!$float); $result{y} = int sprintf("%.0f", $result{y}) if (!$float); @@ -1362,9 +1536,9 @@ sub makeCoordsDir { # # TODO: Maybe aegis, athena, cronus, brathena or other emulators actually use this sx0/sy0 argument and we don't know sub makeCoordsFromTo { - my ($r_hashFrom, $r_hashTo, $rawCoords) = @_; - unShiftPack(\$rawCoords, undef, 4); # seems to be returning 8 (always?) - unShiftPack(\$rawCoords, undef, 4); # seems to be returning 8 (always?) + my ($r_hashFrom, $r_hashTo, $rawCoords, $sx0, $sy0) = @_; + unShiftPack(\$rawCoords, $sy0, 4); + unShiftPack(\$rawCoords, $sx0, 4); makeCoordsXY($r_hashTo, \$rawCoords); makeCoordsXY($r_hashFrom, \$rawCoords); } diff --git a/src/functions.pl b/src/functions.pl index d92e19f7ac..934318127a 100644 --- a/src/functions.pl +++ b/src/functions.pl @@ -291,7 +291,8 @@ sub loadDataFiles { loader => [\&parseSectionedFile, \%packetDescriptions], mustExist => 0); Settings::addTableFile('portals.txt', internalName => 'portals.txt', - loader => [\&parsePortals, \%portals_lut, \@portals_lut_missed]); + loader => [\&parsePortals, \%portals_lut, \@portals_lut_missed], + onLoaded => \&refreshDynamicPortalStates); Settings::addTableFile('portals_commands.txt', internalName => 'portals_commands.txt', loader => [\&parsePortalsCommands, \%portals_commands], mustExist => 0); @@ -398,7 +399,6 @@ sub loadDataFiles { message TF("Loading %s...\n", $filename); }; Settings::loadAll($progressHandler); - refreshDynamicPortalStates(); }; my $e; if ($e = caught('UTF8MalformedException')) { @@ -869,11 +869,26 @@ sub mainLoop_initialized { # GameGuard support if ($masterServer->{gameGuard} && ($net->version != 1 || ($net->version == 1 && $masterServer->{gameGuard} eq '2'))) { - my $result = Poseidon::Client::getInstance()->getResult(); - if (defined($result)) { - debug "Received Poseidon result.\n", "poseidon"; - #$messageSender->encryptMessageID(\$result, unpack("v", $result)); - $messageSender->sendToServer($result); + my $instance = Poseidon::Client::getInstance(); + + if ($instance && $instance->isWaitingQuery()) { + if ($net->getState() == Network::IN_GAME) { + my $result = $instance->getResult(); + if (defined($result)) { + debug "Received Poseidon result.\n", "poseidon"; + #$messageSender->encryptMessageID(\$result, unpack("v", $result)); + + my %hookArgs; + $hookArgs{result} = $result; + $hookArgs{return} = 1; + Plugins::callHook('PoseidonReply', \%hookArgs); + return 0 if (!$hookArgs{return}); + + $messageSender->sendToServer($result); + } + } else { + $instance->reset() + } } } diff --git a/src/test/DynamicPortalGroupsTest.pm b/src/test/DynamicPortalGroupsTest.pm index 3bc5c1cafd..d6506e19af 100644 --- a/src/test/DynamicPortalGroupsTest.pm +++ b/src/test/DynamicPortalGroupsTest.pm @@ -9,6 +9,7 @@ use FileParsers; use Globals; use Misc qw( refreshDynamicPortalGroups + refreshDynamicPortalStates applyDynamicPortalStates getDynamicPortalDestinations ); @@ -104,6 +105,12 @@ sub start { applyDynamicPortalStates(); ok($Globals::portals_lut{'moc_para01 40 20'}{dest}{'geffen 120 39'}{enabled}, 'selection can enable a different source cluster'); ok(!$Globals::portals_lut{'moc_para01 30 10'}{dest}{'payon 161 58'}{enabled}, 'previously enabled destination is disabled after selection changes'); + + $Globals::config{EdenPortalExit} = 'alberta'; + parsePortals(_test_file('dynamic_portals.txt'), \%Globals::portals_lut); + refreshDynamicPortalStates(); + ok($Globals::portals_lut{'moc_para01 40 20'}{dest}{'alberta 117 56'}{enabled}, 'refresh after portal reload restores the selected destination'); + ok(!$Globals::portals_lut{'moc_para01 30 10'}{dest}{'payon 161 58'}{enabled}, 'refresh after portal reload disables stale destinations again'); }); done_testing(); @@ -159,6 +166,25 @@ sub start { edenPortalExitSync::_updateFromEdenExit('payon'); is($Globals::config{EdenPortalExit}, 'payon', 'leaving Eden rewrites the exit when the actual destination differs'); is_deeply(\@config_updates, [['EdenPortalExit', 'payon']], 'exit updates the config once'); + + @config_updates = (); + $Globals::config{EdenPortalExit} = 'geffen'; + $Globals::char = { + pos => {x => 10, y => 10}, + }; + + edenPortalExitSync::_updateFromEdenExit('payon'); + is($Globals::config{EdenPortalExit}, 'geffen', 'non-portal exits from Eden do not rewrite the configured destination'); + is_deeply(\@config_updates, [], 'non-portal exits do not write config changes'); + + @config_updates = (); + $Globals::char = { + pos => {x => 162, y => 58}, + }; + + edenPortalExitSync::_updateFromEdenExit('payon'); + is($Globals::config{EdenPortalExit}, 'payon', 'small landing offsets still resolve to the expected Eden exit destination'); + is_deeply(\@config_updates, [['EdenPortalExit', 'payon']], 'nearby portal landing still updates config once'); }); done_testing(); diff --git a/src/test/FileParsersTest.pm b/src/test/FileParsersTest.pm index 1a52dae24b..7e714ab545 100644 --- a/src/test/FileParsersTest.pm +++ b/src/test/FileParsersTest.pm @@ -7,6 +7,7 @@ use FileParsers; use Globals; use Misc; use File::Copy; +use File::Temp qw(tempfile); use constant NOT_CONFIGURED_ITEM => 'Random Item'; @@ -47,6 +48,29 @@ sub start { done_testing(); } or skip 'failed to load tables', 1; + subtest 'monsters_table.txt' => sub { + my ($fh, $filename) = tempfile(); + print {$fh} join("\n", + "ID\tLevel\tHp\tAttackRange\tSkillRange\tAttackDelay\tAttackMotion\tSize\tRace\tElement\tElementLevel\tChaseRange\tAi\tName", + "1002\t1\t55\t1\t10\t1872\t672\tMedium\tPlant\tWater\t1\t12\t02\tPoring", + "1038\t78\t114480\t1\t10\t1736\t936\tLarge\tUndead\tHoly\t4\t14\t03\tGolden Thief Bug", + "2000 10 100 1 10 1000 500 Small Formless Neutral 1 12", + ) . "\n"; + close $fh; + + my %monsters; + parseMonstersTableFile($filename, \%monsters); + + is($monsters{1002}{Ai}, '02', 'parses Ai from tab-separated format'); + is($monsters{1002}{Name}, 'Poring', 'parses Name from tab-separated format'); + is($monsters{1038}{Name}, 'Golden Thief Bug', 'parses Name with spaces'); + is($monsters{2000}{Ai}, '06', 'defaults Ai to 06 when omitted'); + ok(!exists $monsters{2000}{Name}, 'does not create Name when omitted'); + + unlink $filename; + done_testing(); + }; + # 502 - unknown item my %item_names = map {$_ => itemName({nameID => $_, cards => pack('v*', (0)x4)})} 502, keys %items_lut; my @item_names_part = map {[map {$item_names{$_}} @$_]} List::MoreUtils::part {$_ == 1208} keys %item_names; @@ -101,6 +125,19 @@ sub start { done_testing(); }; + subtest 'priority.txt' => sub { + parsePriority('data/priority.txt', \%priority); + + is($priority{hydra}, 4, 'stores named monsters'); + is($priority{1096}, 3, 'stores monster IDs'); + is($priority{all}, 2, 'stores all fallback in list order'); + is(Misc::monsterPriority('Angeling', 1096), 3, 'prefers ID over name'); + is(Misc::monsterPriority('Hydra', 1053), 4, 'falls back to name when ID is missing'); + is(Misc::monsterPriority('Poring', 1002), 2, 'uses all for unlisted monsters'); + is(Misc::monsterPriority('Eclipse', 1093), 1, 'entries after all stay below the fallback'); + done_testing(); + }; + subtest 'writeDataFileIntact' => sub { my $config = {}; parseConfigFile('data/write_config.txt', $config); diff --git a/src/test/XConfTest.pm b/src/test/XConfTest.pm index ec95a9eebb..5501ee77cf 100644 --- a/src/test/XConfTest.pm +++ b/src/test/XConfTest.pm @@ -51,7 +51,10 @@ END_MONS }, ); local %Globals::monsters_lut = ( - 1002 => 'Poring', + 1002 => "\x1CoYYB\x1C", + ); + local %Globals::monstersTable = ( + 1002 => { Name => 'Poring' }, ); local %Globals::mon_control = ( poring => { diff --git a/src/test/data/priority.txt b/src/test/data/priority.txt new file mode 100644 index 0000000000..fdc8298130 --- /dev/null +++ b/src/test/data/priority.txt @@ -0,0 +1,5 @@ +# Mixed name, ID, and fallback entries for priority.txt tests. +Hydra +1096 +all +Eclipse diff --git a/tables/monsters_table.txt b/tables/monsters_table.txt index 2b33e577c6..f6526f5e20 100644 --- a/tables/monsters_table.txt +++ b/tables/monsters_table.txt @@ -1,2556 +1,2676 @@ -ID Level Hp AttackRange SkillRange AttackDelay AttackMotion Size Race Element ElementLevel ChaseRange Ai -1001 16 136 1 10 1564 864 Small Insect Fire 1 12 01 -1002 1 500 1 10 1872 672 Medium Plant Water 1 12 19 -1004 11 85 1 10 1292 792 Small Insect Wind 1 12 01 -1005 24 330 1 10 1276 576 Small Brute Dark 1 12 01 -1007 6 59 1 10 1672 672 Small Insect Earth 1 12 01 -1008 4 51 1 10 1001 1 Small Insect Earth 1 12 06 -1009 12 105 1 10 1148 648 Medium Brute Wind 1 12 01 -1010 8 78 1 10 1672 672 Medium Plant Earth 1 12 01 -1011 5 48 1 10 1076 576 Small Insect Wind 1 12 01 -1012 13 140 1 10 2016 816 Medium Fish Water 1 12 01 -1013 45 1091 1 10 1054 504 Medium Brute Earth 1 12 03 -1014 18 223 1 10 1872 672 Medium Plant Water 1 12 01 -1015 17 204 1 10 2612 912 Medium Undead Undead 1 12 04 -1016 50 1458 9 10 2864 864 Medium Undead Undead 1 12 05 -1018 23 247 1 10 1136 720 Small Insect Wind 1 12 01 -1019 25 354 1 10 1564 864 Large Brute Fire 1 12 03 -1020 13 140 4 10 1768 768 Medium Plant Earth 3 12 10 -1023 44 1047 1 10 1864 864 Medium Demihuman Earth 1 12 04 -1024 17 186 1 10 1048 48 Medium Plant Earth 1 12 17 -1025 18 203 1 10 1576 576 Medium Brute Earth 1 12 01 -1026 58 2002 1 10 2468 768 Medium Undead Undead 1 12 04 -1028 34 691 1 10 2276 576 Medium Undead Undead 1 12 04 -1029 59 2252 1 10 1384 768 Large Demon Dark 1 12 19 -1030 100 9233 1 10 1576 576 Medium Brute Poison 1 12 17 -1031 30 489 1 10 1672 672 Medium Plant Poison 1 12 02 -1032 52 1642 1 10 2468 768 Medium Undead Undead 1 12 02 -1033 34 535 1 10 1372 672 Medium Plant Fire 2 12 19 -1034 40 975 1 10 2016 816 Medium Fish Water 2 12 01 -1035 63 1902 1 10 676 576 Small Insect Wind 2 12 04 -1036 61 2429 1 10 2456 912 Medium Undead Undead 2 12 04 -1037 70 2698 1 10 1576 576 Medium Brute Poison 1 12 19 -1038 68 1175840 1 10 1072 672 Medium Undead Undead 4 12 21 -1039 81 668000 2 10 768 768 Large Demon Dark 3 12 21 -1040 61 2324 1 10 1608 816 Large Formless Neutral 3 12 17 -1041 55 1899 1 10 1772 72 Medium Undead Undead 2 12 04 -1042 48 985 1 10 1076 576 Small Insect Wind 1 12 07 -1044 53 1776 1 10 1872 672 Medium Fish Water 2 12 19 -1045 56 1963 1 10 1272 72 Medium Fish Water 2 12 04 -1046 77 380000 1 10 480 480 Medium Demon Dark 3 12 21 -1047 7 70 0 10 1001 1 Small Formless Neutral 3 12 06 -1048 20 290 0 10 701 1 Small Insect Dark 1 12 06 -1049 9 70 1 10 988 288 Small Brute Fire 1 12 01 -1050 10 77 1 10 988 288 Small Brute Fire 1 12 01 -1051 21 238 1 10 1288 288 Small Insect Neutral 3 12 02 -1052 15 155 1 10 1864 864 Medium Insect Earth 1 12 01 -1053 28 475 1 10 988 288 Medium Insect Dark 1 12 07 -1054 30 537 1 10 988 288 Medium Insect Dark 1 12 13 -1055 23 337 1 10 1960 960 Large Plant Earth 1 12 01 -1056 29 414 1 10 1576 576 Small Brute Earth 1 12 17 -1057 38 694 1 10 1054 54 Small Brute Earth 1 12 07 -1058 55 1487 1 10 1708 1008 Medium Insect Fire 1 12 07 -1059 78 378000 1 10 1148 648 Small Insect Wind 4 12 21 -1060 29 506 1 10 1260 192 Large Brute Earth 1 12 17 -1061 69 2366 1 10 1816 816 Large Demon Ghost 3 12 20 -1062 3 69 1 10 1672 672 Medium Plant Holy 1 12 01 -1063 3 48 1 10 1456 456 Small Brute Neutral 3 12 01 -1064 46 1249 1 10 2492 792 Medium Undead Undead 1 12 01 -1065 61 2746 1 10 1872 672 Large Fish Water 3 12 04 -1066 45 1091 1 10 1632 432 Small Fish Water 1 12 17 -1067 48 1229 1 10 1248 48 Small Fish Water 1 12 17 -1068 34 661 7 10 800 432 Small Plant Water 2 12 10 -1069 57 2203 1 10 1968 768 Large Fish Water 2 12 04 -1070 42 962 1 10 1776 576 Small Fish Water 1 12 02 -1071 48 1351 1 10 1754 554 Medium Undead Undead 1 12 04 -1072 98 7229 1 10 1700 1000 Medium Demon Fire 4 12 04 -1073 43 1004 1 7 992 792 Small Fish Water 1 12 01 -1074 50 1326 1 10 864 864 Small Fish Water 1 12 17 -1076 27 445 1 10 2228 528 Medium Undead Undead 1 12 17 -1077 26 379 1 10 1672 672 Medium Plant Poison 1 12 04 -1078 1 5 1 7 1 1 Small Plant Earth 1 12 06 -1079 1 10 1 7 1 1 Small Plant Earth 1 12 06 -1080 1 5 1 7 1 1 Small Plant Earth 1 12 06 -1081 1 6 1 7 1 1 Small Plant Earth 1 12 06 -1082 1 7 1 7 1 1 Small Plant Earth 1 12 06 -1083 1 20 1 7 1 1 Small Plant Holy 1 12 06 -1084 1 5 1 7 1 1 Small Plant Earth 1 12 06 -1085 1 5 1 7 1 1 Small Plant Earth 1 12 06 -1086 65 222750 1 10 768 768 Large Insect Fire 2 12 07 -1087 50 362000 1 10 1678 780 Large Demihuman Earth 2 12 21 -1088 18 3317 1 10 1080 648 Medium Insect Earth 1 12 21 -1089 27 660 1 10 1236 336 Medium Fish Water 1 12 21 -1090 42 1260 1 10 1072 672 Medium Plant Water 1 12 21 -1091 47 1035 1 10 1076 576 Small Insect Wind 1 12 21 -1092 93 8203 1 10 1048 648 Medium Brute Earth 1 12 21 -1093 31 625 1 10 1456 456 Medium Brute Neutral 3 12 21 -1094 19 265 1 10 2048 648 Large Insect Water 1 12 17 -1095 33 537 1 10 1288 288 Small Insect Earth 1 12 01 -1096 77 19800 1 10 1072 672 Medium Angel Holy 4 12 21 -1097 28 469 0 10 1001 1 Small Formless Neutral 3 12 06 -1098 105 38826 1 10 1250 720 Large Demihuman Undead 2 12 21 -1099 75 3570 1 10 1792 792 Large Insect Poison 1 12 21 -1100 47 1300 1 10 1468 468 Large Insect Poison 1 12 19 -1101 57 1763 1 10 868 480 Small Demon Dark 1 12 21 -1102 86 6040 1 10 1504 840 Medium Demihuman Dark 1 12 21 -1103 25 319 1 10 1604 840 Small Brute Earth 1 12 17 -1104 38 694 1 10 1864 864 Small Brute Earth 1 12 17 -1105 31 480 1 10 1288 288 Small Insect Earth 1 12 01 -1106 103 10244 1 10 1120 420 Medium Brute Fire 1 12 13 -1107 14 113 1 10 1600 900 Small Brute Fire 1 12 01 -1108 60 2324 1 10 1680 480 Medium Fish Water 4 12 17 -1109 93 7165 1 10 980 600 Small Demon Dark 1 12 21 -1110 68 2561 1 10 1156 456 Small Demon Dark 1 12 17 -1111 47 1182 1 10 1276 576 Small Brute Dark 2 12 19 -1112 91 804500 1 10 620 420 Medium Undead Undead 1 12 21 -1113 2 46 1 10 1372 672 Medium Plant Fire 1 12 02 -1114 62 1849 1 10 1004 504 Small Insect Wind 2 12 17 -1115 65 947500 1 10 872 1344 Large Brute Fire 1 12 21 -1116 53 1236 1 10 1816 816 Medium Formless Ghost 2 12 17 -1117 80 4720 1 10 2276 576 Large Undead Undead 4 12 21 -1118 59 2065 3 10 1432 432 Large Plant Earth 1 12 10 -1119 57 1587 1 10 1540 720 Medium Brute Fire 1 12 04 -1120 90 26700 1 10 1220 1080 Medium Demon Ghost 4 12 21 -1121 42 866 1 10 1848 1296 Small Demon Earth 1 12 17 -1122 48 1107 1 10 1120 620 Medium Demihuman Wind 1 12 21 -1123 44 943 1 10 1320 620 Medium Demihuman Fire 1 12 19 -1124 44 1047 1 10 1624 624 Medium Demihuman Poison 1 12 13 -1125 49 1277 1 10 1624 624 Medium Demihuman Earth 1 12 13 -1126 56 1877 1 10 3074 1874 Medium Demihuman Water 1 12 13 -1127 63 2347 1 10 1480 480 Medium Brute Earth 2 12 01 -1128 32 564 1 10 1528 528 Medium Insect Earth 1 12 17 -1129 66 1701 1 10 1888 1152 Small Formless Fire 4 12 13 -1130 63 1901 1 10 1180 480 Medium Formless Fire 2 12 21 -1131 90 6425 1 10 1364 864 Large Demihuman Wind 4 12 21 -1132 118 27456 1 10 528 1000 Large Undead Undead 1 12 21 -1133 107 13522 1 10 1028 528 Medium Demihuman Wind 2 12 13 -1134 102 11280 1 10 1528 528 Medium Demihuman Poison 2 12 13 -1135 101 9503 1 10 1228 528 Medium Demihuman Fire 2 12 13 -1136 31 10 1 10 1528 528 Medium Demihuman Poison 2 12 13 -1137 31 10 1 10 1228 528 Medium Demihuman Fire 2 12 13 -1138 53 1545 1 10 1054 504 Small Demon Water 1 12 02 -1139 65 2363 1 10 1528 660 Medium Insect Earth 1 12 19 -1140 73 3099 1 10 1540 840 Large Demihuman Fire 1 12 19 -1141 42 1010 1 10 2280 1080 Small Plant Water 2 12 01 -1142 51 1831 1 10 1201 1 Small Plant Water 2 12 06 -1143 90 4089 1 10 1480 480 Small Demon Ghost 3 12 19 -1144 47 1241 1 10 1956 756 Small Fish Water 2 12 17 -1145 39 769 1 10 1480 480 Small Brute Earth 2 12 01 -1146 58 2002 1 10 432 432 Medium Brute Dark 1 12 19 -1147 55 380000 1 10 864 1000 Large Insect Earth 4 12 21 -1148 102 11280 1 10 1720 1320 Medium Demon Neutral 2 12 21 -1149 58 1729 1 10 1360 960 Large Brute Fire 2 12 19 -1150 79 324000 1 10 1276 576 Medium Demon Fire 3 12 21 -1151 49 1404 1 10 1576 576 Large Formless Poison 1 12 21 -1152 53 1699 1 10 2420 720 Medium Undead Undead 1 12 04 -1153 51 1586 1 10 2852 1152 Medium Undead Undead 1 12 04 -1154 79 3020 1 10 976 576 Medium Demihuman Fire 2 12 19 -1155 86 5491 1 10 2468 768 Medium Dragon Earth 1 12 19 -1156 79 3197 1 10 1872 672 Medium Dragon Wind 1 12 19 -1157 85 900000 1 10 868 768 Large Demihuman Dark 3 12 21 -1158 52 1716 1 10 2544 1344 Medium Fish Water 2 12 17 -1159 71 300000 1 10 1020 1020 Large Brute Neutral 3 12 21 -1160 32 508 1 10 1288 288 Small Insect Earth 1 12 01 -1161 40 933 1 10 2208 1008 Small Plant Water 3 12 01 -1162 86 4942 3 10 512 528 Small Plant Earth 1 12 05 -1163 115 21981 1 10 824 780 Large Demihuman Dark 2 12 19 -1164 71 3251 1 10 1516 816 Medium Demihuman Dark 1 12 04 -1165 61 2324 1 10 1672 720 Medium Formless Earth 3 12 04 -1166 59 2158 1 10 1960 960 Large Brute Earth 2 12 17 -1167 14 127 1 10 1624 624 Small Brute Earth 1 12 01 -1169 44 1151 1 10 2420 720 Medium Undead Undead 1 12 04 -1170 64 2528 1 10 2112 912 Medium Demon Water 1 12 17 -1174 21 212 1 10 1688 1188 Small Insect Wind 1 12 17 -1175 22 285 1 10 1744 1044 Small Brute Dark 1 12 17 -1176 35 597 1 10 1768 768 Small Insect Earth 1 12 17 -1177 54 1757 1 10 1180 480 Medium Demihuman Dark 1 12 02 -1178 70 2429 1 10 1780 1080 Medium Demihuman Fire 1 12 04 -1179 46 796 1 10 1960 960 Small Demon Ghost 3 12 19 -1180 72 2422 1 10 840 540 Medium Brute Fire 3 12 21 -1182 1 15 1 7 1 1 Small Plant Earth 1 12 06 -1183 5 63 1 10 1076 576 Small Insect Wind 1 12 04 -1184 1 30 1 10 1672 672 Small Insect Earth 1 12 04 -1185 34 1796 1 10 1960 960 Small Undead Ghost 1 12 06 -1186 66 2570 1 10 2536 1536 Small Demon Ghost 2 12 21 -1188 59 2065 1 10 1720 500 Medium Undead Undead 1 12 19 -1189 78 3474 9 10 1960 620 Medium Demihuman Earth 1 12 19 -1190 55 552000 1 10 1248 500 Large Demihuman Earth 4 12 21 -1191 56 1707 1 10 972 500 Medium Formless Neutral 3 12 19 -1192 77 4415 1 10 1816 576 Large Undead Undead 4 12 21 -1193 88 5664 1 10 1020 500 Medium Formless Neutral 3 12 21 -1194 107 14944 1 10 960 500 Medium Insect Earth 2 12 19 -1195 74 2855 1 10 864 500 Small Formless Neutral 3 12 21 -1196 91 8378 1 10 1848 500 Medium Undead Undead 3 12 13 -1197 89 6902 1 10 1768 500 Medium Undead Undead 3 12 13 -1198 98 10843 2 10 864 1252 Medium Demon Undead 4 12 13 -1199 82 3498 1 10 1500 500 Small Plant Wind 1 12 19 -1200 105 61350 1 10 800 2112 Medium Demihuman Neutral 3 12 13 -1201 98 9939 1 10 1790 1440 Large Demon Neutral 2 12 13 -1202 102 12408 2 10 1744 1344 Large Demihuman Neutral 2 12 13 -1203 130 70000 2 10 1152 500 Large Formless Dark 4 12 21 -1204 114 59000 1 10 816 500 Medium Formless Dark 3 12 21 -1205 101 40200 2 10 768 500 Large Formless Dark 2 12 21 -1206 109 16615 1 10 900 500 Medium Fish Water 2 12 21 -1207 104 12633 1 10 528 500 Medium Formless Earth 3 12 21 -1208 120 20806 2 10 672 500 Medium Demon Wind 1 12 21 -1209 82 3935 1 10 1000 500 Small Brute Poison 2 12 19 -1211 71 2366 1 10 1500 500 Small Insect Fire 1 12 19 -1212 47 4221 1 10 1500 500 Medium Insect Neutral 3 12 19 -1213 81 4077 1 10 1500 500 Large Demihuman Fire 2 12 21 -1214 48 985 1 10 1028 528 Small Brute Fire 1 12 19 -1215 84 4084 1 10 1956 756 Medium Plant Wind 1 12 19 -1216 85 4621 7 10 832 500 Medium Fish Poison 1 12 21 -1219 122 34686 1 10 1500 500 Large Demihuman Dark 4 12 21 -1220 103 9447 1 10 1120 420 Medium Brute Fire 1 12 21 -1221 26 2092 1 10 1960 960 Large Brute Earth 2 12 21 -1229 2 63 1 10 1672 672 Small Insect Earth 1 12 01 -1230 2 427 0 10 1001 1 Small Insect Earth 1 12 06 -1231 16 595 1 10 1220 720 Small Insect Wind 1 12 01 -1232 3 420 0 10 1001 1 Small Formless Neutral 3 12 06 -1234 19 879 1 10 1054 54 Small Brute Earth 1 12 07 -1235 24 1400 1 10 1864 864 Medium Demihuman Earth 1 12 13 -1236 4 420 0 10 1001 1 Small Formless Neutral 3 12 06 -1237 17 688 1 10 1288 288 Small Insect Earth 1 12 07 -1238 18 733 1 10 1288 288 Small Insect Earth 1 12 07 -1239 19 760 1 10 1288 288 Small Insect Earth 1 12 07 -1240 3 80 1 10 988 288 Small Brute Fire 1 12 01 -1241 4 83 1 10 988 288 Small Brute Fire 1 12 01 -1242 37 844 1 10 1872 672 Medium Plant Water 2 12 02 -1243 72 3329 1 10 1260 192 Large Brute Neutral 3 12 21 -1244 63 2054 1 10 1180 480 Medium Formless Fire 2 12 01 -1245 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 01 -1246 37 661 1 10 1248 1248 Small Demihuman Holy 2 12 03 -1247 10 10 1 10 720 720 Medium Demihuman Holy 3 12 01 -1248 41 921 7 10 1296 1296 Medium Formless Neutral 3 12 05 -1249 39 809 1 10 1248 1248 Medium Formless Neutral 3 12 17 -1250 42 4950 1 10 672 672 Medium Demihuman Fire 1 12 21 -1251 92 630500 2 10 468 468 Large Formless Wind 4 12 21 -1252 98 1275500 3 10 608 408 Large Brute Water 4 12 21 -1253 100 9233 9 10 1020 720 Medium Demon Wind 3 12 05 -1254 48 985 1 10 1000 900 Small Brute Wind 1 12 21 -1255 98 8133 1 10 776 576 Small Brute Earth 1 12 21 -1256 89 5752 1 10 700 648 Small Brute Dark 2 12 21 -1257 95 8087 1 10 770 720 Medium Undead Dark 2 12 21 -1258 55 1487 9 10 1172 672 Small Demihuman Poison 1 12 05 -1259 105 60720 1 10 704 504 Large Brute Wind 4 12 21 -1260 76 3653 1 10 920 720 Medium Demon Dark 3 12 21 -1261 70 2160 1 10 964 864 Small Brute Wind 1 12 02 -1262 65 50706 4 10 1280 1080 Large Dragon Fire 2 12 21 -1263 80 3631 2 10 1056 1056 Medium Demon Wind 3 12 21 -1264 60 2324 1 10 916 816 Medium Demihuman Water 3 12 21 -1265 35 597 1 10 1036 936 Small Demihuman Neutral 3 12 17 -1266 50 1194 1 10 1264 864 Small Fish Earth 1 12 17 -1267 103 10813 1 10 1078 768 Medium Demon Wind 2 12 21 -1268 116 68500 3 10 828 528 Large Formless Dark 4 12 21 -1269 81 4505 1 10 1092 792 Medium Formless Earth 2 12 17 -1270 90 6425 3 10 1072 672 Large Formless Neutral 4 12 17 -1271 57 1939 1 10 1100 900 Medium Brute Water 1 12 17 -1272 96 1190900 2 10 868 768 Large Demon Undead 4 12 21 -1273 45 1145 1 10 1050 900 Medium Demihuman Earth 2 12 21 -1274 65 2599 9 10 1332 1332 Large Formless Neutral 4 12 10 -1275 100 9233 1 10 502 1999 Medium Demihuman Neutral 3 12 17 -1276 82 4809 9 10 1152 1152 Medium Demon Dark 2 12 05 -1277 55 1405 3 10 1152 1152 Medium Formless Fire 2 12 10 -1278 68 2817 1 10 1264 864 Large Formless Neutral 4 12 17 -1279 66 2186 1 10 860 660 Small Insect Earth 1 12 21 -1280 66 2307 1 10 1008 1008 Medium Demihuman Wind 2 12 17 -1281 70 2429 1 10 936 936 Small Brute Neutral 3 12 17 -1282 108 11472 9 10 1008 1008 Small Demihuman Fire 1 12 05 -1283 70 26406 1 10 772 672 Large Brute Fire 3 12 21 -1285 74 28634 12 14 1200 1200 Large Demihuman Neutral 4 16 12 -1286 86 30214 2 14 1200 1200 Large Demihuman Neutral 4 16 12 -1287 56 15670 1 10 1288 288 Large Demihuman Neutral 1 12 12 -1288 90 100 1 10 1288 288 Small Angel Holy 1 12 06 -1289 81 77670 2 10 1024 1000 Large Insect Earth 4 12 21 -1290 139 180130 1 10 2276 576 Medium Undead Undead 1 12 21 -1291 121 37420 2 10 1816 576 Large Undead Undead 4 12 21 -1292 117 22763 1 10 1000 600 Small Demon Dark 1 12 21 -1293 117 18211 2 10 1136 720 Small Insect Wind 1 12 21 -1294 141 180141 1 10 1528 660 Medium Insect Earth 1 12 21 -1295 120 25428 2 10 1345 824 Large Demon Neutral 3 12 21 -1296 112 13520 1 10 1028 528 Medium Demihuman Wind 2 12 21 -1297 114 20935 1 10 1772 120 Medium Undead Undead 2 12 21 -1298 119 25297 1 10 2612 912 Medium Undead Undead 1 12 21 -1299 55 21692 1 10 1120 620 Medium Demihuman Wind 1 12 21 -1300 121 25907 1 10 1672 672 Small Insect Earth 1 12 21 -1301 141 181487 1 10 1156 456 Small Demon Dark 1 12 21 -1302 96 46255 2 10 1024 768 Large Demon Undead 4 12 21 -1303 120 18495 1 10 1292 792 Small Insect Wind 1 12 21 -1304 117 25039 1 10 1468 468 Large Insect Poison 1 12 21 -1305 121 31663 1 10 1792 792 Large Insect Poison 1 12 21 -1306 118 25168 1 10 1260 230 Large Brute Earth 1 12 21 -1307 79 23600 1 10 1276 576 Medium Demon Fire 3 12 21 -1308 52 1471 1 10 960 1008 Medium Demihuman Wind 2 12 21 -1309 140 185098 1 10 1000 1152 Small Formless Fire 4 12 21 -1310 107 13522 1 10 1100 960 Large Brute Fire 2 12 21 -1311 120 26583 1 10 1960 960 Large Brute Earth 2 12 21 -1312 110 1442000 2 10 900 1000 Large Brute Earth 2 12 21 -1313 58 1820 1 10 1100 560 Medium Demihuman Neutral 1 12 21 -1314 90 5841 2 10 1100 483 Medium Brute Neutral 2 12 17 -1315 100 8772 2 10 512 780 Medium Demihuman Wind 2 12 21 -1316 92 7426 2 10 1452 483 Medium Brute Earth 2 12 17 -1317 47 1300 1 10 1612 622 Medium Brute Water 1 12 19 -1318 98 7681 2 10 1452 483 Medium Brute Fire 2 12 21 -1319 94 8346 2 10 1260 960 Medium Brute Water 2 12 21 -1320 92 7780 1 10 1345 824 Large Demon Neutral 3 12 21 -1321 86 5217 1 10 862 534 Medium Insect Wind 2 12 21 -1322 88 5947 1 10 1120 552 Medium Brute Earth 2 12 02 -1323 48 1474 1 10 1132 583 Medium Brute Water 3 12 19 -1324 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1325 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1326 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1327 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1328 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1329 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1330 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1331 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1332 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1333 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1334 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1335 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1336 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1337 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1338 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1339 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1340 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1341 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1342 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1343 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1344 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1345 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1346 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1347 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1348 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1349 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1350 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1351 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1352 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1353 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1354 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1355 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1356 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1357 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1358 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1359 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1360 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1361 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1362 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1363 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1364 98 7798 2 10 1000 900 Medium Demon Wind 2 12 21 -1365 121 31663 2 10 1840 1440 Large Formless Neutral 3 12 17 -1366 103 10244 1 10 2190 2040 Large Formless Fire 4 12 19 -1367 101 9503 2 10 1732 1332 Medium Demon Fire 2 12 20 -1368 73 3408 3 10 1308 1008 Medium Plant Earth 3 12 10 -1369 75 3084 2 10 1460 960 Large Brute Fire 2 12 03 -1370 119 25297 2 10 1306 1056 Medium Demon Dark 3 12 21 -1371 105 10431 2 10 920 720 Small Angel Holy 3 12 04 -1372 80 2905 1 10 1380 1080 Medium Brute Fire 3 12 03 -1373 94 603883 3 10 1446 1296 Large Demon Dark 3 12 21 -1374 120 25428 2 10 850 600 Medium Demon Dark 3 12 21 -1375 97 8939 1 10 720 864 Medium Formless Neutral 3 12 04 -1376 83 4454 1 10 972 672 Medium Demon Wind 3 12 04 -1377 92 7780 3 10 1552 1152 Large Demihuman Neutral 4 12 04 -1378 91 6284 1 10 1260 960 Small Demon Poison 3 12 04 -1379 107 17079 1 10 1216 816 Large Demon Dark 3 12 04 -1380 65 2363 1 10 1300 900 Medium Brute Earth 1 12 04 -1381 66 2185 1 10 1492 1092 Large Brute Fire 3 12 04 -1382 104 11485 1 10 1080 780 Small Demon Dark 2 12 04 -1383 100 6464 1 10 1260 960 Small Brute Fire 3 12 04 -1384 105 9851 1 10 1020 720 Medium Dragon Fire 2 12 13 -1385 105 9851 1 10 1024 624 Medium Dragon Fire 2 12 13 -1386 81 4505 1 10 1350 1200 Medium Formless Earth 2 12 04 -1387 100 6926 1 10 1264 864 Small Brute Fire 2 12 04 -1388 84 25100 1 10 1072 672 Medium Angel Holy 3 12 21 -1389 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 -1390 118 22880 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 -1391 45 982 1 10 1430 1080 Small Brute Earth 1 12 07 -1392 48 1290 10 10 2416 2016 Large Formless Wind 2 12 05 -1393 55 1899 1 10 1772 72 Medium Undead Undead 2 12 04 -1394 17 204 1 10 2612 912 Medium Undead Undead 1 12 04 -1395 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 -1396 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 -1397 1 50 0 0 864 1864 Small Formless Neutral 1 0 01 -1398 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 -1399 68 1264000 3 10 768 768 Large Demon Dark 3 12 21 -1400 72 3027 1 10 1638 2016 Medium Formless Neutral 3 12 01 -1401 95 8087 2 10 1003 1152 Medium Demihuman Dark 3 12 21 -1402 87 5577 3 10 1148 1728 Medium Brute Poison 2 12 01 -1403 88 6513 10 10 1084 2304 Medium Undead Undead 2 12 05 -1404 85 5083 1 10 1938 2112 Medium Demon Dark 1 12 17 -1405 98 10390 2 10 1439 1920 Large Demon Earth 2 12 04 -1406 83 4899 1 10 2012 1728 Medium Fish Water 1 12 04 -1408 94 6896 3 10 472 576 Medium Insect Wind 2 12 13 -1409 60 1744 1 10 1247 768 Small Demihuman Neutral 1 12 17 -1410 92 7426 7 10 400 672 Medium Plant Earth 2 12 05 -1412 96 9727 10 10 480 840 Large Formless Neutral 2 12 05 -1413 90 4381 1 10 512 756 Small Plant Fire 2 12 17 -1415 68 1793 2 10 318 528 Small Brute Ghost 1 12 04 -1416 97 9832 2 10 637 1008 Medium Demon Dark 3 12 21 -1417 90 6425 1 10 780 1008 Medium Brute Dark 1 12 17 -1418 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 -1419 24 330 1 10 1276 576 Small Brute Dark 1 12 04 -1420 50 1458 9 10 2864 864 Medium Undead Undead 1 12 04 -1421 59 2252 1 10 1384 768 Large Demon Dark 1 12 04 -1422 63 1902 1 10 676 576 Small Insect Wind 2 12 04 -1423 61 2429 1 10 2456 912 Medium Undead Undead 2 12 04 -1424 70 2698 1 10 1576 576 Medium Brute Poison 1 12 04 -1425 53 1776 1 10 1872 672 Medium Fish Water 2 12 04 -1426 56 1963 1 10 1272 72 Medium Fish Water 2 12 04 -1427 69 2366 1 10 1816 816 Large Demon Ghost 3 12 04 -1428 26 379 1 10 1672 672 Medium Plant Poison 1 12 04 -1429 75 3570 1 10 1792 792 Large Insect Poison 1 12 04 -1430 47 1300 1 10 1468 468 Large Insect Poison 1 12 04 -1431 57 1763 1 10 868 480 Small Demon Dark 1 12 04 -1432 103 10244 1 10 1120 420 Medium Brute Fire 1 12 04 -1433 64 2300 1 10 980 600 Small Demon Dark 1 12 04 -1434 47 1182 1 10 1276 576 Small Brute Dark 2 12 04 -1435 80 4720 1 10 2276 576 Large Undead Undead 4 12 04 -1436 63 1901 1 10 1180 480 Medium Formless Fire 2 12 04 -1437 90 6425 1 10 1364 864 Large Demihuman Wind 4 12 04 -1438 118 27456 1 10 528 1000 Large Undead Undead 1 12 04 -1439 81 4077 1 10 1500 500 Large Demihuman Fire 2 12 04 -1440 84 4084 1 10 1500 500 Medium Plant Wind 1 12 04 -1441 85 4621 7 10 832 500 Medium Fish Poison 1 12 04 -1442 72 3329 1 10 1260 192 Large Brute Neutral 3 12 04 -1443 41 921 7 10 1296 1296 Medium Formless Neutral 3 12 04 -1444 42 4950 1 10 672 672 Medium Demihuman Fire 1 12 04 -1445 48 985 1 10 1000 900 Small Brute Wind 1 12 04 -1446 95 8087 1 10 770 720 Medium Undead Dark 2 12 04 -1447 105 60720 1 10 704 504 Large Brute Wind 4 12 04 -1448 76 3653 1 10 920 720 Medium Demon Dark 3 12 04 -1449 65 50706 4 10 1280 1080 Large Dragon Fire 2 12 04 -1450 80 3631 2 10 1056 1056 Medium Demon Wind 3 12 04 -1451 60 2324 1 10 916 816 Medium Demihuman Water 2 12 04 -1452 45 1145 1 10 1050 900 Medium Demihuman Earth 2 12 04 -1453 82 4809 9 10 1152 1152 Medium Demon Dark 2 12 04 -1454 66 2186 1 10 860 660 Small Insect Earth 1 12 04 -1455 108 11472 9 10 1008 1008 Small Demihuman Fire 1 12 04 -1456 70 26406 1 10 772 672 Large Brute Fire 3 12 04 -1457 65 2363 1 10 1528 660 Medium Insect Earth 1 12 04 -1458 73 3099 1 10 1540 840 Large Demihuman Fire 1 12 04 -1459 62 2209 1 10 1480 480 Small Demon Ghost 3 12 04 -1460 58 2002 1 10 432 432 Medium Brute Dark 1 12 04 -1461 58 1729 1 10 1360 960 Large Brute Fire 2 12 04 -1462 53 1699 1 10 2420 720 Medium Undead Undead 1 12 04 -1463 51 1586 1 10 2852 1152 Medium Undead Undead 1 12 04 -1464 79 3020 1 10 976 576 Medium Demihuman Fire 2 12 04 -1465 86 5491 1 10 1624 620 Medium Dragon Earth 1 12 04 -1466 79 3197 1 10 1420 1080 Medium Dragon Wind 1 12 04 -1467 115 21981 1 10 824 780 Large Demihuman Dark 2 12 04 -1468 71 3251 1 10 1516 816 Medium Demihuman Dark 1 12 04 -1469 44 1151 1 10 2420 720 Medium Undead Undead 1 12 04 -1470 70 2429 1 10 1780 1080 Medium Demihuman Fire 1 12 04 -1471 72 2422 1 10 840 540 Medium Brute Fire 3 12 04 -1472 59 2065 1 10 1720 500 Medium Undead Undead 1 12 04 -1473 78 3474 9 10 1960 620 Medium Demihuman Earth 1 12 04 -1474 56 1707 1 10 972 500 Medium Formless Neutral 3 12 04 -1475 77 4415 1 10 1816 576 Large Undead Undead 4 12 04 -1476 88 5664 1 10 1020 500 Medium Formless Neutral 3 12 04 -1477 77 4320 1 10 960 500 Medium Insect Earth 2 12 04 -1478 74 2855 1 10 864 500 Small Formless Neutral 3 12 04 -1479 91 8378 1 10 1848 500 Medium Undead Undead 3 12 04 -1480 89 6902 1 10 1768 500 Medium Undead Undead 3 12 04 -1481 82 3498 1 10 1500 500 Small Plant Wind 1 12 04 -1482 105 61350 1 10 800 792 Medium Demihuman Neutral 3 12 04 -1483 98 9939 1 10 1790 1440 Large Demon Neutral 2 12 04 -1484 102 12408 2 10 1744 1344 Large Demihuman Neutral 2 12 04 -1485 130 70000 2 10 1152 500 Large Formless Dark 4 12 04 -1486 114 59000 1 10 816 500 Medium Formless Dark 3 12 04 -1487 101 40200 2 10 768 500 Large Formless Dark 2 12 04 -1488 109 16615 1 10 900 500 Medium Fish Water 2 12 04 -1489 104 12633 1 10 528 500 Medium Formless Earth 3 12 04 -1490 120 20806 2 10 672 500 Medium Demon Wind 1 12 04 -1491 68 2561 1 10 1156 456 Small Demon Dark 1 12 04 -1492 100 901000 3 10 874 1344 Large Demihuman Dark 3 12 21 -1493 68 2817 3 10 950 2520 Medium Plant Earth 4 12 04 -1494 55 1487 1 10 1247 768 Small Insect Earth 1 12 03 -1495 64 1840 10 10 2413 1248 Medium Plant Fire 3 12 04 -1497 72 3631 1 10 1543 1632 Large Plant Earth 4 12 04 -1498 67 2618 10 10 857 1056 Medium Demihuman Earth 2 12 04 -1499 67 2120 1 10 912 1344 Medium Demihuman Fire 2 12 04 -1500 76 3155 8 10 864 864 Medium Plant Wind 2 12 10 -1502 99 95000000 1 10 1672 672 Medium Plant Poison 1 12 04 -1503 105 13905 1 10 917 1584 Large Demon Dark 1 12 04 -1504 108 16491 2 10 847 1152 Medium Undead Undead 2 12 04 -1505 109 17336 2 10 747 1632 Large Demon Dark 4 12 04 -1506 103 12520 2 10 516 768 Medium Demon Earth 4 12 04 -1507 110 17467 2 10 914 1344 Large Demihuman Dark 3 12 04 -1508 100 9233 1 10 912 1248 Small Undead Undead 1 12 04 -1509 101 11179 2 10 890 960 Small Undead Undead 1 12 04 -1510 102 11280 1 10 741 1536 Small Demon Dark 2 12 04 -1511 69 1009000 3 14 854 2016 Large Demihuman Earth 3 12 10 -1512 87 6413 1 10 890 1320 Medium Undead Undead 2 12 04 -1513 89 5465 2 10 1257 528 Medium Brute Wind 2 12 04 -1514 82 4154 2 10 600 840 Medium Dragon Wind 2 12 02 -1515 94 10016 1 10 879 672 Medium Brute Water 2 12 04 -1516 83 4899 1 10 106 1056 Medium Formless Earth 3 12 17 -1517 80 3994 1 10 1120 576 Medium Demon Earth 3 12 04 -1518 97 720500 2 10 576 960 Large Demihuman Wind 3 12 04 -1519 49 23900 1 10 1728 816 Medium Demihuman Neutral 2 12 04 -1520 15 777 1 10 1152 672 Medium Plant Water 1 12 01 -1521 100 9233 1 10 520 2304 Medium Demihuman Neutral 3 12 17 -1522 115 29157 1 10 1772 120 Medium Undead Undead 2 12 21 -1523 88 6513 10 10 1084 2304 Medium Undead Undead 2 12 05 -1524 68 1793 2 10 318 528 Small Brute Ghost 1 12 04 -1525 86 6040 1 10 1504 840 Medium Demihuman Dark 1 12 21 -1526 94 6896 3 10 472 576 Medium Insect Wind 2 12 13 -1527 90 6425 3 10 1072 672 Large Formless Neutral 4 12 17 -1528 81 4505 1 10 1092 792 Medium Formless Earth 2 12 17 -1529 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 -1530 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 -1531 96 9727 10 10 480 840 Large Formless Neutral 2 12 05 -1532 100 6464 1 10 1260 960 Small Brute Fire 3 12 02 -1533 47 1300 1 10 1612 622 Medium Brute Water 1 12 19 -1534 48 1107 1 10 1120 620 Medium Demihuman Wind 1 12 21 -1535 44 943 1 10 1320 620 Medium Demihuman Fire 1 12 19 -1536 44 1047 1 10 1624 624 Medium Demihuman Poison 1 12 13 -1537 49 1277 1 10 1624 624 Medium Demihuman Earth 1 12 13 -1538 56 1877 1 10 3074 1874 Medium Demihuman Water 1 12 13 -1539 55 21692 1 10 1120 620 Medium Demihuman Wind 1 12 21 -1540 61 2324 1 10 1608 816 Large Formless Neutral 3 12 17 -1541 55 1405 3 10 1152 1152 Medium Formless Fire 2 12 10 -1542 100 901000 3 10 874 1344 Large Demihuman Dark 3 12 21 -1543 83 4899 1 10 2012 1728 Medium Fish Water 1 12 04 -1544 72 3027 1 10 1638 2016 Medium Formless Neutral 3 12 01 -1545 107 13522 1 10 1028 528 Medium Demihuman Wind 2 12 13 -1546 102 11280 1 10 1528 528 Medium Demihuman Poison 2 12 13 -1547 101 9503 1 10 1228 528 Medium Demihuman Fire 2 12 13 -1548 112 13520 1 10 1028 528 Medium Demihuman Wind 2 12 21 -1549 103 10244 1 10 2190 2040 Large Formless Fire 4 12 02 -1550 92 7426 7 10 400 672 Medium Plant Earth 2 12 05 -1551 47 1241 1 10 1956 756 Small Fish Water 2 12 17 -1552 85 5083 1 10 1938 2112 Medium Demon Dark 1 12 17 -1553 49 1404 1 10 1576 576 Large Formless Poison 1 12 21 -1554 107 17079 1 10 1216 816 Large Demon Dark 3 12 04 -1555 76 3155 8 10 864 864 Medium Plant Wind 2 12 10 -1556 87 5577 3 10 1148 1728 Medium Brute Poison 2 12 01 -1557 48 1290 10 10 2416 2016 Large Formless Wind 2 12 05 -1558 61 2324 1 10 1672 720 Medium Formless Earth 3 12 04 -1559 16 136 1 10 1564 864 Small Insect Fire 1 12 19 -1560 95 8087 2 10 1003 1152 Medium Demihuman Dark 3 12 21 -1561 29 414 1 10 1576 576 Small Brute Earth 1 12 17 -1562 34 691 1 10 2276 576 Medium Undead Undead 1 12 04 -1563 98 10390 2 10 1439 1920 Large Demon Earth 2 12 04 -1564 97 9832 2 10 637 1008 Medium Demon Dark 3 12 21 -1565 90 4381 1 10 512 756 Small Plant Fire 2 12 17 -1566 86 10035 2 10 1816 576 Large Undead Undead 4 12 21 -1567 83 4140 1 10 1792 792 Large Insect Poison 1 12 21 -1568 77 19800 1 10 1072 672 Medium Angel Holy 4 12 21 -1569 116 68500 3 10 828 528 Large Formless Dark 4 12 21 -1570 82 3935 1 10 1000 500 Small Brute Poison 2 12 19 -1571 60 2324 1 10 1680 480 Medium Fish Water 4 12 17 -1572 2 46 1 10 1372 672 Medium Plant Fire 1 12 02 -1573 92 7780 3 10 1552 1152 Large Demihuman Neutral 4 12 04 -1574 34 535 1 10 1372 672 Medium Plant Fire 2 12 02 -1575 59 2065 3 10 1432 432 Large Plant Earth 1 12 10 -1576 90 26700 1 10 1220 1080 Medium Demon Ghost 4 12 21 -1577 55 1487 9 10 1172 672 Small Demihuman Poison 1 12 05 -1578 66 1701 1 10 1888 1152 Small Formless Fire 4 12 13 -1579 34 661 7 10 800 432 Small Plant Water 2 12 10 -1580 120 25428 2 10 850 600 Medium Demon Dark 3 12 21 -1581 18 3317 1 10 1080 648 Medium Insect Earth 1 12 21 -1582 66 16890 1 10 1072 1056 Medium Demon Dark 4 12 21 -1583 110 1252000 2 10 1020 288 Large Demon Neutral 3 12 21 -1584 73 3717 1 10 512 1152 Large Demon Dark 3 12 13 -1585 1 0 1 10 676 672 Medium Plant Water 1 12 06 -1586 64 2070 1 10 960 864 Small Brute Earth 1 12 02 -1587 70 2159 1 10 1152 1536 Medium Formless Ghost 2 12 19 -1588 24 1400 1 10 1864 864 Medium Demihuman Earth 1 12 01 -1589 13 140 4 10 1768 768 Medium Plant Earth 3 12 10 -1590 73 3408 3 10 1308 1008 Medium Plant Earth 3 12 10 -1591 29 2334 1 10 1456 456 Small Brute Neutral 3 12 04 -1592 40 8000 1 10 1100 560 Medium Demihuman Neutral 1 12 03 -1593 52 8613 1 10 1772 120 Medium Undead Undead 3 12 04 -1594 94 8346 2 10 1452 483 Medium Brute Water 2 12 21 -1595 37 844 1 10 1872 672 Medium Plant Water 2 12 01 -1596 73 3717 1 10 512 1152 Large Demon Dark 3 12 13 -1597 100 9233 9 10 1020 720 Medium Demon Wind 3 12 05 -1598 101 9503 2 10 1732 1332 Medium Demon Fire 2 12 02 -1599 66 2570 1 10 2536 1536 Small Demon Ghost 2 12 21 -1600 96 7480 2 10 1452 483 Medium Brute Fire 2 12 21 -1601 90 5841 2 10 1100 483 Medium Brute Neutral 2 12 21 -1602 92 7426 2 10 1452 483 Medium Brute Earth 2 12 21 -1603 29 506 1 10 1260 192 Large Brute Earth 1 12 17 -1604 82 3960 1 10 1292 792 Small Insect Wind 1 12 21 -1605 96 46255 2 10 1024 768 Large Demon Undead 4 12 21 -1606 94 10016 1 10 879 672 Medium Brute Water 2 12 04 -1607 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 21 -1608 19 583 1 10 988 288 Medium Insect Dark 1 12 13 -1609 82 4154 2 10 600 840 Medium Dragon Wind 2 12 02 -1610 30 2872 1 10 2468 768 Medium Undead Undead 4 12 04 -1611 59 2510 1 10 1720 500 Medium Undead Undead 4 12 19 -1612 56 9981 1 10 890 1320 Medium Undead Undead 4 12 04 -1613 81 3862 1 10 384 672 Small Formless Neutral 1 12 02 -1614 96 7959 1 10 648 480 Small Formless Neutral 2 12 17 -1615 97 8492 1 10 720 864 Small Formless Earth 2 12 04 -1616 90 6717 1 10 960 336 Large Undead Earth 2 12 17 -1617 92 7780 1 10 1152 528 Large Formless Neutral 1 12 04 -1618 94 27070 1 10 420 576 Large Insect Poison 2 12 21 -1619 85 4621 1 10 720 360 Small Insect Earth 3 12 02 -1620 87 4462 1 10 768 1440 Medium Formless Ghost 3 12 04 -1621 87 5577 1 10 768 1440 Medium Formless Poison 1 12 04 -1622 91 6284 1 10 512 780 Small Formless Neutral 3 12 20 -1623 100 1001000 1 10 128 1104 Large Formless Neutral 3 12 21 -1624 92 7780 1 10 1152 528 Large Formless Neutral 1 12 04 -1625 85 4621 1 10 720 360 Small Insect Earth 3 12 04 -1626 59 8600 2 10 432 384 Medium Demon Undead 3 12 21 -1627 95 6617 1 10 1084 2304 Small Insect Wind 3 12 04 -1628 85 4390 9 10 1400 960 Small Brute Earth 2 12 03 -1629 43 2870 3 10 336 540 Medium Brute Wind 3 12 04 -1630 97 720500 3 10 576 960 Large Demihuman Wind 3 12 21 -1631 82 4154 2 10 1728 816 Medium Demihuman Wind 2 12 21 -1632 118 27456 1 10 432 540 Large Demon Dark 2 12 17 -1633 120 19651 6 10 336 840 Small Formless Wind 2 12 17 -1634 142 204962 1 10 76 384 Medium Demon Fire 3 12 19 -1635 140 220525 1 10 76 384 Medium Demon Poison 4 12 19 -1636 142 378100 1 10 76 384 Medium Demihuman Water 4 12 19 -1637 140 250800 1 10 1152 384 Medium Demihuman Holy 3 12 20 -1638 141 200255 14 10 76 384 Medium Demihuman Wind 3 12 19 -1639 141 209780 1 10 1152 384 Medium Demihuman Ghost 3 12 20 -1640 160 2680000 1 10 76 384 Medium Demon Fire 4 12 21 -1641 160 1230000 1 10 76 384 Medium Demon Poison 4 12 21 -1642 160 3750000 1 10 76 384 Medium Demihuman Earth 4 12 21 -1643 160 2800000 1 10 1152 384 Medium Demihuman Holy 4 12 21 -1644 160 4140000 14 10 76 384 Medium Demihuman Wind 4 12 21 -1645 160 4500000 1 10 1152 384 Medium Demihuman Ghost 3 12 21 -1646 160 4680000 1 10 76 384 Medium Demon Fire 4 12 21 -1647 160 4230000 1 10 76 384 Medium Demon Poison 4 12 21 -1648 160 6750000 1 10 76 384 Medium Demihuman Earth 4 12 21 -1649 160 4800000 1 10 1152 384 Medium Demihuman Holy 4 12 21 -1650 160 4140000 14 10 76 384 Medium Demihuman Wind 4 12 21 -1651 160 4500000 1 10 1152 384 Medium Demihuman Ghost 3 12 21 -1652 136 40327 1 10 576 432 Medium Demihuman Fire 2 12 04 -1653 132 43191 1 10 576 432 Medium Demihuman Poison 3 12 04 -1654 134 46878 1 10 576 432 Medium Demihuman Earth 3 12 04 -1655 133 42764 1 10 576 432 Medium Demihuman Holy 2 12 04 -1656 135 43079 9 10 576 432 Medium Demihuman Wind 2 12 04 -1657 133 40282 1 10 576 432 Medium Demihuman Ghost 2 12 04 -1658 141 2910088 1 10 1008 864 Medium Demihuman Fire 2 12 21 -1659 132 43191 1 10 1008 864 Medium Demihuman Poison 3 12 04 -1660 134 46878 1 10 1008 864 Medium Demihuman Earth 3 12 04 -1661 133 42764 1 10 1008 864 Medium Demihuman Holy 2 12 04 -1662 135 43079 9 10 1008 864 Medium Demihuman Wind 2 12 04 -1663 133 40282 1 10 1008 864 Medium Demihuman Ghost 2 12 04 -1664 66 8000 9 10 1536 960 Medium Formless Neutral 2 12 10 -1665 67 7500 9 10 1536 960 Medium Formless Neutral 2 12 10 -1666 64 7100 9 10 1536 960 Medium Formless Neutral 2 12 10 -1667 65 7800 9 10 1536 960 Medium Formless Neutral 2 12 10 -1668 119 25297 3 10 580 288 Large Demihuman Neutral 3 12 21 -1669 77 10000 5 10 576 720 Medium Formless Neutral 2 12 04 -1670 116 21515 7 10 576 720 Medium Formless Wind 2 12 04 -1671 116 26044 5 10 576 720 Medium Formless Water 2 12 04 -1672 116 23779 5 10 576 720 Medium Formless Earth 2 12 04 -1673 116 19250 5 10 576 720 Medium Formless Fire 2 12 04 -1674 88 80000 5 14 1368 1344 Large Formless Fire 3 12 10 -1675 77 12717 2 10 504 1020 Medium Formless Fire 2 12 04 -1676 113 18092 2 10 504 1020 Medium Formless Neutral 2 12 04 -1677 113 17188 2 10 504 1020 Medium Formless Wind 2 12 04 -1678 113 18996 2 10 504 1020 Medium Formless Earth 2 12 04 -1679 113 20805 2 10 504 1020 Medium Formless Water 2 12 04 -1680 101 11179 3 10 504 480 Medium Brute Wind 3 12 04 -1681 135 108999 3 10 1872 360 Medium Formless Water 1 12 04 -1682 121 33102 1 10 1536 1056 Medium Undead Undead 2 12 04 -1683 66 8000 9 10 1536 960 Medium Formless Fire 2 12 04 -1684 119 25297 3 10 1080 288 Large Angel Neutral 3 12 04 -1685 128 3802000 3 10 504 912 Large Brute Holy 2 12 21 -1686 43 904 1 10 672 864 Small Demihuman Earth 1 12 04 -1687 55 1734 1 10 1152 1152 Medium Brute Earth 2 12 02 -1688 80 360000 14 10 576 432 Large Plant Wind 3 12 10 -1689 97 720500 3 10 576 960 Large Demihuman Wind 3 12 21 -1690 12 15 1 10 1120 552 Medium Brute Neutral 1 12 02 -1691 70 2159 1 10 1152 1536 Medium Formless Ghost 2 12 04 -1692 92 7073 2 10 140 384 Medium Formless Wind 3 12 04 -1693 119 16100 1 10 1056 1056 Small Formless Ghost 4 12 04 -1694 118 16016 1 10 912 1248 Small Formless Fire 4 12 04 -1695 116 22647 1 10 1000 500 Small Formless Earth 4 12 04 -1696 117 22763 1 10 768 1440 Small Formless Dark 4 12 04 -1697 115 20151 1 10 720 360 Small Formless Water 4 12 04 -1698 114 18205 1 10 176 912 Medium Formless Neutral 3 12 21 -1699 112 19778 1 10 168 480 Large Formless Neutral 3 12 04 -1700 127 36844 2 10 432 480 Medium Angel Neutral 4 12 20 -1701 125 29275 2 10 432 420 Medium Angel Holy 3 12 20 -1702 121 31663 2 10 360 480 Medium Angel Dark 3 12 20 -1703 123 29028 2 10 576 420 Medium Angel Holy 3 12 20 -1704 129 33389 9 10 432 288 Large Undead Ghost 4 12 21 -1705 129 33389 2 10 160 528 Large Undead Ghost 4 12 21 -1706 129 29680 2 10 160 480 Medium Undead Ghost 4 12 21 -1707 129 25971 2 10 160 672 Small Undead Ghost 4 12 21 -1708 99 1445660 3 10 115 816 Large Demon Ghost 4 12 21 -1709 129 33389 9 10 115 288 Large Undead Ghost 4 12 20 -1710 129 33389 2 10 160 528 Large Undead Ghost 4 12 20 -1711 129 29680 2 10 160 480 Medium Undead Ghost 4 12 20 -1712 129 25971 2 10 160 672 Small Undead Ghost 4 12 20 -1713 130 40950 2 10 168 1008 Large Dragon Holy 2 12 19 -1714 126 34882 2 10 108 576 Large Dragon Fire 2 12 19 -1715 90 5257 1 10 151 288 Small Dragon Neutral 1 12 04 -1716 130 39089 2 10 168 768 Large Dragon Wind 2 12 19 -1717 126 42224 2 10 108 576 Large Dragon Earth 2 12 19 -1718 84 4084 1 10 252 816 Small Dragon Neutral 1 12 04 -1719 135 6005000 3 10 432 936 Large Dragon Dark 3 12 21 -1720 121 41500 3 10 140 672 Large Dragon Dark 2 12 21 -1721 119 27826 0 10 24 0 Medium Dragon Neutral 2 12 06 -1722 99 10310 1 10 1180 480 Medium Formless Fire 2 12 21 -1723 82 30000 14 10 1008 384 Medium Demihuman Wind 3 12 26 -1724 66 8000 9 10 1536 960 Medium Formless Neutral 2 12 27 -1725 1 50 1 10 1872 672 Medium Plant Water 1 12 02 -1726 3 60 1 10 1456 456 Small Brute Neutral 3 12 02 -1727 7 182 1 10 1624 624 Small Brute Earth 1 12 02 -1728 14 140 1 10 1600 900 Small Brute Fire 1 12 02 -1729 50 8578 1 10 868 480 Small Demon Dark 1 12 02 -1730 64 2300 1 10 980 600 Small Demon Dark 1 12 02 -1731 77 380000 1 10 480 480 Large Angel Ghost 2 12 21 -1732 98 500 0 0 0 0 Small Formless Neutral 1 0 06 -1733 90 523500 3 10 1152 576 Medium Formless Dark 2 12 21 -1734 125 2502000 3 10 1152 576 Medium Formless Dark 2 12 21 -1735 115 18319 2 10 1080 480 Medium Demon Neutral 3 12 13 -1736 112 17980 2 10 1296 432 Medium Demon Neutral 3 12 13 -1737 112 17980 1 10 1440 576 Medium Demihuman Neutral 3 12 17 -1738 108 14340 1 10 720 360 Small Formless Dark 3 12 04 -1739 115 18319 2 10 1080 480 Medium Demon Neutral 3 12 13 -1740 112 17980 2 10 1296 432 Medium Demon Neutral 3 12 13 -1741 37 661 1 10 1248 1248 Small Demihuman Holy 2 12 04 -1742 103 10813 1 10 1078 768 Medium Demon Wind 2 12 04 -1743 39 809 1 10 1248 1248 Medium Formless Neutral 3 12 04 -1744 70 2160 1 10 964 864 Small Brute Wind 1 12 04 -1745 108 14340 1 10 720 360 Small Demon Dark 3 12 05 -1746 112 17980 1 10 1440 576 Medium Demihuman Neutral 3 12 04 -1747 18 203 1 10 1576 576 Medium Brute Earth 1 12 04 -1748 100 9233 1 10 1576 576 Medium Brute Poison 1 12 04 -1749 102 11280 1 10 1720 1320 Medium Demon Neutral 2 12 04 -1750 1 100 1 7 1 1 Small Plant Earth 1 12 06 -1751 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 -1752 126 40389 2 10 720 384 Medium Demon Dark 3 12 20 -1753 128 40668 2 10 480 576 Medium Demon Dark 3 12 20 -1754 131 53290 1 10 672 780 Small Angel Holy 2 12 21 -1755 131 52280 1 10 672 780 Small Angel Holy 2 12 21 -1756 121 41500 3 10 140 672 Large Dragon Dark 2 12 04 -1757 130 40950 2 10 168 1008 Large Dragon Holy 2 12 04 -1758 126 34882 2 10 108 576 Large Dragon Fire 2 12 04 -1759 130 39089 2 10 168 768 Large Dragon Wind 2 12 04 -1760 126 42224 2 10 108 576 Large Dragon Earth 2 12 04 -1761 126 40389 2 10 720 384 Medium Demon Dark 3 12 04 -1762 128 40668 2 10 480 576 Medium Demon Dark 3 12 04 -1763 131 53290 1 10 672 780 Small Angel Holy 2 12 04 -1764 131 52280 1 10 672 780 Small Angel Holy 2 12 04 -1765 141 1005000 3 10 576 576 Large Angel Holy 4 12 21 -1766 99 128430 1 10 1288 288 Small Angel Holy 3 12 21 -1767 99 128430 1 10 1288 288 Small Angel Holy 3 12 21 -1768 139 3005000 3 10 1344 2880 Large Formless Ghost 3 12 21 -1769 128 36971 1 10 768 360 Medium Demihuman Neutral 4 12 20 -1770 126 36718 1 10 768 360 Medium Demihuman Neutral 4 12 20 -1771 123 29028 1 10 768 360 Medium Demihuman Neutral 4 12 04 -1772 124 29151 1 10 768 360 Medium Demihuman Neutral 4 12 04 -1773 122 31796 1 10 960 528 Medium Demon Dark 3 12 04 -1774 124 26236 6 10 576 432 Small Formless Wind 3 12 20 -1775 103 14227 2 10 936 1020 Large Formless Water 2 12 04 -1776 98 9940 1 10 432 648 Small Formless Water 3 12 02 -1777 110 18923 1 10 861 660 Large Formless Water 3 12 04 -1778 106 15539 10 10 576 370 Medium Demon Water 1 12 20 -1779 98 2626000 3 10 432 840 Large Brute Water 4 12 21 -1780 105 11589 3 10 672 648 Medium Plant Earth 1 12 10 -1781 101 11179 7 10 864 576 Medium Plant Earth 1 12 10 -1782 95 6617 1 10 1500 500 Medium Brute Wind 1 12 07 -1783 100 8772 1 10 864 624 Medium Brute Wind 2 12 07 -1784 95 6984 1 10 936 792 Small Formless Earth 2 12 02 -1785 113 1502000 2 10 576 600 Large Brute Dark 3 12 21 -1786 128 36971 1 10 768 360 Medium Demihuman Neutral 4 12 20 -1787 126 36718 1 10 768 360 Medium Demihuman Neutral 2 12 20 -1788 110 18923 1 10 861 660 Large Formless Water 3 12 20 -1789 100 1012 3 10 1344 0 Small Formless Water 2 12 10 -1790 86 4942 3 10 512 528 Small Plant Earth 1 12 04 -1791 100 8772 1 10 864 624 Medium Brute Wind 2 12 07 -1792 1 10 0 0 96 96 Small Formless Neutral 1 0 06 -1793 65 2599 9 10 1332 1332 Large Formless Neutral 4 12 21 -1794 95 6617 1 10 412 840 Medium Brute Wind 1 12 20 -1795 116 68500 3 10 828 528 Large Angel Ghost 1 12 04 -1796 110 14557 1 10 768 432 Medium Demihuman Neutral 4 12 20 -1797 120 23117 1 10 768 432 Medium Demihuman Neutral 4 12 04 -1798 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1799 99 1647590 1 10 76 384 Medium Demihuman Fire 4 12 21 -1800 99 1411230 1 10 76 384 Medium Demihuman Poison 4 12 21 -1801 99 1460000 1 10 76 384 Medium Demihuman Earth 4 12 21 -1802 99 1092910 1 10 1152 384 Medium Demihuman Holy 4 12 21 -1803 99 1349000 14 10 76 384 Medium Demihuman Wind 4 12 21 -1804 99 1069920 1 10 1152 384 Medium Demihuman Ghost 3 12 21 -1805 10 10 1 10 76 384 Medium Demihuman Fire 4 12 21 -1806 10 10 1 10 76 384 Medium Demihuman Poison 4 12 21 -1807 10 10 1 10 76 384 Medium Demihuman Water 4 12 21 -1808 10 10 1 10 1152 384 Medium Demihuman Holy 4 12 21 -1809 10 10 14 10 76 384 Medium Demihuman Wind 4 12 20 -1810 10 10 1 10 1152 384 Medium Demihuman Ghost 3 12 21 -1811 18 641 1 10 1576 576 Small Brute Earth 1 12 17 -1812 10 20 2 10 890 960 Small Undead Undead 1 12 01 -1813 99 1880000 3 10 972 672 Large Angel Ghost 1 12 21 -1814 80 30000 1 10 1276 576 Medium Brute Fire 3 12 21 -1815 1 14 1 10 1320 0 Medium Formless Neutral 1 12 06 -1816 12 1000 1 0 96 96 Medium Formless Neutral 1 0 06 -1817 99 8880000 3 10 972 936 Large Angel Ghost 2 12 21 -1818 58 10647 0 10 1020 500 Medium Formless Neutral 3 12 06 -1819 86 5242 1 10 1504 840 Medium Demihuman Dark 1 12 21 -1820 29 587 1 10 1260 192 Large Brute Earth 1 12 17 -1821 103 9447 1 10 1120 420 Medium Brute Fire 1 12 13 -1822 64 2300 1 10 980 600 Small Demon Dark 1 12 21 -1823 94 9990 2 10 1452 483 Medium Brute Water 2 12 21 -1824 94 10016 1 10 879 672 Medium Brute Water 2 12 04 -1825 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 01 -1826 39 879 1 10 1576 576 Large Formless Poison 1 12 21 -1827 30 3163 1 10 1260 192 Large Brute Neutral 3 12 21 -1828 20 20 1 10 1960 960 Large Brute Earth 2 12 17 -1829 133 70000 2 14 140 384 Large Demihuman Neutral 4 16 19 -1830 132 63000 12 14 76 384 Large Demihuman Neutral 4 16 26 -1831 138 80390 2 10 140 384 Large Formless Fire 3 12 21 -1832 146 6935000 3 10 212 384 Large Formless Fire 4 12 21 -1833 135 70128 2 10 800 600 Large Formless Fire 3 12 21 -1834 138 80390 2 10 140 384 Large Formless Fire 3 12 21 -1835 135 70128 2 10 800 600 Large Formless Fire 3 12 21 -1836 110 10919 1 10 1472 384 Small Formless Fire 2 12 02 -1837 129 25971 1 10 824 432 Small Demon Fire 3 12 26 -1838 126 33047 1 10 1548 384 Small Demon Earth 1 12 17 -1839 135 92544 2 14 800 600 Medium Demihuman Neutral 1 16 21 -1840 99 500 1 10 1960 480 Large Brute Earth 2 12 01 -1841 15 10 1 10 1576 576 Medium Brute Earth 1 12 01 -1842 23 15 1 10 1576 576 Medium Brute Poison 1 12 01 -1843 43 18 1 10 1576 576 Medium Brute Poison 1 12 01 -1844 47 25 1 10 1384 768 Large Demon Dark 1 12 01 -1845 98 500 0 0 0 0 Small Formless Neutral 1 0 06 -1846 90 1499 1 10 1288 288 Small Formless Holy 1 12 06 -1847 98 10000500 1 10 76 672 Medium Angel Ghost 1 12 06 -1848 50 10000 3 10 768 768 Large Demon Dark 3 12 21 -1849 60 125000 1 10 1072 672 Medium Undead Undead 4 12 21 -1850 50 175000 1 10 1678 780 Large Demihuman Earth 4 12 21 -1851 61 7991 1 10 1100 560 Medium Demihuman Neutral 1 12 21 -1852 99 120 1 10 1288 288 Small Angel Holy 3 12 06 -1853 99 120 1 10 1288 288 Small Angel Holy 3 12 06 -1854 17 610 1 10 1960 960 Large Plant Earth 1 12 01 -1855 19 665 1 10 1672 672 Medium Plant Poison 1 12 06 -1856 26 3195 1 10 1560 360 Small Demon Water 1 12 06 -1857 15 742 1 10 1872 672 Medium Plant Water 2 12 06 -1858 10 354 1 10 2208 1008 Small Plant Water 3 12 06 -1859 12 405 4 10 1768 768 Medium Plant Earth 3 12 06 -1860 17 817 1 10 1864 864 Small Brute Earth 1 12 06 -1861 43 4278 1 10 1500 500 Small Brute Fire 1 12 06 -1862 18 1109 1 10 1480 480 Small Brute Earth 2 12 06 -1863 25 4500 1 10 1120 552 Medium Brute Earth 2 12 06 -1864 124 34981 1 10 676 648 Medium Undead Undead 3 12 21 -1865 123 34833 9 10 1960 576 Medium Undead Undead 3 12 26 -1866 115 18319 1 10 824 432 Small Demon Dark 1 12 19 -1867 130 40950 1 10 676 504 Medium Demon Dark 2 12 20 -1868 130 40950 1 10 676 504 Medium Demon Dark 2 12 24 -1869 121 20150 1 10 972 648 Small Demon Ghost 3 12 20 -1870 133 91304 1 10 1816 1320 Medium Undead Undead 4 12 21 -1871 138 5655000 1 10 432 432 Medium Demon Dark 2 12 21 -1872 127 502000 1 10 432 480 Medium Angel Neutral 4 12 26 -1873 147 6805000 1 10 100 576 Small Demon Ghost 4 12 21 -1874 147 4805000 2 10 212 504 Large Demon Ghost 4 12 21 -1875 80 43000 2 10 1816 1152 Medium Undead Undead 4 12 21 -1876 99 99000000 3 10 1446 1296 Large Demon Dark 3 12 21 -1877 1 15 0 0 0 0 Small Formless Neutral 1 0 01 -1878 1 100 1 7 1 1 Small Plant Holy 1 12 06 -1879 6 1800 1 10 1456 456 Medium Brute Neutral 3 12 06 -1880 81 4720 1 10 2304 840 Medium Plant Earth 3 12 01 -1881 82 4809 1 10 1728 720 Medium Plant Earth 4 12 03 -1882 87 6134 2 10 1536 600 Medium Demihuman Water 1 12 04 -1883 85 5545 1 10 576 672 Medium Demihuman Water 3 12 04 -1884 84 4990 7 10 1536 504 Medium Plant Earth 3 12 04 -1885 97 1120500 3 10 1536 864 Large Brute Earth 3 12 21 -1886 84 4990 7 10 1536 504 Medium Plant Earth 3 12 21 -1887 94 9990 2 10 1452 483 Medium Brute Water 2 12 21 -1888 61 15199 1 10 879 672 Medium Brute Water 2 12 04 -1889 73 100000 3 10 608 408 Large Brute Water 4 12 21 -1890 85 599321 3 10 1536 864 Large Brute Earth 3 12 21 -1891 141 1005000 3 10 576 576 Large Angel Holy 4 12 21 -1892 109 17336 2 10 747 1632 Large Demon Dark 4 12 06 -1893 122 34686 1 10 1500 500 Large Demihuman Dark 4 12 21 -1894 15 15 1 10 1672 672 Small Plant Water 3 12 19 -1895 91 88902 1 10 76 384 Medium Demon Fire 3 12 06 -1896 92 47780 1 10 1152 384 Medium Demihuman Ghost 3 12 06 -1897 81 668000 2 10 768 768 Large Demon Dark 3 12 06 -1898 12 434 1 10 2612 912 Medium Undead Undead 1 12 06 -1899 133 70000 2 14 140 384 Large Demihuman Neutral 4 16 12 -1900 80 80404 12 14 76 384 Large Demihuman Neutral 4 16 21 -1901 10 15 1 10 1148 648 Small Brute Holy 1 12 03 -1902 99 49 0 0 0 0 Small Formless Holy 1 0 06 -1903 99 49 0 0 0 0 Small Formless Holy 1 0 06 -1904 28 1000000 1 10 1672 672 Small Formless Neutral 1 12 02 -1905 98 600500 1 10 1288 288 Large Formless Neutral 1 12 06 -1906 98 600 1 10 1288 288 Large Formless Neutral 1 12 06 -1907 90 120500 0 0 1288 288 Small Formless Neutral 1 0 06 -1908 90 120500 0 0 1288 288 Small Formless Neutral 1 0 06 -1909 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 -1910 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 -1911 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 -1912 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 -1913 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 -1914 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 -1915 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 -1916 151 7000000 2 10 312 624 Large Demon Dark 4 12 21 -1917 151 5000000 2 10 312 624 Large Demon Dark 4 12 21 -1918 132 63900 1 10 576 480 Large Angel Dark 1 12 21 -1919 132 64922 1 10 576 648 Medium Demon Dark 3 12 21 -1920 133 94800 2 10 212 432 Medium Demon Undead 3 12 21 -1921 134 77389 1 10 1536 648 Medium Demon Ghost 3 12 21 -1922 132 63900 1 10 312 480 Large Angel Dark 1 12 21 -1923 132 64922 1 10 312 648 Medium Demon Dark 3 12 21 -1924 133 94800 2 10 212 432 Medium Demon Undead 3 12 21 -1925 134 77389 1 10 1536 648 Medium Demon Ghost 3 12 21 -1926 1 15 1 10 1180 480 Medium Formless Fire 2 12 01 -1927 1 1000 1 10 1960 960 Small Demon Ghost 3 12 01 -1928 46 500 1 10 980 600 Small Demon Dark 1 12 01 -1929 98 4520500 2 10 768 768 Large Demon Dark 3 12 21 -1930 90 3000500 2 10 432 768 Small Demihuman Neutral 1 12 21 -1931 98 3567700 3 10 576 576 Large Angel Ghost 1 12 21 -1932 80 100 1 10 768 768 Small Formless Earth 2 12 01 -1933 81 300000 1 10 432 480 Medium Angel Neutral 4 12 13 -1934 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 -1935 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 -1936 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 -1937 108 11000 1 10 720 360 Small Formless Dark 3 12 04 -1938 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1939 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1940 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1941 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1942 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1943 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1944 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1945 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1946 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -1947 90 500500 2 10 432 768 Small Demihuman Neutral 1 12 24 -1948 136 40327 1 10 576 432 Medium Demihuman Fire 2 12 04 -1949 86 457599 2 14 140 384 Large Demihuman Neutral 4 16 12 -1950 80 241212 12 14 76 384 Large Demihuman Neutral 4 16 12 -1951 1 15 0 0 0 0 Small Formless Neutral 1 0 01 -1952 1 15 0 0 0 0 Small Formless Neutral 1 0 01 -1953 1 15 0 0 0 0 Small Formless Neutral 1 0 01 -1954 1 15 0 0 0 0 Small Formless Neutral 1 0 01 -1955 1 40 0 0 0 0 Small Formless Neutral 1 0 06 -1956 99 5000000 2 16 76 432 Large Demon Ghost 4 16 21 -1957 90 2400500 12 14 140 540 Medium Demon Dark 4 16 10 -1958 89 5400000 12 14 432 288 Small Demon Dark 4 16 27 -1959 89 350000 12 14 2864 288 Small Demon Ghost 4 16 27 -1960 89 5400000 12 14 1024 288 Small Demon Dark 4 16 27 -1961 89 5400000 12 14 2864 288 Small Demon Dark 4 16 10 -1962 10 15 1 10 720 720 Medium Demihuman Neutral 1 12 01 -1963 49 23900 1 10 1728 816 Medium Demihuman Neutral 2 12 01 -1964 30 2000 1 10 1816 816 Large Brute Ghost 3 12 06 -1965 38 4000 1 10 964 864 Small Brute Wind 1 12 06 -1966 72 7800 1 10 300 480 Medium Demon Dark 3 12 06 -1967 79 7800 1 10 300 480 Medium Demihuman Fire 2 12 06 -1968 48 11990 1 10 1872 672 Large Fish Water 3 12 04 -1969 36 6900 1 10 1272 72 Medium Fish Water 2 12 04 -1970 31 3952 1 10 1872 672 Medium Fish Water 2 12 19 -1971 19 5000 1 10 1632 432 Small Fish Water 1 12 17 -1972 21 2087 1 10 2280 1080 Small Plant Water 2 12 01 -1973 99 10 1 10 1872 672 Medium Plant Water 1 12 02 -1974 118 25168 2 10 676 504 Medium Demon Dark 2 12 20 -1975 106 13421 6 10 336 840 Medium Formless Wind 2 12 20 -1976 113 18092 1 10 648 480 Medium Formless Neutral 2 12 20 -1977 107 12810 1 10 384 672 Small Formless Neutral 1 12 20 -1978 121 31663 2 10 1840 1440 Large Formless Neutral 3 12 20 -1979 115 20150 3 10 580 288 Large Demihuman Neutral 3 12 21 -1980 85 633600 1 10 964 648 Medium Demihuman Earth 1 12 21 -1981 81 44193 1 10 1500 500 Large Demihuman Fire 2 12 21 -1982 78 54835 9 10 1960 620 Medium Demihuman Earth 1 12 19 -1983 87 80087 1 10 2420 720 Medium Undead Undead 1 12 04 -1984 80 50058 1 10 1050 900 Medium Demihuman Earth 2 12 21 -1985 37 45000 1 10 1772 72 Medium Demihuman Dark 2 12 21 -1986 128 36971 2 10 1000 768 Medium Brute Earth 1 12 07 -1987 125 29275 2 10 1000 792 Medium Insect Poison 2 12 21 -1988 114 18205 7 10 500 576 Medium Plant Poison 2 12 10 -1989 123 26126 1 10 400 780 Small Brute Earth 1 12 13 -1990 137 1900944 2 10 1000 660 Large Brute Earth 3 12 21 -1991 126 1397451 2 10 500 960 Medium Brute Earth 2 12 21 -1992 120 23117 2 10 1000 624 Medium Brute Holy 3 12 03 -1993 117 26177 3 10 400 864 Large Brute Earth 2 12 21 -1994 109 13004 1 10 1000 864 Medium Insect Wind 1 12 08 -1995 105 12747 1 10 700 600 Medium Plant Earth 3 12 13 -1997 128 36971 2 10 1000 768 Medium Brute Earth 1 12 07 -1998 123 26126 1 10 400 780 Small Brute Earth 1 12 13 -1999 118 20592 2 10 1000 792 Small Insect Poison 1 12 21 -2000 50 7000 1 10 300 384 Medium Demihuman Neutral 1 12 06 -2001 50 7000 1 10 300 384 Medium Demihuman Neutral 1 12 06 -2002 50 8000 1 10 1120 552 Medium Brute Earth 2 12 02 -2003 97 720500 2 10 576 960 Large Demihuman Water 2 12 21 -2004 63 16029 2 10 637 1008 Medium Demon Dark 3 12 21 -2005 44 8200 3 10 608 1440 Small Formless Water 4 12 04 -2006 49 5900 3 10 608 1440 Small Formless Dark 4 12 04 -2007 43 5700 3 10 608 1440 Small Formless Fire 4 12 04 -2008 82 4000000 3 10 828 528 Large Demon Ghost 2 12 21 -2009 82 2000000 1 10 414 1080 Medium Demon Ghost 2 12 21 -2010 66 500000 1 10 1100 960 Large Demon Ghost 1 12 24 -2011 40 99999 1 10 2456 912 Medium Undead Undead 2 12 04 -2012 15 99999 1 10 2612 912 Medium Undead Undead 1 12 04 -2013 114 18205 1 10 576 960 Medium Dragon Earth 1 12 03 -2014 101 100000 0 10 24 0 Medium Dragon Earth 4 12 06 -2015 113 18092 1 10 1426 600 Medium Plant Poison 2 12 13 -2016 121 37420 1 10 504 960 Large Formless Water 4 12 19 -2017 131 58299 1 10 792 540 Medium Demihuman Earth 3 12 20 -2018 135 63342 1 10 672 420 Medium Demihuman Earth 3 12 20 -2019 144 388933 1 10 504 960 Large Plant Earth 3 12 13 -2020 139 337220 1 10 576 660 Medium Formless Water 3 12 13 -2021 139 345560 10 10 360 780 Medium Formless Water 3 12 05 -2022 117 3452000 2 10 1596 1620 Large Dragon Dark 4 12 21 -2023 147 434300 1 10 768 1776 Small Formless Dark 2 12 19 -2024 133 45739 1 10 1008 1200 Large Formless Earth 2 12 20 -2025 10 18 1 10 1248 1248 Medium Formless Neutral 1 12 01 -2026 90 552500 1 10 1772 72 Medium Demihuman Dark 1 12 21 -2027 147 434300 1 10 768 1776 Small Formless Dark 2 12 24 -2030 90 240500 2 10 432 432 Large Demon Undead 4 12 13 -2031 80 120000 1 10 1772 72 Medium Demihuman Dark 2 12 13 -2032 50 99999 1 10 868 480 Small Demon Dark 1 12 13 -2033 1 100 1 7 1 1 Small Plant Earth 1 12 06 -2034 9 164 1 10 1600 900 Small Brute Fire 1 12 01 -2035 90 200500 0 10 1001 1 Small Insect Earth 1 12 06 -2036 98 11780 1 10 576 576 Medium Undead Undead 3 12 13 -2037 90 5500 1 10 576 576 Medium Angel Holy 3 12 01 -2038 90 10500 1 10 576 576 Medium Angel Holy 3 12 01 -2039 65 28980 2 10 768 500 Large Formless Dark 2 12 13 -2040 71 29900 1 10 816 500 Medium Formless Dark 3 12 13 -2041 76 33350 2 10 1152 500 Large Formless Dark 4 12 13 -2042 100 4500 9 10 504 1020 Medium Formless Neutral 1 12 10 -2043 100 2500 7 10 504 1020 Medium Formless Fire 1 12 06 -2044 100 2500 7 10 504 1020 Medium Formless Water 1 12 06 -2045 100 2500 7 10 504 1020 Medium Formless Earth 1 12 06 -2046 100 2500 7 10 504 1020 Medium Formless Wind 1 12 06 -2047 99 46708 3 10 400 864 Large Brute Earth 2 12 04 -2048 99 8780 1 10 1426 600 Medium Plant Poison 2 12 04 -2049 99 45200 1 10 1008 1200 Large Formless Earth 2 12 04 -2050 99 33220 1 10 504 960 Large Formless Water 4 12 05 -2052 96 100000000 2 10 868 768 Large Demon Undead 4 12 01 -2057 1 4720 1 10 1000 500 Small Brute Poison 2 12 19 -2058 51 6120 1 10 972 500 Medium Formless Neutral 3 12 19 -2059 55 7543 2 10 516 768 Medium Demon Earth 4 12 04 -2060 62 10000 1 10 502 1999 Medium Demihuman Neutral 3 12 17 -2066 5 50 1 10 1084 2304 Small Insect Wind 3 12 01 -2067 3 500 1 10 1084 2304 Small Insect Wind 3 12 01 -2068 93 1283990 2 10 1152 1152 Large Brute Fire 3 12 21 -2069 79 4262 1 10 384 672 Medium Fish Water 3 12 17 -2070 75 4219 1 10 768 480 Large Fish Water 3 12 04 -2071 80 3268 1 10 1216 816 Large Demon Fire 3 12 04 -2072 71 3103 1 10 576 1248 Medium Brute Earth 2 12 17 -2073 70 2564 1 10 960 1440 Medium Brute Wind 2 12 03 -2074 68 2561 1 10 528 480 Medium Demihuman Earth 1 12 07 -2075 1 300 5 10 1632 432 Large Formless Neutral 1 12 06 -2076 105 190800 1 10 1056 1056 Medium Demon Wind 3 12 19 -2077 105 244400 1 10 720 384 Medium Demon Dark 3 12 19 -2078 105 206660 1 10 1306 1056 Medium Demon Dark 3 12 19 -2079 77 7777777 0 0 1152 1152 Large Formless Neutral 3 0 21 -2080 1 100 1 10 1864 864 Large Formless Neutral 3 12 21 -2081 34 854 7 10 800 432 Small Plant Water 2 12 06 -2082 75 4219 1 10 768 480 Large Fish Water 3 12 20 -2083 130 51100 1 10 384 672 Small Insect Earth 1 12 03 -2084 134 58900 1 10 336 360 Small Insect Earth 1 12 03 -2085 136 62600 1 10 504 624 Medium Insect Earth 2 12 04 -2086 139 67700 1 10 588 768 Medium Insect Earth 2 12 04 -2087 140 2441600 3 10 864 1000 Large Insect Earth 3 12 21 -2088 125 63000 0 10 96 1 Small Insect Neutral 1 12 06 -2089 126 66000 0 10 96 1 Small Insect Neutral 1 12 06 -2090 127 69000 0 10 96 1 Small Insect Neutral 1 12 06 -2091 128 72000 0 10 96 1 Small Insect Neutral 1 12 06 -2092 132 54591 3 10 360 360 Large Insect Water 3 12 04 -2093 15 15 2 10 1872 672 Small Formless Holy 1 12 01 -2094 50 362000 1 10 1678 780 Large Demihuman Earth 2 12 21 -2095 65 947500 1 10 872 1344 Large Brute Fire 1 12 21 -2096 68 475840 1 10 1072 672 Medium Undead Undead 4 12 21 -2097 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 -2098 77 380000 1 10 480 480 Medium Demon Dark 3 12 21 -2099 78 378000 1 10 1148 648 Small Insect Wind 4 12 21 -2100 81 668000 2 10 768 768 Large Demon Dark 3 12 21 -2101 94 603883 3 10 1446 1296 Large Demon Dark 3 12 21 -2102 96 1190900 2 10 868 768 Large Demon Undead 4 12 21 -2103 98 2626000 3 10 432 840 Large Brute Water 4 12 21 -2104 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 -2105 110 1442000 2 10 900 1000 Large Brute Earth 2 12 21 -2106 128 3802000 3 10 504 912 Large Brute Holy 2 12 21 -2107 138 5655000 1 10 432 432 Medium Demon Dark 2 12 21 -2108 139 3005000 3 10 1344 2880 Large Formless Ghost 3 12 21 -2109 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 -2110 146 6935000 3 10 212 384 Large Formless Fire 4 12 21 -2111 160 6750000 1 10 76 384 Medium Demihuman Earth 4 12 21 -2112 160 4680000 1 10 76 384 Medium Demihuman Fire 4 12 21 -2113 160 4230000 1 10 76 384 Medium Demihuman Poison 4 12 21 -2126 100 8000 1 10 1084 2304 Small Insect Wind 3 12 06 -2127 110 9000 1 10 1292 792 Small Insect Wind 1 12 06 -2128 120 10000 1 10 1292 792 Small Insect Wind 1 12 06 -2129 130 11000 1 10 1000 864 Medium Insect Wind 1 12 06 -2130 140 12000 1 10 1000 864 Medium Insect Wind 1 12 06 -2131 135 608920 3 10 840 648 Large Dragon Dark 3 12 21 -2132 145 122110 1 10 864 1056 Medium Insect Earth 3 12 04 -2133 144 91720 1 10 576 480 Medium Insect Earth 2 12 04 -2134 142 86990 1 10 384 792 Small Brute Earth 2 12 04 -2135 100 1000 1 0 192 192 Medium Plant Earth 1 0 21 -2136 142 85100 1 10 432 300 Small Demihuman Wind 2 12 04 -2137 140 81200 1 10 576 1140 Small Formless Neutral 1 12 04 -2138 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2139 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2140 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2141 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2142 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2143 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 -2144 136 62600 1 10 504 624 Medium Insect Earth 2 12 24 -2145 139 67700 1 10 588 768 Medium Insect Earth 2 12 24 -2146 117 300000 2 10 1596 1620 Large Dragon Dark 4 12 24 -2147 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2148 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2149 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2150 12 10 1 0 96 96 Medium Plant Water 1 0 06 -2151 80 3631 2 10 500 576 Medium Plant Earth 1 12 04 -2152 81 4291 2 10 500 576 Medium Brute Poison 3 12 04 -2153 84 4084 1 10 576 720 Medium Angel Wind 1 12 04 -2154 85 3235 1 10 1152 2304 Small Formless Fire 3 12 04 -2155 88 5381 1 10 576 768 Large Demon Fire 2 12 04 -2156 94 1266000 2 10 576 576 Large Demon Dark 2 12 21 -2157 85 3235 1 10 0 0 Small Formless Fire 3 12 04 -2158 95 5000 1 10 1292 792 Small Insect Wind 1 12 06 -2159 110 11960 1 10 1292 792 Small Insect Wind 1 12 06 -2160 130 16466 1 10 1000 864 Medium Insect Wind 1 12 06 -2161 130 204400 1 10 384 672 Small Insect Earth 1 12 20 -2162 134 235600 1 10 336 360 Small Insect Earth 1 12 20 -2163 136 250400 1 10 504 624 Medium Insect Earth 2 12 20 -2164 139 270800 1 10 588 768 Medium Insect Earth 2 12 20 -2165 140 6441600 3 10 864 1000 Large Insect Earth 3 12 21 -2166 125 126000 0 10 96 1 Small Insect Earth 1 12 06 -2167 126 132000 0 10 96 1 Small Insect Earth 1 12 06 -2168 127 138000 0 10 96 1 Small Insect Earth 1 12 06 -2169 128 144000 0 10 96 1 Small Insect Earth 1 12 06 -2170 136 250400 1 10 504 624 Medium Insect Earth 2 12 20 -2171 139 270800 1 10 588 768 Medium Insect Earth 2 12 20 -2172 130 204400 1 10 384 672 Small Insect Earth 1 12 20 -2173 134 235600 1 10 336 360 Small Insect Earth 1 12 20 -2174 95 120000 1 10 1632 432 Small Fish Water 1 12 20 -2175 95 120000 1 10 1956 756 Small Fish Water 2 12 20 -2176 95 120000 1 7 992 792 Small Fish Water 1 12 20 -2177 100 160000 1 10 1248 48 Small Fish Water 1 12 20 -2178 100 160000 1 10 864 864 Small Fish Water 2 12 20 -2179 100 160000 1 10 1776 576 Small Insect Water 1 12 20 -2180 145 400000 1 10 1872 672 Large Fish Water 3 12 20 -2181 145 400000 1 10 1968 768 Large Fish Water 2 12 20 -2182 145 400000 1 10 1272 72 Medium Fish Water 2 12 20 -2183 151 700000 1 10 900 500 Medium Fish Water 2 12 20 -2184 151 700000 1 10 1872 672 Medium Demon Water 3 12 20 -2185 151 700000 1 10 2012 1728 Medium Demon Water 2 12 20 -2186 100 1200000 1 10 864 864 Large Fish Water 2 12 21 -2187 100 2200000 1 10 864 864 Large Fish Water 2 12 21 -2188 100 2200000 1 10 864 864 Large Fish Water 2 12 21 -2189 155 5200000 1 10 864 864 Large Fish Water 2 12 21 -2190 155 5200000 1 10 864 864 Large Fish Water 2 12 21 -2191 100 100000 1 0 384 720 Small Fish Water 1 0 10 -2192 90 6000 1 10 576 2160 Small Fish Water 2 12 20 -2193 90 500000 1 10 432 720 Small Fish Water 2 12 10 -2194 95 500000 1 10 576 1584 Large Fish Water 2 12 21 -2195 100 160000 1 10 1776 576 Small Insect Water 1 12 20 -2196 145 400000 1 10 1872 672 Large Fish Water 3 12 20 -2197 91 8029 1 10 768 1224 Medium Fish Water 2 12 03 -2198 117 28453 1 10 576 720 Large Fish Water 2 12 21 -2199 87 5577 1 10 1536 1296 Small Formless Water 1 12 02 -2200 1 1 1 0 432 792 Small Formless Neutral 1 0 01 -2201 113 20805 1 10 768 792 Medium Fish Water 2 12 04 -2202 124 5602800 3 10 432 864 Large Fish Water 4 12 21 -2203 115 19235 1 10 1008 936 Small Fish Water 2 12 03 -2204 110 16740 1 10 768 792 Medium Fish Water 2 12 04 -2206 124 39190 1 10 576 864 Large Fish Water 3 12 10 -2208 95 33300 1 10 432 792 Large Fish Water 2 12 04 -2209 1 7 1 10 1288 288 Small Insect Neutral 3 12 01 -2210 1 100 1 10 1456 456 Small Brute Neutral 1 12 01 -2211 10 10 1 10 512 780 Small Formless Neutral 1 12 01 -2212 92 100000000 2 10 468 468 Large Formless Wind 4 12 21 -2213 81 8614 2 10 672 500 Medium Demon Wind 1 12 21 -2214 85 6157 2 10 637 1008 Medium Demon Dark 3 12 21 -2215 83 9815 2 10 800 600 Large Formless Fire 3 12 21 -2216 87 9517 2 10 140 384 Large Formless Fire 3 12 21 -2217 85 14493 1 10 512 780 Small Formless Neutral 3 12 21 -2218 10 5 1 10 1632 432 Small Fish Water 2 12 01 -2219 10 20 2 10 1632 432 Large Fish Water 2 12 01 -2220 10 20 1 10 912 1248 Small Undead Undead 1 12 01 -2221 141 478745 1 10 76 864 Medium Demihuman Holy 3 12 19 -2222 141 316468 1 10 1152 864 Medium Demihuman Fire 3 12 19 -2223 141 253145 1 10 1152 864 Medium Demihuman Ghost 3 12 19 -2224 141 279562 1 10 76 768 Medium Demon Water 4 12 20 -2225 141 266926 1 10 76 864 Medium Demon Poison 4 12 20 -2226 142 256202 1 10 76 864 Medium Demihuman Wind 3 12 19 -2227 142 204962 2 10 76 864 Medium Demihuman Wind 3 12 19 -2228 160 3163000 1 10 76 864 Medium Demihuman Holy 4 12 21 -2229 160 2531750 1 10 1152 864 Medium Demihuman Fire 4 12 21 -2230 160 2025160 1 10 1152 864 Medium Demihuman Ghost 3 12 21 -2231 160 2236500 1 10 76 768 Medium Demihuman Water 4 12 21 -2232 160 2135410 1 10 76 864 Medium Demon Poison 4 12 21 -2233 160 2049620 1 10 76 864 Medium Demihuman Wind 4 12 21 -2234 160 2049620 2 10 76 864 Medium Demihuman Wind 4 12 21 -2235 160 6870000 1 10 76 864 Medium Demihuman Holy 4 12 21 -2236 160 4230000 1 10 1152 864 Medium Demihuman Fire 4 12 21 -2237 160 3847804 1 10 1152 864 Medium Demihuman Ghost 3 12 21 -2238 160 4249350 1 10 76 768 Medium Demon Water 4 12 21 -2239 160 4057279 1 10 76 864 Medium Demon Poison 4 12 21 -2240 160 3894278 1 10 76 864 Medium Demihuman Wind 4 12 21 -2241 160 3894278 2 10 76 864 Medium Demihuman Wind 4 12 21 -2242 135 551578 1 10 200 420 Medium Demon Neutral 1 12 04 -2243 130 274531 1 10 200 900 Small Demon Neutral 1 12 04 -2244 130 300 1 10 200 768 Medium Undead Water 4 12 04 -2245 1 100 1 10 1000 480 Medium Demihuman Water 1 12 01 -2246 95 9000 1 10 912 1344 Medium Demihuman Fire 2 12 04 -2247 95 20000 1 10 106 1056 Medium Formless Earth 3 12 01 -2248 15 15 1 10 1872 672 Medium Plant Water 1 12 01 -2249 141 2205000 2 10 576 1380 Medium Demihuman Fire 4 12 21 -2250 136 500255 2 10 1600 432 Small Demihuman Fire 2 12 21 -2251 146 2507989 1 10 1344 2592 Large Formless Wind 4 12 21 -2252 138 501765 3 10 880 1224 Small Formless Wind 3 12 21 -2253 142 2500148 2 10 900 792 Large Demihuman Earth 3 12 21 -2254 137 502015 2 10 1000 1008 Medium Demihuman Wind 3 12 21 -2255 143 2505000 1 10 900 648 Large Formless Dark 3 12 21 -2256 135 501489 1 10 1576 504 Small Angel Holy 3 12 21 -2257 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2258 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2259 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2260 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2261 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2262 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2263 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2264 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2265 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2266 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2267 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2268 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2269 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2270 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2271 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2272 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2273 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2274 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2275 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2276 0 0 0 10 0 0 Small Formless Neutral 1 12 20 -2277 136 500255 2 10 1600 432 Small Demihuman Fire 2 12 21 -2278 138 501765 3 10 880 1224 Small Formless Wind 3 12 21 -2279 137 502015 2 10 1000 1008 Medium Demihuman Wind 3 12 21 -2280 135 501489 1 10 1576 504 Small Angel Holy 3 12 21 -2281 147 204109 1 10 768 1776 Small Formless Dark 2 12 19 -2282 145 180018 1 10 920 720 Medium Demon Dark 3 12 21 -2283 141 181878 2 10 864 1252 Medium Demon Undead 4 12 13 -2284 145 194830 1 10 1028 528 Medium Demihuman Wind 2 12 13 -2285 142 181340 1 10 1528 528 Medium Demihuman Poison 2 12 13 -2286 141 182830 1 10 1228 528 Medium Demihuman Fire 2 12 13 -2287 142 180530 9 10 1008 1008 Small Demihuman Fire 1 12 05 -2288 140 5 1 0 0 0 Small Formless Holy 1 0 06 -2289 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2290 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2291 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2292 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2293 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2294 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2295 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2296 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2297 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2298 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2299 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2300 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2301 0 0 0 0 0 0 Small Formless Neutral 1 0 06 -2302 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2303 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2304 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2305 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2306 65 100000000 1 10 768 768 Large Insect Fire 2 12 21 -2307 0 0 0 10 0 0 Small Formless Neutral 1 12 06 -2308 140 5 1 10 0 0 Small Formless Holy 1 12 06 -2309 121 33102 1 10 1568 432 Large Demihuman Earth 2 12 19 -2310 125 29275 1 10 1424 576 Medium Demihuman Neutral 2 12 20 -2311 107 15656 1 10 280 720 Medium Demon Dark 2 12 04 -2312 110 14557 1 10 1664 336 Medium Demon Neutral 2 12 04 -2313 115 20150 1 10 1064 936 Large Brute Wind 3 12 20 -2314 105 11589 1 10 496 504 Small Demon Dark 2 12 04 -2315 111 17869 1 10 424 576 Small Demon Dark 2 12 04 -2316 100 10617 1 10 1328 672 Large Plant Earth 2 12 17 -2317 115 1519517 1 10 920 1080 Medium Demon Dark 2 12 21 -2318 99 1409758 1 10 920 1080 Medium Demon Dark 2 12 06 -2319 151 4090365 1 10 1424 576 Large Dragon Water 4 12 21 -2320 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 -2321 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 -2322 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 -2323 100 50000 1 10 1672 672 Small Formless Neutral 1 12 26 -2324 100 50000 7 10 832 500 Medium Fish Poison 1 12 26 -2325 57 7510 1 10 868 480 Small Demon Dark 1 12 21 -2326 45 7513 1 10 1430 1080 Small Brute Earth 1 12 21 -2327 115 250 1 10 0 0 Medium Demon Dark 2 12 06 -2328 1 200 1 10 1 1 Small Formless Neutral 1 12 06 -2329 100 10000 0 10 1001 1 Small Formless Neutral 3 12 06 -2330 135 20145 1 10 576 960 Small Plant Earth 1 12 21 -2331 100 10 1 10 384 720 Small Fish Water 1 12 10 -2332 138 30000 1 10 1424 576 Small Plant Water 4 12 21 -2333 138 20 1 10 1 1 Small Plant Water 4 12 06 -2334 145 194830 1 10 424 576 Small Demon Dark 2 12 04 -2335 140 5 1 10 0 0 Small Formless Holy 1 12 06 -2336 38 694 1 10 800 1200 Small Brute Earth 1 12 06 -2337 151 10000 7 12 0 1000 Small Insect Ghost 4 12 10 -2338 107 204511 1 10 280 720 Medium Demon Dark 2 12 04 -2339 110 102154 1 10 1664 336 Medium Demon Neutral 2 12 04 -2340 105 50211 1 10 496 504 Small Demon Dark 2 12 04 -2341 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 -2342 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2343 151 10000 7 12 0 2000 Small Insect Ghost 4 12 10 -2344 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2345 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2346 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2347 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2348 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2349 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2350 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2351 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 -2352 100 10000000 1 10 128 1104 Large Formless Neutral 3 12 21 -2353 121 27346 1 10 1360 960 Large Brute Fire 2 12 21 -2354 117 26177 1 10 1772 72 Medium Undead Undead 2 12 21 -2355 115 20150 1 10 2468 768 Medium Undead Undead 1 12 21 -2356 137 63101 1 10 972 500 Medium Formless Neutral 3 12 21 -2357 137 63101 1 10 972 500 Medium Formless Neutral 3 12 21 -2358 134 48013 1 10 960 500 Medium Insect Earth 2 12 21 -2359 134 48013 1 10 960 500 Medium Insect Earth 2 12 21 -2360 141 90157 1 10 1772 120 Medium Undead Undead 2 12 21 -2361 141 90157 1 10 1772 120 Medium Undead Undead 2 12 21 -2362 145 2515784 3 14 854 2016 Large Demihuman Earth 3 12 10 -2363 143 82200 3 10 472 1056 Medium Insect Wind 2 12 21 -2364 141 81031 9 10 1500 768 Medium Brute Wind 1 12 05 -2365 146 130131 1 10 1500 720 Small Plant Wind 1 12 21 -2366 148 134615 1 10 864 960 Small Formless Neutral 3 12 21 -2367 149 131211 1 10 480 1728 Small Formless Water 4 12 21 -2368 147 131513 1 10 0 3456 Small Formless Ghost 4 12 21 -2369 149 135718 1 10 0 4032 Small Formless Fire 4 12 21 -2370 151 133451 1 10 0 2304 Small Formless Earth 4 12 21 -2371 155 151548 3 10 480 1536 Large Formless Neutral 4 12 21 -2372 1 15 1 7 1 1 Small Plant Earth 1 12 06 -2373 1 15 1 7 1 1 Small Plant Earth 1 12 06 -2374 1 15 1 7 1 1 Small Plant Earth 1 12 06 -2375 100 4444 1 10 2036 648 Medium Demon Undead 3 12 21 -2376 100 2000 1 10 2076 648 Medium Demon Dark 3 12 21 -2377 1 12 1 10 252 816 Small Dragon Neutral 1 12 01 -2378 136 30000 1 10 504 624 Medium Insect Earth 2 12 04 -2379 10 10 1 10 1576 576 Small Brute Earth 1 12 01 -2380 10 10 1 10 1576 576 Small Brute Earth 1 12 01 -2398 1 40 1 10 1872 672 Small Plant Water 1 12 02 -2401 1 55 1 10 1872 672 Medium Plant Water 1 12 02 -2402 30 524 1 10 1672 672 Medium Plant Poison 1 12 02 -2403 30 524 1 10 1672 672 Medium Plant Poison 1 12 02 -2404 9 95 1 10 2208 1008 Small Undead Undead 1 12 01 -2405 18 223 1 10 2228 528 Medium Undead Undead 1 12 01 -2406 23 337 1 10 2276 576 Medium Undead Undead 1 12 01 -2407 19 243 1 10 2228 528 Medium Undead Undead 1 12 01 -2408 10 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 -2409 50 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 -2410 100 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 -2411 150 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 -2413 10 99999999 0 0 0 0 Medium Formless Fire 1 0 06 -2415 98 13260 1 10 432 400 Medium Demihuman Fire 3 12 04 -2416 98 9029 1 10 432 400 Medium Demihuman Poison 4 12 04 -2417 98 11803 1 10 432 400 Medium Demihuman Water 4 12 04 -2418 98 8835 14 10 432 400 Medium Demihuman Wind 3 12 04 -2419 98 7092 1 10 864 400 Medium Demihuman Ghost 3 12 04 -2420 98 9192 1 10 864 400 Medium Demihuman Holy 3 12 20 -2421 98 13440 1 10 432 400 Medium Demihuman Fire 2 12 04 -2422 98 11712 1 10 432 400 Medium Demihuman Poison 3 12 19 -2423 98 11376 1 10 432 400 Medium Demihuman Earth 3 12 19 -2424 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 -2425 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 -2426 98 9868 1 10 432 400 Medium Demihuman Ghost 2 12 19 -2427 98 11168 1 10 432 400 Medium Demihuman Holy 2 12 19 -2428 98 13260 1 10 432 400 Medium Demihuman Fire 3 12 04 -2429 98 9029 1 10 432 400 Medium Demihuman Poison 4 12 04 -2430 98 11803 1 10 432 400 Medium Demihuman Water 4 12 04 -2431 98 8835 14 10 432 400 Medium Demihuman Wind 3 12 04 -2432 98 7092 1 10 864 400 Medium Demihuman Ghost 3 12 04 -2433 98 9192 1 10 864 400 Medium Demihuman Holy 3 12 20 -2434 98 13440 1 10 432 400 Medium Demihuman Fire 2 12 04 -2435 98 11712 1 10 432 400 Medium Demihuman Poison 3 12 19 -2436 98 11376 1 10 432 400 Medium Demihuman Earth 3 12 19 -2437 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 -2438 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 -2439 98 9868 1 10 432 400 Medium Demihuman Ghost 2 12 19 -2440 98 11168 1 10 432 400 Medium Demihuman Holy 2 12 19 -2441 99 265203 3 10 76 384 Medium Demihuman Fire 4 12 21 -2442 99 268800 3 10 76 384 Medium Demihuman Fire 4 12 21 -2443 99 270000 1 10 432 400 Medium Demihuman Fire 3 12 21 -2444 99 270000 1 10 432 400 Medium Demihuman Ghost 3 12 21 -2445 99 270000 1 10 432 400 Medium Demihuman Earth 4 12 21 -2446 99 270000 14 10 432 400 Medium Demihuman Wind 3 12 21 -2447 99 270000 1 10 864 400 Medium Demihuman Water 3 12 21 -2448 99 270000 1 10 864 400 Medium Demihuman Dark 3 12 21 -2449 99 270000 1 10 432 400 Medium Demihuman Poison 2 12 21 -2450 1 30 1 10 1072 672 Medium Plant Water 1 12 01 -2451 1 30 1 10 672 864 Medium Plant Water 1 12 01 -2452 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2453 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2454 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2455 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2456 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2457 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2458 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2459 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2460 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2461 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2462 99 0 0 0 0 0 Small Formless Neutral 1 0 06 -2464 130 135600 1 10 2612 912 Medium Undead Undead 1 12 04 -2465 133 100168 1 10 1816 576 Large Undead Undead 4 12 04 -2466 132 208100 1 10 2456 912 Medium Undead Undead 2 12 04 -2467 133 80811 1 10 960 500 Small Insect Earth 2 12 04 -2468 135 184080 2 10 824 780 Medium Undead Dark 2 12 04 -2469 136 144370 14 10 1152 1152 Medium Undead Dark 2 12 04 -2470 142 225789 2 10 1000 500 Large Undead Dark 4 12 04 -2471 143 236851 2 10 0 1000 Large Undead Undead 1 12 04 -2472 143 246751 2 10 828 528 Large Undead Dark 4 12 04 -2473 145 950033 2 10 350 864 Medium Undead Undead 2 12 26 -2474 145 848011 2 10 350 768 Medium Undead Undead 2 12 26 -2475 150 1820000 3 10 576 672 Large Demon Earth 3 12 10 -2476 150 4290000 3 10 312 1200 Large Undead Undead 4 12 26 -2477 151 130682 2 10 672 500 Medium Demon Wind 1 12 04 -2478 146 103220 1 10 864 500 Small Formless Neutral 3 12 04 -2479 143 24958 1 10 972 500 Medium Formless Neutral 3 12 04 -2480 134 72837 1 10 2276 576 Large Undead Undead 4 12 04 -2481 110 18923 1 10 1816 576 Large Undead Undead 4 12 04 -2483 154 4008000 2 10 768 768 Large Demon Dark 3 12 26 -2484 141 49675 1 10 868 480 Small Demon Dark 1 12 24 -2485 140 528120 1 10 772 672 Large Brute Fire 3 12 26 -2528 140 482427 2 10 384 720 Large Insect Poison 1 12 04 -2529 155 50000000 2 10 768 540 Large Insect Poison 4 12 26 -2530 144 5000000 2 10 576 480 Large Insect Poison 2 12 21 -2531 140 10000 1 12 384 0 Small Insect Poison 1 12 10 -2532 155 50000000 2 10 768 540 Large Insect Fire 1 12 26 -2533 155 50000000 2 10 768 540 Large Insect Earth 1 12 26 -2534 155 50000000 2 10 768 540 Large Insect Water 1 12 26 -2535 155 50000000 2 10 768 540 Large Insect Wind 1 12 26 -2536 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 -2537 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 -2539 151 10000 9 12 3000 0 Small Formless Ghost 4 12 10 -2540 140 10 1 10 24 0 Medium Insect Poison 1 12 06 -2541 145 260380 1 10 1000 792 Medium Insect Poison 2 12 04 -2542 101 433110 2 10 1276 792 Medium Demihuman Neutral 1 12 26 -2543 101 20099 2 10 1384 792 Medium Demihuman Neutral 1 12 04 -2544 101 21099 2 10 1452 792 Medium Demihuman Neutral 1 12 04 -2545 101 20099 1 10 768 792 Medium Brute Earth 1 12 01 -2546 101 21099 1 10 972 792 Medium Brute Fire 1 12 04 -2549 90 100000 1 10 1000 864 Medium Demihuman Neutral 1 12 04 -2550 95 200000 1 10 900 672 Medium Demihuman Neutral 1 12 04 -2551 100 300000 1 10 800 672 Medium Demihuman Neutral 1 12 04 -2552 100 300000 1 10 900 672 Medium Demihuman Neutral 1 12 04 -2553 100 300000 1 10 950 864 Medium Demihuman Neutral 1 12 04 -2554 105 400000 1 10 672 648 Medium Demihuman Neutral 1 12 04 -2555 110 600000 1 10 768 672 Medium Demihuman Neutral 1 12 04 -2556 120 1000000 1 10 800 768 Medium Demihuman Ghost 2 12 04 -2557 130 1200000 1 10 1000 864 Medium Demihuman Neutral 1 12 04 -2558 140 1400000 1 10 800 768 Medium Demihuman Neutral 1 12 04 -2559 145 1600000 1 10 864 768 Medium Demihuman Neutral 1 12 04 -2560 150 2000000 1 10 800 672 Medium Demihuman Neutral 1 12 04 -2561 155 5000000 1 10 800 672 Medium Demihuman Neutral 1 12 04 -2562 160 7000000 1 10 800 768 Medium Demihuman Ghost 2 12 04 -2563 160 8000000 1 10 720 672 Medium Demihuman Ghost 2 12 04 -2564 160 20000000 1 10 900 864 Medium Demihuman Ghost 2 12 04 -2565 150 1000000 1 10 1400 816 Medium Demihuman Earth 2 12 04 -2566 150 100000 1 10 936 792 Medium Demihuman Earth 3 12 04 -2567 50 10000 1 10 900 672 Medium Demihuman Neutral 1 12 04 -2568 50 10000 1 10 950 864 Medium Demihuman Neutral 1 12 04 -2569 95 6617 1 10 1084 2304 Small Insect Wind 3 12 04 -2570 92 7073 2 10 140 384 Medium Formless Wind 3 12 04 -2571 88 5381 1 10 576 768 Large Demon Fire 2 12 04 -2572 25 319 1 10 1604 840 Small Brute Earth 1 12 04 -2573 5 48 1 10 1076 576 Small Insect Wind 1 12 04 -2574 89 5465 2 10 1257 528 Medium Brute Wind 2 12 04 -2575 38 694 1 10 1864 864 Small Brute Earth 1 12 04 -2576 23 247 1 10 1136 720 Small Insect Wind 1 12 04 -2577 6 59 1 10 1672 672 Small Insect Earth 1 12 04 -2578 32 564 1 10 1528 528 Medium Insect Earth 1 12 04 -2579 102 11280 1 10 741 1536 Small Demon Dark 2 12 04 -2580 98 7229 1 10 1700 1000 Medium Demon Fire 4 12 04 -2581 101 11179 2 10 890 960 Small Undead Undead 1 12 04 -2582 3 48 1 10 1456 456 Small Brute Neutral 3 12 04 -2583 39 769 1 10 1480 480 Small Brute Earth 2 12 04 -2584 96 7959 1 10 648 480 Small Formless Neutral 2 12 04 -2585 85 4390 9 10 1400 960 Small Brute Earth 2 12 04 -2586 98 8133 1 10 776 576 Small Brute Earth 1 12 04 -2587 97 8492 1 10 720 864 Small Formless Earth 2 12 04 -2588 90 6717 1 10 960 336 Large Undead Earth 2 12 04 -2589 30 489 1 10 1672 672 Medium Plant Poison 1 12 04 -2590 15 155 1 10 1864 864 Medium Insect Earth 1 12 04 -2591 59 2158 1 10 1960 960 Large Brute Earth 2 12 04 -2592 87 5577 1 10 1536 1296 Small Formless Water 1 12 04 -2593 98 9940 1 10 432 648 Small Formless Water 3 12 04 -2594 103 14227 2 10 936 1020 Large Formless Water 2 12 04 -2595 21 212 1 10 1688 1188 Small Insect Wind 1 12 04 -2596 95 6984 1 10 936 792 Small Formless Earth 2 12 04 -2597 48 985 1 10 1076 576 Small Insect Wind 1 12 04 -2598 94 27070 1 10 420 576 Large Insect Poison 2 12 04 -2599 95 33300 1 10 432 792 Large Fish Water 2 12 04 -2600 45 1091 1 10 1054 504 Medium Brute Earth 1 12 04 -2601 38 694 1 10 1054 54 Small Brute Earth 1 12 04 -2602 90 6425 1 10 780 1008 Medium Brute Dark 1 12 04 -2603 124 174905 1 10 676 648 Medium Undead Undead 3 12 21 -2604 89 69020 1 10 1768 500 Medium Undead Undead 3 12 13 -2605 119 126485 1 10 2612 912 Medium Undead Undead 1 12 21 -2606 17 1020 1 10 500 912 Medium Undead Undead 1 12 04 -2607 115 100750 3 10 580 288 Large Demihuman Neutral 3 12 21 -2608 38 3470 1 10 1054 54 Small Brute Earth 1 12 07 -2609 38 6940 1 10 1054 54 Small Brute Earth 1 12 07 -2610 17 930 1 10 1048 48 Medium Plant Earth 1 12 17 -2611 67 10600 1 10 500 1344 Medium Demihuman Fire 2 12 04 -2612 81 23600 1 10 2304 840 Medium Plant Earth 3 12 01 -2613 45 5455 1 10 1054 504 Medium Brute Earth 1 12 03 -2614 80 36310 2 10 1056 1056 Medium Demon Wind 3 12 21 -2615 8 390 1 10 1672 672 Medium Plant Earth 1 12 01 -2616 70 10800 1 10 500 864 Small Brute Wind 1 12 02 -2617 97 49160 2 10 637 1008 Medium Demon Dark 3 12 21 -2618 46 7960 1 10 1960 960 Small Demon Ghost 3 12 19 -2619 18 1115 1 10 2228 528 Medium Undead Undead 1 12 01 -2620 120 104030 2 10 500 500 Medium Demon Wind 1 12 21 -2621 118 114400 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 -2622 118 114400 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 -2623 118 228800 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 -2624 87 27885 1 10 768 1440 Medium Formless Poison 1 12 04 -2625 113 90460 2 10 500 1020 Medium Formless Neutral 2 12 04 -2626 87 30670 2 10 1536 600 Medium Demihuman Water 1 12 04 -2627 123 145140 1 10 768 360 Medium Demihuman Neutral 4 12 04 -2628 45 10910 1 10 1632 432 Small Fish Water 1 12 17 -2629 94 135350 1 10 420 576 Large Insect Poison 2 12 21 -2630 70 12820 1 10 500 1440 Medium Brute Wind 2 12 03 -2631 105 57945 1 10 496 504 Small Demon Dark 2 12 04 -2632 21 2380 1 10 1288 288 Small Insect Neutral 3 12 02 -2633 21 1190 1 10 1288 288 Small Insect Neutral 3 12 02 -2634 21 1190 1 10 500 288 Small Insect Neutral 3 12 02 -2635 40 4875 1 10 2016 816 Medium Fish Water 2 12 01 -2636 91 31420 1 10 512 780 Small Formless Neutral 3 12 20 -2637 128 369710 2 10 1000 768 Medium Brute Earth 1 12 07 -2638 22 1425 1 10 1744 1044 Small Brute Dark 1 12 17 -2639 73 18585 1 10 500 1152 Large Demon Dark 3 12 13 -2640 104 63165 1 10 528 500 Medium Formless Earth 3 12 21 -2641 84 20420 1 10 1956 756 Medium Plant Wind 1 12 19 -2642 48 9850 1 10 1076 576 Small Insect Wind 1 12 07 -2643 95 34920 1 10 936 792 Small Formless Earth 2 12 02 -2644 68 14085 1 10 500 864 Large Formless Neutral 4 12 17 -2645 21 1060 1 10 1688 1188 Small Insect Wind 1 12 17 -2646 18 1115 1 10 1872 672 Medium Plant Water 1 12 01 -2647 92 74260 2 10 1452 483 Medium Brute Earth 2 12 17 -2648 34 3455 1 10 2276 576 Medium Undead Undead 1 12 04 -2649 34 3455 1 10 500 576 Medium Undead Undead 1 12 04 -2650 123 145140 2 10 576 420 Medium Angel Holy 3 12 20 -2651 64 12640 1 10 2112 912 Medium Demon Water 1 12 17 -2652 103 142270 2 10 936 1020 Large Formless Water 2 12 04 -2653 18 1015 1 10 1576 576 Medium Brute Earth 1 12 01 -2654 29 2070 1 10 500 576 Small Brute Earth 1 12 17 -2655 81 22525 1 10 1350 1200 Medium Formless Earth 2 12 04 -2656 81 22525 1 10 1350 1200 Medium Formless Earth 2 12 04 -2657 126 403890 2 10 720 384 Medium Demon Dark 3 12 20 -2658 139 900650 1 10 2276 576 Medium Undead Undead 1 12 21 -2659 139 900650 1 10 500 576 Medium Undead Undead 1 12 21 -2660 44 5755 1 10 2420 720 Medium Undead Undead 1 12 04 -2661 98 49700 1 10 432 648 Small Formless Water 3 12 02 -2662 70 26980 1 10 1576 576 Medium Brute Poison 1 12 19 -2663 70 13490 1 10 1576 576 Medium Brute Poison 1 12 19 -2664 95 40435 2 10 500 1152 Medium Demihuman Dark 3 12 21 -2665 125 146375 2 10 432 420 Medium Angel Holy 3 12 20 -2666 50 6630 1 10 864 864 Small Fish Water 1 12 17 -2667 141 2002550 14 10 76 384 Medium Demihuman Wind 3 12 19 -2668 48 7370 1 10 1132 583 Medium Brute Water 3 12 19 -2669 110 83700 1 10 500 792 Medium Fish Water 2 12 04 -2670 16 680 1 10 1564 864 Small Insect Fire 1 12 01 -2671 14 635 1 10 1624 624 Small Brute Earth 1 12 01 -2672 59 21580 1 10 1960 960 Large Brute Earth 2 12 17 -2673 59 10790 1 10 1960 960 Large Brute Earth 2 12 17 -2674 61 11620 1 10 500 720 Medium Formless Earth 3 12 04 -2675 138 401950 2 10 140 384 Large Formless Fire 3 12 21 -2676 48 13510 1 10 2228 528 Medium Undead Undead 1 12 01 -2677 95 66170 1 10 1500 500 Medium Brute Wind 1 12 07 -2678 13 700 1 10 2016 816 Medium Fish Water 1 12 01 -2679 13 700 1 10 500 816 Medium Fish Water 1 12 01 -2680 15 775 1 10 1864 864 Medium Insect Earth 1 12 01 -2681 74 14275 1 10 864 500 Small Formless Neutral 3 12 21 -2682 74 28550 1 10 864 500 Small Formless Neutral 3 12 21 -2683 60 8720 1 10 1247 768 Small Demihuman Neutral 1 12 17 -2684 121 158315 2 10 500 480 Medium Angel Dark 3 12 20 -2685 121 158315 2 10 360 480 Medium Angel Dark 3 12 20 -2686 121 158315 2 10 360 480 Medium Angel Dark 3 12 20 -2687 71 32510 1 10 1516 816 Medium Demihuman Dark 1 12 04 -2688 121 165510 1 10 1536 1056 Medium Undead Undead 2 12 04 -2689 91 40145 1 10 768 1224 Medium Fish Water 2 12 03 -2690 115 109905 1 10 824 780 Large Demihuman Dark 2 12 19 -2691 115 219810 1 10 824 780 Large Demihuman Dark 2 12 19 -2692 133 201410 1 10 576 432 Medium Demihuman Ghost 2 12 04 -2693 139 338500 1 10 500 768 Medium Insect Earth 2 12 04 -2694 48 4925 1 10 1000 900 Small Brute Wind 1 12 21 -2695 86 24710 3 10 512 528 Small Plant Earth 1 12 05 -2696 1 275 1 10 1872 672 Medium Plant Water 1 12 02 -2697 1 275 1 10 500 672 Medium Plant Water 1 12 02 -2698 1 275 1 10 1872 672 Medium Plant Water 1 12 02 -2699 1 275 1 10 1872 672 Medium Plant Water 1 12 02 -2700 85 46210 1 10 720 360 Small Insect Earth 3 12 02 -2701 30 2445 1 10 1672 672 Medium Plant Poison 1 12 02 -2702 30 2445 1 10 500 672 Medium Plant Poison 1 12 02 -2703 30 2445 1 10 1672 672 Medium Plant Poison 1 12 02 -2704 87 27885 3 10 1148 1728 Medium Brute Poison 2 12 01 -2705 26 3790 1 10 1672 672 Medium Plant Poison 1 12 04 -2706 119 80500 1 10 1056 1056 Small Formless Ghost 4 12 04 -2707 40 4665 1 10 500 1008 Small Plant Water 3 12 01 -2708 90 33585 1 10 960 336 Large Undead Earth 2 12 17 -2709 75 21095 1 10 768 480 Large Fish Water 3 12 04 -2710 113 180920 1 10 1426 600 Medium Plant Poison 2 12 13 -2711 105 63735 1 10 700 600 Medium Plant Earth 3 12 13 -2712 10 385 1 10 500 288 Small Brute Fire 1 12 01 -2713 52 8580 1 10 2544 1344 Medium Fish Water 2 12 17 -2714 86 27455 1 10 2468 768 Medium Dragon Earth 1 12 19 -2715 86 54910 1 10 2468 768 Medium Dragon Earth 1 12 19 -2716 85 23105 7 10 832 500 Medium Fish Poison 1 12 21 -2717 85 23105 7 10 500 500 Medium Fish Poison 1 12 21 -2718 25 1770 1 10 1564 864 Large Brute Fire 1 12 03 -2719 79 15100 1 10 976 576 Medium Demihuman Fire 2 12 19 -2720 76 31550 8 10 864 864 Medium Plant Wind 2 12 10 -2721 92 38900 1 10 1345 824 Large Demon Neutral 3 12 21 -2722 44 5235 1 10 500 864 Medium Demihuman Earth 1 12 04 -2723 51 7930 1 10 2852 1152 Medium Undead Undead 1 12 04 -2724 53 8495 1 10 2420 720 Medium Undead Undead 1 12 04 -2725 45 11450 1 10 1050 900 Medium Demihuman Earth 2 12 21 -2726 127 184220 2 10 432 480 Medium Angel Neutral 4 12 20 -2727 87 22310 1 10 500 1440 Medium Formless Ghost 3 12 04 -2728 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 -2729 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 -2730 90 52570 1 10 151 288 Small Dragon Neutral 1 12 04 -2731 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 -2732 107 85395 1 10 500 816 Large Demon Dark 3 12 04 -2733 110 94615 1 10 1816 576 Large Undead Undead 4 12 04 -2734 151 653410 2 10 672 500 Medium Demon Wind 1 12 04 -2735 114 182050 7 10 500 576 Medium Plant Poison 2 12 10 -2736 133 456520 1 10 1816 1320 Medium Undead Undead 4 12 21 -2737 39 4045 1 10 500 1248 Medium Formless Neutral 3 12 17 -2738 105 57945 3 10 672 648 Medium Plant Earth 1 12 10 -2739 55 9495 1 10 1772 72 Medium Undead Undead 2 12 04 -2740 55 18990 1 10 1772 72 Medium Undead Undead 2 12 04 -2741 23 1685 1 10 1960 960 Large Plant Earth 1 12 01 -2742 132 319500 1 10 500 480 Large Angel Dark 1 12 21 -2743 132 319500 1 10 576 480 Large Angel Dark 1 12 21 -2744 132 319500 1 10 576 480 Large Angel Dark 1 12 21 -2745 85 43900 9 10 1400 960 Small Brute Earth 2 12 03 -2746 85 25415 1 10 1938 2112 Medium Demon Dark 1 12 17 -2747 58 8645 1 10 500 960 Large Brute Fire 2 12 19 -2748 58 8645 1 10 1360 960 Large Brute Fire 2 12 19 -2749 58 8645 1 10 1360 960 Large Brute Fire 2 12 19 -2750 96 79590 1 10 648 480 Small Formless Neutral 2 12 17 -2751 140 406000 1 10 576 1140 Small Formless Neutral 1 12 04 -2752 56 8535 1 10 500 500 Medium Formless Neutral 3 12 19 -2753 56 8535 1 10 972 500 Medium Formless Neutral 3 12 19 -2754 55 7435 1 10 1708 1008 Medium Insect Fire 1 12 07 -2755 81 38620 1 10 384 672 Small Formless Neutral 1 12 02 -2756 81 19310 1 10 384 672 Small Formless Neutral 1 12 02 -2757 60 11620 1 10 500 816 Medium Demihuman Water 3 12 21 -2758 143 411000 3 10 472 1056 Medium Insect Wind 2 12 21 -2759 102 56400 1 10 1720 1320 Medium Demon Neutral 2 12 21 -2760 39 7690 1 10 1480 480 Small Brute Earth 2 12 01 -2761 90 20445 1 10 1480 480 Small Demon Ghost 3 12 19 -2762 37 4220 1 10 500 672 Medium Plant Water 2 12 02 -2763 73 15495 1 10 1540 840 Large Demihuman Fire 1 12 19 -2764 65 11815 1 10 1528 660 Medium Insect Earth 1 12 19 -2765 13 1400 4 10 1768 768 Medium Plant Earth 3 12 10 -2766 107 78280 1 10 280 720 Medium Demon Dark 2 12 04 -2767 107 67610 1 10 500 960 Large Brute Fire 2 12 21 -2768 53 7725 1 10 1054 504 Small Demon Water 1 12 02 -2769 110 54595 1 10 1472 384 Small Formless Fire 2 12 02 -2770 3 480 1 10 1456 456 Small Brute Neutral 3 12 01 -2771 3 240 1 10 1456 456 Small Brute Neutral 3 12 01 -2772 101 55895 2 10 500 960 Small Undead Undead 1 12 04 -2773 109 65020 1 10 1000 864 Medium Insect Wind 1 12 08 -2774 109 86680 2 10 747 1632 Large Demon Dark 4 12 04 -2775 92 74260 7 10 400 672 Medium Plant Earth 2 12 05 -2776 1 200 1 10 1872 672 Small Plant Water 1 12 02 -2777 142 425500 1 10 500 300 Small Demihuman Wind 2 12 04 -2778 80 19970 1 10 1120 576 Medium Demon Earth 3 12 04 -2779 82 24045 1 10 1728 720 Medium Plant Earth 4 12 03 -2780 118 251680 1 10 1260 230 Large Brute Earth 1 12 21 -2781 64 10350 1 10 960 864 Small Brute Earth 1 12 02 -2782 98 58560 1 10 500 400 Medium Demihuman Poison 3 12 19 -2783 98 45145 1 10 432 400 Medium Demihuman Poison 4 12 04 -2784 108 57360 9 10 1008 1008 Small Demihuman Fire 1 12 05 -2785 107 135220 1 10 1028 528 Medium Demihuman Wind 2 12 13 -2786 126 165235 1 10 1548 384 Small Demon Earth 1 12 17 -2787 55 7435 1 10 500 768 Small Insect Earth 1 12 03 -2788 135 350640 2 10 800 600 Large Formless Fire 3 12 21 -2789 72 15135 1 10 1638 2016 Medium Formless Neutral 3 12 01 -2790 59 22520 1 10 1384 768 Large Demon Dark 1 12 19 -2791 124 145755 1 10 768 360 Medium Demihuman Neutral 4 12 04 -2792 95 40435 1 10 500 720 Medium Undead Dark 2 12 21 -2793 83 24495 1 10 106 1056 Medium Formless Earth 3 12 17 -2794 110 94615 1 10 861 660 Large Formless Water 3 12 04 -2795 79 42620 1 10 384 672 Medium Fish Water 3 12 17 -2796 87 32065 1 10 890 1320 Medium Undead Undead 2 12 04 -2797 63 9510 1 10 500 576 Small Insect Wind 2 12 04 -2798 11 425 1 10 1292 792 Small Insect Wind 1 12 01 -2799 130 255500 1 10 384 672 Small Insect Earth 1 12 03 -2800 32 5640 1 10 1528 528 Medium Insect Earth 1 12 17 -2801 122 158980 1 10 960 528 Medium Demon Dark 3 12 04 -2802 63 11735 1 10 500 480 Medium Brute Earth 2 12 01 -2803 101 55895 3 10 504 480 Medium Brute Wind 3 12 04 -2804 101 55895 3 10 504 480 Medium Brute Wind 3 12 04 -2805 81 40770 1 10 1500 500 Large Demihuman Fire 2 12 21 -2806 83 22270 1 10 972 672 Medium Demon Wind 3 12 04 -2807 83 22270 1 10 500 672 Medium Demon Wind 3 12 04 -2808 55 8670 1 10 1152 1152 Medium Brute Earth 2 12 02 -2809 55 7025 3 10 1152 1152 Medium Formless Fire 2 12 10 -2810 75 30840 2 10 1460 960 Large Brute Fire 2 12 03 -2811 75 15420 2 10 1460 960 Large Brute Fire 2 12 03 -2812 61 11620 1 10 500 816 Large Formless Neutral 3 12 17 -2813 48 5535 1 10 1120 620 Medium Demihuman Wind 1 12 21 -2814 48 5535 1 10 1120 620 Medium Demihuman Wind 1 12 21 -2815 80 29050 1 10 1380 1080 Medium Brute Fire 3 12 03 -2816 80 14525 1 10 1380 1080 Medium Brute Fire 3 12 03 -2817 142 906700 1 10 500 528 Medium Demihuman Poison 2 12 13 -2818 142 906700 1 10 1528 528 Medium Demihuman Poison 2 12 13 -2819 147 1020545 1 10 768 1776 Small Formless Dark 2 12 19 -2820 147 2041090 1 10 768 1776 Small Formless Dark 2 12 19 -2821 120 92475 1 10 1292 792 Small Insect Wind 1 12 21 -2822 61 12145 1 10 500 912 Medium Undead Undead 2 12 04 -2823 61 12145 1 10 2456 912 Medium Undead Undead 2 12 04 -2824 73 17040 3 10 1308 1008 Medium Plant Earth 3 12 10 -2825 73 34080 3 10 1308 1008 Medium Plant Earth 3 12 10 -2826 100 46165 9 10 1020 720 Medium Demon Wind 3 12 05 -2827 100 46165 9 10 500 720 Medium Demon Wind 3 12 05 -2828 100 43860 1 10 864 624 Medium Brute Wind 2 12 07 -2829 47 6500 1 10 1612 622 Medium Brute Water 1 12 19 -2830 94 83460 2 10 1260 960 Medium Brute Water 2 12 21 -2831 94 41730 2 10 1260 960 Medium Brute Water 2 12 21 -2832 126 211120 2 10 500 576 Large Dragon Earth 2 12 19 -2833 24 1650 1 10 1276 576 Small Brute Dark 1 12 01 -2834 105 52155 2 10 920 720 Small Angel Holy 3 12 04 -2835 6 590 1 10 1672 672 Small Insect Earth 1 12 01 -2836 6 295 1 10 1672 672 Small Insect Earth 1 12 01 -2837 100 32320 1 10 500 960 Small Brute Fire 3 12 04 -2838 80 23600 1 10 2276 576 Large Undead Undead 4 12 21 -2839 34 2675 1 10 1372 672 Medium Plant Fire 2 12 19 -2840 34 5350 1 10 1372 672 Medium Plant Fire 2 12 19 -2841 126 183590 1 10 768 360 Medium Demihuman Neutral 4 12 20 -2842 62 9245 1 10 500 504 Small Insect Wind 2 12 17 -2843 68 14085 3 10 950 2520 Medium Plant Earth 4 12 04 -2844 101 111790 7 10 864 576 Medium Plant Earth 1 12 10 -2845 2 230 1 10 1372 672 Medium Plant Fire 1 12 02 -2846 65 11815 1 10 500 900 Medium Brute Earth 1 12 04 -2847 47 5910 1 10 1276 576 Small Brute Dark 2 12 19 -2848 86 26085 1 10 862 534 Medium Insect Wind 2 12 21 -2849 114 182050 1 10 576 960 Medium Dragon Earth 1 12 03 -2850 132 272955 3 10 360 360 Large Insect Water 3 12 04 -2851 68 12805 1 10 500 456 Small Demon Dark 1 12 17 -2852 103 62600 2 10 516 768 Medium Demon Earth 4 12 04 -2853 116 107575 7 10 576 720 Medium Formless Wind 2 12 04 -2854 93 71650 1 10 980 600 Small Demon Dark 1 12 21 -2855 14 565 1 10 1600 900 Small Brute Fire 1 12 13 -2856 14 565 1 10 500 900 Small Brute Fire 1 12 13 -2857 31 2400 1 10 1288 288 Small Insect Earth 1 12 01 -2858 114 91025 1 10 176 912 Medium Formless Neutral 3 12 21 -2859 114 182050 1 10 176 912 Medium Formless Neutral 3 12 21 -2860 114 91025 1 10 176 912 Medium Formless Neutral 3 12 21 -2861 98 54215 2 10 500 1252 Medium Demon Undead 4 12 13 -2862 82 20770 2 10 600 840 Medium Dragon Wind 2 12 02 -2863 23 1235 1 10 1136 720 Small Insect Wind 1 12 01 -2864 48 12290 1 10 1248 48 Small Fish Water 1 12 17 -2865 35 2985 1 10 1036 936 Small Demihuman Neutral 3 12 17 -2866 108 71700 1 10 500 360 Small Formless Dark 3 12 04 -2867 81 21455 2 10 500 576 Medium Brute Poison 3 12 04 -2868 38 3470 1 10 1864 864 Small Brute Earth 1 12 17 -2869 38 6940 1 10 1864 864 Small Brute Earth 1 12 17 -2870 81 22525 1 10 1092 792 Medium Formless Earth 2 12 17 -2871 81 22525 1 10 500 792 Medium Formless Earth 2 12 17 -2872 5 240 1 10 1076 576 Small Insect Wind 1 12 01 -2873 125 146375 2 10 1000 792 Medium Insect Poison 2 12 21 -2874 146 1301310 1 10 1500 720 Small Plant Wind 1 12 21 -2875 141 1265725 1 10 1152 864 Medium Demihuman Ghost 3 12 19 -2876 121 129535 1 10 500 672 Small Insect Earth 1 12 21 -2877 103 54065 1 10 1078 768 Medium Demon Wind 2 12 21 -2878 25 1595 1 10 1604 840 Small Brute Earth 1 12 17 -2879 121 331020 1 10 1568 432 Large Demihuman Earth 2 12 19 -2880 92 35365 2 10 140 384 Medium Formless Wind 3 12 04 -2881 92 35365 2 10 500 384 Medium Formless Wind 3 12 04 -2882 133 228695 1 10 1008 1200 Large Formless Earth 2 12 20 -2883 94 34480 3 10 472 576 Medium Insect Wind 2 12 13 -2884 29 2530 1 10 1260 192 Large Brute Earth 1 12 17 -2885 86 30200 1 10 500 840 Medium Demihuman Dark 1 12 21 -2886 118 125840 2 10 676 504 Medium Demon Dark 2 12 20 -2887 130 204750 1 10 676 504 Medium Demon Dark 2 12 20 -2888 85 32350 1 10 1152 2304 Small Formless Fire 3 12 04 -2889 100 43860 2 10 512 780 Medium Demihuman Wind 2 12 21 -2890 47 6500 1 10 500 468 Large Insect Poison 1 12 19 -2891 75 17850 1 10 1792 792 Large Insect Poison 1 12 21 -2892 75 17850 1 10 1792 792 Large Insect Poison 1 12 21 -2893 107 149440 1 10 960 500 Medium Insect Earth 2 12 19 -2894 107 74720 1 10 960 500 Medium Insect Earth 2 12 19 -2895 121 158315 2 10 500 1440 Large Formless Neutral 3 12 17 -2896 136 313000 1 10 504 624 Medium Insect Earth 2 12 04 -2897 148 673075 1 10 864 960 Small Formless Neutral 3 12 21 -2898 148 1346150 1 10 864 960 Small Formless Neutral 3 12 21 -2899 109 83075 1 10 500 500 Medium Fish Water 2 12 21 -2900 144 458600 1 10 576 480 Medium Insect Earth 2 12 04 -2901 144 458600 1 10 576 480 Medium Insect Earth 2 12 04 -2902 33 5370 1 10 1288 288 Small Insect Earth 1 12 01 -2903 112 98890 1 10 168 480 Large Formless Neutral 3 12 04 -2904 100 46165 1 10 500 576 Medium Brute Poison 1 12 17 -2905 19 1325 1 10 2048 648 Large Insect Water 1 12 17 -2906 80 18155 2 10 500 576 Medium Plant Earth 1 12 04 -2907 57 19390 1 10 1100 900 Medium Brute Water 1 12 17 -2908 112 89900 1 10 1440 576 Medium Demihuman Neutral 3 12 17 -2909 115 91595 2 10 500 480 Medium Demon Neutral 3 12 13 -2910 88 28320 1 10 1020 500 Medium Formless Neutral 3 12 21 -2911 128 184855 1 10 768 360 Medium Demihuman Neutral 4 12 20 -2912 130 390890 2 10 168 768 Large Dragon Wind 2 12 19 -2913 130 195445 2 10 168 768 Large Dragon Wind 2 12 19 -2914 50 10000 1 10 800 672 Medium Demihuman Neutral 1 12 04 -2916 160 222240 1 10 1092 792 Medium Formless Earth 2 12 17 -2917 163 166860 1 10 1020 500 Medium Formless Neutral 3 12 21 -2918 165 256000 3 10 1072 672 Large Formless Neutral 4 12 17 -2919 155 154760 1 10 1500 500 Small Plant Wind 1 12 19 -2920 168 293640 3 10 1552 1152 Large Demihuman Neutral 4 12 04 -2921 168 295240 1 10 1345 824 Large Demon Neutral 3 12 21 -2922 168 295240 1 10 1345 824 Large Demon Neutral 3 12 21 -2923 170 630000 2 10 1345 824 Large Demon Neutral 3 12 21 -2924 34 599 1 10 1372 672 Medium Plant Fire 2 12 06 -2925 8 91 1 10 1672 672 Medium Plant Earth 1 12 06 -2926 83 4423 1 10 972 672 Medium Demon Wind 3 12 06 -2927 96 8300 1 10 648 480 Small Formless Neutral 2 12 06 -2928 105 12999 1 10 917 1584 Large Demon Dark 1 12 06 -2929 116 24975 1 10 1000 500 Small Formless Earth 4 12 06 -2930 123 24729 2 10 576 420 Medium Angel Holy 3 12 06 -2931 81 4300 1 10 384 672 Small Formless Neutral 1 12 06 -2932 30 524 1 10 1672 672 Medium Plant Poison 1 12 06 -2933 66 16890 1 10 1072 1056 Medium Demon Dark 4 12 06 -2934 84 25100 1 10 1072 672 Medium Angel Holy 3 12 06 -2935 96 8266 10 10 480 840 Large Formless Neutral 2 12 06 -2936 1 10 1 7 1220 1080 Small Plant Neutral 1 12 01 -2937 145 1215600 2 10 800 750 Medium Demihuman Neutral 1 12 06 -2938 140 10000000 1 10 1000 1000 Large Formless Neutral 1 12 06 -2939 138 112000 1 10 1500 600 Large Demon Dark 2 12 04 -2940 141 127650 1 10 1000 500 Medium Demon Dark 2 12 04 -2941 142 153400 1 10 1800 780 Large Demon Dark 2 12 04 -2942 151 8256000 3 10 1000 500 Large Demon Dark 3 12 21 -2943 149 10000 7 12 0 1000 Small Insect Ghost 4 12 06 -2948 110 22288 9 10 1960 576 Medium Undead Undead 3 12 04 -2949 110 16917 2 10 914 1344 Large Demihuman Dark 3 12 04 -2950 110 16224 1 10 920 720 Medium Demon Dark 3 12 04 -2951 110 13530 1 10 972 648 Small Demon Ghost 3 12 04 -2952 110 16808 2 10 1056 1056 Medium Demon Wind 3 12 04 -2953 110 21653 1 10 1768 500 Medium Undead Undead 3 12 04 -2954 110 23032 1 10 1848 500 Medium Undead Undead 3 12 04 -2955 110 15136 1 10 2456 912 Medium Undead Undead 2 12 04 -2956 110 16782 1 10 528 1000 Large Undead Undead 1 12 04 -2957 120 23454 2 10 847 1152 Medium Undead Undead 2 12 04 -2958 120 29088 2 10 720 384 Medium Demon Dark 3 12 04 -2959 120 124010 1 10 672 420 Medium Demihuman Earth 3 12 21 -2960 149 10000 7 12 0 1000 Small Insect Ghost 4 12 06 -2961 120 103342 1 10 672 420 Medium Demihuman Earth 3 12 21 -2987 148 544444 2 10 917 1584 Large Demon Undead 3 12 04 -2988 149 44 2 10 720 720 Medium Undead Dark 3 12 01 -2989 149 187760 1 10 1248 1248 Small Demon Dark 3 12 03 -2990 140 188999 12 10 1296 1296 Medium Demon Undead 3 12 05 -2991 148 259000 2 10 1248 1248 Medium Demon Dark 3 12 03 -2992 140 4444 1 10 890 960 Small Undead Dark 3 12 01 -2993 145 444444 2 10 741 1536 Small Demon Dark 3 12 04 -2994 148 280000 2 10 1480 480 Small Demon Ghost 1 12 20 -2995 148 180000 1 10 512 780 Small Demon Undead 3 12 04 -2996 160 66666666 2 10 768 1056 Large Undead Ghost 1 12 26 -2997 160 66666666 2 10 768 1056 Large Undead Ghost 1 12 26 -2998 158 1771440 1 12 2612 824 Large Demon Neutral 3 12 19 -2999 158 4000000 1 12 300 384 Medium Demihuman Neutral 3 12 21 -3000 101 80000000 12 12 2700 384 Medium Demihuman Earth 4 12 10 -3001 158 295240 1 12 2612 824 Medium Demon Neutral 3 12 19 -3002 158 442860 1 12 2612 824 Medium Demon Neutral 3 12 19 -3003 158 295240 7 12 300 824 Medium Demon Neutral 3 12 05 -3004 158 100000 1 12 300 824 Large Demon Neutral 3 12 19 -3005 158 442860 1 12 76 824 Medium Demon Neutral 3 12 19 -3006 158 885720 3 12 76 824 Small Demon Neutral 3 12 19 -3007 158 99999999 1 12 76 824 Small Demon Neutral 3 12 06 -3008 158 295240 1 12 2000 824 Small Demon Neutral 3 12 06 -3010 158 250000 1 10 864 400 Small Demihuman Earth 2 12 04 -3011 158 232890 1 10 864 400 Small Brute Fire 2 12 04 -3012 158 222550 1 10 864 400 Small Fish Water 2 12 04 -3013 158 300000 1 10 864 400 Medium Demihuman Earth 2 12 19 -3014 158 292450 1 10 864 400 Medium Brute Fire 2 12 04 -3015 158 284110 1 10 864 400 Medium Fish Water 2 12 04 -3016 158 375000 1 10 864 400 Medium Demihuman Undead 2 12 19 -3017 158 352715 1 10 864 400 Medium Brute Undead 2 12 04 -3018 158 347413 1 10 864 400 Medium Fish Undead 2 12 20 -3020 141 125114 1 10 1148 648 Medium Brute Fire 2 12 01 -3021 143 130501 1 10 1672 720 Medium Formless Fire 3 12 04 -3022 147 141301 1 10 1540 720 Medium Brute Fire 3 12 01 -3023 148 180213 1 10 1608 816 Large Formless Fire 4 12 04 -3026 17 10 1 10 2612 912 Medium Undead Undead 1 12 10 -3027 150 234 1 10 1288 288 Medium Undead Undead 1 12 01 -3028 17 20 1 10 2612 912 Medium Undead Undead 1 12 06 -3029 159 50000000 1 10 900 864 Large Undead Undead 4 12 04 -3038 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 -3039 149 8000000 1 10 576 480 Large Angel Dark 1 12 21 -3040 149 6400000 1 10 576 648 Medium Demon Dark 3 12 21 -3041 149 7700000 1 10 1536 648 Medium Demon Water 3 12 21 -3061 1 30 1 7 1 1 Medium Formless Neutral 1 12 01 -3069 125 48430 1 10 676 672 Small Demon Earth 2 12 04 -3070 126 40718 7 10 676 1248 Small Demon Water 2 12 04 -3071 127 53290 2 10 676 672 Small Demon Water 2 12 04 -3072 128 52280 2 10 676 1248 Small Demon Earth 2 12 04 -3073 140 19471800 1 10 676 2592 Large Demon Undead 3 12 05 -3074 170 25000000 1 10 100 576 Large Demon Neutral 4 12 04 -3075 1 3 1 0 0 0 Small Formless Holy 1 0 06 -3076 100 10000 1 10 1288 288 Small Angel Holy 3 12 21 -3077 100 10500 1 10 1288 288 Small Angel Holy 3 12 21 -3078 105 11000 2 10 920 720 Small Angel Holy 3 12 21 -3079 120 12000 2 10 1000 624 Medium Brute Holy 3 12 21 -3080 123 13000 2 10 576 420 Medium Angel Holy 3 12 21 -3081 125 14000 2 10 432 420 Medium Angel Holy 3 12 21 -3082 131 15000 1 10 672 780 Small Angel Holy 2 12 21 -3083 131 18000 1 10 672 780 Small Angel Holy 2 12 21 -3084 135 20000 1 10 1576 504 Small Angel Holy 3 12 21 -3085 98 30000 3 10 576 576 Large Angel Ghost 1 12 21 -3086 101 20099 2 10 1384 792 Medium Demihuman Neutral 1 12 06 -3087 160 215000 2 10 800 750 Medium Demihuman Neutral 1 12 06 -3088 155 155600 1 10 1000 1000 Large Formless Neutral 1 12 04 -3089 155 185000 1 10 1500 600 Large Demon Dark 2 12 04 -3090 155 217650 1 10 1000 500 Medium Demon Dark 2 12 04 -3091 165 81650000 3 10 1020 500 Large Demon Water 3 12 21 -3092 165 55620000 3 10 608 408 Large Demon Fire 3 12 21 -3096 175 80000000 3 10 1000 460 Small Demon Holy 3 12 21 -3097 175 120000000 3 10 750 510 Medium Demon Dark 2 12 21 -3098 160 3258000 3 10 2000 750 Large Demon Dark 4 12 21 -3099 160 1450000 3 10 500 510 Large Demon Dark 4 12 21 -3101 1 30 0 10 1 1 Small Formless Neutral 1 12 06 -3102 1 30 0 10 1 1 Small Formless Neutral 1 12 06 -3103 1 30 0 10 1 1 Small Formless Neutral 1 12 06 -3105 149 5000000 1 10 576 480 Large Angel Fire 2 12 04 -3106 149 5000000 1 10 1536 648 Medium Demon Ghost 3 12 04 -3108 135 2614000 1 10 676 2592 Large Demon Undead 2 12 04 -3109 135 2614000 1 10 676 2592 Large Demon Undead 2 12 04 -3122 140 2614000 1 10 676 2400 Large Demon Earth 1 12 04 -3123 140 2614000 1 10 676 2400 Large Demon Earth 1 12 04 -3124 145 23671401 1 10 676 2016 Large Demon Neutral 3 12 04 -3125 130 55403 1 10 676 672 Small Demon Neutral 1 12 02 -3126 131 71056 2 10 676 1056 Medium Demon Neutral 2 12 04 -3127 132 73644 7 10 676 816 Medium Demon Neutral 1 12 04 -3128 133 68018 1 10 676 576 Medium Demon Neutral 2 12 04 -3153 163 166860 1 10 1020 500 Medium Formless Neutral 3 12 04 -3154 165 256000 3 10 1072 672 Large Formless Neutral 4 12 04 -3155 155 154760 1 10 1500 500 Small Plant Wind 1 12 04 -3156 168 293640 3 10 1552 1152 Large Demihuman Neutral 4 12 04 -3157 100 61350 1 10 800 2112 Medium Demihuman Neutral 2 12 04 -3158 100 61350 1 10 800 2112 Medium Demihuman Neutral 2 12 04 -3159 100 10 1 10 800 2112 Small Formless Neutral 2 12 06 -3161 130 60250 1 10 500 360 Small Formless Dark 3 12 06 -3169 1 1 1 10 76 1 Medium Demihuman Wind 3 12 01 -3170 1 1 1 10 76 1 Medium Demihuman Wind 3 12 01 -3175 113 15900 10 10 2416 2016 Large Formless Wind 2 12 19 -3176 118 20313 1 10 432 540 Large Demon Dark 2 12 19 -3177 118 20313 1 10 432 540 Large Demon Dark 2 12 01 -3178 130 48430 2 10 168 1008 Large Dragon Dark 2 12 19 -3179 130 40718 2 10 168 768 Large Dragon Wind 2 12 01 -3180 117 300000 2 10 1596 1620 Large Dragon Dark 4 12 01 -3181 130 3000000 10 10 168 1008 Large Dragon Dark 2 12 01 -3190 160 100000000 12 10 800 500 Medium Demihuman Neutral 1 12 10 -3191 160 6653400 2 10 1000 750 Medium Demon Dark 2 12 04 -3192 160 9870000 2 10 1000 750 Medium Demon Dark 2 12 04 -3193 160 1126300 2 10 1250 750 Medium Demon Dark 2 12 04 -3194 160 2482000 2 10 1000 500 Large Demon Dark 2 12 04 -3195 160 2784175 2 10 1000 500 Large Demon Dark 2 12 04 -3196 160 12063464 2 10 1250 800 Large Demon Dark 2 12 04 -3197 150 256780 9 10 1020 720 Medium Demon Wind 3 12 05 -3198 150 293165 1 10 864 624 Medium Brute Wind 2 12 04 -3199 150 324891 4 10 1280 1080 Large Dragon Fire 2 12 04 -3200 150 301158 1 10 772 672 Large Brute Fire 3 12 04 -3202 10 40 1 0 0 0 Small Formless Neutral 1 0 01 -3203 10 40 1 0 0 0 Small Formless Neutral 1 0 01 -3208 179 2380000 1 10 76 384 Medium Demon Poison 4 12 19 -3209 177 2448000 1 10 576 384 Medium Demihuman Holy 4 12 19 -3210 177 2040000 1 10 576 384 Medium Demihuman Ghost 4 12 19 -3211 179 2142000 14 10 76 384 Medium Demihuman Wind 4 12 19 -3212 177 2720000 1 10 76 384 Medium Demihuman Water 4 12 19 -3213 179 2448000 1 10 76 384 Medium Demon Fire 4 12 19 -3214 189 3150000 1 10 76 384 Medium Demon Poison 4 12 21 -3215 187 3600000 1 10 576 384 Medium Demihuman Holy 4 12 21 -3216 187 2700000 1 10 576 384 Medium Demihuman Ghost 4 12 21 -3217 189 3150000 14 10 76 384 Medium Demihuman Wind 4 12 21 -3218 187 4500000 1 10 76 384 Medium Demihuman Earth 4 12 21 -3219 189 3600000 1 10 76 384 Medium Demon Fire 4 12 21 -3220 189 12600000 1 10 76 384 Medium Demihuman Poison 4 12 21 -3221 187 14400000 1 10 576 384 Medium Demihuman Holy 4 12 21 -3222 189 12600000 14 10 76 384 Medium Demihuman Wind 4 12 21 -3223 187 18000000 1 10 76 384 Medium Demihuman Water 4 12 21 -3224 187 10800000 1 10 576 384 Medium Demihuman Ghost 4 12 21 -3225 189 14400000 1 10 76 384 Medium Demihuman Fire 4 12 21 -3226 178 2550000 1 10 76 384 Medium Demihuman Holy 4 12 19 -3227 176 2312000 1 10 76 384 Medium Demihuman Fire 4 12 19 -3228 178 2295000 1 10 576 384 Medium Demihuman Ghost 4 12 19 -3229 178 2261000 1 10 76 384 Medium Demon Water 4 12 19 -3230 178 2040000 1 10 76 384 Medium Demon Poison 4 12 19 -3231 176 2040000 7 10 76 384 Medium Demihuman Wind 4 12 19 -3232 176 2040000 7 10 76 384 Medium Demihuman Wind 4 12 19 -3233 188 4500000 1 10 76 384 Medium Demihuman Holy 4 12 21 -3234 186 3600000 1 10 76 384 Medium Demihuman Fire 4 12 21 -3235 188 4050000 1 10 576 384 Medium Demihuman Ghost 4 12 21 -3236 188 3150000 1 10 76 384 Medium Demon Water 4 12 21 -3237 188 3600000 1 10 76 384 Medium Demon Poison 4 12 21 -3238 186 3600000 7 10 76 384 Medium Demihuman Wind 4 12 21 -3239 186 3600000 7 10 76 384 Medium Demihuman Wind 4 12 21 -3240 188 18000000 1 10 76 384 Medium Demihuman Holy 4 12 21 -3241 186 14400000 1 10 76 384 Medium Demihuman Fire 4 12 21 -3242 188 16200000 1 10 576 384 Medium Demihuman Ghost 4 12 21 -3243 188 12600000 1 10 76 384 Medium Demihuman Water 4 12 21 -3244 188 14400000 1 10 76 384 Medium Demihuman Poison 4 12 21 -3245 186 10800000 7 10 76 384 Medium Demihuman Wind 4 12 21 -3246 186 10800000 7 10 76 384 Medium Demihuman Wind 4 12 21 -3247 150 140088 1 10 1500 720 Small Formless Wind 1 12 04 -3248 158 186320 1 10 1500 500 Small Formless Neutral 2 12 07 -3249 171 318117 3 10 1552 1152 Large Formless Neutral 4 12 04 -3250 155 30 1 10 2400 500 Small Formless Neutral 1 12 04 -3251 149 217650 1 10 1000 500 Small Formless Dark 2 12 04 -3252 153 245670 1 10 1500 600 Medium Formless Dark 1 12 04 -3253 160 100 12 0 3000 600 Large Demon Dark 1 0 21 -3254 165 48000000 3 10 1250 500 Large Demon Dark 3 12 21 -3255 155 178652 1 10 2050 500 Small Plant Wind 1 12 04 -3256 148 134615 1 10 2155 960 Small Formless Neutral 3 12 04 -3384 100 25000 1 10 1872 672 Medium Plant Water 1 12 04 -3385 100 25000 1 10 1456 456 Small Brute Neutral 3 12 04 -3386 100 25000 1 10 1672 672 Small Insect Earth 1 12 04 -3387 100 25000 1 10 988 288 Small Brute Fire 1 12 04 -3388 101 40000 1 10 1148 648 Medium Brute Wind 1 12 04 -3389 101 40000 1 10 1672 672 Medium Plant Earth 1 12 04 -3390 101 40000 1 10 1872 672 Medium Plant Water 1 12 04 -3391 101 40000 1 10 1672 672 Medium Plant Poison 1 12 04 -3392 102 55000 1 10 1576 576 Small Brute Earth 1 12 04 -3393 102 55000 1 10 1156 456 Small Demon Dark 1 12 04 -3394 102 55000 1 10 1260 192 Large Brute Earth 1 12 04 -3395 102 55000 1 10 1048 48 Medium Plant Earth 1 12 04 -3396 103 70000 1 10 1054 504 Medium Brute Earth 1 12 04 -3397 103 70000 1 10 1576 576 Medium Brute Earth 1 12 04 -3398 103 70000 1 10 1576 576 Medium Brute Poison 1 12 04 -3399 103 70000 1 10 1872 672 Medium Plant Water 2 12 04 -3400 104 85000 1 10 1960 960 Large Plant Earth 1 12 04 -3401 104 85000 1 10 1564 864 Large Brute Fire 1 12 04 -3402 104 85000 1 10 1288 288 Small Insect Earth 1 12 04 -3403 104 85000 1 10 1288 288 Small Insect Earth 1 12 04 -3404 105 100000 1 10 1288 288 Small Insect Earth 1 12 04 -3405 105 100000 1 10 1608 816 Large Formless Neutral 3 12 04 -3406 105 100000 1 10 1564 864 Small Insect Fire 1 12 04 -3407 105 100000 1 10 1076 576 Small Insect Wind 1 12 04 -3408 106 115000 1 10 1708 1008 Medium Insect Fire 1 12 04 -3409 106 115000 1 10 1672 720 Medium Formless Earth 3 12 04 -3410 106 115000 1 10 1000 900 Small Brute Wind 1 12 04 -3411 106 115000 1 10 862 534 Medium Insect Wind 2 12 04 -3412 107 130000 1 10 1152 1152 Medium Brute Earth 2 12 04 -3413 107 130000 1 10 1132 583 Medium Brute Water 3 12 04 -3414 107 130000 1 10 1430 1080 Small Brute Earth 1 12 04 -3415 107 130000 1 10 1612 622 Medium Brute Water 1 12 04 -3416 108 145000 1 10 1100 900 Medium Brute Water 1 12 04 -3417 108 145000 1 10 2492 792 Medium Undead Undead 1 12 04 -3418 108 145000 1 10 860 660 Small Insect Earth 1 12 04 -3419 109 160000 9 10 1332 1332 Large Formless Neutral 4 12 10 -3420 109 160000 3 10 950 2520 Medium Plant Earth 4 12 04 -3421 105 900000 1 10 1236 336 Medium Fish Water 1 12 04 -3422 105 900000 1 10 1048 648 Medium Brute Earth 1 12 04 -3423 105 900000 1 10 1080 648 Medium Insect Earth 1 12 04 -3424 105 900000 1 10 1456 456 Medium Brute Neutral 3 12 04 -3425 105 900000 1 10 772 672 Large Brute Fire 3 12 04 -3426 101 1850000 1 10 872 1344 Large Brute Fire 1 12 21 -3427 103 2850000 1 10 1072 672 Medium Undead Undead 4 12 21 -3428 105 4750000 1 10 1020 1020 Large Brute Neutral 3 12 21 -3429 107 6650000 1 10 1678 780 Large Demihuman Earth 2 12 21 -3430 109 8550000 2 10 1020 288 Large Demon Neutral 3 12 21 -3431 100 100000 1 10 2016 816 Medium Fish Water 1 12 04 -3432 100 100000 1 10 1054 504 Medium Brute Earth 1 12 04 -3433 100 100000 1 10 1864 864 Medium Insect Earth 1 12 04 -3434 100 100000 1 10 1456 456 Small Brute Neutral 3 12 04 -3435 100 100000 9 10 1020 720 Medium Demon Wind 3 12 04 -3436 100 100000 1 10 1260 192 Large Brute Earth 1 12 04 -3437 100 100000 1 10 1772 120 Medium Undead Undead 2 12 04 -3438 100 100000 1 10 1672 720 Medium Formless Earth 3 12 04 -3439 100 100000 1 10 1500 500 Large Demihuman Fire 2 12 04 -3440 100 100000 9 10 1332 1332 Large Formless Neutral 4 12 21 -3442 140 80000 1 10 1120 420 Medium Brute Water 1 12 04 -3443 145 100000 1 10 1604 1344 Medium Brute Earth 1 12 01 -3444 145 120000 6 10 576 1344 Small Formless Wind 1 12 04 -3445 114 10000 14 10 1152 864 Medium Undead Undead 3 12 04 -3446 114 10000 1 10 1440 528 Medium Undead Undead 3 12 04 -3447 115 20000 1 10 1440 576 Medium Undead Undead 3 12 04 -3448 99 10000000 2 10 1152 1536 Large Undead Undead 1 12 04 -3449 98 66666 2 10 1152 1536 Large Undead Undead 1 12 04 -3450 115 10000000 3 10 2000 1536 Large Undead Undead 4 12 21 -3451 158 198410 1 10 1500 600 Medium Demon Undead 4 12 04 -3452 145 124000 1 10 768 2784 Medium Undead Undead 4 12 04 -3454 103 20714 1 10 864 1268 Medium Demihuman Dark 2 12 04 -3455 1 1 1 7 1 1 Small Formless Neutral 1 12 06 -3473 160 20000000 1 14 960 1632 Large Undead Undead 1 16 21 -3474 160 10000000 2 10 768 528 Large Formless Dark 2 12 21 -3475 160 10000000 5 10 2112 1152 Medium Demon Wind 2 12 21 -3476 160 405694 1 10 2612 912 Medium Undead Undead 1 12 04 -3477 160 405694 1 10 1500 600 Medium Demon Undead 1 12 04 -3478 160 423332 1 10 676 648 Medium Undead Undead 2 12 04 -3479 160 405694 1 10 2612 912 Medium Undead Undead 1 12 04 -3480 160 405694 9 10 1960 576 Medium Undead Undead 1 12 04 -3481 160 423330 1 10 1500 600 Large Demon Dark 1 12 04 -3482 160 388054 1 10 1000 500 Medium Demon Dark 1 12 04 -3483 160 423330 1 10 1800 780 Large Demon Dark 1 12 04 -3484 160 20000000 1 14 960 1632 Large Undead Undead 2 16 21 -3485 160 405694 9 10 1960 576 Medium Undead Undead 1 12 04 -3487 115 90000 1 10 500 840 Small Demon Undead 4 12 21 -3488 115 120000 1 10 1000 1100 Small Demon Undead 4 12 21 -3489 115 170000 2 10 1500 1500 Small Demon Undead 4 12 21 -3490 160 500000 3 10 1500 1344 Medium Demon Undead 4 12 21 -3494 100 15 2 10 0 0 Small Formless Neutral 1 10 01 -3495 1 50 1 10 1872 672 Medium Plant Earth 1 12 02 -3496 3 44 1 10 1456 456 Small Brute Neutral 3 12 01 -3497 7 60 1 10 1672 672 Small Insect Earth 1 12 01 -3498 11 78 1 10 1292 792 Small Insect Wind 1 12 01 -3499 14 140 1 10 2016 816 Medium Fish Water 1 12 01 -3500 17 113 1 10 1600 900 Small Brute Fire 1 12 01 -3501 18 203 1 10 1872 672 Medium Plant Water 1 12 01 -3502 20 243 1 10 2228 528 Medium Brute Earth 1 12 04 -3503 140 180030 3 10 2228 528 Medium Brute Earth 2 12 04 -3504 148 216036 3 10 2228 528 Medium Brute Earth 2 12 04 -3505 25 142480 1 10 1872 672 Medium Plant Earth 3 12 17 -3506 144 190570 4 10 1768 768 Medium Plant Earth 3 12 10 -3507 150 156532 1 10 864 1056 Medium Insect Earth 3 12 04 -3508 20 220 1 10 1872 672 Medium Plant Earth 1 12 24 -3510 84 30000 1 10 1200 1200 Medium Demihuman Neutral 2 12 04 -3511 82 19500 1 10 768 432 Medium Demihuman Neutral 2 12 04 -3512 85 22500 1 10 768 432 Medium Demihuman Neutral 2 12 04 -3513 85 27000 1 10 824 432 Medium Brute Fire 2 12 19 -3514 87 142500 1 10 1100 1100 Medium Demihuman Neutral 3 12 21 -3515 80 1012 3 10 1344 0 Small Formless Water 2 12 10 -3516 90 600000 1 10 861 660 Medium Demihuman Water 3 12 21 -3517 65 15000 1 10 861 660 Large Formless Water 2 12 24 -3518 130 165000 1 10 1100 1100 Medium Demihuman Neutral 2 12 04 -3519 133 127500 1 10 768 432 Medium Demihuman Neutral 2 12 04 -3520 134 135000 1 10 768 432 Medium Demihuman Neutral 2 12 04 -3521 136 150000 1 10 824 432 Medium Brute Fire 2 12 19 -3522 140 375000 1 10 1100 1100 Medium Demihuman Neutral 3 12 21 -3523 130 75000 3 10 1344 0 Small Formless Water 2 12 10 -3524 140 825000 1 10 861 660 Medium Demihuman Neutral 3 12 21 -3525 90 105000 1 10 861 660 Large Formless Water 2 12 24 -3526 141 2000000 1 10 432 840 Large Formless Water 3 12 21 -3527 87 37500 1 10 864 864 Small Demihuman Holy 3 12 06 -3528 87 37500 1 10 864 864 Small Demihuman Holy 3 12 06 -3569 120 120000 1 10 864 864 Small Demihuman Holy 4 12 06 -3570 120 120000 1 10 864 864 Small Demihuman Holy 4 12 06 -3621 120 3500000 2 10 864 1268 Large Brute Dark 3 12 21 -3622 100 21914 1 10 1000 780 Medium Demihuman Fire 1 12 04 -3623 1 30 1 7 1 1 Small Formless Fire 1 12 06 -3624 1 30 1 7 1 1 Small Formless Earth 1 12 06 -3625 1 30 1 7 1 1 Small Formless Water 1 12 06 -3626 110 51785 1 10 1296 1902 Large Demihuman Dark 2 12 04 -3627 105 41428 1 10 864 1268 Medium Demihuman Dark 2 12 04 -3628 110 2800000 1 10 432 1268 Medium Demihuman Dark 2 12 21 -3629 110 24911 5 10 576 720 Medium Undead Ghost 2 12 05 -3630 115 2000000 7 10 864 1268 Medium Demihuman Wind 3 12 05 -3631 100 36968 1 10 772 672 Medium Brute Neutral 2 12 04 -3632 100 36968 1 10 772 672 Medium Brute Fire 2 12 04 -3633 110 2800000 1 10 772 672 Large Brute Poison 4 12 21 -3636 59 2092 1 10 1384 768 Large Demon Dark 1 12 01 -3637 60 2120 1 10 2228 528 Medium Undead Undead 1 12 04 -3638 80 4070 1 10 2228 528 Medium Undead Undead 1 12 04 -3639 100 16430 1 10 2228 528 Medium Undead Undead 1 12 04 -3640 120 31790 1 10 2228 528 Medium Undead Undead 1 12 04 -3641 140 72040 1 10 2228 528 Medium Undead Undead 1 12 04 -3642 160 135210 1 10 2228 528 Medium Undead Undead 1 12 04 -3643 60 2050 1 10 1276 576 Small Brute Dark 1 12 04 -3644 80 3990 1 10 1276 576 Small Brute Dark 1 12 04 -3645 100 15830 1 10 1276 576 Small Brute Dark 1 12 04 -3646 120 29660 1 10 1276 576 Small Brute Dark 1 12 04 -3647 140 68920 1 10 1276 576 Small Brute Dark 1 12 04 -3648 160 127820 1 10 1276 576 Small Brute Dark 1 12 04 -3649 60 2580 1 10 2612 912 Medium Undead Undead 1 12 04 -3650 80 4990 1 10 2612 912 Medium Undead Undead 1 12 04 -3651 100 17590 1 10 2612 912 Medium Undead Undead 1 12 04 -3652 120 33560 1 10 2612 912 Medium Undead Undead 1 12 04 -3653 140 75060 1 10 2612 912 Medium Undead Undead 1 12 04 -3654 160 146220 1 10 2612 912 Medium Undead Undead 1 12 04 -3658 100 2516502 3 10 1344 864 Large Demon Undead 4 12 21 -3659 160 23485539 3 10 1344 864 Large Demon Undead 4 12 21 -3660 100 21300 1 10 1816 816 Large Demon Ghost 3 12 04 -3661 160 199129 1 10 1816 816 Large Demon Ghost 3 12 04 -3662 100 23933 1 10 1180 480 Medium Formless Fire 2 12 04 -3663 160 181967 1 10 1180 480 Medium Formless Fire 2 12 04 -3664 100 24471 1 10 2456 912 Medium Undead Undead 2 12 04 -3665 160 200634 1 10 2456 912 Medium Undead Undead 2 12 04 -3666 100 22350 1 10 1276 576 Small Brute Dark 2 12 04 -3667 160 184779 1 10 1276 576 Small Brute Dark 2 12 04 -3669 104 10572 1 10 1080 780 Small Demon Dark 2 12 01 -3670 105 10000 1 10 1024 624 Medium Dragon Fire 2 12 01 -3736 103 11819 4 10 900 770 Large Demihuman Fire 2 12 04 -3737 101 9700 7 10 1200 672 Large Demihuman Fire 2 12 04 -3738 107 14547 2 10 800 420 Large Demihuman Fire 2 12 04 -3739 110 17854 1 10 750 400 Medium Brute Earth 2 12 01 -3740 141 90574 1 10 1100 650 Medium Formless Poison 2 12 01 -3741 158 9799123 1 10 900 1000 Large Formless Neutral 2 12 21 -3742 1 20 0 7 1 1 Small Formless Neutral 1 12 06 -3743 1 20 0 7 1 1 Small Formless Neutral 1 12 06 -3744 103 11819 4 10 900 770 Large Demihuman Fire 2 12 04 -3745 101 9700 7 10 1200 672 Large Demihuman Fire 2 12 04 -3746 107 14547 2 10 800 420 Large Demihuman Fire 2 12 04 -3747 148 135292 4 10 2050 500 Large Demihuman Fire 3 12 04 -3748 151 160515 10 10 1000 500 Large Demihuman Fire 3 12 04 -3749 152 174345 2 10 1500 600 Large Demihuman Fire 3 12 04 -3750 137 242246 1 10 1276 576 Small Brute Dark 2 12 04 -3751 139 253926 1 10 500 912 Medium Undead Undead 1 12 04 -3752 139 240984 1 10 500 912 Medium Undead Undead 1 12 04 -3753 142 267379 1 10 2456 912 Medium Undead Undead 2 12 04 -3754 141 261334 1 10 1816 816 Large Demon Ghost 2 12 04 -3755 130 150000 0 0 0 0 Small Plant Earth 1 0 06 -3756 137 378510 1 10 1000 864 Medium Demihuman Undead 2 12 21 -3757 139 6909690 3 10 1290 1140 Large Demon Dark 4 12 21 -3758 118 4287803 1 10 1276 576 Medium Demon Fire 3 12 21 -3759 116 21875 1 10 840 540 Medium Brute Fire 3 12 21 -3760 110 17728 1 10 2468 768 Medium Undead Undead 1 12 04 -3761 112 19077 1 10 1720 500 Medium Undead Undead 1 12 04 -3762 114 22414 1 10 912 2112 Medium Demon Water 2 12 04 -3763 115 20843 9 10 2864 864 Medium Undead Undead 1 12 04 -3764 118 121847 1 10 768 864 Medium Undead Dark 1 12 01 -3765 117 24078 1 10 1450 864 Medium Undead Undead 3 12 21 -3787 106 1120 1 10 960 500 Medium Insect Earth 2 12 04 -3788 101 988 1 10 1000 500 Small Brute Poison 2 12 04 -3790 1 20 1 10 1372 672 Medium Plant Fire 1 12 02 -3792 126 57541 10 10 576 370 Medium Demon Water 1 12 20 -3793 129 66540 2 10 936 1020 Large Formless Water 2 12 04 -3794 133 72045 1 10 861 660 Large Formless Water 3 12 04 -3795 135 1012 3 10 1344 0 Small Formless Water 2 12 10 -3796 135 13521442 3 10 432 840 Large Brute Water 4 12 21 -3797 1 100 0 10 0 0 Medium Formless Neutral 1 12 06 -3798 1 100 0 10 0 0 Medium Formless Neutral 1 12 06 -3799 160 592508 2 10 512 780 Small Demon Wind 2 12 21 -3800 157 508355 2 10 1100 483 Small Brute Neutral 2 12 21 -3801 159 549071 2 10 1260 960 Small Brute Water 2 12 21 -3802 161 592310 2 10 1452 483 Small Brute Earth 2 12 21 -3803 162 527390 2 10 1452 483 Small Brute Fire 2 12 21 -3804 165 11628549 2 10 900 1000 Large Brute Earth 2 12 21 -3810 35 140000 2 10 768 1632 Large Formless Neutral 2 12 21 -3811 35 72118 2 10 1872 672 Large Formless Holy 1 120 21 -3812 35 72810 2 10 1872 672 Large Formless Poison 1 12 21 -3813 35 1095 1 10 1872 672 Small Formless Fire 1 12 02 -3814 36 1167 2 10 1872 672 Small Formless Wind 1 12 02 -3815 34 1023 2 10 1872 672 Small Formless Earth 1 12 02 -3816 33 960 2 10 1872 672 Small Formless Water 1 12 02 -3896 160 592508 2 10 512 780 Small Demon Wind 2 12 21 -20255 155 328072 2 10 512 780 Small Formless Fire 1 12 04 -20256 155 294044 2 10 512 780 Small Formless Wind 1 12 04 -20257 157 331960 2 10 512 708 Small Formless Poison 1 12 04 -20258 155 311841 2 10 512 780 Small Formless Neutral 1 12 04 -20259 152 280657 2 10 512 780 Small Formless Water 1 12 04 -20260 160 10724874 2 10 512 780 Large Formless Holy 4 12 21 -20261 154 305605 1 10 960 336 Large Demon Earth 2 12 04 -20262 153 290324 1 10 648 480 Small Formless Neutral 2 12 04 -20263 156 318593 1 10 720 864 Small Formless Earth 2 12 04 -20264 155 309520 2 10 512 780 Small Formless Fire 1 12 24 -20265 155 294044 2 10 512 780 Small Formless Wind 1 12 24 -20266 157 331960 2 10 512 780 Small Formless Poison 1 12 24 -20267 155 311841 2 10 512 780 Small Formless Neutral 1 12 24 -20268 152 280657 2 10 512 780 Small Formless Water 1 12 24 -20269 90 30 0 10 1288 288 Small Formless Neutral 1 12 06 -20270 164 694500 1 10 860 660 Small Insect Earth 1 12 07 -20271 167 725400 1 10 632 518 Large Formless Neutral 4 12 04 -20272 166 708500 9 10 1332 1332 Large Formless Neutral 4 12 10 -20273 169 19280000 2 10 1020 288 Large Demon Neutral 3 12 21 -20274 166 692500 10 10 2413 1248 Medium Plant Fire 3 12 04 -20275 164 702100 10 10 857 1056 Medium Demihuman Earth 2 12 05 -20276 167 725500 1 10 912 1344 Medium Demihuman Fire 2 12 04 -20277 169 20154000 2 10 1020 288 Large Demihuman Fire 4 12 21 -20278 166 708500 9 10 1332 1332 Large Formless Neutral 4 12 24 -20279 164 702100 10 10 857 1056 Medium Demihuman Earth 2 12 24 -20280 167 725500 1 10 912 1344 Medium Demihuman Fire 2 12 24 -20340 118 16412000 1 10 128 1004 Large Formless Neutral 3 12 21 -20341 116 24810 2 10 741 1536 Medium Formless Neutral 4 12 04 -20342 117 26200 2 10 1552 1152 Large Formless Neutral 2 12 04 -20343 118 26840 2 10 432 864 Medium Fish Water 4 12 04 -20344 110 10000 1 10 384 0 Small Formless Poison 1 12 10 -20345 110 10000 1 10 720 360 Small Formless Neutral 3 12 10 -20346 115 8600000 1 10 872 1044 Medium Demihuman Wind 4 12 21 -20347 115 8600000 1 10 872 1044 Medium Demihuman Wind 4 12 21 -20348 110 31000 2 10 1872 360 Medium Demihuman Dark 2 12 04 -20349 111 31000 5 10 1872 672 Medium Demihuman Poison 3 12 05 -20350 112 38000 7 10 206 384 Medium Demihuman Neutral 2 12 05 -20351 1 1000 2 10 76 384 Medium Formless Neutral 1 12 10 -20352 112 35000 1 10 1100 650 Medium Formless Poison 3 12 04 -20353 111 3441000 5 10 1872 672 Medium Demihuman Neutral 2 12 05 -20355 120 29619 9 10 864 1268 Medium Demihuman Neutral 2 12 05 -20356 165 473302 9 10 864 1268 Medium Demihuman Neutral 3 12 05 -20357 120 30159 1 10 432 1268 Medium Demihuman Neutral 2 12 04 -20358 168 482327 1 10 432 1268 Medium Angel Dark 3 12 04 -20359 164 466948 1 10 1280 1080 Medium Dragon Neutral 2 12 04 -20360 178 760548 1 10 1280 1080 Medium Dragon Neutral 2 12 04 -20361 122 40204 5 10 1768 768 Medium Demihuman Poison 2 12 05 -20362 173 742501 5 10 1768 768 Medium Brute Poison 3 12 05 -20363 123 40720 1 10 768 792 Medium Brute Poison 2 12 04 -20364 176 755670 1 10 768 792 Medium Demihuman Neutral 3 12 04 -20365 125 41735 1 10 936 1020 Medium Demihuman Dark 2 12 04 -20366 175 750501 1 10 936 1020 Medium Demihuman Dark 2 12 04 -20367 185 2372683 1 10 824 780 Medium Demihuman Dark 3 12 21 -20368 184 2355718 9 10 1152 1152 Medium Demihuman Dark 3 12 05 -20369 186 2377139 9 10 1020 720 Medium Demon Water 3 12 05 -20370 180 2297907 1 10 528 500 Medium Formless Earth 3 12 21 -20371 186 2375279 5 10 1960 576 Medium Demihuman Undead 2 12 05 -20372 178 1218064 1 10 1732 1332 Medium Demon Neutral 2 12 21 -20373 179 1218702 1 10 1216 816 Large Demon Dark 3 12 21 -20374 174 1189532 1 10 1020 720 Medium Dragon Neutral 2 12 21 -20375 173 1182695 1 10 1024 624 Medium Dragon Neutral 2 12 21 -20376 171 1166287 1 10 1260 960 Small Brute Neutral 2 12 21 -20377 173 1178774 1 10 1700 1000 Medium Formless Dark 2 12 21 -20378 177 1223728 1 10 2190 2040 Large Formless Neutral 2 12 21 -20379 189 2418315 2 10 1056 1056 Medium Demon Water 3 12 21 -20380 189 2410282 2 10 1056 1056 Medium Demon Fire 3 12 21 -20381 174 4885000 1 10 1020 144 Large Brute Neutral 4 12 21 -20382 175 603341 1 10 936 1020 Medium Formless Neutral 3 12 24 -20419 188 48530254 1 10 608 408 Medium Demon Fire 3 12 21 -20420 187 2387582 1 10 672 500 Medium Demon Wind 2 12 21 -20421 195 74623473 1 10 1020 500 Large Demon Dark 3 12 21 -20422 194 74476822 2 10 868 768 Large Undead Undead 3 12 21 -20543 172 1469107 1 10 864 1268 Medium Demihuman Neutral 3 12 04 -20560 190 2435702 1 10 648 480 Large Formless Neutral 4 12 17 -20592 188 2407086 1 10 768 1440 Medium Formless Ghost 4 12 04 -20593 188 2407556 1 10 768 1440 Medium Formless Poison 4 12 04 -20594 190 2435702 1 10 648 480 Large Formless Neutral 4 12 04 -20595 190 2435702 1 10 648 480 Large Formless Neutral 4 12 04 -20596 190 2436177 1 10 648 480 Large Formless Neutral 4 12 04 -20597 190 2435543 1 10 648 480 Large Formless Neutral 4 12 04 -20598 191 2445656 1 10 360 360 Medium Insect Neutral 4 12 21 -20599 191 2445656 1 10 360 360 Medium Insect Neutral 4 12 21 -20600 192 100 1 10 1008 1200 Large Formless Neutral 4 12 21 -20601 197 37847096 3 10 420 576 Large Insect Neutral 4 12 21 -20602 188 2403326 1 10 720 360 Small Insect Earth 4 12 02 -20603 190 2428577 1 10 960 336 Large Brute Neutral 4 12 04 -20620 135 9514800 1 10 480 1632 Medium Formless Fire 3 12 04 -20621 185 1008398847 1 10 480 1632 Medium Formless Dark 3 12 04 -20622 137 238512 1 10 480 960 Medium Formless Neutral 2 12 04 -20623 187 2398802 1 10 480 960 Medium Formless Neutral 2 12 04 -20624 140 248245 1 10 512 528 Small Plant Earth 3 12 04 -20625 190 2908909 1 10 512 528 Small Plant Earth 3 12 04 -20626 143 255483 1 10 500 576 Small Plant Poison 2 12 04 -20627 193 2954324 1 10 500 576 Medium Plant Poison 2 12 04 -20628 180 1847205 1 10 960 960 Medium Demihuman Neutral 2 12 04 -20629 165 662430 1 10 960 960 Medium Demihuman Neutral 2 12 04 -20630 145 261170 1 10 960 960 Medium Formless Neutral 2 12 04 -20631 135 234017 1 10 960 960 Medium Formless Fire 2 12 04 -20632 185 2379158 1 10 960 960 Medium Formless Fire 2 12 04 -20633 143 147134 1 10 960 960 Medium Formless Neutral 2 12 04 -20634 144 150304 1 10 960 960 Medium Formless Neutral 2 12 04 -20635 145 150690 1 10 960 960 Medium Demihuman Neutral 2 12 04 -20636 145 150304 1 10 960 960 Medium Formless Neutral 2 12 04 -20637 185 1900983 1 10 960 960 Medium Demihuman Neutral 2 12 04 -20638 140 257228 1 10 768 768 Medium Demon Dark 2 12 04 -20639 186 1909523 1 10 768 768 Medium Formless Wind 2 12 04 -20640 130 182967 1 10 768 768 Small Formless Neutral 2 12 02 -20641 175 1200685 1 10 768 768 Small Formless Neutral 2 12 04 -20642 139 5011304 1 10 648 1296 Medium Demihuman Neutral 3 12 21 -20643 139 133096 1 10 1152 864 Medium Fish Water 2 12 04 -20644 137 132060 1 10 1200 1200 Medium Fish Water 2 12 04 -20645 138 133151 1 10 624 624 Large Fish Water 2 12 04 -20646 138 133024 1 10 960 480 Large Fish Water 3 12 04 -20647 141 1823441 1 10 768 768 Medium Fish Water 2 12 04 -20648 168 19298694 1 10 768 768 Small Plant Fire 3 12 21 -20649 162 648023 1 10 1540 2112 Small Plant Fire 1 12 04 -20650 164 658607 1 10 1540 2112 Small Plant Wind 1 12 04 -20651 165 662911 1 10 1540 2112 Small Plant Water 1 12 04 -20652 165 665510 1 10 1540 2112 Small Plant Poison 1 12 04 -20653 166 668381 1 10 1540 2112 Small Plant Earth 1 12 04 -20654 132 158478 1 10 1540 2112 Small Plant Fire 1 12 04 -20655 134 162599 1 10 1540 2112 Small Plant Wind 1 12 04 -20656 135 163655 1 10 1540 720 Small Plant Water 1 12 04 -20657 135 165308 1 10 1540 2112 Small Plant Poison 1 12 04 -20658 136 165105 1 10 1540 720 Small Plant Earth 1 12 04 -20659 138 7221377 1 10 768 768 Small Plant Fire 3 12 21 -20660 132 158478 1 10 1540 2112 Small Plant Fire 1 12 04 -20661 134 162599 1 10 1540 2112 Small Plant Wind 1 12 04 -20662 135 163655 1 10 1540 2112 Small Plant Water 1 12 04 -20663 135 165308 1 10 1540 2112 Small Plant Poison 1 12 04 -20664 136 165105 1 10 1540 2112 Small Plant Earth 1 12 04 -20665 136 239037 1 10 1344 1344 Medium Brute Poison 2 12 04 -20666 186 2390934 1 10 1344 1344 Medium Brute Poison 2 12 04 -20667 145 7375012 1 10 1136 720 Large Plant Dark 2 12 21 -20668 195 74730723 1 10 1136 720 Large Plant Dark 2 12 21 -20669 138 240713 1 10 1152 1152 Medium Insect Dark 2 12 04 -20670 188 2409593 1 10 1152 1152 Medium Insect Dark 2 12 04 -20671 139 240372 1 10 1152 1152 Medium Insect Fire 2 12 04 -20672 190 3656403 1 10 1152 1152 Medium Insect Fire 2 12 04 -20673 150 10000 1 7 1 1 Medium Insect Fire 2 12 06 -20674 137 237484 1 10 1152 1152 Medium Insect Water 2 12 01 -20675 187 2405191 1 10 1152 1152 Medium Insect Water 2 12 01 -20676 150 10000 1 7 1 1 Medium Insect Water 2 12 06 -20677 140 360702 2 10 1440 1440 Medium Demihuman Water 2 12 04 -20678 190 3656403 2 10 1440 1440 Medium Demihuman Fire 2 12 04 -20679 130 20 1 10 1 1 Large Formless Neutral 3 12 06 -20680 130 180367 1 10 864 1268 Medium Demihuman Neutral 2 12 04 -20681 130 180367 1 10 864 1268 Medium Demihuman Neutral 2 12 04 -20682 176 1208485 1 10 864 1268 Medium Demihuman Dark 2 12 04 -20683 141 250264 1 10 576 576 Large Insect Earth 2 12 04 -20684 144 256849 1 10 912 1824 Medium Formless Neutral 3 12 04 -20685 142 290128 1 10 768 1536 Large Demon Dark 2 12 04 -20686 140 285388 1 10 522 1044 Small Brute Poison 1 12 04 -20687 141 287897 1 10 1672 720 Medium Formless Poison 2 12 04 -20688 143 295508 5 10 384 384 Medium Demihuman Ghost 1 12 05 -20689 145 299350 1 10 1768 768 Medium Demihuman Ghost 1 12 04 -20690 144 291046 2 10 912 1248 Medium Formless Ghost 2 12 04 -20691 192 2946697 2 10 1280 1080 Large Demon Poison 3 12 04 -20692 194 2979073 1 10 576 1152 Medium Demihuman Holy 2 12 04 -20693 193 2961272 1 10 912 1248 Medium Formless Ghost 3 12 04 -20694 193 2960243 1 10 912 1248 Medium Formless Ghost 3 12 04 -20696 130 130 1 10 1152 1344 Small Formless Neutral 1 12 01 -20697 180 180 1 10 1152 1344 Small Formless Neutral 1 12 01 -20698 137 238512 1 10 480 960 Medium Formless Neutral 2 12 04 -20699 143 295508 5 10 384 384 Medium Demihuman Ghost 1 12 04 -20700 135 234017 1 10 960 960 Small Formless Fire 2 12 04 -20801 147 336823 1 10 550 1056 Medium Fish Water 3 12 04 -20802 149 340238 1 10 936 1155 Medium Fish Water 2 12 04 -20803 150 348355 1 10 480 970 Medium Fish Water 4 12 04 -20804 149 335141 1 10 1070 1512 Small Fish Water 2 12 04 -20805 148 337534 1 10 708 1225 Medium Demihuman Water 3 12 04 -20806 199 2875143 1 10 168 965 Medium Fish Wind 3 12 04 -20807 199 2997411 1 10 335 1250 Large Fish Water 3 12 04 -20808 201 2967419 1 10 276 672 Large Fish Water 3 12 04 -20809 199 2897158 1 10 168 1154 Medium Fish Water 2 12 04 -20810 205 3115698 1 10 480 960 Large Fish Water 3 12 04 -20811 204 81289587 3 10 422 870 Large Fish Water 4 12 21 -20834 200 1 3 10 432 864 Medium Formless Neutral 1 12 Abr_Offensive -20835 200 1 5 8 384 768 Medium Formless Neutral 1 12 Abr_Offensive -20836 200 1 5 5 504 1008 Small Formless Neutral 1 9 Abr_Passive -20837 200 1 5 8 864 1728 Large Formless Neutral 1 12 Abr_Offensive -20843 205 78368745 3 10 360 1250 Large Demon Dark 3 12 21 -20846 170 100000 1 10 432 288 Small Demon Neutral 1 12 27 -20847 170 100000 1 10 1 1 Small Formless Neutral 1 12 06 -20848 200 1 3 10 480 960 Medium Plant Earth 4 12 24 -20849 200 1 5 8 576 1152 Small Plant Earth 4 12 24 -20850 200 1 5 8 420 840 Small Plant Earth 4 12 24 -20851 200 1 5 8 540 1080 Large Plant Neutral 4 12 24 -20920 243 33910920 2 10 691 1152 Small Formless Fire 3 12 04 -20921 244 36820210 2 10 576 1152 Medium Brute Water 3 12 04 -20922 244 30324840 2 10 576 1152 Medium Plant Wind 3 12 04 -20923 244 35885800 2 10 480 960 Medium Demihuman Earth 3 12 04 -20924 227 27974600 2 10 480 960 Medium Brute Earth 3 12 04 -20925 228 23160350 2 10 540 1080 Medium Demihuman Wind 3 12 04 -20926 229 23252650 2 10 900 1800 Medium Brute Fire 3 12 04 -20927 230 25505670 2 10 1536 3072 Small Formless Water 3 12 04 -20928 245 275042400 2 10 1440 2880 Large Formless Neutral 3 12 21 -20929 213 12405430 1 10 924 1848 Large Formless Neutral 2 12 04 -20930 214 11763310 1 10 674 1248 Medium Demihuman Poison 3 12 04 -20931 215 13189560 2 10 1332 2664 Large Dragon Neutral 2 12 04 -20932 214 12435400 1 10 576 1152 Medium Demihuman Dark 2 12 04 -20933 213 11790680 1 10 768 1536 Medium Brute Poison 3 12 04 -20934 215 134179630 1 10 672 1344 Large Brute Dark 2 12 21 -20935 215 11785610 2 10 238 576 Medium Formless Neutral 1 12 04 -20936 254 42030800 2 10 384 768 Medium Demon Undead 2 12 04 -20937 214 13909270 2 10 336 672 Large Demihuman Neutral 2 12 04 -20938 213 12735150 1 10 624 1248 Small Undead Undead 1 12 04 -20939 213 12840680 2 10 480 960 Small Undead Undead 2 12 04 -20940 255 46338500 2 10 510 1020 Large Demon Water 3 12 04 -20941 253 47842600 1 10 792 1584 Large Demon Earth 2 12 04 -20942 255 38506310 1 10 768 1536 Medium Demon Dark 2 12 04 -20943 255 398856250 3 10 517 1134 Medium Demihuman Dark 2 12 21 -21064 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 -21065 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 -21066 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 -21067 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 -21068 100 2000000000 0 0 0 0 Medium Dragon Neutral 1 0 06 -21069 100 2000000000 0 0 0 0 Medium Brute Neutral 1 0 06 -21070 100 2000000000 0 0 0 0 Medium Demihuman Neutral 1 0 06 -21071 100 2000000000 0 0 0 0 Medium Insect Neutral 1 0 06 -21072 100 2000000000 0 0 0 0 Medium Fish Neutral 1 0 06 -21073 100 2000000000 0 0 0 0 Medium Demon Neutral 1 0 06 -21074 100 2000000000 0 0 0 0 Medium Plant Neutral 1 0 06 -21075 100 2000000000 0 0 0 0 Medium Angel Neutral 1 0 06 -21076 100 2000000000 0 0 0 0 Medium Undead Neutral 1 0 06 -21077 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 -21078 100 2000000000 0 0 0 0 Medium Formless Water 1 0 06 -21079 100 2000000000 0 0 0 0 Medium Formless Earth 1 0 06 -21080 100 2000000000 0 0 0 0 Medium Formless Fire 1 0 06 -21081 100 2000000000 0 0 0 0 Medium Formless Wind 1 0 06 -21082 100 2000000000 0 0 0 0 Medium Formless Poison 1 0 06 -21083 100 2000000000 0 0 0 0 Medium Formless Holy 1 0 06 -21084 100 2000000000 0 0 0 0 Medium Formless Dark 1 0 06 -21085 100 2000000000 0 0 0 0 Medium Formless Ghost 1 0 06 -21086 100 2000000000 0 0 0 0 Medium Formless Undead 1 0 06 -21292 180 50000000 1 10 432 432 Small Formless Neutral 1 12 04 -21293 180 50000000 1 10 252 504 Medium Formless Neutral 1 12 04 -21294 180 50000000 1 10 432 432 Medium Formless Neutral 1 12 04 -21295 179 1530687 1 10 1008 1008 Medium Brute Fire 2 12 04 -21296 177 1514469 1 10 432 864 Medium Plant Earth 2 12 10 -21297 181 2313388 1 10 936 1872 Small Formless Fire 2 12 04 -21298 212 4925041 1 10 571 1152 Medium Brute Neutral 1 12 04 -21299 185 2361429 1 10 792 1584 Small Formless Fire 3 12 02 -21300 211 4902338 1 10 504 1008 Medium Brute Fire 3 12 04 -21301 212 98158095 3 10 420 840 Large Brute Fire 4 12 21 -21302 185 2361429 1 10 760 1080 Small Insect Dark 4 12 04 -21303 185 2364513 1 10 1152 1152 Small Formless Neutral 2 12 02 -21304 187 2399581 1 10 576 576 Medium Brute Neutral 2 12 04 -21305 185 2361738 1 10 506 1008 Small Plant Poison 2 12 07 -21306 188 2407556 1 10 720 720 Medium Brute Fire 2 12 04 -21307 186 2383494 1 10 792 792 Medium Brute Ghost 2 12 04 -21308 178 1522432 1 10 864 864 Medium Demihuman Neutral 1 12 04 -21309 179 1851144 1 10 648 648 Medium Demihuman Neutral 2 12 04 -21310 179 1831096 1 10 648 648 Medium Demihuman Neutral 2 12 04 -21311 182 2325107 1 10 648 648 Medium Demihuman Neutral 2 12 04 -21312 184 2356331 1 10 864 432 Medium Demihuman Neutral 2 12 04 -21313 185 2368675 1 10 576 288 Large Demihuman Neutral 2 12 04 -21314 185 23586543 3 10 720 1440 Medium Demon Ghost 2 12 21 -21315 186 23834938 3 10 736 1104 Medium Angel Holy 2 12 21 -21316 185 2000000000 3 10 720 1440 Medium Demon Ghost 2 12 21 -21317 185 2000000000 3 10 736 1104 Medium Angel Holy 2 12 21 -21318 170 5000000 1 10 576 1152 Medium Demihuman Holy 2 12 04 -21319 170 5000000 9 10 864 432 Medium Demihuman Neutral 2 12 05 -21320 185 3000000 1 0 0 0 Small Formless Neutral 1 0 21 -21321 185 3000000 1 0 0 0 Small Formless Neutral 1 0 21 -21322 185 10 1 0 0 0 Small Formless Neutral 1 0 21 -21323 168 962975 1 10 540 1080 Medium Brute Neutral 2 12 04 -21324 165 944679 1 10 1600 900 Small Brute Neutral 1 12 04 -21360 224 2000000000 3 10 720 1440 Medium Demon Ghost 2 12 21 -21361 224 2000000000 3 10 736 1104 Medium Angel Holy 2 12 21 -21377 210 5000000 1 10 576 1152 Medium Demihuman Holy 2 12 04 -21378 210 5000000 9 10 864 432 Medium Demihuman Neutral 2 12 05 -21386 167 839882 1 10 1288 288 Small Insect Earth 3 12 21 -21387 169 943547 1 10 1288 648 Medium Insect Earth 4 12 21 -21388 164 819978 1 10 1000 792 Small Insect Earth 2 12 21 -21389 167 819978 1 10 1288 288 Small Insect Earth 3 12 21 -21390 167 825541 1 10 1288 288 Small Insect Earth 3 12 21 -21391 164 659810 0 0 0 0 Small Formless Neutral 2 0 06 -21392 168 864988 1 10 1848 1296 Small Demon Dark 3 12 21 -21393 166 761002 1 10 1276 576 Small Brute Dark 2 12 21 -21394 169 879511 3 10 1768 768 Small Insect Poison 4 12 21 -21395 175 24512365 1 10 864 1000 Large Insect Neutral 4 12 21 -21866 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 -21867 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 -21868 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 -21869 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 -21887 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 -22177 1 1 0 0 0 0 Small Formless Neutral 1 0 06 -22178 1 1 0 0 0 0 Small Formless Neutral 1 0 06 -22179 1 1 0 0 0 0 Small Formless Neutral 1 0 06 -22180 1 1 0 0 0 0 Small Formless Neutral 1 0 06 -22192 262 21176032 1 10 224 672 Small Formless Wind 2 12 21 -22193 263 21721220 1 10 256 768 Medium Formless Wind 3 12 21 -22194 264 22277336 1 10 288 864 Large Formless Wind 4 12 21 -22195 264 37875440 1 10 288 864 Large Formless Wind 4 12 21 -22196 262 23988560 1 10 448 1344 Small Formless Water 2 12 21 -22197 263 24572252 7 10 320 960 Medium Formless Water 3 12 21 -22198 264 25531520 7 10 224 672 Large Formless Water 4 12 21 -22199 264 39995472 7 10 224 672 Large Formless Water 4 12 21 -22200 262 21175556 1 10 288 864 Small Formless Wind 2 12 21 -22201 263 21719556 1 10 256 768 Medium Formless Wind 3 12 21 -22202 264 22275936 2 10 256 768 Large Formless Wind 4 12 21 -22203 264 37839992 2 10 256 768 Large Formless Wind 4 12 21 -22204 262 24265740 7 10 320 960 Small Formless Water 2 12 21 -22205 263 24555120 2 10 448 1344 Medium Formless Water 3 12 21 -22206 264 25183728 2 10 512 1536 Large Formless Water 4 12 21 -22207 264 40183012 2 10 512 1536 Large Formless Water 4 12 21 -22208 263 24014584 1 10 224 672 Small Formless Neutral 2 12 21 -22209 264 25391720 1 10 256 768 Medium Formless Neutral 3 12 21 -22210 265 26039004 1 10 288 864 Large Formless Neutral 4 12 21 -22211 265 49912004 1 10 288 864 Large Formless Neutral 4 12 21 -22212 263 23932040 1 10 448 1344 Small Formless Neutral 2 12 21 -22213 264 25295720 2 10 320 960 Medium Formless Neutral 3 12 21 -22214 265 25601332 7 10 224 672 Large Formless Neutral 4 12 21 -22215 265 48817296 7 10 224 672 Large Formless Neutral 4 12 21 -22216 262 20815920 7 12 320 960 Small Formless Fire 2 12 21 -22217 263 21634616 2 10 448 1344 Medium Formless Fire 3 12 21 -22218 264 22203156 7 10 512 1536 Large Formless Fire 4 12 21 -22219 264 37234928 7 10 512 1536 Large Formless Fire 4 12 21 -22220 262 22810476 1 10 288 864 Small Formless Earth 2 12 21 -22221 263 23889444 1 10 256 768 Medium Formless Earth 3 12 21 -22222 264 24499424 2 10 256 768 Large Formless Earth 4 12 21 -22223 264 40955240 2 10 256 768 Large Formless Earth 4 12 21 -22224 262 20818044 1 10 448 1344 Small Formless Fire 2 12 21 -22225 263 21678280 1 10 320 960 Medium Formless Fire 3 12 21 -22226 264 22163556 7 10 224 672 Large Formless Fire 4 12 21 -22227 264 37686044 7 10 224 672 Large Formless Fire 4 12 21 -22228 262 23058768 1 10 224 672 Small Formless Earth 2 12 21 -22229 263 23889840 1 10 256 768 Medium Formless Earth 3 12 21 -22230 264 24501384 1 10 288 864 Large Formless Earth 4 12 21 -22231 264 41655832 1 10 288 864 Large Formless Earth 4 12 21 -22232 263 24400816 7 10 320 960 Small Formless Neutral 2 12 21 -22233 264 25363720 2 10 448 1344 Medium Formless Neutral 3 12 21 -22234 265 25758488 7 10 512 1536 Large Formless Neutral 4 12 21 -22235 265 48794736 7 10 512 1536 Large Formless Neutral 4 12 21 -22236 263 23959260 1 10 288 864 Small Formless Neutral 2 12 21 -22237 264 25155968 1 10 256 768 Medium Formless Neutral 3 12 21 -22238 265 26007004 2 10 256 768 Large Formless Neutral 4 12 21 -22239 265 49852100 2 10 256 768 Large Formless Neutral 4 12 21 +ID Level Hp AttackRange SkillRange AttackDelay AttackMotion Size Race Element ElementLevel ChaseRange Ai Name +1001 16 136 1 10 1564 864 Small Insect Fire 1 12 01 Scorpion +1002 1 55 1 10 1872 672 Medium Plant Water 1 12 02 Poring +1004 11 85 1 10 1292 792 Small Insect Wind 1 12 01 Hornet +1005 24 330 1 10 1276 576 Small Brute Dark 1 12 01 Familiar +1007 6 59 1 10 1672 672 Small Insect Earth 1 12 01 Fabre +1008 4 51 1 10 1001 1 Small Insect Earth 1 12 06 Pupa +1009 12 105 1 10 1148 648 Medium Brute Wind 1 12 01 Condor +1010 8 78 1 10 1672 672 Medium Plant Earth 1 12 01 Willow +1011 5 48 1 10 1076 576 Small Insect Wind 1 12 01 Chonchon +1012 13 140 1 10 2016 816 Medium Fish Water 1 12 01 Roda Frog +1013 45 1091 1 10 1054 504 Medium Brute Earth 1 12 03 Wolf +1014 18 223 1 10 1872 672 Medium Plant Water 1 12 01 Spore +1015 17 204 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +1016 50 1458 9 10 2864 864 Medium Undead Undead 1 12 05 Archer Skeleton +1018 23 247 1 10 1136 720 Small Insect Wind 1 12 01 Creamy +1019 25 354 1 10 1564 864 Large Brute Fire 1 12 03 Peco Peco +1020 13 140 4 10 1768 768 Medium Plant Earth 3 12 10 Mandragora +1023 44 1047 1 10 1864 864 Medium Demihuman Earth 1 12 04 Orc Warrior +1024 17 186 1 10 1048 48 Medium Plant Earth 1 12 17 Wormtail +1025 18 203 1 10 1576 576 Medium Brute Earth 1 12 01 Boa +1026 58 2002 1 10 2468 768 Medium Undead Undead 1 12 04 Munak +1028 34 691 1 10 2276 576 Medium Undead Undead 1 12 04 Soldier Skeleton +1029 59 2252 1 10 1384 768 Large Demon Dark 1 12 19 Isis +1030 100 9233 1 10 1576 576 Medium Brute Poison 1 12 17 Anacondaq +1031 30 489 1 10 1672 672 Medium Plant Poison 1 12 02 Poporing +1032 52 1642 1 10 2468 768 Medium Undead Undead 1 12 02 Verit +1033 34 535 1 10 1372 672 Medium Plant Fire 2 12 19 Elder Willow +1034 40 975 1 10 2016 816 Medium Fish Water 2 12 01 Thara Frog +1035 63 1902 1 10 676 576 Small Insect Wind 2 12 04 Hunter Fly +1036 61 2429 1 10 2456 912 Medium Undead Undead 2 12 04 Ghoul +1037 70 2698 1 10 1576 576 Medium Brute Poison 1 12 19 Side Winder +1038 68 1175840 1 10 1072 672 Medium Undead Undead 4 12 21 Osiris +1039 81 668000 2 10 768 768 Large Demon Dark 3 12 21 Baphomet +1040 61 2324 1 10 1608 816 Large Formless Neutral 3 12 17 Golem +1041 55 1899 1 10 1772 72 Medium Undead Undead 2 12 04 Mummy +1042 48 985 1 10 1076 576 Small Insect Wind 1 12 07 Steel Chonchon +1044 53 1776 1 10 1872 672 Medium Fish Water 2 12 19 Obeaune +1045 56 1963 1 10 1272 72 Medium Fish Water 2 12 04 Marc +1046 77 380000 1 10 480 480 Medium Demon Dark 3 12 21 Doppelganger +1047 7 70 0 10 1001 1 Small Formless Neutral 3 12 06 Peco Peco Egg +1048 20 290 0 10 701 1 Small Insect Dark 1 12 06 Thief Bug Egg +1049 9 70 1 10 988 288 Small Brute Fire 1 12 01 Picky +1050 10 77 1 10 988 288 Small Brute Fire 1 12 01 Picky +1051 21 238 1 10 1288 288 Small Insect Neutral 3 12 02 Thief Bug +1052 15 155 1 10 1864 864 Medium Insect Earth 1 12 01 Rocker +1053 28 475 1 10 988 288 Medium Insect Dark 1 12 07 Thief Bug Female +1054 30 537 1 10 988 288 Medium Insect Dark 1 12 13 Thief Bug Male +1055 23 337 1 10 1960 960 Large Plant Earth 1 12 01 Muka +1056 29 414 1 10 1576 576 Small Brute Earth 1 12 17 Smokie +1057 38 694 1 10 1054 54 Small Brute Earth 1 12 07 Yoyo +1058 55 1487 1 10 1708 1008 Medium Insect Fire 1 12 07 Metaller +1059 78 378000 1 10 1148 648 Small Insect Wind 4 12 21 Mistress +1060 29 506 1 10 1260 192 Large Brute Earth 1 12 17 Bigfoot +1061 69 2366 1 10 1816 816 Large Demon Ghost 3 12 20 Nightmare +1062 3 69 1 10 1672 672 Medium Plant Holy 1 12 01 Santa Poring +1063 3 48 1 10 1456 456 Small Brute Neutral 3 12 01 Lunatic +1064 46 1249 1 10 2492 792 Medium Undead Undead 1 12 01 Megalodon +1065 61 2746 1 10 1872 672 Large Fish Water 3 12 04 Strouf +1066 45 1091 1 10 1632 432 Small Fish Water 1 12 17 Vadon +1067 48 1229 1 10 1248 48 Small Fish Water 1 12 17 Cornutus +1068 34 661 7 10 800 432 Small Plant Water 2 12 10 Hydra +1069 57 2203 1 10 1968 768 Large Fish Water 2 12 04 Swordfish +1070 42 962 1 10 1776 576 Small Fish Water 1 12 02 Kukre +1071 48 1351 1 10 1754 554 Medium Undead Undead 1 12 04 Pirate Skeleton +1072 98 7229 1 10 1700 1000 Medium Demon Fire 4 12 04 Kaho +1073 43 1004 1 7 992 792 Small Fish Water 1 12 01 Crab +1074 50 1326 1 10 864 864 Small Fish Water 1 12 17 Shellfish +1076 27 445 1 10 2228 528 Medium Undead Undead 1 12 17 Skeleton +1077 26 379 1 10 1672 672 Medium Plant Poison 1 12 04 Poison Spore +1078 1 5 1 7 1 1 Small Plant Earth 1 12 06 Red Plant +1079 1 10 1 7 1 1 Small Plant Earth 1 12 06 Blue Plant +1080 1 5 1 7 1 1 Small Plant Earth 1 12 06 Green Plant +1081 1 6 1 7 1 1 Small Plant Earth 1 12 06 Yellow Plant +1082 1 7 1 7 1 1 Small Plant Earth 1 12 06 White Plant +1083 1 20 1 7 1 1 Small Plant Holy 1 12 06 Shining Plant +1084 1 5 1 7 1 1 Small Plant Earth 1 12 06 Black Mushroom +1085 1 5 1 7 1 1 Small Plant Earth 1 12 06 Red Mushroom +1086 65 222750 1 10 768 768 Large Insect Fire 2 12 07 Golden Thief Bug +1087 50 362000 1 10 1678 780 Large Demihuman Earth 2 12 21 Orc Hero +1088 18 3317 1 10 1080 648 Medium Insect Earth 1 12 21 Vocal +1089 27 660 1 10 1236 336 Medium Fish Water 1 12 21 Toad +1090 42 1260 1 10 1072 672 Medium Plant Water 1 12 21 Mastering +1091 47 1035 1 10 1076 576 Small Insect Wind 1 12 21 Dragon Fly +1092 93 8203 1 10 1048 648 Medium Brute Earth 1 12 21 Vagabond Wolf +1093 31 625 1 10 1456 456 Medium Brute Neutral 3 12 21 Eclipse +1094 19 265 1 10 2048 648 Large Insect Water 1 12 17 Ambernite +1095 33 537 1 10 1288 288 Small Insect Earth 1 12 01 Andre +1096 77 19800 1 10 1072 672 Medium Angel Holy 4 12 21 Angeling +1097 28 469 0 10 1001 1 Small Formless Neutral 3 12 06 Ant Egg +1098 105 38826 1 10 1250 720 Large Demihuman Undead 2 12 21 Anubis +1099 75 3570 1 10 1792 792 Large Insect Poison 1 12 21 Argiope +1100 47 1300 1 10 1468 468 Large Insect Poison 1 12 19 Argos +1101 57 1763 1 10 868 480 Small Demon Dark 1 12 21 Baphomet Jr. +1102 86 6040 1 10 1504 840 Medium Demihuman Dark 1 12 21 Bathory +1103 25 319 1 10 1604 840 Small Brute Earth 1 12 17 Caramel +1104 38 694 1 10 1864 864 Small Brute Earth 1 12 17 Coco +1105 31 480 1 10 1288 288 Small Insect Earth 1 12 01 Deniro +1106 103 10244 1 10 1120 420 Medium Brute Fire 1 12 13 Desert Wolf +1107 14 113 1 10 1600 900 Small Brute Fire 1 12 01 Baby Desert Wolf +1108 60 2324 1 10 1680 480 Medium Fish Water 4 12 17 Deviace +1109 93 7165 1 10 980 600 Small Demon Dark 1 12 21 Deviruchi +1110 68 2561 1 10 1156 456 Small Demon Dark 1 12 17 Dokebi +1111 47 1182 1 10 1276 576 Small Brute Dark 2 12 19 Drainliar +1112 91 804500 1 10 620 420 Medium Undead Undead 1 12 21 Drake +1113 2 46 1 10 1372 672 Medium Plant Fire 1 12 02 Drops +1114 62 1849 1 10 1004 504 Small Insect Wind 2 12 17 Dustiness +1115 65 947500 1 10 872 1344 Large Brute Fire 1 12 21 Eddga +1116 53 1236 1 10 1816 816 Medium Formless Ghost 2 12 17 Eggyra +1117 80 4720 1 10 2276 576 Large Undead Undead 4 12 21 Evil Druid +1118 59 2065 3 10 1432 432 Large Plant Earth 1 12 10 Flora +1119 57 1587 1 10 1540 720 Medium Brute Fire 1 12 04 Frilldora +1120 90 26700 1 10 1220 1080 Medium Demon Ghost 4 12 21 Ghostring +1121 42 866 1 10 1848 1296 Small Demon Earth 1 12 17 Giearth +1122 48 1107 1 10 1120 620 Medium Demihuman Wind 1 12 21 Goblin +1123 44 943 1 10 1320 620 Medium Demihuman Fire 1 12 19 Goblin +1124 44 1047 1 10 1624 624 Medium Demihuman Poison 1 12 13 Goblin +1125 49 1277 1 10 1624 624 Medium Demihuman Earth 1 12 13 Goblin +1126 56 1877 1 10 3074 1874 Medium Demihuman Water 1 12 13 Goblin +1127 63 2347 1 10 1480 480 Medium Brute Earth 2 12 01 Hode +1128 32 564 1 10 1528 528 Medium Insect Earth 1 12 17 Horn +1129 66 1701 1 10 1888 1152 Small Formless Fire 4 12 13 Horong +1130 63 1901 1 10 1180 480 Medium Formless Fire 2 12 21 Jakk +1131 90 6425 1 10 1364 864 Large Demihuman Wind 4 12 21 Joker +1132 118 27456 1 10 528 1000 Large Undead Undead 1 12 21 Khalitzburg +1133 107 13522 1 10 1028 528 Medium Demihuman Wind 2 12 13 Kobold +1134 102 11280 1 10 1528 528 Medium Demihuman Poison 2 12 13 Kobold +1135 101 9503 1 10 1228 528 Medium Demihuman Fire 2 12 13 Kobold +1136 31 10 1 10 1528 528 Medium Demihuman Poison 2 12 13 Kobold +1137 31 10 1 10 1228 528 Medium Demihuman Fire 2 12 13 Kobold +1138 53 1545 1 10 1054 504 Small Demon Water 1 12 02 Magnolia +1139 65 2363 1 10 1528 660 Medium Insect Earth 1 12 19 Mantis +1140 73 3099 1 10 1540 840 Large Demihuman Fire 1 12 19 Marduk +1141 42 1010 1 10 2280 1080 Small Plant Water 2 12 01 Marina +1142 51 1831 1 10 1201 1 Small Plant Water 2 12 06 Marine Sphere +1143 90 4089 1 10 1480 480 Small Demon Ghost 3 12 19 Marionette +1144 47 1241 1 10 1956 756 Small Fish Water 2 12 17 Marse +1145 39 769 1 10 1480 480 Small Brute Earth 2 12 01 Martin +1146 58 2002 1 10 432 432 Medium Brute Dark 1 12 19 Matyr +1147 55 380000 1 10 864 1000 Large Insect Earth 4 12 21 Maya +1148 102 11280 1 10 1720 1320 Medium Demon Neutral 2 12 21 Medusa +1149 58 1729 1 10 1360 960 Large Brute Fire 2 12 19 Minorous +1150 79 324000 1 10 1276 576 Medium Demon Fire 3 12 21 Moonlight Flower +1151 49 1404 1 10 1576 576 Large Formless Poison 1 12 21 Myst +1152 53 1699 1 10 2420 720 Medium Undead Undead 1 12 04 Orc Skeleton +1153 51 1586 1 10 2852 1152 Medium Undead Undead 1 12 04 Orc Zombie +1154 79 3020 1 10 976 576 Medium Demihuman Fire 2 12 19 Pasana +1155 86 5491 1 10 2468 768 Medium Dragon Earth 1 12 19 Petite +1156 79 3197 1 10 1872 672 Medium Dragon Wind 1 12 19 Petite +1157 85 900000 1 10 868 768 Large Demihuman Dark 3 12 21 Pharaoh +1158 52 1716 1 10 2544 1344 Medium Fish Water 2 12 17 Phen +1159 71 300000 1 10 1020 1020 Large Brute Neutral 3 12 21 Phreeoni +1160 32 508 1 10 1288 288 Small Insect Earth 1 12 01 Piere +1161 40 933 1 10 2208 1008 Small Plant Water 3 12 01 Plankton +1162 86 4942 3 10 512 528 Small Plant Earth 1 12 05 Rafflesia +1163 115 21981 1 10 824 780 Large Demihuman Dark 2 12 19 Raydric +1164 71 3251 1 10 1516 816 Medium Demihuman Dark 1 12 04 Requiem +1165 61 2324 1 10 1672 720 Medium Formless Earth 3 12 04 Sandman +1166 59 2158 1 10 1960 960 Large Brute Earth 2 12 17 Savage +1167 14 127 1 10 1624 624 Small Brute Earth 1 12 01 Savage Babe +1169 44 1151 1 10 2420 720 Medium Undead Undead 1 12 04 Skeleton Worker +1170 64 2528 1 10 2112 912 Medium Demon Water 1 12 17 Sohee +1174 21 212 1 10 1688 1188 Small Insect Wind 1 12 17 Stainer +1175 22 285 1 10 1744 1044 Small Brute Dark 1 12 17 Tarou +1176 35 597 1 10 1768 768 Small Insect Earth 1 12 17 Vitata +1177 54 1757 1 10 1180 480 Medium Demihuman Dark 1 12 02 Zenorc +1178 70 2429 1 10 1780 1080 Medium Demihuman Fire 1 12 04 Zerom +1179 46 796 1 10 1960 960 Small Demon Ghost 3 12 19 Whisper +1180 72 2422 1 10 840 540 Medium Brute Fire 3 12 21 Nine Tail +1182 1 15 1 7 1 1 Small Plant Earth 1 12 06 Thief Mushroom +1183 5 63 1 10 1076 576 Small Insect Wind 1 12 04 Chonchon +1184 1 30 1 10 1672 672 Small Insect Earth 1 12 04 Fabre +1185 34 1796 1 10 1960 960 Small Undead Ghost 1 12 06 Whisper +1186 66 2570 1 10 2536 1536 Small Demon Ghost 2 12 21 Giant Whisper +1188 59 2065 1 10 1720 500 Medium Undead Undead 1 12 19 Bongun +1189 78 3474 9 10 1960 620 Medium Demihuman Earth 1 12 19 Orc Archer +1190 55 552000 1 10 1248 500 Large Demihuman Earth 4 12 21 Orc Lord +1191 56 1707 1 10 972 500 Medium Formless Neutral 3 12 19 Mimic +1192 77 4415 1 10 1816 576 Large Undead Undead 4 12 21 Wraith +1193 88 5664 1 10 1020 500 Medium Formless Neutral 3 12 21 Alarm +1194 107 14944 1 10 960 500 Medium Insect Earth 2 12 19 Arclouze +1195 74 2855 1 10 864 500 Small Formless Neutral 3 12 21 Rideword +1196 91 8378 1 10 1848 500 Medium Undead Undead 3 12 13 Skeleton Prisoner +1197 89 6902 1 10 1768 500 Medium Undead Undead 3 12 13 Zombie Prisoner +1198 98 10843 2 10 864 1252 Medium Demon Undead 4 12 13 Dark Priest +1199 82 3498 1 10 1500 500 Small Plant Wind 1 12 19 Punk +1200 105 61350 1 10 800 2112 Medium Demihuman Neutral 3 12 13 Zealotus +1201 98 9939 1 10 1790 1440 Large Demon Neutral 2 12 13 Rybio +1202 102 12408 2 10 1744 1344 Large Demihuman Neutral 2 12 13 Phendark +1203 130 70000 2 10 1152 500 Large Formless Dark 4 12 21 Mysteltainn +1204 114 59000 1 10 816 500 Medium Formless Dark 3 12 21 Ogretooth +1205 101 40200 2 10 768 500 Large Formless Dark 2 12 21 Executioner +1206 109 16615 1 10 900 500 Medium Fish Water 2 12 21 Anolian +1207 104 12633 1 10 528 500 Medium Formless Earth 3 12 21 Sting +1208 120 20806 2 10 672 500 Medium Demon Wind 1 12 21 Wanderer +1209 82 3935 1 10 1000 500 Small Brute Poison 2 12 19 Cramp +1211 71 2366 1 10 1500 500 Small Insect Fire 1 12 19 Brilight +1212 47 4221 1 10 1500 500 Medium Insect Neutral 3 12 19 Iron Fist +1213 81 4077 1 10 1500 500 Large Demihuman Fire 2 12 21 High Orc +1214 48 985 1 10 1028 528 Small Brute Fire 1 12 19 Choco +1215 84 4084 1 10 1956 756 Medium Plant Wind 1 12 19 Stem Worm +1216 85 4621 7 10 832 500 Medium Fish Poison 1 12 21 Penomena +1219 122 34686 1 10 1500 500 Large Demihuman Dark 4 12 21 Abysmal Knight +1220 103 9447 1 10 1120 420 Medium Brute Fire 1 12 21 Desert Wolf +1221 26 2092 1 10 1960 960 Large Brute Earth 2 12 21 Savage +1229 2 63 1 10 1672 672 Small Insect Earth 1 12 01 Fabre +1230 2 427 0 10 1001 1 Small Insect Earth 1 12 06 Pupa +1231 16 595 1 10 1220 720 Small Insect Wind 1 12 01 Creamy +1232 3 420 0 10 1001 1 Small Formless Neutral 3 12 06 Peco Peco Egg +1234 19 879 1 10 1054 54 Small Brute Earth 1 12 07 Yoyo +1235 24 1400 1 10 1864 864 Medium Demihuman Earth 1 12 13 Smoking Orc +1236 4 420 0 10 1001 1 Small Formless Neutral 3 12 06 Ant Egg +1237 17 688 1 10 1288 288 Small Insect Earth 1 12 07 Andre +1238 18 733 1 10 1288 288 Small Insect Earth 1 12 07 Piere +1239 19 760 1 10 1288 288 Small Insect Earth 1 12 07 Deniro +1240 3 80 1 10 988 288 Small Brute Fire 1 12 01 Picky +1241 4 83 1 10 988 288 Small Brute Fire 1 12 01 Picky +1242 37 844 1 10 1872 672 Medium Plant Water 2 12 02 Marin +1243 72 3329 1 10 1260 192 Large Brute Neutral 3 12 21 Sasquatch +1244 63 2054 1 10 1180 480 Medium Formless Fire 2 12 01 Christmas Jakk +1245 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 01 Christmas Goblin +1246 37 661 1 10 1248 1248 Small Demihuman Holy 2 12 03 Christmas Cookie +1247 10 10 1 10 720 720 Medium Demihuman Holy 3 12 01 Antonio +1248 41 921 7 10 1296 1296 Medium Formless Neutral 3 12 05 Cruiser +1249 39 809 1 10 1248 1248 Medium Formless Neutral 3 12 17 Myst Case +1250 42 4950 1 10 672 672 Medium Demihuman Fire 1 12 21 Chepet +1251 92 630500 2 10 468 468 Large Formless Wind 4 12 21 Stormy Knight +1252 98 1275500 3 10 608 408 Large Brute Water 4 12 21 Hatii +1253 100 9233 9 10 1020 720 Medium Demon Wind 3 12 05 Gargoyle +1254 48 985 1 10 1000 900 Small Brute Wind 1 12 21 Raggler +1255 98 8133 1 10 776 576 Small Brute Earth 1 12 21 Nereid +1256 89 5752 1 10 700 648 Small Brute Dark 2 12 21 Pest +1257 95 8087 1 10 770 720 Medium Undead Dark 2 12 21 Injustice +1258 55 1487 9 10 1172 672 Small Demihuman Poison 1 12 05 Goblin Archer +1259 105 60720 1 10 704 504 Large Brute Wind 4 12 21 Gryphon +1260 76 3653 1 10 920 720 Medium Demon Dark 3 12 21 Dark Frame +1261 70 2160 1 10 964 864 Small Brute Wind 1 12 02 Wild Rose +1262 65 50706 4 10 1280 1080 Large Dragon Fire 2 12 21 Mutant Dragonoid +1263 80 3631 2 10 1056 1056 Medium Demon Wind 3 12 21 Wind Ghost +1264 60 2324 1 10 916 816 Medium Demihuman Water 3 12 21 Merman +1265 35 597 1 10 1036 936 Small Demihuman Neutral 3 12 17 Cookie +1266 50 1194 1 10 1264 864 Small Fish Earth 1 12 17 Aster +1267 103 10813 1 10 1078 768 Medium Demon Wind 2 12 21 Carat +1268 116 68500 3 10 828 528 Large Formless Dark 4 12 21 Bloody Knight +1269 81 4505 1 10 1092 792 Medium Formless Earth 2 12 17 Clock +1270 90 6425 3 10 1072 672 Large Formless Neutral 4 12 17 Clock Tower Manager +1271 57 1939 1 10 1100 900 Medium Brute Water 1 12 17 Alligator +1272 96 1190900 2 10 868 768 Large Demon Undead 4 12 21 Dark Lord +1273 45 1145 1 10 1050 900 Medium Demihuman Earth 2 12 21 Orc Lady +1274 65 2599 9 10 1332 1332 Large Formless Neutral 4 12 10 Megalith +1275 100 9233 1 10 502 1999 Medium Demihuman Neutral 3 12 17 Alice +1276 82 4809 9 10 1152 1152 Medium Demon Dark 2 12 05 Raydric Archer +1277 55 1405 3 10 1152 1152 Medium Formless Fire 2 12 10 Greatest General +1278 68 2817 1 10 1264 864 Large Formless Neutral 4 12 17 Stalactic Golem +1279 66 2186 1 10 860 660 Small Insect Earth 1 12 21 Tri Joint +1280 66 2307 1 10 1008 1008 Medium Demihuman Wind 2 12 17 Goblin Steamrider +1281 70 2429 1 10 936 936 Small Brute Neutral 3 12 17 Sage Worm +1282 108 11472 9 10 1008 1008 Small Demihuman Fire 1 12 05 Kobold Archer +1283 70 26406 1 10 772 672 Large Brute Fire 3 12 21 Chimera +1285 74 28634 12 14 1200 1200 Large Demihuman Neutral 4 16 12 Archer Guardian +1286 86 30214 2 14 1200 1200 Large Demihuman Neutral 4 16 12 Knight Guardian +1287 56 15670 1 10 1288 288 Large Demihuman Neutral 1 12 12 Soldier Guardian +1288 90 100 1 10 1288 288 Small Angel Holy 1 12 06 Emperium +1289 81 77670 2 10 1024 1000 Large Insect Earth 4 12 21 Maya Purple +1290 139 180130 1 10 2276 576 Medium Undead Undead 1 12 21 Skeleton General +1291 121 37420 2 10 1816 576 Large Undead Undead 4 12 21 Wraith Dead +1292 117 22763 1 10 1000 600 Small Demon Dark 1 12 21 Mini Demon +1293 117 18211 2 10 1136 720 Small Insect Wind 1 12 21 Creamy Fear +1294 141 180141 1 10 1528 660 Medium Insect Earth 1 12 21 Killer Mantis +1295 120 25428 2 10 1345 824 Large Demon Neutral 3 12 21 Owl Baron +1296 112 13520 1 10 1028 528 Medium Demihuman Wind 2 12 21 Kobold Leader +1297 114 20935 1 10 1772 120 Medium Undead Undead 2 12 21 Ancient Mummy +1298 119 25297 1 10 2612 912 Medium Undead Undead 1 12 21 Zombie Master +1299 55 21692 1 10 1120 620 Medium Demihuman Wind 1 12 21 Goblin Leader +1300 121 25907 1 10 1672 672 Small Insect Earth 1 12 21 Caterpillar +1301 141 181487 1 10 1156 456 Small Demon Dark 1 12 21 Am Mut +1302 96 46255 2 10 1024 768 Large Demon Undead 4 12 21 Dark Illusion +1303 120 18495 1 10 1292 792 Small Insect Wind 1 12 21 Giant Hornet +1304 117 25039 1 10 1468 468 Large Insect Poison 1 12 21 Giant Spider +1305 121 31663 1 10 1792 792 Large Insect Poison 1 12 21 Ancient Worm +1306 118 25168 1 10 1260 230 Large Brute Earth 1 12 21 Leib Olmai +1307 79 23600 1 10 1276 576 Medium Demon Fire 3 12 21 Cat o' Nine Tails +1308 52 1471 1 10 960 1008 Medium Demihuman Wind 2 12 21 Panzer Goblin +1309 140 185098 1 10 1000 1152 Small Formless Fire 4 12 21 Gajomart +1310 107 13522 1 10 1100 960 Large Brute Fire 2 12 21 Majoruros +1311 120 26583 1 10 1960 960 Large Brute Earth 2 12 21 Gullinbursti +1312 110 1442000 2 10 900 1000 Large Brute Earth 2 12 21 Turtle General +1313 58 1820 1 10 1100 560 Medium Demihuman Neutral 1 12 21 Mobster +1314 90 5841 2 10 1100 483 Medium Brute Neutral 2 12 17 Permeter +1315 100 8772 2 10 512 780 Medium Demihuman Wind 2 12 21 Assaulter +1316 92 7426 2 10 1452 483 Medium Brute Earth 2 12 17 Solider +1317 47 1300 1 10 1612 622 Medium Brute Water 1 12 19 Seal +1318 98 7681 2 10 1452 483 Medium Brute Fire 2 12 21 Heater +1319 94 8346 2 10 1260 960 Medium Brute Water 2 12 21 Freezer +1320 92 7780 1 10 1345 824 Large Demon Neutral 3 12 21 Owl Duke +1321 86 5217 1 10 862 534 Medium Insect Wind 2 12 21 Dragon Tail +1322 88 5947 1 10 1120 552 Medium Brute Earth 2 12 02 Spring Rabbit +1323 48 1474 1 10 1132 583 Medium Brute Water 3 12 19 Sea Otter +1324 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1325 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1326 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1327 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1328 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1329 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1330 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1331 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1332 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1333 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1334 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1335 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1336 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1337 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1338 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1339 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1340 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1341 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1342 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1343 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1344 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1345 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1346 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1347 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1348 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1349 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1350 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1351 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1352 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1353 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1354 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1355 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1356 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1357 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1358 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1359 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1360 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1361 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1362 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1363 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1364 98 7798 2 10 1000 900 Medium Demon Wind 2 12 21 Assaulter +1365 121 31663 2 10 1840 1440 Large Formless Neutral 3 12 17 Apocalypse +1366 103 10244 1 10 2190 2040 Large Formless Fire 4 12 19 Lava Golem +1367 101 9503 2 10 1732 1332 Medium Demon Fire 2 12 20 Blazer +1368 73 3408 3 10 1308 1008 Medium Plant Earth 3 12 10 Geographer +1369 75 3084 2 10 1460 960 Large Brute Fire 2 12 03 Grand Peco +1370 119 25297 2 10 1306 1056 Medium Demon Dark 3 12 21 Succubus +1371 105 10431 2 10 920 720 Small Angel Holy 3 12 04 False Angel +1372 80 2905 1 10 1380 1080 Medium Brute Fire 3 12 03 Goat +1373 94 603883 3 10 1446 1296 Large Demon Dark 3 12 21 Lord of the Dead +1374 120 25428 2 10 850 600 Medium Demon Dark 3 12 21 Incubus +1375 97 8939 1 10 720 864 Medium Formless Neutral 3 12 04 The Paper +1376 83 4454 1 10 972 672 Medium Demon Wind 3 12 04 Harpy +1377 92 7780 3 10 1552 1152 Large Demihuman Neutral 4 12 04 Elder +1378 91 6284 1 10 1260 960 Small Demon Poison 3 12 04 Demon Pungus +1379 107 17079 1 10 1216 816 Large Demon Dark 3 12 04 Nightmare Terror +1380 65 2363 1 10 1300 900 Medium Brute Earth 1 12 04 Driller +1381 66 2185 1 10 1492 1092 Large Brute Fire 3 12 04 Grizzly +1382 104 11485 1 10 1080 780 Small Demon Dark 2 12 04 Diabolic +1383 100 6464 1 10 1260 960 Small Brute Fire 3 12 04 Explosion +1384 105 9851 1 10 1020 720 Medium Dragon Fire 2 12 13 Deleter +1385 105 9851 1 10 1024 624 Medium Dragon Fire 2 12 13 Deleter +1386 81 4505 1 10 1350 1200 Medium Formless Earth 2 12 04 Sleeper +1387 100 6926 1 10 1264 864 Small Brute Fire 2 12 04 Gig +1388 84 25100 1 10 1072 672 Medium Angel Holy 3 12 21 Arc Angeling +1389 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 Dracula +1390 118 22880 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 Violy +1391 45 982 1 10 1430 1080 Small Brute Earth 1 12 07 Galapago +1392 48 1290 10 10 2416 2016 Large Formless Wind 2 12 05 Rotar Zairo +1393 55 1899 1 10 1772 72 Medium Undead Undead 2 12 04 Mummy +1394 17 204 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +1395 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 Wind Crystal +1396 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 Earth Crystal +1397 1 50 0 0 864 1864 Small Formless Neutral 1 0 01 Fire Crystal +1398 1 30 0 0 864 1864 Small Formless Neutral 1 0 01 Water Crystal +1399 68 1264000 3 10 768 768 Large Demon Dark 3 12 21 Baphomet +1400 72 3027 1 10 1638 2016 Medium Formless Neutral 3 12 01 Karakasa +1401 95 8087 2 10 1003 1152 Medium Demihuman Dark 3 12 21 Shinobi +1402 87 5577 3 10 1148 1728 Medium Brute Poison 2 12 01 Poisonous Toad +1403 88 6513 10 10 1084 2304 Medium Undead Undead 2 12 05 Firelock Soldier +1404 85 5083 1 10 1938 2112 Medium Demon Dark 1 12 17 Miyabi Doll +1405 98 10390 2 10 1439 1920 Large Demon Earth 2 12 04 Tengu +1406 83 4899 1 10 2012 1728 Medium Fish Water 1 12 04 Kapha +1408 94 6896 3 10 472 576 Medium Insect Wind 2 12 13 Bloody Butterfly +1409 60 1744 1 10 1247 768 Small Demihuman Neutral 1 12 17 Dumpling Child +1410 92 7426 7 10 400 672 Medium Plant Earth 2 12 05 Enchanted Peach Tree +1412 96 9727 10 10 480 840 Large Formless Neutral 2 12 05 Taoist Hermit +1413 90 4381 1 10 512 756 Small Plant Fire 2 12 17 Hermit Plant +1415 68 1793 2 10 318 528 Small Brute Ghost 1 12 04 Baby Leopard +1416 97 9832 2 10 637 1008 Medium Demon Dark 3 12 21 Evil Nymph +1417 90 6425 1 10 780 1008 Medium Brute Dark 1 12 17 Zipper Bear +1418 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 Evil Snake Lord +1419 24 330 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +1420 50 1458 9 10 2864 864 Medium Undead Undead 1 12 04 Archer Skeleton +1421 59 2252 1 10 1384 768 Large Demon Dark 1 12 04 Isis +1422 63 1902 1 10 676 576 Small Insect Wind 2 12 04 Hunter Fly +1423 61 2429 1 10 2456 912 Medium Undead Undead 2 12 04 Ghoul +1424 70 2698 1 10 1576 576 Medium Brute Poison 1 12 04 Side Winder +1425 53 1776 1 10 1872 672 Medium Fish Water 2 12 04 Obeaune +1426 56 1963 1 10 1272 72 Medium Fish Water 2 12 04 Marc +1427 69 2366 1 10 1816 816 Large Demon Ghost 3 12 04 Nightmare +1428 26 379 1 10 1672 672 Medium Plant Poison 1 12 04 Poison Spore +1429 75 3570 1 10 1792 792 Large Insect Poison 1 12 04 Argiope +1430 47 1300 1 10 1468 468 Large Insect Poison 1 12 04 Argos +1431 57 1763 1 10 868 480 Small Demon Dark 1 12 04 Baphomet Jr. +1432 103 10244 1 10 1120 420 Medium Brute Fire 1 12 04 Desert Wolf +1433 64 2300 1 10 980 600 Small Demon Dark 1 12 04 Deviruchi +1434 47 1182 1 10 1276 576 Small Brute Dark 2 12 04 Drainliar +1435 80 4720 1 10 2276 576 Large Undead Undead 4 12 04 Evil Druid +1436 63 1901 1 10 1180 480 Medium Formless Fire 2 12 04 Jakk +1437 90 6425 1 10 1364 864 Large Demihuman Wind 4 12 04 Joker +1438 118 27456 1 10 528 1000 Large Undead Undead 1 12 04 Khalitzburg +1439 81 4077 1 10 1500 500 Large Demihuman Fire 2 12 04 High Orc +1440 84 4084 1 10 1500 500 Medium Plant Wind 1 12 04 Stem Worm +1441 85 4621 7 10 832 500 Medium Fish Poison 1 12 04 Penomena +1442 72 3329 1 10 1260 192 Large Brute Neutral 3 12 04 Sasquatch +1443 41 921 7 10 1296 1296 Medium Formless Neutral 3 12 04 Cruiser +1444 42 4950 1 10 672 672 Medium Demihuman Fire 1 12 04 Chepet +1445 48 985 1 10 1000 900 Small Brute Wind 1 12 04 Raggler +1446 95 8087 1 10 770 720 Medium Undead Dark 2 12 04 Injustice +1447 105 60720 1 10 704 504 Large Brute Wind 4 12 04 Gryphon +1448 76 3653 1 10 920 720 Medium Demon Dark 3 12 04 Dark Frame +1449 65 50706 4 10 1280 1080 Large Dragon Fire 2 12 04 Mutant Dragonoid +1450 80 3631 2 10 1056 1056 Medium Demon Wind 3 12 04 Wind Ghost +1451 60 2324 1 10 916 816 Medium Demihuman Water 2 12 04 Merman +1452 45 1145 1 10 1050 900 Medium Demihuman Earth 2 12 04 Orc Lady +1453 82 4809 9 10 1152 1152 Medium Demon Dark 2 12 04 Raydric Archer +1454 66 2186 1 10 860 660 Small Insect Earth 1 12 04 Tri Joint +1455 108 11472 9 10 1008 1008 Small Demihuman Fire 1 12 04 Kobold Archer +1456 70 26406 1 10 772 672 Large Brute Fire 3 12 04 Chimera +1457 65 2363 1 10 1528 660 Medium Insect Earth 1 12 04 Mantis +1458 73 3099 1 10 1540 840 Large Demihuman Fire 1 12 04 Marduk +1459 62 2209 1 10 1480 480 Small Demon Ghost 3 12 04 Marionette +1460 58 2002 1 10 432 432 Medium Brute Dark 1 12 04 Matyr +1461 58 1729 1 10 1360 960 Large Brute Fire 2 12 04 Minorous +1462 53 1699 1 10 2420 720 Medium Undead Undead 1 12 04 Orc Skeleton +1463 51 1586 1 10 2852 1152 Medium Undead Undead 1 12 04 Orc Zombie +1464 79 3020 1 10 976 576 Medium Demihuman Fire 2 12 04 Pasana +1465 86 5491 1 10 1624 620 Medium Dragon Earth 1 12 04 Petite +1466 79 3197 1 10 1420 1080 Medium Dragon Wind 1 12 04 Petite +1467 115 21981 1 10 824 780 Large Demihuman Dark 2 12 04 Raydric +1468 71 3251 1 10 1516 816 Medium Demihuman Dark 1 12 04 Requiem +1469 44 1151 1 10 2420 720 Medium Undead Undead 1 12 04 Skeleton Worker +1470 70 2429 1 10 1780 1080 Medium Demihuman Fire 1 12 04 Zerom +1471 72 2422 1 10 840 540 Medium Brute Fire 3 12 04 Nine Tail +1472 59 2065 1 10 1720 500 Medium Undead Undead 1 12 04 Bongun +1473 78 3474 9 10 1960 620 Medium Demihuman Earth 1 12 04 Orc Archer +1474 56 1707 1 10 972 500 Medium Formless Neutral 3 12 04 Mimic +1475 77 4415 1 10 1816 576 Large Undead Undead 4 12 04 Wraith +1476 88 5664 1 10 1020 500 Medium Formless Neutral 3 12 04 Alarm +1477 77 4320 1 10 960 500 Medium Insect Earth 2 12 04 Arclouze +1478 74 2855 1 10 864 500 Small Formless Neutral 3 12 04 Rideword +1479 91 8378 1 10 1848 500 Medium Undead Undead 3 12 04 Skeleton Prisoner +1480 89 6902 1 10 1768 500 Medium Undead Undead 3 12 04 Zombie Prisoner +1481 82 3498 1 10 1500 500 Small Plant Wind 1 12 04 Punk +1482 105 61350 1 10 800 792 Medium Demihuman Neutral 3 12 04 Zealotus +1483 98 9939 1 10 1790 1440 Large Demon Neutral 2 12 04 Rybio +1484 102 12408 2 10 1744 1344 Large Demihuman Neutral 2 12 04 Phendark +1485 130 70000 2 10 1152 500 Large Formless Dark 4 12 04 Mysteltainn +1486 114 59000 1 10 816 500 Medium Formless Dark 3 12 04 Ogretooth +1487 101 40200 2 10 768 500 Large Formless Dark 2 12 04 Executioner +1488 109 16615 1 10 900 500 Medium Fish Water 2 12 04 Anolian +1489 104 12633 1 10 528 500 Medium Formless Earth 3 12 04 Sting +1490 120 20806 2 10 672 500 Medium Demon Wind 1 12 04 Wanderer +1491 68 2561 1 10 1156 456 Small Demon Dark 1 12 04 Dokebi +1492 100 901000 3 10 874 1344 Large Demihuman Dark 3 12 21 Samurai Specter +1493 68 2817 3 10 950 2520 Medium Plant Earth 4 12 04 Dryad +1494 55 1487 1 10 1247 768 Small Insect Earth 1 12 03 Beetle King +1495 64 1840 10 10 2413 1248 Medium Plant Fire 3 12 04 Stone Shooter +1497 72 3631 1 10 1543 1632 Large Plant Earth 4 12 04 Wooden Golem +1498 67 2618 10 10 857 1056 Medium Demihuman Earth 2 12 04 Wootan Shooter +1499 67 2120 1 10 912 1344 Medium Demihuman Fire 2 12 04 Wootan Fighter +1500 76 3155 8 10 864 864 Medium Plant Wind 2 12 10 Parasite +1502 99 95000000 1 10 1672 672 Medium Plant Poison 1 12 04 Bring it on! +1503 105 13905 1 10 917 1584 Large Demon Dark 1 12 04 Gibbet +1504 108 16491 2 10 847 1152 Medium Undead Undead 2 12 04 Dullahan +1505 109 17336 2 10 747 1632 Large Demon Dark 4 12 04 Loli Ruri +1506 103 12520 2 10 516 768 Medium Demon Earth 4 12 04 Disguise +1507 110 17467 2 10 914 1344 Large Demihuman Dark 3 12 04 Bloody Murderer +1508 100 9233 1 10 912 1248 Small Undead Undead 1 12 04 Quve +1509 101 11179 2 10 890 960 Small Undead Undead 1 12 04 Lude +1510 102 11280 1 10 741 1536 Small Demon Dark 2 12 04 Heirozoist +1511 69 1009000 3 14 854 2016 Large Demihuman Earth 3 12 10 Amon Ra +1512 87 6413 1 10 890 1320 Medium Undead Undead 2 12 04 Yao Jun +1513 89 5465 2 10 1257 528 Medium Brute Wind 2 12 04 Mao Guai +1514 82 4154 2 10 600 840 Medium Dragon Wind 2 12 02 Zhu Po Long +1515 94 10016 1 10 879 672 Medium Brute Water 2 12 04 Baby Hatii +1516 83 4899 1 10 106 1056 Medium Formless Earth 3 12 17 Mi Gao +1517 80 3994 1 10 1120 576 Medium Demon Earth 3 12 04 Jing Guai +1518 97 720500 2 10 576 960 Large Demihuman Wind 3 12 04 White Lady +1519 49 23900 1 10 1728 816 Medium Demihuman Neutral 2 12 04 Green Maiden +1520 15 777 1 10 1152 672 Medium Plant Water 1 12 01 Boiled Rice +1521 100 9233 1 10 520 2304 Medium Demihuman Neutral 3 12 17 Alice +1522 115 29157 1 10 1772 120 Medium Undead Undead 2 12 21 Ancient Mummy +1523 88 6513 10 10 1084 2304 Medium Undead Undead 2 12 05 Firelock Soldier +1524 68 1793 2 10 318 528 Small Brute Ghost 1 12 04 Baby Leopard +1525 86 6040 1 10 1504 840 Medium Demihuman Dark 1 12 21 Bathory +1526 94 6896 3 10 472 576 Medium Insect Wind 2 12 13 Bloody Butterfly +1527 90 6425 3 10 1072 672 Large Formless Neutral 4 12 17 Clock Tower Manager +1528 81 4505 1 10 1092 792 Medium Formless Earth 2 12 17 Clock +1529 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 Evil Snake Lord +1530 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 Dracula +1531 96 9727 10 10 480 840 Large Formless Neutral 2 12 05 Taoist Hermit +1532 100 6464 1 10 1260 960 Small Brute Fire 3 12 02 Explosion +1533 47 1300 1 10 1612 622 Medium Brute Water 1 12 19 Seal +1534 48 1107 1 10 1120 620 Medium Demihuman Wind 1 12 21 Goblin +1535 44 943 1 10 1320 620 Medium Demihuman Fire 1 12 19 Goblin +1536 44 1047 1 10 1624 624 Medium Demihuman Poison 1 12 13 Goblin +1537 49 1277 1 10 1624 624 Medium Demihuman Earth 1 12 13 Goblin +1538 56 1877 1 10 3074 1874 Medium Demihuman Water 1 12 13 Goblin +1539 55 21692 1 10 1120 620 Medium Demihuman Wind 1 12 21 Goblin Leader +1540 61 2324 1 10 1608 816 Large Formless Neutral 3 12 17 Golem +1541 55 1405 3 10 1152 1152 Medium Formless Fire 2 12 10 Greatest General +1542 100 901000 3 10 874 1344 Large Demihuman Dark 3 12 21 Incantation Samurai +1543 83 4899 1 10 2012 1728 Medium Fish Water 1 12 04 Kapha +1544 72 3027 1 10 1638 2016 Medium Formless Neutral 3 12 01 Karakasa +1545 107 13522 1 10 1028 528 Medium Demihuman Wind 2 12 13 Kobold +1546 102 11280 1 10 1528 528 Medium Demihuman Poison 2 12 13 Kobold +1547 101 9503 1 10 1228 528 Medium Demihuman Fire 2 12 13 Kobold +1548 112 13520 1 10 1028 528 Medium Demihuman Wind 2 12 21 Kobold Leader +1549 103 10244 1 10 2190 2040 Large Formless Fire 4 12 02 Lava Golem +1550 92 7426 7 10 400 672 Medium Plant Earth 2 12 05 Enchanted Peach Tree +1551 47 1241 1 10 1956 756 Small Fish Water 2 12 17 Marse +1552 85 5083 1 10 1938 2112 Medium Demon Dark 1 12 17 Miyabi Doll +1553 49 1404 1 10 1576 576 Large Formless Poison 1 12 21 Myst +1554 107 17079 1 10 1216 816 Large Demon Dark 3 12 04 Nightmare Terror +1555 76 3155 8 10 864 864 Medium Plant Wind 2 12 10 Parasite +1556 87 5577 3 10 1148 1728 Medium Brute Poison 2 12 01 Poisonous Toad +1557 48 1290 10 10 2416 2016 Large Formless Wind 2 12 05 Rotar Zairo +1558 61 2324 1 10 1672 720 Medium Formless Earth 3 12 04 Sandman +1559 16 136 1 10 1564 864 Small Insect Fire 1 12 19 Scorpion +1560 95 8087 2 10 1003 1152 Medium Demihuman Dark 3 12 21 Shinobi +1561 29 414 1 10 1576 576 Small Brute Earth 1 12 17 Smokie +1562 34 691 1 10 2276 576 Medium Undead Undead 1 12 04 Soldier Skeleton +1563 98 10390 2 10 1439 1920 Large Demon Earth 2 12 04 Tengu +1564 97 9832 2 10 637 1008 Medium Demon Dark 3 12 21 Evil Nymph +1565 90 4381 1 10 512 756 Small Plant Fire 2 12 17 Hermit Plant +1566 86 10035 2 10 1816 576 Large Undead Undead 4 12 21 Wraith Dead +1567 83 4140 1 10 1792 792 Large Insect Poison 1 12 21 Ancient Worm +1568 77 19800 1 10 1072 672 Medium Angel Holy 4 12 21 Angeling +1569 116 68500 3 10 828 528 Large Formless Dark 4 12 21 Bloody Knight +1570 82 3935 1 10 1000 500 Small Brute Poison 2 12 19 Cramp +1571 60 2324 1 10 1680 480 Medium Fish Water 4 12 17 Deviace +1572 2 46 1 10 1372 672 Medium Plant Fire 1 12 02 Drops +1573 92 7780 3 10 1552 1152 Large Demihuman Neutral 4 12 04 Elder +1574 34 535 1 10 1372 672 Medium Plant Fire 2 12 02 Elder Willow +1575 59 2065 3 10 1432 432 Large Plant Earth 1 12 10 Flora +1576 90 26700 1 10 1220 1080 Medium Demon Ghost 4 12 21 Ghostring +1577 55 1487 9 10 1172 672 Small Demihuman Poison 1 12 05 Goblin Archer +1578 66 1701 1 10 1888 1152 Small Formless Fire 4 12 13 Horong +1579 34 661 7 10 800 432 Small Plant Water 2 12 10 Hydra +1580 120 25428 2 10 850 600 Medium Demon Dark 3 12 21 Incubus +1581 18 3317 1 10 1080 648 Medium Insect Earth 1 12 21 Vocal +1582 66 16890 1 10 1072 1056 Medium Demon Dark 4 12 21 Deviling +1583 110 1252000 2 10 1020 288 Large Demon Neutral 3 12 21 Tao Gunka +1584 73 3717 1 10 512 1152 Large Demon Dark 3 12 13 Tamruan +1585 1 0 1 10 676 672 Medium Plant Water 1 12 06 Mime Monkey +1586 64 2070 1 10 960 864 Small Brute Earth 1 12 02 Leaf Cat +1587 70 2159 1 10 1152 1536 Medium Formless Ghost 2 12 19 Kraben +1588 24 1400 1 10 1864 864 Medium Demihuman Earth 1 12 01 Christmas Orc +1589 13 140 4 10 1768 768 Medium Plant Earth 3 12 10 Mandragora +1590 73 3408 3 10 1308 1008 Medium Plant Earth 3 12 10 Geographer +1591 29 2334 1 10 1456 456 Small Brute Neutral 3 12 04 Lunatic +1592 40 8000 1 10 1100 560 Medium Demihuman Neutral 1 12 03 Gangster +1593 52 8613 1 10 1772 120 Medium Undead Undead 3 12 04 Ancient Mummy +1594 94 8346 2 10 1452 483 Medium Brute Water 2 12 21 Freezer +1595 37 844 1 10 1872 672 Medium Plant Water 2 12 01 Marin +1596 73 3717 1 10 512 1152 Large Demon Dark 3 12 13 Tamruan +1597 100 9233 9 10 1020 720 Medium Demon Wind 3 12 05 Gargoyle +1598 101 9503 2 10 1732 1332 Medium Demon Fire 2 12 02 Blazzer +1599 66 2570 1 10 2536 1536 Small Demon Ghost 2 12 21 Giant Whisper +1600 96 7480 2 10 1452 483 Medium Brute Fire 2 12 21 Heater +1601 90 5841 2 10 1100 483 Medium Brute Neutral 2 12 21 Permeter +1602 92 7426 2 10 1452 483 Medium Brute Earth 2 12 21 Solider +1603 29 506 1 10 1260 192 Large Brute Earth 1 12 17 Bigfoot +1604 82 3960 1 10 1292 792 Small Insect Wind 1 12 21 Giant Hornet +1605 96 46255 2 10 1024 768 Large Demon Undead 4 12 21 Dark Illusion +1606 94 10016 1 10 879 672 Medium Brute Water 2 12 04 Baby Hatii +1607 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 21 Christmas Goblin +1608 19 583 1 10 988 288 Medium Insect Dark 1 12 13 Thief Bug Male +1609 82 4154 2 10 600 840 Medium Dragon Wind 2 12 02 Zhu Po Long +1610 30 2872 1 10 2468 768 Medium Undead Undead 4 12 04 Munak +1611 59 2510 1 10 1720 500 Medium Undead Undead 4 12 19 Bongun +1612 56 9981 1 10 890 1320 Medium Undead Undead 4 12 04 Yao Jun +1613 81 3862 1 10 384 672 Small Formless Neutral 1 12 02 Metaling +1614 96 7959 1 10 648 480 Small Formless Neutral 2 12 17 Mineral +1615 97 8492 1 10 720 864 Small Formless Earth 2 12 04 Obsidian +1616 90 6717 1 10 960 336 Large Undead Earth 2 12 17 Pitman +1617 92 7780 1 10 1152 528 Large Formless Neutral 1 12 04 Old Stove +1618 94 27070 1 10 420 576 Large Insect Poison 2 12 21 Ungoliant +1619 85 4621 1 10 720 360 Small Insect Earth 3 12 02 Porcellio +1620 87 4462 1 10 768 1440 Medium Formless Ghost 3 12 04 Noxious +1621 87 5577 1 10 768 1440 Medium Formless Poison 1 12 04 Venomous +1622 91 6284 1 10 512 780 Small Formless Neutral 3 12 20 Teddy Bear +1623 100 1001000 1 10 128 1104 Large Formless Neutral 3 12 21 RSX-0806 +1624 92 7780 1 10 1152 528 Large Formless Neutral 1 12 04 Old Stove +1625 85 4621 1 10 720 360 Small Insect Earth 3 12 04 Porcellio +1626 59 8600 2 10 432 384 Medium Demon Undead 3 12 21 Hellion Revenant +1627 95 6617 1 10 1084 2304 Small Insect Wind 3 12 04 Anopheles +1628 85 4390 9 10 1400 960 Small Brute Earth 2 12 03 Holden +1629 43 2870 3 10 336 540 Medium Brute Wind 3 12 04 Hill Wind +1630 97 720500 3 10 576 960 Large Demihuman Wind 3 12 21 White Lady +1631 82 4154 2 10 1728 816 Medium Demihuman Wind 2 12 21 Green Maiden +1632 118 27456 1 10 432 540 Large Demon Dark 2 12 17 Gremlin +1633 120 19651 6 10 336 840 Small Formless Wind 2 12 17 Beholder +1634 142 204962 1 10 76 384 Medium Demon Fire 3 12 19 Seyren Windsor +1635 140 220525 1 10 76 384 Medium Demon Poison 4 12 19 Eremes Guile +1636 142 378100 1 10 76 384 Medium Demihuman Water 4 12 19 Howard Alt-Eisen +1637 140 250800 1 10 1152 384 Medium Demihuman Holy 3 12 20 Margaretha Sorin +1638 141 200255 14 10 76 384 Medium Demihuman Wind 3 12 19 Cecil Damon +1639 141 209780 1 10 1152 384 Medium Demihuman Ghost 3 12 20 Kathryne Keyron +1640 160 2680000 1 10 76 384 Medium Demon Fire 4 12 21 Lord Knight Seyren +1641 160 1230000 1 10 76 384 Medium Demon Poison 4 12 21 Assassin Cross Eremes +1642 160 3750000 1 10 76 384 Medium Demihuman Earth 4 12 21 Whitesmith Howard +1643 160 2800000 1 10 1152 384 Medium Demihuman Holy 4 12 21 High Priest Margaretha +1644 160 4140000 14 10 76 384 Medium Demihuman Wind 4 12 21 Sniper Cecil +1645 160 4500000 1 10 1152 384 Medium Demihuman Ghost 3 12 21 High Wizard Kathryne +1646 160 4680000 1 10 76 384 Medium Demon Fire 4 12 21 Lord Knight Seyren +1647 160 4230000 1 10 76 384 Medium Demon Poison 4 12 21 Assassin Cross Eremes +1648 160 6750000 1 10 76 384 Medium Demihuman Earth 4 12 21 Whitesmith Howard +1649 160 4800000 1 10 1152 384 Medium Demihuman Holy 4 12 21 High Priest Margaretha +1650 160 4140000 14 10 76 384 Medium Demihuman Wind 4 12 21 Sniper Cecil +1651 160 4500000 1 10 1152 384 Medium Demihuman Ghost 3 12 21 High Wizard Kathryne +1652 136 40327 1 10 576 432 Medium Demihuman Fire 2 12 04 Egnigem Cenia +1653 132 43191 1 10 576 432 Medium Demihuman Poison 3 12 04 Wickebine Tres +1654 134 46878 1 10 576 432 Medium Demihuman Earth 3 12 04 Armeyer Dinze +1655 133 42764 1 10 576 432 Medium Demihuman Holy 2 12 04 Errende Ebecee +1656 135 43079 9 10 576 432 Medium Demihuman Wind 2 12 04 Kavach Icarus +1657 133 40282 1 10 576 432 Medium Demihuman Ghost 2 12 04 Laurell Weinder +1658 141 2910088 1 10 1008 864 Medium Demihuman Fire 2 12 21 Egnigem Cenia +1659 132 43191 1 10 1008 864 Medium Demihuman Poison 3 12 04 Wickebine Tres +1660 134 46878 1 10 1008 864 Medium Demihuman Earth 3 12 04 Armeyer Dinze +1661 133 42764 1 10 1008 864 Medium Demihuman Holy 2 12 04 Errende Ebecee +1662 135 43079 9 10 1008 864 Medium Demihuman Wind 2 12 04 Kavach Icarus +1663 133 40282 1 10 1008 864 Medium Demihuman Ghost 2 12 04 Laurell Weinder +1664 66 8000 9 10 1536 960 Medium Formless Neutral 2 12 10 Photon Cannon +1665 67 7500 9 10 1536 960 Medium Formless Neutral 2 12 10 Photon Cannon +1666 64 7100 9 10 1536 960 Medium Formless Neutral 2 12 10 Photon Cannon +1667 65 7800 9 10 1536 960 Medium Formless Neutral 2 12 10 Photon Cannon +1668 119 25297 3 10 580 288 Large Demihuman Neutral 3 12 21 Archdam +1669 77 10000 5 10 576 720 Medium Formless Neutral 2 12 04 Dimik +1670 116 21515 7 10 576 720 Medium Formless Wind 2 12 04 Dimik +1671 116 26044 5 10 576 720 Medium Formless Water 2 12 04 Dimik +1672 116 23779 5 10 576 720 Medium Formless Earth 2 12 04 Dimik +1673 116 19250 5 10 576 720 Medium Formless Fire 2 12 04 Dimik +1674 88 80000 5 14 1368 1344 Large Formless Fire 3 12 10 Monemus +1675 77 12717 2 10 504 1020 Medium Formless Fire 2 12 04 Venatu +1676 113 18092 2 10 504 1020 Medium Formless Neutral 2 12 04 Venatu +1677 113 17188 2 10 504 1020 Medium Formless Wind 2 12 04 Venatu +1678 113 18996 2 10 504 1020 Medium Formless Earth 2 12 04 Venatu +1679 113 20805 2 10 504 1020 Medium Formless Water 2 12 04 Venatu +1680 101 11179 3 10 504 480 Medium Brute Wind 3 12 04 Hill Wind +1681 135 108999 3 10 1872 360 Medium Formless Water 1 12 04 Gemini-S58 +1682 121 33102 1 10 1536 1056 Medium Undead Undead 2 12 04 Remover +1683 66 8000 9 10 1536 960 Medium Formless Fire 2 12 04 Photon Cannon +1684 119 25297 3 10 1080 288 Large Angel Neutral 3 12 04 Archdam +1685 128 3802000 3 10 504 912 Large Brute Holy 2 12 21 Vesper +1686 43 904 1 10 672 864 Small Demihuman Earth 1 12 04 Orc Baby +1687 55 1734 1 10 1152 1152 Medium Brute Earth 2 12 02 Grove +1688 80 360000 14 10 576 432 Large Plant Wind 3 12 10 Lady Tanee +1689 97 720500 3 10 576 960 Large Demihuman Wind 3 12 21 White Lady +1690 12 15 1 10 1120 552 Medium Brute Neutral 1 12 02 Spring Rabbit +1691 70 2159 1 10 1152 1536 Medium Formless Ghost 2 12 04 Kraben +1692 92 7073 2 10 140 384 Medium Formless Wind 3 12 04 Breeze +1693 119 16100 1 10 1056 1056 Small Formless Ghost 4 12 04 Plasma +1694 118 16016 1 10 912 1248 Small Formless Fire 4 12 04 Plasma +1695 116 22647 1 10 1000 500 Small Formless Earth 4 12 04 Plasma +1696 117 22763 1 10 768 1440 Small Formless Dark 4 12 04 Plasma +1697 115 20151 1 10 720 360 Small Formless Water 4 12 04 Plasma +1698 114 18205 1 10 176 912 Medium Formless Neutral 3 12 21 Death Word +1699 112 19778 1 10 168 480 Large Formless Neutral 3 12 04 Ancient Mimic +1700 127 36844 2 10 432 480 Medium Angel Neutral 4 12 20 Dame of Sentinel +1701 125 29275 2 10 432 420 Medium Angel Holy 3 12 20 Mistress of Shelter +1702 121 31663 2 10 360 480 Medium Angel Dark 3 12 20 Baroness of Retribution +1703 123 29028 2 10 576 420 Medium Angel Holy 3 12 20 Lady Solace +1704 129 33389 9 10 432 288 Large Undead Ghost 4 12 21 Odium of Thanatos +1705 129 33389 2 10 160 528 Large Undead Ghost 4 12 21 Despero of Thanatos +1706 129 29680 2 10 160 480 Medium Undead Ghost 4 12 21 Maero of Thanatos +1707 129 25971 2 10 160 672 Small Undead Ghost 4 12 21 Dolor of Thanatos +1708 99 1445660 3 10 115 816 Large Demon Ghost 4 12 21 Thanatos Phantom +1709 129 33389 9 10 115 288 Large Undead Ghost 4 12 20 Odium of Thanatos +1710 129 33389 2 10 160 528 Large Undead Ghost 4 12 20 Despero of Thanatos +1711 129 29680 2 10 160 480 Medium Undead Ghost 4 12 20 Maero of Thanatos +1712 129 25971 2 10 160 672 Small Undead Ghost 4 12 20 Dolor of Thanatos +1713 130 40950 2 10 168 1008 Large Dragon Holy 2 12 19 Acidus +1714 126 34882 2 10 108 576 Large Dragon Fire 2 12 19 Ferus +1715 90 5257 1 10 151 288 Small Dragon Neutral 1 12 04 Novus +1716 130 39089 2 10 168 768 Large Dragon Wind 2 12 19 Acidus +1717 126 42224 2 10 108 576 Large Dragon Earth 2 12 19 Ferus +1718 84 4084 1 10 252 816 Small Dragon Neutral 1 12 04 Novus +1719 135 6005000 3 10 432 936 Large Dragon Dark 3 12 21 Detardeurus +1720 121 41500 3 10 140 672 Large Dragon Dark 2 12 21 Hydrolancer +1721 119 27826 0 10 24 0 Medium Dragon Neutral 2 12 06 Dragon Egg +1722 99 10310 1 10 1180 480 Medium Formless Fire 2 12 21 Jakk +1723 82 30000 14 10 1008 384 Medium Demihuman Wind 3 12 26 Cecil Damon +1724 66 8000 9 10 1536 960 Medium Formless Neutral 2 12 27 Photon Cannon +1725 1 50 1 10 1872 672 Medium Plant Water 1 12 02 Poring +1726 3 60 1 10 1456 456 Small Brute Neutral 3 12 02 Lunatic +1727 7 182 1 10 1624 624 Small Brute Earth 1 12 02 Savage Babe +1728 14 140 1 10 1600 900 Small Brute Fire 1 12 02 Baby Desert Wolf +1729 50 8578 1 10 868 480 Small Demon Dark 1 12 02 Baphomet Jr. +1730 64 2300 1 10 980 600 Small Demon Dark 1 12 02 Deviruchi +1731 77 380000 1 10 480 480 Large Angel Ghost 2 12 21 Doppelganger +1732 98 500 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1733 90 523500 3 10 1152 576 Medium Formless Dark 2 12 21 Kiehl +1734 125 2502000 3 10 1152 576 Medium Formless Dark 2 12 21 Kiel D-01 +1735 115 18319 2 10 1080 480 Medium Demon Neutral 3 12 13 Alicel +1736 112 17980 2 10 1296 432 Medium Demon Neutral 3 12 13 Aliot +1737 112 17980 1 10 1440 576 Medium Demihuman Neutral 3 12 17 Aliza +1738 108 14340 1 10 720 360 Small Formless Dark 3 12 04 Constant +1739 115 18319 2 10 1080 480 Medium Demon Neutral 3 12 13 Alicel +1740 112 17980 2 10 1296 432 Medium Demon Neutral 3 12 13 Aliot +1741 37 661 1 10 1248 1248 Small Demihuman Holy 2 12 04 Christmas Cookie +1742 103 10813 1 10 1078 768 Medium Demon Wind 2 12 04 Carat +1743 39 809 1 10 1248 1248 Medium Formless Neutral 3 12 04 Myst Case +1744 70 2160 1 10 964 864 Small Brute Wind 1 12 04 Wild Rose +1745 108 14340 1 10 720 360 Small Demon Dark 3 12 05 Constant +1746 112 17980 1 10 1440 576 Medium Demihuman Neutral 3 12 04 Aliza +1747 18 203 1 10 1576 576 Medium Brute Earth 1 12 04 Boa +1748 100 9233 1 10 1576 576 Medium Brute Poison 1 12 04 Anacondaq +1749 102 11280 1 10 1720 1320 Medium Demon Neutral 2 12 04 Medusa +1750 1 100 1 7 1 1 Small Plant Earth 1 12 06 Red Plant +1751 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 Valkyrie Randgris +1752 126 40389 2 10 720 384 Medium Demon Dark 3 12 20 Skogul +1753 128 40668 2 10 480 576 Medium Demon Dark 3 12 20 Frus +1754 131 53290 1 10 672 780 Small Angel Holy 2 12 21 Skeggiold +1755 131 52280 1 10 672 780 Small Angel Holy 2 12 21 Skeggiold +1756 121 41500 3 10 140 672 Large Dragon Dark 2 12 04 Hydrolancer +1757 130 40950 2 10 168 1008 Large Dragon Holy 2 12 04 Acidus +1758 126 34882 2 10 108 576 Large Dragon Fire 2 12 04 Ferus +1759 130 39089 2 10 168 768 Large Dragon Wind 2 12 04 Acidus +1760 126 42224 2 10 108 576 Large Dragon Earth 2 12 04 Ferus +1761 126 40389 2 10 720 384 Medium Demon Dark 3 12 04 Skogul +1762 128 40668 2 10 480 576 Medium Demon Dark 3 12 04 Frus +1763 131 53290 1 10 672 780 Small Angel Holy 2 12 04 Skeggiold +1764 131 52280 1 10 672 780 Small Angel Holy 2 12 04 Skeggiold +1765 141 1005000 3 10 576 576 Large Angel Holy 4 12 21 Valkyrie +1766 99 128430 1 10 1288 288 Small Angel Holy 3 12 21 Angeling +1767 99 128430 1 10 1288 288 Small Angel Holy 3 12 21 Deviling +1768 139 3005000 3 10 1344 2880 Large Formless Ghost 3 12 21 Gloom Under Night +1769 128 36971 1 10 768 360 Medium Demihuman Neutral 4 12 20 Agav +1770 126 36718 1 10 768 360 Medium Demihuman Neutral 4 12 20 Echio +1771 123 29028 1 10 768 360 Medium Demihuman Neutral 4 12 04 Vanberk +1772 124 29151 1 10 768 360 Medium Demihuman Neutral 4 12 04 Isilla +1773 122 31796 1 10 960 528 Medium Demon Dark 3 12 04 Hodremlin +1774 124 26236 6 10 576 432 Small Formless Wind 3 12 20 Seeker +1775 103 14227 2 10 936 1020 Large Formless Water 2 12 04 Snowier +1776 98 9940 1 10 432 648 Small Formless Water 3 12 02 Siroma +1777 110 18923 1 10 861 660 Large Formless Water 3 12 04 Ice Titan +1778 106 15539 10 10 576 370 Medium Demon Water 1 12 20 Gazeti +1779 98 2626000 3 10 432 840 Large Brute Water 4 12 21 Ktullanux +1780 105 11589 3 10 672 648 Medium Plant Earth 1 12 10 Muscipular +1781 101 11179 7 10 864 576 Medium Plant Earth 1 12 10 Drosera +1782 95 6617 1 10 1500 500 Medium Brute Wind 1 12 07 Roween +1783 100 8772 1 10 864 624 Medium Brute Wind 2 12 07 Galion +1784 95 6984 1 10 936 792 Small Formless Earth 2 12 02 Stapo +1785 113 1502000 2 10 576 600 Large Brute Dark 3 12 21 Atroce +1786 128 36971 1 10 768 360 Medium Demihuman Neutral 4 12 20 Agav +1787 126 36718 1 10 768 360 Medium Demihuman Neutral 2 12 20 Echio +1788 110 18923 1 10 861 660 Large Formless Water 3 12 20 Ice Titan +1789 100 1012 3 10 1344 0 Small Formless Water 2 12 10 Iceicle +1790 86 4942 3 10 512 528 Small Plant Earth 1 12 04 Rafflesia +1791 100 8772 1 10 864 624 Medium Brute Wind 2 12 07 Galion +1792 1 10 0 0 96 96 Small Formless Neutral 1 0 06 Soccer Ball +1793 65 2599 9 10 1332 1332 Large Formless Neutral 4 12 21 Megalith +1794 95 6617 1 10 412 840 Medium Brute Wind 1 12 20 Roween +1795 116 68500 3 10 828 528 Large Angel Ghost 1 12 04 Bloody Knight +1796 110 14557 1 10 768 432 Medium Demihuman Neutral 4 12 20 Aunoe +1797 120 23117 1 10 768 432 Medium Demihuman Neutral 4 12 04 Fanat +1798 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1799 99 1647590 1 10 76 384 Medium Demihuman Fire 4 12 21 Lord Knight Seyren +1800 99 1411230 1 10 76 384 Medium Demihuman Poison 4 12 21 Assassin Cross Eremes +1801 99 1460000 1 10 76 384 Medium Demihuman Earth 4 12 21 Mastersmith Howard +1802 99 1092910 1 10 1152 384 Medium Demihuman Holy 4 12 21 High Priest Margaretha +1803 99 1349000 14 10 76 384 Medium Demihuman Wind 4 12 21 Sniper Cecil +1804 99 1069920 1 10 1152 384 Medium Demihuman Ghost 3 12 21 High Wizard Kathryne +1805 10 10 1 10 76 384 Medium Demihuman Fire 4 12 21 Lord Knight Seyren +1806 10 10 1 10 76 384 Medium Demihuman Poison 4 12 21 Assassin Cross Eremes +1807 10 10 1 10 76 384 Medium Demihuman Water 4 12 21 Mastersmith Howard +1808 10 10 1 10 1152 384 Medium Demihuman Holy 4 12 21 High Priest Margaretha +1809 10 10 14 10 76 384 Medium Demihuman Wind 4 12 20 Sniper Cecil +1810 10 10 1 10 1152 384 Medium Demihuman Ghost 3 12 21 High Wizard Kathryne +1811 18 641 1 10 1576 576 Small Brute Earth 1 12 17 Bandit +1812 10 20 2 10 890 960 Small Undead Undead 1 12 01 Delightful Lude +1813 99 1880000 3 10 972 672 Large Angel Ghost 1 12 21 Hydrolancer +1814 80 30000 1 10 1276 576 Medium Brute Fire 3 12 21 Moonlight Flower +1815 1 14 1 10 1320 0 Medium Formless Neutral 1 12 06 Rice Cake +1816 12 1000 1 0 96 96 Medium Formless Neutral 1 0 06 Gourd +1817 99 8880000 3 10 972 936 Large Angel Ghost 2 12 21 Detardeurus +1818 58 10647 0 10 1020 500 Medium Formless Neutral 3 12 06 Alarm +1819 86 5242 1 10 1504 840 Medium Demihuman Dark 1 12 21 Bathory +1820 29 587 1 10 1260 192 Large Brute Earth 1 12 17 Bigfoot +1821 103 9447 1 10 1120 420 Medium Brute Fire 1 12 13 Desert Wolf +1822 64 2300 1 10 980 600 Small Demon Dark 1 12 21 Deviruchi +1823 94 9990 2 10 1452 483 Medium Brute Water 2 12 21 Freezer +1824 94 10016 1 10 879 672 Medium Brute Water 2 12 04 Baby Hatii +1825 25 1176 1 10 1120 620 Medium Demihuman Wind 1 12 01 Christmas Goblin +1826 39 879 1 10 1576 576 Large Formless Poison 1 12 21 Myst +1827 30 3163 1 10 1260 192 Large Brute Neutral 3 12 21 Sasquatch +1828 20 20 1 10 1960 960 Large Brute Earth 2 12 17 Gullinbursti +1829 133 70000 2 14 140 384 Large Demihuman Neutral 4 16 19 Sword Guardian +1830 132 63000 12 14 76 384 Large Demihuman Neutral 4 16 26 Bow Guardian +1831 138 80390 2 10 140 384 Large Formless Fire 3 12 21 Salamander +1832 146 6935000 3 10 212 384 Large Formless Fire 4 12 21 Ifrit +1833 135 70128 2 10 800 600 Large Formless Fire 3 12 21 Kasa +1834 138 80390 2 10 140 384 Large Formless Fire 3 12 21 Salamander +1835 135 70128 2 10 800 600 Large Formless Fire 3 12 21 Kasa +1836 110 10919 1 10 1472 384 Small Formless Fire 2 12 02 Magmaring +1837 129 25971 1 10 824 432 Small Demon Fire 3 12 26 Imp +1838 126 33047 1 10 1548 384 Small Demon Earth 1 12 17 Knocker +1839 135 92544 2 14 800 600 Medium Demihuman Neutral 1 16 21 Byrogue +1840 99 500 1 10 1960 480 Large Brute Earth 2 12 01 Golden Savage +1841 15 10 1 10 1576 576 Medium Brute Earth 1 12 01 Snake Lord's Minion +1842 23 15 1 10 1576 576 Medium Brute Poison 1 12 01 Snake Lord's Minion +1843 43 18 1 10 1576 576 Medium Brute Poison 1 12 01 Snake Lord's Minion +1844 47 25 1 10 1384 768 Large Demon Dark 1 12 01 Snake Lord's Minion +1845 98 500 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Box +1846 90 1499 1 10 1288 288 Small Formless Holy 1 12 06 Dream Metal +1847 98 10000500 1 10 76 672 Medium Angel Ghost 1 12 06 Poring +1848 50 10000 3 10 768 768 Large Demon Dark 3 12 21 Baphomet +1849 60 125000 1 10 1072 672 Medium Undead Undead 4 12 21 Osiris +1850 50 175000 1 10 1678 780 Large Demihuman Earth 4 12 21 Orc Hero +1851 61 7991 1 10 1100 560 Medium Demihuman Neutral 1 12 21 Mobster +1852 99 120 1 10 1288 288 Small Angel Holy 3 12 06 Angeling +1853 99 120 1 10 1288 288 Small Angel Holy 3 12 06 Deviling +1854 17 610 1 10 1960 960 Large Plant Earth 1 12 01 Muka +1855 19 665 1 10 1672 672 Medium Plant Poison 1 12 06 Poison Spore +1856 26 3195 1 10 1560 360 Small Demon Water 1 12 06 Magnolia +1857 15 742 1 10 1872 672 Medium Plant Water 2 12 06 Marin +1858 10 354 1 10 2208 1008 Small Plant Water 3 12 06 Plankton +1859 12 405 4 10 1768 768 Medium Plant Earth 3 12 06 Mandragora +1860 17 817 1 10 1864 864 Small Brute Earth 1 12 06 Coco +1861 43 4278 1 10 1500 500 Small Brute Fire 1 12 06 Choco +1862 18 1109 1 10 1480 480 Small Brute Earth 2 12 06 Martin +1863 25 4500 1 10 1120 552 Medium Brute Earth 2 12 06 Spring Rabbit +1864 124 34981 1 10 676 648 Medium Undead Undead 3 12 21 Zombie Slaughter +1865 123 34833 9 10 1960 576 Medium Undead Undead 3 12 26 Ragged Zombie +1866 115 18319 1 10 824 432 Small Demon Dark 1 12 19 Hellhound +1867 130 40950 1 10 676 504 Medium Demon Dark 2 12 20 Banshee +1868 130 40950 1 10 676 504 Medium Demon Dark 2 12 24 Banshee +1869 121 20150 1 10 972 648 Small Demon Ghost 3 12 20 Flame Skull +1870 133 91304 1 10 1816 1320 Medium Undead Undead 4 12 21 Necromancer +1871 138 5655000 1 10 432 432 Medium Demon Dark 2 12 21 Falling Bishop +1872 127 502000 1 10 432 480 Medium Angel Neutral 4 12 26 Hell Fly +1873 147 6805000 1 10 100 576 Small Demon Ghost 4 12 21 Beelzebub +1874 147 4805000 2 10 212 504 Large Demon Ghost 4 12 21 Beelzebub +1875 80 43000 2 10 1816 1152 Medium Undead Undead 4 12 21 Tristan III +1876 99 99000000 3 10 1446 1296 Large Demon Dark 3 12 21 Lord of the Dead +1877 1 15 0 0 0 0 Small Formless Neutral 1 0 01 Crystal +1878 1 100 1 7 1 1 Small Plant Holy 1 12 06 Mystic Plant +1879 6 1800 1 10 1456 456 Medium Brute Neutral 3 12 06 Eclipse +1880 81 4720 1 10 2304 840 Medium Plant Earth 3 12 01 Leshij +1881 82 4809 1 10 1728 720 Medium Plant Earth 4 12 03 Lesavka +1882 87 6134 2 10 1536 600 Medium Demihuman Water 1 12 04 Baba-Yaga +1883 85 5545 1 10 576 672 Medium Demihuman Water 3 12 04 Kikimora +1884 84 4990 7 10 1536 504 Medium Plant Earth 3 12 04 Mavka +1885 97 1120500 3 10 1536 864 Large Brute Earth 3 12 21 Gopinich +1886 84 4990 7 10 1536 504 Medium Plant Earth 3 12 21 Mavka +1887 94 9990 2 10 1452 483 Medium Brute Water 2 12 21 Freezer +1888 61 15199 1 10 879 672 Medium Brute Water 2 12 04 Baby Hatii +1889 73 100000 3 10 608 408 Large Brute Water 4 12 21 Marozka's Guard +1890 85 599321 3 10 1536 864 Large Brute Earth 3 12 21 The Immortal Koshei +1891 141 1005000 3 10 576 576 Large Angel Holy 4 12 21 Valkyrie +1892 109 17336 2 10 747 1632 Large Demon Dark 4 12 06 Lolo Ruri +1893 122 34686 1 10 1500 500 Large Demihuman Dark 4 12 21 Abysmal Knight +1894 15 15 1 10 1672 672 Small Plant Water 3 12 19 Pouring +1895 91 88902 1 10 76 384 Medium Demon Fire 3 12 06 Seyren Windsor +1896 92 47780 1 10 1152 384 Medium Demihuman Ghost 3 12 06 Kathryne Keyron +1897 81 668000 2 10 768 768 Large Demon Dark 3 12 06 Baphomet +1898 12 434 1 10 2612 912 Medium Undead Undead 1 12 06 Zombie +1899 133 70000 2 14 140 384 Large Demihuman Neutral 4 16 12 Sword Guardian +1900 80 80404 12 14 76 384 Large Demihuman Neutral 4 16 21 Archer Guardian +1901 10 15 1 10 1148 648 Small Brute Holy 1 12 03 Condor +1902 99 49 0 0 0 0 Small Formless Holy 1 0 06 Treasure Box +1903 99 49 0 0 0 0 Small Formless Holy 1 0 06 Treasure Box +1904 28 1000000 1 10 1672 672 Small Formless Neutral 1 12 02 Bomb Poring +1905 98 600500 1 10 1288 288 Large Formless Neutral 1 12 06 Barricade +1906 98 600 1 10 1288 288 Large Formless Neutral 1 12 06 Barricade +1907 90 120500 0 0 1288 288 Small Formless Neutral 1 0 06 Guardian Stone +1908 90 120500 0 0 1288 288 Small Formless Neutral 1 0 06 Guardian Stone +1909 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 Food Storage +1910 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 Food Depot +1911 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 Neutrality Flag +1912 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 Lion Flag +1913 90 650 0 0 1288 288 Large Formless Neutral 1 0 06 Eagle Flag +1914 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 Blue Crystal +1915 90 750 0 0 1288 288 Large Formless Neutral 1 0 06 Pink Crystal +1916 151 7000000 2 10 312 624 Large Demon Dark 4 12 21 Satan Morocc +1917 151 5000000 2 10 312 624 Large Demon Dark 4 12 21 Wounded Morocc +1918 132 63900 1 10 576 480 Large Angel Dark 1 12 21 Incarnation of Morocc +1919 132 64922 1 10 576 648 Medium Demon Dark 3 12 21 Incarnation of Morocc +1920 133 94800 2 10 212 432 Medium Demon Undead 3 12 21 Incarnation of Morocc +1921 134 77389 1 10 1536 648 Medium Demon Ghost 3 12 21 Incarnation of Morocc +1922 132 63900 1 10 312 480 Large Angel Dark 1 12 21 Shadow of Morocc +1923 132 64922 1 10 312 648 Medium Demon Dark 3 12 21 Shadow of Morocc +1924 133 94800 2 10 212 432 Medium Demon Undead 3 12 21 Shadow of Morocc +1925 134 77389 1 10 1536 648 Medium Demon Ghost 3 12 21 Shadow of Morocc +1926 1 15 1 10 1180 480 Medium Formless Fire 2 12 01 Jakk +1927 1 1000 1 10 1960 960 Small Demon Ghost 3 12 01 Whisper +1928 46 500 1 10 980 600 Small Demon Dark 1 12 01 Deviruchi +1929 98 4520500 2 10 768 768 Large Demon Dark 3 12 21 Unsealed Baphomet +1930 90 3000500 2 10 432 768 Small Demihuman Neutral 1 12 21 Piamette +1931 98 3567700 3 10 576 576 Large Angel Ghost 1 12 21 Wish Maiden +1932 80 100 1 10 768 768 Small Formless Earth 2 12 01 Garden Keeper +1933 81 300000 1 10 432 480 Medium Angel Neutral 4 12 13 Garden Watcher +1934 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 Blue Flower +1935 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 Red Flower +1936 98 10500 0 10 768 768 Medium Plant Earth 1 12 06 Yellow Flower +1937 108 11000 1 10 720 360 Small Formless Dark 3 12 04 Constant +1938 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1939 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1940 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1941 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1942 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1943 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1944 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1945 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1946 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1947 90 500500 2 10 432 768 Small Demihuman Neutral 1 12 24 Piamette +1948 136 40327 1 10 576 432 Medium Demihuman Fire 2 12 04 Egnigem Cenia +1949 86 457599 2 14 140 384 Large Demihuman Neutral 4 16 12 Camp Guardian +1950 80 241212 12 14 76 384 Large Demihuman Neutral 4 16 12 Camp Guardian +1951 1 15 0 0 0 0 Small Formless Neutral 1 0 01 Crystal +1952 1 15 0 0 0 0 Small Formless Neutral 1 0 01 Crystal +1953 1 15 0 0 0 0 Small Formless Neutral 1 0 01 Crystal +1954 1 15 0 0 0 0 Small Formless Neutral 1 0 01 Crystal +1955 1 40 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +1956 99 5000000 2 16 76 432 Large Demon Ghost 4 16 21 Naght Sieger +1957 90 2400500 12 14 140 540 Medium Demon Dark 4 16 10 Entweihen Crothen +1958 89 5400000 12 14 432 288 Small Demon Dark 4 16 27 Thorny Skeleton +1959 89 350000 12 14 2864 288 Small Demon Ghost 4 16 27 Thorn of Recovery +1960 89 5400000 12 14 1024 288 Small Demon Dark 4 16 27 Thorn of Magic +1961 89 5400000 12 14 2864 288 Small Demon Dark 4 16 10 Thorn of Purification +1962 10 15 1 10 720 720 Medium Demihuman Neutral 1 12 01 Christmas Thief +1963 49 23900 1 10 1728 816 Medium Demihuman Neutral 2 12 01 New Year Doll +1964 30 2000 1 10 1816 816 Large Brute Ghost 3 12 06 Nightmare +1965 38 4000 1 10 964 864 Small Brute Wind 1 12 06 Wild Rose +1966 72 7800 1 10 300 480 Medium Demon Dark 3 12 06 Doppelganger +1967 79 7800 1 10 300 480 Medium Demihuman Fire 2 12 06 Egnigem Cenia +1968 48 11990 1 10 1872 672 Large Fish Water 3 12 04 Strouf +1969 36 6900 1 10 1272 72 Medium Fish Water 2 12 04 Marc +1970 31 3952 1 10 1872 672 Medium Fish Water 2 12 19 Obeune +1971 19 5000 1 10 1632 432 Small Fish Water 1 12 17 Vadon +1972 21 2087 1 10 2280 1080 Small Plant Water 2 12 01 Marina +1973 99 10 1 10 1872 672 Medium Plant Water 1 12 02 Poring +1974 118 25168 2 10 676 504 Medium Demon Dark 2 12 20 Banshee Master +1975 106 13421 6 10 336 840 Medium Formless Wind 2 12 20 Beholder Master +1976 113 18092 1 10 648 480 Medium Formless Neutral 2 12 20 Cobalt Mineral +1977 107 12810 1 10 384 672 Small Formless Neutral 1 12 20 Heavy Metaling +1978 121 31663 2 10 1840 1440 Large Formless Neutral 3 12 20 Hell Vesper +1979 115 20150 3 10 580 288 Large Demihuman Neutral 3 12 21 Zakudam +1980 85 633600 1 10 964 648 Medium Demihuman Earth 1 12 21 Kublin +1981 81 44193 1 10 1500 500 Large Demihuman Fire 2 12 21 Orc Elite Guard +1982 78 54835 9 10 1960 620 Medium Demihuman Earth 1 12 19 Orc Bowman +1983 87 80087 1 10 2420 720 Medium Undead Undead 1 12 04 Orc Undead +1984 80 50058 1 10 1050 900 Medium Demihuman Earth 2 12 21 Orc Lady +1985 37 45000 1 10 1772 72 Medium Demihuman Dark 2 12 21 Dandelion Member +1986 128 36971 2 10 1000 768 Medium Brute Earth 1 12 07 Tatacho +1987 125 29275 2 10 1000 792 Medium Insect Poison 2 12 21 Centipede +1988 114 18205 7 10 500 576 Medium Plant Poison 2 12 10 Nepenthes +1989 123 26126 1 10 400 780 Small Brute Earth 1 12 13 Hillthrion +1990 137 1900944 2 10 1000 660 Large Brute Earth 3 12 21 Hardrock Mammoth +1991 126 1397451 2 10 500 960 Medium Brute Earth 2 12 21 Tendrillion +1992 120 23117 2 10 1000 624 Medium Brute Holy 3 12 03 Cornus +1993 117 26177 3 10 400 864 Large Brute Earth 2 12 21 Naga +1994 109 13004 1 10 1000 864 Medium Insect Wind 1 12 08 Luciola Vespa +1995 105 12747 1 10 700 600 Medium Plant Earth 3 12 13 Pinguicula +1997 128 36971 2 10 1000 768 Medium Brute Earth 1 12 07 Tatacho +1998 123 26126 1 10 400 780 Small Brute Earth 1 12 13 Hillslion +1999 118 20592 2 10 1000 792 Small Insect Poison 1 12 21 Centipede Larva +2000 50 7000 1 10 300 384 Medium Demihuman Neutral 1 12 06 Male Game Master +2001 50 7000 1 10 300 384 Medium Demihuman Neutral 1 12 06 Female Game Master +2002 50 8000 1 10 1120 552 Medium Brute Earth 2 12 02 Talisman Ghost +2003 97 720500 2 10 576 960 Large Demihuman Water 2 12 21 Talisman Ghost +2004 63 16029 2 10 637 1008 Medium Demon Dark 3 12 21 Talisman Ghost +2005 44 8200 3 10 608 1440 Small Formless Water 4 12 04 Plasma +2006 49 5900 3 10 608 1440 Small Formless Dark 4 12 04 Plasma +2007 43 5700 3 10 608 1440 Small Formless Fire 4 12 04 Plasma +2008 82 4000000 3 10 828 528 Large Demon Ghost 2 12 21 Woomawang +2009 82 2000000 1 10 414 1080 Medium Demon Ghost 2 12 21 Woomawang +2010 66 500000 1 10 1100 960 Large Demon Ghost 1 12 24 Ox +2011 40 99999 1 10 2456 912 Medium Undead Undead 2 12 04 Tenacious Ghoul +2012 15 99999 1 10 2612 912 Medium Undead Undead 1 12 04 Tenacious Zombie +2013 114 18205 1 10 576 960 Medium Dragon Earth 1 12 03 Draco +2014 101 100000 0 10 24 0 Medium Dragon Earth 4 12 06 Draco Egg +2015 113 18092 1 10 1426 600 Medium Plant Poison 2 12 13 Dark Pinguicula +2016 121 37420 1 10 504 960 Large Formless Water 4 12 19 Aqua Elemental +2017 131 58299 1 10 792 540 Medium Demihuman Earth 3 12 20 Rata +2018 135 63342 1 10 672 420 Medium Demihuman Earth 3 12 20 Duneyrr +2019 144 388933 1 10 504 960 Large Plant Earth 3 12 13 Ancient Tree +2020 139 337220 1 10 576 660 Medium Formless Water 3 12 13 Rhyncho +2021 139 345560 10 10 360 780 Medium Formless Water 3 12 05 Phylla +2022 117 3452000 2 10 1596 1620 Large Dragon Dark 4 12 21 Nidhoggur's Shadow +2023 147 434300 1 10 768 1776 Small Formless Dark 2 12 19 Dark Shadow +2024 133 45739 1 10 1008 1200 Large Formless Earth 2 12 20 Bradium Golem +2025 10 18 1 10 1248 1248 Medium Formless Neutral 1 12 01 Wild Gift Box +2026 90 552500 1 10 1772 72 Medium Demihuman Dark 1 12 21 Runaway Dandelion Member +2027 147 434300 1 10 768 1776 Small Formless Dark 2 12 24 Dark Shadow +2030 90 240500 2 10 432 432 Large Demon Undead 4 12 13 Hiden Priest +2031 80 120000 1 10 1772 72 Medium Demihuman Dark 2 12 13 Dandelion +2032 50 99999 1 10 868 480 Small Demon Dark 1 12 13 Forest Guardian +2033 1 100 1 7 1 1 Small Plant Earth 1 12 06 Golden Tulip +2034 9 164 1 10 1600 900 Small Brute Fire 1 12 01 Baby Desert Wolf +2035 90 200500 0 10 1001 1 Small Insect Earth 1 12 06 Nihility Zem +2036 98 11780 1 10 576 576 Medium Undead Undead 3 12 13 Valkyrie Randgris +2037 90 5500 1 10 576 576 Medium Angel Holy 3 12 01 Valkyrie Randgris +2038 90 10500 1 10 576 576 Medium Angel Holy 3 12 01 Valkyrie Randgris +2039 65 28980 2 10 768 500 Large Formless Dark 2 12 13 Executioner +2040 71 29900 1 10 816 500 Medium Formless Dark 3 12 13 Ogretooth +2041 76 33350 2 10 1152 500 Large Formless Dark 4 12 13 Mysteltainn +2042 100 4500 9 10 504 1020 Medium Formless Neutral 1 12 10 Silver Sniper +2043 100 2500 7 10 504 1020 Medium Formless Fire 1 12 06 Magic Decoy +2044 100 2500 7 10 504 1020 Medium Formless Water 1 12 06 Magic Decoy +2045 100 2500 7 10 504 1020 Medium Formless Earth 1 12 06 Magic Decoy +2046 100 2500 7 10 504 1020 Medium Formless Wind 1 12 06 Magic Decoy +2047 99 46708 3 10 400 864 Large Brute Earth 2 12 04 Naga +2048 99 8780 1 10 1426 600 Medium Plant Poison 2 12 04 Dark Pinguicula +2049 99 45200 1 10 1008 1200 Large Formless Earth 2 12 04 Bradium Golem +2050 99 33220 1 10 504 960 Large Formless Water 4 12 05 Aqua Elemental +2052 96 100000000 2 10 868 768 Large Demon Undead 4 12 01 Dark Lord +2057 1 4720 1 10 1000 500 Small Brute Poison 2 12 19 Strange Mouse +2058 51 6120 1 10 972 500 Medium Formless Neutral 3 12 19 Mimic +2059 55 7543 2 10 516 768 Medium Demon Earth 4 12 04 Disguise +2060 62 10000 1 10 502 1999 Medium Demihuman Neutral 3 12 17 Alice +2066 5 50 1 10 1084 2304 Small Insect Wind 3 12 01 Anopheles +2067 3 500 1 10 1084 2304 Small Insect Wind 3 12 01 Anopheles +2068 93 1283990 2 10 1152 1152 Large Brute Fire 3 12 21 Boitata +2069 79 4262 1 10 384 672 Medium Fish Water 3 12 17 Iara +2070 75 4219 1 10 768 480 Large Fish Water 3 12 04 Piranha +2071 80 3268 1 10 1216 816 Large Demon Fire 3 12 04 Headless Mule +2072 71 3103 1 10 576 1248 Medium Brute Earth 2 12 17 Jaguar +2073 70 2564 1 10 960 1440 Medium Brute Wind 2 12 03 Toucan +2074 68 2561 1 10 528 480 Medium Demihuman Earth 1 12 07 Curupira +2075 1 300 5 10 1632 432 Large Formless Neutral 1 12 06 Ragunta +2076 105 190800 1 10 1056 1056 Medium Demon Wind 3 12 19 Shadow of Deception +2077 105 244400 1 10 720 384 Medium Demon Dark 3 12 19 Shadow of Illusion +2078 105 206660 1 10 1306 1056 Medium Demon Dark 3 12 19 Shadow of Pleasure +2079 77 7777777 0 0 1152 1152 Large Formless Neutral 3 0 21 Crystal +2080 1 100 1 10 1864 864 Large Formless Neutral 3 12 21 Crystal +2081 34 854 7 10 800 432 Small Plant Water 2 12 06 Strange Hydra +2082 75 4219 1 10 768 480 Large Fish Water 3 12 20 Piranha +2083 130 51100 1 10 384 672 Small Insect Earth 1 12 03 One-Horned Scaraba +2084 134 58900 1 10 336 360 Small Insect Earth 1 12 03 Two-Horned Scaraba +2085 136 62600 1 10 504 624 Medium Insect Earth 2 12 04 Antler Scaraba +2086 139 67700 1 10 588 768 Medium Insect Earth 2 12 04 Rake Scaraba +2087 140 2441600 3 10 864 1000 Large Insect Earth 3 12 21 Scaraba Queen +2088 125 63000 0 10 96 1 Small Insect Neutral 1 12 06 Scaraba Egg +2089 126 66000 0 10 96 1 Small Insect Neutral 1 12 06 Scaraba Egg +2090 127 69000 0 10 96 1 Small Insect Neutral 1 12 06 Antler Scaraba Egg +2091 128 72000 0 10 96 1 Small Insect Neutral 1 12 06 Rake Scaraba Egg +2092 132 54591 3 10 360 360 Large Insect Water 3 12 04 Dolomedes +2093 15 15 2 10 1872 672 Small Formless Holy 1 12 01 Botaring +2094 50 362000 1 10 1678 780 Large Demihuman Earth 2 12 21 Orc Hero +2095 65 947500 1 10 872 1344 Large Brute Fire 1 12 21 Eddga +2096 68 475840 1 10 1072 672 Medium Undead Undead 4 12 21 Osiris +2097 75 350000 3 10 1290 1140 Large Demon Dark 4 12 21 Dracula +2098 77 380000 1 10 480 480 Medium Demon Dark 3 12 21 Doppelganger +2099 78 378000 1 10 1148 648 Small Insect Wind 4 12 21 Mistress +2100 81 668000 2 10 768 768 Large Demon Dark 3 12 21 Baphomet +2101 94 603883 3 10 1446 1296 Large Demon Dark 3 12 21 Lord of the Dead +2102 96 1190900 2 10 868 768 Large Demon Undead 4 12 21 Dark Lord +2103 98 2626000 3 10 432 840 Large Brute Water 4 12 21 Ktullanux +2104 105 1101000 3 10 588 816 Large Brute Ghost 3 12 21 Evil Snake Lord +2105 110 1442000 2 10 900 1000 Large Brute Earth 2 12 21 Turtle General +2106 128 3802000 3 10 504 912 Large Brute Holy 2 12 21 Vesper +2107 138 5655000 1 10 432 432 Medium Demon Dark 2 12 21 Fallen Bishop Hibram +2108 139 3005000 3 10 1344 2880 Large Formless Ghost 3 12 21 Gloom Under Night +2109 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 Valkyrie Randgris +2110 146 6935000 3 10 212 384 Large Formless Fire 4 12 21 Ifrit +2111 160 6750000 1 10 76 384 Medium Demihuman Earth 4 12 21 Whitesmith Howard +2112 160 4680000 1 10 76 384 Medium Demihuman Fire 4 12 21 Lord Knight Seyren +2113 160 4230000 1 10 76 384 Medium Demihuman Poison 4 12 21 Assassin Cross Eremes +2126 100 8000 1 10 1084 2304 Small Insect Wind 3 12 06 Anopheles +2127 110 9000 1 10 1292 792 Small Insect Wind 1 12 06 Hornet +2128 120 10000 1 10 1292 792 Small Insect Wind 1 12 06 Hornet +2129 130 11000 1 10 1000 864 Medium Insect Wind 1 12 06 Luciola Vespa +2130 140 12000 1 10 1000 864 Medium Insect Wind 1 12 06 Luciola Vespa +2131 135 608920 3 10 840 648 Large Dragon Dark 3 12 21 Lost Dragon +2132 145 122110 1 10 864 1056 Medium Insect Earth 3 12 04 Pom Spider +2133 144 91720 1 10 576 480 Medium Insect Earth 2 12 04 Angra Mantis +2134 142 86990 1 10 384 792 Small Brute Earth 2 12 04 Parus +2135 100 1000 1 0 192 192 Medium Plant Earth 1 0 21 Creeper +2136 142 85100 1 10 432 300 Small Demihuman Wind 2 12 04 Little Fatum +2137 140 81200 1 10 576 1140 Small Formless Neutral 1 12 04 Miming +2138 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2139 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2140 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2141 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2142 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2143 130 10 1 0 1248 576 Small Formless Neutral 1 0 01 Nydhoggur Memory +2144 136 62600 1 10 504 624 Medium Insect Earth 2 12 24 Antler Scaraba +2145 139 67700 1 10 588 768 Medium Insect Earth 2 12 24 Rake Scaraba +2146 117 300000 2 10 1596 1620 Large Dragon Dark 4 12 24 Shade of Dragon +2147 0 0 0 10 0 0 Small Formless Neutral 1 12 06 White Plant +2148 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Blue Plant +2149 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Savage Babe +2150 12 10 1 0 96 96 Medium Plant Water 1 0 06 Ripe Watermelon +2151 80 3631 2 10 500 576 Medium Plant Earth 1 12 04 Rafflesia Alnoldi +2152 81 4291 2 10 500 576 Medium Brute Poison 3 12 04 Comodo +2153 84 4084 1 10 576 720 Medium Angel Wind 1 12 04 Cendrawasih +2154 85 3235 1 10 1152 2304 Small Formless Fire 3 12 04 Banaspaty +2155 88 5381 1 10 576 768 Large Demon Fire 2 12 04 Butoijo +2156 94 1266000 2 10 576 576 Large Demon Dark 2 12 21 Leak +2157 85 3235 1 10 0 0 Small Formless Fire 3 12 04 Banaspaty +2158 95 5000 1 10 1292 792 Small Insect Wind 1 12 06 Hornet +2159 110 11960 1 10 1292 792 Small Insect Wind 1 12 06 Giant Hornet +2160 130 16466 1 10 1000 864 Medium Insect Wind 1 12 06 Luciola Vespa +2161 130 204400 1 10 384 672 Small Insect Earth 1 12 20 Gold One-Horn Scaraba +2162 134 235600 1 10 336 360 Small Insect Earth 1 12 20 Gold Two-Horn Scaraba +2163 136 250400 1 10 504 624 Medium Insect Earth 2 12 20 Gold Antler Scaraba +2164 139 270800 1 10 588 768 Medium Insect Earth 2 12 20 Gold Rake Scaraba +2165 140 6441600 3 10 864 1000 Large Insect Earth 3 12 21 Gold Queen Scaraba +2166 125 126000 0 10 96 1 Small Insect Earth 1 12 06 Gold One-Horn Scaraba E +2167 126 132000 0 10 96 1 Small Insect Earth 1 12 06 Gold Two-Horn Scaraba Eg +2168 127 138000 0 10 96 1 Small Insect Earth 1 12 06 Gold Antler Scaraba Egg +2169 128 144000 0 10 96 1 Small Insect Earth 1 12 06 Gold Rake Scaraba Egg +2170 136 250400 1 10 504 624 Medium Insect Earth 2 12 20 Gold Antler Scaraba +2171 139 270800 1 10 588 768 Medium Insect Earth 2 12 20 Gold Rake Scaraba +2172 130 204400 1 10 384 672 Small Insect Earth 1 12 20 Gold One-Horn Scaraba +2173 134 235600 1 10 336 360 Small Insect Earth 1 12 20 Gold Two-Horn Scaraba +2174 95 120000 1 10 1632 432 Small Fish Water 1 12 20 Deep Sea Vadon +2175 95 120000 1 10 1956 756 Small Fish Water 2 12 20 Deep Sea Marse +2176 95 120000 1 7 992 792 Small Fish Water 1 12 20 Deep Sea Crab +2177 100 160000 1 10 1248 48 Small Fish Water 1 12 20 Deep Sea Cornutus +2178 100 160000 1 10 864 864 Small Fish Water 2 12 20 Deep Sea Shellfish +2179 100 160000 1 10 1776 576 Small Insect Water 1 12 20 Deep Sea Kukre +2180 145 400000 1 10 1872 672 Large Fish Water 3 12 20 Deep Sea Strouf +2181 145 400000 1 10 1968 768 Large Fish Water 2 12 20 Deep Sea Sword Fish +2182 145 400000 1 10 1272 72 Medium Fish Water 2 12 20 Deep Sea Marc +2183 151 700000 1 10 900 500 Medium Fish Water 2 12 20 Deep Sea Anolian +2184 151 700000 1 10 1872 672 Medium Demon Water 3 12 20 Deep Sea Obeaune +2185 151 700000 1 10 2012 1728 Medium Demon Water 2 12 20 Deep Sea Kapha +2186 100 1200000 1 10 864 864 Large Fish Water 2 12 21 Coelacanth +2187 100 2200000 1 10 864 864 Large Fish Water 2 12 21 Gloomy Coelacanth +2188 100 2200000 1 10 864 864 Large Fish Water 2 12 21 Weird Coelacanth +2189 155 5200000 1 10 864 864 Large Fish Water 2 12 21 Mutant Coelacanth +2190 155 5200000 1 10 864 864 Large Fish Water 2 12 21 Violent Coelacanth +2191 100 100000 1 0 384 720 Small Fish Water 1 0 10 Seaweed +2192 90 6000 1 10 576 2160 Small Fish Water 2 12 20 Octopus +2193 90 500000 1 10 432 720 Small Fish Water 2 12 10 Octopus Leg +2194 95 500000 1 10 576 1584 Large Fish Water 2 12 21 Giant Octopus +2195 100 160000 1 10 1776 576 Small Insect Water 1 12 20 Kukre +2196 145 400000 1 10 1872 672 Large Fish Water 3 12 20 Strouf +2197 91 8029 1 10 768 1224 Medium Fish Water 2 12 03 Red Eruma +2198 117 28453 1 10 576 720 Large Fish Water 2 12 21 King Dramoh +2199 87 5577 1 10 1536 1296 Small Formless Water 1 12 02 Siorava +2200 1 1 1 0 432 792 Small Formless Neutral 1 0 01 Taini +2201 113 20805 1 10 768 792 Medium Fish Water 2 12 04 Sropho +2202 124 5602800 3 10 432 864 Large Fish Water 4 12 21 Kraken +2203 115 19235 1 10 1008 936 Small Fish Water 2 12 03 Pot Dofle +2204 110 16740 1 10 768 792 Medium Fish Water 2 12 04 Sedora +2206 124 39190 1 10 576 864 Large Fish Water 3 12 10 Kraken Tentacle +2208 95 33300 1 10 432 792 Large Fish Water 2 12 04 Wild Rider +2209 1 7 1 10 1288 288 Small Insect Neutral 3 12 01 Thief Bug +2210 1 100 1 10 1456 456 Small Brute Neutral 1 12 01 Christmas Snow Rabbit +2211 10 10 1 10 512 780 Small Formless Neutral 1 12 01 Christmas Teddy Bear +2212 92 100000000 2 10 468 468 Large Formless Wind 4 12 21 Stormy Knight +2213 81 8614 2 10 672 500 Medium Demon Wind 1 12 21 Wanderer +2214 85 6157 2 10 637 1008 Medium Demon Dark 3 12 21 Evil Nymph +2215 83 9815 2 10 800 600 Large Formless Fire 3 12 21 Kasa +2216 87 9517 2 10 140 384 Large Formless Fire 3 12 21 Salamander +2217 85 14493 1 10 512 780 Small Formless Neutral 3 12 21 Teddy Bear +2218 10 5 1 10 1632 432 Small Fish Water 2 12 01 Octopus Tentacle +2219 10 20 2 10 1632 432 Large Fish Water 2 12 01 Giant Octopus +2220 10 20 1 10 912 1248 Small Undead Undead 1 12 01 Messenger of Devil +2221 141 478745 1 10 76 864 Medium Demihuman Holy 3 12 19 Randel +2222 141 316468 1 10 1152 864 Medium Demihuman Fire 3 12 19 Flamel +2223 141 253145 1 10 1152 864 Medium Demihuman Ghost 3 12 19 Celia +2224 141 279562 1 10 76 768 Medium Demon Water 4 12 20 Chen +2225 141 266926 1 10 76 864 Medium Demon Poison 4 12 20 Gertie +2226 142 256202 1 10 76 864 Medium Demihuman Wind 3 12 19 Alphoccio +2227 142 204962 2 10 76 864 Medium Demihuman Wind 3 12 19 Trentini +2228 160 3163000 1 10 76 864 Medium Demihuman Holy 4 12 21 Paladin Randel +2229 160 2531750 1 10 1152 864 Medium Demihuman Fire 4 12 21 Creator Flamel +2230 160 2025160 1 10 1152 864 Medium Demihuman Ghost 3 12 21 Professor Celia +2231 160 2236500 1 10 76 768 Medium Demihuman Water 4 12 21 Champion Chen +2232 160 2135410 1 10 76 864 Medium Demon Poison 4 12 21 Stalker Gertie +2233 160 2049620 1 10 76 864 Medium Demihuman Wind 4 12 21 Clown Alphoccio +2234 160 2049620 2 10 76 864 Medium Demihuman Wind 4 12 21 Gypsy Trentini +2235 160 6870000 1 10 76 864 Medium Demihuman Holy 4 12 21 Paladin Randel +2236 160 4230000 1 10 1152 864 Medium Demihuman Fire 4 12 21 Creator Flamel +2237 160 3847804 1 10 1152 864 Medium Demihuman Ghost 3 12 21 Professor Celia +2238 160 4249350 1 10 76 768 Medium Demon Water 4 12 21 Champion Chen +2239 160 4057279 1 10 76 864 Medium Demon Poison 4 12 21 Stalker Gertie +2240 160 3894278 1 10 76 864 Medium Demihuman Wind 4 12 21 Clown Alphoccio +2241 160 3894278 2 10 76 864 Medium Demihuman Wind 4 12 21 Gypsy Trentini +2242 135 551578 1 10 200 420 Medium Demon Neutral 1 12 04 Desert Wolf +2243 130 274531 1 10 200 900 Small Demon Neutral 1 12 04 Desert Wolf +2244 130 300 1 10 200 768 Medium Undead Water 4 12 04 Dark Martial Arts Master +2245 1 100 1 10 1000 480 Medium Demihuman Water 1 12 01 Experience Test +2246 95 9000 1 10 912 1344 Medium Demihuman Fire 2 12 04 Wootan Fighter +2247 95 20000 1 10 106 1056 Medium Formless Earth 3 12 01 Mi Gao +2248 15 15 1 10 1872 672 Medium Plant Water 1 12 01 Golden Poring +2249 141 2205000 2 10 576 1380 Medium Demihuman Fire 4 12 21 Angry Student Pyuriel +2250 136 500255 2 10 1600 432 Small Demihuman Fire 2 12 21 Warrior Laura +2251 146 2507989 1 10 1344 2592 Large Formless Wind 4 12 21 Gioia +2252 138 501765 3 10 880 1224 Small Formless Wind 3 12 21 Elvira +2253 142 2500148 2 10 900 792 Large Demihuman Earth 3 12 21 General Daehyun +2254 137 502015 2 10 1000 1008 Medium Demihuman Wind 3 12 21 Samurai Soheon +2255 143 2505000 1 10 900 648 Large Formless Dark 3 12 21 Dark Guardian Kades +2256 135 501489 1 10 1576 504 Small Angel Holy 3 12 21 Rudo +2257 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Piamette +2258 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Piamette +2259 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Garden Keeper +2260 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Garden Keeper +2261 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Garden Watcher +2262 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Garden Watcher +2263 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Wish Maiden +2264 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Armeyer Dinze +2265 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Armeyer Dinze +2266 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Errende Ebecee +2267 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Errende Ebecee +2268 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Kavach Icarus +2269 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Kavach Icarus +2270 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Laurell Weinder +2271 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Laurell Weinder +2272 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Wickebine Tres +2273 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Wickebine Tres +2274 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Egnigem Cenia +2275 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Egnigem Cenia +2276 0 0 0 10 0 0 Small Formless Neutral 1 12 20 Doppelganger +2277 136 500255 2 10 1600 432 Small Demihuman Fire 2 12 21 Warrior Laura +2278 138 501765 3 10 880 1224 Small Formless Wind 3 12 21 Elvira +2279 137 502015 2 10 1000 1008 Medium Demihuman Wind 3 12 21 Samurai Soheon +2280 135 501489 1 10 1576 504 Small Angel Holy 3 12 21 Rudo +2281 147 204109 1 10 768 1776 Small Formless Dark 2 12 19 Dark Shadow +2282 145 180018 1 10 920 720 Medium Demon Dark 3 12 21 Dark Frame +2283 141 181878 2 10 864 1252 Medium Demon Undead 4 12 13 Dark Priest +2284 145 194830 1 10 1028 528 Medium Demihuman Wind 2 12 13 Dark Axe Kobold +2285 142 181340 1 10 1528 528 Medium Demihuman Poison 2 12 13 Dark Hammer Kobold +2286 141 182830 1 10 1228 528 Medium Demihuman Fire 2 12 13 Dark Mace Kobold +2287 142 180530 9 10 1008 1008 Small Demihuman Fire 1 12 05 Dark Kobold Archer +2288 140 5 1 0 0 0 Small Formless Holy 1 0 06 Treasure Chest +2289 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Fabre +2290 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Thief Bug +2291 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Hornet +2292 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Horn +2293 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Beetle King +2294 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Argiope +2295 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Giant Spider +2296 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Killer Mantis +2297 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Giant Hornet +2298 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Dragon Tail +2299 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Stainer +2300 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Chonchon +2301 0 0 0 0 0 0 Small Formless Neutral 1 0 06 Steel Chonchon +2302 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Hunter Fly +2303 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Maya +2304 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Queen Scaraba +2305 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Ungoliant +2306 65 100000000 1 10 768 768 Large Insect Fire 2 12 21 Golden Thief Bug +2307 0 0 0 10 0 0 Small Formless Neutral 1 12 06 Mistress +2308 140 5 1 10 0 0 Small Formless Holy 1 12 06 Zanzou +2309 121 33102 1 10 1568 432 Large Demihuman Earth 2 12 19 Bungisngis +2310 125 29275 1 10 1424 576 Medium Demihuman Neutral 2 12 20 Engkanto +2311 107 15656 1 10 280 720 Medium Demon Dark 2 12 04 Manananggal +2312 110 14557 1 10 1664 336 Medium Demon Neutral 2 12 04 Mangkukulam +2313 115 20150 1 10 1064 936 Large Brute Wind 3 12 20 Tikbalang +2314 105 11589 1 10 496 504 Small Demon Dark 2 12 04 Tiyanak +2315 111 17869 1 10 424 576 Small Demon Dark 2 12 04 Wakwak +2316 100 10617 1 10 1328 672 Large Plant Earth 2 12 17 Jejeling +2317 115 1519517 1 10 920 1080 Medium Demon Dark 2 12 21 Bangungot +2318 99 1409758 1 10 920 1080 Medium Demon Dark 2 12 06 Bangungot +2319 151 4090365 1 10 1424 576 Large Dragon Water 4 12 21 Buwaya +2320 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 Bakonawa +2321 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 Bakonawa +2322 156 3351884 10 10 440 672 Large Dragon Water 4 12 10 Bakonawa +2323 100 50000 1 10 1672 672 Small Formless Neutral 1 12 26 Bomb Poring +2324 100 50000 7 10 832 500 Medium Fish Poison 1 12 26 Penomena +2325 57 7510 1 10 868 480 Small Demon Dark 1 12 21 Baphomet +2326 45 7513 1 10 1430 1080 Small Brute Earth 1 12 21 Galapago +2327 115 250 1 10 0 0 Medium Demon Dark 2 12 06 Bangungot +2328 1 200 1 10 1 1 Small Formless Neutral 1 12 06 Drum +2329 100 10000 0 10 1001 1 Small Formless Neutral 3 12 06 Buwaya's Egg +2330 135 20145 1 10 576 960 Small Plant Earth 1 12 21 Slave +2331 100 10 1 10 384 720 Small Fish Water 1 12 10 Seaweed +2332 138 30000 1 10 1424 576 Small Plant Water 4 12 21 Buwaya +2333 138 20 1 10 1 1 Small Plant Water 4 12 06 Weakpoint +2334 145 194830 1 10 424 576 Small Demon Dark 2 12 04 Wakwak +2335 140 5 1 10 0 0 Small Formless Holy 1 12 06 Bakonawa's Treasure +2336 38 694 1 10 800 1200 Small Brute Earth 1 12 06 Domovoi +2337 151 10000 7 12 0 1000 Small Insect Ghost 4 12 10 Monster +2338 107 204511 1 10 280 720 Medium Demon Dark 2 12 04 Manananggal +2339 110 102154 1 10 1664 336 Medium Demon Neutral 2 12 04 Mangkukulam +2340 105 50211 1 10 496 504 Small Demon Dark 2 12 04 Tiyanak +2341 141 3205000 3 10 576 576 Large Angel Holy 4 12 21 2011 RWC Boss +2342 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Diabolic +2343 151 10000 7 12 0 2000 Small Insect Ghost 4 12 10 Hidden Mob +2344 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Wish Maiden +2345 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Zealotus +2346 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Ktullanux +2347 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Eddga +2348 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Mao Guai +2349 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Loli Ruri +2350 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Sedora +2351 83 9815 2 10 1080 780 Small Demon Dark 2 12 06 Chepet +2352 100 10000000 1 10 128 1104 Large Formless Neutral 3 12 21 RSX 0805 +2353 121 27346 1 10 1360 960 Large Brute Fire 2 12 21 Minorous (Nightmare) +2354 117 26177 1 10 1772 72 Medium Undead Undead 2 12 21 Mummy (Nightmare) +2355 115 20150 1 10 2468 768 Medium Undead Undead 1 12 21 Verit (Nightmare) +2356 137 63101 1 10 972 500 Medium Formless Neutral 3 12 21 Mimic (Nightmare) +2357 137 63101 1 10 972 500 Medium Formless Neutral 3 12 21 Mimic (Nightmare) +2358 134 48013 1 10 960 500 Medium Insect Earth 2 12 21 Arclouze (Nightmare) +2359 134 48013 1 10 960 500 Medium Insect Earth 2 12 21 Arclouze (Nightmare) +2360 141 90157 1 10 1772 120 Medium Undead Undead 2 12 21 Ancient Mummy (Nightmare +2361 141 90157 1 10 1772 120 Medium Undead Undead 2 12 21 Ancient Mummy (Nightmare +2362 145 2515784 3 14 854 2016 Large Demihuman Earth 3 12 10 Amon Ra (Nightmare) +2363 143 82200 3 10 472 1056 Medium Insect Wind 2 12 21 Menblatt +2364 141 81031 9 10 1500 768 Medium Brute Wind 1 12 05 Petal +2365 146 130131 1 10 1500 720 Small Plant Wind 1 12 21 Cenere +2366 148 134615 1 10 864 960 Small Formless Neutral 3 12 21 Antique Book +2367 149 131211 1 10 480 1728 Small Formless Water 4 12 21 Lichtern +2368 147 131513 1 10 0 3456 Small Formless Ghost 4 12 21 Lichtern +2369 149 135718 1 10 0 4032 Small Formless Fire 4 12 21 Lichtern +2370 151 133451 1 10 0 2304 Small Formless Earth 4 12 21 Lichtern +2371 155 151548 3 10 480 1536 Large Formless Neutral 4 12 21 Faithful Manager +2372 1 15 1 7 1 1 Small Plant Earth 1 12 06 Soil +2373 1 15 1 7 1 1 Small Plant Earth 1 12 06 Rock +2374 1 15 1 7 1 1 Small Plant Earth 1 12 06 Thicket +2375 100 4444 1 10 2036 648 Medium Demon Undead 3 12 21 Incarnation of Morocc +2376 100 2000 1 10 2076 648 Medium Demon Dark 3 12 21 Incarnation of Morocc +2377 1 12 1 10 252 816 Small Dragon Neutral 1 12 01 Novus +2378 136 30000 1 10 504 624 Medium Insect Earth 2 12 04 Antler Scaraba +2379 10 10 1 10 1576 576 Small Brute Earth 1 12 01 Socks Stealing Raccoon +2380 10 10 1 10 1576 576 Small Brute Earth 1 12 01 Gift Stealing Raccoon +2398 1 40 1 10 1872 672 Small Plant Water 1 12 02 Little Poring +2401 1 55 1 10 1872 672 Medium Plant Water 1 12 02 Poring +2402 30 524 1 10 1672 672 Medium Plant Poison 1 12 02 Poporing +2403 30 524 1 10 1672 672 Medium Plant Poison 1 12 02 Poporing +2404 9 95 1 10 2208 1008 Small Undead Undead 1 12 01 Dead Plankton +2405 18 223 1 10 2228 528 Medium Undead Undead 1 12 01 Weak Skeleton +2406 23 337 1 10 2276 576 Medium Undead Undead 1 12 01 Weak Soldier Skeleton +2407 19 243 1 10 2228 528 Medium Undead Undead 1 12 01 Sailor Skeleton +2408 10 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy 10 +2409 50 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy 50 +2410 100 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy 100 +2411 150 99999999 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy 150 +2413 10 99999999 0 0 0 0 Medium Formless Fire 1 0 06 Dummy 10 +2415 98 13260 1 10 432 400 Medium Demihuman Fire 3 12 04 Knight Seyren +2416 98 9029 1 10 432 400 Medium Demihuman Poison 4 12 04 Assassin Eremes +2417 98 11803 1 10 432 400 Medium Demihuman Water 4 12 04 Blacksmith Howard +2418 98 8835 14 10 432 400 Medium Demihuman Wind 3 12 04 Hunter Cecil +2419 98 7092 1 10 864 400 Medium Demihuman Ghost 3 12 04 Wizard Kathryne +2420 98 9192 1 10 864 400 Medium Demihuman Holy 3 12 20 Priest Margaretha +2421 98 13440 1 10 432 400 Medium Demihuman Fire 2 12 04 Crusader Egnigem +2422 98 11712 1 10 432 400 Medium Demihuman Poison 3 12 19 Rogue Wickebine +2423 98 11376 1 10 432 400 Medium Demihuman Earth 3 12 19 Alchemist Armeyer +2424 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 Bard Kavach +2425 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 Dancer Josephina +2426 98 9868 1 10 432 400 Medium Demihuman Ghost 2 12 19 Sage Laurell +2427 98 11168 1 10 432 400 Medium Demihuman Holy 2 12 19 Monk Errende +2428 98 13260 1 10 432 400 Medium Demihuman Fire 3 12 04 Knight Seyren +2429 98 9029 1 10 432 400 Medium Demihuman Poison 4 12 04 Assassin Eremes +2430 98 11803 1 10 432 400 Medium Demihuman Water 4 12 04 Blacksmith Howard +2431 98 8835 14 10 432 400 Medium Demihuman Wind 3 12 04 Hunter Cecil +2432 98 7092 1 10 864 400 Medium Demihuman Ghost 3 12 04 Wizard Kathryne +2433 98 9192 1 10 864 400 Medium Demihuman Holy 3 12 20 Priest Margaretha +2434 98 13440 1 10 432 400 Medium Demihuman Fire 2 12 04 Crusader Egnigem +2435 98 11712 1 10 432 400 Medium Demihuman Poison 3 12 19 Rogue Wickebine +2436 98 11376 1 10 432 400 Medium Demihuman Earth 3 12 19 Alchemist Armeyer +2437 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 Bard Kavach +2438 98 12637 9 10 432 400 Medium Demihuman Wind 2 12 19 Dancer Josephina +2439 98 9868 1 10 432 400 Medium Demihuman Ghost 2 12 19 Sage Laurell +2440 98 11168 1 10 432 400 Medium Demihuman Holy 2 12 19 Monk Errende +2441 99 265203 3 10 76 384 Medium Demihuman Fire 4 12 21 The Last One +2442 99 268800 3 10 76 384 Medium Demihuman Fire 4 12 21 King of the Alley +2443 99 270000 1 10 432 400 Medium Demihuman Fire 3 12 21 Aira +2444 99 270000 1 10 432 400 Medium Demihuman Ghost 3 12 21 Kuluna +2445 99 270000 1 10 432 400 Medium Demihuman Earth 4 12 21 Mallina +2446 99 270000 14 10 432 400 Medium Demihuman Wind 3 12 21 Ezella +2447 99 270000 1 10 864 400 Medium Demihuman Water 3 12 21 Lune +2448 99 270000 1 10 864 400 Medium Demihuman Dark 3 12 21 Morin +2449 99 270000 1 10 432 400 Medium Demihuman Poison 2 12 21 Nasarin +2450 1 30 1 10 1072 672 Medium Plant Water 1 12 01 Thief Poring +2451 1 30 1 10 672 864 Medium Plant Water 1 12 01 Strange Baby Orc +2452 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2453 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2454 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2455 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2456 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2457 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2458 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2459 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2460 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2461 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2462 99 0 0 0 0 0 Small Formless Neutral 1 0 06 Treasure Chest +2464 130 135600 1 10 2612 912 Medium Undead Undead 1 12 04 Corrupted Steward +2465 133 100168 1 10 1816 576 Large Undead Undead 4 12 04 Corrupted Monk +2466 132 208100 1 10 2456 912 Medium Undead Undead 2 12 04 Grand Chamberlain in pai +2467 133 80811 1 10 960 500 Small Insect Earth 2 12 04 Maggot +2468 135 184080 2 10 824 780 Medium Undead Dark 2 12 04 Corrupted Palace Guard +2469 136 144370 14 10 1152 1152 Medium Undead Dark 2 12 04 Wandering Archer +2470 142 225789 2 10 1000 500 Large Undead Dark 4 12 04 Corrupted Abysmal Knight +2471 143 236851 2 10 0 1000 Large Undead Undead 1 12 04 Suffering Khalitzburg +2472 143 246751 2 10 828 528 Large Undead Dark 4 12 04 Bloody Knight +2473 145 950033 2 10 350 864 Medium Undead Undead 2 12 26 1st Commander of Destruc +2474 145 848011 2 10 350 768 Medium Undead Undead 2 12 26 2nd Commander of Destruc +2475 150 1820000 3 10 576 672 Large Demon Earth 3 12 10 Corrupted Soul +2476 150 4290000 3 10 312 1200 Large Undead Undead 4 12 26 Amdarais +2477 151 130682 2 10 672 500 Medium Demon Wind 1 12 04 Nightmare Wander Man +2478 146 103220 1 10 864 500 Small Formless Neutral 3 12 04 Nightmare Rideword +2479 143 24958 1 10 972 500 Medium Formless Neutral 3 12 04 Nightmare Mimic +2480 134 72837 1 10 2276 576 Large Undead Undead 4 12 04 Nightmare Evil Druid +2481 110 18923 1 10 1816 576 Large Undead Undead 4 12 04 Nightmare Wraith Dead +2483 154 4008000 2 10 768 768 Large Demon Dark 3 12 26 Nightmare Baphomet +2484 141 49675 1 10 868 480 Small Demon Dark 1 12 24 Nightmare Baphomet Jr. +2485 140 528120 1 10 772 672 Large Brute Fire 3 12 26 Nightmare Chimera +2528 140 482427 2 10 384 720 Large Insect Poison 1 12 04 Faceworm +2529 155 50000000 2 10 768 540 Large Insect Poison 4 12 26 Faceworm Queen +2530 144 5000000 2 10 576 480 Large Insect Poison 2 12 21 Dark Faceworm +2531 140 10000 1 12 384 0 Small Insect Poison 1 12 10 Venom Bug +2532 155 50000000 2 10 768 540 Large Insect Fire 1 12 26 Red Faceworm Queen +2533 155 50000000 2 10 768 540 Large Insect Earth 1 12 26 Green Faceworm Queen +2534 155 50000000 2 10 768 540 Large Insect Water 1 12 26 Blue Faceworm Queen +2535 155 50000000 2 10 768 540 Large Insect Wind 1 12 26 Yellow Faceworm Queen +2536 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 Monster 3 +2537 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 Monster 4 +2539 151 10000 9 12 3000 0 Small Formless Ghost 4 12 10 Monster 5 +2540 140 10 1 10 24 0 Medium Insect Poison 1 12 06 Faceworm Egg +2541 145 260380 1 10 1000 792 Medium Insect Poison 2 12 04 Faceworm Larva +2542 101 433110 2 10 1276 792 Medium Demihuman Neutral 1 12 26 Doyen Irene +2543 101 20099 2 10 1384 792 Medium Demihuman Neutral 1 12 04 1st Payon Soldier +2544 101 21099 2 10 1452 792 Medium Demihuman Neutral 1 12 04 2nd Payon Soldier +2545 101 20099 1 10 768 792 Medium Brute Earth 1 12 01 1st Guard Dog +2546 101 21099 1 10 972 792 Medium Brute Fire 1 12 04 2nd Guard Dog +2549 90 100000 1 10 1000 864 Medium Demihuman Neutral 1 12 04 Arhi +2550 95 200000 1 10 900 672 Medium Demihuman Neutral 1 12 04 Dio Anemos +2551 100 300000 1 10 800 672 Medium Demihuman Neutral 1 12 04 Geffen Shoplifter +2552 100 300000 1 10 900 672 Medium Demihuman Neutral 1 12 04 Geffen Bully +2553 100 300000 1 10 950 864 Medium Demihuman Neutral 1 12 04 Geffen Gang Member +2554 105 400000 1 10 672 648 Medium Demihuman Neutral 1 12 04 Faymont +2555 110 600000 1 10 768 672 Medium Demihuman Neutral 1 12 04 Ordre +2556 120 1000000 1 10 800 768 Medium Demihuman Ghost 2 12 04 Blut Hase +2557 130 1200000 1 10 1000 864 Medium Demihuman Neutral 1 12 04 Kuro Akuma +2558 140 1400000 1 10 800 768 Medium Demihuman Neutral 1 12 04 Ifodes +2559 145 1600000 1 10 864 768 Medium Demihuman Neutral 1 12 04 Licheniyes +2560 150 2000000 1 10 800 672 Medium Demihuman Neutral 1 12 04 Odoric +2561 155 5000000 1 10 800 672 Medium Demihuman Neutral 1 12 04 Ju +2562 160 7000000 1 10 800 768 Medium Demihuman Ghost 2 12 04 Dwigh +2563 160 8000000 1 10 720 672 Medium Demihuman Ghost 2 12 04 Fay Kanavian +2564 160 20000000 1 10 900 864 Medium Demihuman Ghost 2 12 04 Fenrir +2565 150 1000000 1 10 1400 816 Medium Demihuman Earth 2 12 04 Alphonse +2566 150 100000 1 10 936 792 Medium Demihuman Earth 3 12 04 Alphonse Jr +2567 50 10000 1 10 900 672 Medium Demihuman Neutral 1 12 04 Geffen Bully +2568 50 10000 1 10 950 864 Medium Demihuman Neutral 1 12 04 Geffen Gang Member +2569 95 6617 1 10 1084 2304 Small Insect Wind 3 12 04 Anopheles +2570 92 7073 2 10 140 384 Medium Formless Wind 3 12 04 Breeze +2571 88 5381 1 10 576 768 Large Demon Fire 2 12 04 Butoijo +2572 25 319 1 10 1604 840 Small Brute Earth 1 12 04 Caramel +2573 5 48 1 10 1076 576 Small Insect Wind 1 12 04 Chonchon +2574 89 5465 2 10 1257 528 Medium Brute Wind 2 12 04 Civil Servant +2575 38 694 1 10 1864 864 Small Brute Earth 1 12 04 Coco +2576 23 247 1 10 1136 720 Small Insect Wind 1 12 04 Creamy +2577 6 59 1 10 1672 672 Small Insect Earth 1 12 04 Fabre +2578 32 564 1 10 1528 528 Medium Insect Earth 1 12 04 Horn +2579 102 11280 1 10 741 1536 Small Demon Dark 2 12 04 Hylozoist +2580 98 7229 1 10 1700 1000 Medium Demon Fire 4 12 04 Kaho +2581 101 11179 2 10 890 960 Small Undead Undead 1 12 04 Lude +2582 3 48 1 10 1456 456 Small Brute Neutral 3 12 04 Lunatic +2583 39 769 1 10 1480 480 Small Brute Earth 2 12 04 Martin +2584 96 7959 1 10 648 480 Small Formless Neutral 2 12 04 Mineral +2585 85 4390 9 10 1400 960 Small Brute Earth 2 12 04 Mole +2586 98 8133 1 10 776 576 Small Brute Earth 1 12 04 Neraid +2587 97 8492 1 10 720 864 Small Formless Earth 2 12 04 Obsidian +2588 90 6717 1 10 960 336 Large Undead Earth 2 12 04 Pitman +2589 30 489 1 10 1672 672 Medium Plant Poison 1 12 04 Poporing +2590 15 155 1 10 1864 864 Medium Insect Earth 1 12 04 Rocker +2591 59 2158 1 10 1960 960 Large Brute Earth 2 12 04 Savage +2592 87 5577 1 10 1536 1296 Small Formless Water 1 12 04 Siorava +2593 98 9940 1 10 432 648 Small Formless Water 3 12 04 Siroma +2594 103 14227 2 10 936 1020 Large Formless Water 2 12 04 Snowier +2595 21 212 1 10 1688 1188 Small Insect Wind 1 12 04 Stainer +2596 95 6984 1 10 936 792 Small Formless Earth 2 12 04 Stapo +2597 48 985 1 10 1076 576 Small Insect Wind 1 12 04 Steel Chonchon +2598 94 27070 1 10 420 576 Large Insect Poison 2 12 04 Ungoliant +2599 95 33300 1 10 432 792 Large Fish Water 2 12 04 Wild Rider +2600 45 1091 1 10 1054 504 Medium Brute Earth 1 12 04 Wolf +2601 38 694 1 10 1054 54 Small Brute Earth 1 12 04 Yoyo +2602 90 6425 1 10 780 1008 Medium Brute Dark 1 12 04 Zipper Bear +2603 124 174905 1 10 676 648 Medium Undead Undead 3 12 21 Swift Zombie Slaughter +2604 89 69020 1 10 1768 500 Medium Undead Undead 3 12 13 Solid Zombie Prisoner +2605 119 126485 1 10 2612 912 Medium Undead Undead 1 12 21 Zombie Master Ringleader +2606 17 1020 1 10 500 912 Medium Undead Undead 1 12 04 Furious Zombie +2607 115 100750 3 10 580 288 Large Demihuman Neutral 3 12 21 Elusive Zakudam +2608 38 3470 1 10 1054 54 Small Brute Earth 1 12 07 Swift Yoyo +2609 38 6940 1 10 1054 54 Small Brute Earth 1 12 07 Solid Yoyo +2610 17 930 1 10 1048 48 Medium Plant Earth 1 12 17 Wormtail Ringleader +2611 67 10600 1 10 500 1344 Medium Demihuman Fire 2 12 04 Furious Wootan Fighter +2612 81 23600 1 10 2304 840 Medium Plant Earth 3 12 01 Elusive Wood Goblin +2613 45 5455 1 10 1054 504 Medium Brute Earth 1 12 03 Swift Wolf +2614 80 36310 2 10 1056 1056 Medium Demon Wind 3 12 21 Solid Wind Ghost +2615 8 390 1 10 1672 672 Medium Plant Earth 1 12 01 Willow Ringleader +2616 70 10800 1 10 500 864 Small Brute Wind 1 12 02 Furious Wild Rose +2617 97 49160 2 10 637 1008 Medium Demon Dark 3 12 21 Elusive Evil Nymph +2618 46 7960 1 10 1960 960 Small Demon Ghost 3 12 19 Solid Whisper +2619 18 1115 1 10 2228 528 Medium Undead Undead 1 12 01 Weak Skeleton Ringleader +2620 120 104030 2 10 500 500 Medium Demon Wind 1 12 21 Furious Wanderer +2621 118 114400 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 Elusive Violy +2622 118 114400 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 Swift Violy +2623 118 228800 10 10 1356 1056 Medium Demihuman Neutral 2 12 05 Solid Violy +2624 87 27885 1 10 768 1440 Medium Formless Poison 1 12 04 Venomous Ringleader +2625 113 90460 2 10 500 1020 Medium Formless Neutral 2 12 04 Furious Venatu +2626 87 30670 2 10 1536 600 Medium Demihuman Water 1 12 04 Elusive Vavayaga +2627 123 145140 1 10 768 360 Medium Demihuman Neutral 4 12 04 Swift Vanberk +2628 45 10910 1 10 1632 432 Small Fish Water 1 12 17 Solid Vadon +2629 94 135350 1 10 420 576 Large Insect Poison 2 12 21 Ungoliant Ringleader +2630 70 12820 1 10 500 1440 Medium Brute Wind 2 12 03 Furious Toucan +2631 105 57945 1 10 496 504 Small Demon Dark 2 12 04 Elusive Tiyanak +2632 21 2380 1 10 1288 288 Small Insect Neutral 3 12 02 Solid Thief Bug +2633 21 1190 1 10 1288 288 Small Insect Neutral 3 12 02 Thief Bug Ringleader +2634 21 1190 1 10 500 288 Small Insect Neutral 3 12 02 Furious Thief Bug +2635 40 4875 1 10 2016 816 Medium Fish Water 2 12 01 Elusive Thara Frog +2636 91 31420 1 10 512 780 Small Formless Neutral 3 12 20 Swift Teddy Bear +2637 128 369710 2 10 1000 768 Medium Brute Earth 1 12 07 Solid Tatacho +2638 22 1425 1 10 1744 1044 Small Brute Dark 1 12 17 Tarou Ringleader +2639 73 18585 1 10 500 1152 Large Demon Dark 3 12 13 Furious Tamruan +2640 104 63165 1 10 528 500 Medium Formless Earth 3 12 21 Elusive Sting +2641 84 20420 1 10 1956 756 Medium Plant Wind 1 12 19 Swift Stem Worm +2642 48 9850 1 10 1076 576 Small Insect Wind 1 12 07 Solid Steel Chonchon +2643 95 34920 1 10 936 792 Small Formless Earth 2 12 02 Stapo Ringleader +2644 68 14085 1 10 500 864 Large Formless Neutral 4 12 17 Furious Stalactic Golem +2645 21 1060 1 10 1688 1188 Small Insect Wind 1 12 17 Elusive Stainer +2646 18 1115 1 10 1872 672 Medium Plant Water 1 12 01 Swift Spore +2647 92 74260 2 10 1452 483 Medium Brute Earth 2 12 17 Solid Solider +2648 34 3455 1 10 2276 576 Medium Undead Undead 1 12 04 Soldier Skeleton Ringlea +2649 34 3455 1 10 500 576 Medium Undead Undead 1 12 04 Furious Soldier Skeleton +2650 123 145140 2 10 576 420 Medium Angel Holy 3 12 20 Elusive Lady Solace +2651 64 12640 1 10 2112 912 Medium Demon Water 1 12 17 Swift Sohee +2652 103 142270 2 10 936 1020 Large Formless Water 2 12 04 Solid Snowier +2653 18 1015 1 10 1576 576 Medium Brute Earth 1 12 01 Boa Ringleader +2654 29 2070 1 10 500 576 Small Brute Earth 1 12 17 Furious Smokie +2655 81 22525 1 10 1350 1200 Medium Formless Earth 2 12 04 Elusive Sleeper +2656 81 22525 1 10 1350 1200 Medium Formless Earth 2 12 04 Swift Sleeper +2657 126 403890 2 10 720 384 Medium Demon Dark 3 12 20 Solid Skogul +2658 139 900650 1 10 2276 576 Medium Undead Undead 1 12 21 Skeleton General Ringlea +2659 139 900650 1 10 500 576 Medium Undead Undead 1 12 21 Furious Skeleton General +2660 44 5755 1 10 2420 720 Medium Undead Undead 1 12 04 Elusive Skeleton Worker +2661 98 49700 1 10 432 648 Small Formless Water 3 12 02 Swift Siroma +2662 70 26980 1 10 1576 576 Medium Brute Poison 1 12 19 Solid Side Winder +2663 70 13490 1 10 1576 576 Medium Brute Poison 1 12 19 Side Winder Ringleader +2664 95 40435 2 10 500 1152 Medium Demihuman Dark 3 12 21 Furious Shinobi +2665 125 146375 2 10 432 420 Medium Angel Holy 3 12 20 Elusive Mistress of Shel +2666 50 6630 1 10 864 864 Small Fish Water 1 12 17 Swift Shellfish +2667 141 2002550 14 10 76 384 Medium Demihuman Wind 3 12 19 Solid Cecil Damon +2668 48 7370 1 10 1132 583 Medium Brute Water 3 12 19 Sea Otter Ringleader +2669 110 83700 1 10 500 792 Medium Fish Water 2 12 04 Furious Lamp Rey +2670 16 680 1 10 1564 864 Small Insect Fire 1 12 01 Elusive Scorpion +2671 14 635 1 10 1624 624 Small Brute Earth 1 12 01 Swift Savage Babe +2672 59 21580 1 10 1960 960 Large Brute Earth 2 12 17 Solid Savage +2673 59 10790 1 10 1960 960 Large Brute Earth 2 12 17 Savage Ringleader +2674 61 11620 1 10 500 720 Medium Formless Earth 3 12 04 Furious Sandman +2675 138 401950 2 10 140 384 Large Formless Fire 3 12 21 Elusive Salamander +2676 48 13510 1 10 2228 528 Medium Undead Undead 1 12 01 Swift Sailor Skeleton +2677 95 66170 1 10 1500 500 Medium Brute Wind 1 12 07 Solid Roween +2678 13 700 1 10 2016 816 Medium Fish Water 1 12 01 Roda Frog Ringleader +2679 13 700 1 10 500 816 Medium Fish Water 1 12 01 Furious Roda Frog +2680 15 775 1 10 1864 864 Medium Insect Earth 1 12 01 Elusive Rocker +2681 74 14275 1 10 864 500 Small Formless Neutral 3 12 21 Swift Rideword +2682 74 28550 1 10 864 500 Small Formless Neutral 3 12 21 Solid Rideword +2683 60 8720 1 10 1247 768 Small Demihuman Neutral 1 12 17 Dumpling Child Ringleade +2684 121 158315 2 10 500 480 Medium Angel Dark 3 12 20 Furious Baroness of Retr +2685 121 158315 2 10 360 480 Medium Angel Dark 3 12 20 Elusive Baroness of Retr +2686 121 158315 2 10 360 480 Medium Angel Dark 3 12 20 Swift Baroness of Retrib +2687 71 32510 1 10 1516 816 Medium Demihuman Dark 1 12 04 Solid Requiem +2688 121 165510 1 10 1536 1056 Medium Undead Undead 2 12 04 Remover Ringleader +2689 91 40145 1 10 768 1224 Medium Fish Water 2 12 03 Elusive Red Eruma +2690 115 109905 1 10 824 780 Large Demihuman Dark 2 12 19 Swift Raydric +2691 115 219810 1 10 824 780 Large Demihuman Dark 2 12 19 Solid Raydric +2692 133 201410 1 10 576 432 Medium Demihuman Ghost 2 12 04 Laurell Weinder Ringlead +2693 139 338500 1 10 500 768 Medium Insect Earth 2 12 04 Furious Rake Scaraba +2694 48 4925 1 10 1000 900 Small Brute Wind 1 12 21 Elusive Raggler +2695 86 24710 3 10 512 528 Small Plant Earth 1 12 05 Swift Rafflesia +2696 1 275 1 10 1872 672 Medium Plant Water 1 12 02 Poring Ringleader +2697 1 275 1 10 500 672 Medium Plant Water 1 12 02 Furious Poring +2698 1 275 1 10 1872 672 Medium Plant Water 1 12 02 Elusive Poring +2699 1 275 1 10 1872 672 Medium Plant Water 1 12 02 Swift Poring +2700 85 46210 1 10 720 360 Small Insect Earth 3 12 02 Solid Porcellio +2701 30 2445 1 10 1672 672 Medium Plant Poison 1 12 02 Poporing Ringleader +2702 30 2445 1 10 500 672 Medium Plant Poison 1 12 02 Furious Poporing +2703 30 2445 1 10 1672 672 Medium Plant Poison 1 12 02 Elusive Poporing +2704 87 27885 3 10 1148 1728 Medium Brute Poison 2 12 01 Swift Poison Toad +2705 26 3790 1 10 1672 672 Medium Plant Poison 1 12 04 Solid Poison Spore +2706 119 80500 1 10 1056 1056 Small Formless Ghost 4 12 04 Plasma Ringleader +2707 40 4665 1 10 500 1008 Small Plant Water 3 12 01 Furious Plankton +2708 90 33585 1 10 960 336 Large Undead Earth 2 12 17 Elusive Pitman +2709 75 21095 1 10 768 480 Large Fish Water 3 12 04 Swift Piranha +2710 113 180920 1 10 1426 600 Medium Plant Poison 2 12 13 Solid Dark Pinguicula +2711 105 63735 1 10 700 600 Medium Plant Earth 3 12 13 Pinguicula Ringleader +2712 10 385 1 10 500 288 Small Brute Fire 1 12 01 Furious Picky +2713 52 8580 1 10 2544 1344 Medium Fish Water 2 12 17 Elusive Phen +2714 86 27455 1 10 2468 768 Medium Dragon Earth 1 12 19 Swift Petite +2715 86 54910 1 10 2468 768 Medium Dragon Earth 1 12 19 Solid Petite +2716 85 23105 7 10 832 500 Medium Fish Poison 1 12 21 Penomena Ringleader +2717 85 23105 7 10 500 500 Medium Fish Poison 1 12 21 Furious Penomena +2718 25 1770 1 10 1564 864 Large Brute Fire 1 12 03 Elusive Peco Peco +2719 79 15100 1 10 976 576 Medium Demihuman Fire 2 12 19 Swift Pasana +2720 76 31550 8 10 864 864 Medium Plant Wind 2 12 10 Solid Parasite +2721 92 38900 1 10 1345 824 Large Demon Neutral 3 12 21 Owl Duke Ringleader +2722 44 5235 1 10 500 864 Medium Demihuman Earth 1 12 04 Furious Orc Warrior +2723 51 7930 1 10 2852 1152 Medium Undead Undead 1 12 04 Elusive Orc Zombie +2724 53 8495 1 10 2420 720 Medium Undead Undead 1 12 04 Swift Orc Skeleton +2725 45 11450 1 10 1050 900 Medium Demihuman Earth 2 12 21 Solid Orc Lady +2726 127 184220 2 10 432 480 Medium Angel Neutral 4 12 20 Dame of Sentinel Ringlea +2727 87 22310 1 10 500 1440 Medium Formless Ghost 3 12 04 Furious Noxious +2728 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 Elusive Novus +2729 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 Swift Novus +2730 90 52570 1 10 151 288 Small Dragon Neutral 1 12 04 Solid Novus +2731 90 26285 1 10 151 288 Small Dragon Neutral 1 12 04 Novus Ringleader +2732 107 85395 1 10 500 816 Large Demon Dark 3 12 04 Furious Nightmare Terror +2733 110 94615 1 10 1816 576 Large Undead Undead 4 12 04 Elusive Wraith Dead (Nig +2734 151 653410 2 10 672 500 Medium Demon Wind 1 12 04 Furious Wanderer (Nightm +2735 114 182050 7 10 500 576 Medium Plant Poison 2 12 10 Solid Nephentes +2736 133 456520 1 10 1816 1320 Medium Undead Undead 4 12 21 Necromancer Ringleader +2737 39 4045 1 10 500 1248 Medium Formless Neutral 3 12 17 Furious Myst Case +2738 105 57945 3 10 672 648 Medium Plant Earth 1 12 10 Elusive Muscipular +2739 55 9495 1 10 1772 72 Medium Undead Undead 2 12 04 Swift Mummy +2740 55 18990 1 10 1772 72 Medium Undead Undead 2 12 04 Solid Mummy +2741 23 1685 1 10 1960 960 Large Plant Earth 1 12 01 Muka Ringleader +2742 132 319500 1 10 500 480 Large Angel Dark 1 12 21 Furious Incarnation of M +2743 132 319500 1 10 576 480 Large Angel Dark 1 12 21 Elusive Incarnation of M +2744 132 319500 1 10 576 480 Large Angel Dark 1 12 21 Swift Incarnation of Mor +2745 85 43900 9 10 1400 960 Small Brute Earth 2 12 03 Solid Holden +2746 85 25415 1 10 1938 2112 Medium Demon Dark 1 12 17 Miyabi Doll Ringleader +2747 58 8645 1 10 500 960 Large Brute Fire 2 12 19 Furious Minorous +2748 58 8645 1 10 1360 960 Large Brute Fire 2 12 19 Elusive Minorous +2749 58 8645 1 10 1360 960 Large Brute Fire 2 12 19 Swift Minorous +2750 96 79590 1 10 648 480 Small Formless Neutral 2 12 17 Solid Mineral +2751 140 406000 1 10 576 1140 Small Formless Neutral 1 12 04 Miming Ringleader +2752 56 8535 1 10 500 500 Medium Formless Neutral 3 12 19 Furious Mimic +2753 56 8535 1 10 972 500 Medium Formless Neutral 3 12 19 Elusive Mimic +2754 55 7435 1 10 1708 1008 Medium Insect Fire 1 12 07 Swift Metaller +2755 81 38620 1 10 384 672 Small Formless Neutral 1 12 02 Solid Metaling +2756 81 19310 1 10 384 672 Small Formless Neutral 1 12 02 Metaling Ringleader +2757 60 11620 1 10 500 816 Medium Demihuman Water 3 12 21 Furious Merman +2758 143 411000 3 10 472 1056 Medium Insect Wind 2 12 21 Elusive Menblatt +2759 102 56400 1 10 1720 1320 Medium Demon Neutral 2 12 21 Swift Medusa +2760 39 7690 1 10 1480 480 Small Brute Earth 2 12 01 Solid Martin +2761 90 20445 1 10 1480 480 Small Demon Ghost 3 12 19 Marionette Ringleader +2762 37 4220 1 10 500 672 Medium Plant Water 2 12 02 Furious Marin +2763 73 15495 1 10 1540 840 Large Demihuman Fire 1 12 19 Elusive Marduk +2764 65 11815 1 10 1528 660 Medium Insect Earth 1 12 19 Swift Mantis +2765 13 1400 4 10 1768 768 Medium Plant Earth 3 12 10 Solid Mandragora +2766 107 78280 1 10 280 720 Medium Demon Dark 2 12 04 Manananggal Ringleader +2767 107 67610 1 10 500 960 Large Brute Fire 2 12 21 Furious Majoruros +2768 53 7725 1 10 1054 504 Small Demon Water 1 12 02 Elusive Magnolia +2769 110 54595 1 10 1472 384 Small Formless Fire 2 12 02 Swift Magmaring +2770 3 480 1 10 1456 456 Small Brute Neutral 3 12 01 Solid Lunatic +2771 3 240 1 10 1456 456 Small Brute Neutral 3 12 01 Lunatic Ringleader +2772 101 55895 2 10 500 960 Small Undead Undead 1 12 04 Furious Lude +2773 109 65020 1 10 1000 864 Medium Insect Wind 1 12 08 Elusive Luciola Vespa +2774 109 86680 2 10 747 1632 Large Demon Dark 4 12 04 Swift Loli Ruri +2775 92 74260 7 10 400 672 Medium Plant Earth 2 12 05 Solid Enchanted Peach Tr +2776 1 200 1 10 1872 672 Small Plant Water 1 12 02 Baby Poring Ringleader +2777 142 425500 1 10 500 300 Small Demihuman Wind 2 12 04 Furious Little Fatum +2778 80 19970 1 10 1120 576 Medium Demon Earth 3 12 04 Elusive Jing Guai +2779 82 24045 1 10 1728 720 Medium Plant Earth 4 12 03 Swift Les +2780 118 251680 1 10 1260 230 Large Brute Earth 1 12 21 Solid Leib Olmai +2781 64 10350 1 10 960 864 Small Brute Earth 1 12 02 Leaf Cat Ringleader +2782 98 58560 1 10 500 400 Medium Demihuman Poison 3 12 19 Furious Wickebine Tres +2783 98 45145 1 10 432 400 Medium Demihuman Poison 4 12 04 Elusive Eremes +2784 108 57360 9 10 1008 1008 Small Demihuman Fire 1 12 05 Swift Kobold Archer +2785 107 135220 1 10 1028 528 Medium Demihuman Wind 2 12 13 Solid Kobold +2786 126 165235 1 10 1548 384 Small Demon Earth 1 12 17 Knocker Ringleader +2787 55 7435 1 10 500 768 Small Insect Earth 1 12 03 Furious Beetle King +2788 135 350640 2 10 800 600 Large Formless Fire 3 12 21 Elusive Kasa +2789 72 15135 1 10 1638 2016 Medium Formless Neutral 3 12 01 Swift Karakasa +2790 59 22520 1 10 1384 768 Large Demon Dark 1 12 19 Solid Isis +2791 124 145755 1 10 768 360 Medium Demihuman Neutral 4 12 04 Isilla Ringleader +2792 95 40435 1 10 500 720 Medium Undead Dark 2 12 21 Furious Injustice +2793 83 24495 1 10 106 1056 Medium Formless Earth 3 12 17 Elusive Mi Gao +2794 110 94615 1 10 861 660 Large Formless Water 3 12 04 Swift Ice Titan +2795 79 42620 1 10 384 672 Medium Fish Water 3 12 17 Solid Iara +2796 87 32065 1 10 890 1320 Medium Undead Undead 2 12 04 Yao Jun Ringleader +2797 63 9510 1 10 500 576 Small Insect Wind 2 12 04 Furious Hunter Fly +2798 11 425 1 10 1292 792 Small Insect Wind 1 12 01 Elusive Hornet +2799 130 255500 1 10 384 672 Small Insect Earth 1 12 03 Swift Uni-horn Scaraba +2800 32 5640 1 10 1528 528 Medium Insect Earth 1 12 17 Solid Horn +2801 122 158980 1 10 960 528 Medium Demon Dark 3 12 04 Hodremlin Ringleader +2802 63 11735 1 10 500 480 Medium Brute Earth 2 12 01 Furious Hode +2803 101 55895 3 10 504 480 Medium Brute Wind 3 12 04 Elusive Hill Wind +2804 101 55895 3 10 504 480 Medium Brute Wind 3 12 04 Swift Hill Wind +2805 81 40770 1 10 1500 500 Large Demihuman Fire 2 12 21 Solid High Orc +2806 83 22270 1 10 972 672 Medium Demon Wind 3 12 04 Harpy Ringleader +2807 83 22270 1 10 500 672 Medium Demon Wind 3 12 04 Furious Harpy +2808 55 8670 1 10 1152 1152 Medium Brute Earth 2 12 02 Elusive Grove +2809 55 7025 3 10 1152 1152 Medium Formless Fire 2 12 10 Swift Greatest General +2810 75 30840 2 10 1460 960 Large Brute Fire 2 12 03 Solid Grand Peco +2811 75 15420 2 10 1460 960 Large Brute Fire 2 12 03 Grand Peco Ringleader +2812 61 11620 1 10 500 816 Large Formless Neutral 3 12 17 Furious Golem +2813 48 5535 1 10 1120 620 Medium Demihuman Wind 1 12 21 Elusive Goblin +2814 48 5535 1 10 1120 620 Medium Demihuman Wind 1 12 21 Swift Goblin +2815 80 29050 1 10 1380 1080 Medium Brute Fire 3 12 03 Solid Goat +2816 80 14525 1 10 1380 1080 Medium Brute Fire 3 12 03 Goat Ringleader +2817 142 906700 1 10 500 528 Medium Demihuman Poison 2 12 13 Furious Dark Hammer Kobo +2818 142 906700 1 10 1528 528 Medium Demihuman Poison 2 12 13 Elusive Dark Hammer Kobo +2819 147 1020545 1 10 768 1776 Small Formless Dark 2 12 19 Swift Dark Shadow +2820 147 2041090 1 10 768 1776 Small Formless Dark 2 12 19 Solid Dark Shadow +2821 120 92475 1 10 1292 792 Small Insect Wind 1 12 21 Giant Hornet Ringleader +2822 61 12145 1 10 500 912 Medium Undead Undead 2 12 04 Furious Ghoul +2823 61 12145 1 10 2456 912 Medium Undead Undead 2 12 04 Elusive Ghoul +2824 73 17040 3 10 1308 1008 Medium Plant Earth 3 12 10 Swift Geographer +2825 73 34080 3 10 1308 1008 Medium Plant Earth 3 12 10 Solid Geographer +2826 100 46165 9 10 1020 720 Medium Demon Wind 3 12 05 Gargoyle Ringleader +2827 100 46165 9 10 500 720 Medium Demon Wind 3 12 05 Furious Gargoyle +2828 100 43860 1 10 864 624 Medium Brute Wind 2 12 07 Elusive Galion +2829 47 6500 1 10 1612 622 Medium Brute Water 1 12 19 Swift Seal +2830 94 83460 2 10 1260 960 Medium Brute Water 2 12 21 Solid Freezer +2831 94 41730 2 10 1260 960 Medium Brute Water 2 12 21 Freezer Ringleader +2832 126 211120 2 10 500 576 Large Dragon Earth 2 12 19 Furious Ferus +2833 24 1650 1 10 1276 576 Small Brute Dark 1 12 01 Elusive Familiar +2834 105 52155 2 10 920 720 Small Angel Holy 3 12 04 Swift False Angel +2835 6 590 1 10 1672 672 Small Insect Earth 1 12 01 Solid Fabre +2836 6 295 1 10 1672 672 Small Insect Earth 1 12 01 Fabre Ringleader +2837 100 32320 1 10 500 960 Small Brute Fire 3 12 04 Furious Explosion +2838 80 23600 1 10 2276 576 Large Undead Undead 4 12 21 Elusive Evil Druid +2839 34 2675 1 10 1372 672 Medium Plant Fire 2 12 19 Swift Elder Willow +2840 34 5350 1 10 1372 672 Medium Plant Fire 2 12 19 Solid Elder Willow +2841 126 183590 1 10 768 360 Medium Demihuman Neutral 4 12 20 Echio Ringleader +2842 62 9245 1 10 500 504 Small Insect Wind 2 12 17 Furious Dustiness +2843 68 14085 3 10 950 2520 Medium Plant Earth 4 12 04 Swift Dryad +2844 101 111790 7 10 864 576 Medium Plant Earth 1 12 10 Solid Drosera +2845 2 230 1 10 1372 672 Medium Plant Fire 1 12 02 Drops Ringleader +2846 65 11815 1 10 500 900 Medium Brute Earth 1 12 04 Furious Driller +2847 47 5910 1 10 1276 576 Small Brute Dark 2 12 19 Elusive Drainliar +2848 86 26085 1 10 862 534 Medium Insect Wind 2 12 21 Swift Dragon Tail +2849 114 182050 1 10 576 960 Medium Dragon Earth 1 12 03 Solid Draco +2850 132 272955 3 10 360 360 Large Insect Water 3 12 04 Dolomedes Ringleader +2851 68 12805 1 10 500 456 Small Demon Dark 1 12 17 Furious Dokebi +2852 103 62600 2 10 516 768 Medium Demon Earth 4 12 04 Elusive Disguise +2853 116 107575 7 10 576 720 Medium Formless Wind 2 12 04 Swift Dimik +2854 93 71650 1 10 980 600 Small Demon Dark 1 12 21 Solid Deviruchi +2855 14 565 1 10 1600 900 Small Brute Fire 1 12 13 Baby Desert Wolf Ringlea +2856 14 565 1 10 500 900 Small Brute Fire 1 12 13 Furious Baby Desert Wolf +2857 31 2400 1 10 1288 288 Small Insect Earth 1 12 01 Elusive Deniro +2858 114 91025 1 10 176 912 Medium Formless Neutral 3 12 21 Swift Death Word +2859 114 182050 1 10 176 912 Medium Formless Neutral 3 12 21 Solid Death Word +2860 114 91025 1 10 176 912 Medium Formless Neutral 3 12 21 Death Word Ringleader +2861 98 54215 2 10 500 1252 Medium Demon Undead 4 12 13 Furious Dark Priest +2862 82 20770 2 10 600 840 Medium Dragon Wind 2 12 02 Elusive Zhu Po Long +2863 23 1235 1 10 1136 720 Small Insect Wind 1 12 01 Swift Creamy +2864 48 12290 1 10 1248 48 Small Fish Water 1 12 17 Solid Cornutus +2865 35 2985 1 10 1036 936 Small Demihuman Neutral 3 12 17 Cookie Ringleader +2866 108 71700 1 10 500 360 Small Formless Dark 3 12 04 Furious Constant +2867 81 21455 2 10 500 576 Medium Brute Poison 3 12 04 Elusive Comodo +2868 38 3470 1 10 1864 864 Small Brute Earth 1 12 17 Swift Coco +2869 38 6940 1 10 1864 864 Small Brute Earth 1 12 17 Solid Coco +2870 81 22525 1 10 1092 792 Medium Formless Earth 2 12 17 Clock Ringleader +2871 81 22525 1 10 500 792 Medium Formless Earth 2 12 17 Furious Clock +2872 5 240 1 10 1076 576 Small Insect Wind 1 12 01 Elusive Chonchon +2873 125 146375 2 10 1000 792 Medium Insect Poison 2 12 21 Swift Centipede +2874 146 1301310 1 10 1500 720 Small Plant Wind 1 12 21 Solid Cenere +2875 141 1265725 1 10 1152 864 Medium Demihuman Ghost 3 12 19 Celia Ringleader +2876 121 129535 1 10 500 672 Small Insect Earth 1 12 21 Furious Caterpillar +2877 103 54065 1 10 1078 768 Medium Demon Wind 2 12 21 Elusive Carat +2878 25 1595 1 10 1604 840 Small Brute Earth 1 12 17 Swift Caramel +2879 121 331020 1 10 1568 432 Large Demihuman Earth 2 12 19 Solid Bungisngis +2880 92 35365 2 10 140 384 Medium Formless Wind 3 12 04 Breeze Ringleader +2881 92 35365 2 10 500 384 Medium Formless Wind 3 12 04 Furious Breeze +2882 133 228695 1 10 1008 1200 Large Formless Earth 2 12 20 Elusive Bradium Golem +2883 94 34480 3 10 472 576 Medium Insect Wind 2 12 13 Swift Bloody Butterfly +2884 29 2530 1 10 1260 192 Large Brute Earth 1 12 17 Bigfoot Ringleader +2885 86 30200 1 10 500 840 Medium Demihuman Dark 1 12 21 Furious Bathory +2886 118 125840 2 10 676 504 Medium Demon Dark 2 12 20 Elusive Banshee Master +2887 130 204750 1 10 676 504 Medium Demon Dark 2 12 20 Swift Banshee +2888 85 32350 1 10 1152 2304 Small Formless Fire 3 12 04 Solid Banaspaty +2889 100 43860 2 10 512 780 Medium Demihuman Wind 2 12 21 Assaulter Ringleader +2890 47 6500 1 10 500 468 Large Insect Poison 1 12 19 Furious Argos +2891 75 17850 1 10 1792 792 Large Insect Poison 1 12 21 Elusive Argiope +2892 75 17850 1 10 1792 792 Large Insect Poison 1 12 21 Swift Argiope +2893 107 149440 1 10 960 500 Medium Insect Earth 2 12 19 Solid Arclouze +2894 107 74720 1 10 960 500 Medium Insect Earth 2 12 19 Arclouze Ringleader +2895 121 158315 2 10 500 1440 Large Formless Neutral 3 12 17 Furious Apocalypse +2896 136 313000 1 10 504 624 Medium Insect Earth 2 12 04 Elusive Antler Scaraba +2897 148 673075 1 10 864 960 Small Formless Neutral 3 12 21 Swift Antique Book +2898 148 1346150 1 10 864 960 Small Formless Neutral 3 12 21 Solid Antique Book +2899 109 83075 1 10 500 500 Medium Fish Water 2 12 21 Furious Anolian +2900 144 458600 1 10 576 480 Medium Insect Earth 2 12 04 Elusive Angra Mantis +2901 144 458600 1 10 576 480 Medium Insect Earth 2 12 04 Swift Angra Mantis +2902 33 5370 1 10 1288 288 Small Insect Earth 1 12 01 Solid Andre +2903 112 98890 1 10 168 480 Large Formless Neutral 3 12 04 Ancient Mimic Ringleader +2904 100 46165 1 10 500 576 Medium Brute Poison 1 12 17 Furious Anacondaq +2905 19 1325 1 10 2048 648 Large Insect Water 1 12 17 Elusive Ambernite +2906 80 18155 2 10 500 576 Medium Plant Earth 1 12 04 Swift Rafflesia Arnoldi +2907 57 19390 1 10 1100 900 Medium Brute Water 1 12 17 Solid Alligator +2908 112 89900 1 10 1440 576 Medium Demihuman Neutral 3 12 17 Aliza Ringleader +2909 115 91595 2 10 500 480 Medium Demon Neutral 3 12 13 Furious Alicel +2910 88 28320 1 10 1020 500 Medium Formless Neutral 3 12 21 Elusive Alarm +2911 128 184855 1 10 768 360 Medium Demihuman Neutral 4 12 20 Swift Agav +2912 130 390890 2 10 168 768 Large Dragon Wind 2 12 19 Solid Acidus +2913 130 195445 2 10 168 768 Large Dragon Wind 2 12 19 Acidus Ringleader +2914 50 10000 1 10 800 672 Medium Demihuman Neutral 1 12 04 Geffen Shoplifter +2916 160 222240 1 10 1092 792 Medium Formless Earth 2 12 17 Big Ben +2917 163 166860 1 10 1020 500 Medium Formless Neutral 3 12 21 Big Bell +2918 165 256000 3 10 1072 672 Large Formless Neutral 4 12 17 Time Keeper +2919 155 154760 1 10 1500 500 Small Plant Wind 1 12 19 Neo Punk +2920 168 293640 3 10 1552 1152 Large Demihuman Neutral 4 12 04 Arc Elder +2921 168 295240 1 10 1345 824 Large Demon Neutral 3 12 21 Owl Viscount +2922 168 295240 1 10 1345 824 Large Demon Neutral 3 12 21 Owl Viscount +2923 170 630000 2 10 1345 824 Large Demon Neutral 3 12 21 Owl Marquis +2924 34 599 1 10 1372 672 Medium Plant Fire 2 12 06 Elder Willow +2925 8 91 1 10 1672 672 Medium Plant Earth 1 12 06 Willow +2926 83 4423 1 10 972 672 Medium Demon Wind 3 12 06 Harpy +2927 96 8300 1 10 648 480 Small Formless Neutral 2 12 06 Mineral +2928 105 12999 1 10 917 1584 Large Demon Dark 1 12 06 Gibbet +2929 116 24975 1 10 1000 500 Small Formless Earth 4 12 06 Plasma +2930 123 24729 2 10 576 420 Medium Angel Holy 3 12 06 Solace +2931 81 4300 1 10 384 672 Small Formless Neutral 1 12 06 Metaling +2932 30 524 1 10 1672 672 Medium Plant Poison 1 12 06 Poporing +2933 66 16890 1 10 1072 1056 Medium Demon Dark 4 12 06 Deviling +2934 84 25100 1 10 1072 672 Medium Angel Holy 3 12 06 Arc Angeling +2935 96 8266 10 10 480 840 Large Formless Neutral 2 12 06 Taoist Hermit +2936 1 10 1 7 1220 1080 Small Plant Neutral 1 12 01 Ghostring +2937 145 1215600 2 10 800 750 Medium Demihuman Neutral 1 12 06 M Loki +2938 140 10000000 1 10 1000 1000 Large Formless Neutral 1 12 06 Magic Seal +2939 138 112000 1 10 1500 600 Large Demon Dark 2 12 04 Evil Shadow +2940 141 127650 1 10 1000 500 Medium Demon Dark 2 12 04 Evil Shadow +2941 142 153400 1 10 1800 780 Large Demon Dark 2 12 04 Evil Shadow +2942 151 8256000 3 10 1000 500 Large Demon Dark 3 12 21 Evil Fanatics +2943 149 10000 7 12 0 1000 Small Insect Ghost 4 12 06 Icemine +2948 110 22288 9 10 1960 576 Medium Undead Undead 3 12 04 Cursed Soldier +2949 110 16917 2 10 914 1344 Large Demihuman Dark 3 12 04 Cursed Sentinel +2950 110 16224 1 10 920 720 Medium Demon Dark 3 12 04 Broken Mind +2951 110 13530 1 10 972 648 Small Demon Ghost 3 12 04 Floating Word +2952 110 16808 2 10 1056 1056 Medium Demon Wind 3 12 04 Like Love +2953 110 21653 1 10 1768 500 Medium Undead Undead 3 12 04 Cursed Memory +2954 110 23032 1 10 1848 500 Medium Undead Undead 3 12 04 Colorless Vow +2955 110 15136 1 10 2456 912 Medium Undead Undead 2 12 04 Old Friendship +2956 110 16782 1 10 528 1000 Large Undead Undead 1 12 04 Sweet Slaughter +2957 120 23454 2 10 847 1152 Medium Undead Undead 2 12 04 Forgotten Name +2958 120 29088 2 10 720 384 Medium Demon Dark 3 12 04 Fatal Days +2959 120 124010 1 10 672 420 Medium Demihuman Earth 3 12 21 Torturous Redeemer +2960 149 10000 7 12 0 1000 Small Insect Ghost 4 12 06 Flamecross +2961 120 103342 1 10 672 420 Medium Demihuman Earth 3 12 21 Torturous Redeemer +2987 148 544444 2 10 917 1584 Large Demon Undead 3 12 04 Decorated Evil Tree +2988 149 44 2 10 720 720 Medium Undead Dark 3 12 01 Wicked Vice Plant Manage +2989 149 187760 1 10 1248 1248 Small Demon Dark 3 12 03 Vicious Cookie +2990 140 188999 12 10 1296 1296 Medium Demon Undead 3 12 05 Corrupt Cruiser +2991 148 259000 2 10 1248 1248 Medium Demon Dark 3 12 03 Evil Dwelling Box +2992 140 4444 1 10 890 960 Small Undead Dark 3 12 01 Creepy Demon +2993 145 444444 2 10 741 1536 Small Demon Dark 3 12 04 Malicious Baby Ghost +2994 148 280000 2 10 1480 480 Small Demon Ghost 1 12 20 Dancing Marionette +2995 148 180000 1 10 512 780 Small Demon Undead 3 12 04 Abandoned Teddy Bear +2996 160 66666666 2 10 768 1056 Large Undead Ghost 1 12 26 Celine Kimi +2997 160 66666666 2 10 768 1056 Large Undead Ghost 1 12 26 Kimi's Phantom +2998 158 1771440 1 12 2612 824 Large Demon Neutral 3 12 19 Weakened Morocc +2999 158 4000000 1 12 300 384 Medium Demihuman Neutral 3 12 21 Morocc Necromancer +3000 101 80000000 12 12 2700 384 Medium Demihuman Earth 4 12 10 Morocc Necromancer +3001 158 295240 1 12 2612 824 Medium Demon Neutral 3 12 19 Morocc's Ghoul +3002 158 442860 1 12 2612 824 Medium Demon Neutral 3 12 19 Morocc's Osiris +3003 158 295240 7 12 300 824 Medium Demon Neutral 3 12 05 Morocc's Archer Skeleton +3004 158 100000 1 12 300 824 Large Demon Neutral 3 12 19 Morocc's Wraith +3005 158 442860 1 12 76 824 Medium Demon Neutral 3 12 19 Morocc's Verit +3006 158 885720 3 12 76 824 Small Demon Neutral 3 12 19 Morocc's Lude +3007 158 99999999 1 12 76 824 Small Demon Neutral 3 12 06 Death Soul +3008 158 295240 1 12 2000 824 Small Demon Neutral 3 12 06 Morocc Hidden +3010 158 250000 1 10 864 400 Small Demihuman Earth 2 12 04 Corrupt Orc Baby +3011 158 232890 1 10 864 400 Small Brute Fire 2 12 04 Corrupt Baby Desert Wol +3012 158 222550 1 10 864 400 Small Fish Water 2 12 04 Corrupt Familiar +3013 158 300000 1 10 864 400 Medium Demihuman Earth 2 12 19 Corrupt Orc Warrior +3014 158 292450 1 10 864 400 Medium Brute Fire 2 12 04 Corrupt Desert Wolf +3015 158 284110 1 10 864 400 Medium Fish Water 2 12 04 Corrupt Phen +3016 158 375000 1 10 864 400 Medium Demihuman Undead 2 12 19 Corrupt Orc Zombie +3017 158 352715 1 10 864 400 Medium Brute Undead 2 12 04 Corrupt Verit +3018 158 347413 1 10 864 400 Medium Fish Undead 2 12 20 Corrupt Megalodon +3020 141 125114 1 10 1148 648 Medium Brute Fire 2 12 01 Fire Condor +3021 143 130501 1 10 1672 720 Medium Formless Fire 3 12 04 Fire Sandman +3022 147 141301 1 10 1540 720 Medium Brute Fire 3 12 01 Fire Frilldora +3023 148 180213 1 10 1608 816 Large Formless Fire 4 12 04 Fire Golem +3026 17 10 1 10 2612 912 Medium Undead Undead 1 12 10 Fire Pit +3027 150 234 1 10 1288 288 Medium Undead Undead 1 12 01 Fire Bug +3028 17 20 1 10 2612 912 Medium Undead Undead 1 12 06 Sonia +3029 159 50000000 1 10 900 864 Large Undead Undead 4 12 04 Reaper Yanku +3038 151 10000 1 12 0 0 Small Formless Ghost 4 12 10 Monster 7 +3039 149 8000000 1 10 576 480 Large Angel Dark 1 12 21 Blazing Morocc Reincarna +3040 149 6400000 1 10 576 648 Medium Demon Dark 3 12 21 Distorted Morocc Reincar +3041 149 7700000 1 10 1536 648 Medium Demon Water 3 12 21 Freezing Morocc Reincarn +3061 1 30 1 7 1 1 Medium Formless Neutral 1 12 01 Angry Mimic +3069 125 48430 1 10 676 672 Small Demon Earth 2 12 04 Ferre +3070 126 40718 7 10 676 1248 Small Demon Water 2 12 04 Ferre +3071 127 53290 2 10 676 672 Small Demon Water 2 12 04 Ferre +3072 128 52280 2 10 676 1248 Small Demon Earth 2 12 04 Ferre +3073 140 19471800 1 10 676 2592 Large Demon Undead 3 12 05 Awakened Ferre +3074 170 25000000 1 10 100 576 Large Demon Neutral 4 12 04 Time Holder +3075 1 3 1 0 0 0 Small Formless Holy 1 0 06 Treasure +3076 100 10000 1 10 1288 288 Small Angel Holy 3 12 21 Go! +3077 100 10500 1 10 1288 288 Small Angel Holy 3 12 21 Go! +3078 105 11000 2 10 920 720 Small Angel Holy 3 12 21 Go! +3079 120 12000 2 10 1000 624 Medium Brute Holy 3 12 21 Go! +3080 123 13000 2 10 576 420 Medium Angel Holy 3 12 21 Go! +3081 125 14000 2 10 432 420 Medium Angel Holy 3 12 21 Go! +3082 131 15000 1 10 672 780 Small Angel Holy 2 12 21 Go! +3083 131 18000 1 10 672 780 Small Angel Holy 2 12 21 Go! +3084 135 20000 1 10 1576 504 Small Angel Holy 3 12 21 Go! +3085 98 30000 3 10 576 576 Large Angel Ghost 1 12 21 Go! +3086 101 20099 2 10 1384 792 Medium Demihuman Neutral 1 12 06 Mercenary +3087 160 215000 2 10 800 750 Medium Demihuman Neutral 1 12 06 Guardian's Alter Ego +3088 155 155600 1 10 1000 1000 Large Formless Neutral 1 12 04 Frost Spider +3089 155 185000 1 10 1500 600 Large Demon Dark 2 12 04 Frenzied Kasa +3090 155 217650 1 10 1000 500 Medium Demon Dark 2 12 04 Mad Salamander +3091 165 81650000 3 10 1020 500 Large Demon Water 3 12 21 Brinaranea +3092 165 55620000 3 10 608 408 Large Demon Fire 3 12 21 Muspellskoll +3096 175 80000000 3 10 1000 460 Small Demon Holy 3 12 21 Demigod +3097 175 120000000 3 10 750 510 Medium Demon Dark 2 12 21 Despair God Morroc +3098 160 3258000 3 10 2000 750 Large Demon Dark 4 12 21 Morroc of the Genesis +3099 160 1450000 3 10 500 510 Large Demon Dark 4 12 21 Morroc of the Sabbath +3101 1 30 0 10 1 1 Small Formless Neutral 1 12 06 Mana of White +3102 1 30 0 10 1 1 Small Formless Neutral 1 12 06 Mana of Life +3103 1 30 0 10 1 1 Small Formless Neutral 1 12 06 Mana of Earth +3105 149 5000000 1 10 576 480 Large Angel Fire 2 12 04 Demon God's Apostle Aha +3106 149 5000000 1 10 1536 648 Medium Demon Ghost 3 12 04 Demon God's Apostle Shn +3108 135 2614000 1 10 676 2592 Large Demon Undead 2 12 04 Jitterbug1 +3109 135 2614000 1 10 676 2592 Large Demon Undead 2 12 04 Jitterbug2 +3122 140 2614000 1 10 676 2400 Large Demon Earth 1 12 04 Charleston 1 +3123 140 2614000 1 10 676 2400 Large Demon Earth 1 12 04 Charleston 2 +3124 145 23671401 1 10 676 2016 Large Demon Neutral 3 12 04 Charleston 3 +3125 130 55403 1 10 676 672 Small Demon Neutral 1 12 02 Step +3126 131 71056 2 10 676 1056 Medium Demon Neutral 2 12 04 Lockstep +3127 132 73644 7 10 676 816 Medium Demon Neutral 1 12 04 Hallway 1 Security Devi +3128 133 68018 1 10 676 576 Medium Demon Neutral 2 12 04 Security Robot +3153 163 166860 1 10 1020 500 Medium Formless Neutral 3 12 04 Excavator Robot +3154 165 256000 3 10 1072 672 Large Formless Neutral 4 12 04 Recon Robot +3155 155 154760 1 10 1500 500 Small Plant Wind 1 12 04 Repair Robot +3156 168 293640 3 10 1552 1152 Large Demihuman Neutral 4 12 04 Exploration Rover +3157 100 61350 1 10 800 2112 Medium Demihuman Neutral 2 12 04 Ruin Grace Believer +3158 100 61350 1 10 800 2112 Medium Demihuman Neutral 2 12 04 Ruin Grace Believer +3159 100 10 1 10 800 2112 Small Formless Neutral 2 12 06 Illegal Promotion +3161 130 60250 1 10 500 360 Small Formless Dark 3 12 06 Bomb +3169 1 1 1 10 76 1 Medium Demihuman Wind 3 12 01 Shooting Target +3170 1 1 1 10 76 1 Medium Demihuman Wind 3 12 01 Shooting Target +3175 113 15900 10 10 2416 2016 Large Formless Wind 2 12 19 Rotar Zairo +3176 118 20313 1 10 432 540 Large Demon Dark 2 12 19 Gremlin +3177 118 20313 1 10 432 540 Large Demon Dark 2 12 01 Beholder +3178 130 48430 2 10 168 1008 Large Dragon Dark 2 12 19 Acidus +3179 130 40718 2 10 168 768 Large Dragon Wind 2 12 01 Acidus +3180 117 300000 2 10 1596 1620 Large Dragon Dark 4 12 01 Wywern +3181 130 3000000 10 10 168 1008 Large Dragon Dark 2 12 01 Captain Ferlock +3190 160 100000000 12 10 800 500 Medium Demihuman Neutral 1 12 10 Sarah Irene +3191 160 6653400 2 10 1000 750 Medium Demon Dark 2 12 04 Gigantes +3192 160 9870000 2 10 1000 750 Medium Demon Dark 2 12 04 Gigantes +3193 160 1126300 2 10 1250 750 Medium Demon Dark 2 12 04 Ancient Medium Gigantes +3194 160 2482000 2 10 1000 500 Large Demon Dark 2 12 04 Large Gigantes +3195 160 2784175 2 10 1000 500 Large Demon Dark 2 12 04 Large Gigantes +3196 160 12063464 2 10 1250 800 Large Demon Dark 2 12 04 Ancient Gigantes +3197 150 256780 9 10 1020 720 Medium Demon Wind 3 12 05 Mutant Gargoyle +3198 150 293165 1 10 864 624 Medium Brute Wind 2 12 04 Mutant Galion +3199 150 324891 4 10 1280 1080 Large Dragon Fire 2 12 04 Wicked Mutant Dragon +3200 150 301158 1 10 772 672 Large Brute Fire 3 12 04 Wicked Chimera +3202 10 40 1 0 0 0 Small Formless Neutral 1 0 01 Organic Pumpkin +3203 10 40 1 0 0 0 Small Formless Neutral 1 0 01 Inorganic Pumpkin +3208 179 2380000 1 10 76 384 Medium Demon Poison 4 12 19 Eremes Guille +3209 177 2448000 1 10 576 384 Medium Demihuman Holy 4 12 19 Margaretha Sorin +3210 177 2040000 1 10 576 384 Medium Demihuman Ghost 4 12 19 Kathryne Cheiron +3211 179 2142000 14 10 76 384 Medium Demihuman Wind 4 12 19 Shecil Damon +3212 177 2720000 1 10 76 384 Medium Demihuman Water 4 12 19 Harword Alt-Eisen +3213 179 2448000 1 10 76 384 Medium Demon Fire 4 12 19 Seyren Windsor +3214 189 3150000 1 10 76 384 Medium Demon Poison 4 12 21 Guillotine Cross Eremes +3215 187 3600000 1 10 576 384 Medium Demihuman Holy 4 12 21 Arch Bishop Margaretha +3216 187 2700000 1 10 576 384 Medium Demihuman Ghost 4 12 21 Warlock Kathryne +3217 189 3150000 14 10 76 384 Medium Demihuman Wind 4 12 21 Ranger Cecil +3218 187 4500000 1 10 76 384 Medium Demihuman Earth 4 12 21 Mechanic Howard +3219 189 3600000 1 10 76 384 Medium Demon Fire 4 12 21 Rune Knight Seyren +3220 189 12600000 1 10 76 384 Medium Demihuman Poison 4 12 21 Guillotine Cross Eremes +3221 187 14400000 1 10 576 384 Medium Demihuman Holy 4 12 21 Arch Bishop Margaretha +3222 189 12600000 14 10 76 384 Medium Demihuman Wind 4 12 21 Ranger Cecil +3223 187 18000000 1 10 76 384 Medium Demihuman Water 4 12 21 Mechanic Howard +3224 187 10800000 1 10 576 384 Medium Demihuman Ghost 4 12 21 Warlock Kathryne +3225 189 14400000 1 10 76 384 Medium Demihuman Fire 4 12 21 Rune Knight Seyren +3226 178 2550000 1 10 76 384 Medium Demihuman Holy 4 12 19 Randel Lawrence +3227 176 2312000 1 10 76 384 Medium Demihuman Fire 4 12 19 Flamel Emule +3228 178 2295000 1 10 576 384 Medium Demihuman Ghost 4 12 19 Celia Alde +3229 178 2261000 1 10 76 384 Medium Demon Water 4 12 19 Chen Liu +3230 178 2040000 1 10 76 384 Medium Demon Poison 4 12 19 Gertie Wie +3231 176 2040000 7 10 76 384 Medium Demihuman Wind 4 12 19 Alphoccio Basil +3232 176 2040000 7 10 76 384 Medium Demihuman Wind 4 12 19 Trentini +3233 188 4500000 1 10 76 384 Medium Demihuman Holy 4 12 21 Royal Guard Randel +3234 186 3600000 1 10 76 384 Medium Demihuman Fire 4 12 21 Genetic Flamel +3235 188 4050000 1 10 576 384 Medium Demihuman Ghost 4 12 21 Sorcerer Celia +3236 188 3150000 1 10 76 384 Medium Demon Water 4 12 21 Sura Chen +3237 188 3600000 1 10 76 384 Medium Demon Poison 4 12 21 Shadow Chaser Gertie +3238 186 3600000 7 10 76 384 Medium Demihuman Wind 4 12 21 Minstrel Alphoccio +3239 186 3600000 7 10 76 384 Medium Demihuman Wind 4 12 21 Wanderer Trentini +3240 188 18000000 1 10 76 384 Medium Demihuman Holy 4 12 21 Royal Guard Randel +3241 186 14400000 1 10 76 384 Medium Demihuman Fire 4 12 21 Genetic Flamel +3242 188 16200000 1 10 576 384 Medium Demihuman Ghost 4 12 21 Sorcerer Celia +3243 188 12600000 1 10 76 384 Medium Demihuman Water 4 12 21 Sura Chen +3244 188 14400000 1 10 76 384 Medium Demihuman Poison 4 12 21 Shadow Chaser Gertie +3245 186 10800000 7 10 76 384 Medium Demihuman Wind 4 12 21 Minstrel Alphoccio +3246 186 10800000 7 10 76 384 Medium Demihuman Wind 4 12 21 Wanderer Trentini +3247 150 140088 1 10 1500 720 Small Formless Wind 1 12 04 Green Cenere +3248 158 186320 1 10 1500 500 Small Formless Neutral 2 12 07 Repair Robot Turbo +3249 171 318117 3 10 1552 1152 Large Formless Neutral 4 12 04 Explorer Robot Turbo +3250 155 30 1 10 2400 500 Small Formless Neutral 1 12 04 Can Robot +3251 149 217650 1 10 1000 500 Small Formless Dark 2 12 04 Machine Component +3252 153 245670 1 10 1500 600 Medium Formless Dark 1 12 04 Machine Component +3253 160 100 12 0 3000 600 Large Demon Dark 1 0 21 System message +3254 165 48000000 3 10 1250 500 Large Demon Dark 3 12 21 T_W_O +3255 155 178652 1 10 2050 500 Small Plant Wind 1 12 04 Smelly Ghoul +3256 148 134615 1 10 2155 960 Small Formless Neutral 3 12 04 Smelly Zombie +3384 100 25000 1 10 1872 672 Medium Plant Water 1 12 04 Poring +3385 100 25000 1 10 1456 456 Small Brute Neutral 3 12 04 Lunatic +3386 100 25000 1 10 1672 672 Small Insect Earth 1 12 04 Fabre +3387 100 25000 1 10 988 288 Small Brute Fire 1 12 04 Picky +3388 101 40000 1 10 1148 648 Medium Brute Wind 1 12 04 Condor +3389 101 40000 1 10 1672 672 Medium Plant Earth 1 12 04 Willow +3390 101 40000 1 10 1872 672 Medium Plant Water 1 12 04 Spore +3391 101 40000 1 10 1672 672 Medium Plant Poison 1 12 04 Poporing +3392 102 55000 1 10 1576 576 Small Brute Earth 1 12 04 Smokie +3393 102 55000 1 10 1156 456 Small Demon Dark 1 12 04 Dokebi +3394 102 55000 1 10 1260 192 Large Brute Earth 1 12 04 Bigfoot +3395 102 55000 1 10 1048 48 Medium Plant Earth 1 12 04 Wormtail +3396 103 70000 1 10 1054 504 Medium Brute Earth 1 12 04 Wolf +3397 103 70000 1 10 1576 576 Medium Brute Earth 1 12 04 Boa +3398 103 70000 1 10 1576 576 Medium Brute Poison 1 12 04 Anacondaq +3399 103 70000 1 10 1872 672 Medium Plant Water 2 12 04 Marin +3400 104 85000 1 10 1960 960 Large Plant Earth 1 12 04 Muka +3401 104 85000 1 10 1564 864 Large Brute Fire 1 12 04 Peco Peco +3402 104 85000 1 10 1288 288 Small Insect Earth 1 12 04 Deniro +3403 104 85000 1 10 1288 288 Small Insect Earth 1 12 04 Piere +3404 105 100000 1 10 1288 288 Small Insect Earth 1 12 04 Andre +3405 105 100000 1 10 1608 816 Large Formless Neutral 3 12 04 Golem +3406 105 100000 1 10 1564 864 Small Insect Fire 1 12 04 Scorpion +3407 105 100000 1 10 1076 576 Small Insect Wind 1 12 04 Chonchon +3408 106 115000 1 10 1708 1008 Medium Insect Fire 1 12 04 Metaller +3409 106 115000 1 10 1672 720 Medium Formless Earth 3 12 04 Sandman +3410 106 115000 1 10 1000 900 Small Brute Wind 1 12 04 Raggler +3411 106 115000 1 10 862 534 Medium Insect Wind 2 12 04 Dragon Tail +3412 107 130000 1 10 1152 1152 Medium Brute Earth 2 12 04 Grove +3413 107 130000 1 10 1132 583 Medium Brute Water 3 12 04 Sea Otter +3414 107 130000 1 10 1430 1080 Small Brute Earth 1 12 04 Galapago +3415 107 130000 1 10 1612 622 Medium Brute Water 1 12 04 Seal +3416 108 145000 1 10 1100 900 Medium Brute Water 1 12 04 Alligator +3417 108 145000 1 10 2492 792 Medium Undead Undead 1 12 04 Megalodon +3418 108 145000 1 10 860 660 Small Insect Earth 1 12 04 Tri Joint +3419 109 160000 9 10 1332 1332 Large Formless Neutral 4 12 10 Megalith +3420 109 160000 3 10 950 2520 Medium Plant Earth 4 12 04 Dryad +3421 105 900000 1 10 1236 336 Medium Fish Water 1 12 04 Infinite Toad +3422 105 900000 1 10 1048 648 Medium Brute Earth 1 12 04 Infinite Vagabond Wolf +3423 105 900000 1 10 1080 648 Medium Insect Earth 1 12 04 Infinite Vocal +3424 105 900000 1 10 1456 456 Medium Brute Neutral 3 12 04 Infinite Eclipse +3425 105 900000 1 10 772 672 Large Brute Fire 3 12 04 Infinite Chimera +3426 101 1850000 1 10 872 1344 Large Brute Fire 1 12 21 Infinite Eddga +3427 103 2850000 1 10 1072 672 Medium Undead Undead 4 12 21 Infinite Osiris +3428 105 4750000 1 10 1020 1020 Large Brute Neutral 3 12 21 Infinite Phreeoni +3429 107 6650000 1 10 1678 780 Large Demihuman Earth 2 12 21 Infinite Orc Hero +3430 109 8550000 2 10 1020 288 Large Demon Neutral 3 12 21 Infinite Tao Gunka +3431 100 100000 1 10 2016 816 Medium Fish Water 1 12 04 Roda Frog +3432 100 100000 1 10 1054 504 Medium Brute Earth 1 12 04 Wolf +3433 100 100000 1 10 1864 864 Medium Insect Earth 1 12 04 Rocker +3434 100 100000 1 10 1456 456 Small Brute Neutral 3 12 04 Lunatic +3435 100 100000 9 10 1020 720 Medium Demon Wind 3 12 04 Gargoyle +3436 100 100000 1 10 1260 192 Large Brute Earth 1 12 04 Bigfoot +3437 100 100000 1 10 1772 120 Medium Undead Undead 2 12 04 Ancient Mummy +3438 100 100000 1 10 1672 720 Medium Formless Earth 3 12 04 Sandman +3439 100 100000 1 10 1500 500 Large Demihuman Fire 2 12 04 High Orc +3440 100 100000 9 10 1332 1332 Large Formless Neutral 4 12 21 Megalith +3442 140 80000 1 10 1120 420 Medium Brute Water 1 12 04 Frozen Wolf +3443 145 100000 1 10 1604 1344 Medium Brute Earth 1 12 01 Taffy +3444 145 120000 6 10 576 1344 Small Formless Wind 1 12 04 Watcher +3445 114 10000 14 10 1152 864 Medium Undead Undead 3 12 04 Enchanted Archer Skelet +3446 114 10000 1 10 1440 528 Medium Undead Undead 3 12 04 Enchanted Skeleton +3447 115 20000 1 10 1440 576 Medium Undead Undead 3 12 04 Enchanted Soldier Skele +3448 99 10000000 2 10 1152 1536 Large Undead Undead 1 12 04 Renovated Amdarais +3449 98 66666 2 10 1152 1536 Large Undead Undead 1 12 04 Enhanced Amdarais +3450 115 10000000 3 10 2000 1536 Large Undead Undead 4 12 21 Bijou +3451 158 198410 1 10 1500 600 Medium Demon Undead 4 12 04 Immotal Corps +3452 145 124000 1 10 768 2784 Medium Undead Undead 4 12 04 Zombie Guard +3454 103 20714 1 10 864 1268 Medium Demihuman Dark 2 12 04 Suspicious Intruder +3455 1 1 1 7 1 1 Small Formless Neutral 1 12 06 Plate +3473 160 20000000 1 14 960 1632 Large Undead Undead 1 16 21 Stefan.J.E.Wolf +3474 160 10000000 2 10 768 528 Large Formless Dark 2 12 21 Immortal Cursed Knight +3475 160 10000000 5 10 2112 1152 Medium Demon Wind 2 12 21 Immortal Wind Ghost +3476 160 405694 1 10 2612 912 Medium Undead Undead 1 12 04 Immortal Zombie Soldier +3477 160 405694 1 10 1500 600 Medium Demon Undead 1 12 04 Immortal Fortress Legio +3478 160 423332 1 10 676 648 Medium Undead Undead 2 12 04 Sky Fortress Key Keeper +3479 160 405694 1 10 2612 912 Medium Undead Undead 1 12 04 Immortal Zombie Assault +3480 160 405694 9 10 1960 576 Medium Undead Undead 1 12 04 Immortal Cursed Zombie +3481 160 423330 1 10 1500 600 Large Demon Dark 1 12 04 Immortal Nightmare Shado +3482 160 388054 1 10 1000 500 Medium Demon Dark 1 12 04 Immortal Angry Shadow +3483 160 423330 1 10 1800 780 Large Demon Dark 1 12 04 Immortal Death Shadow +3484 160 20000000 1 14 960 1632 Large Undead Undead 2 16 21 Stefan.J.E.Wolf +3485 160 405694 9 10 1960 576 Medium Undead Undead 1 12 04 Cursed Soldier of Bijou +3487 115 90000 1 10 500 840 Small Demon Undead 4 12 21 Butcher Soldier +3488 115 120000 1 10 1000 1100 Small Demon Undead 4 12 21 Scythe Soldier +3489 115 170000 2 10 1500 1500 Small Demon Undead 4 12 21 Bone Crash Soldier +3490 160 500000 3 10 1500 1344 Medium Demon Undead 4 12 21 Immortal Commander +3494 100 15 2 10 0 0 Small Formless Neutral 1 10 01 Shining Poring +3495 1 50 1 10 1872 672 Medium Plant Earth 1 12 02 Eggring +3496 3 44 1 10 1456 456 Small Brute Neutral 3 12 01 Leaf Lunatic +3497 7 60 1 10 1672 672 Small Insect Earth 1 12 01 Grass Fabre +3498 11 78 1 10 1292 792 Small Insect Wind 1 12 01 Wild Hornet +3499 14 140 1 10 2016 816 Medium Fish Water 1 12 01 Sweet Roda Frog +3500 17 113 1 10 1600 900 Small Brute Fire 1 12 01 Hunter Desert Wolf +3501 18 203 1 10 1872 672 Medium Plant Water 1 12 01 Trans Spore +3502 20 243 1 10 2228 528 Medium Brute Earth 1 12 04 Scout Basilisk +3503 140 180030 3 10 2228 528 Medium Brute Earth 2 12 04 Combat Basilisk +3504 148 216036 3 10 2228 528 Medium Brute Earth 2 12 04 Combat Basilisk +3505 25 142480 1 10 1872 672 Medium Plant Earth 3 12 17 Big Eggring +3506 144 190570 4 10 1768 768 Medium Plant Earth 3 12 10 Jungle Madragora +3507 150 156532 1 10 864 1056 Medium Insect Earth 3 12 04 Fruits Pom Spider +3508 20 220 1 10 1872 672 Medium Plant Earth 1 12 24 Eggring +3510 84 30000 1 10 1200 1200 Medium Demihuman Neutral 2 12 04 Temple Guard +3511 82 19500 1 10 768 432 Medium Demihuman Neutral 2 12 04 Enraged Devotee +3512 85 22500 1 10 768 432 Medium Demihuman Neutral 2 12 04 Enraged Devotee +3513 85 27000 1 10 824 432 Medium Brute Fire 2 12 19 Enraged Dog +3514 87 142500 1 10 1100 1100 Medium Demihuman Neutral 3 12 21 Enraged High Priest +3515 80 1012 3 10 1344 0 Small Formless Water 2 12 10 Frozen Heart +3516 90 600000 1 10 861 660 Medium Demihuman Water 3 12 21 Enraged Luwmin +3517 65 15000 1 10 861 660 Large Formless Water 2 12 24 Ice Titan +3518 130 165000 1 10 1100 1100 Medium Demihuman Neutral 2 12 04 Temple Guard +3519 133 127500 1 10 768 432 Medium Demihuman Neutral 2 12 04 Enraged Devotee +3520 134 135000 1 10 768 432 Medium Demihuman Neutral 2 12 04 Enraged Devotee +3521 136 150000 1 10 824 432 Medium Brute Fire 2 12 19 Enraged Dog +3522 140 375000 1 10 1100 1100 Medium Demihuman Neutral 3 12 21 Enraged High Priest +3523 130 75000 3 10 1344 0 Small Formless Water 2 12 10 Frozen Heart +3524 140 825000 1 10 861 660 Medium Demihuman Neutral 3 12 21 Enraged Luwmin +3525 90 105000 1 10 861 660 Large Formless Water 2 12 24 Ice Titan +3526 141 2000000 1 10 432 840 Large Formless Water 3 12 21 Vision of Ktullanux +3527 87 37500 1 10 864 864 Small Demihuman Holy 3 12 06 Official Pope +3528 87 37500 1 10 864 864 Small Demihuman Holy 3 12 06 Casual Pope +3569 120 120000 1 10 864 864 Small Demihuman Holy 4 12 06 Casual Pope +3570 120 120000 1 10 864 864 Small Demihuman Holy 4 12 06 Official Pope +3621 120 3500000 2 10 864 1268 Large Brute Dark 3 12 21 Pet Child +3622 100 21914 1 10 1000 780 Medium Demihuman Fire 1 12 04 Special Guard +3623 1 30 1 7 1 1 Small Formless Fire 1 12 06 Plasma R +3624 1 30 1 7 1 1 Small Formless Earth 1 12 06 Plasma G +3625 1 30 1 7 1 1 Small Formless Water 1 12 06 Plasma B +3626 110 51785 1 10 1296 1902 Large Demihuman Dark 2 12 04 Upgraded Heart Hunter +3627 105 41428 1 10 864 1268 Medium Demihuman Dark 2 12 04 Heart Hunter Guard +3628 110 2800000 1 10 432 1268 Medium Demihuman Dark 2 12 21 Heart Hunter Ebel +3629 110 24911 5 10 576 720 Medium Undead Ghost 2 12 05 Grudge of Broken Gun +3630 115 2000000 7 10 864 1268 Medium Demihuman Wind 3 12 05 Elena Bolkova +3631 100 36968 1 10 772 672 Medium Brute Neutral 2 12 04 Human Kimera +3632 100 36968 1 10 772 672 Medium Brute Fire 2 12 04 Material Kimera +3633 110 2800000 1 10 772 672 Large Brute Poison 4 12 21 Venomous Chimera +3636 59 2092 1 10 1384 768 Large Demon Dark 1 12 01 Little Isis +3637 60 2120 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3638 80 4070 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3639 100 16430 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3640 120 31790 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3641 140 72040 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3642 160 135210 1 10 2228 528 Medium Undead Undead 1 12 04 Skeleton +3643 60 2050 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3644 80 3990 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3645 100 15830 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3646 120 29660 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3647 140 68920 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3648 160 127820 1 10 1276 576 Small Brute Dark 1 12 04 Familiar +3649 60 2580 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3650 80 4990 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3651 100 17590 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3652 120 33560 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3653 140 75060 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3654 160 146220 1 10 2612 912 Medium Undead Undead 1 12 04 Zombie +3658 100 2516502 3 10 1344 864 Large Demon Undead 4 12 21 Lich Lord +3659 160 23485539 3 10 1344 864 Large Demon Undead 4 12 21 Lich Lord +3660 100 21300 1 10 1816 816 Large Demon Ghost 3 12 04 Nightmare +3661 160 199129 1 10 1816 816 Large Demon Ghost 3 12 04 Nightmare +3662 100 23933 1 10 1180 480 Medium Formless Fire 2 12 04 Jakk +3663 160 181967 1 10 1180 480 Medium Formless Fire 2 12 04 Jakk +3664 100 24471 1 10 2456 912 Medium Undead Undead 2 12 04 Ghoul +3665 160 200634 1 10 2456 912 Medium Undead Undead 2 12 04 Ghoul +3666 100 22350 1 10 1276 576 Small Brute Dark 2 12 04 Drainliar +3667 160 184779 1 10 1276 576 Small Brute Dark 2 12 04 Drainliar +3669 104 10572 1 10 1080 780 Small Demon Dark 2 12 01 Diabolic2 +3670 105 10000 1 10 1024 624 Medium Dragon Fire 2 12 01 Deleter 2 +3736 103 11819 4 10 900 770 Large Demihuman Fire 2 12 04 Buffalo Bandit Sharpsho +3737 101 9700 7 10 1200 672 Large Demihuman Fire 2 12 04 Buffalo Bandit Duelist +3738 107 14547 2 10 800 420 Large Demihuman Fire 2 12 04 Bowie Buffalo Bandit +3739 110 17854 1 10 750 400 Medium Brute Earth 2 12 01 Coyote +3740 141 90574 1 10 1100 650 Medium Formless Poison 2 12 01 Gaster +3741 158 9799123 1 10 900 1000 Large Formless Neutral 2 12 21 Spider Chariot +3742 1 20 0 7 1 1 Small Formless Neutral 1 12 06 Purple Ore +3743 1 20 0 7 1 1 Small Formless Neutral 1 12 06 Sea Anemone +3744 103 11819 4 10 900 770 Large Demihuman Fire 2 12 04 Buffalo Bandit +3745 101 9700 7 10 1200 672 Large Demihuman Fire 2 12 04 Buffalo Bandit +3746 107 14547 2 10 800 420 Large Demihuman Fire 2 12 04 Buffalo Bandit +3747 148 135292 4 10 2050 500 Large Demihuman Fire 3 12 04 Elite Buffalo Bandit +3748 151 160515 10 10 1000 500 Large Demihuman Fire 3 12 04 Elite Buffalo Bandit +3749 152 174345 2 10 1500 600 Large Demihuman Fire 3 12 04 Elite Buffalo Bandit +3750 137 242246 1 10 1276 576 Small Brute Dark 2 12 04 Matt Drainliar +3751 139 253926 1 10 500 912 Medium Undead Undead 1 12 04 Living Dead +3752 139 240984 1 10 500 912 Medium Undead Undead 1 12 04 Starving Living Dead +3753 142 267379 1 10 2456 912 Medium Undead Undead 2 12 04 Living Dead +3754 141 261334 1 10 1816 816 Large Demon Ghost 2 12 04 Sweet Nightmare +3755 130 150000 0 0 0 0 Small Plant Earth 1 0 06 Black Mushroom +3756 137 378510 1 10 1000 864 Medium Demihuman Undead 2 12 21 Bomi +3757 139 6909690 3 10 1290 1140 Large Demon Dark 4 12 21 Dracula of Rage +3758 118 4287803 1 10 1276 576 Medium Demon Fire 3 12 21 Angry Moonlight Flower +3759 116 21875 1 10 840 540 Medium Brute Fire 3 12 21 Angry Nine Tail +3760 110 17728 1 10 2468 768 Medium Undead Undead 1 12 04 Resentful Munak +3761 112 19077 1 10 1720 500 Medium Undead Undead 1 12 04 Resentful Bongun +3762 114 22414 1 10 912 2112 Medium Demon Water 2 12 04 Resentful Sohee +3763 115 20843 9 10 2864 864 Medium Undead Undead 1 12 04 Resentful Soldier +3764 118 121847 1 10 768 864 Medium Undead Dark 1 12 01 Wizard of the Truth +3765 117 24078 1 10 1450 864 Medium Undead Undead 3 12 21 Deranged Adventurer +3787 106 1120 1 10 960 500 Medium Insect Earth 2 12 04 Swamp Arclouze +3788 101 988 1 10 1000 500 Small Brute Poison 2 12 04 Brown Rat +3790 1 20 1 10 1372 672 Medium Plant Fire 1 12 02 Sweets Drops +3792 126 57541 10 10 576 370 Medium Demon Water 1 12 20 Angry Gazeti +3793 129 66540 2 10 936 1020 Large Formless Water 2 12 04 Angry Snowier +3794 133 72045 1 10 861 660 Large Formless Water 3 12 04 Angry Ice Titan +3795 135 1012 3 10 1344 0 Small Formless Water 2 12 10 Solid Icicle +3796 135 13521442 3 10 432 840 Large Brute Water 4 12 21 Awakened Ktullanux +3797 1 100 0 10 0 0 Medium Formless Neutral 1 12 06 ILL_FROZEN_KN +3798 1 100 0 10 0 0 Medium Formless Neutral 1 12 06 ILL_FROZEN_GC +3799 160 592508 2 10 512 780 Small Demon Wind 2 12 21 Ominous Assulter +3800 157 508355 2 10 1100 483 Small Brute Neutral 2 12 21 Ominous Permeter +3801 159 549071 2 10 1260 960 Small Brute Water 2 12 21 Ominous Freezer +3802 161 592310 2 10 1452 483 Small Brute Earth 2 12 21 Ominous Solider +3803 162 527390 2 10 1452 483 Small Brute Fire 2 12 21 Ominous Heater +3804 165 11628549 2 10 900 1000 Large Brute Earth 2 12 21 Ominous Turtle General +3810 35 140000 2 10 768 1632 Large Formless Neutral 2 12 21 King Poring +3811 35 72118 2 10 1872 672 Large Formless Holy 1 120 21 Hugh Goldling +3812 35 72810 2 10 1872 672 Large Formless Poison 1 12 21 Huge Amering +3813 35 1095 1 10 1872 672 Small Formless Fire 1 12 02 Enriched Drops +3814 36 1167 2 10 1872 672 Small Formless Wind 1 12 02 Enriched Poporing +3815 34 1023 2 10 1872 672 Small Formless Earth 1 12 02 Enriched Poring +3816 33 960 2 10 1872 672 Small Formless Water 1 12 02 Enriched Marin +3896 160 592508 2 10 512 780 Small Demon Wind 2 12 21 Ominous Assaulter +20255 155 328072 2 10 512 780 Small Formless Fire 1 12 04 Red Teddy Bear +20256 155 294044 2 10 512 780 Small Formless Wind 1 12 04 Yellow Teddy Bear +20257 157 331960 2 10 512 708 Small Formless Poison 1 12 04 Green Teddy Bear +20258 155 311841 2 10 512 780 Small Formless Neutral 1 12 04 White Teddy Bear +20259 152 280657 2 10 512 780 Small Formless Water 1 12 04 Blue Teddy Bear +20260 160 10724874 2 10 512 780 Large Formless Holy 4 12 21 Shining Teddy Bear +20261 154 305605 1 10 960 336 Large Demon Earth 2 12 04 Hardworking Pitman +20262 153 290324 1 10 648 480 Small Formless Neutral 2 12 04 Soul Fragment +20263 156 318593 1 10 720 864 Small Formless Earth 2 12 04 Sinister Obsidian +20264 155 309520 2 10 512 780 Small Formless Fire 1 12 24 Red Teddy Bear +20265 155 294044 2 10 512 780 Small Formless Wind 1 12 24 Yellow Teddy Bear +20266 157 331960 2 10 512 780 Small Formless Poison 1 12 24 Green Teddy Bear +20267 155 311841 2 10 512 780 Small Formless Neutral 1 12 24 White Teddy Bear +20268 152 280657 2 10 512 780 Small Formless Water 1 12 24 Blue Teddy Bear +20269 90 30 0 10 1288 288 Small Formless Neutral 1 12 06 Guild Skill Flag +20270 164 694500 1 10 860 660 Small Insect Earth 1 12 07 Ancient Tri Joint +20271 167 725400 1 10 632 518 Large Formless Neutral 4 12 04 Ancient Stalactic Golem +20272 166 708500 9 10 1332 1332 Large Formless Neutral 4 12 10 Ancient Megalith +20273 169 19280000 2 10 1020 288 Large Demon Neutral 3 12 21 Ancient Tao Gunka +20274 166 692500 10 10 2413 1248 Medium Plant Fire 3 12 04 Ancient Stone Shooter +20275 164 702100 10 10 857 1056 Medium Demihuman Earth 2 12 05 Ancient Wootan Shooter +20276 167 725500 1 10 912 1344 Medium Demihuman Fire 2 12 04 Ancient Wootan Fighter +20277 169 20154000 2 10 1020 288 Large Demihuman Fire 4 12 21 Ancient Wootan Defender +20278 166 708500 9 10 1332 1332 Large Formless Neutral 4 12 24 Ancient Megalith +20279 164 702100 10 10 857 1056 Medium Demihuman Earth 2 12 24 Ancient Wootan Shooter +20280 167 725500 1 10 912 1344 Medium Demihuman Fire 2 12 24 Ancient Wootan Fighter +20340 118 16412000 1 10 128 1004 Large Formless Neutral 3 12 21 EL1-A17T +20341 116 24810 2 10 741 1536 Medium Formless Neutral 4 12 04 E-EA1L +20342 117 26200 2 10 1552 1152 Large Formless Neutral 2 12 04 E-EA2S +20343 118 26840 2 10 432 864 Medium Fish Water 4 12 04 E-13EN0 +20344 110 10000 1 10 384 0 Small Formless Poison 1 12 10 Chemical Poison +20345 110 10000 1 10 720 360 Small Formless Neutral 3 12 10 Bio Battery +20346 115 8600000 1 10 872 1044 Medium Demihuman Wind 4 12 21 Miguel +20347 115 8600000 1 10 872 1044 Medium Demihuman Wind 4 12 21 Miguel G. +20348 110 31000 2 10 1872 360 Medium Demihuman Dark 2 12 04 A013 - Caput +20349 111 31000 5 10 1872 672 Medium Demihuman Poison 3 12 05 A013 - Dolor +20350 112 38000 7 10 206 384 Medium Demihuman Neutral 2 12 05 A013 - Bellare +20351 1 1000 2 10 76 384 Medium Formless Neutral 1 12 10 Manhole +20352 112 35000 1 10 1100 650 Medium Formless Poison 3 12 04 Fatal Pompom +20353 111 3441000 5 10 1872 672 Medium Demihuman Neutral 2 12 05 Sorrow Crob +20355 120 29619 9 10 864 1268 Medium Demihuman Neutral 2 12 05 Heart Hunter Bellare +20356 165 473302 9 10 864 1268 Medium Demihuman Neutral 3 12 05 High Hunter Bellare +20357 120 30159 1 10 432 1268 Medium Demihuman Neutral 2 12 04 Heart Hunter Sanare +20358 168 482327 1 10 432 1268 Medium Angel Dark 3 12 04 High Hunter Sanare +20359 164 466948 1 10 1280 1080 Medium Dragon Neutral 2 12 04 Plaga +20360 178 760548 1 10 1280 1080 Medium Dragon Neutral 2 12 04 Mutant Plaga +20361 122 40204 5 10 1768 768 Medium Demihuman Poison 2 12 05 Dolor +20362 173 742501 5 10 1768 768 Medium Brute Poison 3 12 05 Mutant Dolor +20363 123 40720 1 10 768 792 Medium Brute Poison 2 12 04 Venenum +20364 176 755670 1 10 768 792 Medium Demihuman Neutral 3 12 04 Mutant Venenum +20365 125 41735 1 10 936 1020 Medium Demihuman Dark 2 12 04 Twin Caput +20366 175 750501 1 10 936 1020 Medium Demihuman Dark 2 12 04 Mutant Twin Caput +20367 185 2372683 1 10 824 780 Medium Demihuman Dark 3 12 21 Contaminated Raydric +20368 184 2355718 9 10 1152 1152 Medium Demihuman Dark 3 12 05 Contaminated Raydric Ar +20369 186 2377139 9 10 1020 720 Medium Demon Water 3 12 05 Frozen Gargoyle +20370 180 2297907 1 10 528 500 Medium Formless Earth 3 12 21 Contaminated Sting +20371 186 2375279 5 10 1960 576 Medium Demihuman Undead 2 12 05 Prison Breaker +20372 178 1218064 1 10 1732 1332 Medium Demon Neutral 2 12 21 Rigid Blazer +20373 179 1218702 1 10 1216 816 Large Demon Dark 3 12 21 Rigid Nightmare Terror +20374 174 1189532 1 10 1020 720 Medium Dragon Neutral 2 12 21 Rigid Sky Deleter +20375 173 1182695 1 10 1024 624 Medium Dragon Neutral 2 12 21 Rigid Earth Deleter +20376 171 1166287 1 10 1260 960 Small Brute Neutral 2 12 21 Rigid Explosion +20377 173 1178774 1 10 1700 1000 Medium Formless Dark 2 12 21 Rigid Kaho +20378 177 1223728 1 10 2190 2040 Large Formless Neutral 2 12 21 Rigid Lava Golem +20379 189 2418315 2 10 1056 1056 Medium Demon Water 3 12 21 Ice Ghost +20380 189 2410282 2 10 1056 1056 Medium Demon Fire 3 12 21 Flame Ghost +20381 174 4885000 1 10 1020 144 Large Brute Neutral 4 12 21 R48-85-Bestia +20382 175 603341 1 10 936 1020 Medium Formless Neutral 3 12 24 Twin Capute +20419 188 48530254 1 10 608 408 Medium Demon Fire 3 12 21 Rigid Muspellskoll +20420 187 2387582 1 10 672 500 Medium Demon Wind 2 12 21 Corrupted Wanderer +20421 195 74623473 1 10 1020 500 Large Demon Dark 3 12 21 Corrupted Spider Queen +20422 194 74476822 2 10 868 768 Large Undead Undead 3 12 21 Corrupted Dark Lord +20543 172 1469107 1 10 864 1268 Medium Demihuman Neutral 3 12 04 MD_ED_M_SCIENCE +20560 190 2435702 1 10 648 480 Large Formless Neutral 4 12 17 Green Mineral +20592 188 2407086 1 10 768 1440 Medium Formless Ghost 4 12 04 Poisonous +20593 188 2407556 1 10 768 1440 Medium Formless Poison 4 12 04 Toxious +20594 190 2435702 1 10 648 480 Large Formless Neutral 4 12 04 Green Mineral +20595 190 2435702 1 10 648 480 Large Formless Neutral 4 12 04 Red Mineral +20596 190 2436177 1 10 648 480 Large Formless Neutral 4 12 04 White Mineral +20597 190 2435543 1 10 648 480 Large Formless Neutral 4 12 04 Purple Mineral +20598 191 2445656 1 10 360 360 Medium Insect Neutral 4 12 21 Jewelry Ant +20599 191 2445656 1 10 360 360 Medium Insect Neutral 4 12 21 Jewelry Ant +20600 192 100 1 10 1008 1200 Large Formless Neutral 4 12 21 Jewel +20601 197 37847096 3 10 420 576 Large Insect Neutral 4 12 21 Jewel Ungoliant +20602 188 2403326 1 10 720 360 Small Insect Earth 4 12 02 White Porcellio +20603 190 2428577 1 10 960 336 Large Brute Neutral 4 12 04 Abyssman +20620 135 9514800 1 10 480 1632 Medium Formless Fire 3 12 04 Red Pepper +20621 185 1008398847 1 10 480 1632 Medium Formless Dark 3 12 04 Senior Red Pepper +20622 137 238512 1 10 480 960 Medium Formless Neutral 2 12 04 Assistant Bot +20623 187 2398802 1 10 480 960 Medium Formless Neutral 2 12 04 Senior Assistant Bot +20624 140 248245 1 10 512 528 Small Plant Earth 3 12 04 Dry Rafflesia +20625 190 2908909 1 10 512 528 Small Plant Earth 3 12 04 Senior Dry Rafflesia +20626 143 255483 1 10 500 576 Small Plant Poison 2 12 04 Special Alnoldi +20627 193 2954324 1 10 500 576 Medium Plant Poison 2 12 04 Senior Special Alnoldi +20628 180 1847205 1 10 960 960 Medium Demihuman Neutral 2 12 04 Manager Alpha +20629 165 662430 1 10 960 960 Medium Demihuman Neutral 2 12 04 Manager Beta +20630 145 261170 1 10 960 960 Medium Formless Neutral 2 12 04 Broken Beta +20631 135 234017 1 10 960 960 Medium Formless Fire 2 12 04 Broken Gardener Beta +20632 185 2379158 1 10 960 960 Medium Formless Fire 2 12 04 S. Broken Gardener Beta +20633 143 147134 1 10 960 960 Medium Formless Neutral 2 12 04 Broken Cleaner +20634 144 150304 1 10 960 960 Medium Formless Neutral 2 12 04 Broken Cleaner +20635 145 150690 1 10 960 960 Medium Demihuman Neutral 2 12 04 Cleaning Robot +20636 145 150304 1 10 960 960 Medium Formless Neutral 2 12 04 Cleaning Robot +20637 185 1900983 1 10 960 960 Medium Demihuman Neutral 2 12 04 Broken Warehouse Manager +20638 140 257228 1 10 768 768 Medium Demon Dark 2 12 04 Beta Guards +20639 186 1909523 1 10 768 768 Medium Formless Wind 2 12 04 Broken Beta Guards +20640 130 182967 1 10 768 768 Small Formless Neutral 2 12 02 Cleaning Robot Ω +20641 175 1200685 1 10 768 768 Small Formless Neutral 2 12 04 Broken Cleaning Robot Ω +20642 139 5011304 1 10 648 1296 Medium Demihuman Neutral 3 12 21 Sweety +20643 139 133096 1 10 1152 864 Medium Fish Water 2 12 04 Boiled Water Phen +20644 137 132060 1 10 1200 1200 Medium Fish Water 2 12 04 Boiled Water Marc +20645 138 133151 1 10 624 624 Large Fish Water 2 12 04 Boiled Water Swordfish +20646 138 133024 1 10 960 480 Large Fish Water 3 12 04 Boiled Water Piranha +20647 141 1823441 1 10 768 768 Medium Fish Water 2 12 04 Elder of Chung-Geum +20648 168 19298694 1 10 768 768 Small Plant Fire 3 12 21 Boss Meow +20649 162 648023 1 10 1540 2112 Small Plant Fire 1 12 04 Red Pitaya +20650 164 658607 1 10 1540 2112 Small Plant Wind 1 12 04 Yellow Pitaya +20651 165 662911 1 10 1540 2112 Small Plant Water 1 12 04 Blue Pitaya +20652 165 665510 1 10 1540 2112 Small Plant Poison 1 12 04 Violet Pitaya +20653 166 668381 1 10 1540 2112 Small Plant Earth 1 12 04 Green Pitaya +20654 132 158478 1 10 1540 2112 Small Plant Fire 1 12 04 Red Pitaya +20655 134 162599 1 10 1540 2112 Small Plant Wind 1 12 04 Yellow Pitaya +20656 135 163655 1 10 1540 720 Small Plant Water 1 12 04 Blue Pitaya +20657 135 165308 1 10 1540 2112 Small Plant Poison 1 12 04 Violet Pitaya +20658 136 165105 1 10 1540 720 Small Plant Earth 1 12 04 Green Pitaya +20659 138 7221377 1 10 768 768 Small Plant Fire 3 12 21 Pitaya Boss +20660 132 158478 1 10 1540 2112 Small Plant Fire 1 12 04 Red Pitaya +20661 134 162599 1 10 1540 2112 Small Plant Wind 1 12 04 Yellow Pitaya +20662 135 163655 1 10 1540 2112 Small Plant Water 1 12 04 Blue Pitaya +20663 135 165308 1 10 1540 2112 Small Plant Poison 1 12 04 Violet Pitaya +20664 136 165105 1 10 1540 2112 Small Plant Earth 1 12 04 Green Pitaya +20665 136 239037 1 10 1344 1344 Medium Brute Poison 2 12 04 Verporta +20666 186 2390934 1 10 1344 1344 Medium Brute Poison 2 12 04 Verporte +20667 145 7375012 1 10 1136 720 Large Plant Dark 2 12 21 Silva Papilia +20668 195 74730723 1 10 1136 720 Large Plant Dark 2 12 21 Gran Papilia +20669 138 240713 1 10 1152 1152 Medium Insect Dark 2 12 04 Papila +20670 188 2409593 1 10 1152 1152 Medium Insect Dark 2 12 04 Senior Papila +20671 139 240372 1 10 1152 1152 Medium Insect Fire 2 12 04 Papila Ruba +20672 190 3656403 1 10 1152 1152 Medium Insect Fire 2 12 04 Senior Papila Ruba +20673 150 10000 1 7 1 1 Medium Insect Fire 2 12 06 Papila Ruba +20674 137 237484 1 10 1152 1152 Medium Insect Water 2 12 01 Papila Cae +20675 187 2405191 1 10 1152 1152 Medium Insect Water 2 12 01 Senior Papila Cae +20676 150 10000 1 7 1 1 Medium Insect Water 2 12 06 Papila Cae +20677 140 360702 2 10 1440 1440 Medium Demihuman Water 2 12 04 Aries +20678 190 3656403 2 10 1440 1440 Medium Demihuman Fire 2 12 04 Senior Aries +20679 130 20 1 10 1 1 Large Formless Neutral 3 12 06 Guardian Parts +20680 130 180367 1 10 864 1268 Medium Demihuman Neutral 2 12 04 Heart Hunter Skirmisher +20681 130 180367 1 10 864 1268 Medium Demihuman Neutral 2 12 04 Heart Hunter Skirmisher +20682 176 1208485 1 10 864 1268 Medium Demihuman Dark 2 12 04 Heart Hunter Skirmisher +20683 141 250264 1 10 576 576 Large Insect Earth 2 12 04 Bookworm +20684 144 256849 1 10 912 1824 Medium Formless Neutral 3 12 04 Roaming Spellbook +20685 142 290128 1 10 768 1536 Large Demon Dark 2 12 04 Sewage Venenum +20686 140 285388 1 10 522 1044 Small Brute Poison 1 12 04 Sewage Cramp +20687 141 287897 1 10 1672 720 Medium Formless Poison 2 12 04 Sewage Waterfall +20688 143 295508 5 10 384 384 Medium Demihuman Ghost 1 12 05 Elite Bellare +20689 145 299350 1 10 1768 768 Medium Demihuman Ghost 1 12 04 Spell Addicted Dolor +20690 144 291046 2 10 912 1248 Medium Formless Ghost 2 12 04 Released Spell +20691 192 2946697 2 10 1280 1080 Large Demon Poison 3 12 04 Spell Addicted Plaga +20692 194 2979073 1 10 576 1152 Medium Demihuman Holy 2 12 04 Spell Addicted Sanare +20693 193 2961272 1 10 912 1248 Medium Formless Ghost 3 12 04 Powerful Spell +20694 193 2960243 1 10 912 1248 Medium Formless Ghost 3 12 04 Sharp Spell +20696 130 130 1 10 1152 1344 Small Formless Neutral 1 12 01 Child Admin Beta +20697 180 180 1 10 1152 1344 Small Formless Neutral 1 12 01 Child Admin Alpha +20698 137 238512 1 10 480 960 Medium Formless Neutral 2 12 04 Assistant +20699 143 295508 5 10 384 384 Medium Demihuman Ghost 1 12 04 Heart Hunter Commander +20700 135 234017 1 10 960 960 Small Formless Fire 2 12 04 Broken Gardener Beta +20801 147 336823 1 10 550 1056 Medium Fish Water 3 12 04 Deep Sea Sropho +20802 149 340238 1 10 936 1155 Medium Fish Water 2 12 04 Deep Sea Obeaune +20803 150 348355 1 10 480 970 Medium Fish Water 4 12 04 Deep Sea Deviace +20804 149 335141 1 10 1070 1512 Small Fish Water 2 12 04 Deep Sea Marse +20805 148 337534 1 10 708 1225 Medium Demihuman Water 3 12 04 Deep Sea Merman +20806 199 2875143 1 10 168 965 Medium Fish Wind 3 12 04 Deep Sea Sedora +20807 199 2997411 1 10 335 1250 Large Fish Water 3 12 04 Deep Sea Swordfish +20808 201 2967419 1 10 276 672 Large Fish Water 3 12 04 Deep Sea Strouf +20809 199 2897158 1 10 168 1154 Medium Fish Water 2 12 04 Deep Sea Phen +20810 205 3115698 1 10 480 960 Large Fish Water 3 12 04 Deep Sea King Dramoh +20811 204 81289587 3 10 422 870 Large Fish Water 4 12 21 Deep Sea Kraken +20834 200 1 3 10 432 864 Medium Formless Neutral 1 12 Abr_Offensive ABR Battle Warrior +20835 200 1 5 8 384 768 Medium Formless Neutral 1 12 Abr_Offensive ABR Duel Cannon +20836 200 1 5 5 504 1008 Small Formless Neutral 1 9 Abr_Passive ABR Mother Net +20837 200 1 5 8 864 1728 Large Formless Neutral 1 12 Abr_Offensive ABR Infinity +20843 205 78368745 3 10 360 1250 Large Demon Dark 3 12 21 Deep Sea Witch +20846 170 100000 1 10 432 288 Small Demon Neutral 1 12 27 Plague of Corruption +20847 170 100000 1 10 1 1 Small Formless Neutral 1 12 06 Plague of Corruption +20848 200 1 3 10 480 960 Medium Plant Earth 4 12 24 Wooden Warrior +20849 200 1 5 8 576 1152 Small Plant Earth 4 12 24 Wooden Fairy +20850 200 1 5 8 420 840 Small Plant Earth 4 12 24 Creeper +20851 200 1 5 8 540 1080 Large Plant Neutral 4 12 24 Hell Tree +20920 243 33910920 2 10 691 1152 Small Formless Fire 3 12 04 Lavaeter +20921 244 36820210 2 10 576 1152 Medium Brute Water 3 12 04 Fulgor +20922 244 30324840 2 10 576 1152 Medium Plant Wind 3 12 04 Napeo +20923 244 35885800 2 10 480 960 Medium Demihuman Earth 3 12 04 Galensis +20924 227 27974600 2 10 480 960 Medium Brute Earth 3 12 04 Amitera +20925 228 23160350 2 10 540 1080 Medium Demihuman Wind 3 12 04 Litus +20926 229 23252650 2 10 900 1800 Medium Brute Fire 3 12 04 Fillia +20927 230 25505670 2 10 1536 3072 Small Formless Water 3 12 04 Vanilaqus +20928 245 275042400 2 10 1440 2880 Large Formless Neutral 3 12 21 The One +20929 213 12405430 1 10 924 1848 Large Formless Neutral 2 12 04 Giant Caput +20930 214 11763310 1 10 674 1248 Medium Demihuman Poison 3 12 04 Dolorian +20931 215 13189560 2 10 1332 2664 Large Dragon Neutral 2 12 04 Plagarion +20932 214 12435400 1 10 576 1152 Medium Demihuman Dark 2 12 04 Deadre +20933 213 11790680 1 10 768 1536 Medium Brute Poison 3 12 04 Venedi +20934 215 134179630 1 10 672 1344 Large Brute Dark 2 12 21 R001-Bestia +20935 215 11785610 2 10 238 576 Medium Formless Neutral 1 12 04 Gan Ceann +20936 254 42030800 2 10 384 768 Medium Demon Undead 2 12 04 Disguiser +20937 214 13909270 2 10 336 672 Large Demihuman Neutral 2 12 04 Brutal Murderer +20938 213 12735150 1 10 624 1248 Small Undead Undead 1 12 04 Ghost Cube +20939 213 12840680 2 10 480 960 Small Undead Undead 2 12 04 Lude Gal +20940 255 46338500 2 10 510 1020 Large Demon Water 3 12 04 Blue Moon Loli Ruri +20941 253 47842600 1 10 792 1584 Large Demon Earth 2 12 04 Grote +20942 255 38506310 1 10 768 1536 Medium Demon Dark 2 12 04 Pierrotzoist +20943 255 398856250 3 10 517 1134 Medium Demihuman Dark 2 12 21 Death Witch +21064 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Training Dummy (Small) +21065 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Training Dummy (Medium) +21066 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Training Dummy (Large) +21067 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Training Dummy (Neutral) +21068 100 2000000000 0 0 0 0 Medium Dragon Neutral 1 0 06 Training Dummy (Dragon) +21069 100 2000000000 0 0 0 0 Medium Brute Neutral 1 0 06 Training Dummy (Brute) +21070 100 2000000000 0 0 0 0 Medium Demihuman Neutral 1 0 06 Training Dummy (Human) +21071 100 2000000000 0 0 0 0 Medium Insect Neutral 1 0 06 Training Dummy (Insect) +21072 100 2000000000 0 0 0 0 Medium Fish Neutral 1 0 06 Training Dummy (Fish) +21073 100 2000000000 0 0 0 0 Medium Demon Neutral 1 0 06 Training Dummy (Demon) +21074 100 2000000000 0 0 0 0 Medium Plant Neutral 1 0 06 Training Dummy (Plant) +21075 100 2000000000 0 0 0 0 Medium Angel Neutral 1 0 06 Training Dummy (Angel) +21076 100 2000000000 0 0 0 0 Medium Undead Neutral 1 0 06 Training Dummy (Undead) +21077 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Neutral Lv1) +21078 100 2000000000 0 0 0 0 Medium Formless Water 1 0 06 Dummy (Water Lv1) +21079 100 2000000000 0 0 0 0 Medium Formless Earth 1 0 06 Dummy (Earth Lv1) +21080 100 2000000000 0 0 0 0 Medium Formless Fire 1 0 06 Dummy (Fire Lv1) +21081 100 2000000000 0 0 0 0 Medium Formless Wind 1 0 06 Dummy (Wind Lv1) +21082 100 2000000000 0 0 0 0 Medium Formless Poison 1 0 06 Dummy (Poison Lv1) +21083 100 2000000000 0 0 0 0 Medium Formless Holy 1 0 06 Dummy (Holy Lv1) +21084 100 2000000000 0 0 0 0 Medium Formless Dark 1 0 06 Dummy (Dark Lv1) +21085 100 2000000000 0 0 0 0 Medium Formless Ghost 1 0 06 Dummy (Ghost Lv1) +21086 100 2000000000 0 0 0 0 Medium Formless Undead 1 0 06 Dummy (Undead Lv1) +21087 100 2000000000 0 0 0 0 Medium Player_Human Neutral 1 0 06 Dummy (Human Player) +21088 100 2000000000 0 0 0 0 Small Player_Doram Neutral 1 0 06 Dummy (Doram Player) +21292 180 50000000 1 10 432 432 Small Formless Neutral 1 12 04 Armed villager +21293 180 50000000 1 10 252 504 Medium Formless Neutral 1 12 04 Armed villager +21294 180 50000000 1 10 432 432 Medium Formless Neutral 1 12 04 Armed villager +21295 179 1530687 1 10 1008 1008 Medium Brute Fire 2 12 04 Ash Toad +21296 177 1514469 1 10 432 864 Medium Plant Earth 2 12 10 Rakehand +21297 181 2313388 1 10 936 1872 Small Formless Fire 2 12 04 Spark +21298 212 4925041 1 10 571 1152 Medium Brute Neutral 1 12 04 Hot Molar +21299 185 2361429 1 10 792 1584 Small Formless Fire 3 12 02 Volcaring +21300 211 4902338 1 10 504 1008 Medium Brute Fire 3 12 04 Lava Toad +21301 212 98158095 3 10 420 840 Large Brute Fire 4 12 21 Burning Fang +21302 185 2361429 1 10 760 1080 Small Insect Dark 4 12 04 Ashhopper +21303 185 2364513 1 10 1152 1152 Small Formless Neutral 2 12 02 Ashring +21304 187 2399581 1 10 576 576 Medium Brute Neutral 2 12 04 Grey Wolf +21305 185 2361738 1 10 506 1008 Small Plant Poison 2 12 07 Tumblering +21306 188 2407556 1 10 720 720 Medium Brute Fire 2 12 04 Firewind Kite +21307 186 2383494 1 10 792 792 Medium Brute Ghost 2 12 04 Phantom Wolf +21308 178 1522432 1 10 864 864 Medium Demihuman Neutral 1 12 04 Heart Hunter +21309 179 1851144 1 10 648 648 Medium Demihuman Neutral 2 12 04 Base Soldier +21310 179 1831096 1 10 648 648 Medium Demihuman Neutral 2 12 04 Temple Guard +21311 182 2325107 1 10 648 648 Medium Demihuman Neutral 2 12 04 Traditional Temple Guard +21312 184 2356331 1 10 864 432 Medium Demihuman Neutral 2 12 04 Heart Hunter +21313 185 2368675 1 10 576 288 Large Demihuman Neutral 2 12 04 Heart Hunter +21314 185 23586543 3 10 720 1440 Medium Demon Ghost 2 12 21 Schulang +21315 186 23834938 3 10 736 1104 Medium Angel Holy 2 12 21 Twisted God Freyja +21316 185 2000000000 3 10 720 1440 Medium Demon Ghost 2 12 21 Schulang +21317 185 2000000000 3 10 736 1104 Medium Angel Holy 2 12 21 Twisted God Freyja +21318 170 5000000 1 10 576 1152 Medium Demihuman Holy 2 12 04 Goddess Guardian +21319 170 5000000 9 10 864 432 Medium Demihuman Neutral 2 12 05 Cottage Keeper +21320 185 3000000 1 0 0 0 Small Formless Neutral 1 0 21 Maram +21321 185 3000000 1 0 0 0 Small Formless Neutral 1 0 21 Miriam +21322 185 10 1 0 0 0 Small Formless Neutral 1 0 21 Suad +21323 168 962975 1 10 540 1080 Medium Brute Neutral 2 12 04 Ashen Goat +21324 165 944679 1 10 1600 900 Small Brute Neutral 1 12 04 Baby Gray Wolf +21360 224 2000000000 3 10 720 1440 Medium Demon Ghost 2 12 21 Schulang +21361 224 2000000000 3 10 736 1104 Medium Angel Holy 2 12 21 Twisted God Freyja +21377 210 5000000 1 10 576 1152 Medium Demihuman Holy 2 12 04 Goddess Guardian +21378 210 5000000 9 10 864 432 Medium Demihuman Neutral 2 12 05 Cottage Keeper +21386 167 839882 1 10 1288 288 Small Insect Earth 3 12 21 Diligent Andre +21387 169 943547 1 10 1288 648 Medium Insect Earth 4 12 21 Diligent Soldier Andre +21388 164 819978 1 10 1000 792 Small Insect Earth 2 12 21 Diligent Andre Larva +21389 167 819978 1 10 1288 288 Small Insect Earth 3 12 21 Diligent Deniro +21390 167 825541 1 10 1288 288 Small Insect Earth 3 12 21 Diligent Piere +21391 164 659810 0 0 0 0 Small Formless Neutral 2 0 06 Mushy Ant Egg +21392 168 864988 1 10 1848 1296 Small Demon Dark 3 12 21 Gutsy Giearth +21393 166 761002 1 10 1276 576 Small Brute Dark 2 12 21 Gutsy Familiar +21394 169 879511 3 10 1768 768 Small Insect Poison 4 12 21 Diligent Vitata +21395 175 24512365 1 10 864 1000 Large Insect Neutral 4 12 21 Silent Maya +21866 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 Spring Jewel +21867 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 Summer Jewel +21868 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 Autumn Jewel +21869 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 Winter Jewel +21887 250 300 1 0 1000 1000 Small Formless Neutral 1 0 06 Jewel +22177 1 1 0 0 0 0 Small Formless Neutral 1 0 06 MD_PRI_DRAGON_1 +22178 1 1 0 0 0 0 Small Formless Neutral 1 0 06 MD_PRI_DRAGON_2 +22179 1 1 0 0 0 0 Small Formless Neutral 1 0 06 MD_PRI_DRAGON_3 +22180 1 1 0 0 0 0 Small Formless Neutral 1 0 06 MD_PRI_DRAGON_4 +22192 262 21176032 1 10 224 672 Small Formless Wind 2 12 21 L Blue Earth Spirit +22193 263 21721220 1 10 256 768 Medium Formless Wind 3 12 21 Blue Earth Spirit +22194 264 22277336 1 10 288 864 Large Formless Wind 4 12 21 G Blue Earth Spirit +22195 264 37875440 1 10 288 864 Large Formless Wind 4 12 21 M Blue Earth Spirit +22196 262 23988560 1 10 448 1344 Small Formless Water 2 12 21 L Blue Flame Spirit +22197 263 24572252 7 10 320 960 Medium Formless Water 3 12 21 Blue Flame Spirit +22198 264 25531520 7 10 224 672 Large Formless Water 4 12 21 G Blue Flame Spirit +22199 264 39995472 7 10 224 672 Large Formless Water 4 12 21 Blue Flame Mutant Spirit +22200 262 21175556 1 10 288 864 Small Formless Wind 2 12 21 L Strong Wind Spirit +22201 263 21719556 1 10 256 768 Medium Formless Wind 3 12 21 Strong Wind Spirit +22202 264 22275936 2 10 256 768 Large Formless Wind 4 12 21 G Strong Wind Spirit +22203 264 37839992 2 10 256 768 Large Formless Wind 4 12 21 M Strong Wind Spirit +22204 262 24265740 7 10 320 960 Small Formless Water 2 12 21 L Cold Water Spirit +22205 263 24555120 2 10 448 1344 Medium Formless Water 3 12 21 Cold Water Spirit +22206 264 25183728 2 10 512 1536 Large Formless Water 4 12 21 G Cold Water Spirit +22207 264 40183012 2 10 512 1536 Large Formless Water 4 12 21 M Cold Water Spirit +22208 263 24014584 1 10 224 672 Small Formless Neutral 2 12 21 L Polluted Earth Spirit +22209 264 25391720 1 10 256 768 Medium Formless Neutral 3 12 21 Polluted Earth Spirit +22210 265 26039004 1 10 288 864 Large Formless Neutral 4 12 21 G Polluted Earth Spirit +22211 265 49912004 1 10 288 864 Large Formless Neutral 4 12 21 M Polluted Earth Spirit +22212 263 23932040 1 10 448 1344 Small Formless Neutral 2 12 21 L Tainted Flame Spirit +22213 264 25295720 2 10 320 960 Medium Formless Neutral 3 12 21 Tainted Flame Spirit +22214 265 25601332 7 10 224 672 Large Formless Neutral 4 12 21 G Tainted Flame Spirit +22215 265 48817296 7 10 224 672 Large Formless Neutral 4 12 21 M Tainted Flame Spirit +22216 262 20815920 7 12 320 960 Small Formless Fire 2 12 21 L Hot Water Spirit +22217 263 21634616 2 10 448 1344 Medium Formless Fire 3 12 21 Hot Water Spirit +22218 264 22203156 7 10 512 1536 Large Formless Fire 4 12 21 G Hot Water Spirit +22219 264 37234928 7 10 512 1536 Large Formless Fire 4 12 21 M Hot Water Spirit +22220 262 22810476 1 10 288 864 Small Formless Earth 2 12 21 L Dry Wind Spirit +22221 263 23889444 1 10 256 768 Medium Formless Earth 3 12 21 Dry Wind Spirit +22222 264 24499424 2 10 256 768 Large Formless Earth 4 12 21 G Dry Wind Spirit +22223 264 40955240 2 10 256 768 Large Formless Earth 4 12 21 M Dry Wind Spirit +22224 262 20818044 1 10 448 1344 Small Formless Fire 2 12 21 L Red Flame Spirit +22225 263 21678280 1 10 320 960 Medium Formless Fire 3 12 21 Red Flame Spirit +22226 264 22163556 7 10 224 672 Large Formless Fire 4 12 21 G Red Flame Spirit +22227 264 37686044 7 10 224 672 Large Formless Fire 4 12 21 M Red Flame Spirit +22228 262 23058768 1 10 224 672 Small Formless Earth 2 12 21 L Solid Earth Spirit +22229 263 23889840 1 10 256 768 Medium Formless Earth 3 12 21 Solid Earth Spirit +22230 264 24501384 1 10 288 864 Large Formless Earth 4 12 21 G Solid Earth Spirit +22231 264 41655832 1 10 288 864 Large Formless Earth 4 12 21 M Solid Earth Spirit +22232 263 24400816 7 10 320 960 Small Formless Neutral 2 12 21 L Polluted Water Spirit +22233 264 25363720 2 10 448 1344 Medium Formless Neutral 3 12 21 Polluted Water Spirit +22234 265 25758488 7 10 512 1536 Large Formless Neutral 4 12 21 G Polluted Water Spirit +22235 265 48794736 7 10 512 1536 Large Formless Neutral 4 12 21 M Polluted Water Spirit +22236 263 23959260 1 10 288 864 Small Formless Neutral 2 12 21 L Tainted Wind Spirit +22237 264 25155968 1 10 256 768 Medium Formless Neutral 3 12 21 Tainted Wind Spirit +22238 265 26007004 2 10 256 768 Large Formless Neutral 4 12 21 G Tainted Wind Spirit +22239 265 49852100 2 10 256 768 Large Formless Neutral 4 12 21 M Tainted Wind Spirit +22551 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22552 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22553 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22554 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22555 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22556 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22557 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22558 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22559 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22560 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22561 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22562 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22563 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22564 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22565 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22566 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22567 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22568 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22569 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22570 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22571 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22572 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22573 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22574 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22575 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22576 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22577 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22578 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22579 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22580 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22581 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22582 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22583 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22584 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22585 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22586 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22587 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22588 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22589 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22590 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22591 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22592 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22593 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22594 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22595 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22596 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22597 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22598 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22599 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22600 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22601 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22602 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22603 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22604 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22605 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22606 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22607 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22608 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22609 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22610 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22611 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22612 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22613 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22614 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22615 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22616 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22617 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22618 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22619 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22620 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22621 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22622 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22623 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22624 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Extra Large) +22625 100 2000000000 0 0 0 0 Small Formless Neutral 1 0 06 Dummy (Small) +22626 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Medium) +22627 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) +22628 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Formless Race) +22629 100 2000000000 0 0 0 0 Medium Dragon Neutral 1 0 06 Dummy (Dragon Race) +22630 100 2000000000 0 0 0 0 Medium Brute Neutral 1 0 06 Dummy (Brute Race) +22631 100 2000000000 0 0 0 0 Medium Demihuman Neutral 1 0 06 Dummy (Human Race) +22632 100 2000000000 0 0 0 0 Medium Insect Neutral 1 0 06 Dummy (Insect Race) +22633 100 2000000000 0 0 0 0 Medium Fish Neutral 1 0 06 Dummy (Fish Race) +22634 100 2000000000 0 0 0 0 Medium Demon Neutral 1 0 06 Dummy (Demon Race) +22635 100 2000000000 0 0 0 0 Medium Plant Neutral 1 0 06 Dummy (Plant Race) +22636 100 2000000000 0 0 0 0 Medium Angel Neutral 1 0 06 Dummy (Angel Race) +22637 100 2000000000 0 0 0 0 Medium Undead Neutral 1 0 06 Dummy (Undead Race) +22638 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Formless Race) +22639 100 2000000000 0 0 0 0 Medium Dragon Neutral 1 0 06 Dummy (Dragon Race) +22640 100 2000000000 0 0 0 0 Medium Brute Neutral 1 0 06 Dummy (Brute Race) +22641 100 2000000000 0 0 0 0 Medium Demihuman Neutral 1 0 06 Dummy (Human Race) +22642 100 2000000000 0 0 0 0 Medium Insect Neutral 1 0 06 Dummy (Insect Race) +22643 100 2000000000 0 0 0 0 Medium Fish Neutral 1 0 06 Dummy (Fish Race) +22644 100 2000000000 0 0 0 0 Medium Demon Neutral 1 0 06 Dummy (Demon Race) +22645 100 2000000000 0 0 0 0 Medium Plant Neutral 1 0 06 Dummy (Plant Race) +22646 100 2000000000 0 0 0 0 Medium Angel Neutral 1 0 06 Dummy (Angel Race) +22647 100 2000000000 0 0 0 0 Medium Undead Neutral 1 0 06 Dummy (Undead Race) +22648 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Neutral) +22649 100 2000000000 0 0 0 0 Medium Formless Water 1 0 06 Dummy (Water) +22650 100 2000000000 0 0 0 0 Medium Formless Earth 1 0 06 Dummy (Earth) +22651 100 2000000000 0 0 0 0 Medium Formless Fire 1 0 06 Dummy (Fire) +22652 100 2000000000 0 0 0 0 Medium Formless Wind 1 0 06 Dummy (Wind) +22653 100 2000000000 0 0 0 0 Medium Formless Poison 1 0 06 Dummy (Poison) +22654 100 2000000000 0 0 0 0 Medium Formless Holy 1 0 06 Dummy (Holy) +22655 100 2000000000 0 0 0 0 Medium Formless Dark 1 0 06 Dummy (Dark) +22656 100 2000000000 0 0 0 0 Medium Formless Ghost 1 0 06 Dummy (Ghost) +22657 100 2000000000 0 0 0 0 Medium Formless Undead 1 0 06 Dummy (Undead) +22658 100 2000000000 0 0 0 0 Medium Formless Neutral 1 0 06 Dummy (Neutral) +22659 100 2000000000 0 0 0 0 Medium Formless Water 1 0 06 Dummy (Water) +22660 100 2000000000 0 0 0 0 Medium Formless Earth 1 0 06 Dummy (Earth) +22661 100 2000000000 0 0 0 0 Medium Formless Fire 1 0 06 Dummy (Fire) +22662 100 2000000000 0 0 0 0 Medium Formless Wind 1 0 06 Dummy (Wind) +22663 100 2000000000 0 0 0 0 Medium Formless Poison 1 0 06 Dummy (Poison) +22664 100 2000000000 0 0 0 0 Medium Formless Holy 1 0 06 Dummy (Holy) +22665 100 2000000000 0 0 0 0 Medium Formless Dark 1 0 06 Dummy (Dark) +22666 100 2000000000 0 0 0 0 Medium Formless Ghost 1 0 06 Dummy (Ghost) +22667 100 2000000000 0 0 0 0 Medium Formless Undead 1 0 06 Dummy (Undead) +22668 100 2000000000 0 0 0 0 Large Formless Neutral 1 0 06 Dummy (Large) diff --git a/tables/portals_spawns.txt b/tables/portals_spawns.txt index 2339b97ee4..2e01bac6ab 100644 --- a/tables/portals_spawns.txt +++ b/tables/portals_spawns.txt @@ -74,6 +74,7 @@ savepoint "pay_arche",49,144; savepoint "payon",104,99; savepoint "payon",160,58; savepoint "payon",164,58; +savepoint "payon",159,57; savepoint "payon",256,242; savepoint "payon",257,242; savepoint "payon",70,100; diff --git a/tables/tools/mobdb_yml_to_monsters_table_txt.pl b/tables/tools/mobdb_yml_to_monsters_table_txt.pl index 3804f1e5bc..a4966626c2 100644 --- a/tables/tools/mobdb_yml_to_monsters_table_txt.pl +++ b/tables/tools/mobdb_yml_to_monsters_table_txt.pl @@ -5,10 +5,10 @@ use open ':std', ':encoding(UTF-8)'; # Usage: -# perl mobdb_yml_to_openkore.pl input.yml output.txt +# perl mobdb_yml_to_monsters_table_txt.pl input.yml output.txt # # Example: -# perl mobdb_yml_to_openkore.pl mob_db.yml monsters_table.txt +# perl mobdb_yml_to_monsters_table_txt.pl mob_db.yml monsters_table.txt # # Requires: # cpan YAML::XS @@ -46,6 +46,7 @@ ElementLevel ChaseRange Ai + Name ) ), "\n"; @@ -65,6 +66,9 @@ my $element_lv = defined $mob->{ElementLevel} ? $mob->{ElementLevel} : 1; my $chase_range = defined $mob->{ChaseRange} ? $mob->{ChaseRange} : 0; my $ai = defined $mob->{Ai} ? $mob->{Ai} : '06'; + my $name = defined $mob->{Name} ? $mob->{Name} : ''; + $name =~ s/[\r\n\t]+/ /g; + $name =~ s/^\s+|\s+$//g; print $out join("\t", $id, @@ -80,6 +84,7 @@ $element_lv, $chase_range, $ai, + $name, ), "\n"; }