AutoQM ■機能説明 指定した数のmobに攻撃されている時に自分の真下にQMを使用します。 また、指定したmobに攻撃した時、そのmobの真下にQMを使用します。 ■使用方法 config.txtで適切に設定します。 ----- [kore.pl] print "You are now in the game\n"; sendMapLoaded(\$remote_socket); +# Auto QM +$AutoQM_LastUsedTime = time - ($config{'AutoQM_lvl'}*3 - 1); ----- [kore.pl] +##### AUTO QM ##### + +if ($AutoQM_LastUsedTime ne '' + && $config{'AutoQM_minAggressives'} ne '' + && (time > $AutoQM_LastUsedTime + ($config{'AutoQM_lvl'} * 5 - 1) || ($AutoQM_x ne $chars[$config{'char'}]{'pos_to'}{'x'} || $AutoQM_y ne $chars[$config{'char'}]{'pos_to'}{'y'})) + && $config{'AutoQM_minAggressives'} <= ai_getAggressives() + && ($AutoQMReload eq '' || time > $AutoQMReload + 2)) { + ai_skillUse($chars[$config{'char'}]{'skills'}{'WZ_QUAGMIRE'}{'ID'}, $config{"AutoQM_lvl"}, 0, 0, $chars[$config{'char'}]{'pos_to'}{'x'}, $chars[$config{'char'}]{'pos_to'}{'y'}); + # 座標記憶 + $AutoQM_x = $chars[$config{'char'}]{'pos_to'}{'x'}; + $AutoQM_y = $chars[$config{'char'}]{'pos_to'}{'y'}; + + $AutoQMReload = time; +} +##### TARGET QM ##### + +if ($config{'TargetQM'} ne '') { + my @agMonsters = undef; + foreach (@monstersID) { + next if ($_ eq ""); + if (($monsters{$_}{'dmgToYou'} > 0 || $monsters{$_}{'missedYou'} > 0) && $monsters{$_}{'attack_failed'} <= 1) { + push @agMonsters, $_; + } + } + foreach (@agMonsters) { + if (($monsters{$_}{'TargetQM'} eq '' || time > $monsters{$_}{'TargetQM'} + ($config{'AutoQM_lvl'} * 5 - 1)) + && existsInList($config{"TargetQM_monsters"}, $monsters{$_}{'name'}) + && ($TargetQMReload eq '' || time > $TargetQMReload + 2)) { + ai_skillUse($chars[$config{'char'}]{'skills'}{'WZ_QUAGMIRE'}{'ID'}, $config{"AutoQM_lvl"}, 0, 0, $monsters{$_}{'pos_to'}{'x'}, $monsters{$_}{'pos_to'}{'y'}); + + $TargetQMReload = time; + } + } +} ##### ROUTE ##### ----- [kore.pl] print "$sourceDisplay $skillsID_lut{$skillID} on location ($x, $y)\n"; +if ($sourceDisplay eq "You use" && $skillsID_lut{$skillID} eq 'クァグマイア') { + # 時間記憶 + if ($x eq $chars[$config{'char'}]{'pos_to'}{'x'} && $y eq $chars[$config{'char'}]{'pos_to'}{'y'}) { # Player + $AutoQM_LastUsedTime = time; + } else { + foreach (@monstersID) { + if ($x-2 <= $monsters{$_}{'pos_to'}{'x'} && $x+2 >= $monsters{$_}{'pos_to'}{'x'} + && $y-2 <= $monsters{$_}{'pos_to'}{'y'} && $y+2 >= $monsters{$_}{'pos_to'}{'y'}) { # Monster + $monsters{$_}{'TargetQM'} = time; + } + } + } +} ----- [config.txt] +# Auto QMを使用するか +AutoQM 1 +# QMのレベル +AutoQM_lvl 3 +# 何体に囲まれたら使用するか +AutoQM_minAggressives 3 +# 特定のモンスターに攻撃されたらQMするか +TargetQM 1 +# モンスター名(,で区切って複数指定可) +TargetQM_monsters コボルトアーチャー