Start of quest writer

This commit is contained in:
Malcolm Roberts 2024-01-11 14:13:26 -06:00
parent c0f1f4c57b
commit c00f3a480d
5 changed files with 436 additions and 4 deletions

View File

View File

75
auto_quest/writer.iss Normal file
View File

@ -0,0 +1,75 @@
objectdef QuestWriterController
{
variable string CurrentNPCName
variable string CurrentStepType
variable string CurrentDialogOptions
variable jsonvalue QuestSteps = []
method Initialize()
{
LGUI2:LoadPackageFile["writer.json"]
}
method Shutdown()
{
LGUI2:UnloadPackageFile["writer.json"]
}
method OnClose()
{
Script:End
}
method OnNPCDialogButtonClick()
{
CurrentStepType:Set["ncp_dialog"]
LGUI2.Element["mr.quest_writer.npc_dialog_properties"]:SetVisibility["visible"]
}
method OnSetNPCNameButtonClick()
{
echo "Setting NPC Name to ${Me.Target.Name}"
This.CurrentNPCName:Set["${Me.Target.Name}"]
}
method OnAddStepButtonClick()
{
variable jsonvalue newStep
newStep:SetValue[$$>"{
"type": ${This.CurrentStepType.AsJSON~},
"params": {
"npc_name": ${This.CurrentNPCName.AsJSON~},
"dialog_options": ${This.CurrentDialogOptions.AsJSON~}
}
}"<$$]
This.QuestSteps:Add["${newStep.AsJSON~}"]
echo "Current Steps ${This.QuestSteps.AsJSON~}"
}
member:jsonvalueref CurrentSteps()
{
variable jsonvalue questList
questList:SetValue[$$>"[
"Step 1",
"Step 2",
"Step 3",
]"<$$]
return questList
}
}
variable(global) QuestWriterController MRQuestWriterController
function main()
{
echo "${MRQuestWriterController.CurrentSteps.AsJSON~}"
while 1
{
wait 1
}
}

320
auto_quest/writer.json Normal file
View File

@ -0,0 +1,320 @@
{
"$schema": "http://www.lavishsoft.com/schema/lgui2Package.json",
"skin": {
"name": "MRSkin",
"brushes": {
"window.titleBar.backgroundBrush": {
"color": "#211C18"
}
},
"templates": {
"mr.quest_writer.quest_steps.list_entry": {
"jsontemplate": "listboxitem",
"padding": 2,
"borderBrush": {
"color": "#f4f3ee"
},
"borderThickness": [0, 0, 0, 1],
"content": {
"type": "stackpanel",
"orientation": "vertical",
"-contentContainer": {
"jsonTemplate": "listbox.contentContainerFitWidth"
},
"children": [
{
"type": "textblock",
"horizontalAlignment": "stretch",
"font": {
"bold": true,
"heightFactor": 1.1
},
"textBinding": {
"pullFormat": "${_CONTEXTITEMDATA_.Get[type]}"
}
},
{
"type": "textblock",
"horizontalAlignment": "stretch",
"textBinding": {
"pullFormat": "${_CONTEXTITEMDATA_.Get[params].AsJSON[multiline]}"
}
}
]
}
},
"window.title": {
"verticalAlignment": "center",
"margin": [2, 0, 0, 0]
},
"button": {
"jsonTemplate": "default:button",
"margin": [2, 2, 2, 2],
"color": "#f4f3ee"
},
"checkbox": {
"jsonTemplate": "default:checkbox",
"margin": [2, 2, 2, 2]
},
"window": {
"jsonTemplate": "default:window",
"backgroundBrush": {
"color": "#463f3a"
},
"color": "#f4f3ee",
"font": {
"face": "Segoe UI",
"height": 16
}
},
"listbox.contentContainerFitWidth": {
"jsonTemplate": "listbox.contentContainer",
"horizontalScroll": "fit"
}
}
},
"elements": [
{
"type": "window",
"skin": "MRSkin",
"title": "MR Quest Writer",
"name": "mr.quest_writer.window",
"borderThickness": 2,
"hideOnClose": false,
"minSize": {
"width": 650,
"height": 350
},
"maxSize": {
"width": 950,
"height": 650
},
"eventHandlers": {
"onCloseButtonClick": ["method", "MRQuestWriterController", "OnClose"]
},
"content": {
"type": "stackpanel",
"name": "mr.quest_writer.content",
"uniform": true,
"heightFactor": 1,
"orientation": "horizontal",
"children": [
{
"type": "dockpanel",
"widthFactor": 0.2,
"orientation": "vertical",
"children": [
{
"type": "stackpanel",
"name": "mr.quest_writer.controls",
"margin": [5, 5, 15, 5],
"_dock": "top",
"children": [
{
"type": "stackpanel",
"widthFactor": 1,
"children": [
{
"type": "textblock",
"text": "Quest Name:",
"horizontalAlignment": "left",
"widthFactor": 1
},
{
"type": "textbox",
"name": "mr.quest_writer.quest_name",
"horizontalAlignment": "left",
"widthFactor": 1
}
]
},
{
"type": "wrappanel",
"widthFactor": 1,
"orientation": "horizontal",
"childSize": {
"width": 75,
"height": 35
},
"children": [
{
"type": "button",
"name": "mr.quest_writer.npc_dialog",
"content": "NPC Dialog",
"widthFactor": 1,
"eventHandlers": {
"onRelease": [
"method",
"MRQuestWriterController",
"OnNPCDialogButtonClick"
]
}
},
{
"type": "button",
"name": "mr.quest_writer.run_path",
"content": "Run Path",
"widthFactor": 1
},
{
"type": "button",
"name": "mr.quest_writer.kill_mobs",
"content": "Kill Mobs",
"widthFactor": 1
}
]
}
]
},
{
"type": "panel",
"widthFactor": 1,
"_dock": "bottom",
"margin": [0, 15, 0, 0],
"children": [
{
"type": "button",
"content": "Add Step",
"widthFactor": 1,
"eventHandlers": {
"onRelease": [
"method",
"MRQuestWriterController",
"OnAddStepButtonClick"
]
}
}
]
},
{
"type": "stackpanel",
"name": "mr.quest_writer.npc_dialog_properties",
"visibility": "hidden",
"_dock": "bottom",
"borderBrush": {
"color": "#f4f3ee"
},
"borderThickness": [0, 2, 0, 0],
"header": "test",
"children": [
{
"type": "panel",
"borderBrush": {
"color": "#f4f3ee"
},
"borderThickness": [0, 0, 0, 1],
"margin": [0, 0, 0, 15],
"children": [
{
"type": "textblock",
"text": "NPC Dialog Properties",
"font": {
"bold": true,
"heightFactor": 1.2
},
"horizontalAlignment": "center",
"widthFactor": 1
}
]
},
{
"type": "textblock",
"text": "NPC Name:",
"widthFactor": 1,
"horizontalAlignment": "left",
"font": {
"heightFactor": 0.9
}
},
{
"type": "stackpanel",
"orientation": "horizontal",
"children": [
{
"type": "button",
"content": "◎",
"tooltip": "Set the NPC name to the currently targeted NPC.",
"horizontalAlignment": "left",
"eventHandlers": {
"onRelease": [
"method",
"MRQuestWriterController",
"OnSetNPCNameButtonClick"
]
}
},
{
"type": "textblock",
"horizontalAlignment": "left",
"widthFactor": 1,
"text": "${MRQuestWriterController.CurrentNPCName}"
}
]
},
{
"type": "stackpanel",
"orientation": "vertical",
"children": [
{
"type": "textblock",
"text": "Dialog Options:",
"horizontalAlignment": "left",
"widthFactor": 1,
"font": {
"heightFactor": 0.9
}
},
{
"type": "textbox",
"name": "mr.quest_writer.npc_dialog_dialog_options",
"horizontalAlignment": "left",
"widthFactor": 1,
"tooltip": "A comma separated list of the\nnumber of the dialog option to\npick tomake the quest dialog appear.\n\ne.g. 1,2,1,1,2",
"textBinding": {
"pullFormat": "${MRQuestWriterController.CurrentDialogOptions}",
"pullReplaceNull": "",
"pushFormat": [
"MRQuestWriterController.CurrentDialogOptions:Set[\"",
"\"]"
]
}
}
]
}
]
}
]
},
{
"type": "stackpanel",
"heightFactor": 1,
"children": [
{
"type": "textblock",
"text": "Quest Steps:",
"horizontalAlignment": "left",
"widthFactor": 1
},
{
"type": "listbox",
"name": "mr.quest_writer.quest_steps",
"heightFactor": 1,
"widthFactor": 1,
"itemsBinding": {
"pullFormat": "${MRQuestWriterController.QuestSteps}"
},
"itemViewGenerators": {
"default": {
"type": "template",
"template": "mr.quest_writer.quest_steps.list_entry"
}
}
}
]
}
]
}
}
]
}

43
mr.iss
View File

@ -1,3 +1,15 @@
#include "${LavishScript.HomeDirectory}/Scripts/EQ2Navigation/EQ2Nav_Lib.iss"
variable EQ2Nav Nav
function StopRunning()
{
echo "Stop Running"
press -hold "${Nav.MOVEBACKWARD}"
waitframe
press -release "${Nav.MOVEBACKWARD}"
}
function main(... params)
{
@ -19,9 +31,9 @@ function main(... params)
run mr/bot/export_abilities
}
elseif ${command.Equal["relay"]}
elseif ${command.Equal["qw"]}
{
run mr/auto_quest/writer
}
elseif ${command.Equal["!c"]}
{
@ -35,6 +47,31 @@ function main(... params)
}
elseif ${command.Equal["test"]}
{
run mr/common/Navigation/test
Nav.AUTORUN:Set["num lock"]
Nav.MOVEBACKWARD:Set["s"]
Nav.STRAFELEFT:Set["e"]
Nav.STRAFERIGHT:Set["q"]
; run mr/common/Navigation/test
echo "loading map"
Nav:UseLSO[FALSE]
Nav:LoadMap
Nav.SmartDestinationDetection:Set[FALSE]
Nav.BackupTime:Set[3]
Nav.StrafeTime:Set[3]
echo "moving to crafting"
Nav.DestinationPrecision:Set[1]
Nav:MoveToRegion["guild hall"]
do
{
Nav:Pulse
wait 1
}
while ${Nav.Moving}
call StopRunning
}
}