небольшую поправку нужно написать, чтоб при ошибке не создавался скрипт: function OnItemMenuGenerateAAWithAOBSCANClick(sender) local script = GetScriptAOBSCAN() if (script ~= nil) then local newTableEntry = AddAARecord(script, 'New AOBSCAN-Script ') OpenAAEditor(newTableEntry) end end Я хочу дополнить шаблоном для быстрого нопа выделенных функций: NopCodeTemplate = [[ [ENABLE] ->>address: ->>nops [DISABLE] ->>address: ->>originalCode //->>comment ]] function GetNops(strAddress, length) -- return originalCodeString, originalBytesString, nopsString local sumBytes = 0 local originalCodeString = "" local originalBytesString = "" local address = strAddress local countBytes = 0 repeat countBytes = getInstructionSize(address) lineDissassemble = disassemble(address) extrafield, opcode, bytes, address = splitDisassembledString(lineDissassemble) sumBytes = sumBytes + countBytes address = address..'+'..countBytes originalCodeString = originalCodeString..opcode.."\r\n" originalBytesString = originalBytesString..bytes until (sumBytes >= length) ---------------nops----------------- local nopsString = "db " local nopsCount = length if (nopsCount>0) then for i = 1, nopsCount do if i == nopsCount then nopsString = nopsString.."90" else nopsString = nopsString.."90 " end end end return originalCodeString, originalBytesString, nopsString end function GetScriptAANop() local script = NopCodeTemplate local originalCode = '' local originalBytes = '' local extra = '' local nops = '' local address = math.min(dv_address1, dv_address2) local stop = math.max(dv_address1, dv_address2) local length = stop + getInstructionSize(stop) - address local strSignature = GetFullSignature(address, length) originalCode, originalBytes, nops = GetNops(address, length) local baseAddress = getNameFromAddress(address) script = string.gsub(script,"->>address", baseAddress) script = string.gsub(script,"->>originalCode", originalCode) script = string.gsub(script,"->>comment", originalBytes) script = string.gsub(script,"->>nops", nops) script = string.gsub(script,"->>NscriptCount", scriptCount) return script end function OnItemMenuGenerateAANopClick(sender) local script = GetScriptAANop() local newTableEntry = AddAARecord(script,'New Script') OpenAAEditor(newTableEntry) end AddItemMenuInMemoryViewForm('* Create AA NOP', 'Ctrl+Shift+N', OnItemMenuGenerateAANopClick, OnSelectionTracker)