Skip to content

Commit

Permalink
Added 'waitforsysmsg' script command. Closes #113
Browse files Browse the repository at this point in the history
  • Loading branch information
markdwags committed Oct 16, 2020
1 parent d0cbb65 commit be13411
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 9 deletions.
2 changes: 1 addition & 1 deletion FastColoredTextBox/SyntaxHighlighter.cs
Expand Up @@ -359,7 +359,7 @@ protected void InitRazorRegex()

RazorCommandRegex =
new Regex(
@"\b(attack|cast|dress|undress|dressconfig|target|targettype|targetrelloc|dress|drop|waitfortarget|wft|dclick|dclicktype|dclickvar|usetype|useobject|droprelloc|lift|lifttype|waitforgump|gumpresponse|gumpclose|menu|menuresponse|waitformenu|promptresponse|waitforprompt|hotkey|say|msg|overhead|sysmsg|wait|pause|waitforstat|setability|setlasttarget|lasttarget|setvar|skill|useskill|walk|script|useonce|organizer|organize|org|restock|scav|scavenger|potion|clearsysmsg|clearjournal|whisper|yell|emote)\b",
@"\b(attack|cast|dress|undress|dressconfig|target|targettype|targetrelloc|dress|drop|waitfortarget|wft|dclick|dclicktype|dclickvar|usetype|useobject|droprelloc|lift|lifttype|waitforgump|gumpresponse|gumpclose|menu|menuresponse|waitformenu|promptresponse|waitforprompt|hotkey|say|msg|overhead|sysmsg|wait|pause|waitforstat|setability|setlasttarget|lasttarget|setvar|skill|useskill|walk|script|useonce|organizer|organize|org|restock|scav|scavenger|potion|clearsysmsg|clearjournal|whisper|yell|emote|waitforsysmsg|wfsysmsg)\b",
RegexCompiledOption);

RazorLayerRegex =
Expand Down
12 changes: 12 additions & 0 deletions Razor/Scripts/Commands.cs
Expand Up @@ -94,6 +94,8 @@ public static void Register()
// General Waits/Pauses
Interpreter.RegisterCommandHandler("wait", Pause); //PauseAction
Interpreter.RegisterCommandHandler("pause", Pause); //PauseAction
Interpreter.RegisterCommandHandler("waitforsysmsg", WaitForSysMsg);
Interpreter.RegisterCommandHandler("wfsysmsg", WaitForSysMsg);

// Misc
Interpreter.RegisterCommandHandler("setability", SetAbility); //SetAbilityAction
Expand Down Expand Up @@ -1246,5 +1248,15 @@ private static bool Potion(string command, Argument[] args, bool quiet, bool for

return true;
}

public static bool WaitForSysMsg(string command, Argument[] args, bool quiet, bool force)
{
if (args.Length < 1)
{
throw new RunTimeError(null, "Usage: waitforsysmsg 'message to wait for'");
}

return SystemMessages.Exists(args[0].AsString());
}
}
}
10 changes: 9 additions & 1 deletion Razor/Scripts/ScriptManager.cs
Expand Up @@ -480,7 +480,9 @@ public static void InitScriptEditor()
"promptresponse", "restock", "say", "whisper", "yell", "emote", "script", "scavenger", "sell", "setability",
"setlasttarget",
"setvar", "skill", "sysmsg", "target", "targettype", "targetrelloc", "undress", "useonce", "walk",
"wait", "pause", "waitforgump", "waitformenu", "waitforprompt", "waitfortarget", "clearsysmsg", "clearjournal"
"wait", "pause", "waitforgump", "waitformenu", "waitforprompt", "waitfortarget", "clearsysmsg", "clearjournal",
"waitforsysmsg"

};

#endregion
Expand Down Expand Up @@ -729,6 +731,12 @@ public static void InitScriptEditor()
"clearjournal\n");
descriptionCommands.Add("clearjournal", tooltip);

tooltip = new ToolTipDescriptions("waitforsysmsg",
new[] { "waitforsysmsg" }, "N/A",
"This command will pause the script until the message defined is in the system message queue.",
"waitforsysmsg 'message here'\n");
descriptionCommands.Add("waitforsysmsg", tooltip);

#endregion

if (!Config.GetBool("DisableScriptTooltips"))
Expand Down
8 changes: 1 addition & 7 deletions appveyor.yml
Expand Up @@ -41,10 +41,4 @@ deploy:
prerelease: true
force_update: true
skip_commits:
message: /\[chore\]/
files:
- help/
- docs/
- '**/*.md'
- '**/*.ps1'
- '**/*.yml'
message: /\[chore\]/
13 changes: 13 additions & 0 deletions help/docs/guide/commands.md
Expand Up @@ -683,6 +683,19 @@ waitforprompt
promptresponse 'to home'
```

## waitforsysmsg

Syntax: `waitforsysmsg` or `wfsysmsg`

Description: This command will wait a specific message to be added to the system message queue before continuing.

Example:

```csharp
waitforsysmsg 'ready to go'
overhead 'Ready!'
```

## waitfortarget

Syntax: `waitfortarget [pause in milliseconds]` or `wft [pause in milliseconds]`
Expand Down

0 comments on commit be13411

Please sign in to comment.