package TestUtils // By muzzel - Version 1.4 /** Registers a chat event. */ public function chatEvent(string s, code c) if s.startsWith("-debug") commands[commandsLen] = s commandsLen++ let trig = CreateTrigger() ..addAction(c) for k = 15 downto 0 trig.registerPlayerChatEvent(Player(k), s, true) /** Registers a esc-key event. */ public function escEvent(code c) CreateTrigger() ..registerPlayerEvent(Player(0), EVENT_PLAYER_END_CINEMATIC) ..addAction(c) /** Registers game time event. */ public function timeEvent(real time, code c) CreateTrigger() ..registerTimerEvent(time, false) ..addAction(c) /** Registers a periodic event. */ public function periodicEvent(real time, code c) CreateTrigger() ..registerTimerEvent(time, true) ..addAction(c) /** Returns a random unit selected by the specified player. */ public function selectedUnit(player p) returns unit group g = CreateGroup() SyncSelections() GroupEnumUnitsSelected(g, p, null) unit u = FirstOfGroup(g) g.destr() return u /** Returns a random unit selected by the triggering player. */ public function selectedUnit() returns unit return selectedUnit(GetTriggerPlayer()) string array commands int commandsLen = 0 trigger smartCoordsTrigger init // Debug help: chatEvent("-debug", () -> begin print("Debug commands:") for i = 0 to commandsLen-1 print(commands[i]) end) // Smart Coordinates: smartCoordsTrigger = CreateTrigger() ..registerPlayerUnitEvent(Player(0), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null) ..addAction(() -> begin if GetIssuedOrderId() == 851971 print("Coordinates: " + GetOrderPointX().toString() + " / " + GetOrderPointY().toString()) TriggerSleepAction(0.01) IssueImmediateOrder(GetTriggerUnit(), "stop") end)..disable() chatEvent("-debug smartcoords", () -> begin if IsTriggerEnabled(smartCoordsTrigger) smartCoordsTrigger.disable() print("Testutils: Smartcoords disabled") else smartCoordsTrigger.enable() print("Testutils: Smartcoords enabled") end) // Clear: chatEvent("-clear", () -> begin if GetTriggerPlayer() == GetLocalPlayer() ClearTextMessages() end)