diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index f9d8374e..aaa91f53 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -4026,8 +4026,8 @@ EquipValueType_List /*EquipValueType_List ['value','percentage']*/; Vibrate_List - : '左右'|'上下'|'左上-右下'|'左下-右上' - /*Vibrate_List ['horizontal','vertical','diagonal1','diagonal2']*/; + : '左右'|'上下'|'左上-右下'|'左下-右上'|'随机' + /*Vibrate_List ['horizontal','vertical','diagonal1','diagonal2','random']*/; Colour : 'sdeirughvuiyasdeb'+ //为了被识别为复杂词法规则 @@ -4102,8 +4102,8 @@ Move_List /*Move_List ['up','down','left','right','forward','backward','leftup','leftdown','rightup','rightdown','speed']*/; MoveMode_List - : '匀速移动'|'缓入快出'|'快入缓出'|'缓入缓出' - /*MoveMode_List ['', 'easeIn', 'easeOut', 'easeInOut']*/; + : '匀速移动'|'缓入快出'|'快入缓出'|'缓入缓出'|'随机' + /*MoveMode_List ['', 'easeIn', 'easeOut', 'easeInOut', 'random']*/; NameMap_List : '确定'|'取消'|'操作失败'|'光标移动'|'打开界面'|'读档'|'存档'|'获得道具'|'回血'|'宝石'|'炸弹'|'飞行器'|'开关门'|'上下楼'|'跳跃'|'破墙镐'|'破冰镐'|'阻激夹域'|'穿脱装备'|'商店' diff --git a/_server/editor_multi.js b/_server/editor_multi.js index dfce058d..8014ef2c 100644 --- a/_server/editor_multi.js +++ b/_server/editor_multi.js @@ -282,6 +282,18 @@ editor_multi = function () { }).length > 0; } + var _previewButton = document.getElementById('editor_multi_preview'); + + _previewButton.onclick = function () { + if (!editor_multi.preview) return; + _format(); + if (editor_multi.hasError()) { + alert("当前好像存在严重的语法错误,请处理后再预览。"); + return; + } + editor.uievent.previewEditorMulti(editor_multi.preview, codeEditor.getValue()); + } + editor_multi.import = function (id_, args) { var thisTr = document.getElementById(id_); if (!thisTr) return false; @@ -292,6 +304,8 @@ editor_multi = function () { editor_multi.id = id_; editor_multi.isString = false; editor_multi.lintAutocomplete = false; + editor_multi.preview = args.preview; + _previewButton.style.display = editor_multi.preview ? 'inline' : 'none'; if (args.lint === true) editor_multi.lintAutocomplete = true; if ((!input.value || input.value == 'null') && args.template) input.value = '"' + args.template + '"'; @@ -318,7 +332,7 @@ editor_multi = function () { _setValue(tstr || ''); } editor_multi.show(); - codeEditor.scrollTo(0, lastOffset[id_] || 0); + codeEditor.scrollTo(0, lastOffset[editor_multi.id] || 0); return true; } diff --git a/_server/editor_table.js b/_server/editor_table.js index 1797b7f5..341164f2 100644 --- a/_server/editor_table.js +++ b/_server/editor_table.js @@ -419,7 +419,7 @@ editor_table_wrapper = function (editor) { var cobj = JSON.parse(tr.children[1].getAttribute('cobj')); var input = tr.children[2].children[0].children[0]; if (cobj._type === 'event') editor_blockly.import(guid, { type: cobj._event }); - if (cobj._type === 'textarea') editor_multi.import(guid, { lint: cobj._lint, string: cobj._string, template: cobj._template }); + if (cobj._type === 'textarea') editor_multi.import(guid, { lint: cobj._lint, string: cobj._string, template: cobj._template, preview: cobj._preview }); if (cobj._type === 'material') editor.table.selectMaterial(input, cobj); if (cobj._type === 'color') editor.table.selectColor(input); if (cobj._type === 'point') editor.table.selectPoint(input); @@ -451,7 +451,7 @@ editor_table_wrapper = function (editor) { editor_table.prototype.dblclickfunc = function (guid, obj, commentObj, thisTr, input, field, cobj, modeNode) { if (editor_mode.doubleClickMode === 'change') { if (cobj._type === 'event') editor_blockly.import(guid, { type: cobj._event }); - if (cobj._type === 'textarea') editor_multi.import(guid, { lint: cobj._lint, string: cobj._string, template: cobj._template }); + if (cobj._type === 'textarea') editor_multi.import(guid, { lint: cobj._lint, string: cobj._string, template: cobj._template, preview: cobj._preview }); if (cobj._type === 'material') editor.table.selectMaterial(input, cobj); if (cobj._type === 'color') editor.table.selectColor(input); if (cobj._type === 'point') editor.table.selectPoint(input); diff --git a/_server/editor_uievent.js b/_server/editor_uievent.js index ac29c3ed..6f27691d 100644 --- a/_server/editor_uievent.js +++ b/_server/editor_uievent.js @@ -13,14 +13,13 @@ editor_uievent_wrapper = function (editor) { uievent.elements.title = document.getElementById('uieventTitle'); uievent.elements.yes = document.getElementById('uieventYes'); uievent.elements.no = document.getElementById('uieventNo'); - uievent.elements.selectBackground = document.getElementById('uieventBackground'); + uievent.elements.select = document.getElementById('uieventSelect'); uievent.elements.selectPoint = document.getElementById('selectPoint'); uievent.elements.selectFloor = document.getElementById('selectPointFloor'); uievent.elements.selectPointBox = document.getElementById('selectPointBox'); uievent.elements.body = document.getElementById('uieventBody'); uievent.elements.selectPointButtons = document.getElementById('selectPointButtons'); uievent.elements.canvas = document.getElementById('uievent'); - uievent.elements.usedFlags = document.getElementById('uieventUsedFlags'); uievent.elements.extraBody = document.getElementById('uieventExtraBody'); uievent.close = function () { @@ -34,17 +33,13 @@ editor_uievent_wrapper = function (editor) { } uievent.elements.no.onclick = uievent.close; - uievent.elements.selectBackground.onchange = function () { - uievent.drawPreviewUI(); - } - uievent.drawPreviewUI = function () { core.setAlpha('uievent', 1); core.clearMap('uievent'); core.setFilter('uievent', null); // 绘制UI - var background = uievent.elements.selectBackground.value; + var background = uievent.elements.select.value; if (background == 'thumbnail') { core.drawThumbnail(editor.currentFloorId, null, {ctx: 'uievent'}); } @@ -92,15 +87,21 @@ editor_uievent_wrapper = function (editor) { uievent.elements.selectPoint.style.display = 'none'; uievent.elements.yes.style.display = 'none'; uievent.elements.title.innerText = 'UI绘制预览'; - uievent.elements.selectBackground.style.display = 'inline'; - uievent.elements.selectBackground.value = 'thumbnail'; + uievent.elements.select.style.display = 'inline'; uievent.elements.selectFloor.style.display = 'none'; uievent.elements.selectPointBox.style.display = 'none'; uievent.elements.canvas.style.display = 'block'; - uievent.elements.usedFlags.style.display = 'none'; uievent.elements.extraBody.style.display = 'none'; uievent.elements.body.style.overflow = "hidden"; + uievent.elements.select.innerHTML = + '' + + '' + + ''; + uievent.elements.select.onchange = function () { + uievent.drawPreviewUI(); + } + uievent.values.list = list; uievent.drawPreviewUI(); } @@ -114,11 +115,10 @@ editor_uievent_wrapper = function (editor) { uievent.mode = 'selectPoint'; uievent.elements.selectPoint.style.display = 'block'; uievent.elements.yes.style.display = 'inline'; - uievent.elements.selectBackground.style.display = 'none'; + uievent.elements.select.style.display = 'none'; uievent.elements.selectFloor.style.display = 'inline'; uievent.elements.selectPointBox.style.display = 'block'; uievent.elements.canvas.style.display = 'block'; - uievent.elements.usedFlags.style.display = 'none'; uievent.elements.extraBody.style.display = 'none'; uievent.elements.body.style.overflow = "hidden"; uievent.elements.yes.onclick = function () { @@ -336,11 +336,10 @@ editor_uievent_wrapper = function (editor) { uievent.elements.selectPoint.style.display = 'none'; uievent.elements.yes.style.display = 'none'; uievent.elements.title.innerText = '搜索变量'; - uievent.elements.selectBackground.style.display = 'none'; + uievent.elements.select.style.display = 'inline'; uievent.elements.selectFloor.style.display = 'none'; uievent.elements.selectPointBox.style.display = 'none'; uievent.elements.canvas.style.display = 'none'; - uievent.elements.usedFlags.style.display = 'inline'; uievent.elements.extraBody.style.display = 'block'; uievent.elements.body.style.overflow = "auto"; @@ -350,13 +349,14 @@ editor_uievent_wrapper = function (editor) { v = "flag:" + v; html += ""; }); - uievent.elements.usedFlags.innerHTML = html; + uievent.elements.select.innerHTML = html; + uievent.elements.select.onchange = uievent.doSearchUsedFlags; uievent.doSearchUsedFlags(); } uievent.doSearchUsedFlags = function () { - var flag = uievent.elements.usedFlags.value; + var flag = uievent.elements.select.value; var html = "

该变量出现的所有位置如下: