- UID
- 84897
- 帖子
- 528
- 主題
- 528
- 精華
- 0
- 積分
- 552
- 楓幣
- 5591
- 威望
- 549
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 549
- 閱讀權限
- 50
- 性別
- 保密
- 在線時間
- 51 小時
- 註冊時間
- 2014-11-29
- 最後登入
- 2015-2-8
|
優化的有~
1.魔物在不可到達的地方略過不打(新功能)
2.魔物超過設定距離略過不打(新功能)
3.轉角遇到魔物和有拌腳石 不會卡住(修正)
4.遠距離攻擊職業 不會卡住[待測試](修正)
5.正在走向目標魔物,但途中有另一魔物先攻擊到您,就會轉換攻擊目標(修正)
以下要修改源碼~
請注意: 以下修改涉及主程式修改,
稍有不慎恐會造成 Openkore 無法執行,若無把握請勿嘗試,
建議修改前先備份該相關檔案,以備不時之需
開啟檔案 src\AI\Attack.pm
=====修改(1)=====
原程式碼- } elsif (
- $config{attackCheckLOS} && $args->{attackMethod}{distance} > 2
- && (($config{attackCanSnipe} && !checkLineSnipable($realMyPos, $realMonsterPos))
- || (!$config{attackCanSnipe} && $realMonsterDist <= $args->{attackMethod}{maxDistance} && !checkLineWalkable($realMyPos, $realMonsterPos, 1)))
- ) {
複製代碼 修改成- } elsif (
- $config{attackCheckLOS} && $realMonsterDist > 1
- && (($config{attackCanSnipe} && !checkLineSnipable($realMyPos, $realMonsterPos))
- || (!$config{attackCanSnipe} && $realMonsterDist <= $args->{attackMethod}{maxDistance} && !checkLineWalkable($realMyPos, $realMonsterPos, 0)))
- ) {
複製代碼 修改 02 ,05 行~
=====修改(1-1)===== PUN_DI 大大 && 11225s 大大提供
原程式碼- my @stand = calcRectArea2($realMonsterPos->{x}, $realMonsterPos->{y},
- $args->{attackMethod}{distance},
複製代碼 修改成- my @stand = calcRectArea2($realMonsterPos->{x}, $realMonsterPos->{y},
- int($args->{attackMethod}{maxDistance}),
複製代碼 將 {distance} 修改成 {maxDistance} 並 小數點無條件捨去
=====修改(2)=====
原程式碼- if (
- (($config{attackCanSnipe} && checkLineSnipable($spot, $realMonsterPos))
- || checkLineWalkable($spot, $realMonsterPos))
- && $field->isWalkable($spot->{x}, $spot->{y})
- && ($realMyPos->{x} != $spot->{x} && $realMyPos->{y} != $spot->{y})
- && (!$master || round(distance($spot, $masterPos)) <= $config{followDistanceMax})
- ) {
複製代碼 修改成- if ( $field->isWalkable($spot->{x}, $spot->{y})
- && ($realMyPos->{x} != $spot->{x} && $realMyPos->{y} != $spot->{y})
- && round(distance($spot, $realMonsterPos)) <= $args->{attackMethod}{maxDistance}
- && (!$master || round(distance($spot, $masterPos)) <= $config{followDistanceMax})
- && (($config{attackCanSnipe} && checkLineSnipable($spot, $realMonsterPos))
- || checkLineWalkable($spot, $realMonsterPos, 0))
- ) {
複製代碼 修改 01 - 06 行~
03 行增加計算迴避座標要在最大攻擊範圍內~ 避免陷入無限迴圈
|
|