What's that? AI stack overflow ...

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

Post Reply
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

What's that? AI stack overflow ...

Post by Lestradae »

Got tons of the following in my normal log (not the ultimate override version from Ahruman), also mid-game, followed by a crash:
RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = FLEE_FOR_MISSILE; pendingMessages = "()"; stateMachine = {ATTACK_SHIP = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENERGY_LOW = ("setStateTo: FLEE"); ENTER = (performAttack); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); "PLAYER WITCHSPACE" = (enterTargetWormhole); TARGET_DESTROYED = ("setStateTo: COLLECT_LOOT"); TARGET_LOST = ("setStateTo: COLLECT_LOOT"); }; CHECK_CARGO = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = ("setSpeedTo: 0.0", performIdle, checkForFullHold); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); HOLD_FULL = ("setStateTo: CONSIDER_LEAVING"); HOLD_NOT_FULL = ("setStateTo: COLLECT_LOOT"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NO_CARGO_BAY = ("setStateTo: COLLECT_LOOT"); ROLL_1 = ("setStateTo: COLLECT_LOOT"); UPDATE = ("rollD: 10"); }; COLLECT_LOOT = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = ("setSpeedTo: 0.0", performIdle); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); HOLD_FULL = ("setStateTo: CONSIDER_DOCKING"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: CONSIDER_DOCKING"); TARGET_FOUND = (setTargetToFoundTarget, "setStateTo: LOOT"); UPDATE = (scanForLoot, "pauseAI: 5.0"); }; CONSIDER_DOCKING = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE"); NOTHING_FOUND = ("setStateTo: LURK"); STATION_FOUND = ("setAITo: dockingAI.plist"); UPDATE = (checkForMotherStation); }; CONSIDER_LEAVING = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: EXIT_SYSTEM", "pauseAI: 5.0"); STATION_FOUND = ("setAITo: dockingAI.plist"); UPDATE = (checkForMotherStation); }; DOCK_WITH_STATION = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = (checkForMotherStation); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setAITo: route1traderAI.plist"); STATION_FOUND = ("setAITo: dockingAI.plist"); }; ENTER_WORMHOLE = {ENTER = (setDestinationToTarget, "setDesiredRangeTo: 1.0", "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "PLAYER WITCHSPACE" = (enterTargetWormhole); }; EXIT_SYSTEM = {UPDATE = (performHyperSpaceExit, "pauseAI: 5.0"); "WITCHSPACE BLOCKED" = (setTargetToFoundTarget, setDestinationWithinTarget, "setDesiredRangeTo: 10000.0", performFlyToRangeFromDestination); "WITCHSPACE OKAY" = (wormholeEscorts, wormholeGroup); "WITCHSPACE UNAVAILABLE" = ("setStateTo: DOCK_WITH_STATION"); }; FLEE = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: FLEE"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENTER = ("setDesiredRangeTo: 25600", performFlee); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); }; FLEE_FOR_CLOAKED = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENERGY_LOW = ("setStateTo: FLEE"); ENTER = ("setDesiredRangeTo: 7500", performFlee); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); }; FLEE_FOR_MISSILE = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: FLEE"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENTER = ("setDesiredRangeTo: 25600", performFlee, "pauseAI: 5"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); UPDATE = (fightOrFleeMissile, "pauseAI: 10"); }; GLOBAL = {ENTER = ("setStateTo: TRAVEL_TO_LURK_AREA"); }; LOOT = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); ENTER = (performCollect); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); FRUSTRATED = ("setStateTo: COLLECT_LOOT"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: CONSIDER_DOCKING"); TARGET_FOUND = (setTargetToFoundTarget, "setStateTo: LOOT"); TARGET_LOST = ("setStateTo: CHECK_CARGO"); }; LURK = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); ENTER = ("setSpeedTo: 0.0", performIdle); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: COLLECT_LOOT"); ODDS_GOOD = (groupAttackTarget); ODDS_LEVEL = (groupAttackTarget); TARGET_FOUND = (setTargetToFoundTarget, checkGroupOddsVersusTarget); TARGET_LOST = ("setStateTo: TRAVEL_TO_LURK_AREA"); UPDATE = (scanForRandomMerchantmen, "pauseAI: 5.0"); }; TRAVEL_TO_LURK_AREA = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENTER = (setDestinationToCurrentLocation, "setDesiredRangeTo: 1500.0", performFlyToRangeFromDestination); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); "EXITED WITCHSPACE" = ("switchAITo: enteringPirateAI.plist"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); }; }; stateMachineName = upsPirateAI.plist; })
[ai.pushStateMachine.overflow]: ***** ERROR: AI stack overflow for <ShipEntity 0xe986e98>{"Cobra Mk I"} stack:
({currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "(ENERGY_FULL)"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = GLOBAL; pendingMessages = "()"; stateMachine = {GLOBAL = {ENTER = (performStop, switchLightsOff, "pauseAI: 15.0"); EXIT = (); UPDATE = ("setStateTo: RESTART"); }; RESTART = {ENTER = ("exitAIWithMessage: RESTARTED"); EXIT = (); UPDATE = (); }; }; stateMachineName = "rmb-stunnedAI.plist"; }, {currentState = FLEE_FOR_MISSILE; pendingMessages = "()"; stateMachine = {ATTACK_SHIP = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENERGY_LOW = ("setStateTo: FLEE"); ENTER = (performAttack); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); "PLAYER WITCHSPACE" = (enterTargetWormhole); TARGET_DESTROYED = ("setStateTo: COLLECT_LOOT"); TARGET_LOST = ("setStateTo: COLLECT_LOOT"); }; CHECK_CARGO = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = ("setSpeedTo: 0.0", performIdle, checkForFullHold); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); HOLD_FULL = ("setStateTo: CONSIDER_LEAVING"); HOLD_NOT_FULL = ("setStateTo: COLLECT_LOOT"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NO_CARGO_BAY = ("setStateTo: COLLECT_LOOT"); ROLL_1 = ("setStateTo: COLLECT_LOOT"); UPDATE = ("rollD: 10"); }; COLLECT_LOOT = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = ("setSpeedTo: 0.0", performIdle); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); HOLD_FULL = ("setStateTo: CONSIDER_DOCKING"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: CONSIDER_DOCKING"); TARGET_FOUND = (setTargetToFoundTarget, "setStateTo: LOOT"); UPDATE = (scanForLoot, "pauseAI: 5.0"); }; CONSIDER_DOCKING = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE"); NOTHING_FOUND = ("setStateTo: LURK"); STATION_FOUND = ("setAITo: dockingAI.plist"); UPDATE = (checkForMotherStation); }; CONSIDER_LEAVING = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: EXIT_SYSTEM", "pauseAI: 5.0"); STATION_FOUND = ("setAITo: dockingAI.plist"); UPDATE = (checkForMotherStation); }; DOCK_WITH_STATION = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); ENTER = (checkForMotherStation); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setAITo: route1traderAI.plist"); STATION_FOUND = ("setAITo: dockingAI.plist"); }; ENTER_WORMHOLE = {ENTER = (setDestinationToTarget, "setDesiredRangeTo: 1.0", "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "PLAYER WITCHSPACE" = (enterTargetWormhole); }; EXIT_SYSTEM = {UPDATE = (performHyperSpaceExit, "pauseAI: 5.0"); "WITCHSPACE BLOCKED" = (setTargetToFoundTarget, setDestinationWithinTarget, "setDesiredRangeTo: 10000.0", performFlyToRangeFromDestination); "WITCHSPACE OKAY" = (wormholeEscorts, wormholeGroup); "WITCHSPACE UNAVAILABLE" = ("setStateTo: DOCK_WITH_STATION"); }; FLEE = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: FLEE"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENTER = ("setDesiredRangeTo: 25600", performFlee); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); }; FLEE_FOR_CLOAKED = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENERGY_LOW = ("setStateTo: FLEE"); ENTER = ("setDesiredRangeTo: 7500", performFlee); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); }; FLEE_FOR_MISSILE = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: FLEE"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENERGY_FULL = ("setStateTo: LURK"); ENTER = ("setDesiredRangeTo: 25600", performFlee, "pauseAI: 5"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); REACHED_SAFETY = ("setSpeedTo: 0.0", performIdle, "pauseAI: 10.0"); TARGET_LOST = ("setStateTo: LURK"); UPDATE = (fightOrFleeMissile, "pauseAI: 10"); }; GLOBAL = {ENTER = ("setStateTo: TRAVEL_TO_LURK_AREA"); }; LOOT = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); ENTER = (performCollect); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); FRUSTRATED = ("setStateTo: COLLECT_LOOT"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: CONSIDER_DOCKING"); TARGET_FOUND = (setTargetToFoundTarget, "setStateTo: LOOT"); TARGET_LOST = ("setStateTo: CHECK_CARGO"); }; LURK = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); CARGO_SCOOPED = ("setStateTo: CHECK_CARGO"); ENTER = ("setSpeedTo: 0.0", performIdle); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); NOTHING_FOUND = ("setStateTo: COLLECT_LOOT"); ODDS_GOOD = (groupAttackTarget); ODDS_LEVEL = (groupAttackTarget); TARGET_FOUND = (setTargetToFoundTarget, checkGroupOddsVersusTarget); TARGET_LOST = ("setStateTo: TRAVEL_TO_LURK_AREA"); UPDATE = (scanForRandomMerchantmen, "pauseAI: 5.0"); }; TRAVEL_TO_LURK_AREA = {ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); ATTACKED_BY_CLOAKED = ("setStateTo: FLEE_FOR_CLOAKED"); DESIRED_RANGE_ACHIEVED = ("setStateTo: LURK"); ENTER = (setDestinationToCurrentLocation, "setDesiredRangeTo: 1500.0", performFlyToRangeFromDestination); "ENTER WORMHOLE" = ("setStateTo: ENTER_WORMHOLE"); "EXITED WITCHSPACE" = ("switchAITo: enteringPirateAI.plist"); GROUP_ATTACK_TARGET = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); INCOMING_MISSILE = (fightOrFleeMissile, "setStateTo: FLEE_FOR_MISSILE"); }; }; stateMachineName = upsPirateAI.plist; })
Perhaps someone can use the info?

:?

L
zevans
---- E L I T E ----
---- E L I T E ----
Posts: 332
Joined: Mon Jul 06, 2009 11:12 pm
Location: Uncharted backwaters of the unfashionable end of the western spiral arm

Re: What's that? AI stack overflow ...

Post by zevans »

You know whenever I play with the full OSE OXP I always notice that the rmb missile scripts seem unduly chatty, is this deliberate or is it worth digging further?
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

An AI stack overflow means that a ship has reached the limit on suspended AIs (32). This generally means that an AI is using setAITo: without a balancing exitAI (instead of switchAITo:). In your extract, rmb-stunnedAI.plist appears to be a major culprit.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

Ahruman wrote:
In your extract, rmb-stunnedAI.plist appears to be a major culprit.
Aha, thanks for the tip! Will have a look into that one.
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Ahruman wrote:
An AI stack overflow means that a ship has reached the limit on suspended AIs (32). This generally means that an AI is using setAITo: without a balancing exitAI (instead of switchAITo:). In your extract, rmb-stunnedAI.plist appears to be a major culprit.
Is there a difference between these two versions except that one tells a reason?

Code: Select all

		ATTACKED = ("exitAIWithMessage: ATTACKED");
		"FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI);
It's from Oolites internal gotoWaypointAI.plist.

I am curious because I had crashes with OSE whenever I was using the script which does populate the system with even more ships. Currently it looks as if those are ships which use OSE's hardpirateAI which does

Code: Select all

		"WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist");
Screet
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

It really looks like I found the troublemaker...without hardpirates I did not have a crash anymore (ore processor is disabled due to machine dependend crash-bug). Might have been lucky, but I then did try this:

I simply called the hardpirate addition 5 times....and guess what? After a few seconds Oolite did close again.

I'm now trying with a hardpirateAI where the setAI line has been removed...

Screet
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Hmmm. Strange. I seem still to be missing something, but reading things above, I'm now curious:

What happens if a ship is hit by some dozen lawmaker missiles and the missiles call this script upon reaching the target?

Code: Select all

this.checkTargetVulnerability = function()
 {
if(!this.ship.target || (this.ship.target.isStation && this.ship.target.maxSpeed == 0) || this.ship.target.scanClass == "CLASS_ROCK") return
if(this.ship.target.isPlayer) return

else

        this.ship.target.setAI("rmb-stunnedAI.plist")

}
My guess is that the ship could be set to stunned and then, while it's stunned, again to stunned and so on until something really bad happens...is this correct?

If so, I guess the script would have to check wether the target is already stunned and if so, simply do nothing?

EDIT: Now I'm trying this...is this better?

Code: Select all

if(this.ship.target.AI == "rmb-stunnedAI.plist") {
	log("RMB-LAW-MISSILE-SCRIPT.JS","Target already stunned, aborting.");
} else {
	log("RMB-LAW-MISSILE-SCRIPT.JS","Stunning target.");
	this.ship.target.setAI("rmb-stunnedAI.plist")
}
EDIT2: Same applies for the RMB-override-missile...

Screet
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Seems this was a good idea to check for the current AI state.

My log just reads:

Code: Select all

[RMB-LAW-MISSILE-SCRIPT.JS]: Stunning target.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
[RMB-LAW-MISSILE-SCRIPT.JS]: Target already stunned, aborting.
EDIT: I just did test with a massive amount of ships which are likely to carry such missiles. However, I also had Oolite crash another time without a hint of what happened :?

Thus, maybe, I've only found a potential problem but not what I was looking for, unless the AI thing I mentioned initially is a problem and has to be addressed somehow.

Screet
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

Hey Screet,

two things.

One is, I'd like to get my hands on the altered java scripts for the law and override missiles, because even if this doesn't resolve all crash sources you found, it rids us of the mere possibility of stack overflow.

Second is, wouldn't it make sense to post this in the OSE thread? Just saying :wink:

Cheers & keep up the excellent work on finding (and sometimes also fixing) any buggery imaginable :D

L
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Re: ...

Post by Screet »

Lestradae wrote:
One is, I'd like to get my hands on the altered java scripts for the law and override missiles, because even if this doesn't resolve all crash sources you found, it rids us of the mere possibility of stack overflow.

Second is, wouldn't it make sense to post this in the OSE thread? Just saying :wink:
Hmmm...I was specifically searching the forum for setAI and came up with this thread, thus I thought it might be best to place it here ;)

Concerning the script-request: I did already send them via email to you one hour ago?!?

Since then I did also change frame_fuel_collector.js from
this.trapship.setAI("dumbAI.plist")
to
this.trapship.switchAI("dumbAI.plist")

I don't know if that really could become a problem there, but it's useless to call setAI when dumbAI does not have exitAI ;) It's only one instance in there to be changed.

Screet
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

Thanks Screet,

just saw it and put it in (including the setAI -> switchAI in the fuel collector script)!

:D

L
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Screet wrote:
Is there a difference between these two versions except that one tells a reason?

Code: Select all

		ATTACKED = ("exitAIWithMessage: ATTACKED");
		"FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI);
It's from Oolites internal gotoWaypointAI.plist.

Screet
To help with your curiosity: exitAIWithMessage: is new in 1.73. Before we had only exitAI. So when attacked it exited to its mother AI with a RESTARTED message. That AI than did not know it was attacked and continued with its normal work. And than only on a second attack it started reacting.

With 1.73 we now can pass a message so the mother AI immediately can react on that attack.
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

I've uploaded a Missiles and Bombs v2.3 with the fixes to the two missile scripts. Looks like they're working OK.
Download Resistance Commander plus many other exciting OXPs HERE
Post Reply