Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<mdscript name="FleetPowerReputation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
<cues>
<!-- 主要控制器 -->
<cue name="FleetPowerReputation_Init" instantiate="static">
<conditions>
<event_game_loaded />
</conditions>
<actions>
<debug_text text="'Fleet Power Reputation Mod (戰鬥船艦版): 已啟動'" chance="100" />
<set_value name="$CheckInterval" exact="30s" />
<set_value name="$TargetReputation" exact="-30" />
<set_value name="$PlayerFaction" exact="faction.player" />
<!-- 添加調試開關 -->
<set_value name="$DebugMode" exact="true" />
</actions>
<cues>
<!-- 定期檢查戰鬥船艦力量 -->
<cue name="FleetPowerCheck" instantiate="static">
<conditions>
<event_cue_signalled />
</conditions>
<delay exact="$CheckInterval" />
<actions>
<do_if value="player.entity">
<!-- 添加開始檢查的調試訊息 -->
<do_if value="$DebugMode">
<debug_text text="'=== 開始檢查戰鬥船艦力量 ==='" chance="100" />
</do_if>
<!-- 計算玩家戰鬥船艦力量 -->
<set_value name="$PlayerFleetPower" exact="0" />
<!-- XL戰鬥艦 = 1000點 -->
<find_ship name="$PlayerXLShips" owner="faction.player" class="class.ship_xl" purpose="purpose.fight" multiple="true" />
<set_value name="$XLCount" exact="$PlayerXLShips.count" />
<set_value name="$PlayerFleetPower" exact="$PlayerFleetPower + ($XLCount * 1000)" />
<!-- L戰鬥艦 = 100點 -->
<find_ship name="$PlayerLShips" owner="faction.player" class="class.ship_l" purpose="purpose.fight" multiple="true" />
<set_value name="$LCount" exact="$PlayerLShips.count" />
<set_value name="$PlayerFleetPower" exact="$PlayerFleetPower + ($LCount * 100)" />
<!-- M戰鬥艦 = 10點 -->
<find_ship name="$PlayerMShips" owner="faction.player" class="class.ship_m" purpose="purpose.fight" multiple="true" />
<set_value name="$MCount" exact="$PlayerMShips.count" />
<set_value name="$PlayerFleetPower" exact="$PlayerFleetPower + ($MCount * 10)" />
<!-- S戰鬥艦 = 1點 -->
<find_ship name="$PlayerSShips" owner="faction.player" class="class.ship_s" purpose="purpose.fight" multiple="true" />
<set_value name="$SCount" exact="$PlayerSShips.count" />
<set_value name="$PlayerFleetPower" exact="$PlayerFleetPower + ($SCount * 1)" />
<!-- 顯示玩家戰鬥船艦力量 -->
<do_if value="$DebugMode">
<debug_text text="'玩家戰鬥船艦數量: XL=' + $XLCount + ' L=' + $LCount + ' M=' + $MCount + ' S=' + $SCount + ' 總戰力=' + $PlayerFleetPower" chance="100" />
</do_if>
<!-- 檢查每個勢力的戰鬥船艦(只包含確實存在的勢力) -->
<do_for_each name="$Faction" in="[faction.argon, faction.antigone, faction.holyorder, faction.paranid, faction.teladi, faction.ministry, faction.freefamilies, faction.zyarth, faction.terran, faction.pioneers, faction.boron]">
<do_if value="$Faction and $Faction != $PlayerFaction">
<!-- 計算該勢力戰鬥船艦力量 -->
<set_value name="$FactionFleetPower" exact="0" />
<!-- XL戰鬥艦 = 1000點 -->
<find_ship name="$FactionXLShips" owner="$Faction" class="class.ship_xl" purpose="purpose.fight" multiple="true" />
<set_value name="$FXLCount" exact="$FactionXLShips.count" />
<set_value name="$FactionFleetPower" exact="$FactionFleetPower + ($FXLCount * 1000)" />
<!-- L戰鬥艦 = 100點 -->
<find_ship name="$FactionLShips" owner="$Faction" class="class.ship_l" purpose="purpose.fight" multiple="true" />
<set_value name="$FLCount" exact="$FactionLShips.count" />
<set_value name="$FactionFleetPower" exact="$FactionFleetPower + ($FLCount * 100)" />
<!-- M戰鬥艦 = 10點 -->
<find_ship name="$FactionMShips" owner="$Faction" class="class.ship_m" purpose="purpose.fight" multiple="true" />
<set_value name="$FMCount" exact="$FactionMShips.count" />
<set_value name="$FactionFleetPower" exact="$FactionFleetPower + ($FMCount * 10)" />
<!-- S戰鬥艦 = 1點 -->
<find_ship name="$FactionSShips" owner="$Faction" class="class.ship_s" purpose="purpose.fight" multiple="true" />
<set_value name="$FSCount" exact="$FactionSShips.count" />
<set_value name="$FactionFleetPower" exact="$FactionFleetPower + ($FSCount * 1)" />
<!-- 顯示勢力戰鬥船艦力量和目前聲望 -->
<set_value name="$CurrentReputation" exact="$Faction.relationto.{faction.player}" />
<do_if value="$DebugMode">
<debug_text text="'勢力: ' + $Faction.name + ' 戰鬥船艦: XL=' + $FXLCount + ' L=' + $FLCount + ' M=' + $FMCount + ' S=' + $FSCount + ' 戰力=' + $FactionFleetPower + ' 聲望=' + $CurrentReputation" chance="100" />
</do_if>
<!-- 比較戰鬥力量並調整聲望 -->
<do_if value="$PlayerFleetPower gt $FactionFleetPower">
<!-- 玩家戰鬥力量大於該勢力 -->
<do_if value="$CurrentReputation gt $TargetReputation">
<set_faction_relation faction="$Faction" otherfaction="$PlayerFaction" value="$TargetReputation" />
<debug_text text="'>>> 聲望調整: ' + $Faction.name + ' 從 ' + $CurrentReputation + ' 調整為 ' + $TargetReputation + ' (玩家戰鬥力較強)'" chance="100" />
</do_if>
<do_else>
<do_if value="$DebugMode">
<debug_text text="'聲望已經夠低: ' + $Faction.name + ' (' + $CurrentReputation + ')'" chance="100" />
</do_if>
</do_else>
</do_if>
<do_elseif value="$FactionFleetPower gt $PlayerFleetPower">
<!-- 勢力戰鬥力量大於玩家,但維持-30聲望 -->
<do_if value="$CurrentReputation gt $TargetReputation">
<set_faction_relation faction="$Faction" otherfaction="$PlayerFaction" value="$TargetReputation" />
<debug_text text="'>>> 聲望調整: ' + $Faction.name + ' 從 ' + $CurrentReputation + ' 調整為 ' + $TargetReputation + ' (勢力戰鬥力較強但維持敵對)'" chance="100" />
</do_if>
<do_else>
<do_if value="$DebugMode">
<debug_text text="'聲望已經夠低: ' + $Faction.name + ' (' + $CurrentReputation + ')'" chance="100" />
</do_if>
</do_else>
</do_elseif>
<do_else>
<!-- 戰鬥力量相等的情況 -->
<do_if value="$DebugMode">
<debug_text text="'戰鬥力量相等: ' + $Faction.name + ' (玩家: ' + $PlayerFleetPower + ' vs 勢力: ' + $FactionFleetPower + ')'" chance="100" />
</do_if>
</do_else>
</do_if>
</do_for_each>
</do_if>
<!-- 重新觸發檢查 -->
<reset_cue cue="FleetPowerCheck" />
</actions>
</cue>
<!-- 初始觸發 -->
<cue name="InitialTrigger" instantiate="static">
<conditions>
<event_cue_signalled cue="md.Setup.Start" />
</conditions>
<delay exact="10s" />
<actions>
<debug_text text="'Fleet Power Reputation (戰鬥船艦版): 初始觸發開始'" chance="100" />
<signal_cue cue="FleetPowerCheck" />
</actions>
</cue>
<!-- 遊戲載入後的觸發 -->
<cue name="GameLoadedTrigger" instantiate="static">
<conditions>
<event_game_loaded />
</conditions>
<delay exact="15s" />
<actions>
<debug_text text="'Fleet Power Reputation (戰鬥船艦版): 遊戲載入觸發'" chance="100" />
<signal_cue cue="FleetPowerCheck" />
</actions>
</cue>
</cues>
</cue>
</cues>
</mdscript>
<find_ship name="$FactionMShips" owner="$Faction" class="class.ship_m" purpose="purpose.fight" multiple="true" />
but this keep counting all ships instead of only military just don't get it help